From 9994477c06556692ce72706441f9b679ca48983c Mon Sep 17 00:00:00 2001 From: Shinichi Matsumoto Date: Fri, 3 Feb 2023 08:00:44 +0000 Subject: [PATCH 001/268] Change return value of function agents_get_agent_id_by_alias when alias is '' --- pandora_console/include/functions_agents.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/functions_agents.php b/pandora_console/include/functions_agents.php index 6e37a1e991..3b3bac283b 100644 --- a/pandora_console/include/functions_agents.php +++ b/pandora_console/include/functions_agents.php @@ -165,9 +165,9 @@ function agents_locate_agent(string $field) function agents_get_agent_id_by_alias($alias, $is_metaconsole=false) { if ($is_metaconsole === true) { - return db_get_all_rows_sql("SELECT id_tagente FROM tmetaconsole_agent WHERE upper(alias) LIKE upper('%$alias%')"); + return db_get_all_rows_sql("SELECT id_tagente FROM tmetaconsole_agent WHERE '$alias' != '' and upper(alias) LIKE upper('%$alias%')"); } else { - return db_get_all_rows_sql("SELECT id_agente FROM tagente WHERE upper(alias) LIKE upper('%$alias%')"); + return db_get_all_rows_sql("SELECT id_agente FROM tagente WHERE '$alias' != '' and upper(alias) LIKE upper('%$alias%')"); } } From eb6422495b53bdbf120ec04657e3fb934c1690aa Mon Sep 17 00:00:00 2001 From: rafael Date: Mon, 13 Mar 2023 13:52:41 +0100 Subject: [PATCH 002/268] 9735 adding inventory_solaris.pl to plugin path on unix agent and adding reference commented to conf file --- pandora_agents/unix/SunOS/pandora_agent.conf | 4 +- .../unix/plugins/inventory_solaris.pl | 121 ++++++++++++++++++ 2 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 pandora_agents/unix/plugins/inventory_solaris.pl diff --git a/pandora_agents/unix/SunOS/pandora_agent.conf b/pandora_agents/unix/SunOS/pandora_agent.conf index 96f76389d2..ad4e9df6c7 100644 --- a/pandora_agents/unix/SunOS/pandora_agent.conf +++ b/pandora_agents/unix/SunOS/pandora_agent.conf @@ -213,5 +213,5 @@ module_end module_plugin grep_log /var/adm/syslog Syslog . - - +#Inventory plugin +#module_plugin /usr/share/pandora_agent/plugins/inventory_solaris.pl diff --git a/pandora_agents/unix/plugins/inventory_solaris.pl b/pandora_agents/unix/plugins/inventory_solaris.pl new file mode 100644 index 0000000000..fa07650e39 --- /dev/null +++ b/pandora_agents/unix/plugins/inventory_solaris.pl @@ -0,0 +1,121 @@ +#!/usr/bin/perl -w +# + +use strict; +use Data::Dumper; + +#print header +print "\n"; + +#get pakahes +my @pkg_list = `/usr/bin/pkginfo -l 2> /dev/null`; + +print " \n"; +print " \n"; +print " \n"; + +my $pkg; +foreach my $line (@pkg_list) { + + chomp $line; + + my $match = ( $line =~ /PKGINST:/ .. $line =~ /^$/ ); + + if ( $match && $match !~ /E0/ ) { + + if ( $line =~ /^\s+([A-Z]+):\s+(.*)$/ ) { + my ($key, $val) = ($1, $2); + if ( $key eq 'FILES' ) { + if ( $val =~ /^(\d+) (.*)$/ ) { + $pkg->{FILES}->{$2} = $1; + } + } + else { + $pkg->{$1} = $2; + } + } + elsif ( $line =~ /^\s+([0-9]+) (.*)$/ ) { + $pkg->{FILES}->{$2} = $1; + } + else { + print "Unrecognized output: [$line]\n"; + } + + } + else { + + # + # Blank line between packages + # + print "{PKGINST} . ';'; + print $pkg->{VERSION} . ';'; + print $pkg->{NAME} . ';'; + print "]]>\n"; + + } +} +print " \n"; +print " \n"; +#close software module + + +#CPU module +print " \n"; +print " \n"; +print " \n"; + +my $cpu_model =`kstat cpu_info 2> /dev/null | grep brand | uniq | sed 's/.*brand//g' | tr -d ' '`; +my $cpu_clock = `kstat cpu_info 2> /dev/null | grep clock_MHz | uniq | awk '{print \$NF " Mhz"}'`; +my $cpu_brand = `kstat cpu_info 2> /dev/null | grep vendor_id | uniq | awk '{print \$NF}'`; + +chomp $cpu_brand; +chomp $cpu_clock; +chomp $cpu_model; + +print "\n"; + +print " \n"; +print " \n"; +#close cpu module + + +#RAM module +print " \n"; +print " \n"; +print " \n"; + +my $memory_size =`prtconf 2> /dev/null | grep Memory | cut -d ':' -f 2`; + +chomp $memory_size; + +print "\n"; + +print " \n"; +print " \n"; +#close RAM module + +#NIC module +print " \n"; +print " \n"; +print " \n"; + +my @nic =`dladm show-link 2> /dev/null| grep -v STATE | awk '{print \$1}'`; + +foreach my $nic (@nic){ + chomp $nic; + + my $nic_mac = `dladm show-linkprop $nic -p mac-address 2> /dev/null |grep -v LINK| awk '{print \$4}'`; + my $nic_speed = `dladm show-linkprop $nic -p speed 2> /dev/null |grep -v LINK| awk '{print \$4}'`; + + chomp $nic_mac; + chomp $nic_speed; + print "\n"; +} + +print " \n"; +print " \n"; +#close NIC module + +#close inventory +print "\n"; \ No newline at end of file From c26db22fa5f9d2951c39d38d10bac5ed08266fe3 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Thu, 13 Apr 2023 11:07:09 +0200 Subject: [PATCH 003/268] #10563 Move menu item Links from Management to Operation. Add button in setup to global disable the Feedback functionality --- pandora_console/general/header.php | 5 +++- pandora_console/godmode/menu.php | 18 ++++++++------- .../godmode/setup/setup_general.php | 13 +++++++++++ pandora_console/include/functions_config.php | 8 +++++++ pandora_console/operation/menu.php | 23 +++++++++++++++++++ 5 files changed, 58 insertions(+), 9 deletions(-) diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index b0cbc0cec5..38f36fe730 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -352,7 +352,10 @@ echo sprintf('
', $menuTypeClass); } // Button for feedback pandora. - if (enterprise_installed()) { + if (enterprise_installed() && ( (!isset($config['activate_feedback']) + || (isset($config['activate_feedback']) + && $config['activate_feedback'] === true )) ) + ) { $header_feedback = '
'; $header_feedback .= ''; $header_feedback .= ''; diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index f6e4aac358..79670bc02b 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -546,21 +546,23 @@ if ($access_console_node === true) { } } - $menu_godmode['links']['text'] = __('Links'); - $menu_godmode['links']['sec2'] = ''; - $menu_godmode['links']['id'] = 'god-links'; + /* + $menu_godmode['links']['text'] = __('Links'); + $menu_godmode['links']['sec2'] = ''; + $menu_godmode['links']['id'] = 'god-links'; - $sub = []; - $rows = db_get_all_rows_in_table('tlink', 'name'); - foreach ($rows as $row) { + $sub = []; + $rows = db_get_all_rows_in_table('tlink', 'name'); + foreach ($rows as $row) { // Audit //meter en extensiones. $sub[$row['link']]['text'] = $row['name']; $sub[$row['link']]['id'] = $row['name']; $sub[$row['link']]['type'] = 'direct'; $sub[$row['link']]['subtype'] = 'new_blank'; - } + } - $menu_godmode['links']['sub'] = $sub; + $menu_godmode['links']['sub'] = $sub; + */ } // Warp Manager. diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index ad7a40aa8b..ce0216ce64 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -429,6 +429,19 @@ $table->data[$i++][] = html_print_label_input_block( ) ); +$table->data[$i++][] = html_print_label_input_block( + __('Enable Feedback'), + html_print_checkbox_switch_extended( + 'activate_feedback', + 1, + $config['activate_feedback'], + false, + '', + '', + true + ) +); + $table->colspan[$i][] = 2; $table->data[$i++][] = html_print_label_input_block( __('Timezone setup'), diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index b94892e7c1..a990c96398 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -264,6 +264,10 @@ function config_update_config() $error_update[] = __('Enable Sflow'); } + if (config_update_value('activate_feedback', (bool) get_parameter('activate_feedback'), true) === false) { + $error_update[] = __('Enable Feedback'); + } + if (config_update_value('general_network_path', get_parameter('general_network_path'), true) === false) { $error_update[] = __('General network path'); } else { @@ -3330,6 +3334,10 @@ function config_process_config() config_update_value('autoupdate', 1); } + if (!isset($config['activate_feedback'])) { + config_update_value('activate_feedback', 1); + } + if (!isset($config['api_password'])) { config_update_value('api_password', ''); } diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index 8b6d9f4749..fe381e0449 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -628,6 +628,27 @@ if ($favorite_menu !== false) { } +// Links. +$rows = db_get_all_rows_in_table('tlink', 'name'); +// $rows = []; +if (!empty($rows)) { + $menu_operation['links']['text'] = __('Links'); + $menu_operation['links']['sec2'] = ''; + $menu_operation['links']['id'] = 'god-links'; + + $sub = []; + foreach ($rows as $row) { + // Audit //meter en extensiones. + $sub[$row['link']]['text'] = $row['name']; + $sub[$row['link']]['id'] = $row['name']; + $sub[$row['link']]['type'] = 'direct'; + $sub[$row['link']]['subtype'] = 'new_blank'; + } + + $menu_operation['links']['sub'] = $sub; +} + + // Workspace. @@ -785,6 +806,8 @@ if ($access_console_node === true) { // ~ } } + + // Save operation menu array to use in operation/extensions.php view $operation_menu_array = $menu_operation; From dc41e1c37753c005e8b326d2c9c733eb8c6d6bf8 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Thu, 13 Apr 2023 11:36:13 +0200 Subject: [PATCH 004/268] fix if in header and declare correctly a value --- pandora_console/general/header.php | 5 +---- pandora_console/include/functions_config.php | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index 38f36fe730..5609ab46d6 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -352,10 +352,7 @@ echo sprintf('
', $menuTypeClass); } // Button for feedback pandora. - if (enterprise_installed() && ( (!isset($config['activate_feedback']) - || (isset($config['activate_feedback']) - && $config['activate_feedback'] === true )) ) - ) { + if (enterprise_installed() && $config['activate_feedback'] !== false) { $header_feedback = '
'; $header_feedback .= ''; $header_feedback .= ''; diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index a990c96398..ba2f1efa89 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -3335,7 +3335,7 @@ function config_process_config() } if (!isset($config['activate_feedback'])) { - config_update_value('activate_feedback', 1); + config_update_value('activate_feedback', true); } if (!isset($config['api_password'])) { From b043717df5d9ba7077116b7fa96f234d19be9659 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Thu, 13 Apr 2023 13:49:05 +0200 Subject: [PATCH 005/268] #15263 created filter for modules --- .../godmode/agentes/module_manager.php | 77 ++++++++++++++++++- 1 file changed, 73 insertions(+), 4 deletions(-) diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php index 3cb5ce9787..92bb1f224e 100644 --- a/pandora_console/godmode/agentes/module_manager.php +++ b/pandora_console/godmode/agentes/module_manager.php @@ -47,8 +47,74 @@ if (isset($policy_page) === false) { $policy_page = false; } -$checked = (bool) get_parameter('checked'); +$checked = (bool) get_parameter('status_hierachy_mode'); +$status_hierachy_mode = (bool) get_parameter('status_hierachy_mode'); $sec2 = (string) get_parameter('sec2'); +// Table for filter bar. +$filterTable = new stdClass(); +$filterTable->class = 'filter-table-adv w100p'; +$filterTable->size[0] = '20%'; +$filterTable->size[1] = '20%'; +$filterTable->size[2] = '20%'; +$filterTable->size[3] = '20%'; +$filterTable->size[4] = '20%'; +$filterTable->data = []; +$filterTable->cellstyle[0][0] = 'width:0'; +$filterTable->data[0][0] = __('Search'); +$filterTable->data[1][0] .= html_print_input_text( + 'search_string', + $search_string, + '', + 30, + 255, + true, + false, + false, + '', + '' +); +$filterTable->data[0][0] .= html_print_input_hidden('search', 1, true); + +if ((bool) $policy_page === false) { + $filterTable->data[0][1] = __('Show in hierachy mode'); + $filterTable->data[1][1] = html_print_checkbox_switch( + 'status_hierachy_mode', + ((string) $checked), + ((string) $checked), + true, + false, + 'onChange=change_mod_filter();' + ); +} + +$filterTable->data[1][2] = html_print_submit_button( + __('Filter'), + 'filter', + false, + [ + 'icon' => 'search', + 'class' => 'float-right', + 'mode' => 'secondary mini', + ], + true +); + +// Print filter table. +echo '
'; +ui_toggle( + html_print_table($filterTable, true).'
', + ''.__('Filter').'', + __('Filter'), + 'filter', + true, + false, + '', + 'white-box-content no_border', + 'filter-datatable-main box-flat white_table_graph fixed_filter_bar' +); +echo ''; + + if (isset($id_agente) === false) { return; @@ -1199,14 +1265,17 @@ html_print_div( if (/checked/.test(window.location)) { var url = window.location.toString(); if (checked) { - window.location = url.replace("checked=false", "checked=true"); + //window.location = url.replace("checked=0", "checked=1"); + $("#checkbox-status_hierachy_mode").val('1'); } else { - window.location = url.replace("checked=true", "checked=false"); + //window.location = url.replace("checked=1", "checked=0"); + $("#checkbox-status_hierachy_mode").val('0'); } } else { - window.location = window.location + "&checked=true"; + //window.location = window.location + "&checked=1"; + $("#checkbox-status_hierachy_mode").val('1'); } } From 10c7d4dddb2046752d82a1b0e065dfa68718ac33 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Thu, 13 Apr 2023 13:54:11 +0200 Subject: [PATCH 006/268] #15263 created filter for modules --- pandora_console/godmode/agentes/module_manager.php | 1 + 1 file changed, 1 insertion(+) diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php index 92bb1f224e..f4881c0373 100644 --- a/pandora_console/godmode/agentes/module_manager.php +++ b/pandora_console/godmode/agentes/module_manager.php @@ -73,6 +73,7 @@ $filterTable->data[1][0] .= html_print_input_text( '', '' ); + $filterTable->data[0][0] .= html_print_input_hidden('search', 1, true); if ((bool) $policy_page === false) { From 85879d0a3ac6bfe968716038155696b63fec7da6 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Wed, 26 Apr 2023 09:37:48 +0200 Subject: [PATCH 007/268] Fixed JS code that made the form look wrong --- pandora_console/godmode/alerts/alert_list.list.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pandora_console/godmode/alerts/alert_list.list.php b/pandora_console/godmode/alerts/alert_list.list.php index 3d2ba0d1f1..8500178694 100644 --- a/pandora_console/godmode/alerts/alert_list.list.php +++ b/pandora_console/godmode/alerts/alert_list.list.php @@ -1311,10 +1311,10 @@ function show_display_update_action(id_module_action, alert_id, alert_id_agent_m }, open: function() { $(`#update_action-div-${alert_id}`).css('overflow', 'hidden'); - $(`#action_select_ajax-${alert_id}`).select2({ - tags: true, - dropdownParent: $(`#update_action-div-${alert_id}`) - }); + //$(`#action_select_ajax-${alert_id}`).select2({ + // tags: true, + // dropdownParent: $(`#update_action-div-${alert_id}`) + //}); }, width: 600, height: 350 From d3462440041e490785c81b506cdc62ceacf5e39d Mon Sep 17 00:00:00 2001 From: Pablo Aragon Date: Wed, 26 Apr 2023 12:26:37 +0200 Subject: [PATCH 008/268] 2892-Remove Create by template, from description --- pandora_console/godmode/agentes/agent_template.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/godmode/agentes/agent_template.php b/pandora_console/godmode/agentes/agent_template.php index 3e265ab8fc..415af3766f 100644 --- a/pandora_console/godmode/agentes/agent_template.php +++ b/pandora_console/godmode/agentes/agent_template.php @@ -80,7 +80,7 @@ if (isset($_POST['template_id']) === true) { $values = [ 'id_agente' => $id_agente, 'id_tipo_modulo' => $row2['type'], - 'descripcion' => __('Created by template ').$name_template.' . '.$row2['description'], + 'descripcion' => $row2['description'], 'max' => $row2['max'], 'min' => $row2['min'], 'module_interval' => $row2['module_interval'], From b6e0dd5998f6aa98dee08fa75e626c206750ac68 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Wed, 26 Apr 2023 13:05:50 +0200 Subject: [PATCH 009/268] #5344 validation of PDF fields for the open version --- .../reporting_builder.item_editor.php | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index cc05d9d3f4..fc13bb7448 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -38,6 +38,9 @@ require_once $config['homedir'].'/include/db/oracle.php'; // Login check. check_login(); +// Validate enterprise. +$is_enterprise = enterprise_installed(); + if (! check_acl($config['id_user'], 0, 'RW') && ! check_acl($config['id_user'], 0, 'RM') ) { @@ -3645,25 +3648,28 @@ $class = 'databox filters'; ?> - - - - - - - - - - + + + + + + + + + + + + - - - - + } + ?> Date: Wed, 26 Apr 2023 16:24:05 +0200 Subject: [PATCH 010/268] #11037 Fix label --- pandora_console/godmode/setup/setup_visuals.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/godmode/setup/setup_visuals.php b/pandora_console/godmode/setup/setup_visuals.php index dc7d91872d..97d63b5039 100755 --- a/pandora_console/godmode/setup/setup_visuals.php +++ b/pandora_console/godmode/setup/setup_visuals.php @@ -1413,7 +1413,7 @@ $table_vc->data[$row][] = html_print_label_input_block( $row++; $table_vc->data[$row][] = html_print_label_input_block( - __('Mobile view not allow visual console orientation'), + __('Lock screen orientation when viewing on mobile devices'), html_print_checkbox_switch( 'mobile_view_orientation_vc', 1, From 8cebe4cd8659e56c99c14fecd835c1ec5a9365b3 Mon Sep 17 00:00:00 2001 From: Pablo Aragon Date: Wed, 26 Apr 2023 16:37:09 +0200 Subject: [PATCH 011/268] 10752-Add csv ipam modal --- pandora_console/include/javascript/tree/TreeController.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/javascript/tree/TreeController.js b/pandora_console/include/javascript/tree/TreeController.js index a32a749c5e..448b098284 100644 --- a/pandora_console/include/javascript/tree/TreeController.js +++ b/pandora_console/include/javascript/tree/TreeController.js @@ -1559,7 +1559,10 @@ var TreeController = { this.reload(); }, init: function(data) { - if (data.filter.statusModule === "fired") { + if ( + typeof data.filter !== "undefined" && + data.filter.statusModule === "fired" + ) { const newData = { ajaxUrl: data.ajaxURL, baseURL: data.baseURL, From a40c04aa49eb1c40cb52b9e192e51ac336189224 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Thu, 27 Apr 2023 09:08:24 +0200 Subject: [PATCH 012/268] #10660 Update the function to create the warp journal table for check the variable config prominent time and prints the timestamp according this --- .../include/ajax/update_manager.php | 70 ++++++++++++++++--- 1 file changed, 59 insertions(+), 11 deletions(-) diff --git a/pandora_console/include/ajax/update_manager.php b/pandora_console/include/ajax/update_manager.php index 4e6eefdfd3..175a4a3522 100644 --- a/pandora_console/include/ajax/update_manager.php +++ b/pandora_console/include/ajax/update_manager.php @@ -129,19 +129,67 @@ if ($method === 'draw') { $count = db_get_value('count(*)', '('.$sql.') t'); if ($data) { - $data = array_reduce( - $data, - function ($carry, $item) { - // Transforms array of arrays $data into an array - // of objects, making a post-process of certain fields. - $tmp = (object) $item; + if ($config['prominent_time'] === 'timestamp') { + $data = array_reduce( + $data, + function ($carry, $item) { + // Transforms array of arrays $data into an array + // of objects, making a post-process of certain fields. + $tmp = (object) $item; + date_default_timezone_set($user_timezone); + $title = human_time_comparation($tmp->utimestamp); + $tmp->utimestamp = ''.modules_format_timestamp($tmp->utimestamp).''; - $tmp->utimestamp = human_time_comparation($tmp->utimestamp); + $carry[] = $tmp; + return $carry; + } + ); + } else if ($config['prominent_time'] === 'comparation') { + $data = array_reduce( + $data, + function ($carry, $item) { + // Transforms array of arrays $data into an array + // of objects, making a post-process of certain fields. + $tmp = (object) $item; + date_default_timezone_set($user_timezone); + $title = modules_format_timestamp($tmp->utimestamp); + $tmp->utimestamp = ''.human_time_comparation($tmp->utimestamp).''; - $carry[] = $tmp; - return $carry; - } - ); + $carry[] = $tmp; + return $carry; + } + ); + } else if ($config['prominent_time'] === 'compact') { + $data = array_reduce( + $data, + function ($carry, $item) { + // Transforms array of arrays $data into an array + // of objects, making a post-process of certain fields. + $tmp = (object) $item; + date_default_timezone_set($user_timezone); + $title = modules_format_timestamp($tmp->utimestamp); + $tmp->utimestamp = ''.human_time_comparation($tmp->utimestamp, 'tiny').''; + + $carry[] = $tmp; + return $carry; + } + ); + } else { + $data = array_reduce( + $data, + function ($carry, $item) { + // Transforms array of arrays $data into an array + // of objects, making a post-process of certain fields. + $tmp = (object) $item; + date_default_timezone_set($user_timezone); + $title = modules_format_timestamp($tmp->utimestamp); + $tmp->utimestamp = ''.human_time_comparation($tmp->utimestamp).''; + + $carry[] = $tmp; + return $carry; + } + ); + } } // Datatables format: RecordsTotal && recordsfiltered. From fdc13256cd776b52b3127496e7b00a5cfd4102ef Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 27 Apr 2023 16:05:37 +0200 Subject: [PATCH 013/268] #9478 create edit delete alerts from meta --- .../godmode/alerts/alert_list.builder.php | 38 ++- pandora_console/godmode/alerts/alert_list.php | 74 ++++++ .../include/ajax/alert_list.ajax.php | 31 ++- pandora_console/include/functions_ui.php | 68 +++++- .../operation/agentes/alerts_status.php | 225 +++++++++++------- .../operation/agentes/estado_agente.php | 18 ++ .../operation/agentes/ver_agente.php | 5 + 7 files changed, 362 insertions(+), 97 deletions(-) diff --git a/pandora_console/godmode/alerts/alert_list.builder.php b/pandora_console/godmode/alerts/alert_list.builder.php index af380c396c..9e42cd5a44 100644 --- a/pandora_console/godmode/alerts/alert_list.builder.php +++ b/pandora_console/godmode/alerts/alert_list.builder.php @@ -40,29 +40,47 @@ $table->size = []; $table->style[0] = 'width: 50%'; $table->style[1] = 'width: 50%'; -// Add an agent selector -if (! $id_agente) { +if (is_metaconsole() === true) { $params = []; $params['return'] = true; $params['show_helptip'] = true; $params['input_name'] = 'id_agent'; $params['selectbox_id'] = 'id_agent_module'; $params['javascript_is_function_select'] = true; - $params['metaconsole_enabled'] = false; + $params['metaconsole_enabled'] = true; $params['use_hidden_input_idagent'] = true; $params['print_hidden_input_idagent'] = true; + $params['javascript_page'] = 'enterprise/meta/include/ajax/events.ajax'; + $table->data[0][0] = html_print_label_input_block( __('Agent'), - ui_print_agent_autocomplete_input($params) + '
'.ui_print_agent_autocomplete_input($params).'
' ); +} else { + // Add an agent selector. + if (! $id_agente) { + $params = []; + $params['return'] = true; + $params['show_helptip'] = true; + $params['input_name'] = 'id_agent'; + $params['selectbox_id'] = 'id_agent_module'; + $params['javascript_is_function_select'] = true; + $params['metaconsole_enabled'] = false; + $params['use_hidden_input_idagent'] = true; + $params['print_hidden_input_idagent'] = true; + $table->data[0][0] = html_print_label_input_block( + __('Agent'), + ui_print_agent_autocomplete_input($params) + ); + } + + if ($id_agente) { + $modules = agents_get_modules($id_agente, false, ['delete_pending' => 0]); + } } $modules = []; -if ($id_agente) { - $modules = agents_get_modules($id_agente, false, ['delete_pending' => 0]); -} - $table->data[0][1] = html_print_label_input_block( __('Module'), html_print_select( @@ -319,7 +337,8 @@ $(document).ready (function () { jQuery.post ( + "ajax.php", {"page" : "operation/agentes/estado_agente", "get_agent_module_last_value" : 1, - "id_agent_module" : this.value + "id_agent_module" : this.value, + "server_name" : $('#text-id_agent').val(), }, function (data, status) { if (data === false) { @@ -338,5 +357,4 @@ $(document).ready (function () { ); }); }); -/* ]]> */ diff --git a/pandora_console/godmode/alerts/alert_list.php b/pandora_console/godmode/alerts/alert_list.php index ce42dd1675..9abe728e5e 100644 --- a/pandora_console/godmode/alerts/alert_list.php +++ b/pandora_console/godmode/alerts/alert_list.php @@ -99,6 +99,19 @@ if ($update_alert) { } if ($create_alert) { + if (is_metaconsole()) { + if (enterprise_include_once('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) { + $server_name = explode(' ', io_safe_output(get_parameter('id_agent')))[0]; + $connection = metaconsole_get_connection($server_name); + if (metaconsole_load_external_db($connection) !== NOERR) { + echo json_encode(false); + // Restore db connection. + metaconsole_restore_db(); + return; + } + } + } + $id_alert_template = (int) get_parameter('template'); $id_agent_module = (int) get_parameter('id_agent_module'); @@ -203,9 +216,28 @@ if ($create_alert) { } } } + + if (is_metaconsole()) { + // Restore db connection. + metaconsole_restore_db(); + echo ''; + } } if ($delete_alert) { + if (is_metaconsole()) { + if (enterprise_include_once('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) { + $server_name = explode(' ', io_safe_output(get_parameter('id_agent')))[0]; + $connection = metaconsole_get_connection($server_name); + if (metaconsole_load_external_db($connection) !== NOERR) { + echo json_encode(false); + // Restore db connection. + metaconsole_restore_db(); + return; + } + } + } + $id_alert_agent_module = (int) get_parameter('id_alert'); $temp = db_get_row('talert_template_modules', 'id', $id_alert_agent_module); @@ -241,6 +273,11 @@ if ($delete_alert) { '', true ); + if (is_metaconsole()) { + // Restore db connection. + metaconsole_restore_db(); + echo ''; + } } if ($add_action) { @@ -283,6 +320,19 @@ if ($add_action) { } if ($update_action) { + if (is_metaconsole()) { + if (enterprise_include_once('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) { + $server_name = explode(' ', io_safe_output(get_parameter('id_agent')))[0]; + $connection = metaconsole_get_connection($server_name); + if (metaconsole_load_external_db($connection) !== NOERR) { + echo json_encode(false); + // Restore db connection. + metaconsole_restore_db(); + return; + } + } + } + $alert_id = (int) get_parameter('alert_id'); $id_action = (int) get_parameter('action_select_ajax-'.$alert_id); $id_module_action = (int) get_parameter('id_module_action_ajax'); @@ -321,9 +371,28 @@ if ($update_action) { '', true ); + + if (is_metaconsole()) { + // Restore db connection. + metaconsole_restore_db(); + echo ''; + } } if ($delete_action) { + if (is_metaconsole()) { + if (enterprise_include_once('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) { + $server_name = explode(' ', io_safe_output(get_parameter('id_agent')))[0]; + $connection = metaconsole_get_connection($server_name); + if (metaconsole_load_external_db($connection) !== NOERR) { + echo json_encode(false); + // Restore db connection. + metaconsole_restore_db(); + return; + } + } + } + $id_action = (int) get_parameter('id_action'); $id_alert = (int) get_parameter('id_alert'); @@ -348,6 +417,11 @@ if ($delete_action) { '', true ); + + if (is_metaconsole()) { + // Restore db connection. + metaconsole_restore_db(); + } } if ($enable_alert) { diff --git a/pandora_console/include/ajax/alert_list.ajax.php b/pandora_console/include/ajax/alert_list.ajax.php index 7d9e372d7e..3c66cf1df9 100644 --- a/pandora_console/include/ajax/alert_list.ajax.php +++ b/pandora_console/include/ajax/alert_list.ajax.php @@ -406,6 +406,19 @@ if ($get_actions_module) { } if ($show_update_action_menu) { + if (is_metaconsole()) { + if (enterprise_include_once('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) { + $server_name = explode(' ', io_safe_output(get_parameter('id_agent')))[0]; + $connection = metaconsole_get_connection($server_name); + if (metaconsole_load_external_db($connection) !== NOERR) { + echo json_encode(false); + // Restore db connection. + metaconsole_restore_db(); + return; + } + } + } + if (! check_acl($config['id_user'], 0, 'LW')) { db_pandora_audit( AUDIT_LOG_ACL_VIOLATION, @@ -436,7 +449,12 @@ if ($show_update_action_menu) { $id_action ); - $data .= '
'; + if (is_metaconsole()) { + $data .= ''; + } else { + $data .= ''; + } + $data .= ''; $data .= html_print_input_hidden( 'update_action', @@ -453,6 +471,11 @@ if ($show_update_action_menu) { $id_action, true ); + $data .= html_print_input_hidden( + 'id_agent', + $server_name, + true + ); if (! $id_agente) { $data .= ''; $data .= '`); + $(".datatables_thead_tr").css("height", 0); + } + + $(function() { + $(document).on("init.dt", function(ev, settings) { + if (dt.mini_search === true) { + $(`#${dt.id}_filter > label > input`).addClass("mini-search-input"); + } + + $("div.dataTables_length").show(); + $("div.dataTables_filter").show(); + $("div.dt-buttons").show(); + + if (dt_table.page.info().pages === 0) { + $(`.action_buttons_right_content .pagination-child-div`).hide(); + } + + if (dt_table.page.info().pages === 1) { + $(`div.pagination-child-div > #${dt.table_id}_paginate`).hide(); + } else { + $(`div.pagination-child-div > #${dt.table_id}_paginate`).show(); + } + }); + }); +}); + +$(function() { + $(document).on("preInit.dt", function(ev, settings) { + $(`#${dt.id}_wrapper div.dataTables_length`).hide(); + $(`#${dt.id}_wrapper div.dataTables_filter`).hide(); + $(`#${dt.id}_wrapper div.dt-buttons`).hide(); + }); +}); diff --git a/pandora_console/include/javascript/i18n/dataTables.en.json b/pandora_console/include/javascript/i18n/dataTables.en.json index 9ccd76c4ad..d80bbe6e75 100644 --- a/pandora_console/include/javascript/i18n/dataTables.en.json +++ b/pandora_console/include/javascript/i18n/dataTables.en.json @@ -6,7 +6,6 @@ "infoThousands": ",", "lengthMenu": "Show _MENU_ entries", "loadingRecords": "Loading...", - "processing": "Processing...", "search": "Search:", "zeroRecords": "No matching records found", "thousands": ",", diff --git a/pandora_console/include/lib/Dashboard/Widgets/DataMatrix.php b/pandora_console/include/lib/Dashboard/Widgets/DataMatrix.php index 1f3ed213c7..6ba27fbd92 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/DataMatrix.php +++ b/pandora_console/include/lib/Dashboard/Widgets/DataMatrix.php @@ -520,7 +520,7 @@ class DataMatrix extends Widget [ 'id' => $tableId, 'class' => 'info_table', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $column_names, 'ajax_url' => 'include/ajax/module', diff --git a/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php b/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php index 01a8781606..4a804890e2 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php +++ b/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php @@ -416,7 +416,7 @@ class ModulesByStatus extends Widget [ 'id' => $tableId, 'class' => 'info_table align-left-important', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $column_names, 'ajax_url' => 'include/ajax/module', diff --git a/pandora_console/include/styles/form.css b/pandora_console/include/styles/form.css index fd7e496aac..a0e5957358 100644 --- a/pandora_console/include/styles/form.css +++ b/pandora_console/include/styles/form.css @@ -365,3 +365,7 @@ form#modal_form_feedback > ul > li > textarea { form#modal_form_feedback > ul > li:not(:first-child) > label { margin-top: 20px !important; } + +table.dataTable { + box-sizing: border-box !important; +} diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index adf1325b07..7577f11985 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -11854,7 +11854,7 @@ span.help_icon_15px > img { /* ==== Spinner ==== */ .spinner-fixed { position: absolute; - left: 40%; + left: 45%; top: 40%; z-index: 1; width: 100px; @@ -11864,6 +11864,7 @@ span.help_icon_15px > img { animation: animate 1.2s linear infinite; margin: auto; margin-bottom: 40px; + text-align: initial; } .spinner-fixed span { position: absolute; diff --git a/pandora_console/include/styles/tables.css b/pandora_console/include/styles/tables.css index 65c1ad32b2..d6fc8453d4 100644 --- a/pandora_console/include/styles/tables.css +++ b/pandora_console/include/styles/tables.css @@ -378,15 +378,35 @@ a.pandora_pagination.current:hover { cursor: pointer; } +.dt-button.buttons-csv.buttons-html5.mini-csv-button { + background-image: url(../../images/file-csv.svg); + background-position: 4px center; + height: 26px; + width: 31px; + margin-left: 10px; + box-shadow: 0px 0px 0px #00000000; + border: 0px; + border-radius: 0px; +} + .dt-button.buttons-csv.buttons-html5:hover { color: #1d7873 !important; border: 2px solid #1d7873 !important; } +.dt-button.buttons-csv.buttons-html5.mini-csv-button:hover { + color: #00000000 !important; + border: 0px !important; +} + .dt-button.buttons-csv.buttons-html5:before { content: "csv"; } +.dt-button.buttons-csv.buttons-html5.mini-csv-button:before { + content: ""; +} + .dt-button.buttons-csv.buttons-html5 span { font-size: 0; } diff --git a/pandora_console/operation/agentes/alerts_status.php b/pandora_console/operation/agentes/alerts_status.php index 4139d30342..a409373d6f 100755 --- a/pandora_console/operation/agentes/alerts_status.php +++ b/pandora_console/operation/agentes/alerts_status.php @@ -355,7 +355,7 @@ if ($agent_view_page === true) { [ 'id' => 'alerts_status_datatable', 'class' => 'info_table', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $column_names, 'no_sortable_columns' => $no_sortable_columns, diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index a826986e95..cb2101813b 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -2503,7 +2503,7 @@ try { [ 'id' => $table_id, 'class' => 'info_table events', - 'style' => 'width: 99%;', + 'style' => 'width: 100%;', 'ajax_url' => 'operation/events/events', 'ajax_data' => [ 'get_events' => 1, diff --git a/pandora_console/operation/inventory/inventory.php b/pandora_console/operation/inventory/inventory.php index ba45efe85a..ea6087ff08 100755 --- a/pandora_console/operation/inventory/inventory.php +++ b/pandora_console/operation/inventory/inventory.php @@ -801,7 +801,7 @@ if ($inventory_module !== 'basic') { [ 'id' => $id_table, 'class' => 'info_table', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $columns, 'no_sortable_columns' => [], @@ -912,7 +912,7 @@ if ($inventory_module !== 'basic') { [ 'id' => $id_table, 'class' => 'info_table', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $columns, 'no_sortable_columns' => [], @@ -1073,7 +1073,7 @@ if ($inventory_module !== 'basic') { [ 'id' => $id_table, 'class' => 'info_table w100p', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $columns, 'no_sortable_columns' => [], @@ -1163,7 +1163,7 @@ if ($inventory_module !== 'basic') { [ 'id' => $id_table, 'class' => 'info_table w100p', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $columns, 'no_sortable_columns' => [], @@ -1178,6 +1178,8 @@ if ($inventory_module !== 'basic') { 'emptyTable' => __('No inventory found'), 'return' => true, 'no_sortable_columns' => [], + 'mini_search' => true, + 'mini_pagination' => true, ] ); @@ -1194,7 +1196,7 @@ if ($inventory_module !== 'basic') { [ 'id' => $id_table, 'class' => 'info_table w100p', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $columns, 'no_sortable_columns' => [], @@ -1223,7 +1225,7 @@ if ($inventory_module !== 'basic') { $agentes = []; $data = []; $class = 'info_table'; - $style = 'width: 99%'; + $style = 'width: 100%'; $ordering = true; $searching = false; diff --git a/pandora_console/views/calendar/list.php b/pandora_console/views/calendar/list.php index d37a49955f..805a9d6a50 100644 --- a/pandora_console/views/calendar/list.php +++ b/pandora_console/views/calendar/list.php @@ -105,7 +105,7 @@ try { [ 'id' => $tableId, 'class' => 'info_table', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $column_names, 'ajax_url' => $ajax_url, diff --git a/pandora_console/views/cluster/list.php b/pandora_console/views/cluster/list.php index bcfc0743b6..bab56d9918 100644 --- a/pandora_console/views/cluster/list.php +++ b/pandora_console/views/cluster/list.php @@ -82,7 +82,7 @@ try { [ 'id' => $tableId, 'class' => 'info_table', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $column_names, 'ajax_url' => $model->ajaxController, diff --git a/pandora_console/views/consoles/list.php b/pandora_console/views/consoles/list.php index 14368647aa..303d0d7892 100644 --- a/pandora_console/views/consoles/list.php +++ b/pandora_console/views/consoles/list.php @@ -86,7 +86,7 @@ try { [ 'id' => $tableId, 'class' => 'info_table', - 'style' => 'width: 99%', + 'style' => 'width: 100%', 'columns' => $columns, 'column_names' => $column_names, 'ajax_url' => 'include/ajax/consoles.ajax', From 0e58a9b2fb560976465f5373bd9f5af652d29fe3 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 8 May 2023 14:46:46 +0200 Subject: [PATCH 030/268] #added new type bars in widget and change legend --- .../include/lib/Dashboard/Widgets/top_n.php | 107 +++++++++++++++--- 1 file changed, 92 insertions(+), 15 deletions(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/top_n.php b/pandora_console/include/lib/Dashboard/Widgets/top_n.php index da69efe414..d11718ee43 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/top_n.php +++ b/pandora_console/include/lib/Dashboard/Widgets/top_n.php @@ -201,6 +201,25 @@ class TopNWidget extends Widget $values['period'] = SECONDS_1DAY; } + // Type graph. + $fields = [ + 'bar_vertical' => __('Vertical bars'), + 'bar_horizontal' => __('Horizontal bars'), + 'pie' => __('Pie'), + ]; + + $inputs[] = [ + 'label' => __('Type of graph'), + 'arguments' => [ + 'type' => 'select', + 'fields' => $fields, + 'name' => 'type_graph', + 'selected' => $values['type_graph'], + 'return' => true, + 'sort' => false, + ], + ]; + // Agent. $inputs[] = [ 'label' => __('Agent').ui_print_help_tip( @@ -294,6 +313,25 @@ class TopNWidget extends Widget ], ]; + // Legend. + $fields = [ + 'agent_module' => __('Agent & module'), + 'agent' => __('Agent'), + 'module' => __('Module'), + ]; + + $inputs[] = [ + 'label' => __('Legend'), + 'arguments' => [ + 'type' => 'select', + 'fields' => $fields, + 'name' => 'legend', + 'selected' => $values['legend'], + 'return' => true, + 'sort' => false, + ], + ]; + return $inputs; } @@ -314,6 +352,8 @@ class TopNWidget extends Widget $values['quantity'] = \get_parameter('quantity', 5); $values['order'] = \get_parameter('order', 1); $values['display'] = \get_parameter('display', REPORT_TOP_N_AVG); + $values['type_graph'] = \get_parameter('type_graph', 'bar_horizontal'); + $values['legend'] = \get_parameter('legend', 'agent_module'); return $values; } @@ -476,13 +516,28 @@ class TopNWidget extends Widget foreach ($modules as $module) { $module['aliasAgent'] = ui_print_truncate_text($module['aliasAgent'], 20, false, true, false); - $item_name = $module['aliasAgent'].' - '.$module['nameModule']; + switch ($this->values['legend']) { + case 'agent_module': + $item_name = $module['aliasAgent'].' - '.$module['nameModule']; + break; + + case 'agent': + $item_name = $module['aliasAgent']; + break; + + case 'module': + $item_name = $module['nameModule']; + break; + + default: + $item_name = $module['aliasAgent'].' - '.$module['nameModule']; + break; + } + $labels[] = io_safe_output($item_name); - $data_hbar[] = [ - 'x' => $module[$display], - 'y' => io_safe_output($item_name), - ]; + $data[] = $module[$display]; + // Calculation of max-min values for show in graph. $calc = (ceil((5 * (float) $module[$display]) / 100) + $module[$display]); // Set of max-min values for graph. @@ -502,27 +557,49 @@ class TopNWidget extends Widget $valueMax += 10; } - $height = (count($data_hbar) * 25 + 35); + $height = (count($data) * 25 + 35); $output .= '
'; $options = [ 'height' => $height, - 'axis' => 'y', 'legend' => ['display' => false], - 'scales' => [ + 'labels' => $labels, + ]; + + if ($this->values['type_graph'] !== 'pie') { + $options['scales'] = [ 'x' => [ 'grid' => ['display' => false], ], 'y' => [ 'grid' => ['display' => false], ], - ], - 'labels' => $labels, - ]; + ]; + } + + switch ($this->values['type_graph']) { + case 'bar_horizontal': + $options['axis'] = 'y'; + $output .= vbar_graph( + $data, + $options + ); + break; + + case 'pie': + $output .= pie_graph( + $data, + $options + ); + break; + + default: + $output .= vbar_graph( + $data, + $options + ); + break; + } - $output .= vbar_graph( - $data_hbar, - $options - ); $output .= '
'; return $output; From e0090aee95610a2eae267aac31297226966548a5 Mon Sep 17 00:00:00 2001 From: "alejandro.campos@artica.es" Date: Mon, 8 May 2023 14:47:22 +0200 Subject: [PATCH 031/268] wrap csv fields with string delimiter on export --- pandora_console/include/functions.php | 19 ++++++++++++++++ .../operation/events/export_csv.php | 22 +++++++++---------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/pandora_console/include/functions.php b/pandora_console/include/functions.php index 81799a549d..5a3df762eb 100644 --- a/pandora_console/include/functions.php +++ b/pandora_console/include/functions.php @@ -6458,3 +6458,22 @@ function nms_check_api() return true; } } + + +/** + * Simply return a string enclosed in quote delimiter to be used in csv exports. + * + * @param string $str String to be formatted. + * + * @return string Formatted string. + */ +function csv_format_delimiter(?string $str) +{ + if ($str === null) { + return $str; + } + + // Due to the ticket requirements, double quote is used as fixed string delimiter. + // TODO: a setup option that enables user to choose a delimiter character would probably be desirable in the future. + return '"'.$str.'"'; +} diff --git a/pandora_console/operation/events/export_csv.php b/pandora_console/operation/events/export_csv.php index 4b91f36e6d..1bbcd79d57 100644 --- a/pandora_console/operation/events/export_csv.php +++ b/pandora_console/operation/events/export_csv.php @@ -166,11 +166,11 @@ try { // Dump headers. foreach ($names as $n) { - echo io_safe_output($n).$config['csv_divider']; + echo csv_format_delimiter(io_safe_output($n)).$config['csv_divider']; } if (is_metaconsole() === true) { - echo 'server_id'.$config['csv_divider']; + echo csv_format_delimiter('server_id').$config['csv_divider']; } echo chr(13); @@ -203,21 +203,21 @@ try { switch ($key) { case 'module_status': - echo events_translate_module_status( + echo csv_format_delimiter(events_translate_module_status( $row[$key] - ); + )); break; case 'event_type': - echo events_translate_event_type( + echo csv_format_delimiter(events_translate_event_type( $row[$key] - ); + )); break; case 'criticity': - echo events_translate_event_criticity( + echo csv_format_delimiter(events_translate_event_criticity( $row[$key] - ); + )); break; case 'custom_data': @@ -244,11 +244,11 @@ try { $custom_data = implode($separator, $custom_data_array); } - echo io_safe_output($custom_data); + echo csv_format_delimiter(io_safe_output($custom_data)); break; default: - echo io_safe_output($row[$key]); + echo csv_format_delimiter(io_safe_output($row[$key])); break; } @@ -256,7 +256,7 @@ try { } if (is_metaconsole() === true) { - echo $row['server_id'].$config['csv_divider']; + echo csv_format_delimiter($row['server_id']).$config['csv_divider']; } echo chr(13); From f8f53a0b62caae6706483f5778d2243788612315 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Tue, 9 May 2023 13:01:42 +0200 Subject: [PATCH 032/268] #9610 Add OS filter and OS version filter in bulk operation --- pandora_console/godmode/groups/group_list.php | 10 ++++++ .../include/functions_massive_operations.php | 33 ++++++++++++++++--- .../javascript/jquery.pandora.controls.js | 11 ++++--- .../include/javascript/massive_operations.js | 19 +++++++++++ 4 files changed, 64 insertions(+), 9 deletions(-) diff --git a/pandora_console/godmode/groups/group_list.php b/pandora_console/godmode/groups/group_list.php index 2747b2be2e..66e6173068 100644 --- a/pandora_console/godmode/groups/group_list.php +++ b/pandora_console/godmode/groups/group_list.php @@ -107,6 +107,8 @@ if (is_ajax() === true) { // Ids of agents to be include in the SQL clause as id_agent IN (). $filter_agents_json = (string) get_parameter('filter_agents_json', ''); $status_agents = (int) get_parameter('status_agents', AGENT_STATUS_ALL); + $os_agent = (int) get_parameter('os_agent', 0); + $os_agent_version = (string) get_parameter('os_agent_version', ''); // Juanma (22/05/2014) Fix: If setted remove void agents from result // (by default and for compatibility show void agents). $show_void_agents = (int) get_parameter('show_void_agents', 1); @@ -152,6 +154,14 @@ if (is_ajax() === true) { $filter['status'] = $status_agents; } + if ($os_agent !== 0) { + $filter['id_os'] = $os_agent; + } + + if ($os_agent_version !== '') { + $filter['os_version'] = $os_agent_version; + } + if ($id_os !== 0) { $filter['id_os'] = $id_os; } diff --git a/pandora_console/include/functions_massive_operations.php b/pandora_console/include/functions_massive_operations.php index 890940b8dd..31132cb048 100644 --- a/pandora_console/include/functions_massive_operations.php +++ b/pandora_console/include/functions_massive_operations.php @@ -214,10 +214,33 @@ function get_table_inputs_masive_agents($params) ); } - $table->data[3][0] = __('Agents'); - $table->data[3][0] .= ''; + $os_list = os_get_os(true); + + $table->data[3][0] = __('OS'); + $table->data[3][1] = html_print_select( + $os_list, + 'os_agent', + 'selected', + '', + __('All'), + '', + true + ); + + $table->data[3][2] = __('OS Version'); + $table->data[3][3] = html_print_input_text( + 'os_agent_version', + '', + __('Select OS version'), + 35, + 255, + true + ); + + $table->data[4][0] = __('Agents'); + $table->data[4][0] .= ''; $agents = []; if (is_metaconsole() === false) { @@ -228,7 +251,7 @@ function get_table_inputs_masive_agents($params) ); } - $table->data[3][1] = html_print_select( + $table->data[4][1] = html_print_select( $agents, 'id_agents[]', 0, diff --git a/pandora_console/include/javascript/jquery.pandora.controls.js b/pandora_console/include/javascript/jquery.pandora.controls.js index 731ce0c761..c42f205b60 100644 --- a/pandora_console/include/javascript/jquery.pandora.controls.js +++ b/pandora_console/include/javascript/jquery.pandora.controls.js @@ -22,7 +22,9 @@ privilege: "", serialized: false, serialized_separator: "", - nodes: [] + nodes: [], + id_os: -1, + os_agent_version: "" }; /* public methods */ @@ -53,7 +55,7 @@ } else { recursion_value = config.recursion; } - + var opts = { page: "godmode/groups/group_list", get_group_agents: 1, @@ -74,7 +76,9 @@ nodes: typeof config.nodes === "function" ? config.nodes() - : config.disabled + : config.disabled, + os_agent: config.os_agent, + os_agent_version: config.os_agent_version }; jQuery.post( @@ -319,7 +323,6 @@ let href = $("a", config.spanPreview).attr("href"); let hrefPosition = href.search("group_id="); let hrefNew = href.slice(0, hrefPosition) + "group_id=" + id_group; - jQuery.post( "ajax.php", { diff --git a/pandora_console/include/javascript/massive_operations.js b/pandora_console/include/javascript/massive_operations.js index 6a372f703e..e5edfe1dce 100644 --- a/pandora_console/include/javascript/massive_operations.js +++ b/pandora_console/include/javascript/massive_operations.js @@ -110,6 +110,18 @@ function form_controls_massive_operations_agents(metaconsole) { $("#id_group").trigger("change"); }); + var os_agent; + $("#os_agent").change(function() { + os_agent = this.value; + $("#id_group").trigger("change"); + }); + + var os_agent_version; + $("#text-os_agent_version").keyup(function() { + os_agent_version = this.value; + $("#id_group").trigger("change"); + }); + if (metaconsole == 1) { $("#nodes").change(function() { disabled = $("#disabled").val(); @@ -142,6 +154,13 @@ function form_controls_massive_operations_agents(metaconsole) { }, disabled: function() { return disabled; + }, + os_agent: function() { + return os_agent; + }, + os_agent_version: function() { + console.log(os_agent_version); + return os_agent_version; } }; From 66e1de90dfecf3c0a0f2e63f41ec425ef641217b Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 9 May 2023 17:28:54 +0200 Subject: [PATCH 033/268] #10861 change permisions api functions --- pandora_console/include/functions_api.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index 9707a53769..f4652aef35 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -11640,7 +11640,7 @@ function api_set_add_user_profile($id, $thrash1, $other, $thrash2) return; } - if (!check_acl($config['id_user'], 0, 'PM')) { + if (!check_acl($config['id_user'], 0, 'UM')) { returnError('forbidden', 'string'); return; } @@ -11664,7 +11664,7 @@ function api_set_add_user_profile($id, $thrash1, $other, $thrash2) return; } - if (!check_acl($config['id_user'], $group, 'PM')) { + if (!check_acl($config['id_user'], $group, 'UM')) { returnError('forbidden', 'string'); return; } @@ -11699,7 +11699,7 @@ function api_set_delete_user_profile($id, $thrash1, $other, $thrash2) return; } - if (!check_acl($config['id_user'], 0, 'PM')) { + if (!check_acl($config['id_user'], 0, 'UM')) { returnError('forbidden', 'string'); return; } @@ -11723,7 +11723,7 @@ function api_set_delete_user_profile($id, $thrash1, $other, $thrash2) return; } - if (!check_acl($config['id_user'], $group, 'PM')) { + if (!check_acl($config['id_user'], $group, 'UM')) { returnError('forbidden', 'string'); return; } @@ -11756,7 +11756,7 @@ function api_get_user_profiles_info($thrash1, $thrash2, $thrash3, $returnType) { global $config; - if (!check_acl($config['id_user'], 0, 'PM')) { + if (!check_acl($config['id_user'], 0, 'UM')) { returnError('forbidden', 'string'); return; } @@ -16969,7 +16969,7 @@ function api_set_delete_user_permission($thrash1, $thrash2, $other, $returnType) { global $config; - if (!check_acl($config['id_user'], 0, 'AW')) { + if (!check_acl($config['id_user'], 0, 'UM')) { returnError('forbidden', 'string'); return; } From 1203ea48aa7968071a6961b4c667bef32e84e870 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Wed, 10 May 2023 13:06:33 +0200 Subject: [PATCH 034/268] #10627 Fix conditional --- .../operation/messages/message_edit.php | 52 +++++++++++++------ 1 file changed, 35 insertions(+), 17 deletions(-) diff --git a/pandora_console/operation/messages/message_edit.php b/pandora_console/operation/messages/message_edit.php index 0e232788e7..ff028c2a62 100644 --- a/pandora_console/operation/messages/message_edit.php +++ b/pandora_console/operation/messages/message_edit.php @@ -226,29 +226,47 @@ if ($read_message) { } if ($send_mes === true) { - if (empty($dst_user) === true && empty($dst_group) === true) { + if (empty($dst_user) === true && empty($dst_group) === true && $dst_group !== '0') { // The user or group must be selected for send the message. ui_print_error_message(__('User or group must be selected.')); } else { - // Create message (destination user). - $return = messages_create_message( - $config['id_user'], - [$dst_user], - [], - $subject, - $message - ); + if (empty($dst_user) === true) { + // Create message (destination user). + $return = messages_create_message( + $config['id_user'], + [], + [$dst_group], + $subject, + $message + ); - $user_name = get_user_fullname($dst_user); - if (empty($user_name) === true) { - $user_name = $dst_user; + ui_print_result_message( + $return, + __('Message successfully sent to users'), + __('Error sending message to users') + ); + } else { + // Create message (destination user). + $return = messages_create_message( + $config['id_user'], + [$dst_user], + [], + $subject, + $message + ); + + $user_name = get_user_fullname($dst_user); + if (empty($user_name) === true) { + $user_name = $dst_user; + } + + ui_print_result_message( + $return, + __('Message successfully sent to user %s', $user_name), + __('Error sending message to user %s', $user_name) + ); } - ui_print_result_message( - $return, - __('Message successfully sent to user %s', $user_name), - __('Error sending message to user %s', $user_name) - ); // If is a reply, is not necessary do more. if ($replied === true) { From 382d8b9b241696368f24db4e7f3252c19f96e0b0 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 10 May 2023 15:37:25 +0200 Subject: [PATCH 035/268] #11162 visual fix sunburst --- pandora_console/include/styles/events.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pandora_console/include/styles/events.css b/pandora_console/include/styles/events.css index e4dfbe428d..32342911ea 100644 --- a/pandora_console/include/styles/events.css +++ b/pandora_console/include/styles/events.css @@ -549,3 +549,8 @@ div#main_pure:has(.events-pure) { .margn-b-50px { margin-bottom: 50px !important; } + +div#sunburst > svg { + width: 750px; + height: 750px; +} From 24848df3ba4935b5acbe7df0f6fa98f4ea81b73a Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Wed, 10 May 2023 17:47:20 +0200 Subject: [PATCH 036/268] #1001 new item report for group elastic log --- pandora_console/extras/mr/63.sql | 2 + .../reporting_builder.item_editor.php | 61 ++++++++++++++++++- .../godmode/reporting/reporting_builder.php | 38 ++++++++++++ .../include/functions_reporting.php | 7 +++ .../include/functions_reporting_html.php | 4 ++ pandora_console/include/functions_reports.php | 5 ++ pandora_console/pandoradb.sql | 1 + 7 files changed, 117 insertions(+), 1 deletion(-) diff --git a/pandora_console/extras/mr/63.sql b/pandora_console/extras/mr/63.sql index 9aca7c604c..98c3a81b59 100644 --- a/pandora_console/extras/mr/63.sql +++ b/pandora_console/extras/mr/63.sql @@ -40,4 +40,6 @@ CREATE TABLE IF NOT EXISTS `tsesion_filter_log_viewer` ( ALTER TABLE `talert_template_module_actions` ADD COLUMN `recovered` TINYINT NOT NULL DEFAULT 0; +ALTER TABLE `treport_content` ADD COLUMN `period_range` INT NULL DEFAULT 0 AFTER `period`; + COMMIT; diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index cc05d9d3f4..61887eeb19 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -321,6 +321,19 @@ switch ($action) { $full_text = empty($es['full_text']) ? 0 : $es['full_text']; break; + case 'event_report_log_table': + $period = $item['period']; + $period_range = $item['period_range']; + $description = $item['description']; + + $es = json_decode($item['external_source'], true); + $id_agents = $es['id_agents']; + $source = $es['source']; + $search = $es['search']; + $log_number = empty($es['log_number']) ? $log_number : $es['log_number']; + $full_text = empty($es['full_text']) ? 0 : $es['full_text']; + break; + case 'simple_graph': $fullscale = isset($style['fullscale']) ? (bool) $style['fullscale'] : 0; $percentil = isset($style['percentil']) ? (bool) $style['percentil'] : 0; @@ -1025,6 +1038,7 @@ switch ($action) { case 'prediction_date': case 'simple_baseline_graph': case 'event_report_log': + case 'event_report_log_table': case 'increment': $label = (isset($style['label'])) ? $style['label'] : ''; break; @@ -1413,6 +1427,29 @@ $class = 'databox filters'; +
+ + + +
'; @@ -571,6 +594,11 @@ if ($show_update_action_menu) { true ); $data .= ''; + if (is_metaconsole()) { + // Restore db connection. + metaconsole_restore_db(); + } + echo $data; return; } @@ -933,6 +961,7 @@ if ($get_agent_alerts_datatable === true) { $tmp->last_fired = $row[7]; $tmp->status = $row[8]; $tmp->validate = $row[9]; + $tmp->actions = $row[10]; } else { // Open. $tmp->standby = $row[0]; diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index 4dcf94edf1..62999b53b3 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -1139,6 +1139,7 @@ function ui_format_alert_row( 'last_fired' => 7, 'status' => 8, 'validate' => 9, + 'actions' => 10, ]; } else { $index = [ @@ -1458,6 +1459,69 @@ function ui_format_alert_row( } $data[$index['status']] = ui_print_status_image($status, $title, true); + $data[$index['status']] .= '
${dt.caption}
+ + + +
option:selected").val() == undefined) { dialog_message('#message_no_group'); @@ -6387,6 +6430,7 @@ function chooseType() { $("#row_description").hide(); $("#row_label").hide(); $("#row_period").hide(); + $("#row_period_range").hide(); $("#row_agent").hide(); $("#row_module").hide(); $("#row_period").hide(); @@ -6561,7 +6605,22 @@ function chooseType() { loadLogAgents(); - break; + break; + + case 'event_report_log_table': + $("#log_help_tip").css("visibility", "visible"); + $("#row_description").show(); + $("#row_period").show(); + $("#row_period_range").show(); + $("#row_search").show(); + $("#row_log_number").show(); + $("#agents_row").show(); + $("#row_source").show(); + $("#row_historical_db_check").hide(); + + loadLogAgents(); + + break; case 'increment': $("#row_description").show(); diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php index cd049f1d83..73b63408d8 100755 --- a/pandora_console/godmode/reporting/reporting_builder.php +++ b/pandora_console/godmode/reporting/reporting_builder.php @@ -1613,6 +1613,25 @@ switch ($action) { $good_format = true; break; + case 'event_report_log_table': + $agents_to_report = get_parameter('id_agents3'); + $source = get_parameter('source', ''); + $search = get_parameter('search', ''); + $full_text = (integer) get_parameter('full_text', 0); + $log_number = get_parameter('log_number', ''); + + $es['source'] = $source; + $es['id_agents'] = $agents_to_report; + $es['search'] = $search; + $es['full_text'] = $full_text; + $es['log_number'] = $log_number; + + $values['external_source'] = json_encode($es); + $values['period'] = get_parameter('period'); + $values['period_range'] = get_parameter('period_range'); + $good_format = true; + break; + case 'prediction_date': $values['period'] = get_parameter('period1'); $values['top_n'] = get_parameter( @@ -2562,6 +2581,25 @@ switch ($action) { $good_format = true; break; + case 'event_report_log_table': + $agents_to_report = get_parameter('id_agents3'); + $source = get_parameter('source', ''); + $search = get_parameter('search', ''); + $full_text = (integer) get_parameter('full_text', 0); + $log_number = get_parameter('log_number', ''); + + $es['source'] = $source; + $es['id_agents'] = $agents_to_report; + $es['search'] = $search; + $es['full_text'] = $full_text; + $es['log_number'] = $log_number; + + $values['external_source'] = json_encode($es); + $values['period'] = get_parameter('period'); + $values['period_range'] = get_parameter('period_range'); + $good_format = true; + break; + case 'agent_module': case 'agent_module_status': $agents_to_report_text = get_parameter('id_agents2-multiple-text'); diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index 5adae9abf7..87b343186c 100755 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -412,6 +412,13 @@ function reporting_make_reporting_data( ); break; + case 'event_report_log_table': + $report['contents'][] = reporting_log_table( + $report, + $content + ); + break; + case 'increment': $report['contents'][] = reporting_increment( $report, diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php index 60b70c751d..6b1528a868 100644 --- a/pandora_console/include/functions_reporting_html.php +++ b/pandora_console/include/functions_reporting_html.php @@ -259,6 +259,10 @@ function reporting_html_print_report($report, $mini=false, $report_info=1) reporting_html_log($table, $item); break; + case 'event_report_log_table': + reporting_html_log_table($table, $item); + break; + case 'permissions_report': reporting_html_permissions($table, $item); break; diff --git a/pandora_console/include/functions_reports.php b/pandora_console/include/functions_reports.php index 0b343d449d..a10122fc43 100755 --- a/pandora_console/include/functions_reports.php +++ b/pandora_console/include/functions_reports.php @@ -944,6 +944,11 @@ function reports_get_report_types($template=false, $not_editor=false) 'optgroup' => __('Log'), 'name' => __('Log report'), ]; + + $types['event_report_log_table'] = [ + 'optgroup' => __('Log'), + 'name' => __('Log report by period'), + ]; } if ($template === false) { diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index e868f73d6d..06e47f5340 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1567,6 +1567,7 @@ CREATE TABLE IF NOT EXISTS `treport_content` ( `id_agent_module` BIGINT UNSIGNED NULL DEFAULT NULL, `type` VARCHAR(30) DEFAULT 'simple_graph', `period` INT NOT NULL DEFAULT 0, + `period_range` INT DEFAULT 0, `order` INT NOT NULL DEFAULT 0, `name` VARCHAR(300) NULL, `description` MEDIUMTEXT, From 6e3b7f4174e36e3e6b03efe30df53233f0ad4609 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 11 May 2023 12:14:06 +0200 Subject: [PATCH 037/268] #10011 control period in report log --- .../reporting_builder.item_editor.php | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index 61887eeb19..e67fb5f8d1 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -7577,9 +7577,68 @@ function dialog_message(message_id) { } }); } - +function control_period_range() { + let value_period_range = $('#row_period_range #hidden-period_range').val(); + let current_value = $('#row_period #hidden-period').val(); + let min_range = (current_value/12); + if(min_range > value_period_range) { + $('#row_period_range div:nth-child(2) select option').removeAttr("selected"); + $('#row_period_range div:nth-child(1)').hide(); + $('#row_period_range div:nth-child(2)').show(); + setTimeout(() => { + if(min_range >= 2592000) { + $('#row_period_range input').val(Math.round((min_range/2592000) * 100) / 100); + $('#row_period_range div:nth-child(2) select option[value="2592000"]').attr("selected", "selected"); + $('#row_period_range div:nth-child(2) select').val(2592000); + $('#row_period_range #hidden-period_range').val(min_range); + return; + } + if(min_range >= 604800) { + $('#row_period_range input').val(Math.round((min_range/604800) * 100) / 100); + $('#row_period_range div:nth-child(2) select option[value="604800"]').attr("selected", "selected"); + $('#row_period_range div:nth-child(2) select').val(604800); + $('#row_period_range #hidden-period_range').val(min_range); + return; + } + if(min_range >= 86400) { + $('#row_period_range input').val(Math.round((min_range/86400) * 100) / 100); + $('#row_period_range div:nth-child(2) select option[value="86400"]').attr("selected", "selected"); + $('#row_period_range div:nth-child(2) select').val(86400); + $('#row_period_range #hidden-period_range').val(min_range); + return; + } + if(min_range >= 3600) { + $('#row_period_range input').val(Math.round((min_range/3600) * 100) / 100); + $('#row_period_range div:nth-child(2) select option[value="3600"]').attr("selected", "selected"); + $('#row_period_range div:nth-child(2) select').val(3600); + $('#row_period_range #hidden-period_range').val(min_range); + return; + } + if(min_range >= 60) { + $('#row_period_range input').val(Math.round((min_range/60) * 100) / 100); + $('#row_period_range div:nth-child(2) select option[value="60"]').attr("selected", "selected"); + $('#row_period_range div:nth-child(2) select option[value="60"]').val(60); + $('#row_period_range #hidden-period_range').val(min_range); + return; + } + }, 800); + } +} $(document).ready(function () { $('[id^=period], #combo_graph_options, #combo_sla_sort_options').next().css('z-index', 0); + + $('#row_period input').change(function(e){ + control_period_range(); + }); + $('#row_period select').change(function(e){ + control_period_range(); + }); + $('#row_period_range input').change(function(e){ + control_period_range(); + }); + $('#row_period_range select').change(function(e){ + control_period_range(); + }); }); From c3d8aa39bd6e15acd514345dd9d1087ca90465cb Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Thu, 11 May 2023 14:48:06 +0200 Subject: [PATCH 038/268] #11161 Fix conditional to evaluate user_admin. Fix style CSS. Fix process_user_log --- .../godmode/users/configure_user.php | 3 +- .../godmode/users/user_management.php | 54 +++++++++++++------ pandora_console/include/styles/pandora.css | 4 +- 3 files changed, 41 insertions(+), 20 deletions(-) diff --git a/pandora_console/godmode/users/configure_user.php b/pandora_console/godmode/users/configure_user.php index 2f01df4a55..22e573dec5 100644 --- a/pandora_console/godmode/users/configure_user.php +++ b/pandora_console/godmode/users/configure_user.php @@ -715,11 +715,12 @@ if ($update_user) { $password_new = (string) get_parameter('password_new', ''); $password_confirm = (string) get_parameter('password_confirm', ''); $own_password_confirm = (string) get_parameter('own_password_confirm', ''); + $id_user = (string) get_parameter('id_user', ''); if ($password_new != '') { $correct_password = false; - $user_credentials_check = process_user_login($config['id_user'], $own_password_confirm, true); + $user_credentials_check = process_user_login($id_user, $own_password_confirm, true); if ($user_credentials_check !== false) { $correct_password = true; diff --git a/pandora_console/godmode/users/user_management.php b/pandora_console/godmode/users/user_management.php index 45c54306ce..0add5b02d5 100644 --- a/pandora_console/godmode/users/user_management.php +++ b/pandora_console/godmode/users/user_management.php @@ -302,25 +302,45 @@ $passwordManageTable->data['fields_repeatpassword'][0] = html_print_input_text_e true ); -if ($new_user === false) { +if ($new_user === false && users_is_admin() === false) { $passwordManageTable->data['captions_currentpassword'][0] = __('Current password'); $passwordManageTable->rowclass['fields_currentpassword'] = 'w540px'; - $passwordManageTable->data['fields_currentpassword'][0] = html_print_input_text_extended( - 'own_password_confirm', - '', - 'own_password_confirm', - '', - '20', - '45', - $view_mode, - '', - [ - 'class' => 'input w100p', - 'placeholder' => __('Own password confirmation'), - ], - true, - true - ); + + if ($user_info['id_user'] === $config['id_user']) { + $passwordManageTable->data['fields_currentpassword'][0] = html_print_input_text_extended( + 'own_password_confirm', + '', + 'own_password_confirm', + '', + '20', + '45', + $view_mode, + '', + [ + 'class' => 'input w100p', + 'placeholder' => __('Own password confirmation'), + ], + true, + true + ); + } else { + $passwordManageTable->data['fields_currentpassword'][0] = html_print_input_text_extended( + 'own_password_confirm', + '', + 'own_password_confirm', + '', + '20', + '45', + $view_mode, + '', + [ + 'class' => 'input w100p', + 'placeholder' => __('Third user password confirmation'), + ], + true, + true + ); + } } $userManagementTable->data['passwordManage_table'] = html_print_table($passwordManageTable, true); diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index adf1325b07..c3fda4108d 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -11597,8 +11597,8 @@ p.trademark-copyright { } .show-hide-pass { - position: absolute; - right: 12px; + position: relative; + right: 40px; top: 4px; border: 0; outline: none; From 37f24d3b5f95baddf4bc5bd3f1d7e205dc13b056 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 11 May 2023 14:54:34 +0200 Subject: [PATCH 039/268] #10011 fixed mr --- pandora_console/extras/mr/63.sql | 2 -- pandora_console/extras/mr/65.sql | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 pandora_console/extras/mr/65.sql diff --git a/pandora_console/extras/mr/63.sql b/pandora_console/extras/mr/63.sql index 98c3a81b59..9aca7c604c 100644 --- a/pandora_console/extras/mr/63.sql +++ b/pandora_console/extras/mr/63.sql @@ -40,6 +40,4 @@ CREATE TABLE IF NOT EXISTS `tsesion_filter_log_viewer` ( ALTER TABLE `talert_template_module_actions` ADD COLUMN `recovered` TINYINT NOT NULL DEFAULT 0; -ALTER TABLE `treport_content` ADD COLUMN `period_range` INT NULL DEFAULT 0 AFTER `period`; - COMMIT; diff --git a/pandora_console/extras/mr/65.sql b/pandora_console/extras/mr/65.sql new file mode 100644 index 0000000000..43b7926c36 --- /dev/null +++ b/pandora_console/extras/mr/65.sql @@ -0,0 +1,5 @@ +START TRANSACTION; + +ALTER TABLE `treport_content` ADD COLUMN `period_range` INT NULL DEFAULT 0 AFTER `period`; + +COMMIT; From 05cc72eb0f6ce7eb025520bfdec455e08ab54b90 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Fri, 12 May 2023 14:16:04 +0200 Subject: [PATCH 040/268] #10696 new widget for netflow --- .../include/lib/Dashboard/Widget.php | 4 + .../include/lib/Dashboard/Widgets/netflow.php | 458 ++++++++++++++++++ 2 files changed, 462 insertions(+) create mode 100644 pandora_console/include/lib/Dashboard/Widgets/netflow.php diff --git a/pandora_console/include/lib/Dashboard/Widget.php b/pandora_console/include/lib/Dashboard/Widget.php index 245c9f0481..76b87f0b01 100644 --- a/pandora_console/include/lib/Dashboard/Widget.php +++ b/pandora_console/include/lib/Dashboard/Widget.php @@ -416,6 +416,10 @@ class Widget $className .= '\OsQuickReportWidget'; break; + case 'netflow': + $className .= '\Netflow'; + break; + case 'GroupedMeterGraphs': case 'ColorModuleTabs': case 'BlockHistogram': diff --git a/pandora_console/include/lib/Dashboard/Widgets/netflow.php b/pandora_console/include/lib/Dashboard/Widgets/netflow.php new file mode 100644 index 0000000000..d4e6410247 --- /dev/null +++ b/pandora_console/include/lib/Dashboard/Widgets/netflow.php @@ -0,0 +1,458 @@ +width = $width; + + // Height. + $this->height = $height; + + // Grid Width. + $this->gridWidth = $gridWidth; + + // Options. + $this->values = $this->getOptionsWidget(); + + // Positions. + $this->position = $this->getPositionWidget(); + + // Page. + $this->page = basename(__FILE__); + + // ClassName. + $class = new \ReflectionClass($this); + $this->className = $class->getShortName(); + + // Title. + $this->title = __('Netflow'); + + // Name. + if (empty($this->name) === true) { + $this->name = 'netflow'; + } + } + + + /** + * Generates inputs for form (specific). + * + * @return array Of inputs. + * + * @throws Exception On error. + */ + public function getFormInputs(): array + { + $values = $this->values; + + // Retrieve global - common inputs. + $inputs = parent::getFormInputs(); + + // Default values. + if (isset($values['quantity']) === false) { + $values['quantity'] = 5; + } + + // Default values. + if (isset($values['period']) === false) { + $values['period'] = SECONDS_1WEEK; + } + + // Default values. + if (isset($values['max_values']) === false) { + $values['max_values'] = 10; + } + + // Period. + $inputs[] = [ + 'label' => __('Interval'), + 'arguments' => [ + 'name' => 'period', + 'type' => 'interval', + 'value' => $values['period'], + 'nothing' => __('None'), + 'nothing_value' => 0, + 'style_icon' => 'flex-grow: 0', + ], + ]; + $chart_types = netflow_get_chart_types(); + $chart_types['usage_map'] = __('Usage map'); + $inputs[] = [ + 'label' => __('Type graph'), + 'arguments' => [ + 'name' => 'chart_type', + 'type' => 'select', + 'fields' => $chart_types, + 'selected' => $values['chart_type'], + ], + ]; + + $aggregate_list = [ + 'srcip' => __('Src Ip Address'), + 'dstip' => __('Dst Ip Address'), + 'srcport' => __('Src Port'), + 'dstport' => __('Dst Port'), + ]; + $inputs[] = [ + 'label' => __('Aggregated by'), + 'id' => 'aggregated', + 'arguments' => [ + 'name' => 'aggregate', + 'type' => 'select', + 'fields' => $aggregate_list, + 'selected' => $values['aggregate'], + ], + ]; + + $inputs[] = [ + 'label' => __('Data to show'), + 'id' => 'data_to_show', + 'arguments' => [ + 'name' => 'action', + 'type' => 'select', + 'fields' => network_get_report_actions(), + 'selected' => $values['action'], + ], + ]; + + $max_values = [ + '2' => '2', + '5' => '5', + '10' => '10', + '15' => '15', + '20' => '20', + '25' => '25', + '50' => '50', + ]; + + $inputs[] = [ + 'label' => __('Max values'), + 'arguments' => [ + 'name' => 'max_values', + 'type' => 'select', + 'fields' => $max_values, + 'selected' => $values['max_values'], + ], + ]; + + return $inputs; + } + + + /** + * Get Post for widget. + * + * @return array + */ + public function getPost():array + { + // Retrieve global - common inputs. + $values = parent::getPost(); + + $values['period'] = \get_parameter('period', 0); + $values['chart_type'] = \get_parameter('chart_type', ''); + $values['aggregate'] = \get_parameter('aggregate'); + $values['max_values'] = \get_parameter('max_values', 10); + $values['action'] = \get_parameter('action', 'srcip'); + + return $values; + } + + + /** + * Draw widget. + * + * @return string + */ + public function load() + { + global $config; + + $output = ''; + + $size = parent::getSize(); + + $start_date = (time() - $this->values['period']); + $end_date = time(); + if ($this->values['chart_type'] === 'usage_map') { + $map_data = netflow_build_map_data( + $start_date, + $end_date, + $this->values['max_values'], + ($this->values['action'] === 'talkers') ? 'srcip' : 'dstip' + ); + $has_data = !empty($map_data['nodes']); + + if ($has_data === true) { + $map_manager = new \NetworkMap($map_data); + $map_manager->printMap(); + } else { + ui_print_info_message(__('No data to show')); + } + } else { + $netflowContainerClass = ($this->values['chart_type'] === 'netflow_data' || $this->values['chart_type'] === 'netflow_summary' || $this->values['chart_type'] === 'netflow_top_N') ? '' : 'white_box'; + $filter = [ + 'aggregate' => $this->values['aggregate'], + 'netflow_monitoring_interval' => 300, + ]; + + $output .= html_print_input_hidden( + 'selected_style_theme', + $config['style'], + true + ); + $style = 'height: 100%; border: none;'; + if ($this->values['chart_type'] !== 'netflow_area') { + $style .= ' width: 95%;'; + } + + // Draw the netflow chart. + $output .= html_print_div( + [ + 'class' => $netflowContainerClass, + 'style' => $style, + 'content' => netflow_draw_item( + $start_date, + $end_date, + 12, + $this->values['chart_type'], + $filter, + $this->values['max_values'], + '', + 'HTML', + 0 + ), + ], + true + ); + } + + return $output; + + } + + + /** + * Return aux javascript code for forms. + * + * @return string + */ + public function getFormJS() + { + return ' + $(document).ready(function(){ + //Limit 1 week + $("#period_select option").each(function(key, element){ + if(element.value > 604800){ + $(element).remove(); + } + }) + $("#period_manual option").each(function(key, element){ + if(element.value > 604800){ + $(element).remove(); + } + }); + $("#period_manual input").on("change", function(e){ + if($("#hidden-period").val() > 604800) { + $(this).val(1); + $("#hidden-period").val(604800); + $("#period_manual select option").removeAttr("selected"); + setTimeout(() => { + $("#period_default select option[value=\'604800\']").attr("selected", "selected"); + $("#period_manual select option[value=\'604800\']").attr("selected", "selected"); + $("#period_manual select").val(604800); + }, 500); + } + }); + if(this.value === "usage_map") { + $("#data_to_show").show(); + $("#aggregated").hide(); + } else { + $("#data_to_show").hide(); + $("#aggregated").show(); + } + $("#chart_type").on("change", function(e){ + if(this.value === "usage_map") { + $("#data_to_show").show(); + $("#aggregated").hide(); + } else { + $("#data_to_show").hide(); + $("#aggregated").show(); + } + }); + }); + '; + } + + + /** + * Get description. + * + * @return string. + */ + public static function getDescription() + { + return __('Netflow'); + } + + + /** + * Get Name. + * + * @return string. + */ + public static function getName() + { + return 'netflow'; + } + + + /** + * Get size Modal Configuration. + * + * @return array + */ + public function getSizeModalConfiguration(): array + { + $size = [ + 'width' => 400, + 'height' => 530, + ]; + + return $size; + } + + +} From 5adcdb1cae17071f2e242d4eb92832642885d4ca Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 16 May 2023 09:34:59 +0200 Subject: [PATCH 041/268] #10696 fixed select Usage map --- pandora_console/include/lib/Dashboard/Widgets/netflow.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/netflow.php b/pandora_console/include/lib/Dashboard/Widgets/netflow.php index d4e6410247..1451ccd9d9 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/netflow.php +++ b/pandora_console/include/lib/Dashboard/Widgets/netflow.php @@ -396,7 +396,7 @@ class Netflow extends Widget }, 500); } }); - if(this.value === "usage_map") { + if($("#chart_type").val() === "usage_map") { $("#data_to_show").show(); $("#aggregated").hide(); } else { From 4182d6e3346d64f1dd04753070ba6af02d71774a Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Tue, 16 May 2023 12:19:20 +0200 Subject: [PATCH 042/268] #11191 functionality is given to the Add button --- pandora_console/include/functions_notifications.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pandora_console/include/functions_notifications.php b/pandora_console/include/functions_notifications.php index eab3ff5067..d7d6af962b 100644 --- a/pandora_console/include/functions_notifications.php +++ b/pandora_console/include/functions_notifications.php @@ -931,7 +931,7 @@ function notifications_print_two_ways_select($info_selec, $users, $source_id) true, [ 'title' => __('Add elements'), - 'style' => 'rotate: 90deg', + 'style' => 'rotate: 180deg', 'onclick' => sprintf( "notifications_modify_two_ways_element('%s', '%s', 'add')", $users, @@ -970,11 +970,7 @@ function notifications_print_two_ways_select($info_selec, $users, $source_id) __('Add'), 'Add', false, - sprintf( - "notifications_add_source_element_to_database('%s', '%s')", - $users, - $source_id - ), + 'notifications_add_source_element_to_database("'.$users.'",'.$source_id.')', "class='sub add'", true ) From e737cb4f014dd63cbf38a67f15d0b2fa9a2a6434 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 16 May 2023 13:36:32 +0200 Subject: [PATCH 043/268] #10696 added image netflow widget --- pandora_console/images/widgets/netflow.png | Bin 0 -> 7588 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pandora_console/images/widgets/netflow.png diff --git a/pandora_console/images/widgets/netflow.png b/pandora_console/images/widgets/netflow.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2b216824e0a5a4c67d39d20a28cd5805aa90a5 GIT binary patch literal 7588 zcmV;V9b4jwP)vqqX~?lGF?oJjmZ;dV`yal z>TS=`uq}T`T$=+t5=EFh<((O}5Qe@#GYQkx3s-N7Fp&Tv>`L1nZ8n<~@z!oU!l$WC zpbnzBRDNY>P~xAvBP~cJNiB)2{(c8co-~Dz9m={1cW&L5WRoC$vwW$LICau^xRh&# z;E-}qrd+T9$AAPWb?YWRF|J2z`1rT_K$;xV)BcnoSRsA=%~~M?t6^Z>{)XTm7%0GK zK%hjM6BCf}F7*$AM$5pl!Z?~&@R_AQ?+VoA>1zoPnZPCA5$R7C&1yoEB*LXYd%o}( zElk-NX)+l7Y$3eeH|8M2FlGTsoOww~YE90>2ARxU&f9%r&WY17%p)a#n_7o6n@d?H zTE_8V<&o&ax@+^gh{OBShFE5#aoW24Q%;e3b!?DMGfWHG72$$#G154yCVGGmEV=@N8FFsi;=|%Uff51_9?Rm>hV*-p_mN83&~kiO{3oGA z6F%M4fCgoK2~zU>*?gu|!;8Qcq68^n$Z#GhW&3ehnOFep|7s*qx_thO5N2qT3lLFY z+J|qZ4_pucAvb3V4=W}!%TiN)3$K`?M0srng)R(p*`i2G5gsE75c>;O{vKv#HI>CM zXTr2_F^=$NI8r+?qN8C}6O@$@+vF}!NK6D@kk!lP{@2lhl=3b3HdP`dwU`JZrSIAL z(ZDy}RKk~qV>e%DkS4`+lJF^Ftv`(0Ed|Z+oPqO^O|=0eea(K-*YIpx_BV29R_~EqCR?x>6W`hrKgYjJ>a@z^dk!4+ zyIfwDVe$n*%-)cxRo}k&j9f-{V6;0D2+0+eyk=`S$1(ELF&PB2hB;|D^Q75q5~7*r zrKAR^I0!K@DnB(aew;~f^ii_~9Lwe>bZ>Q)=CkF?60+=;Y!zUc#&CvL7p;CcCCte@+ zNwPQ%iCGO3LFOyzM-KCoIB{NQ!qMU3;ct%qbV*Y&l2sSfsZ%G&$;lBWbmGjGVLIuf za2jvfvZdr9!xfJep^>A(7T_*fzUmj8EzFy zGfsZ@Eh&J+6vrc)^PR-E_*rc8#@53CGGR%C;#vB33C*0h2%=lZz|i;S^V8)I#*Pxo zxIji&oHol%orO##0js8?8LnNu3Kc3=q*30V{?Q;fefl)qEh5cTU^Q{DR~G zli<*ZEJu31UXchQVl&>;7Z>3O5zHw|XxnD#uu>*CnCGOpXaJo~M}xeNL%BUCOQ_?^ zuS)PHPM!*_yVm0840R*xK$8}2Bya#N>) z{qa(f(3dmkNr?Tt<|LT7;_~~<&_LWv#mgw1{aiS6ULdR#P$Yy1NDSS^-+qD9**fUj z=n$B3_k_4!(^L@Ou@OJjx_c|97--|)iqH#9>Xj6AAFFB1E1>o%o+!Q6kPs{BZhB4y z_+tD3Xx=vZer6KNI&pN31VAD-mv5Gt#qpaV@9-<^(Y0Yl~sF!YpgPlhC{EX{9`hgp?2vj+IcGOy!-KF54>4G7T$jRH?2jO|LEUi{myK zLXjnZmsZ!_Zl1V6Z-!Cy2|c5algXB7CM2b3#gMmFNm8<&iHTnxTB5*^vwK{$fJecn zT@TiUXUJZsI(N#j@82Icu3B82bZ_TDF=H?opi!enT(39BwGIiZR3t~2uEp%`vEwr7 z;DLP|v$C>a*REaAv}sc~bm$O7MMXhoW+ueO#!AYkn=O{dBhJDlg_cCRcI|5F+-IcX zNTdz$Ii)u0xN3696joH2U-$0ayAT>03f;PO<5x_TD_7>X!)w&20hlJ|++{!xziipE zHs=D!i`w1>kXoa?K(_0v%2nEvFkCIriM&#|g(i(s5)VgS6qhSDF+G?_k0vaOeE!83 z$absq)pH(0M7dq7=b=m2?l64h7#=!e$Y6M`O+P-&846+k)R8cG>I`VxUbJ8q;ol+a zxX_B_agHKDRg4O1M%5DH&IVj!2oHYn9B0eUy^8c$jUNmfzksYm2EmA=QSfxt8UkZ@ z-gtv-UhBx3qiqjsUY{geHWBguuiP#zKRb?i9rPd$y(tTiCdWvs_1o7UK;QQDC3q)}9OWg1Qo^vi&S{2_ARYz3 z)ahj?C@6pyP3plL@x35@|6a(?&j&p688l=htQuax9}}BIyA*1&HPL%I3+whZBs(n) z`MQf0CB$J@8MC{8v24zSgbkav4tAtB5_iYq3iXJt4e{hG%i>H8^kjDM%O@;(6dl{` zj%{7n^v*}hy9!9tE<>2{?!A3NW`E)b7=O%3UeVY~c$VSqS&W z{*nbf#VDSp`j>&gvZZTJP&!RjL@r5?oPE*E-aKrhG(7E7T@PBW>1LJ2pjDX+1`doWA694NxO=W_C|c5{agQ;SoSd#tvJU{$x-#vlQqMGuY}}a8V5~=&gr$X?dQHX?*h7+rDQUk)BOvNbeRx zbVl8u$9srH(xaUx${aV9ij!q#<;ven<*^z;nN11#VZj49!-@X=JLFr^w_;}AnjLi+ zj=Qh!Wr^{K#LX;Qkl4HRadCAd%q;ltjz(q^=h9k8Ti^d)vG&BnKJC$(D&y^)o4o! zEvf$nX2E|`tC>yaa!SN-kww&MgvU`SpSR(JA=t2GPah=-F)HSk$`&J7!N|x+GskhT zXwf1-^&a$T9DTW;iR^aZ&oa$fxEQ~8@7{3q(4GNGjfQ;K-Dkry7Ch7G(W3|C<>m2y zZf-90?AcTCtVfBUC0y=IN1Vqp-JZUoU1r3EI~%sF48>Q1({v@@XwX$rN<+9^W->C4 zgDdKUwus85IkNjh_OmQ>2c;$1WhSa#eQ;J~QA)yotdQtY;t`3-&K$XKyGHl-h-Hd> z=%YO z8$caKywPFHRd~7rv?yD_Ru-qyTxMn~(exZYCW#DWY4F;?;(@tGxBr7~aU=K&OrJI# zcJJJzc+`kny_av~!TGb7Bo(d}Q3HIm#Y%#b1P3B6F*E+Xkq{mp0e>EnsC-Gt)o$1h z@JG*2C5a?*m*_RCef=P$ymU&a_HlhB?sNx$5 zMLLx36f@Xsl`W?@!R85CGD2(d?wGM~D^~|aL^9rTPBCMti*8w|^QVtVBqC04+qNz2 zKgcf#1#n(&9)B4dPp0uwHpbm?F7;+g1aZoa?}(fW3k!vu-G51vP`kWIbTa{lOwprv z0q8`)qs*WR3%PLvZQ8UEsxV-{03erR;Nan-5MHOA0QW|~DQ0kFx99MNNtK@aglyx# zOoPu>Gb^jf@R=)gK>A9OUxiaWay_KQUG<=RxVq@ ztD~S=%AbGkg%wK{!j%jLwl9`pXp|PFPw5S(PguW0?l6M5E;ED3|4AGH2aaX}K3X@j zvmtH!Ht;PI29rpywKnw_#CD$nJHNJOsPns8nEENIB^OBsO?S1R>~_t6?%stfbDNuh zK4gOUY}4l;m&}H9L|YEcUhF`+-0AS+vQZHIx)%8t+{^E2VdiJ?Fn-dHP&M5Cg%BfA z0LLq;LIE-XyOQw_EVK69*)uYzQV`CD@0QGl#VIeubb>COzkppUttIrzI4w+izZ+aQ zYyZWMd#Mp;dDm7<2g4323N4;7Zgj!DJH48{Aid^F3q#T2%8?_=LP{>@#x+ofWkHL6 zQVC)HwPOn)qE>UzXsid#+c&S9&Ya3%1`hiqT1h3J(sYO!n%P}{&C;o_22?pap;;ed zgr~$E+iHL_JA#*E)UQ;~x!!}u{92Oav}gA*bGk$u2&AIF6@0>tg($m zq9o4TvXSnUq`rg4eqSND`#;DAt73lnHz-AM3mtzXEhxhB8>n_tS31|N5v|xrc zK4s?2*4q^B*613T3vcf@g-^M~y z1jiX=(<$;3-~AR~S+!a1r^+1kTFZNurAZn;B_)NutuG(RG0vNzwJi8a+_@HD&8$Ay z=XwUQu_Ihw7KF2Mk1=9bHM08st@$JKL&-p#qui|F;6Yt^a+6)IGC;CtN8HHl|( zU%PhAbn4V8Ao|!$>9V0~yTuKgYwuV_iE;o}j@%h)z~33-h4UpDTS~cc$qCP?^o4mn z*RNmCqCuj6vpaL<40P$zh4b+X_|B0F_Hu2NPcC)6OD=V(J~o?GL5$k|`Keqf1jgUG z$-Nzm7gkU(Xm5Abs#UOY<3=7Mo19UvT)7gqZQI7jFJHb4D^{%F&1NYS`Hu!;8(>@H zlQzM&afKO_2g*fV@rShXoEvJOcpa))vu3J$CB|6s-bwA+wIL`dh!+%A4&&rH2p>m7 zPZ$p)wq#I{kE_ErNk4GdrC|c)fpSrs3-!U^rVS=>1FKXjUdfKaP#6&r_tmrTIv9>e z)ZrBsG$<#&szPBjkJzVaj^-ER{*%He7d82MhgPuU>q71Iy28kej0|39+XeK;76sb` z+s0J}Q7&qCcYuAgei>2q8bo{hYLTlXwaxJ#I$`0>P9_7rrG7;+i#Y^)$2LX z{*^e;AI^f?H!s1lBl{rZ=n?Ss^@aG?--Q0J4+imPl$>cHd{Zu6y8|aro#$tZO1Nkq zHN0+3@?oh5_r}n=JaFNl1;*rgvw1VCqu%>~SE{C!5&L8-gxvKvfRA5k{udDZ6jY9Q z9y<0Y&Sli+!MjN#V9%~pNJt#c8$uN0D~0iHSwYF5uL&p(&oq`=byUK881M%s94eI0 zr_FN6%&fh}Q2PYH3+?;CrOVe~&mU>L!0ic1N8XnFl0hGD$Y)=<2ALW1SDD51>osi% zL8XJlpa&B6x^S@j>e4X=8Z~a>5uwml!Apx5&mQO3SM-`(!rMatEkCc{m@4V+aFEBh zC7%rV;wf@ir3!$*N7Z>%IQYrK&h4V1SKoNSOt!lXAr*>Ly*+use3<;%7to#v2(Q=T zT`oFBM#12qFLs3mg^*3&JUT06L2JZ2$&IN+%U8R_u%ki|6G=)M3H{^a zAS3e}gjA{~PO=K)Rp#rLuS)LC;l0!HPgR6~pa*ZTPh3H-2`A%dv31(WDA#TiU%he} z&Sah{8B?U)mzV*$aDxWLG>;$q8=`Fp2XAHGzIh88w|ri>;E3hn#o&Xx_VQm8clS=M zT>Tt{dF`YU7mw&}-pF>eE|PpHKW%^^!;)aej2SR@?p#Tly~yRO#Wc%?6xTs1Ki)D$ zo8guxCKyM!ySGr4=sF7b+M83aK|^vaT?;!>w?h2DL5|i(k`GPk+0(rFh^5K%ohlFy@+N+;2-b|!^Y$|6Cs>sV!4HRYNYX;j&($z{dOZJ` z)>Fr%)`1Wgjq2bxY|yX{8q=Xaj3eBUPr54A!4vQYA{<)LNuN*Wg;cFZIKR!(tWhLy zS|;a~{Tt7Xo41Aye`G-SZlA-d5e38sND(n?N=ugaQAnML8IAv&#K4R%`tm}`I$k`* zm&bUtpkD9RBC1r zwZN*Z^O@oSBF~5Ei7!3Y>rXGy>rC`$BHSlz`aHngI28Fi#l0r0KKjT=H z>SFJ~mo8w9BHE~EU0YH&^E1vH+;^h4>K6_wQ5Iepn2c> zW_6Tkp_Q8b-|NU!U2{>R(VjDLT#$-o9lAP*-IvzS|6)X)2HTWOzAMpHg5w2ZX5p$W zktRkZzw}nZ{0G6;e*NWZ7tfyjpiV0dh;1KH7N}6lg;rSp`tV6}m(BiQ=&c*q29~R; zGT*vjGS!Z3n)GV#gxxg%gYt>({z4{s-Oh?!kHZj zv0C1q6TT^yLTTDV3uqDv9WG{npHax=T!Q=#-3G-*)_+d%8#V6KO%9j!RbOFHo4w+y zZ4KQ~W|u4cQH6cGXmae8i)Y8!5{kI)WL6D7Oeo;MP-a8I=&2LMY2FI6WG;WTUz@}H zoW|YzIo_(IH_JVJ@?hDY*DPGC^*5J(?E`<6Z=iH~heG*dMUg3MpAo9osQaO-UmbLX z2YNq8sFAxj+gz!{qkyw_`>)k@?^wSiFq8@CnB=S01~3mzDA*oWH`{0<{hRNEX8g4; zWY4yr`jZ)EV0i8NKe+OtQQD5K_%`o^iVJ*ln_Ao&-VHl^o7%D(PwWs_wutBAF54ln ztilru9+oZQdfa0cJd~>N#P*F+%UHv`Zu`cXq!hwijq)K@qYO{1Mm=<^QBu*!$I#wd z9 Date: Tue, 16 May 2023 15:43:02 +0200 Subject: [PATCH 044/268] #11205 Update of styles for the table Active issue on this agent --- .../agentes/estado_generalagente.php | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/pandora_console/operation/agentes/estado_generalagente.php b/pandora_console/operation/agentes/estado_generalagente.php index 24270c102c..d262040b1d 100755 --- a/pandora_console/operation/agentes/estado_generalagente.php +++ b/pandora_console/operation/agentes/estado_generalagente.php @@ -708,23 +708,17 @@ if ($last_incident != false) { $table_incident->width = '100%'; $table_incident->cellspacing = 0; $table_incident->cellpadding = 0; - $table_incident->class = 'white_table'; - $table_incident->style = array_fill(0, 3, 'width: 25%;'); + $table_incident->class = 'info_table tactical_table'; - $table_incident->head[0] = ' '.__('Active incident on this agent').''; - $table_incident->head_colspan[0] = 4; + $table_incident->head[0] = ''.__('Author').''; + $table_incident->head[1] = ''.__('Title').''; + $table_incident->head[2] = ''.__('Timestamp').''; + $table_incident->head[3] = ''.__('Priority').''; $data = []; - $data[0] = ''.__('Author').''; - $data[1] = $last_incident['id_creator']; - $data[2] = ''.__('Timestamp').''; - $data[3] = $last_incident['inicio']; - $table_incident->data[] = $data; - - $data = []; - $data[0] = ''.__('Title').''; + $data[0] = $last_incident['id_creator']; $data[1] = ''.$last_incident['titulo'].''; - $data[2] = ''.__('Priority').''; + $data[2] = $last_incident['inicio']; $data[3] = incidents_print_priority_img($last_incident['prioridad'], true); $table_incident->data[] = $data; } @@ -994,8 +988,18 @@ if (empty($agentIncidents) === false) { html_print_div( [ 'class' => 'agent_details_line', - 'content' => $agentIncidents, - ] + 'content' => ui_toggle( + '
'.$agentIncidents.'
', + ''.__('Active issue on this agent').'', + __('Agent incident main'), + 'agent_incident', + false, + true, + '', + 'box-flat white-box-content no_border', + 'box-flat white_table_graph w100p', + ), + ], ); } From e29fef437be7b6a0cf3a973b379dfe81799b2597 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Wed, 17 May 2023 13:15:26 +0200 Subject: [PATCH 045/268] #11231 added token for filter recursively in remote component --- .../modules/manage_network_components.php | 17 ++++++++++++-- .../include/functions_network_components.php | 23 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/modules/manage_network_components.php b/pandora_console/godmode/modules/manage_network_components.php index 7ef20ca385..1af17e323c 100644 --- a/pandora_console/godmode/modules/manage_network_components.php +++ b/pandora_console/godmode/modules/manage_network_components.php @@ -602,6 +602,7 @@ if ((bool) $id !== false || $new_component $search_id_group = (int) get_parameter('search_id_group'); +$group_recursive = (bool) get_parameter_switch('group_recursive', false); $search_string = (string) get_parameter('search_string'); $offset = (int) get_parameter('offset'); @@ -672,7 +673,15 @@ $table->data[0][] = html_print_label_input_block( 'width: 100%' ) ); - +$table->data[0][] = html_print_label_input_block( + __('Recursive'), + html_print_checkbox_switch( + 'group_recursive', + 1, + $group_recursive, + true + ) +); $table->data[0][] = html_print_label_input_block( __('Free Search'), html_print_input_text( @@ -722,7 +731,11 @@ ui_toggle( $filter = []; if ($search_id_group) { - $filter['id_group'] = $search_id_group; + if ($group_recursive === true) { + $filter['id_group'] = network_component_get_groups_recursive($search_id_group); + } else { + $filter['id_group'] = $search_id_group; + } } if ($search_string != '') { diff --git a/pandora_console/include/functions_network_components.php b/pandora_console/include/functions_network_components.php index f6c0087b37..7ca97d65c4 100644 --- a/pandora_console/include/functions_network_components.php +++ b/pandora_console/include/functions_network_components.php @@ -594,3 +594,26 @@ function network_components_duplicate_network_component($id_local_component) return network_components_create_network_component($name, $network['type'], $network['id_group'], $network); } + + +/** + * Return all children groups recursive include parent. + * + * @param integer $id_parent Id of parent. + * @param array $groups NO setting, array for recursive. + * + * @return array $groups All children ids include first parent. + */ +function network_component_get_groups_recursive($id_parent, $groups=[]) +{ + $groups[] = $id_parent; + $ids = db_get_all_rows_filter('tnetwork_component_group', ['parent' => $id_parent], 'id_sg'); + + if ($ids !== false) { + foreach ($ids as $key => $id) { + $groups = network_component_get_groups_recursive($id['id_sg'], $groups); + } + } + + return $groups; +} From e783cd6f297bceae9df0d57ffb969cb737241e4b Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Tue, 23 May 2023 15:20:30 +0200 Subject: [PATCH 046/268] #11287 Add title to image --- pandora_console/include/ajax/module.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index b20bad2a18..9e3e2580af 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -1267,7 +1267,10 @@ if (check_login()) { 'content' => html_print_image( 'images/module-graph.svg', true, - [ 'class' => 'main_menu_icon' ] + [ + 'title' => $module['nombre'], + 'class' => 'main_menu_icon forced_title', + ] ), ], true From 8bd1378d45d17da572381dd3e601a787c633bdfc Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Tue, 23 May 2023 16:35:55 +0200 Subject: [PATCH 047/268] #11293 Fix the menu to point to the list of reports and the link on all icons --- .../godmode/reporting/reporting_builder.php | 13 +++++++------ .../operation/reporting/reporting_viewer.php | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php index cd049f1d83..70ae9b436a 100755 --- a/pandora_console/godmode/reporting/reporting_builder.php +++ b/pandora_console/godmode/reporting/reporting_builder.php @@ -508,11 +508,11 @@ switch ($action) { $buttons = [ 'list_reports' => [ 'active' => false, - 'text' => ''.html_print_image( + 'text' => ''.html_print_image( 'images/logs@svg.svg', true, [ - 'title' => __('Reports list'), + 'title' => __('Reports'), 'class' => 'main_menu_icon invert_filter', ] ).'', @@ -545,7 +545,7 @@ switch ($action) { // Header. ui_print_standard_header( - __('List of reports'), + __('Reports'), 'images/op_reporting.png', false, '', @@ -3561,7 +3561,7 @@ switch ($action) { $buttons = [ 'list_reports' => [ 'active' => false, - 'text' => ''.html_print_image('images/logs@svg.svg', true, ['title' => __('Reports list'), 'class' => 'invert_filter main_menu_icon']).'', + 'text' => ''.html_print_image('images/logs@svg.svg', true, ['title' => __('Reports'), 'class' => 'invert_filter main_menu_icon']).'', ], ]; @@ -3628,7 +3628,7 @@ $buttons = [ 'images/report_list.png', true, [ - 'title' => __('Reports list'), + 'title' => __('Reports'), 'class' => 'main_menu_icon invert_filter', ] ).'', @@ -3676,12 +3676,13 @@ if ($idReport != 0) { $buttons = [ 'main' => [ 'active' => true, - 'text' => ''.html_print_image('images/report_list.png', true, ['title' => __('Reports list'), 'class' => 'main_menu_icon invert_filter']).'', + 'text' => ''.html_print_image('images/report_list.png', true, ['title' => __('Reports'), 'class' => 'main_menu_icon invert_filter']).'', ], ]; $textReportName = __('Create Custom Report'); } +// here1 $tab_builder = ($activeTab === 'item_editor') ? 'reporting_item_editor_tab' : ''; if ($action !== 'update') { diff --git a/pandora_console/operation/reporting/reporting_viewer.php b/pandora_console/operation/reporting/reporting_viewer.php index 7784450371..16b075e3d7 100755 --- a/pandora_console/operation/reporting/reporting_viewer.php +++ b/pandora_console/operation/reporting/reporting_viewer.php @@ -111,11 +111,11 @@ $options = []; $options['list_reports'] = [ 'active' => false, - 'text' => ''.html_print_image( + 'text' => ''.html_print_image( 'images/report_list.png', true, [ - 'title' => __('Report list'), + 'title' => __('Reports'), 'class' => 'main_menu_icon invert_filter', ] ).'', From ae526d5df05bfc21e2227f2f1f4d89c046d3c20b Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 23 May 2023 16:54:40 +0200 Subject: [PATCH 048/268] #10598 New wizard welcome --- pandora_console/general/header.php | 56 +- pandora_console/general/register.php | 18 +- .../godmode/agentes/modificar_agente.php | 10 +- pandora_console/godmode/menu.php | 16 + .../godmode/wizards/mini_diagnosis.php | 132 ++ .../godmode/wizards/task_to_perform.php | 1203 +++++++++++++++++ pandora_console/images/circle_title.svg | 19 + .../include/ajax/welcome_window.php | 10 +- .../include/class/WelcomeWindow.class.php | 695 ++++++---- pandora_console/include/functions_alerts.php | 10 +- pandora_console/include/functions_api.php | 20 +- pandora_console/include/functions_html.php | 41 + pandora_console/include/functions_servers.php | 21 + pandora_console/include/functions_ui.php | 26 + .../include/styles/mini_diagnosis.css | 83 ++ .../new_installation_welcome_window.css | 10 + 16 files changed, 2082 insertions(+), 288 deletions(-) create mode 100644 pandora_console/godmode/wizards/mini_diagnosis.php create mode 100644 pandora_console/godmode/wizards/task_to_perform.php create mode 100644 pandora_console/images/circle_title.svg create mode 100644 pandora_console/include/styles/mini_diagnosis.css diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index b0cbc0cec5..af868f0c5c 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -34,6 +34,22 @@ echo sprintf('
', $menuTypeClass); $notifications_numbers['notifications'], $notifications_numbers['last_id'] ).'
'; + $header_welcome = ''; + if (check_acl($config['id_user'], $group, 'AW')) { + $header_welcome .= '
'; + $header_welcome .= html_print_image( + 'images/computer@groups.svg', + true, + [ + 'class' => 'main_menu_icon invert_filter', + 'title' => __('Welcome dialog'), + 'id' => 'Welcome-dialog', + 'alt' => __('Welcome dialog'), + 'style' => 'cursor: pointer;', + ] + ); + $header_welcome .= '
'; + } // ======= Servers List =============================================== if ((bool) check_acl($config['id_user'], 0, 'AW') !== false) { @@ -461,7 +477,7 @@ echo sprintf('
', $menuTypeClass); } else { echo '
'.$config['custom_title_header'].''.$config['custom_subtitle_header'].'
'.$header_searchbar.'
-
'.$header_autorefresh, $header_autorefresh_counter, $header_discovery, $servers_list, $header_feedback, $header_support, $header_docu, $header_user, $header_logout.'
'; +
'.$header_autorefresh, $header_autorefresh_counter, $header_discovery, $header_welcome, $servers_list, $header_feedback, $header_support, $header_docu, $header_user, $header_logout.'
'; } ?>
@@ -904,6 +920,44 @@ echo sprintf('
', $menuTypeClass); $("#agent_access").css("display",""); }); + $("#welcome-icon-header").click(function () { + if (!$('#welcome_modal_window').length){ + $(document.body).append('
'); + $(document.body).append( $('').attr('href', 'include/styles/new_installation_welcome_window.css') ); + } + // Clean DOM. + load_modal({ + target: $('#welcome_modal_window'), + url: '', + modal: { + title: "", + cancel: '', + ok: '' + }, + onshow: { + page: 'include/ajax/welcome_window', + method: 'loadWelcomeWindow', + }, + oncancel: { + page: 'include/ajax/welcome_window', + title: "", + method: 'cancelWelcome', + confirm: function (fn) { + confirmDialog({ + title: '', + message: '', + ok: '', + cancel: '', + onAccept: function() { + // Continue execution. + fn(); + } + }) + } + } + }); + }); + // Feedback. $("#feedback-header").click(function () { diff --git a/pandora_console/general/register.php b/pandora_console/general/register.php index ed646f52f3..905a8c9eb6 100644 --- a/pandora_console/general/register.php +++ b/pandora_console/general/register.php @@ -100,21 +100,23 @@ if ($initial && users_is_admin()) { ); } -$welcome = !$initial; -try { - $welcome_window = new WelcomeWindow($welcome); - if ($welcome_window !== null) { - $welcome_window->run(); +if (check_acl($config['id_user'], 0, 'AW')) { + $welcome = !$initial; + try { + $welcome_window = new WelcomeWindow($welcome); + if ($welcome_window !== null) { + $welcome_window->run(); + } + } catch (Exception $e) { + $welcome = false; } -} catch (Exception $e) { - $welcome = false; } try { if (isset($_SESSION['showed_tips_window']) === false) { $tips_window = new TipsWindow(); if ($tips_window !== null) { - $tips_window->run(); + $tips_window->run(); } } } catch (Exception $e) { diff --git a/pandora_console/godmode/agentes/modificar_agente.php b/pandora_console/godmode/agentes/modificar_agente.php index 0b27809299..4a87ca3a4c 100644 --- a/pandora_console/godmode/agentes/modificar_agente.php +++ b/pandora_console/godmode/agentes/modificar_agente.php @@ -1071,16 +1071,20 @@ if ((bool) check_acl($config['id_user'], 0, 'AW') === true) { function () { $(".actions", this).css ("visibility", "hidden"); }); - + $("#ag_group").click ( function () { $(this).css ("width", "auto"); $(this).css ("min-width", "100px"); }); - + $("#ag_group").blur (function () { $(this).css ("width", "100px"); }); - + + var show_deploy_agent = ""; + if (show_deploy_agent !== '0'){ + $('#button-modal_deploy_agent').click(); + } }); diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index f6e4aac358..0a8ef6e254 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -168,6 +168,22 @@ if ($access_console_node === true) { } $sub = []; + if ((bool) check_acl($config['id_user'], 0, 'AW') === true) { + $sub['wizard']['text'] = __('Configuration wizard'); + $sub['wizard']['id'] = 'conf_wizard'; + $sub['wizard']['type'] = 'direct'; + $sub['wizard']['subtype'] = 'nolink'; + $sub2 = []; + if ((bool) check_acl($config['id_user'], 0, 'PM') === true) { + $sub2['godmode/wizards/mini_diagnosis']['text'] = __('Mini-diagnosis'); + $sub2['godmode/wizards/mini_diagnosis']['id'] = 'mini_diagnosis'; + } + + $sub2['godmode/wizards/task_to_perform']['text'] = __('Tasks to perform'); + $sub2['godmode/wizards/task_to_perform']['id'] = 'task_to_perform'; + $sub['wizard']['sub2'] = $sub2; + } + if ((bool) check_acl($config['id_user'], 0, 'PM') === true) { $sub['templates']['text'] = __('Templates'); $sub['templates']['id'] = 'Templates'; diff --git a/pandora_console/godmode/wizards/mini_diagnosis.php b/pandora_console/godmode/wizards/mini_diagnosis.php new file mode 100644 index 0000000000..cfa58d9f74 --- /dev/null +++ b/pandora_console/godmode/wizards/mini_diagnosis.php @@ -0,0 +1,132 @@ + '', + 'label' => __('Configuration'), + ], + [ + 'link' => '', + 'label' => __('Configuration wizard'), + ], + ] +); + +if (empty($config['pandora_uid']) === 'ONLINE') { + $status_um = true; +} + +require_once 'include/functions_servers.php'; +if (check_all_servers_up() === true) { + $status_su = true; +} + +if (empty($config['welcome_mail_configured']) === false) { + $status_cm = true; +} + +if (enterprise_installed()) { + $license_valid = true; + enterprise_include_once('include/functions_license.php'); + $license = enterprise_hook('license_get_info'); + $days_to_expiry = ((strtotime($license['expiry_date']) - time()) / (60 * 60 * 24)); + if ($license === ENTERPRISE_NOT_HOOK || $days_to_expiry <= 30) { + $license_valid = false; + } + + if ($license_valid === true) { + $status_lv = true; + } +} + + +ui_require_css_file('mini_diagnosis'); +$table = new stdClass(); +$table->width = '60%'; +$table->class = 'filter-table-adv databox'; +$table->size = []; +$table->data = []; +$table->size[0] = '30%'; +$table->size[1] = '30%'; +$table->data[0][0] = html_print_wizard_diagnosis(__('Verification update manager register'), 'update_manager', __('Verification update manager register'), $status_um, true); +$table->data[0][1] = html_print_wizard_diagnosis(__('Please ensure mail configuration matches your needs'), 'configure_email', __('Please ensure mail configuration matches your needs'), $status_cm, true); +$table->data[1][0] = html_print_wizard_diagnosis(__('All servers up'), 'servers_up', __('All servers up'), $status_su, true); +$table->data[1][1] = html_print_wizard_diagnosis(__('Valid license verification and expiration greater than 30 days'), 'license_valid', __('Valid license verification and expiration greater than 30 days'), $status_lv, true); +html_print_table($table); +?> + \ No newline at end of file diff --git a/pandora_console/godmode/wizards/task_to_perform.php b/pandora_console/godmode/wizards/task_to_perform.php new file mode 100644 index 0000000000..6a1db32448 --- /dev/null +++ b/pandora_console/godmode/wizards/task_to_perform.php @@ -0,0 +1,1203 @@ + + + + + + '', + 'label' => __('Configuration'), + ], + [ + 'link' => '', + 'label' => __('Configuration wizard'), + ], + ] +); + +$status_webserver = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_WEB], 'status')['status']; +$status_check_web = false; +if ($status_webserver === '1') { + $status_check_web = true; +} + +$status_newtwork = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_NETWORK], 'status')['status']; +$status_pluggin = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_PLUGIN], 'status')['status']; +$status_check_connectivity = false; +if ($status_newtwork === '1' && $status_pluggin === '1') { + $status_check_connectivity = true; +} + +ui_require_css_file('mini_diagnosis'); +$table = new stdClass(); +$table->width = '60%'; +$table->class = 'filter-table-adv databox'; +$table->size = []; +$table->data = []; +$table->size[0] = '30%'; +$table->size[1] = '30%'; +$table->data[0][0] = html_print_wizard_diagnosis(__('Wizard install agent'), 'wizard_install', __('Wizard install agent'), false, true); +$table->data[0][1] = html_print_wizard_diagnosis(__('Create check web'), 'configure_email', __('Create check web'), $status_check_web, true); +$table->data[1][0] = html_print_wizard_diagnosis(__('Create basic connectivity'), 'servers_up', __('Create basic connectivity'), $status_check_connectivity, true); +$table->data[1][1] = html_print_wizard_diagnosis(__('Create basic net'), 'license_valid', __('Create basic net'), true, true); +$table->data[2][0] = html_print_wizard_diagnosis(__('Create Alert Mail'), 'license_valid', __('Create Alert Mail'), true, true); +html_print_table($table); +?> + + + + + + 9], 'status')['status']; + if ($status_webserver === '1') { + $name = array_keys(servers_get_names())[0]; + $id_group = get_parameter('id_group', 4); + + $array_other['data'] = [ + 'Goliat', + '', + 2, + $id_group, + 0, + 30, + 30, + 9, + $name, + 0, + 0, + 0, + __('Agent goliat created on welcome'), + ]; + + $id_agent = api_set_new_agent(0, '', $array_other, '', true); + if ($id_agent > 0) { + $module_name = get_parameter('module_name', 'goliat_module'); + $text_to_search = get_parameter('text_to_search', ''); + $url_goliat = get_parameter('url_goliat', 'https://pandorafms.com/en/'); + $module_latency = create_module_latency_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search); + $module_status = create_module_status_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search); + if ($module_latency > 0 && $module_status > 0) { + ui_print_success_message(__('Your check has been created, click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); + } + } else { + ui_print_error_message(__('The Name is not valid for the modules.')); + } + } else { + ui_print_error_message(__('Web server is not enabled.')); + } +} + + +/** + * Create_module_latency_goliat and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $module_name Module name. + * @param mixed $id_group Id group. + * @param mixed $url_search Url to search. + * @param mixed $string_search Text to search. + * + * @return interger Module id. + */ +function create_module_latency_goliat($id_agent, $module_name, $id_group, $url_search, $string_search='') +{ + if ($string_search !== '') { + $str_search = 'check_string '.$string_search.''; + } + + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '30', + 'descripcion' => '', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => '', + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => 'task_begin +get '.$url_search.' +resource 1 +'.$str_search.' +task_end', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '7', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '0', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, $module_name.'_latency', $array_values); +} + + +/** + * Create_module_status_goliat and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $module_name Module name. + * @param mixed $id_group Id group. + * @param mixed $url_search Url to search. + * @param mixed $string_search Text to search. + * + * @return interger Module id. + */ +function create_module_status_goliat($id_agent, $module_name, $id_group, $url_search, $string_search='') +{ + if ($string_search !== '') { + $str_search = 'check_string '.$string_search.' '; + } + + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '31', + 'descripcion' => '', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => '', + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => 'task_begin +get '.$url_search.' +resource 1 +'.$str_search.' +task_end', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '7', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '0', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, $module_name.'_status', $array_values); +} + + +if ($create_connectivity_dialog) { + ?> + + 1], 'status')['status']; + $status_pluggin = db_get_row_filter('tserver', ['server_type' => 4], 'status')['status']; + if ($status_newtwork === '1' && $status_pluggin === '1') { + $name = array_keys(servers_get_names())[0]; + $id_group = get_parameter('id_group', 4); + $agent_name = get_parameter('agent_name', __('Agent check connectivity')); + + $array_other['data'] = [ + $agent_name, + '', + 2, + $id_group, + 0, + 30, + 30, + 9, + $name, + 0, + 0, + 0, + __('Basic connectivity'), + ]; + + $id_agent = api_set_new_agent(0, '', $array_other, '', true); + if ($id_agent > 0) { + $ip_target = get_parameter('ip_target', '127.0.0.1'); + $basic_network = create_module_basic_network($id_agent, $id_group, $ip_target); + $latency_network = create_module_latency_network($id_agent, $id_group, $ip_target); + $packet_lost = create_module_packet_lost($id_agent, $id_group, $ip_target); + if ($basic_network > 0 && $latency_network > 0 && $packet_lost > 0) { + ui_print_success_message(__('Your check has been created, click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); + } + } else { + ui_print_error_message(__('The Name is not valid for the modules.')); + } + } else { + ui_print_error_message(__('Web server is not enabled.')); + } +} + + +/** + * Create module basic network and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $id_group Id group. + * @param mixed $ip_target Ip target. + * + * @return interger Module id. + */ +function create_module_basic_network($id_agent, $id_group, $ip_target) +{ + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '6', + 'descripcion' => 'Basic network check (ping)', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => $ip_target, + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => '', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '2', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '0', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, 'Basic_Network_Check', $array_values); +} + + +/** + * Create module latency network and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $id_group Id group. + * @param mixed $ip_target Ip target. + * + * @return interger Module id. + */ +function create_module_latency_network($id_agent, $id_group, $ip_target) +{ + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '7', + 'descripcion' => 'Basic network connectivity check to measure network latency in miliseconds', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => $ip_target, + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => '', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '2', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '1', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, 'Basic_Network_Latency', $array_values); +} + + +/** + * Create module packet lost and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $id_group Id group. + * @param mixed $ip_target Ip target. + * + * @return interger Module id. + */ +function create_module_packet_lost($id_agent, $id_group, $ip_target) +{ + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '1', + 'descripcion' => 'Basic network connectivity check to measure packet loss in %', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => '', + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => '', + 'id_plugin' => '9', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '4', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '1', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '{"1":{"macro":"_field1_","desc":"Test time","help":"","value":"8","hide":""},"2":{"macro":"_field2_","desc":"Target IP","help":"","value":"'.$ip_target.'","hide":""}}', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, 'Basic_Network_Packetloss', $array_values); +} + + +if ($create_net_scan_dialog) { + ?> + + 0) { + $id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server']; + ui_print_success_message(__('Basic net created and scan in progress. Click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); + } else { + ui_print_error_message(__('Basic net already exists. Click here to view the data')); + } +} + + +/** + * Create module packet lost and return module id. + * + * @param string $ip_target Ip and red mask. + * + * @return interger Module id. + */ +function create_net_scan($ip_target) +{ + global $config; + include_once 'HostDevices.class.php'; + $HostDevices = new HostDevices(1); + $id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server']; + + $_POST = [ + 'page' => '1', + 'interval_manual_defined' => '1', + 'interval_select' => '-1', + 'interval_text' => '0', + 'interval' => '0', + 'interval_units' => '1', + 'taskname' => __('Basic network'), + 'id_recon_server' => $id_recon_server, + 'network' => $ip_target, + 'id_group' => '8', + 'comment' => __('Created on welcome'), + ]; + $task_created = $HostDevices->parseNetScan(); + if ($task_created === true) { + $HostDevicesFinal = new HostDevices(2); + $_POST = [ + 'task' => $HostDevices->task['id_rt'], + 'page' => '2', + 'recon_ports' => '', + 'auto_monitor' => 'on', + 'id_network_profile' => ['0' => '2'], + 'review_results' => 'on', + 'review_limited' => '0', + 'snmp_enabled' => 'on', + 'snmp_version' => '1', + 'snmp_skip_non_enabled_ifs' => 'on', + 'community' => '', + 'snmp_context' => '', + 'snmp_auth_user' => '', + 'snmp_security_level' => 'authNoPriv', + 'snmp_auth_method' => 'MD5', + 'snmp_auth_pass' => '', + 'snmp_privacy_method' => 'AES', + 'snmp_privacy_pass' => '', + 'os_detect' => 'on', + 'resolve_names' => 'on', + 'parent_detection' => 'on', + 'parent_recursion' => 'on', + 'vlan_enabled' => 'on', + ]; + + $task_final_created = $HostDevicesFinal->parseNetScan(); + if ($task_final_created === true) { + $net_scan_id = $HostDevices->task['id_rt']; + unset($HostDevices, $HostDevicesFinal); + return $net_scan_id; + } + } else { + return 0; + } +} + + +if ($create_alert_mail_dialog) { + ?> + + 'Email to '.$config['id_user']], 'id')['id']; + if (!$id_action) { + $al_action = alerts_get_alert_action($id); + $id_action = alerts_clone_alert_action(1, $al_action['id_group'], 'Email to '.$config['id_user']); + } + + $id_alert_template = get_parameter('id_condition', 0); + $id_agent_module = get_parameter('id_agent_module', 0); + + $exist = db_get_value_sql( + sprintf( + 'SELECT COUNT(id) + FROM talert_template_modules + WHERE id_agent_module = %d + AND id_alert_template = %d + AND id_policy_alerts = 0 + ', + $id_agent_module, + $id_alert_template + ) + ); + + if ($exist > 0) { + ui_print_error_message(__('Alert already exists. Click here to view the data')); + } else { + $id = alerts_create_alert_agent_module($id_agent_module, $id_alert_template); + if ($id !== false) { + $values = []; + $values['fires_min'] = (int) get_parameter('fires_min'); + $values['fires_max'] = (int) get_parameter('fires_max'); + $values['module_action_threshold'] = (int) 300; + + $alert_created = alerts_add_alert_agent_module_action($id, $id_action, $values); + } + } + + if ($alert_created === true) { + ui_print_success_message(__('Congratulations, you have already created a simple alert. You can see it. Pandora FMS alerts are very flexible, you can do many more things with them, we recommend you to read the documentation for more information. You can create advanced alerts from here.')); + } +} \ No newline at end of file diff --git a/pandora_console/images/circle_title.svg b/pandora_console/images/circle_title.svg new file mode 100644 index 0000000000..23c906e4e5 --- /dev/null +++ b/pandora_console/images/circle_title.svg @@ -0,0 +1,19 @@ + + + EB094270-FB38-4A58-BE94-D40EA44EA568 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pandora_console/include/ajax/welcome_window.php b/pandora_console/include/ajax/welcome_window.php index 75f0e69dbf..c077a81fc8 100644 --- a/pandora_console/include/ajax/welcome_window.php +++ b/pandora_console/include/ajax/welcome_window.php @@ -35,6 +35,13 @@ if (is_ajax() === false) { } $ajaxPage = 'include/ajax/welcome_window'; +// Ajax controller. +$method = get_parameter('method', ''); + +if ($method === 'loadWelcomeWindow') { + unset($config['welcome_state']); +} + // Control call flow. try { @@ -44,9 +51,6 @@ try { exit; } -// Ajax controller. -$method = get_parameter('method', ''); - if (method_exists($welcome_actions, $method) === true) { if ($welcome_actions->ajaxMethod($method) === true) { $welcome_actions->{$method}(); diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index d1f14c2217..339d72afd8 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -336,54 +336,7 @@ class WelcomeWindow extends Wizard public function loadWelcomeWindow() { global $config; - - $btn_configure_mail_class = 'pending'; - $btn_create_agent_class = 'pending'; - $btn_create_module_class = ''; - $btn_create_alert_class = ''; - $btn_create_discovery_class = 'pending'; - - $li_configure_mail_class = 'row_green'; - $li_create_agent_class = 'row_green'; - $li_create_module_class = 'row_grey'; - $li_create_alert_class = 'row_grey'; - $li_create_discovery_class = 'row_green'; - - if (empty($config['welcome_mail_configured']) === false) { - $btn_configure_mail_class = ' completed'; - } - - if (empty($config['welcome_id_agent']) === false) { - $btn_create_agent_class = ' completed'; - $btn_create_module_class = ' pending'; - $li_create_module_class = 'row_green'; - } - - if (empty($config['welcome_module']) === false) { - $btn_create_module_class = ' completed'; - $btn_create_alert_class = ' pending'; - $li_create_module_class = 'row_green'; - } - - if (empty($config['welcome_alert']) === false) { - $btn_create_alert_class = ' completed'; - $li_create_alert_class = 'row_green'; - } - - if (empty($config['welcome_task']) === false) { - $btn_create_discovery_class = ' completed'; - } - - if ((int) $config['welcome_state'] === WELCOME_FINISHED) { - // Nothing left to do. - $btn_configure_mail_class = ' completed'; - $btn_create_agent_class = ' completed'; - $btn_create_module_class = ' completed'; - $btn_create_alert_class = ' completed'; - $btn_create_discovery_class = ' completed'; - $li_create_module_class = 'row_green'; - $li_create_alert_class = 'row_green'; - } + $flag_task = false; $form = [ 'action' => '#', @@ -413,187 +366,389 @@ class WelcomeWindow extends Wizard ], ], ], - [ + ]; + + if (check_acl($config['id_user'], 0, 'PM')) { + $flag_um = false; + $flag_cm = false; + $flag_su = false; + $flag_lv = false; + + $btn_update_manager_class = ' pending'; + $btn_configure_mail_class = ' pending'; + $btn_servers_up_class = ' pending'; + $btn_license_valid_class = ' pending'; + + $li_update_manager_class = 'row_grey'; + $li_configure_mail_class = 'row_grey'; + $li_servers_up_class = 'row_grey'; + $li_license_valid_class = 'row_grey'; + + if ($config['pandora_uid'] === 'ONLINE') { + $btn_update_manager_class = ' completed'; + $li_update_manager_class = 'row_green'; + $flag_um = true; + } + + if (empty($config['welcome_mail_configured']) === false) { + $btn_configure_mail_class = ' completed'; + $flag_cm = true; + } + + include_once 'include/functions_servers.php'; + if (check_all_servers_up() === true) { + $btn_servers_up_class = ' completed'; + $li_servers_up_class = 'row_green'; + $flag_su = true; + } + + if (enterprise_installed()) { + $license_valid = true; + enterprise_include_once('include/functions_license.php'); + $license = enterprise_hook('license_get_info'); + $days_to_expiry = ((strtotime($license['expiry_date']) - time()) / (60 * 60 * 24)); + if ($license === ENTERPRISE_NOT_HOOK || $days_to_expiry <= 30) { + $license_valid = false; + } + + if ($license_valid === true) { + $btn_license_valid_class = ' completed'; + $li_license_valid_class = 'row_green'; + $flag_lv = true; + } + } + + $inputs[] = [ 'wrapper' => 'div', - 'block_id' => 'div_configure_mail', - 'class' => 'hole flex-row flex-items-center w98p '.$li_configure_mail_class, + 'block_id' => 'div_diagnosis', + 'class' => 'flex-row flex-items-center w98p ', 'direct' => 1, 'block_content' => [ [ - 'label' => __('Please ensure mail configuration matches your needs'), + 'label' => __('Mini-diagnosis'), 'arguments' => [ 'class' => 'first_lbl', - 'name' => 'lbl_create_agent', - 'id' => 'lbl_create_agent', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => (empty($btn_configure_mail_class) === false) ? $btn_configure_mail_class : 'invisible_important', - 'mode' => 'onlyIcon', - ], - 'name' => 'btn_email_conf', - 'id' => 'btn_email_conf', + 'name' => 'lbl_diagnosis', + 'id' => 'lbl_diagnosis', ], ], ], - ], - [ - 'label' => 'Learn to monitor', - 'class' => 'extra', - 'arguments' => [ - 'class' => 'class="lbl_learn"', - 'name' => 'lbl_learn', - 'id' => 'lbl_learn', - ], - ], - [ - 'wrapper' => 'div', - 'block_id' => 'div_create_agent', - 'class' => 'learn_content_indented flex-row flex-items-center w98p '.$li_create_agent_class, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Create an agent'), - 'arguments' => [ - 'class' => 'first_lbl', - 'name' => 'lbl_create_agent', - 'id' => 'lbl_create_agent', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => (empty($btn_create_agent_class) === false) ? $btn_create_agent_class : 'invisible_important', - 'mode' => 'onlyIcon', + ]; + + if ($flag_um === false || $flag_cm === false || $flag_su === false || $flag_lv === false) { + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_update_manager', + 'class' => 'hole flex-row flex-items-center w98p '.$li_update_manager_class, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Verification update manager register'), + 'arguments' => [ + 'class' => 'first_lbl', + 'name' => 'lbl_update_manager', + 'id' => 'lbl_update_manager', ], - 'name' => 'btn_create_agent', - 'id' => 'btn_create_agent', ], - ], - ], - ], - [ - 'wrapper' => 'div', - 'block_id' => 'div_monitor_actions', - 'class' => 'learn_content_indented flex-row flex-items-center w98p '.$li_create_module_class, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Create a module to check if an agent is online'), - 'arguments' => [ - 'class' => 'second_lbl', - 'name' => 'lbl_check_agent', - 'id' => 'lbl_check_agent', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => (empty($btn_create_module_class) === false) ? $btn_create_module_class : 'invisible_important', - 'mode' => 'onlyIcon', + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => (empty($btn_update_manager_class) === false) ? $btn_update_manager_class : 'invisible_important', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_update_manager_conf', + 'id' => 'btn_update_manager_conf', ], - 'name' => 'btn_create_module', - 'id' => 'btn_create_module', ], ], - ], - ], - [ - 'wrapper' => 'div', - 'block_id' => 'div_monitor_actions', - 'class' => 'hole learn_content_indented flex-row flex-items-center w98p '.$li_create_alert_class, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Be warned if something is wrong, create an alert on the module'), - 'arguments' => [ - 'class' => 'second_lbl', - 'name' => 'lbl_create_alert', - 'id' => 'lbl_create_alert', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => (empty($btn_create_alert_class) === false) ? $btn_create_alert_class : 'invisible_important', - 'mode' => 'onlyIcon', + ]; + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_configure_mail', + 'class' => 'hole flex-row flex-items-center w98p '.$li_configure_mail_class, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Please ensure mail configuration matches your needs'), + 'arguments' => [ + 'class' => 'first_lbl', + 'name' => 'lbl_create_agent', + 'id' => 'lbl_create_agent', ], - 'name' => 'btn_create_alert', - 'id' => 'btn_create_alert', ], - ], - ], - ], - [ - 'wrapper' => 'div', - 'block_id' => 'div_discover', - 'class' => 'hole flex-row flex-items-center w98p '.$li_create_discovery_class, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Discover hosts and devices in your network'), - 'arguments' => [ - 'class' => 'first_lbl', - 'name' => 'lbl_discover_devices', - 'id' => 'lbl_discover_devices', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => (empty($btn_create_discovery_class) === false) ? $btn_create_discovery_class : 'invisible_important', - 'mode' => 'onlyIcon', + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => (empty($btn_configure_mail_class) === false) ? $btn_configure_mail_class : 'invisible_important', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_email_conf', + 'id' => 'btn_email_conf', ], - 'name' => 'btn_discover_devices', - 'id' => 'btn_discover_devices', ], ], + ]; + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_servers_up', + 'class' => 'hole flex-row flex-items-center w98p '.$li_servers_up_class, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('All servers up'), + 'arguments' => [ + 'class' => 'first_lbl', + 'name' => 'lbl_servers_up', + 'id' => 'lbl_servers_up', + ], + ], + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => (empty($btn_servers_up_class) === false) ? $btn_servers_up_class : 'invisible_important', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_servers_up_conf', + 'id' => 'btn_servers_up_conf', + ], + ], + ], + ]; + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_license_valid', + 'class' => 'hole flex-row flex-items-center w98p '.$li_license_valid_class, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Valid license verification and expiration greater than 30 days'), + 'arguments' => [ + 'class' => 'first_lbl', + 'name' => 'lbl_license_valid', + 'id' => 'lbl_license_valid', + ], + ], + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => (empty($btn_license_valid_class) === false) ? $btn_license_valid_class : 'invisible_important', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_license_valid_conf', + 'id' => 'btn_license_valid_conf', + ], + ], + ], + ]; + } else { + $key = db_get_value_sql('SELECT `value` FROM tupdate_settings WHERE `key` = "customer_key"'); + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_all_correct', + 'class' => 'hole flex-row flex-items-center w98p', + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('It seems that your Pandora FMS is working correctly and registered with ID:
#'.$key.'.
For more information use the self-diagnosis tool.'), + 'arguments' => [ + 'class' => 'first_lbl w98p', + 'name' => 'lbl_all_correct', + 'id' => 'lbl_all_correct', + ], + ], + ], + ]; + } + + if ($flag_um === false || $flag_cm === false || $flag_su === false || $flag_lv === false) { + $flag_task = true; + } + } + + // Task to do. + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_task_todo', + 'class' => 'flex-row flex-items-center w98p', + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Task to perform'), + 'arguments' => [ + 'class' => 'first_lbl', + 'name' => 'lbl_task_todo', + 'id' => 'lbl_task_todo', + ], ], ], ]; - if (enterprise_installed() === true) { - $inputs[] = [ - 'wrapper' => 'div', - 'block_id' => 'div_not_working', - 'class' => 'hole flex-row flex-items-center w98p', - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('If something is not working as expected, look for this icon and report!'), - 'arguments' => [ - 'class' => 'first_lbl', - 'name' => 'lbl_not_working', - 'id' => 'lbl_not_working', - ], - ], - [ - 'label' => html_print_image( - 'images/feedback-header.png', - true, - [ - 'onclick' => '$(\'#feedback-header\').click()', - 'style' => 'cursor: pointer;', - ] - ), - + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_wizard_agent', + 'class' => 'hole flex-row flex-items-center w98p row_grey', + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Wizard install agent'), + 'arguments' => [ + 'class' => 'first_lbl row_grey', + 'name' => 'lbl_wizard_agent', + 'id' => 'lbl_wizard_agent', ], ], - ]; + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => 'completed', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_wizard_agent_conf', + 'id' => 'btn_wizard_agent_conf', + ], + ], + ], + ]; + + $status_webserver = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_WEB], 'status')['status']; + $check_web_color = 'row_grey'; + if ($status_webserver === '1') { + $check_web_color = 'row_green'; } + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_check_web', + 'class' => 'hole flex-row flex-items-center w98p '.$check_web_color, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Create check web'), + 'arguments' => [ + 'class' => 'first_lbl row_grey', + 'name' => 'lbl_check_web', + 'id' => 'lbl_check_web', + ], + ], + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => 'completed', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_check_web_conf', + 'id' => 'btn_check_web_conf', + ], + ], + ], + ]; + + $status_newtwork = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_NETWORK], 'status')['status']; + $status_pluggin = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_PLUGIN], 'status')['status']; + $check_connectivity = 'row_grey'; + if ($status_newtwork === '1' && $status_pluggin === '1') { + $check_connectivity = 'row_green'; + } + + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_check_connectivity', + 'class' => 'hole flex-row flex-items-center w98p '.$check_connectivity, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Create basic connectivity'), + 'arguments' => [ + 'class' => 'first_lbl row_grey', + 'name' => 'lbl_check_connectivity', + 'id' => 'lbl_check_connectivity', + ], + ], + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => 'completed', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_check_connectivity_conf', + 'id' => 'btn_check_connectivity_conf', + ], + ], + ], + ]; + + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_check_net', + 'class' => 'hole flex-row flex-items-center w98p row_green', + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Create basic net'), + 'arguments' => [ + 'class' => 'first_lbl row_grey', + 'name' => 'lbl_check_net', + 'id' => 'lbl_check_net', + ], + ], + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => 'completed', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_check_net_conf', + 'id' => 'btn_check_net_conf', + ], + ], + ], + ]; + + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_check_mail_alert', + 'class' => 'hole flex-row flex-items-center w98p row_green', + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Create Alert Mail'), + 'arguments' => [ + 'class' => 'first_lbl row_grey', + 'name' => 'lbl_check_mail_alert', + 'id' => 'lbl_check_mail_alert', + ], + ], + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => 'completed', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_check_mail_alert_conf', + 'id' => 'btn_check_mail_alert_conf', + ], + ], + ], + ]; + $output = $this->printForm( [ 'form' => $form, @@ -602,7 +757,7 @@ class WelcomeWindow extends Wizard true ); - $output .= $this->loadJS(); + $output .= $this->loadJS($flag_task); echo $output; // Ajax methods does not continue. @@ -830,82 +985,96 @@ class WelcomeWindow extends Wizard * * @return string HTML code for javascript functionality. */ - public function loadJS() + public function loadJS($flag_task=false) { ob_start(); ?> 'string', - 'data' => $id_agente, - ] - ); + if ($return === false) { + returnData( + 'string', + [ + 'type' => 'string', + 'data' => $id_agente, + ] + ); + } else { + return $id_agente; + } } catch (\Exception $e) { returnError($e->getMessage()); return; diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php index b4536bcf5f..5f9e9ba01d 100644 --- a/pandora_console/include/functions_html.php +++ b/pandora_console/include/functions_html.php @@ -6977,3 +6977,44 @@ function html_print_code_picker( echo $output; } } + + +function html_print_wizard_diagnosis( + $title, + $id_button, + $description='', + $status=true, + $return=false, +) { + $button = ''; + if ($status === true) { + $status = 'Connected'; + $img = '/images/configuration@svg.svg'; + } else { + $status = 'Disconnected'; + $img = '/images/change-active.svg'; + } + + $button = html_print_image( + $img, + true, + [ + 'class' => 'main_menu_icon invert_filter float-right mrgn_right_10px', + 'id' => $id_button, + ] + ); + + $output = '
+ '.__($status).$button.' +
'.html_print_image('/images/circle_title.svg', true, ['class' => 'invert_filter']).''.$title.'
+
+ '.$description.' +
+
'; + + if ($return === true) { + return $output; + } else { + echo $output; + } +} \ No newline at end of file diff --git a/pandora_console/include/functions_servers.php b/pandora_console/include/functions_servers.php index 7ba3c50303..3c2fbfc698 100644 --- a/pandora_console/include/functions_servers.php +++ b/pandora_console/include/functions_servers.php @@ -1317,3 +1317,24 @@ function servers_get_master() return $result; } + + +/** + * Return true if all servers are up. + * + * @return boolean + */ +function check_all_servers_up() +{ + $status = true; + + $servers = servers_get_info(); + + foreach ($servers as $server) { + if ($server['status'] !== '1') { + return false; + } + } + + return $status; +} diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php index 8f70d9aec6..a3fb8dbce5 100755 --- a/pandora_console/include/functions_ui.php +++ b/pandora_console/include/functions_ui.php @@ -3078,6 +3078,32 @@ function ui_print_module_status( } +/** + * Returns html code to print a shape for a module. + * + * @param integer $color Hex color. + * @param boolean $return True or false. + * @param string $class Custom class or use defined. + * @param string $div_content Content. + * + * @return string HTML code for shape. + */ +function ui_print_diagnosis_status( + $color, + $return=false, + $class='status_rounded_rectangles', + $div_content='' +) { + $output = '
'.$div_content.'
'; + + if ($return === false) { + echo $output; + } + + return $output; +} + + /** * Get the shape of an image by assigning it a CSS class. Prints an image with CSS representing a status. * diff --git a/pandora_console/include/styles/mini_diagnosis.css b/pandora_console/include/styles/mini_diagnosis.css new file mode 100644 index 0000000000..7bae821ff8 --- /dev/null +++ b/pandora_console/include/styles/mini_diagnosis.css @@ -0,0 +1,83 @@ +.rectangle { + background-color: #ffffff; + border: 2px solid #e5e9ed; + border-radius: 6px; + max-width: 475px; + width: 475px; + height: 161px; + display: contents; + justify-content: flex-start; +} + +.rectangle:hover { + background-color: #f3f5f7; +} + +.rectangle_Connected { + border-left: 4px solid #82b92e; +} + +.rectangle_Disconnected { + border-left: 4px solid #8a96a6; +} + +.status { + font-weight: bold; + margin-top: -10px; + margin-left: 20px; +} + +.Connected { + color: #82b92e; + font-family: Lato; + font-size: 15px; + line-height: 24px; +} + +.Disconnected { + color: #8a96a6; + font-family: Lato; + font-size: 15px; + line-height: 24px; +} + +.title { + margin-top: 20px; + margin-left: 20px; +} + +.title > img { + margin-top: 5px; +} + +.title > span { + color: #14524f; + font-family: Lato; + font-size: 18px; + line-height: 24px; + text-align: left; + margin-left: 10px; + margin-right: 10px; + display: inline-block; + margin-left: 20px; + margin-top: -20px; +} + +.description { + margin-top: 20px; + margin-left: 10px; + color: #454545; + font-family: Lato; + font-size: 15px; + line-height: 24px; + width: 430px; + text-align: left; +} + +.button { + text-align: right; +} + +span > img:hover { + cursor: pointer; +} diff --git a/pandora_console/include/styles/new_installation_welcome_window.css b/pandora_console/include/styles/new_installation_welcome_window.css index 90f96a5445..0dbdcd5203 100644 --- a/pandora_console/include/styles/new_installation_welcome_window.css +++ b/pandora_console/include/styles/new_installation_welcome_window.css @@ -86,3 +86,13 @@ #welcome_form li.extra { padding-bottom: 2.5em; } + +#li-div_diagnosis, +#li-div_task_todo { + border-left: unset !important; +} + +#div_diagnosis > label, +#div_task_todo > label { + font-weight: bold; +} From 9829d9281ccdf1e059bfbb14bd878869bf43ebc6 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 23 May 2023 17:00:00 +0200 Subject: [PATCH 049/268] #10598 new wizard welcome --- .../godmode/wizards/task_to_perform.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pandora_console/godmode/wizards/task_to_perform.php b/pandora_console/godmode/wizards/task_to_perform.php index 6a1db32448..c821758bb8 100644 --- a/pandora_console/godmode/wizards/task_to_perform.php +++ b/pandora_console/godmode/wizards/task_to_perform.php @@ -317,9 +317,9 @@ $table->size[0] = '30%'; $table->size[1] = '30%'; $table->data[0][0] = html_print_wizard_diagnosis(__('Wizard install agent'), 'wizard_install', __('Wizard install agent'), false, true); $table->data[0][1] = html_print_wizard_diagnosis(__('Create check web'), 'configure_email', __('Create check web'), $status_check_web, true); -$table->data[1][0] = html_print_wizard_diagnosis(__('Create basic connectivity'), 'servers_up', __('Create basic connectivity'), $status_check_connectivity, true); -$table->data[1][1] = html_print_wizard_diagnosis(__('Create basic net'), 'license_valid', __('Create basic net'), true, true); -$table->data[2][0] = html_print_wizard_diagnosis(__('Create Alert Mail'), 'license_valid', __('Create Alert Mail'), true, true); +$table->data[1][0] = html_print_wizard_diagnosis(__('Create basic connectivity'), 'basic_connectivity', __('Create basic connectivity'), $status_check_connectivity, true); +$table->data[1][1] = html_print_wizard_diagnosis(__('Create basic net'), 'basic_net', __('Create basic net'), true, true); +$table->data[2][0] = html_print_wizard_diagnosis(__('Create Alert Mail'), 'alert_mail', __('Create Alert Mail'), true, true); html_print_table($table); ?> @@ -329,22 +329,22 @@ html_print_table($table); 'deployAgent()' ); - document.getElementById("button-btn_check_web_conf").setAttribute( + document.getElementById("configure_email").setAttribute( 'onclick', 'openCreateModulesDialog()' ); - document.getElementById("button-btn_check_connectivity_conf").setAttribute( + document.getElementById("basic_connectivity").setAttribute( 'onclick', 'openCreateConnectivityDialog()' ); - document.getElementById("button-btn_check_net_conf").setAttribute( + document.getElementById("basic_net").setAttribute( 'onclick', 'openCreateBasicNetDialog()' ); - document.getElementById("button-btn_check_mail_alert_conf").setAttribute( + document.getElementById("alert_mail").setAttribute( 'onclick', 'openCreateAlertMailDialog()' ); From 99b274d36293da126343d42c4090f1b9cf853fb7 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 24 May 2023 08:41:46 +0200 Subject: [PATCH 050/268] #10598 new wizard welcome --- pandora_console/godmode/wizards/mini_diagnosis.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/godmode/wizards/mini_diagnosis.php b/pandora_console/godmode/wizards/mini_diagnosis.php index cfa58d9f74..022b46c203 100644 --- a/pandora_console/godmode/wizards/mini_diagnosis.php +++ b/pandora_console/godmode/wizards/mini_diagnosis.php @@ -54,7 +54,7 @@ ui_print_standard_header( ] ); -if (empty($config['pandora_uid']) === 'ONLINE') { +if ($config['pandora_uid'] === 'ONLINE') { $status_um = true; } From e2cea8d78ebf98d7826efd9b040fc0f541ea0dd0 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Wed, 24 May 2023 13:37:14 +0200 Subject: [PATCH 051/268] #11331 Add GCP constant --- pandora_console/godmode/wizards/DiscoveryTaskList.class.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php index 12e557de87..fb441db931 100644 --- a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php +++ b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php @@ -1137,6 +1137,9 @@ class DiscoveryTaskList extends HTML case DISCOVERY_CLOUD_AWS_S3: return 'wiz=cloud&mode=amazonws&ki='.$task['auth_strings'].'&sub=s3&page=0'; + case DISCOVERY_CLOUD_GCP_COMPUTE_ENGINE: + return 'wiz=cloud&mode=gcp&ki='.$task['auth_strings'].'&sub=compute&page=0'; + default: return 'wiz=cloud'; } From aa22026b45f3ba93be10decb10d235062eac4e56 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 25 May 2023 10:17:59 +0200 Subject: [PATCH 052/268] #11271 fix style azure configuration --- pandora_console/include/styles/pandora.css | 8 ++++++++ pandora_console/include/styles/tables.css | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index ef19fbdb13..69eaaf899b 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -12223,3 +12223,11 @@ div.parent_graph > p.legend_background > table > tbody > tr { .toggle-traffic-graph { margin: 0px !important; } + +form.max_floating_element_size > ul#ul_tree_azure { + background-color: #fff; + border-spacing: 0px; + border-radius: 6px; + margin-bottom: 20px; + border: 1px solid #e2e2e2; +} diff --git a/pandora_console/include/styles/tables.css b/pandora_console/include/styles/tables.css index 517c990263..562ffc3c80 100644 --- a/pandora_console/include/styles/tables.css +++ b/pandora_console/include/styles/tables.css @@ -545,7 +545,8 @@ table.filter-table-adv td { } div.filter-table-adv-manual > div, -table.filter-table-adv td > div { +table.filter-table-adv td > div, +table.filter-table-adv td > div.ec2_instance_metrics > div { display: flex; flex-direction: column; justify-content: center; From ec334f252e884aa56251dc4eb55e70b1e61f4d41 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 25 May 2023 11:38:01 +0200 Subject: [PATCH 053/268] #11267 fix inverse critical switch template load --- pandora_console/include/javascript/pandora_modules.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/javascript/pandora_modules.js b/pandora_console/include/javascript/pandora_modules.js index 220459bacd..a5e55809fb 100644 --- a/pandora_console/include/javascript/pandora_modules.js +++ b/pandora_console/include/javascript/pandora_modules.js @@ -492,7 +492,7 @@ function configure_modules_form() { data["unit"] == "" ? "" : data["unit"] ); - $("#checkbox-critical_inverse").prop( + $("#checkbox-critical_inverse_string").prop( "checked", data["critical_inverse"] ); From 562aebfb85a123bb7ddaa9dcdb93af886ac3c303 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 25 May 2023 14:01:43 +0200 Subject: [PATCH 054/268] #11312 fixed url public in visual console --- .../javascript/pandora_visual_console.js | 4 ++-- .../operation/visual_console/public_view.php | 22 ++++++++++--------- .../operation/visual_console/view.php | 4 +++- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/pandora_console/include/javascript/pandora_visual_console.js b/pandora_console/include/javascript/pandora_visual_console.js index 354934039c..0348306365 100755 --- a/pandora_console/include/javascript/pandora_visual_console.js +++ b/pandora_console/include/javascript/pandora_visual_console.js @@ -770,8 +770,8 @@ function loadVisualConsoleData( page: "include/rest-api/index", getVisualConsole: 1, visualConsoleId: vcId, - id_user: typeof id_user == undefined ? id_user : null, - auth_hash: typeof hash == undefined ? hash : null + id_user: typeof id_user !== undefined ? id_user : null, + auth_hash: typeof hash !== undefined ? hash : null }, "json" ) diff --git a/pandora_console/operation/visual_console/public_view.php b/pandora_console/operation/visual_console/public_view.php index ddf6811930..05a17ea851 100644 --- a/pandora_console/operation/visual_console/public_view.php +++ b/pandora_console/operation/visual_console/public_view.php @@ -61,6 +61,18 @@ echo ' Date: Thu, 25 May 2023 14:58:33 +0200 Subject: [PATCH 055/268] #11153 Fixed the size of the steps so that it doesn't take up 100% --- pandora_console/include/styles/pandora.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index ef19fbdb13..9f08a3c281 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -12071,8 +12071,9 @@ div.parent_graph > p.legend_background > table > tbody > tr { .steps { display: flex; + justify-content: space-between; align-items: center; - width: 100%; + width: 70%; } .step { From 913775c0d33a3324b5fb4e9491d527c9f1da685c Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Fri, 26 May 2023 08:57:45 +0200 Subject: [PATCH 056/268] #11262 added new token in modules by status for filter disabled modules --- pandora_console/include/ajax/module.php | 7 +++++- .../lib/Dashboard/Widgets/ModulesByStatus.php | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index b20bad2a18..4e6dbbea60 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -1713,6 +1713,7 @@ if (check_login()) { $length = ($length != '-1') ? $length : '18446744073709551615'; $order = get_datatable_order(true); $nodes = get_parameter('nodes', 0); + $disabled_modules = (bool) get_parameter('disabled_modules', false); $where = ''; $recordsTotal = 0; @@ -1737,9 +1738,13 @@ if (check_login()) { $where .= sprintf( 'tagente_estado.estado IN (%s) AND tagente_modulo.delete_pending = 0', - $status + $status, ); + if ($disabled_modules === false) { + $where .= ' AND tagente_modulo.disabled = 0'; + } + if (is_metaconsole() === false) { $order_by = ''; switch ($order['field']) { diff --git a/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php b/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php index 01a8781606..a48ae20724 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php +++ b/pandora_console/include/lib/Dashboard/Widgets/ModulesByStatus.php @@ -216,6 +216,10 @@ class ModulesByStatus extends Widget $values['nodes'] = $decoder['nodes']; } + if (isset($decoder['disabled_modules']) === true) { + $values['disabled_modules'] = $decoder['disabled_modules']; + } + return $values; } @@ -248,6 +252,23 @@ class ModulesByStatus extends Widget ], ]; + $inputs[] = [ + 'label' => html_print_div( + [ + 'class' => 'flex', + 'content' => __('Disabled modules').ui_print_help_tip(__('Include disabled modules'), true), + ], + true + ), + 'arguments' => [ + 'id' => 'disabled_modules', + 'name' => 'disabled_modules', + 'type' => 'switch', + 'value' => ($values['disabled_modules'] === null) ? true : $values['disabled_modules'], + 'return' => true, + ], + ]; + // Status fields. $status_fields = []; $status_fields[AGENT_MODULE_STATUS_NORMAL] = __('Normal'); @@ -356,6 +377,7 @@ class ModulesByStatus extends Widget $values['status'] = \get_parameter('status', ''); $values['limit'] = \get_parameter('limit', ''); $values['nodes'] = \get_parameter('nodes', ''); + $values['disabled_modules'] = \get_parameter_switch('disabled_modules'); return $values; } @@ -426,6 +448,7 @@ class ModulesByStatus extends Widget 'search' => $this->values['search'], 'status' => $this->values['status'], 'nodes' => $this->values['nodes'], + 'disabled_modules' => $this->values['disabled_modules'], ], 'default_pagination' => $this->values['limit'], 'order' => [ From 4984e2608a6fc1db53a93a004ffafa4a9f7a4c35 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Fri, 26 May 2023 12:30:36 +0200 Subject: [PATCH 057/268] #11314 Collapses the boxes for modules, alerts and events when the agent does not have this information related --- pandora_console/operation/agentes/alerts_status.php | 3 ++- pandora_console/operation/agentes/estado_monitores.php | 2 +- pandora_console/operation/agentes/status_events.php | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pandora_console/operation/agentes/alerts_status.php b/pandora_console/operation/agentes/alerts_status.php index 8c251903af..6590131020 100755 --- a/pandora_console/operation/agentes/alerts_status.php +++ b/pandora_console/operation/agentes/alerts_status.php @@ -475,6 +475,7 @@ $html_content = ob_get_clean(); if ($agent_view_page === true) { // Create controlled toggle content. + $alerts_count = alerts_get_alerts(0, '', 'all', -1, $true, true, $agent['id_agente']); html_print_div( [ 'class' => 'agent_details_line', @@ -483,7 +484,7 @@ if ($agent_view_page === true) { ''.__('Full list of alerts').'', 'status_monitor_agent', !$alerts_defined, - false, + ($alerts_count > 0) ? false : true, true, '', '', diff --git a/pandora_console/operation/agentes/estado_monitores.php b/pandora_console/operation/agentes/estado_monitores.php index 52a93fde85..5003068354 100755 --- a/pandora_console/operation/agentes/estado_monitores.php +++ b/pandora_console/operation/agentes/estado_monitores.php @@ -196,7 +196,7 @@ html_print_div( ).'', 'status_monitor_agent', false, - false, + ($agent['total_count'] > 0) ? false : true, true, '', 'white-box-content', diff --git a/pandora_console/operation/agentes/status_events.php b/pandora_console/operation/agentes/status_events.php index 478b0771c2..8f14d2e730 100755 --- a/pandora_console/operation/agentes/status_events.php +++ b/pandora_console/operation/agentes/status_events.php @@ -22,6 +22,7 @@ if (!isset($id_agente)) { require_once 'include/functions_events.php'; ui_require_css_file('events'); +$event_count = db_get_row('tevento', 'id_agente', $id_agente); html_print_div( [ 'class' => 'agent_details_line', @@ -30,7 +31,7 @@ html_print_div( ''.__('Latest events for this agent').'', __('Latest events for this agent'), 'latest_events_agent', - false, + ($event_count) ? false : true, true, '', 'box-flat white-box-content no_border', From c21e26ee1f08e95a03687cf60b06dc3952576855 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Fri, 26 May 2023 13:54:11 +0200 Subject: [PATCH 058/268] #11370 Fix default value selected --- .../godmode/agentes/module_manager_editor_network.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/godmode/agentes/module_manager_editor_network.php b/pandora_console/godmode/agentes/module_manager_editor_network.php index 9c6142ee8d..9d08fe7ed0 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_network.php +++ b/pandora_console/godmode/agentes/module_manager_editor_network.php @@ -245,7 +245,7 @@ $snmp_versions['3'] = 'v. 3'; $snmpVersionsInput = html_print_select( $snmp_versions, 'snmp_version', - ($id_module_type >= 15 && $id_module_type <= 18) ? $snmp_version : 0, + ($id_module_type >= 15 && $id_module_type <= 18) ? $snmp_version : '2c', '', '', '', From 797db7f24b2de7060ed8350c0e12c3c1bc1ce25f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Sat, 27 May 2023 14:51:53 -0600 Subject: [PATCH 059/268] Add default id_group 10 Unknown to new agents --- pandora_server/util/pandora_manage.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 71814e30f6..82c308d105 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -4515,7 +4515,7 @@ sub cli_create_event() { # exist_check($id_agent,'agent',$agent_name); if($id_agent == -1){ if($force_create_agent == 1){ - pandora_create_agent ($conf, '', $agent_name, '', '', '', '', 'Created by cli_create_event', '', $dbh); + pandora_create_agent ($conf, '', $agent_name, '', '10', '', '', 'Created by cli_create_event', '', $dbh); print_log "[INFO] Adding agent '$agent_name' \n\n"; $id_agent = get_agent_id($dbh,$agent_name); } From 21aedb1e7a37df6688411cc3e62d0eb2d71523c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Sat, 27 May 2023 17:01:29 -0600 Subject: [PATCH 060/268] Print missing files and change log_file to logfile --- pandora_server/util/pandora_manage.pl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 71814e30f6..c4694501b8 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -5923,13 +5923,25 @@ sub cli_get_bad_conf_files() { foreach my $file (@files) { # Check important tokens my $missings = 0; - my @tokens = ("server_ip","server_path","temporal","log_file"); + my @tokens = ("server_ip","server_path","temporal","logfile"); if ($file !~ /.srv./) { foreach my $token (@tokens) { - if(enterprise_hook('pandora_check_conf_token',[$conf->{incomingdir}.'/conf/'.$file, $token]) == 0) { + my $result = enterprise_hook('pandora_check_conf_token', [$conf->{incomingdir}.'/conf/'.$file, $token]); + + if($result == 0) { $missings++; } + elsif ($result == -1) { + print_log "[WARN] File not exists /conf/".$file."\n\n"; + $bad_files++; + last; + } + elsif(!defined $result) { + print_log "[WARN] Can't open file /conf/".$file."\n\n"; + $bad_files++; + last; + } } # If any token of checked is missed we print the file path From 206daabbd758224ab150fb976a6612b6b0e6578c Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 29 May 2023 10:59:12 +0200 Subject: [PATCH 061/268] #11379 fixed filter in agent list when use action --- pandora_console/godmode/agentes/modificar_agente.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/agentes/modificar_agente.php b/pandora_console/godmode/agentes/modificar_agente.php index 0b27809299..dfd691bd1a 100644 --- a/pandora_console/godmode/agentes/modificar_agente.php +++ b/pandora_console/godmode/agentes/modificar_agente.php @@ -929,7 +929,7 @@ if ($agents !== false) { [ 'href' => ui_get_full_url( sprintf( - 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&%s_agent=%s&group_id=%s&recursion=%s&search=%s&offset=%s&sort_field=%s&sort=%s&disabled=%s', + 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&%s_agent=%s&group_id=%s&recursion=%s&search=%s&offset=%s&sort_field=%s&sort=%s&disabled=%s&os=%s', $agentDisableEnableAction, $agent['id_agente'], $ag_group, @@ -938,7 +938,8 @@ if ($agents !== false) { '', $sortField, $sort, - $disabled + $disabled, + $os ) ), 'onClick' => ($agent['id_os'] === CLUSTER_OS_ID) ? sprintf('if (!confirm(\'%s\')) return false', $agentDisableEnableCaption) : 'return true;', From 0cf433779a6190245b40e874caf402430ca937cd Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 29 May 2023 11:47:25 +0200 Subject: [PATCH 062/268] #11392 add new mibs --- .../attachment/mibs/APPLICATION-MIB | 498 + pandora_console/attachment/mibs/ARUBA-MIB | 446 + pandora_console/attachment/mibs/ARUBA-TC | 1075 + pandora_console/attachment/mibs/ATM-MIB | 2623 ++ pandora_console/attachment/mibs/BGP4-MIB | 828 + pandora_console/attachment/mibs/BRIDGE-MIB | 1085 + pandora_console/attachment/mibs/CHARACTER-MIB | 667 + .../attachment/mibs/CISCO-C2900-MIB.mib | 2081 ++ pandora_console/attachment/mibs/CISCO-CDP-MIB | 828 + .../attachment/mibs/CISCO-CONFIG-COPY-MIB | 524 + .../attachment/mibs/CISCO-ENVMON-MIB | 933 + .../attachment/mibs/CISCO-MEMORY-POOL-MIB | 227 + pandora_console/attachment/mibs/CISCO-MIB | 4381 +++ .../attachment/mibs/CISCO-PING-MIB.my.txt | 451 + .../attachment/mibs/CISCO-RTTMON-MIB | 8909 +++++ .../attachment/mibs/CISCO-RTTMON-TC-MIB.my | 730 + pandora_console/attachment/mibs/CISCO-SMI | 326 + pandora_console/attachment/mibs/CISCO-SMI.my | 326 + .../attachment/mibs/CISCO-STACK-MIB.my | 12611 +++++++ pandora_console/attachment/mibs/CISCO-TC | 770 + pandora_console/attachment/mibs/CISCO-VTP-MIB | 2811 ++ pandora_console/attachment/mibs/CLNS-MIB | 1309 + pandora_console/attachment/mibs/CPQHLTH-MIB | 5781 ++++ pandora_console/attachment/mibs/CPQHOST-MIB | 2413 ++ pandora_console/attachment/mibs/CPQSINFO-MIB | 3867 +++ pandora_console/attachment/mibs/CPQSTDEQ-MIB | 4980 +++ pandora_console/attachment/mibs/CPQSTSYS-MIB | 4058 +++ .../attachment/mibs/DECNET-PHIV-MIB | 3041 ++ pandora_console/attachment/mibs/DELL-RAC-MIB | 1235 + pandora_console/attachment/mibs/DHCP-MIB.mib | 169 + pandora_console/attachment/mibs/DSA-MIB | 660 + .../attachment/mibs/ENTITY-MIB.mib | 2691 +- pandora_console/attachment/mibs/EtherLike-MIB | 1160 + .../attachment/mibs/FDDI-SMT73-MIB | 2125 ++ .../attachment/mibs/HOST-RESOURCES-MIB | 1356 + .../attachment/mibs/IANAifType-MIB | 119 + .../attachment/mibs/IANAifType-MIB.txt | 388 + .../attachment/mibs/IDRAC-MIB-SMIv2 | 13303 ++++++++ pandora_console/attachment/mibs/IF-MIB | 1594 + pandora_console/attachment/mibs/IF-MIB.txt | 1828 + pandora_console/attachment/mibs/IMM-MIB | 11715 +++++++ .../attachment/mibs/INET-ADDRESS-MIB.mib | 827 +- pandora_console/attachment/mibs/IPV6-ICMP-MIB | 529 + pandora_console/attachment/mibs/IPV6-MIB | 1443 + pandora_console/attachment/mibs/IPV6-TC | 67 + pandora_console/attachment/mibs/JUNIPER-MIB | 2022 ++ pandora_console/attachment/mibs/JUNIPER-SMI | 266 + .../attachment/mibs/MIB-Dell-10892 | 14508 ++++++++ pandora_console/attachment/mibs/MIOX25-MIB | 707 + pandora_console/attachment/mibs/MSFT-MIB | 18 + pandora_console/attachment/mibs/MSSQL-MIB | 837 + pandora_console/attachment/mibs/MTA-MIB | 659 + pandora_console/attachment/mibs/NETAPP-MIB | 27966 ++++++++++++++++ .../attachment/mibs/NETWORK-APPLIANCE-MIB.mib | 26053 ++++++++++++++ .../attachment/mibs/OLD-CISCO-CHASSIS-MIB | 1659 + .../attachment/mibs/OLD-CISCO-CPU-MIB | 70 + .../attachment/mibs/OLD-CISCO-FLASH-MIB | 278 + .../attachment/mibs/OLD-CISCO-INTERFACES-MIB | 1405 + .../attachment/mibs/OLD-CISCO-SYS-MIB | 1043 + pandora_console/attachment/mibs/OPMANAGER-MIB | 367 + pandora_console/attachment/mibs/ORADB-MIB | 1179 + pandora_console/attachment/mibs/OSPF-MIB | 2738 ++ pandora_console/attachment/mibs/P-BRIDGE-MIB | 963 + pandora_console/attachment/mibs/PARALLEL-MIB | 298 + pandora_console/attachment/mibs/PPP-LCP-MIB | 765 + pandora_console/attachment/mibs/Printer-MIB | 3664 ++ pandora_console/attachment/mibs/Q-BRIDGE-MIB | 1876 ++ .../attachment/mibs/RAPID-CITY.mib | 4649 +++ .../attachment/mibs/RC-VLAN-MIB.mib | 1477 + pandora_console/attachment/mibs/RDBMS-MIB | 1305 + pandora_console/attachment/mibs/RFC1155-SMI | 27 + pandora_console/attachment/mibs/RFC1158-MIB | 1521 + pandora_console/attachment/mibs/RFC1213-MIB | 2640 ++ pandora_console/attachment/mibs/RFC1215-TRAP | 77 + pandora_console/attachment/mibs/RFC1229-MIB | 473 + pandora_console/attachment/mibs/RFC1231-MIB | 869 + pandora_console/attachment/mibs/RFC1232-MIB | 890 + pandora_console/attachment/mibs/RFC1233-MIB | 729 + pandora_console/attachment/mibs/RFC1253-MIB | 1608 + pandora_console/attachment/mibs/RFC1304-MIB | 913 + pandora_console/attachment/mibs/RFC1315-FRAME | 634 + pandora_console/attachment/mibs/RFC1315-MIB | 634 + pandora_console/attachment/mibs/RFC1316-MIB | 519 + pandora_console/attachment/mibs/RFC1317-MIB | 548 + pandora_console/attachment/mibs/RFC1318-MIB | 253 + pandora_console/attachment/mibs/RFC1381-MIB | 1005 + pandora_console/attachment/mibs/RFC1382-MIB | 2625 ++ pandora_console/attachment/mibs/RFC1389-MIB | 398 + pandora_console/attachment/mibs/RFC1398-MIB | 495 + pandora_console/attachment/mibs/RFC1406-MIB | 1547 + pandora_console/attachment/mibs/RFC1407-MIB | 1398 + pandora_console/attachment/mibs/RFC1414-MIB | 134 + pandora_console/attachment/mibs/RS-232-MIB | 801 + pandora_console/attachment/mibs/SIP-MIB | 1132 + pandora_console/attachment/mibs/SMUX-MIB | 168 + pandora_console/attachment/mibs/SNA-NAU-MIB | 2783 ++ .../attachment/mibs/SNMP-FRAMEWORK-MIB | 493 + .../attachment/mibs/SNMP-FRAMEWORK-MIB.my | 543 + .../attachment/mibs/SNMP-USER-BASED-SM-MIB | 890 + .../attachment/mibs/SNMP-VIEW-BASED-ACM-MIB | 804 + .../attachment/mibs/SNMPv2-CONF.my.txt | 0 pandora_console/attachment/mibs/SNMPv2-MIB | 773 + .../attachment/mibs/SNMPv2-MIB.txt | 780 + pandora_console/attachment/mibs/SNMPv2-SMI | 119 + pandora_console/attachment/mibs/SNMPv2-TC | 955 + pandora_console/attachment/mibs/SNMPv2-TM | 131 + .../attachment/mibs/StorageManagement-MIB | 5912 ++++ pandora_console/attachment/mibs/TCPIPX-MIB | 350 + pandora_console/attachment/mibs/TOKENRING-MIB | 858 + pandora_console/attachment/mibs/UPS-MIB | 1917 ++ pandora_console/attachment/mibs/WINS-MIB | 802 + pandora_console/attachment/mibs/WLSX-MON-MIB | 2958 ++ .../attachment/mibs/WLSX-SYSTEMEXT-MIB | 1132 + pandora_console/attachment/mibs/WLSX-WLAN-MIB | 5938 ++++ .../attachment/mibs/oracle-database.mib | 1305 + 115 files changed, 256150 insertions(+), 1891 deletions(-) create mode 100644 pandora_console/attachment/mibs/APPLICATION-MIB create mode 100644 pandora_console/attachment/mibs/ARUBA-MIB create mode 100644 pandora_console/attachment/mibs/ARUBA-TC create mode 100644 pandora_console/attachment/mibs/ATM-MIB create mode 100644 pandora_console/attachment/mibs/BGP4-MIB create mode 100644 pandora_console/attachment/mibs/BRIDGE-MIB create mode 100644 pandora_console/attachment/mibs/CHARACTER-MIB create mode 100644 pandora_console/attachment/mibs/CISCO-C2900-MIB.mib create mode 100644 pandora_console/attachment/mibs/CISCO-CDP-MIB create mode 100644 pandora_console/attachment/mibs/CISCO-CONFIG-COPY-MIB create mode 100644 pandora_console/attachment/mibs/CISCO-ENVMON-MIB create mode 100644 pandora_console/attachment/mibs/CISCO-MEMORY-POOL-MIB create mode 100644 pandora_console/attachment/mibs/CISCO-MIB create mode 100644 pandora_console/attachment/mibs/CISCO-PING-MIB.my.txt create mode 100644 pandora_console/attachment/mibs/CISCO-RTTMON-MIB create mode 100644 pandora_console/attachment/mibs/CISCO-RTTMON-TC-MIB.my create mode 100644 pandora_console/attachment/mibs/CISCO-SMI create mode 100644 pandora_console/attachment/mibs/CISCO-SMI.my create mode 100644 pandora_console/attachment/mibs/CISCO-STACK-MIB.my create mode 100644 pandora_console/attachment/mibs/CISCO-TC create mode 100644 pandora_console/attachment/mibs/CISCO-VTP-MIB create mode 100644 pandora_console/attachment/mibs/CLNS-MIB create mode 100644 pandora_console/attachment/mibs/CPQHLTH-MIB create mode 100644 pandora_console/attachment/mibs/CPQHOST-MIB create mode 100644 pandora_console/attachment/mibs/CPQSINFO-MIB create mode 100644 pandora_console/attachment/mibs/CPQSTDEQ-MIB create mode 100644 pandora_console/attachment/mibs/CPQSTSYS-MIB create mode 100644 pandora_console/attachment/mibs/DECNET-PHIV-MIB create mode 100644 pandora_console/attachment/mibs/DELL-RAC-MIB create mode 100644 pandora_console/attachment/mibs/DHCP-MIB.mib create mode 100644 pandora_console/attachment/mibs/DSA-MIB create mode 100644 pandora_console/attachment/mibs/EtherLike-MIB create mode 100644 pandora_console/attachment/mibs/FDDI-SMT73-MIB create mode 100644 pandora_console/attachment/mibs/HOST-RESOURCES-MIB create mode 100644 pandora_console/attachment/mibs/IANAifType-MIB create mode 100644 pandora_console/attachment/mibs/IANAifType-MIB.txt create mode 100644 pandora_console/attachment/mibs/IDRAC-MIB-SMIv2 create mode 100644 pandora_console/attachment/mibs/IF-MIB create mode 100644 pandora_console/attachment/mibs/IF-MIB.txt create mode 100644 pandora_console/attachment/mibs/IMM-MIB create mode 100644 pandora_console/attachment/mibs/IPV6-ICMP-MIB create mode 100644 pandora_console/attachment/mibs/IPV6-MIB create mode 100644 pandora_console/attachment/mibs/IPV6-TC create mode 100644 pandora_console/attachment/mibs/JUNIPER-MIB create mode 100644 pandora_console/attachment/mibs/JUNIPER-SMI create mode 100644 pandora_console/attachment/mibs/MIB-Dell-10892 create mode 100644 pandora_console/attachment/mibs/MIOX25-MIB create mode 100644 pandora_console/attachment/mibs/MSFT-MIB create mode 100644 pandora_console/attachment/mibs/MSSQL-MIB create mode 100644 pandora_console/attachment/mibs/MTA-MIB create mode 100644 pandora_console/attachment/mibs/NETAPP-MIB create mode 100644 pandora_console/attachment/mibs/NETWORK-APPLIANCE-MIB.mib create mode 100644 pandora_console/attachment/mibs/OLD-CISCO-CHASSIS-MIB create mode 100644 pandora_console/attachment/mibs/OLD-CISCO-CPU-MIB create mode 100644 pandora_console/attachment/mibs/OLD-CISCO-FLASH-MIB create mode 100644 pandora_console/attachment/mibs/OLD-CISCO-INTERFACES-MIB create mode 100644 pandora_console/attachment/mibs/OLD-CISCO-SYS-MIB create mode 100644 pandora_console/attachment/mibs/OPMANAGER-MIB create mode 100644 pandora_console/attachment/mibs/ORADB-MIB create mode 100644 pandora_console/attachment/mibs/OSPF-MIB create mode 100644 pandora_console/attachment/mibs/P-BRIDGE-MIB create mode 100644 pandora_console/attachment/mibs/PARALLEL-MIB create mode 100644 pandora_console/attachment/mibs/PPP-LCP-MIB create mode 100644 pandora_console/attachment/mibs/Printer-MIB create mode 100644 pandora_console/attachment/mibs/Q-BRIDGE-MIB create mode 100644 pandora_console/attachment/mibs/RAPID-CITY.mib create mode 100644 pandora_console/attachment/mibs/RC-VLAN-MIB.mib create mode 100644 pandora_console/attachment/mibs/RDBMS-MIB create mode 100644 pandora_console/attachment/mibs/RFC1155-SMI create mode 100644 pandora_console/attachment/mibs/RFC1158-MIB create mode 100644 pandora_console/attachment/mibs/RFC1213-MIB create mode 100644 pandora_console/attachment/mibs/RFC1215-TRAP create mode 100644 pandora_console/attachment/mibs/RFC1229-MIB create mode 100644 pandora_console/attachment/mibs/RFC1231-MIB create mode 100644 pandora_console/attachment/mibs/RFC1232-MIB create mode 100644 pandora_console/attachment/mibs/RFC1233-MIB create mode 100644 pandora_console/attachment/mibs/RFC1253-MIB create mode 100644 pandora_console/attachment/mibs/RFC1304-MIB create mode 100644 pandora_console/attachment/mibs/RFC1315-FRAME create mode 100644 pandora_console/attachment/mibs/RFC1315-MIB create mode 100644 pandora_console/attachment/mibs/RFC1316-MIB create mode 100644 pandora_console/attachment/mibs/RFC1317-MIB create mode 100644 pandora_console/attachment/mibs/RFC1318-MIB create mode 100644 pandora_console/attachment/mibs/RFC1381-MIB create mode 100644 pandora_console/attachment/mibs/RFC1382-MIB create mode 100644 pandora_console/attachment/mibs/RFC1389-MIB create mode 100644 pandora_console/attachment/mibs/RFC1398-MIB create mode 100644 pandora_console/attachment/mibs/RFC1406-MIB create mode 100644 pandora_console/attachment/mibs/RFC1407-MIB create mode 100644 pandora_console/attachment/mibs/RFC1414-MIB create mode 100644 pandora_console/attachment/mibs/RS-232-MIB create mode 100644 pandora_console/attachment/mibs/SIP-MIB create mode 100644 pandora_console/attachment/mibs/SMUX-MIB create mode 100644 pandora_console/attachment/mibs/SNA-NAU-MIB create mode 100644 pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB create mode 100644 pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB.my create mode 100644 pandora_console/attachment/mibs/SNMP-USER-BASED-SM-MIB create mode 100644 pandora_console/attachment/mibs/SNMP-VIEW-BASED-ACM-MIB create mode 100644 pandora_console/attachment/mibs/SNMPv2-CONF.my.txt create mode 100644 pandora_console/attachment/mibs/SNMPv2-MIB create mode 100644 pandora_console/attachment/mibs/SNMPv2-MIB.txt create mode 100644 pandora_console/attachment/mibs/SNMPv2-SMI create mode 100644 pandora_console/attachment/mibs/SNMPv2-TC create mode 100644 pandora_console/attachment/mibs/SNMPv2-TM create mode 100644 pandora_console/attachment/mibs/StorageManagement-MIB create mode 100644 pandora_console/attachment/mibs/TCPIPX-MIB create mode 100644 pandora_console/attachment/mibs/TOKENRING-MIB create mode 100644 pandora_console/attachment/mibs/UPS-MIB create mode 100644 pandora_console/attachment/mibs/WINS-MIB create mode 100644 pandora_console/attachment/mibs/WLSX-MON-MIB create mode 100644 pandora_console/attachment/mibs/WLSX-SYSTEMEXT-MIB create mode 100644 pandora_console/attachment/mibs/WLSX-WLAN-MIB create mode 100644 pandora_console/attachment/mibs/oracle-database.mib diff --git a/pandora_console/attachment/mibs/APPLICATION-MIB b/pandora_console/attachment/mibs/APPLICATION-MIB new file mode 100644 index 0000000000..e19b8f64bf --- /dev/null +++ b/pandora_console/attachment/mibs/APPLICATION-MIB @@ -0,0 +1,498 @@ + APPLICATION-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE, Counter32, Gauge32 + FROM SNMPv2-SMI + mib-2 + FROM RFC1213-MIB + DisplayString, TimeStamp + FROM SNMPv2-TC; + + + -- Textual conventions + + -- DistinguishedName [5] is used to refer to objects in the + -- directory. + + DistinguishedName ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A Distinguished Name represented in accordance with + RFC1485." + SYNTAX DisplayString + + application MODULE-IDENTITY + LAST-UPDATED "9311280000Z" + ORGANIZATION "IETF Mail and Directory Management Working Group" + CONTACT-INFO + " Ned Freed + + Postal: Innosoft International, Inc. + 250 West First Street, Suite 240 + Claremont, CA 91711 + US + + Tel: +1 909 624 7907 + Fax: +1 909 621 5319 + + E-Mail: ned@innosoft.com" + DESCRIPTION + "The MIB module describing network service applications" + ::= { mib-2 27 } + + -- The basic applTable contains a list of the application + -- entities. + + + + + + applTable OBJECT-TYPE + SYNTAX SEQUENCE OF ApplEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table holding objects which apply to all different + kinds of applications providing network services." + ::= {application 1} + + applEntry OBJECT-TYPE + SYNTAX ApplEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry associated with a network service application." + INDEX {applIndex} + ::= {applTable 1} + + ApplEntry ::= SEQUENCE { + applIndex + INTEGER, + applName + DisplayString, + applDirectoryName + DistinguishedName, + applVersion + DisplayString, + applUptime + TimeStamp, + applOperStatus + INTEGER, + applLastChange + TimeStamp, + applInboundAssociations + Gauge32, + applOutboundAssociations + Gauge32, + applAccumulatedInboundAssociations + Counter32, + applAccumulatedOutboundAssociations + Counter32, + applLastInboundActivity + TimeStamp, + applLastOutboundActivity + TimeStamp, + applRejectedInboundAssociations + Counter32, + applFailedOutboundAssociations + + + + + Counter32 + } + + applIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An index to uniquely identify the network service + application." + ::= {applEntry 1} + + applName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name the network service application chooses to be + known by." + ::= {applEntry 2} + + applDirectoryName OBJECT-TYPE + SYNTAX DistinguishedName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Distinguished Name of the directory entry where + static information about this application is stored. + An empty string indicates that no information about + the application is available in the directory." + ::= {applEntry 3} + + applVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of network service application software." + ::= {applEntry 4} + + + + + + + + + + + + + applUptime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time the network service + application was last initialized. If the application was + last initialized prior to the last initialization of the + network management subsystem, then this object contains + a zero value." + ::= {applEntry 5} + + applOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + halted(3), + congested(4), + restarting(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the operational status of the network service + application. 'down' indicates that the network service is + not available. 'running' indicates that the network service + is operational and available. 'halted' indicates that the + service is operational but not available. 'congested' + indicates that the service is operational but no additional + inbound associations can be accomodated. 'restarting' + indicates that the service is currently unavailable but is + in the process of restarting and will be available soon." + ::= {applEntry 6} + + applLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time the network service + application entered its current operational state. If + the current state was entered prior to the last + initialization of the local network management subsystem, + then this object contains a zero value." + ::= {applEntry 7} + + + + + + + + applInboundAssociations OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current associations to the network service + application, where it is the responder. For dynamic single + threaded processes, this will be the number of application + instances." + ::= {applEntry 8} + + applOutboundAssociations OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current associations to the network service + application, where it is the initiator. For dynamic single + threaded processes, this will be the number of application + instances." + ::= {applEntry 9} + + applAccumulatedInboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of associations to the application entity + since application initialization, where it was the responder. + For dynamic single threaded processes, this will be the + number of application instances." + ::= {applEntry 10} + + applAccumulatedOutboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of associations to the application entity + since application initialization, where it was the initiator. + For dynamic single threaded processes, this will be the + number of application instances." + ::= {applEntry 11} + + + + + + + + + + applLastInboundActivity OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this application last + had an inbound association. If the last association + occurred prior to the last initialization of the network + subsystem, then this object contains a zero value." + ::= {applEntry 12} + + applLastOutboundActivity OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this application last + had an outbound association. If the last association + occurred prior to the last initialization of the network + subsystem, then this object contains a zero value." + ::= {applEntry 13} + + applRejectedInboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of inbound associations the application + entity has rejected, since application initialization." + ::= {applEntry 14} + + applFailedOutboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number associations where the application entity + is initiator and association establishment has failed, + since application initialization." + ::= {applEntry 15} + + + -- The assocTable augments the information in the applTable + -- with information about associations. Note that two levels + -- of compliance are specified below, depending on whether + -- association monitoring is mandated. + + + + + + assocTable OBJECT-TYPE + SYNTAX SEQUENCE OF AssocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table holding a set of all active application + associations." + ::= {application 2} + + assocEntry OBJECT-TYPE + SYNTAX AssocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry associated with an association for a network + service application." + INDEX {applIndex, assocIndex} + ::= {assocTable 1} + + AssocEntry ::= SEQUENCE { + assocIndex + INTEGER, + assocRemoteApplication + DisplayString, + assocApplicationProtocol + OBJECT IDENTIFIER, + assocApplicationType + INTEGER, + assocDuration + TimeStamp + } + + assocIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An index to uniquely identify each association for a network + service application." + ::= {assocEntry 1} + + + + + + + + + + + assocRemoteApplication OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the system running remote network service + application. For an IP-based application this should be + either a domain name or IP address. For an OSI application + it should be the string encoded distinguished name of the + managed object. For X.400(84) MTAs which do not have a + Distinguished Name, the RFC1327 [6] syntax + 'mta in globalid' should be used." + ::= {assocEntry 2} + + assocApplicationProtocol OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An identification of the protocol being used for the + application. For an OSI Application, this will be the + Application Context. For Internet applications, the IANA + maintains a registry of the OIDs which correspond to + well-known applications. If the application protocol is + not listed in the registry, an OID value of the form + {applTCPProtoID port} or {applUDProtoID port} are used for + TCP-based and UDP-based protocols, respectively. In either + case 'port' corresponds to the primary port number being + used by the protocol." + ::= {assocEntry 3} + + assocApplicationType OBJECT-TYPE + SYNTAX INTEGER { + ua-initiator(1), + ua-responder(2), + peer-initiator(3), + peer-responder(4)} + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates whether the remote application is some type of + client making use of this network service (e.g. a User Agent) + or a server acting as a peer. Also indicated is whether the + remote end initiated an incoming connection to the network + service or responded to an outgoing connection made by the + local application." + ::= {assocEntry 4} + + + + + assocDuration OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this association was + started. If this association started prior to the last + initialization of the network subsystem, then this + object contains a zero value." + ::= {assocEntry 5} + + + -- Conformance information + + applConformance OBJECT IDENTIFIER ::= {application 3} + + applGroups OBJECT IDENTIFIER ::= {applConformance 1} + applCompliances OBJECT IDENTIFIER ::= {applConformance 2} + + + -- Compliance statements + + applCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities + which implement the Network Services Monitoring MIB + for basic monitoring of network service applications." + MODULE -- this module + MANDATORY-GROUPS {applGroup} + ::= {applCompliances 1} + + assocCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement the Network Services Monitoring MIB for basic + monitoring of network service applications and their + associations." + MODULE -- this module + MANDATORY-GROUPS {applGroup, assocGroup} + ::= {applCompliances 2} + + + + + + + + + -- Units of conformance + + applGroup OBJECT-GROUP + OBJECTS { + applName, applVersion, applUptime, applOperStatus, + applLastChange, applInboundAssociations, + applOutboundAssociations, applAccumulatedInboundAssociations, + applAccumulatedOutboundAssociations, applLastInboundActivity, + applLastOutboundActivity, applRejectedInboundAssociations, + applFailedOutboundAssociations} + STATUS current + DESCRIPTION + "A collection of objects providing basic monitoring of + network service applications." + ::= {applGroups 1} + + assocGroup OBJECT-GROUP + OBJECTS { + assocRemoteApplication, assocApplicationProtocol, + assocApplicationType, assocDuration} + STATUS current + DESCRIPTION + "A collection of objects providing basic monitoring of + network service applications' associations." + ::= {applGroups 2} + + + -- OIDs of the form {applTCPProtoID port} are intended to be used + -- for TCP-based protocols that don't have OIDs assigned by other + -- means. {applUDPProtoID port} serves the same purpose for + -- UDP-based protocols. In either case 'port' corresponds to + -- the primary port number being used by the protocol. For example, + -- assuming no other OID is assigned for SMTP, an OID of + -- {applTCPProtoID 25} could be used, since SMTP is a TCP-based + -- protocol that uses port 25 as its primary port. + + applTCPProtoID OBJECT IDENTIFIER ::= {application 4} + applUDPProtoID OBJECT IDENTIFIER ::= {application 5} + + END diff --git a/pandora_console/attachment/mibs/ARUBA-MIB b/pandora_console/attachment/mibs/ARUBA-MIB new file mode 100644 index 0000000000..d14c14c8c2 --- /dev/null +++ b/pandora_console/attachment/mibs/ARUBA-MIB @@ -0,0 +1,446 @@ +-- ArubaOS 6.4.2.3-4.1.1.2_48114 +ARUBA-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + OBJECT-IDENTITY, + enterprises, + snmpModules FROM SNMPv2-SMI + TEXTUAL-CONVENTION FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; + + +-- The top node + +aruba OBJECT IDENTIFIER ::= { enterprises 14823 } + +-- Node Product will contain all the products from Aruba Networks. + +products OBJECT IDENTIFIER ::= { aruba 1} + +-- Node arubaEnterpriseMibModules contains all the Enterprise +-- specific MIBS supported by Aruba Networks products. + +arubaEnterpriseMibModules OBJECT IDENTIFIER ::= { aruba 2} + +-- Node arubaMgmtGroup defines the objects related to the Aruba Management +-- Extensions. + +arubaMgmt OBJECT IDENTIFIER ::= { aruba 3} + +-- List of all the products. + +-- Switch Products +switchProducts OBJECT IDENTIFIER ::= { products 1} + +-- a5000 product , this object is the SYSOID + +a5000 OBJECT IDENTIFIER ::= { switchProducts 1} + +-- a2400 product , this object is the SYSOID + +a2400 OBJECT IDENTIFIER ::= { switchProducts 2} + +-- a800 product , this object is the SYSOID + +a800 OBJECT IDENTIFIER ::= { switchProducts 3} + +-- a6000 product , this object is the SYSOID + +a6000 OBJECT IDENTIFIER ::= { switchProducts 4} + +-- a2400E product , this object is the SYSOID + +a2400E OBJECT IDENTIFIER ::= { switchProducts 7} + +-- a800-E product , this object is the SYSOID + +a800E OBJECT IDENTIFIER ::= { switchProducts 8} + +-- a800-4 product , this object is the SYSOID + +a804 OBJECT IDENTIFIER ::= { switchProducts 9} + +-- a200 product , this object is the SYSOID + +a200 OBJECT IDENTIFIER ::= { switchProducts 10} + +-- a2400-24 product , this object is the SYSOID + +a2424 OBJECT IDENTIFIER ::= { switchProducts 11} + +-- a6000-SC3 (nebbiolo) product , this object is the SYSOID + +a6000-SC3 OBJECT IDENTIFIER ::= { switchProducts 12} + +a3200 OBJECT IDENTIFIER ::= { switchProducts 13} +a3200-8 OBJECT IDENTIFIER ::= { switchProducts 14} + +a3400 OBJECT IDENTIFIER ::= { switchProducts 15} +a3400-32 OBJECT IDENTIFIER ::= { switchProducts 16} + +a3600 OBJECT IDENTIFIER ::= { switchProducts 17} + +a3600-64 OBJECT IDENTIFIER ::= { switchProducts 18} + +a650 OBJECT IDENTIFIER ::= { switchProducts 19} +a651 OBJECT IDENTIFIER ::= { switchProducts 20} +reserved1 OBJECT IDENTIFIER ::= { switchProducts 21} +reserved2 OBJECT IDENTIFIER ::= { switchProducts 22} +a620 OBJECT IDENTIFIER ::= { switchProducts 23} + +s3500-24P OBJECT IDENTIFIER ::= { switchProducts 24 } +s3500-24T OBJECT IDENTIFIER ::= { switchProducts 25 } +s3500-48P OBJECT IDENTIFIER ::= { switchProducts 26 } +s3500-48T OBJECT IDENTIFIER ::= { switchProducts 27 } + +s2500-24P OBJECT IDENTIFIER ::= { switchProducts 28 } +s2500-24T OBJECT IDENTIFIER ::= { switchProducts 29 } +s2500-48P OBJECT IDENTIFIER ::= { switchProducts 30 } +s2500-48T OBJECT IDENTIFIER ::= { switchProducts 31 } + +a7210 OBJECT IDENTIFIER ::= { switchProducts 32 } +a7220 OBJECT IDENTIFIER ::= { switchProducts 33 } +a7240 OBJECT IDENTIFIER ::= { switchProducts 34 } + +s3500-24F OBJECT IDENTIFIER ::= { switchProducts 35 } + +s1500-48P OBJECT IDENTIFIER ::= { switchProducts 36 } +s1500-24P OBJECT IDENTIFIER ::= { switchProducts 37 } +s1500-12P OBJECT IDENTIFIER ::= { switchProducts 38 } + +a7005 OBJECT IDENTIFIER ::= { switchProducts 39 } +a7010 OBJECT IDENTIFIER ::= { switchProducts 40 } +a7030 OBJECT IDENTIFIER ::= { switchProducts 41 } +a7110 OBJECT IDENTIFIER ::= { switchProducts 42 } +a7024 OBJECT IDENTIFIER ::= { switchProducts 43 } +a7105 OBJECT IDENTIFIER ::= { switchProducts 44 } +a9900 OBJECT IDENTIFIER ::= { switchProducts 45 } +a9980 OBJECT IDENTIFIER ::= { switchProducts 46 } + +--Undefined switch. +aUndefined OBJECT IDENTIFIER ::= { switchProducts 9999} + +-- Access Point Products +apProducts OBJECT IDENTIFIER ::= { products 2} + +-- a50 , this object is the SYSOID + +a50 OBJECT IDENTIFIER ::= {apProducts 1} + +-- a52 , this object is the SYSOID + +a52 OBJECT IDENTIFIER ::= {apProducts 2} + +-- a60 , this object is the SYSOID + +ap60 OBJECT IDENTIFIER ::= {apProducts 3} + +-- a61 , this object is the SYSOID + +ap61 OBJECT IDENTIFIER ::= {apProducts 4} + +-- a70 , this object is the SYSOID + +ap70 OBJECT IDENTIFIER ::= {apProducts 5} + +-- walljackAp61, this object is the SYSOID + +walljackAp61 OBJECT IDENTIFIER ::= {apProducts 6} + +-- a2E, this object is the SYSOID + +a2E OBJECT IDENTIFIER ::= {apProducts 7} + +-- ap1200, this object is the SYSOID + +ap1200 OBJECT IDENTIFIER ::= {apProducts 8} + +-- ap80s, this object is the SYSOID + +ap80s OBJECT IDENTIFIER ::= {apProducts 9} + +-- ap80m, this object is the SYSOID + +ap80m OBJECT IDENTIFIER ::= {apProducts 10} + +-- wg102, this object is the SYSOID + +wg102 OBJECT IDENTIFIER ::= {apProducts 11} + +-- ap40, this object is the SYSOID + +ap40 OBJECT IDENTIFIER ::= {apProducts 12} + +-- ap41, this object is the SYSOID + +ap41 OBJECT IDENTIFIER ::= {apProducts 13} + +-- ap65, this object is the SYSOID + +ap65 OBJECT IDENTIFIER ::= {apProducts 14} + +-- NesotMW1700 +apMw1700 OBJECT IDENTIFIER ::= {apProducts 15} + +-- ortronics Wi Jack Duo +apDuowj OBJECT IDENTIFIER ::= {apProducts 16} + +-- ortronics Duo +apDuo OBJECT IDENTIFIER ::= {apProducts 17} + +--ap80MB, this object is the SYSOID + +ap80MB OBJECT IDENTIFIER ::= {apProducts 18} + +--ap80SB, this object is the SYSOID + +ap80SB OBJECT IDENTIFIER ::= {apProducts 19} + +--ap85, this object is the SYSOID + +ap85 OBJECT IDENTIFIER ::= {apProducts 20} + +--ap124, this object is the SYSOID + +ap124 OBJECT IDENTIFIER ::= {apProducts 21} + +--ap125, this object is the SYSOID + +ap125 OBJECT IDENTIFIER ::= {apProducts 22} + +--ap120, this object is the SYSOID + +ap120 OBJECT IDENTIFIER ::= {apProducts 23} + +--ap121, this object is the SYSOID + +ap121 OBJECT IDENTIFIER ::= {apProducts 24} + +--ap1250, this object is the SYSOID + +ap1250 OBJECT IDENTIFIER ::= {apProducts 25} + +--ap120abg, this object is the SYSOID + +ap120abg OBJECT IDENTIFIER ::= {apProducts 26} + +--ap121abg, this object is the SYSOID + +ap121abg OBJECT IDENTIFIER ::= {apProducts 27} + +--ap124abg, this object is the SYSOID + +ap124abg OBJECT IDENTIFIER ::= {apProducts 28} + +--ap125abg, this object is the SYSOID + +ap125abg OBJECT IDENTIFIER ::= {apProducts 29} + +-- rap5wn, this object is the SYSOID + +rap5wn OBJECT IDENTIFIER ::= {apProducts 30} + +-- rap5, this object is the SYSOID + +rap5 OBJECT IDENTIFIER ::= {apProducts 31} + +-- rap2wg, this object is the SYSOID + +rap2wg OBJECT IDENTIFIER ::= {apProducts 32} + +--reserved-4, this object is the SYSOID + +reserved4 OBJECT IDENTIFIER ::= {apProducts 33} + +--ap105, this object is the SYSOID + +ap105 OBJECT IDENTIFIER ::= {apProducts 34} + +--ap65wb, this object is the SYSOID + +ap65wb OBJECT IDENTIFIER ::= {apProducts 35} + +--ap651, this object is the SYSOID + +ap651 OBJECT IDENTIFIER ::= {apProducts 36} + +--reserved-6, this object is the SYSOID + +reserved6 OBJECT IDENTIFIER ::= {apProducts 37} + +--ap60p, this object is the SYSOID + +ap60p OBJECT IDENTIFIER ::= {apProducts 38} + +--reserved-7, this object is the SYSOID + +reserved7 OBJECT IDENTIFIER ::= {apProducts 39} + +--ap92, this object is the SYSOID + +ap92 OBJECT IDENTIFIER ::= {apProducts 40} + +--ap93, this object is the SYSOID + +ap93 OBJECT IDENTIFIER ::= {apProducts 41} + +--ap68, this object is the SYSOID + +ap68 OBJECT IDENTIFIER ::= {apProducts 42} + +--ap68p, this object is the SYSOID + +ap68p OBJECT IDENTIFIER ::= {apProducts 43} + +--ap175p, this object is the SYSOID + +ap175p OBJECT IDENTIFIER ::= {apProducts 44} + +--ap175ac, this object is the SYSOID + +ap175ac OBJECT IDENTIFIER ::= {apProducts 45} + +--ap175dc, this object is the SYSOID + +ap175dc OBJECT IDENTIFIER ::= {apProducts 46} + +--ap134, this object is the SYSOID + +ap134 OBJECT IDENTIFIER ::= {apProducts 47} + +--ap135, this object is the SYSOID + +ap135 OBJECT IDENTIFIER ::= {apProducts 48} + +--reserved-8, this object is the SYSOID + +reserved8 OBJECT IDENTIFIER ::= {apProducts 49} + +--ap93h, this object is the SYSOID + +ap93h OBJECT IDENTIFIER ::= {apProducts 50} + +--rap3wn, this object is the SYSOID + +rap3wn OBJECT IDENTIFIER ::= {apProducts 51} + +--rap3wnp, this object is the SYSOID + +rap3wnp OBJECT IDENTIFIER ::= {apProducts 52} + +--ap104, this object is the SYSOID + +ap104 OBJECT IDENTIFIER ::= {apProducts 53} + +--rap155, this object is the SYSOID +rap155 OBJECT IDENTIFIER ::= {apProducts 54} + +--rap155p, this object is the SYSOID +rap155p OBJECT IDENTIFIER ::= {apProducts 55} + +--rap108, this object is the SYSOID +rap108 OBJECT IDENTIFIER ::= {apProducts 56} + +--rap109, this object is the SYSOID +rap109 OBJECT IDENTIFIER ::= {apProducts 57} + +--ap224, this object is the SYSOID +ap224 OBJECT IDENTIFIER ::= {apProducts 58} + +--ap225, this object is the SYSOID +ap225 OBJECT IDENTIFIER ::= {apProducts 59} + +--ap114, this object is the SYSOID +ap114 OBJECT IDENTIFIER ::= {apProducts 60} + +--ap115, this object is the SYSOID +ap115 OBJECT IDENTIFIER ::= {apProducts 61} + +--rap109L, this object is the SYSOID +rap109L OBJECT IDENTIFIER ::= {apProducts 62} + +--ap274, this object is the SYSOID +ap274 OBJECT IDENTIFIER ::= {apProducts 63} + +--ap275, this object is the SYSOID +ap275 OBJECT IDENTIFIER ::= {apProducts 64} + +--ap214a, this object is the SYSOID +ap214a OBJECT IDENTIFIER ::= {apProducts 65} + +--ap215a, this object is the SYSOID +ap215a OBJECT IDENTIFIER ::= {apProducts 66} + +--ap204, this object is the SYSOID +ap204 OBJECT IDENTIFIER ::= {apProducts 67} + +--ap205, this object is the SYSOID +ap205 OBJECT IDENTIFIER ::= {apProducts 68} + +--ap103, this object is the SYSOID +ap103 OBJECT IDENTIFIER ::= {apProducts 69} + +--ap103H, this object is the SYSOID +ap103H OBJECT IDENTIFIER ::= {apProducts 70} + +--iapvc, this object is the SYSOID +iapvc OBJECT IDENTIFIER ::= {apProducts 71} + +--ap214, this object is the SYSOID +ap214 OBJECT IDENTIFIER ::= {apProducts 73} + +--ap215, this object is the SYSOID +ap215 OBJECT IDENTIFIER ::= {apProducts 74} + +--Undefined ap. +apUndefined OBJECT IDENTIFIER ::= { apProducts 9999} + +-- EMS Products +emsProducts OBJECT IDENTIFIER ::= { products 3} + + +--Partner Products +partnerProducts OBJECT IDENTIFIER ::= {products 4} + +ecsE50 OBJECT IDENTIFIER ::= {partnerProducts 1} +ecsE100C OBJECT IDENTIFIER ::= {partnerProducts 2} +ecsE100A OBJECT IDENTIFIER ::= {partnerProducts 3} +ecsENSM OBJECT IDENTIFIER ::= {partnerProducts 4} + +--Amigopod +amigopodProducts OBJECT IDENTIFIER ::= { products 5 } + +-- List of all the Enterprise MIB Modules. + +-- common node will contain all the objects which can be shared between +-- Aruba products. + +common OBJECT IDENTIFIER ::= { arubaEnterpriseMibModules 1 } + +-- switch node will contain all the objects for the switch products + +switch OBJECT IDENTIFIER ::= { arubaEnterpriseMibModules 2 } + +-- Aruba AP will contain all the objects for the Aruba AP. +arubaAp OBJECT IDENTIFIER ::= { arubaEnterpriseMibModules 3 } + +arubaEcs OBJECT IDENTIFIER ::= {arubaEnterpriseMibModules 4} + +-- Common MIB Modules shared across Aruba products. +arubaMIBModules OBJECT IDENTIFIER ::= { common 1 } + +-- Switch Mib Modules. +wlsxEnterpriseMibModules OBJECT IDENTIFIER ::= { switch 1 } + +-- Access Point Mib Modules. +wlsrEnterpriseMibModules OBJECT IDENTIFIER ::= { arubaAp 1 } + +-- Outdoor AP Mib definition. +wlsrOutDoorApMibModules OBJECT IDENTIFIER ::= { arubaAp 2 } + +-- Instant Mib definition. +aiEnterpriseMibModules OBJECT IDENTIFIER ::= { arubaAp 3 } + + +END diff --git a/pandora_console/attachment/mibs/ARUBA-TC b/pandora_console/attachment/mibs/ARUBA-TC new file mode 100644 index 0000000000..dc01826641 --- /dev/null +++ b/pandora_console/attachment/mibs/ARUBA-TC @@ -0,0 +1,1075 @@ +--- ArubaOS 6.5.2.0_59123 +-- vim:set ts=4 sw=4: +ARUBA-TC DEFINITIONS ::= BEGIN + +IMPORTS + ObjectSyntax, TimeTicks, Integer32 + FROM SNMPv2-SMI; + + +-- definition of textual conventions + +ArubaEnableValue ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents a Flag which is either Enabled or Disabled." + SYNTAX INTEGER { enabled(1), disabled(2) } + + +ArubaFrameType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the Frame type." + SYNTAX INTEGER { + associateRequest(0), + associateResponse(1), + reassociateRequest(2), + reassociateResponse(3), + probeRequest(4), + probeResponse(5), + beacon(8), + atim(9), + disassociate(10), + auth(11), + deauth(12) + } + +ArubaPhyType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the PHY-type of the access point or client. Wired clients will + show 'wired' in user MIB entries. + " + SYNTAX INTEGER { + dot11a(1), + dot11b(2), + dot11g(3), + dot11ag(4), + wired(5) + } + +ArubaHTMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the HT status of the access point or client. + " + SYNTAX INTEGER { + none(1), + ht20(2), + ht40(3), + vht20(4), + vht40(5), + vht80(6), + vht160(7), + vht80plus80(8) + } + +ArubaHTExtChannel ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the extension channel offset relative to the current channel." + SYNTAX INTEGER { + none(1), + above(2), + below(3), + eighty(4) + } + +ArubaMonEncryptionType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the encryption type supported by the access point." + SYNTAX INTEGER { + open(0), + wep(1), + wpa(2), + wpa2(3) + } + +ArubaMonEncryptionCipher ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the WPA encryption cipher supported by the access point." + SYNTAX INTEGER { + none(0), + wep40(1), + wep104(2), + tkip(3), + aesccmp(4), + other(5) + } + +ArubaMonAuthAlgorithm ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the WPA authentication algorithm supported by the access point." + SYNTAX INTEGER { + none(0), + psk(1), + dot1x(2), + other(3) + } + +ArubaSwitchRole ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the role of the controller" + SYNTAX INTEGER { + master(1), + local(2), + backupmaster(3) + } + +ArubaSupportStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents if a feature is supported or unsupported." + SYNTAX INTEGER { + unsupported(1), + supported(2) + } + +ArubaActiveState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents if a feature is active or inactive." + SYNTAX INTEGER { + active(1), + inactive(2) + } + +ArubaACLDomain ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents both the source and destination to which an ACL rule will + be applied. + " + SYNTAX INTEGER { + alias(1), + any(2), + user(3), + host(4), + network(5) + } + +ArubaACLNetworkServiceType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the network service in an ACL Rule." + SYNTAX INTEGER { + alias(1), + any(2), + tcp(3), + udp(4), + protocol(5) + } + +ArubaACLAction ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the Actions in an ACL rule." + SYNTAX INTEGER { + deny(1), + permit(2), + srcNAT(3), + dstNAT(4), + redirect(5) + } + +ArubaDaysOfWeek ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the Actions in an ACL rule." + SYNTAX INTEGER { + sun(1), + mon(2), + tue(3), + wed(4), + thu(5), + fri(6), + sat(7) + } + +ArubaAuthenticationMethods ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Authentication Method." + SYNTAX INTEGER { + none(0), + web(1), + mac(2), + vpn(3), + dot1x(4), + kerberos(5), + secureId(7), + pubcookie(15), + xSec(16), + xSecMachine(17), + via-vpn(28), + other(255) + } + +ArubaSubAuthenticationMethods ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Sub Authentication Method (e.g. EAP type)." + SYNTAX INTEGER { + authPAP(1), + authCHAP(2), + authMSCHAP(3), + authMSCHAPv2(4), + eapTLS(5), + eapTTLS(6), + eapLEAP(7), + eapMD5(8), + eapPEAP(9) + } + +ArubaEncryptionType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Encryption Method." + SYNTAX INTEGER { + none(0), + static-wep(1), + dynamic-wep(2), + wpa-psk-tkip(3), + wpa-tkip(4), + wpa-psk-aes(5), + wpa-aes(6), + wpa2-psk-tkip(7), + wpa2-tkip(8), + wpa2-psk-aes(9), + wpa2-aes(10), + xSec(11), + bSec-128(12), + bSec-256(13), + aes-128-cmac(14), + unknown(15) + } + +ArubaUserForwardMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " User Forwarding Mode." + SYNTAX INTEGER { + tunnel-encrypted(0), + bridge(1), + tunnel-decrypted(2), + split-tunnel(3) + } + +ArubaRogueApType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the Rogue AP Type. " + SYNTAX INTEGER { + valid(1), + interfering(2), + unsecure(3), + dos(4), + unknown(5), + knownInterfering(6), + suspectedUnsecure(7) + } + +ArubaAPMatchType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the match type of a suspected rogue AP. " + SYNTAX INTEGER { + unknown(0), + configuredWiredMac(1), + ethernetWiredMac(2), + apWiredMac(3), + externalWiredMac(4), + manual(5), + baseBSSIDOverride(6), + mms(7), + ethernetGatewayWiredMac(8), + classificationDisabled(9), + apBSSID(10), + propagatedEthernetWiredMac(11), + apRule(12), + systemWiredMac(13), + systemGatewayMac(14) + } + +ArubaAPMatchMethod ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the match method of a suspected rogue AP. " + SYNTAX INTEGER { + notApplicable(0), + exactMatch(1), + plusOneMatch(2), + minusOneMatch(3), + ouiMatch(4) + } + +ArubaStationType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the station type. " + SYNTAX INTEGER { + unknown(0), + valid(1), + interfering(2), + dos(3) + } + +ArubaEncryptionMethods ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the Actions in an ACL rule." + SYNTAX BITS{ + disabled(0), + static-wep(1), + dynamic-wep(2), + static-wpa(3), + dynamic-wpa(4), + wpa2-psk-aes(5), + wpa2-8021x-aes(6), + wpa2PreAuth(7), + xsec(8), + wpa-psk-aes(9), + wpa-aes(10), + wpa2-psk-tkip(11), + wpa2-8021x-tkip(12) + } + + ArubaHashAlgorithms ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the Actions in an ACL rule." + SYNTAX INTEGER { + md5(1), + sha(2) + } + +ArubaVlanValidRange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the Valid Vlan Id Range." + SYNTAX INTEGER(1..4095) + +ArubaPortMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the controller port mode." + SYNTAX INTEGER { + access(1), + dot1q(2) + } + +ArubaDot1dState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the controller port spanning tree state." + SYNTAX INTEGER { + disabled(1), + blocked(2), + listening(3), + learning(4), + forwarding(5) + } + +ArubaAPDot1dState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the AP port spanning tree state." + SYNTAX INTEGER { + notAvailable(1), + off(2), + disabled(3), + listening(4), + learning(5), + forwarding(6), + blocking(7) + } + +ArubaPoeState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the POE mode." + SYNTAX INTEGER { + disabled(1), + enabled(2), + enabledCisco(3), + notAvailable(4) + } + +ArubaCardType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Type of the hardware module. + " + SYNTAX INTEGER { + lc1(1), + lc2(2), + sc1(3), + sc2(4), + sw2400(5), + sw800(6), + sw200(7), + m3mk1(8), + sw3200(9), + sw3400(10), + sw3600(11), + sw650(12), + sw651(13), + reserved1(14), + reserved2(15), + sw620(16), + sw7210(17), + sw7220(18), + sw7240(19), + sw3500(20), + sw2500(21), + sw1500(22), + sw7010(23), + sw7005(24), + sw7030(25), + sw7110(26) + } + +ArubaESIServerMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The mode of the ESI server. + " + SYNTAX INTEGER { + bridged(1), + routed(2), + nat(3) + } + +ArubaESIServerStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The status of the ESI server. + " + SYNTAX INTEGER { + up(1), + down(2) + } + +ArubaIfType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The type of interface referred to by the value of ifIndex. + " + SYNTAX INTEGER { + port(1), + vlan(2), + tunnel(3), + loopback(4) + } + +ArubaVoipProtocolType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The type of VoIP protocols supported. + " + SYNTAX INTEGER{ + sccp(1), + svp(2), + vocera(3), + sip(9), + ua(11), + h323(13), + unknown(15) + } + +ArubaAccessPointMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The mode of the access point. + " + SYNTAX INTEGER{ + airMonitor(1), + accessPoint(2), + accessPointAndMonitor(3), + meshPortal(4), + meshPoint(5), + rfprotectSensor(6), + spectrumSensor(7) + } + +ArubaAuthServerType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The type of the auth server. + " + SYNTAX INTEGER{ + internaldb(1), + radius(2), + ldap(3), + kerberos(4), + tacacs(5) + } + +ArubaAddressType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Address Type. + " + SYNTAX INTEGER{ + srcAddress(1), + dstAddress(2), + bssid(3) + } + +ArubaBlackListReason ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Black List Reason. + " + SYNTAX INTEGER { + userDefined(1), + mitmAttack(2), + authFailure(3), + pingFlood(4), + sessionFlood(5), + synFlood(6), + sessionBlacklist(7), + ipSpoofing(8), + esiBlacklist(9), + other(100) + } + +ArubaDBType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + DataBase Type. + " + SYNTAX INTEGER { + mssql(1), + mysql(2) + } + + +ArubaVrrpState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + DataBase Type. + " + SYNTAX INTEGER { + initialize(1), + backup(2), + master(3) + } + + +ArubaOperStateValue ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents Operational state of an interface." + SYNTAX INTEGER { up(1), down(2), testing(3) } + + + +ArubaAntennaSetting ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the status of the external antenna." + SYNTAX INTEGER { notPresent(1), enabled(2), disabled(3) } + +ArubaAPStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The status of the access point. + " + SYNTAX INTEGER { up(1), down(2) } + +ArubaPortSpeed ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Port Speed. + " + SYNTAX INTEGER { speed10Mbps(1), + speed100Mbps(2), + speed1000Mbps(3), + speedAuto(4), + speed10Gbps(5) + } + +ArubaPortDuplex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Port Duplexity. + " + SYNTAX INTEGER { half(1), + full(2), + auto(3) + } + +ArubaPortType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Port Type. + " + SYNTAX INTEGER { fastethernet(1), + gigabitethernet(2), + xgigabitethernet(3) + } + +ArubaEnet1Mode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the Mode of the Ethernet port on the Access Point" + SYNTAX INTEGER { + activeStandby(1), + tunnel(2), + bridge(3), + notApplicable(4), + split(5) + } + +ArubaUnprovisionedStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents whether the AP is provisioned or not." + SYNTAX INTEGER { + yes(1), + no(2) + } + +ArubaMonitorMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents whether the AP has any radios dedicated to monitoring." + SYNTAX INTEGER { + unknown(0), + all(1), + none(2), + mixed(3) + } + +ArubaConfigurationState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Configuration Transfer Types." + SYNTAX INTEGER { + success(1), + error(2) + } + +ArubaConfigurationChangeType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Configuration Change Types." + SYNTAX INTEGER { + create(1), + delete(2), + modify(3) + } + +ArubaCallStates ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The Call state. + " + SYNTAX INTEGER { + idle(0), + initiated(1), + connecting(2), + delivered(3), + connected(4), + offered(5), + alerting(6), + releasing(7), + cancelling(8), + challenging(9), + transient(10), + blockwait(11), + succ(12), + fail(13), + aborted(14), + blocked(15) + } + +ArubaVoipProtocol ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + VoIP protocol used + " + SYNTAX INTEGER { + sccp(1), + svp(2), + vocera(3), + sip(9), + ua(11), + h323(13) + } + +ArubaVoipRegState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + VoIP registered state + " + SYNTAX INTEGER { + unknown(0), + registering(1), + unregistering(2), + challenge(3), + registered(4), + unregistered(5) + } + +ArubaVoiceCdrDirection ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + VoIP CDR direction + " + SYNTAX INTEGER { + og(0), + ic(1) + } + +ArubaVoiceCacBit ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Voice CAC bit flags + " + SYNTAX BITS { + cacActiveLoadBalancing(0), + cacHighCapThresholdReached(1), + cacHandRsrvThresholdReached(2), + cacPeakCapacityReached(3) + } + +ArubaMeshRole ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Mesh role + " + SYNTAX INTEGER { + nonmesh(0), + point(1), + portal(2) + } + +ArubaHTRate ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents HT rate" + SYNTAX INTEGER { + unknown(0), + ht6dot5(1), + ht13(2), + ht13dot5(3), + ht15(4), + ht19dot5(5), + ht26(6), + ht27(7), + ht30(8), + ht39(9), + ht40dot5(10), + ht45(11), + ht52(12), + ht54(13), + ht58dot5(14), + ht60(15), + ht65(16), + ht78(17), + ht81(18), + ht90(19), + ht104(20), + ht108(21), + ht117(22), + ht120(23), + ht121dot5(24), + ht130(25), + ht135(26), + ht150(27), + ht162(28), + ht180(29), + ht216(30), + ht240(31), + ht243(32), + ht270(33), + ht300(34) + } + + +ArubaARMChangeReason ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + The reason for ARM based change. + " + SYNTAX INTEGER { + radarDetected(1), + radarCleared(2), + txHang(3), + txHangClear(4), + fortyMhzIntol(5), + cancel40mhzIntol(6), + fortyMhzAlign(7), + armInterference(8), + armInvalidCh(9), + armErrorThresh(10), + armNoiseThresh(11), + armEmptyCh(12), + armRogueCont(13), + armDecreasePower(14), + armIncreasePower(15), + armTurnOffRadio(16), + armTurnOnRadio(17), + armChannelQualityThresh(18) + } + +ArubaAPMasterStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + AP status as seen by the master controller + (used to indicate a status change). + " + SYNTAX INTEGER { + up(1), + down(2), + move(3) + } + +ArubaDot3azStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the state of Energy Efficient Ethernet (802.3az)." + SYNTAX BITS { + disabled(0), + unsupported(1), + eee100BaseTX(2), + eee1000BaseT(3), + eee10GBaseT(4), + eee1000BaseKX(5), + eee10GBaseKX4(6), + eee10GBaseKR(7) + } + +ArubaThresholdResourceType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the Threshold Resource Types" + SYNTAX INTEGER { + dataPathCpu(0), + controlPathCpu(1), + controlPathMemory(2), + totalTunnelCapacity(3), + userCapacity(4), + noofAps(5) , + noofLocals(6) + } + +ArubaStackState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The state of the stack element in the stack. + + primary - the stack element is in primary state. + secondary - the stack element is in secondary state. + linecard - the stack element is in linecard state. + away - the stack element is in inactive state. + + primary, secondary and linecard implies active state of the stack + element." + SYNTAX INTEGER { + primary(1), + secondary(2), + linecard(3), + away(4) + } + +ArubaStackChangeEvent ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Used to specify the event which caused change in topology in stack." + SYNTAX INTEGER { + other(1), + primarySlotChanged(2), + secondarySlotChanged(3), + lineCardSlotChanged(4), + roleChanged(5), + priorityChanged(6), + versionMismatch(7), + slotExceeded(8) + } + +ArubaStackIfTopoJoined ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Used to specify whether an interface has joined the stacking + topology or left the topology." + SYNTAX INTEGER { + connected(1), -- An interface has joined stacking topology. + disconnected(2) -- An interface has left stacking topology. + } + +InterfaceIndex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A unique value, greater than zero, for each interface or + interface sub-layer in the managed system. It is + recommended that values are assigned contiguously starting + from 1. The value for each interface sub-layer must remain + constant at least from one re-initialization of the entity's + network management system to the next re-initialization." + SYNTAX Integer32 (1..2147483647) + +ArubaIfState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Used to specify the state of an interface. + + linkUp - Operational state of this interface is up. + linkDown - Operational state of this interface is down." + SYNTAX INTEGER { + linkUp(1), + linkDown(2) + } + +ArubaIfStateChangeReason ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Used to specify the reason for interface state change. + + admin - User has explicitly issued 'shutdown' or 'no shutdown' + configuration from CLI on this interface. + loopProtect - If ifState of an interface changes to linkDown, then + it is used to specify that a loop has been detected on + this interface by loop protect mechanism. + If ifState of an interface changes to linkUp, then + it is used to specify that loop-protect error has been + cleared out on this interface through port auto-recovery + mechanism or through explicit clear error-recovery + command. + macLimit - If ifState of an interface changes to linkDown, then + it is used to specify that number of learnt MACs on this + interface exceeds the limit configured. + If ifState of an interface changes to linkUp, then it is + used to specify that mac-limit error has been cleared out + on this interface through port auto-recovery mechanism or + through explicit clear error-recovery command. + raGuard - If ifState of an interface changes to linkDown, then it + is used to specify that invalid router advertisement has + been identified on this interface, resulting shutting + down of this interface. + If ifState of an interface changes to linkUp, then it is + used to specify that raGuard error has been cleared out on + this interface through port auto-recovery mechanism or + through explicit clear error-recovery command. + bpduGuard - If ifState of an interface changes to linkDown, then it + is used to specify that BPDU is received on this interface + resulting shutting down of this interface. + If ifState of an interface changes to linkUp, then it is + used to specify that BPDU Guard error has been cleared out + on this interface through port auto-recovery mechanism or + through explicit clear error-recovery command." + SYNTAX INTEGER { + admin(1), + loopProtect(2), + macLimit(3), + raGuard(4), + bpduGuard(5) + } + +ArubaAPUplinkType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + AP uplink type + " + SYNTAX INTEGER { + ethernet(1), + usb(2), + pppoe(3), + wifi(4) + } + +ArubaAPUplinkChangeReason ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Used to specify the reason for AP uplink change. + + linkFailure - The uplink went down + vpnFailure - VPN tunnel could not be sustained using the uplink + preemption - The uplink was pre-empted by a higher-priority uplink" + SYNTAX INTEGER { + linkFailure(1), + vpnFailure(2), + preemption(3) + } + +ArubaPortalServerDownReason ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Used to specify the reason for Portal server down. + + connectFail - Connect Portal server fail" + SYNTAX INTEGER { + connectFail(1) + } + +ArubaHaRole ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the HA role of the Aruba controller" + SYNTAX INTEGER { + dual(0), + active(1), + standby(2), + disabled(3) + } + +ArubaHaConnectivityStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " Represents the HA standby connectivity status of the Access Point" + SYNTAX INTEGER { + haSuccess(0), + haNetUnreach(1), + haCpUnreach(2), + haImageMissMatch(3), + haApDenied(4), + haHbtFailure(5), + haInvalidHelloResponse(6), + haStandbyTunnelDown(7) + } + +ArubaFlexRadioMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + " + Flex Radio Operating Mode + " + SYNTAX INTEGER { + single2GHzBand(0), + single5GHzBand(1), + dual2GHzplus5GHzBand(2), + unknown(3), + notApplicable(4) + } + +END diff --git a/pandora_console/attachment/mibs/ATM-MIB b/pandora_console/attachment/mibs/ATM-MIB new file mode 100644 index 0000000000..b4bc797acd --- /dev/null +++ b/pandora_console/attachment/mibs/ATM-MIB @@ -0,0 +1,2623 @@ +-- Changes to RFC1694 - ATM-MIB +-- The following items need to removed from the MODULE-COMPLIANCE +-- atmMIBCompliance since they are not in any group: +-- atmVplVpi +-- atmVpCrossConnectLowVpi +-- atmVpCrossConnectHighVpi +-- atmVclVpi +-- atmVcCrossConnectLowVpi +-- atmVcCrossConnectHighVpi +-- aal5VccVpi +-- dperkins@scruznet.com + + + ATM-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, + Counter32, Integer32, IpAddress + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, DisplayString, + TimeStamp, RowStatus + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF + ifIndex, mib-2 + FROM RFC1213-MIB; + + + atmMIB MODULE-IDENTITY + LAST-UPDATED "9406072245Z" + ORGANIZATION "IETF AToM MIB Working Group" + CONTACT-INFO + " Masuma Ahmed + Postal: Bellcore + 331 Newman Springs Road + Red Bank, NJ 07701 + US + Tel: +1 908 758 2515 + Fax: +1 908 758 4131 + E-mail: mxa@mail.bellcore.com + + Kaj Tesink + Postal: Bellcore + 331 Newman Springs Road + Red Bank, NJ 07701 + US + Tel: +1 908 758 5254 + Fax: +1 908 758 4196 + E-mail: kaj@cc.bellcore.com" + DESCRIPTION + "This is the MIB Module for ATM and AAL5-related + objects for managing ATM interfaces, ATM virtual + links, ATM cross-connects, AAL5 entities, and + and AAL5 connections." + ::= { mib-2 37 } + + atmMIBObjects OBJECT IDENTIFIER ::= {atmMIB 1} + + -- This ATM MIB Module consists of the following groups: + -- (1) ATM Interface configuration group + -- (2) ATM Interface DS3 PLCP group + -- (3) ATM Interface TC Sublayer group + -- (4) ATM Interface VPL configuration group + -- (5) ATM Interface VCL configuration group + -- (6) ATM VP Cross Connect group + -- (7) ATM VC Cross Connect group + -- (8) ATM Interface AAL5 VCC performance statistics + -- group + + + IfIndex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The value of this object identifies the interface + for which the entry contains management + information. The value of this object for a + particular interface has the same value as the + ifIndex object, defined in RFC 1213, for the same + interface." + SYNTAX Integer32 + + + AtmTrafficDescrParamIndex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The value of this object identifies the row + in the atmTrafficDescrParamTable." + SYNTAX Integer32 + + atmTrafficDescriptorTypes OBJECT IDENTIFIER ::= + {atmMIBObjects 1} + + -- The following values are defined for use as + -- possible values of the ATM traffic descriptor type. + -- ATM Forum specified seven types of ATM traffic + -- descriptors. + + atmNoTrafficDescriptor OBJECT-IDENTITY + STATUS current + DESCRIPTION + "This identifies the no ATM traffic descriptor + type. Parameters 1, 2, 3, 4, and 5 are not used. + This traffic descriptor type can be used for + best effort traffic." + ::= { atmTrafficDescriptorTypes 1} + + atmNoClpNoScr OBJECT-IDENTITY + STATUS current + DESCRIPTION + "This traffic descriptor is for no CLP and + no Sustained Cell Rate. The use of the + parameter vector for this type: + Parameter 1: CLP=0+1 peak cell rate in + cells per second + Parameter 2: not used + Parameter 3: not used + Parameter 4: not used + Parameter 5: not used. + This traffic descriptor type can be used + for best effort traffic." + ::= { atmTrafficDescriptorTypes 2} + + atmClpNoTaggingNoScr OBJECT-IDENTITY + STATUS current + DESCRIPTION + "This traffic descriptor is for no CLP without + tagging and no Sustained Cell Rate. The use + of the parameter vector for this type: + Parameter 1: CLP=0+1 peak cell rate in + cells per second + Parameter 2: CLP=0 peak cell rate in + cells per second + Parameter 3: not used + Parameter 4: not used + Parameter 5: not used." + ::= { atmTrafficDescriptorTypes 3} + + atmClpTaggingNoScr OBJECT-IDENTITY + STATUS current + DESCRIPTION + "This traffic descriptor is for CLP with + tagging and no Sustained Cell Rate. The + use of the parameter vector for this type: + Parameter 1: CLP=0+1 peak cell rate in + cells per second + Parameter 2: CLP=0 peak cell rate in + cells per second with excess + traffic tagged as CLP=1 + Parameter 3: not used + Parameter 4: not used + Parameter 5: not used." + ::= { atmTrafficDescriptorTypes 4} + + atmNoClpScr OBJECT-IDENTITY + STATUS current + DESCRIPTION + "This traffic descriptor is for no CLP + with Sustained Cell Rate. The + use of the parameter vector for this type: + Parameter 1: CLP=0+1 peak cell rate in + cells per second + Parameter 2: CLP=0+1 sustained cell rate in + cells per second + Parameter 3: CLP=0+1 maximum burst size + in cells + Parameter 4: not used + Parameter 5: not used." + ::= { atmTrafficDescriptorTypes 5} + + atmClpNoTaggingScr OBJECT-IDENTITY + STATUS current + DESCRIPTION + "This traffic descriptor is for CLP + with Sustained Cell Rate and no tagging. + The use of the parameter vector for this type: + Parameter 1: CLP=0+1 peak cell rate in + cells per second + Parameter 2: CLP=0 sustained cell rate in + cells per second + Parameter 3: CLP=0 maximum burst size in cells + Parameter 4: not used + Parameter 5: not used." + ::= { atmTrafficDescriptorTypes 6} + + atmClpTaggingScr OBJECT-IDENTITY + STATUS current + DESCRIPTION + "This traffic descriptor is for CLP + with tagging and Sustained Cell Rate. + The use of the parameter vector for this type: + Parameter 1: CLP=0+1 peak cell rate in + cells per second + Parameter 2: CLP=0 sustained cell rate in + cells per second with excess + traffic tagged as CLP=1 + Parameter 3: CLP=0 maximum burst size in cells + Parameter 4: not used + Parameter 5: not used." + ::= { atmTrafficDescriptorTypes 7} + + + -- ATM Interface Configuration Parameters Group + -- This group contains ATM specific + -- configuration information associated with + -- an ATM interface beyond those + -- supported using the ifTable. + + + atmInterfaceConfTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmInterfaceConfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains ATM local interface + configuration parameters, one entry per ATM + interface port." + ::= { atmMIBObjects 2 } + + atmInterfaceConfEntry OBJECT-TYPE + SYNTAX AtmInterfaceConfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains ATM interface configuration + parameters and state variables." + INDEX { ifIndex } + ::= { atmInterfaceConfTable 1} + + AtmInterfaceConfEntry ::= SEQUENCE { + atmInterfaceMaxVpcs INTEGER, + atmInterfaceMaxVccs INTEGER, + atmInterfaceConfVpcs INTEGER, + atmInterfaceConfVccs INTEGER, + atmInterfaceMaxActiveVpiBits INTEGER, + atmInterfaceMaxActiveVciBits INTEGER, + atmInterfaceIlmiVpi INTEGER, + atmInterfaceIlmiVci INTEGER, + atmInterfaceAddressType INTEGER, + atmInterfaceAdminAddress OCTET STRING, + atmInterfaceMyNeighborIpAddress IpAddress, + atmInterfaceMyNeighborIfName DisplayString + } + + atmInterfaceMaxVpcs OBJECT-TYPE + SYNTAX INTEGER (0..4096) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of VPCs (PVCs and SVCs) + supported at this ATM interface. At the ATM UNI, + the maximum number of VPCs (PVCs and SVCs) + ranges from 0 to 256 only." + ::= { atmInterfaceConfEntry 1} + + atmInterfaceMaxVccs OBJECT-TYPE + SYNTAX INTEGER (0..65536) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of VCCs (PVCs and SVCs) + supported at this ATM interface." + ::= { atmInterfaceConfEntry 2} + + atmInterfaceConfVpcs OBJECT-TYPE + SYNTAX INTEGER (0..4096) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VPCs (PVCs and SVCs) + configured for use at this ATM interface. + At the ATM UNI, the configured number of + VPCs (PVCs and SVCs) can range from + 0 to 256 only." + ::= { atmInterfaceConfEntry 3} + + atmInterfaceConfVccs OBJECT-TYPE + SYNTAX INTEGER (0..65536) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VCCs (PVCs and SVCs) + configured for use at the ATM interface." + ::= { atmInterfaceConfEntry 4} + + atmInterfaceMaxActiveVpiBits OBJECT-TYPE + SYNTAX INTEGER (0..12) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of active VPI bits + configured for use at the ATM interface. + At the ATM UNI, the maximum number of active + VPI bits configured for use ranges from + 0 to 8 only." + ::= { atmInterfaceConfEntry 5} + + atmInterfaceMaxActiveVciBits OBJECT-TYPE + SYNTAX INTEGER (0..16) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of active VCI bits + configured for use at this ATM interface." + ::= { atmInterfaceConfEntry 6} + + atmInterfaceIlmiVpi OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The VPI value of the VCC supporting + the ILMI at this ATM interface. If the values of + atmInterfaceIlmiVpi and atmInterfaceIlmiVci are + both equal to zero then the ILMI is not + supported at this ATM interface." + DEFVAL { 0 } + ::= { atmInterfaceConfEntry 7} + + atmInterfaceIlmiVci OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The VCI value of the VCC supporting + the ILMI at this ATM interface. If the values of + atmInterfaceIlmiVpi and atmInterfaceIlmiVci are + both equal to zero then the ILMI is not + supported at this ATM interface." + DEFVAL { 16 } + ::= { atmInterfaceConfEntry 8} + + atmInterfaceAddressType OBJECT-TYPE + SYNTAX INTEGER { + private(1), + nsapE164(2), + nativeE164(3), + other(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of primary ATM address configured + for use at this ATM interface." + ::= { atmInterfaceConfEntry 9 } + + atmInterfaceAdminAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An address assigned for administrative purposes, + for example, an address associated with the + service provider side of a public network UNI. + If this interface has no assigned administrative + address, or when the address used for + administrative purposes is the same as that used + for ifPhysAddress, then this is an octet string of + zero length." + ::= { atmInterfaceConfEntry 10 } + + atmInterfaceMyNeighborIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The IP address of the neighbor system connected to + the far end of this interface, to which a Network + Management Station can send SNMP messages, as IP + datagrams sent to UDP port 161, in order to access + network management information concerning the + operation of that system. Note that the value + of this object may be obtained in different ways, + e.g., by manual configuration, or through ILMI + interaction with the neighbor system." + ::= { atmInterfaceConfEntry 11 } + + atmInterfaceMyNeighborIfName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The textual name of the interface on the neighbor + system on the far end of this interface, and to + which this interface connects. If the neighbor + system is manageable through SNMP and supports + the object ifName, the value of this object must + be identical with that of ifName for the ifEntry + of the lowest level physical interface + for this port. If this interface does not have a + textual name, the value of this object is a zero + length string. Note that the value of this object + may be obtained in different ways, e.g., by manual + configuration, or through ILMI interaction with + the neighbor system." + ::= { atmInterfaceConfEntry 12 } + + + -- The ATM Interface DS3 PLCP Group + + -- This group contains the DS3 PLCP configuration and + -- state parameters of those ATM interfaces + -- which use DS3 PLCP for carrying ATM cells over DS3. + + atmInterfaceDs3PlcpTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmInterfaceDs3PlcpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains ATM interface DS3 PLCP + parameters and state variables, one entry per + ATM interface port." + ::= { atmMIBObjects 3} + + atmInterfaceDs3PlcpEntry OBJECT-TYPE + SYNTAX AtmInterfaceDs3PlcpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains DS3 PLCP parameters and + state variables at the ATM interface." + INDEX {ifIndex } + ::= { atmInterfaceDs3PlcpTable 1} + + AtmInterfaceDs3PlcpEntry ::= SEQUENCE { + atmInterfaceDs3PlcpSEFSs Counter32, + atmInterfaceDs3PlcpAlarmState INTEGER, + atmInterfaceDs3PlcpUASs Counter32 + } + + + atmInterfaceDs3PlcpSEFSs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of DS3 PLCP Severely Errored Framing + Second (SEFS). Each SEFS represents a + one-second interval which contains + one or more SEF event." + ::= { atmInterfaceDs3PlcpEntry 1} + + atmInterfaceDs3PlcpAlarmState OBJECT-TYPE + SYNTAX INTEGER { + noAlarm(1), + receivedFarEndAlarm(2), + incomingLOF(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This variable indicates if there is an + alarm present for the DS3 PLCP. The value + receivedFarEndAlarm means that the DS3 PLCP + has received an incoming Yellow + Signal, the value incomingLOF means that + the DS3 PLCP has declared a loss of frame (LOF) + failure condition, and the value noAlarm + means that there are no alarms present. + Transition from the failure to the no alarm state + occurs when no defects (e.g., LOF) are received + for more than 10 seconds." + ::= { atmInterfaceDs3PlcpEntry 2} + + atmInterfaceDs3PlcpUASs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds encountered by the PLCP." + ::= { atmInterfaceDs3PlcpEntry 3} + + + -- The ATM Interface TC Sublayer Group + + -- This group contains TC sublayer configuration and + -- state parameters of those ATM interfaces + -- which use TC sublayer for carrying ATM cells over + -- SONET or DS3. + + + atmInterfaceTCTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmInterfaceTCEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains ATM interface TC + Sublayer parameters and state variables, + one entry per ATM interface port." + ::= { atmMIBObjects 4} + + atmInterfaceTCEntry OBJECT-TYPE + SYNTAX AtmInterfaceTCEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains TC Sublayer parameters + and state variables at the ATM interface." + INDEX {ifIndex } + ::= { atmInterfaceTCTable 1} + + AtmInterfaceTCEntry ::= SEQUENCE { + atmInterfaceOCDEvents Counter32, + atmInterfaceTCAlarmState INTEGER + } + + atmInterfaceOCDEvents OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the Out of Cell + Delineation (OCD) events occur. If seven + consecutive ATM cells have Header Error + Control (HEC) violations, an OCD event occurs. + A high number of OCD events may indicate a + problem with the TC Sublayer." + ::= { atmInterfaceTCEntry 1} + + atmInterfaceTCAlarmState OBJECT-TYPE + SYNTAX INTEGER { + noAlarm(1), + lcdFailure(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This variable indicates if there is an + alarm present for the TC Sublayer. The value + lcdFailure indicates that a Loss of + Cell Delineation (LCD) failure state has been + declared for the TC Sublayer. Transition from + failure to the no alarm state occurs + when 6 consecutive ATM cells + are received with valid HEC, followed by + about 10 seconds of acceptable working signal." + ::= { atmInterfaceTCEntry 2} + + + -- ATM Traffic Descriptor Parameter Group + + -- This group contains a set of self-consistent + -- ATM traffic parameters including the + -- ATM traffic QoS Class. + + -- The ATM virtual link tables (i.e., VPL and VCL tables) + -- will use this ATM Traffic Descriptor table + -- to assign traffic parameters and QoS Class + -- to the receive and transmit directions of + -- the ATM virtual links (i.e., VPLs and VCLs). + -- The ATM VPL or VCL table will indicate a row + -- in the atmTrafficDescrParamTable + -- using its atmTrafficDescrParamIndex value. + -- The management application can then compare a set of + -- ATM traffic parameters with a single value. + + -- If no suitable row(s) in the atmTrafficDescrParamTable + -- exists, the manager must create a new row(s) in this + -- table. If such a row is created, agent checks the + -- sanity of that set of ATM traffic parameter values. + + -- When creating a new row, the parameter values + -- will be checked for self-consistency. + -- Predefined/template rows may be supported. + + -- A row in the atmTrafficDescrParamTable is deleted + -- by setting the atmTrafficDescrRowStatus to destroy(6). + -- The agent will check whether this row is still in use + -- by any entry of the atmVplTable or atmVclTable. + -- The agent denies the request if the row is still in + -- use. + + -- The ATM Traffic Descriptor Parameter Table + + + atmTrafficDescrParamTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmTrafficDescrParamEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains information on ATM traffic + descriptor type and the associated parameters." + ::= { atmMIBObjects 5} + + atmTrafficDescrParamEntry OBJECT-TYPE + SYNTAX AtmTrafficDescrParamEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains ATM traffic descriptor + type and the associated parameters." + INDEX {atmTrafficDescrParamIndex} + ::= { atmTrafficDescrParamTable 1} + + AtmTrafficDescrParamEntry ::= SEQUENCE { + atmTrafficDescrParamIndex AtmTrafficDescrParamIndex, + atmTrafficDescrType OBJECT IDENTIFIER, + atmTrafficDescrParam1 Integer32, + atmTrafficDescrParam2 Integer32, + atmTrafficDescrParam3 Integer32, + atmTrafficDescrParam4 Integer32, + atmTrafficDescrParam5 Integer32, + atmTrafficQoSClass INTEGER, + atmTrafficDescrRowStatus RowStatus + } + + atmTrafficDescrParamIndex OBJECT-TYPE + SYNTAX AtmTrafficDescrParamIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object is used by the virtual link + table (i.e., VPL or VCL table) + to identify the row of this table." + ::= { atmTrafficDescrParamEntry 1} + + atmTrafficDescrType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the type + of ATM traffic descriptor. + The type may indicate no traffic descriptor or + traffic descriptor with one or more parameters. + These parameters are specified as a parameter + vector, in the corresponding instances of the + objects: + atmTrafficDescrParam1 + atmTrafficDescrParam2 + atmTrafficDescrParam3 + atmTrafficDescrParam4 + atmTrafficDescrParam5." + DEFVAL { atmNoTrafficDescriptor } + ::= { atmTrafficDescrParamEntry 2} + + atmTrafficDescrParam1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The first parameter of the ATM traffic descriptor + used according to the value of + atmTrafficDescrType." + DEFVAL { 0 } + ::= { atmTrafficDescrParamEntry 3} + + atmTrafficDescrParam2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The second parameter of the ATM traffic descriptor + used according to the value of + atmTrafficDescrType." + DEFVAL { 0 } + ::= { atmTrafficDescrParamEntry 4} + + atmTrafficDescrParam3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The third parameter of the ATM traffic descriptor + used according to the value of + atmTrafficDescrType." + DEFVAL { 0 } + ::= { atmTrafficDescrParamEntry 5} + + atmTrafficDescrParam4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The fourth parameter of the ATM traffic descriptor + used according to the value of + atmTrafficDescrType." + DEFVAL { 0 } + ::= { atmTrafficDescrParamEntry 6} + + atmTrafficDescrParam5 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The fifth parameter of the ATM traffic descriptor + used according to the value of + atmTrafficDescrType." + DEFVAL { 0 } + ::= { atmTrafficDescrParamEntry 7} + + atmTrafficQoSClass OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the QoS Class. + Four Service classes have been + specified in the ATM Forum UNI Specification: + Service Class A: Constant bit rate video and + Circuit emulation + Service Class B: Variable bit rate video/audio + Service Class C: Connection-oriented data + Service Class D: Connectionless data + Four QoS classes numbered 1, 2, 3, and 4 have + been specified with the aim to support service + classes A, B, C, and D respectively. + An unspecified QoS Class numbered `0' is used + for best effort traffic." + DEFVAL { 0 } + ::= { atmTrafficDescrParamEntry 8} + + + atmTrafficDescrRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used to create + a new row or modify or delete an + existing row in this table." + DEFVAL { active } + ::= {atmTrafficDescrParamEntry 9} + + + -- ATM Interface Virtual Path Link (VPL) Group + + -- This group contains configuration and state + -- information of a bi-directional Virtual Path Link + -- (VPL) + + -- This table can be used to create, delete or modify + -- a VPL that is terminated in an ATM host or switch. + -- This table can also be used to create, delete or + -- modify a VPL which is cross-connected to another + -- VPL. + + -- In the example below, the traffic flows on the receive + -- and transmit directions of the VPLs are characterized + -- by atmVplReceiveTrafficDescrIndex and + -- atmVplTransmitTrafficDescrIndex respectively. + -- The cross-connected VPLs are identified by + -- atmVplCrossConnectIdentifier. + + + + -- ________________________________ + -- | | + -- VPL | ATM Host, Switch, or Network | VPL + -- receive | | receive + -- ========> X X <======= + -- <======== X X ========> + -- transmit | | transmit + -- |______________________________| + + + + -- The ATM Interface VPL Table + + + atmVplTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmVplEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Virtual Path Link (VPL) table. A + bi-directional VPL is modeled as one entry + in this table." + ::= { atmMIBObjects 6} + + atmVplEntry OBJECT-TYPE + SYNTAX AtmVplEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the VPL table. This entry is + used to model a bi-directional VPL. + To create a VPL at an ATM interface, + either of the following procedures are used: + Negotiated VPL establishment + + (1) The management application creates + a VPL entry in the atmVplTable + by setting atmVplRowStatus to createAndWait(5). + This may fail for the following reasons: + - The selected VPI value is unavailable, + - The selected VPI value is in use. + Otherwise, the agent creates a row and + reserves the VPI value on that port. + + (2) The manager selects an existing row(s) in the + atmTrafficDescrParamTable, + thereby, selecting a set of self-consistent + ATM traffic parameters and the QoS Class + for receive and transmit directions of the VPL. + + (2a) If no suitable row(s) in the + atmTrafficDescrParamTable exists, + the manager must create a new row(s) + in that table. + + (2b) The manager characterizes the VPL's traffic + parameters through setting the + atmVplReceiveTrafficDescrIndex and the + atmVplTransmitTrafficDescrIndex values + in the VPL table, which point to the rows + containing desired ATM traffic parameter values + in the atmTrafficDescrParamTable. The agent + will check the availability of resources and + may refuse the request. + + (3) The manager activates the VPL by setting the + the atmVplRowStatus to active(1). + If this set is successful, the agent has + reserved the resources to satisfy the requested + traffic parameter values and the QoS Class + for that VPL. + (4) If the VPL terminates a VPC in the ATM host + or switch, the manager turns on the + atmVplAdminStatus to up(1) to turn the VPL + traffic flow on. Otherwise, the + atmVpCrossConnectTable must be used + to cross-connect the VPL to another VPL(s) + in an ATM switch or network. + + One-Shot VPL Establishment + + A VPL may also be established in one step by a + set-request with all necessary VPL parameter + values and atmVplRowStatus set to createAndGo(4). + + In contrast to the negotiated VPL establishment + which allows for detailed error checking + (i.e., set errors are explicitly linked to + particular resource acquisition failures), + the one-shot VPL establishment + performs the setup on one operation but + does not have the advantage of step-wise + error checking. + + VPL Retirement + + A VPL is released by setting atmVplRowStatus to + destroy(6), and the agent may release all + associated resources." + INDEX {ifIndex, atmVplVpi } + ::= { atmVplTable 1} + + AtmVplEntry ::= SEQUENCE { + atmVplVpi INTEGER, + atmVplAdminStatus INTEGER, + atmVplOperStatus INTEGER, + atmVplLastChange TimeStamp, + atmVplReceiveTrafficDescrIndex + AtmTrafficDescrParamIndex, + atmVplTransmitTrafficDescrIndex + AtmTrafficDescrParamIndex, + atmVplCrossConnectIdentifier INTEGER, + atmVplRowStatus RowStatus + } + + + atmVplVpi OBJECT-TYPE + SYNTAX INTEGER (1..4095) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The VPI value of the VPL. + Note that the VPI=0 is not used + for a VPL not associated with a VCL. + The maximum VPI value cannot + exceed the value allowable by the + atmInterfaceMaxVpiBits." + ::= { atmVplEntry 1} + + atmVplAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is implemented only for a VPL which + terminates a VPC (i.e., + one which is NOT cross-connected to other VPLs). + Its value specifies the desired administrative + state of the VPL. The up and down states indicate + that the traffic flow is enabled and disabled + respectively for this VPL." + DEFVAL { down } + ::= { atmVplEntry 2} + + + atmVplOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates the current operational + status of the VPL. The up and down states + indicate that the VPL is currently + operational, or not operational, respectively. + The unknown state indicates that the status of + this VPL cannot be determined." + ::= { atmVplEntry 3} + + atmVplLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of MIB II's sysUpTime object + at the time this VPL entered its current + operational state. If the current state was + entered prior to the last re-initialization of the + agent, then this object contains a zero value." + ::= { atmVplEntry 4 } + + atmVplReceiveTrafficDescrIndex OBJECT-TYPE + SYNTAX AtmTrafficDescrParamIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the row + in the atmTrafficDescrParamTable which + applies to the receive direction of the VPL." + ::= { atmVplEntry 5} + + atmVplTransmitTrafficDescrIndex OBJECT-TYPE + SYNTAX AtmTrafficDescrParamIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the row + in the atmTrafficDescrParamTable which + applies to the transmit direction of the VPL." + ::= { atmVplEntry 6} + + atmVplCrossConnectIdentifier OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is implemented only for a VPL + which is cross-connected to other VPLs + that belong to the same VPC. All such + associated VPLs have the same value of this + object, and all their cross-connections are + identified by entries in the + atmVpCrossConnectTable for which + atmVpCrossConnectIndex has the same value. + The value of this object is initialized by the + agent after the associated entries in the + atmVpCrossConnectTable have been created." + ::= {atmVplEntry 7} + + atmVplRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used to create, delete + or modify a row in this table. + To create a new VCL, this object is + initially set to 'createAndWait' or + 'createAndGo'. This object must not be + set to 'active' unless the following columnar + objects exist in this row: + atmVplReceiveTrafficDescrIndex and + atmVplTransmitTrafficDescrIndex." + DEFVAL { active } + ::= {atmVplEntry 8} + + + -- ATM Interface Virtual Channel Link (VCL) Group + + -- This group contains configuration and state + -- information of a bi-directional Virtual Channel + -- Link (VCL) at an ATM interface. + + -- This table can be used to create, delete or modify + -- a VCL that is terminated in an ATM host or switch. + -- This table can also be + -- used to create, delete or modify a VCL that is + -- cross-connected to another VCL. + + + -- The ATM Interface VCL Table + + + atmVclTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmVclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Virtual Channel Link (VCL) table. A + bi-directional VCL is modeled as one entry + in this table." + ::= { atmMIBObjects 7} + + atmVclEntry OBJECT-TYPE + SYNTAX AtmVclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the VCL table. This entry is + used to model a bi-directional VCL. + To create a VCL at an ATM interface, + either of the following procedures are used: + + Negotiated VCL establishment + + (1) The management application creates + a VCL entry in the atmVclTable + by setting atmVclRowStatus to createAndWait(5). + This may fail for the following reasons: + - The selected VPI/VCI values are unavailable, + - The selected VPI/VCI values are in use. + Otherwise, the agent creates a row and + reserves the VPI/VCI values on that port. + + (2) The manager selects an existing row(s) in the + atmTrafficDescrParamTable, + thereby, selecting a set of self-consistent + ATM traffic parameters and the QoS Class + for receive and transmit directions of the VCL. + + (2a) If no suitable row(s) in the + atmTrafficDescrParamTable exists, + the manager must create a new row(s) + in that table. + + (2b) The manager characterizes the VCL's traffic + parameters through setting the + atmVclReceiveTrafficDescrIndex and the + atmVclTransmitTrafficDescrIndex values + in the VCL table, which point to the rows + containing desired ATM traffic parameter values + in the atmTrafficDescrParamTable. The agent + will check the availability of resources and + may refuse the request. + + (3) The manager activates the VCL by setting the + the atmVclRowStatus to active(1). + If this set is successful, the agent has + reserved the resources to satisfy the requested + traffic parameter values and the QoS Class + for that VCL. + (4) If the VCL terminates a VCC in the ATM host + or switch, the manager turns on the + atmVclAdminStatus to up(1) to turn the VCL + traffic flow on. Otherwise, the + atmVcCrossConnectTable must be used + to cross-connect the VCL to another VCL(s) + in an ATM switch or network. + + One-Shot VCL Establishment + + A VCL may also be established in one step by a + set-request with all necessary VCL parameter + values and atmVclRowStatus set to createAndGo(4). + In contrast to the negotiated VCL establishment + which allows for detailed error checking + (i.e., set errors are explicitly linked to + particular resource acquisition failures), + the one-shot VCL establishment + performs the setup on one operation but + does not have the advantage of step-wise + error checking. + + VCL Retirement + + A VCL is released by setting atmVclRowStatus to + destroy(6), and the agent may release all + associated resources." + INDEX {ifIndex, atmVclVpi, atmVclVci } + ::= { atmVclTable 1} + + AtmVclEntry ::= SEQUENCE { + atmVclVpi INTEGER, + atmVclVci INTEGER, + atmVclAdminStatus INTEGER, + atmVclOperStatus INTEGER, + atmVclLastChange TimeStamp, + atmVclReceiveTrafficDescrIndex + AtmTrafficDescrParamIndex, + atmVclTransmitTrafficDescrIndex + AtmTrafficDescrParamIndex, + atmVccAalType INTEGER, + atmVccAal5CpcsTransmitSduSize INTEGER, + atmVccAal5CpcsReceiveSduSize INTEGER, + atmVccAal5EncapsType INTEGER, + atmVclCrossConnectIdentifier INTEGER, + atmVclRowStatus RowStatus + } + + atmVclVpi OBJECT-TYPE + SYNTAX INTEGER (0..4095) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The VPI value of the VCL. + The maximum VPI value cannot + exceed the value allowable by the + atmInterfaceMaxVpiBits." + ::= { atmVclEntry 1} + + atmVclVci OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The VCI value of the VCL. + The maximum VCI value cannot + exceed the value allowable by the + atmInterfaceMaxVciBits." + ::= { atmVclEntry 2} + + atmVclAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is implemented only for a VCL which + terminates a VCC (i.e., + one which is NOT cross-connected to other VCLs). + Its value specifies the desired administrative + state of the VCL. The up and down states indicate + that the traffic flow is enabled and disabled + respectively for this VCL." + ::= { atmVclEntry 3} + + atmVclOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates the current operational + status of the VCL. The up and down states + indicate that the VCL is currently + operational, or not operational, respectively. + The unknown state indicates that the status of + this VCL cannot be determined." + ::= { atmVclEntry 4} + + atmVclLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of MIB II's sysUpTime object + at the time this VCL entered its current + operational state. If the current state was + entered prior to the last re-initialization of the + agent, then this object contains a zero value." + ::= { atmVclEntry 5 } + + atmVclReceiveTrafficDescrIndex OBJECT-TYPE + SYNTAX AtmTrafficDescrParamIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the row + in the ATM Traffic Descriptor Table which + applies to the receive direction of this VCL." + ::= { atmVclEntry 6} + + atmVclTransmitTrafficDescrIndex OBJECT-TYPE + SYNTAX AtmTrafficDescrParamIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the row + of the ATM Traffic Descriptor Table which applies + to the transmit direction of this VCL." + ::= { atmVclEntry 7} + + atmVccAalType OBJECT-TYPE + SYNTAX INTEGER { + aal1(1), + aal34(2), + aal5(3), + other(4), + unknown(5) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "An instance of this object only exists when the + local VCL end-point is also the VCC end-point, + and AAL is in use. + The type of AAL used on this VCC. + The AAL type includes AAL1, AAL3/4, + and AAL5. The other(4) may be user-defined + AAL type. The unknown type indicates that + the AAL type cannot be determined." + ::= { atmVclEntry 8 } + + atmVccAal5CpcsTransmitSduSize OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "An instance of this object only exists when the + local VCL end-point is also the VCC end-point, + and AAL5 is in use. + The maximum AAL5 CPCS SDU size in octets that is + supported on the transmit direction of this VCC." + DEFVAL { 9188 } + ::= { atmVclEntry 9 } + + atmVccAal5CpcsReceiveSduSize OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "An instance of this object only exists when the + local VCL end-point is also the VCC end-point, + and AAL5 is in use. + The maximum AAL5 CPCS SDU size in octets that is + supported on the receive direction of this VCC." + DEFVAL { 9188 } + ::= { atmVclEntry 10 } + + atmVccAal5EncapsType OBJECT-TYPE + SYNTAX INTEGER { + vcMultiplexRoutedProtocol(1), + vcMultiplexBridgedProtocol8023(2), + vcMultiplexBridgedProtocol8025(3), + vcMultiplexBridgedProtocol8026(4), + vcMultiplexLANemulation8023(5), + vcMultiplexLANemulation8025(6), + llcEncapsulation(7), + multiprotocolFrameRelaySscs(8), + other(9), + unknown(10) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "An instance of this object only exists when the + local VCL end-point is also the VCC end-point, + and AAL5 is in use. + The type of data encapsulation used over + the AAL5 SSCS layer. The definitions reference + RFC 1483 Multiprotocol Encapsulation + over ATM AAL5 and to the ATM Forum + LAN Emulation specification." + DEFVAL { llcEncapsulation } + ::= { atmVclEntry 11 } + + atmVclCrossConnectIdentifier OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is implemented only for a VCL + which is cross-connected to other VCLs + that belong to the same VCC. All such + associated VCLs have the same value of this + object, and all their cross-connections are + identified by entries in the + atmVcCrossConnectTable for which + atmVcCrossConnectIndex has the same value. + The value of this object is initialized by the + agent after the associated entries in the + atmVcCrossConnectTable have been created." + ::= {atmVclEntry 12} + + atmVclRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used to create, delete or + modify a row in this table. To create + a new VCL, this object is initially set + to 'createAndWait' or 'createAndGo'. + This object must not be set to 'active' + unless the following columnar objects exist + in this row: + atmVclReceiveTrafficDescrIndex, + atmVclTransmitTrafficDescrIndex. + In addition, if the local VCL end-point + is also the VCC end-point: + atmVccAalType. + In addition, for AAL5 connections only: + atmVccAal5CpcsTransmitSduSize, + atmVccAal5CpcsReceiveSduSize, and + atmVccAal5EncapsType." + DEFVAL { active } + ::= {atmVclEntry 13} + + + -- ATM Virtual Path (VP) Cross Connect Group + + -- This group contains configuration and state + -- information of all point-to-point, + -- point-to-multipoint, or multipoint-to-multipoint + -- VP cross-connects. + + -- This table has read-create access and can be used + -- to cross-connect the VPLs together in an ATM switch + -- or network. The atmVpCrossConnectIndex + -- is used to associate the related + -- VPLs that are cross-connected together. + + -- The ATM VP Cross Connect Group + -- models each bi-directional VPC + -- cross-connect as a set of entries in + -- the atmVpCrossConnectTable. A + -- point-to-point VPC cross-connect is modeled + -- as one entry; a point-to-multipoint (N leafs) VPC + -- cross-connect as N entries in this table; and + -- a multipoint-to-multipoint (N parties) VPC cross- + -- connect as N(N-1)/2 entries in this table. + -- In the latter cases, all the N (or N(N-1)/2) entries + -- are associated with a single VPC cross-connect by + -- having the same value of atmVpCrossConnectIndex. + + + -- _________________________________________ + -- | | + -- Low | ATM Switch or Network | High + -- port| | port + -- _____|>> from low to high VPC traffic flow >>|______ + -- |<< from high to low VPC traffic flow <<| + -- | | + -- |_______________________________________| + -- + + -- The terms low and high are chosen to represent + -- numerical ordering of the two interfaces associated + -- with a VPC cross-connect. That is, the ATM interface + -- with the lower value of ifIndex is termed 'low', + -- while the other ATM interface associated with the + -- VPC cross-connect is termed 'high'. This terminology + -- is used to provide directional information; for + -- example, the atmVpCrossConnectL2HOperStatus applies + -- to the low->high direction, and + -- atmVpCrossConnectH2LOperStatus applies to the + -- high->low direction, as illustrated above. + + atmVpCrossConnectIndexNext OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains an appropriate value to + be used for atmVpCrossConnectIndex when creating + entries in the atmVpCrossConnectTable. The value + 0 indicates that no unassigned entries are + available. To obtain the atmVpCrossConnectIndex + value for a new entry, the manager issues a + management protocol retrieval operation to obtain + the current value of this object. After each + retrieval, the agent should modify the value to + the next unassigned index." + ::= { atmMIBObjects 8 } + + + -- The ATM VP Cross Connect Table + + + atmVpCrossConnectTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmVpCrossConnectEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The ATM VP Cross Connect table. A bi- + directional VP cross-connect which + cross-connects two VPLs is modeled + as one entry in this table." + ::= { atmMIBObjects 9 } + + + atmVpCrossConnectEntry OBJECT-TYPE + SYNTAX AtmVpCrossConnectEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the ATM VP Cross Connect table. + This entry is used to model a bi-directional + ATM VP cross-connect which cross-connects + two VPLs. + + Step-wise Procedures to set up a VP Cross-connect + + Once the entries in the atmVplTable are created, + the following procedures are used + to cross-connect the VPLs together. + + (1) The manager obtains a unique + atmVpCrossConnectIndex by reading the + atmVpCrossConnectIndexNext object. + + (2) Next, the manager creates a set of one + or more rows in the ATM VP Cross Connect + Table, one for each cross-connection between + two VPLs. Each row is indexed by the ATM + interface port numbers and VPI values of the + two ends of that cross-connection. + This set of rows specifies the topology of the + VPC cross-connect and is identified by a single + value of atmVpCrossConnectIndex. + + Negotiated VP Cross-Connect Establishment + + (2a) The manager creates a row in this table by + setting atmVpCrossConnectRowStatus to + createAndWait(5). The agent checks the + requested topology and the mutual sanity of + the ATM traffic parameters and + QoS Classes, i.e., the row creation fails if: + - the requested topology is not supported + by the agent, + - the traffic/QoS parameter values + associated with the requested row are + incompatible with those of already existing + rows for this VP cross-connect. + [For example, for setting up + a point-to-point VP cross-connect, the + ATM traffic parameters in the receive direction + of a VPL at the low end of the cross-connect + must equal to the traffic parameters in the + transmit direction of the other VPL at the + high end of the cross-connect, + otherwise, the row creation fails.] + The agent also checks for internal errors + in building the cross-connect. + + The atmVpCrossConnectIndex values in the + corresponding atmVplTable rows are filled + in by the agent at this point. + + (2b) The manager promotes the row in the + atmVpCrossConnectTable by setting + atmVpCrossConnectRowStatus to active(1). If + this set is successful, the agent has reserved + the resources specified by the ATM traffic + parameter and QoS Class values + for each direction of the VP cross-connect + in an ATM switch or network. + + (3) The manager sets the + atmVpCrossConnectAdminStatus to up(1) in all + rows of this VP cross-connect to turn the + traffic flow on. + + + One-Shot VP Cross-Connect Establishment + + A VP cross-connect may also be established in + one step by a set-request with all necessary + parameter values and atmVpCrossConnectRowStatus + set to createAndGo(4). + + In contrast to the negotiated VP cross-connect + establishment which allows for detailed error + checking (i.e., set errors are explicitly linked + to particular resource acquisition failures), + the one-shot VP cross-connect establishment + performs the setup on one operation but does not + have the advantage of step-wise error checking. + + VP Cross-Connect Retirement + + A VP cross-connect identified by a particular + value of atmVpCrossConnectIndex is released by: + + (1) Setting atmVpCrossConnectRowStatus of all + rows identified by this value of + atmVpCrossConnectIndex to destroy(6). + The agent may release all + associated resources, and the + atmVpCrossConnectIndex values in the + corresponding atmVplTable row are removed. + Note that a situation when only a subset of + the associated rows are deleted corresponds + to a VP topology change. + + (2) After deletion of the appropriate + atmVpCrossConnectEntries, the manager may + set atmVplRowStatus to destroy(6) the + associated VPLs. The agent releases + the resources and removes the associated + rows in the atmVplTable. + + VP Cross-connect Reconfiguration + + At the discretion of the agent, a VP + cross-connect may be reconfigured by + adding and/or deleting leafs to/from + the VP topology as per the VP cross-connect + establishment/retirement procedures. + Reconfiguration of traffic/QoS parameter + values requires release of the VP cross-connect + before those parameter values may by changed + for individual VPLs." + INDEX { atmVpCrossConnectIndex, + atmVpCrossConnectLowIfIndex, + atmVpCrossConnectLowVpi, + atmVpCrossConnectHighIfIndex, + atmVpCrossConnectHighVpi } + ::= { atmVpCrossConnectTable 1 } + + AtmVpCrossConnectEntry ::= SEQUENCE { + atmVpCrossConnectIndex INTEGER, + atmVpCrossConnectLowIfIndex IfIndex, + atmVpCrossConnectLowVpi INTEGER, + atmVpCrossConnectHighIfIndex IfIndex, + atmVpCrossConnectHighVpi INTEGER, + atmVpCrossConnectAdminStatus INTEGER, + atmVpCrossConnectL2HOperStatus INTEGER, + atmVpCrossConnectH2LOperStatus INTEGER, + atmVpCrossConnectL2HLastChange TimeStamp, + atmVpCrossConnectH2LLastChange TimeStamp, + atmVpCrossConnectRowStatus RowStatus + } + + atmVpCrossConnectIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value to identify this VP cross-connect." + ::= { atmVpCrossConnectEntry 1 } + + atmVpCrossConnectLowIfIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to MIB II's + ifIndex value of the ATM interface port for this + VP cross-connect. The term low implies + that this ATM interface has the numerically lower + ifIndex value than the other ATM interface + identified in the same atmVpCrossConnectEntry." + ::= { atmVpCrossConnectEntry 2 } + + atmVpCrossConnectLowVpi OBJECT-TYPE + SYNTAX INTEGER (1..4095) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to the VPI + value at the ATM interface + associated with the VP cross-connect that is + identified by atmVpCrossConnectLowIfIndex. + The VPI value cannot exceed the number + supported by the atmInterfaceMaxVpiBits + at the low ATM interface port." + ::= { atmVpCrossConnectEntry 3 } + + atmVpCrossConnectHighIfIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to MIB II's + ifIndex value of the ATM interface port for + this VP cross-connect. The term high + implies that this ATM interface has the + numerically higher ifIndex value than the + other ATM interface identified in the same + atmVpCrossConnectEntry." + ::= { atmVpCrossConnectEntry 4 } + + atmVpCrossConnectHighVpi OBJECT-TYPE + SYNTAX INTEGER (1..4095) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to the VPI + value at the ATM interface associated with + the VP cross-connect that is identified + by atmVpCrossConnectHighIfIndex. + The VPI value cannot exceed the number + supported by the atmInterfaceMaxVpiBits + at the high ATM interface port." + ::= { atmVpCrossConnectEntry 5 } + + atmVpCrossConnectAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the desired + administrative status of this bi-directional + VP cross-connect. The up and down states + indicate that the traffic flow is enabled + and disabled respectively on this VP + cross-connect." + DEFVAL { down } + ::= { atmVpCrossConnectEntry 6 } + + atmVpCrossConnectL2HOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the current + operational status of the VP cross-connect + in one direction; (i.e., from the low to + high direction). The up and down states indicate + that this ATM VP cross-connect from low + to high direction is operational or not + operational respectively. + The unknown state indicates that + the state of it cannot be determined." + ::= { atmVpCrossConnectEntry 7 } + + atmVpCrossConnectH2LOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the current + operational status of the VP cross-connect + in one direction; (i.e., from the high to + low direction). The up and down states indicate + that this ATM VP cross-connect from high + to low direction is operational or not + operational respectively. The + unknown state indicates that the state + of it cannot be determined." + ::= { atmVpCrossConnectEntry 8 } + + atmVpCrossConnectL2HLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of MIB II's sysUpTime object + at the time this VP cross-connect entered + its current operational state in the low to + high direction. If the current state was + entered prior to the last re-initialization of the + agent, then this object contains a zero value." + ::= { atmVpCrossConnectEntry 9 } + + atmVpCrossConnectH2LLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of MIB II's sysUpTime object at the + time this VP cross-connect entered its current + operational state in the high to low direction. + If the current state was entered prior to the + last re-initialization of the agent, + then this object contains a zero value." + ::= { atmVpCrossConnectEntry 10 } + + atmVpCrossConnectRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this entry in the + atmVpCrossConnectTable. This object is used to + create a cross-connect for cross-connecting + VPLs which are created using the atmVplTable + or to change or delete an existing cross-connect. + This object must be initially set + to `createAndWait' or 'createAndGo'. + This object cannot be set to `active' + unless the following columnar object exists + in this row: atmVpCrossConnectAdminStatus. + To turn on a VP cross-connect, + the atmVpCrossConnectAdminStatus + is set to `up'." + DEFVAL { active } + ::= { atmVpCrossConnectEntry 11 } + + + -- ATM Virtual Channel (VC) Cross Connect Group + + -- This group contains configuration and state + -- information of a bi-directional VC cross-connect. + + -- This group is used to model a bi-directional + -- point-to-point, point-to-multipoint or + -- multipoint-to-multipoint VC cross-connects. + + -- This table has read-create access and is used + -- to cross-connect the VCLs together in an ATM switch + -- or network that belong to a VC connection. + -- The atmVcCrossConnectIndex is used to associate + -- the related VCLs that are cross-connected together. + + + -- The step-wise procedures described for setting + -- up a VP cross-connect are also used for setting up + -- a VC cross-connect. + + + atmVcCrossConnectIndexNext OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains an appropriate value to + be used for atmVcCrossConnectIndex when creating + entries in the atmVcCrossConnectTable. The value + 0 indicates that no unassigned entries are + available. To obtain the atmVpCrossConnectIndex + value for a new entry, the manager issues a + management protocol retrieval operation to obtain + the current value of this object. After each + retrieval, the agent should modify the value to + the next unassigned index." + ::= { atmMIBObjects 10 } + + + -- The ATM VC Cross Connect Table + + atmVcCrossConnectTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtmVcCrossConnectEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The ATM VC Cross Connect table. A bi- + directional VC cross-connect which + cross-connects two end points (i.e., VCLs) + is modeled as one entry in this table." + ::= { atmMIBObjects 11 } + + + atmVcCrossConnectEntry OBJECT-TYPE + SYNTAX AtmVcCrossConnectEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the ATM VC Cross Connect table. + This entry is used to model a bi-directional ATM + VC cross-connect cross-connecting two end points. + + Step-wise Procedures to set up a VC Cross-connect + + Once the entries in the atmVclTable are created, + the following procedures are used + to cross-connect the VCLs together to + form a VCC segment. + + (1) The manager obtains a unique + atmVcCrossConnectIndex by reading the + atmVcCrossConnectIndexNext object. + + (2) Next, the manager creates a set of one + or more rows in the ATM VC Cross Connect + Table, one for each cross-connection between + two VCLs. Each row is indexed by the ATM + interface port numbers and VPI/VCI values of + the two ends of that cross-connection. + This set of rows specifies the topology of the + VCC cross-connect and is identified by a single + value of atmVcCrossConnectIndex. + + Negotiated VC Cross-Connect Establishment + + (2a) The manager creates a row in this table by + setting atmVcCrossConnectRowStatus to + createAndWait(5). The agent checks the + requested topology and the mutual sanity of + the ATM traffic parameters and + QoS Classes, i.e., the row creation fails if: + - the requested topology is not supported + by the agent, + - the traffic/QoS parameter values + associated with the requested row are + incompatible with those of already existing + rows for this VC cross-connect. + [For example, for setting up + a point-to-point VC cross-connect, the + ATM traffic parameters in the receive direction + of a VCL at the low end of the cross-connect + must equal to the traffic parameters in the + transmit direction of the other VCL at the + high end of the cross-connect, + otherwise, the row creation fails.] + The agent also checks for internal errors + in building the cross-connect. + + The atmVcCrossConnectIndex values in the + corresponding atmVclTable rows are filled + in by the agent at this point. + + (2b) The manager promotes the row in the + atmVcCrossConnectTable by setting + atmVcCrossConnectRowStatus to active(1). If + this set is successful, the agent has reserved + the resources specified by the ATM traffic + parameter and QoS Class values + for each direction of the VC cross-connect + in an ATM switch or network. + + (3) The manager sets the + atmVcCrossConnectAdminStatus to up(1) + in all rows of this VC cross-connect to + turn the traffic flow on. + + + One-Shot VC Cross-Connect Establishment + + A VC cross-connect may also be established in + one step by a set-request with all necessary + parameter values and atmVcCrossConnectRowStatus + set to createAndGo(4). + + In contrast to the negotiated VC cross-connect + establishment which allows for detailed error + checking i.e., set errors are explicitly linked to + particular resource acquisition failures), the + one-shot VC cross-connect establishment + performs the setup on one operation but does + not have the advantage of step-wise error + checking. + + VC Cross-Connect Retirement + + A VC cross-connect identified by a particular + value of atmVcCrossConnectIndex is released by: + + (1) Setting atmVcCrossConnectRowStatus of all rows + identified by this value of + atmVcCrossConnectIndex to destroy(6). + The agent may release all + associated resources, and the + atmVcCrossConnectIndex values in the + corresponding atmVclTable row are removed. + Note that a situation when only a subset of + the associated rows are deleted corresponds + to a VC topology change. + + (2) After deletion of the appropriate + atmVcCrossConnectEntries, the manager may + set atmVclRowStatus to destroy(6) the + associated VCLs. The agent releases + the resources and removes the associated + rows in the atmVclTable. + + VC Cross-Connect Reconfiguration + + At the discretion of the agent, a VC + cross-connect may be reconfigured by + adding and/or deleting leafs to/from + the VC topology as per the VC cross-connect + establishment/retirement procedures. + Reconfiguration of traffic/QoS parameter + values requires release of the VC cross-connect + before those parameter values may by changed + for individual VCLs." + INDEX { atmVcCrossConnectIndex, + atmVcCrossConnectLowIfIndex, + atmVcCrossConnectLowVpi, + atmVcCrossConnectLowVci, + atmVcCrossConnectHighIfIndex, + atmVcCrossConnectHighVpi, + atmVcCrossConnectHighVci } + ::= { atmVcCrossConnectTable 1 } + + AtmVcCrossConnectEntry ::= SEQUENCE { + atmVcCrossConnectIndex INTEGER, + atmVcCrossConnectLowIfIndex IfIndex, + atmVcCrossConnectLowVpi INTEGER, + atmVcCrossConnectLowVci INTEGER, + atmVcCrossConnectHighIfIndex IfIndex, + atmVcCrossConnectHighVpi INTEGER, + atmVcCrossConnectHighVci INTEGER, + atmVcCrossConnectAdminStatus INTEGER, + atmVcCrossConnectL2HOperStatus INTEGER, + atmVcCrossConnectH2LOperStatus INTEGER, + atmVcCrossConnectL2HLastChange TimeStamp, + atmVcCrossConnectH2LLastChange TimeStamp, + atmVcCrossConnectRowStatus RowStatus + } + + atmVcCrossConnectIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value to identify this VC cross-connect." + ::= { atmVcCrossConnectEntry 1 } + + atmVcCrossConnectLowIfIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to MIB II's + ifIndex value of the ATM interface port for this + VC cross-connect. The term low implies + that this ATM interface has the numerically lower + ifIndex value than the other ATM interface + identified in the same atmVcCrossConnectEntry." + ::= { atmVcCrossConnectEntry 2 } + + atmVcCrossConnectLowVpi OBJECT-TYPE + SYNTAX INTEGER (0..4095) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to the VPI + value at the ATM interface + associated with the VC cross-connect that is + identified by atmVcCrossConnectLowIfIndex. + The VPI value cannot exceed the number + supported by the atmInterfaceMaxVpiBits + at the low ATM interface port." + ::= { atmVcCrossConnectEntry 3 } + + atmVcCrossConnectLowVci OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to the VCI + value at the ATM interface + associated with this VC cross-connect that is + identified by atmVcCrossConnectLowIfIndex. + The VCI value cannot exceed the number + supported by the atmInterfaceMaxVciBits + at the low ATM interface port." + ::= { atmVcCrossConnectEntry 4 } + + atmVcCrossConnectHighIfIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to MIB II's + ifIndex value for the ATM interface port for + this VC cross-connect. The term high + implies that this VC cross-connect + that this ATM interface has the numerically higher + ifIndex value than the other ATM interface + identified in the same atmVcCrossConnectEntry." + ::= { atmVcCrossConnectEntry 5 } + + atmVcCrossConnectHighVpi OBJECT-TYPE + SYNTAX INTEGER (0..4095) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to the VPI + value at the ATM interface + associated with the VC cross-connect that is + identified by atmVcCrossConnectHighIfIndex. + The VPI value cannot exceed + the number supported by the atmInterfaceMaxVpiBits + at the high ATM interface port." + ::= { atmVcCrossConnectEntry 6 } + + atmVcCrossConnectHighVci OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of this object is equal to the VCI + value at the ATM interface + associated with the VC cross-connect that is + identified by atmVcCrossConnectHighIfIndex. + The VCI value cannot exceed + the number supported by the atmInterfaceMaxVciBits + at the high ATM interface port." + ::= { atmVcCrossConnectEntry 7 } + + atmVcCrossConnectAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the desired + administrative status of this bi-directional + VC cross-connect. The up and down states + indicate that the traffic flow is enabled or + disabled respectively on this VC cross-connect." + DEFVAL { down } + ::= { atmVcCrossConnectEntry 8 } + + atmVcCrossConnectL2HOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the current + operational status of the VC cross-connect + in one direction; (i.e., from the low to + high direction). The up and down states indicate + that this ATM VC cross-connect from low + to high direction is operational or not + operational respectively. The unknown state + indicates that the state of it cannot be + determined." + ::= { atmVcCrossConnectEntry 9 } + + atmVcCrossConnectH2LOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the current + operational status of the VC cross-connect + in one direction; (i.e., from the high to + low direction). The up and down states indicate + that this ATM VC cross-connect from high + to low direction is operational or not + operational respectively. The unknown state + indicates that the state of it cannot be + determined." + ::= { atmVcCrossConnectEntry 10 } + + atmVcCrossConnectL2HLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of MIB II's sysUpTime object + at the time this VC cross-connect entered + its current operational state in low to high + direction. If the current state was + entered prior to the last re-initialization of the + agent, then this object contains a zero value." + ::= { atmVcCrossConnectEntry 11 } + + atmVcCrossConnectH2LLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of MIB II's sysUpTime object + at the time this VC cross-connect entered + its current operational state in high to low + direction. If the current state was + entered prior to the last re-initialization of the + agent, then this object contains a zero value." + ::= { atmVcCrossConnectEntry 12 } + + atmVcCrossConnectRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this entry in the + atmVcCrossConnectTable. This object is used to + create a new cross-connect for cross-connecting + VCLs which are created using the atmVclTable + or to change or delete existing cross-connect. + This object must be initially set to + `createAndWait' or 'createAndGo'. This object + cannot be set to `active' unless the following + columnar object exists in this row: + atmVcCrossConnectAdminStatus. + To turn on a VC cross-connect, + the atmVcCrossConnectAdminStatus + is set to `up'." + ::= { atmVcCrossConnectEntry 13 } + + + -- AAL5 Virtual Channel Connection Performance Statistics + -- Group + + -- This group contains the AAL5 + -- performance statistics of a VCC at the + -- interface associated with an AAL5 entity in an ATM + -- host or ATM switch. + + + aal5VccTable OBJECT-TYPE + SYNTAX SEQUENCE OF Aal5VccEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains AAL5 VCC performance + parameters." + ::= { atmMIBObjects 12 } + + aal5VccEntry OBJECT-TYPE + SYNTAX Aal5VccEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains the AAL5 VCC + performance parameters." + INDEX { ifIndex, aal5VccVpi, aal5VccVci } + ::= { aal5VccTable 1 } + + Aal5VccEntry ::= SEQUENCE { + aal5VccVpi INTEGER, + aal5VccVci INTEGER, + aal5VccCrcErrors Counter32, + aal5VccSarTimeOuts Counter32, + aal5VccOverSizedSDUs Counter32 + } + + + aal5VccVpi OBJECT-TYPE + SYNTAX INTEGER (0..4095) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The VPI value of the AAL5 VCC at the + interface identified by the ifIndex." + ::= { aal5VccEntry 1 } + + aal5VccVci OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The VCI value of the AAL5 VCC at the + interface identified by the ifIndex." + ::= { aal5VccEntry 2 } + + aal5VccCrcErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of AAL5 CPCS PDUs received with + CRC-32 errors on this AAL5 VCC at the + interface associated with an AAL5 entity." + ::= { aal5VccEntry 3 } + + aal5VccSarTimeOuts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of partially re-assembled AAL5 + CPCS PDUs which were discarded + on this AAL5 VCC at the interface associated + with an AAL5 entity because they + were not fully re-assembled within the + required time period. If the re-assembly + timer is not supported, then this object + contains a zero value." + ::= { aal5VccEntry 4 } + + aal5VccOverSizedSDUs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of AAL5 CPCS PDUs discarded + on this AAL5 VCC at the interface + associated with an AAL5 entity because the + AAL5 SDUs were too large." + ::= { aal5VccEntry 5 } + + + -- Conformance Information + + atmMIBConformance OBJECT IDENTIFIER ::= { atmMIB 2 } + + atmMIBGroups OBJECT IDENTIFIER + ::= { atmMIBConformance 1 } + atmMIBCompliances OBJECT IDENTIFIER + ::= { atmMIBConformance 2 } + + + -- Compliance Statements + + atmMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP entities + including networks which have ATM and + AAL5 interfaces." + + MODULE -- this module + MANDATORY-GROUPS {atmInterfaceConfGroup, + atmTrafficDescrGroup} + + OBJECT atmInterfaceMaxVpcs + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmInterfaceMaxVccs + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + OBJECT atmInterfaceMaxActiveVpiBits + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmInterfaceMaxActiveVciBits + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmInterfaceIlmiVpi + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmInterfaceIlmiVci + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmInterfaceMyNeighborIpAddress + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmInterfaceMyNeighborIfName + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficDescrType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficDescrParam1 + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficDescrParam2 + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficDescrParam3 + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficDescrParam4 + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficDescrParam5 + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficQoSClass + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmTrafficDescrRowStatus + SYNTAX INTEGER {active(1)} + -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + GROUP atmInterfaceDs3PlcpGroup + DESCRIPTION + "This group is mandatory only for those + ATM interfaces which implement the + DS3 PLCP layer." + + GROUP atmInterfaceTCGroup + DESCRIPTION + "This group is mandatory only for those + ATM interfaces which implement the + TC Sublayer." + + GROUP atmVpcTerminationGroup + DESCRIPTION + "This group is mandatory only for those + ATM interfaces which implement ATM + VPLs that terminate VPCs (i.e., ones which + are NOT cross-connected to other VPLs)." + + GROUP atmVpCrossConnectGroup + DESCRIPTION + "This group is mandatory only for those + ATM interfaces which implement ATM + VPLs that are not associated with VCLs + and are cross-connected to other VPLs." + +-- OBJECT atmVplVpi +-- SYNTAX INTEGER (1..255) +-- DESCRIPTION +-- "For ATM UNIs supporting VPCs, the VPI value +-- ranges from 1 to 255." + + OBJECT atmVplAdminStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVplReceiveTrafficDescrIndex + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVplTransmitTrafficDescrIndex + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVplRowStatus + SYNTAX INTEGER {active(1)} + -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + +-- OBJECT atmVpCrossConnectLowVpi +-- SYNTAX INTEGER (1..255) +-- DESCRIPTION +-- "For ATM UNIs supporting VPCs, the VPI value +-- at the numerically lower ATM interface port +-- index number ranges from 1 to 255." + +-- OBJECT atmVpCrossConnectHighVpi +-- SYNTAX INTEGER (1..255) +-- DESCRIPTION +-- "For ATM UNIs supporting VPCs, the VPI value +-- at the numerically higher ATM interface port +-- index number ranges from 1 to 255." + + OBJECT atmVpCrossConnectAdminStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVpCrossConnectRowStatus + SYNTAX INTEGER {active(1)} + -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + GROUP atmVccTerminationGroup + DESCRIPTION + "This group is mandatory only for those + ATM interfaces which implement ATM + VCLs that terminate VCCs (i.e., ones which + are NOT cross-connected to other VCLs)." + + GROUP atmVcCrossConnectGroup + DESCRIPTION + "This group is mandatory only for those + ATM interfaces which implement ATM + VCLs that are cross-connected to + other VCLs." + +-- OBJECT atmVclVpi +-- SYNTAX INTEGER (0..255) +-- DESCRIPTION +-- "For ATM UNIs supporting VCCs, the VPI value +-- ranges from 0 to 255." + + OBJECT atmVclAdminStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVclReceiveTrafficDescrIndex + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVclTransmitTrafficDescrIndex + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVccAalType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVclRowStatus + SYNTAX INTEGER {active(1)} + -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + +-- OBJECT atmVcCrossConnectLowVpi +-- SYNTAX INTEGER (0..255) +-- DESCRIPTION +-- "For ATM UNIs supporting VCCs, the VPI value +-- at the numerically lower ATM interface port +-- index number ranges from 0 to 255." + +-- OBJECT atmVcCrossConnectHighVpi +-- SYNTAX INTEGER (0..255) +-- DESCRIPTION +-- "For ATM UNIs supporting VCCs, the VPI value +-- at the numerically higher ATM interface port +-- index number ranges from 0 to 255." + + OBJECT atmVcCrossConnectAdminStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVcCrossConnectRowStatus + SYNTAX INTEGER { active(1)} + -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + GROUP aal5VccGroup + DESCRIPTION + "This group is mandatory for the + AAL5 virtual connections only." + +-- OBJECT aal5VccVpi +-- SYNTAX INTEGER (0..255) +-- DESCRIPTION +-- "For ATM UNIs supporting AAL5 VCCs, +-- the VPI value ranges from 0 to 255." + + OBJECT atmVccAal5CpcsTransmitSduSize + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVccAal5CpcsReceiveSduSize + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT atmVccAal5EncapsType + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + ::= { atmMIBCompliances 1 } + + + -- Units of Conformance + + atmInterfaceConfGroup OBJECT-GROUP + OBJECTS { + atmInterfaceMaxVpcs, atmInterfaceMaxVccs, + atmInterfaceConfVpcs, atmInterfaceConfVccs, + atmInterfaceMaxActiveVpiBits, + atmInterfaceMaxActiveVciBits, + atmInterfaceIlmiVpi, + atmInterfaceIlmiVci, + atmInterfaceAddressType, + atmInterfaceAdminAddress, + atmInterfaceMyNeighborIpAddress, + atmInterfaceMyNeighborIfName} + STATUS current + DESCRIPTION + "A collection of objects providing configuration + information about an ATM interface." + ::= { atmMIBGroups 1 } + + atmTrafficDescrGroup OBJECT-GROUP + OBJECTS { + atmTrafficDescrType, atmTrafficDescrParam1, + atmTrafficDescrParam2, atmTrafficDescrParam3, + atmTrafficDescrParam4, atmTrafficDescrParam5, + atmTrafficQoSClass, atmTrafficDescrRowStatus} + STATUS current + DESCRIPTION + "A collection of objects providing information + about ATM traffic descriptor type and + the associated parameters." + ::= { atmMIBGroups 2 } + + atmInterfaceDs3PlcpGroup OBJECT-GROUP + OBJECTS {atmInterfaceDs3PlcpSEFSs, + atmInterfaceDs3PlcpAlarmState, + atmInterfaceDs3PlcpUASs} + STATUS current + DESCRIPTION + "A collection of objects providing information + about DS3 PLCP layer at an ATM interface." + ::= { atmMIBGroups 3 } + + atmInterfaceTCGroup OBJECT-GROUP + OBJECTS { atmInterfaceOCDEvents, + atmInterfaceTCAlarmState } + STATUS current + DESCRIPTION + "A collection of objects providing information + about TC sublayer at an ATM interface." + ::= { atmMIBGroups 4 } + + atmVpcTerminationGroup OBJECT-GROUP + OBJECTS {atmVplOperStatus, atmVplAdminStatus, + atmVplLastChange, + atmVplReceiveTrafficDescrIndex, + atmVplTransmitTrafficDescrIndex, + atmVplRowStatus } + STATUS current + DESCRIPTION + "A collection of objects providing + information about a VPL at an ATM interface + which terminates a VPC + (i.e., one which is NOT cross-connected + to other VPLs)." + ::= { atmMIBGroups 5 } + + atmVccTerminationGroup OBJECT-GROUP + OBJECTS {atmVclOperStatus, atmVclAdminStatus, + atmVclLastChange, + atmVclReceiveTrafficDescrIndex, + atmVclTransmitTrafficDescrIndex, + atmVccAalType, atmVclRowStatus } + STATUS current + DESCRIPTION + "A collection of objects providing information + about a VCL at an ATM interface + which terminates a VCC (i.e., one which is + NOT cross-connected to other VCLs)." + ::= { atmMIBGroups 6 } + + atmVpCrossConnectGroup OBJECT-GROUP + OBJECTS { atmVplReceiveTrafficDescrIndex, + atmVplTransmitTrafficDescrIndex, + atmVplOperStatus, atmVplRowStatus, + atmVpCrossConnectAdminStatus, + atmVpCrossConnectL2HOperStatus, + atmVpCrossConnectH2LOperStatus, + atmVpCrossConnectL2HLastChange, + atmVpCrossConnectH2LLastChange, + atmVpCrossConnectRowStatus, + atmVplCrossConnectIdentifier, + atmVpCrossConnectIndexNext } + STATUS current + DESCRIPTION + "A collection of objects providing + information about a VP cross-connect + and the associated VPLs that are + cross-connected together." + ::= { atmMIBGroups 7 } + + atmVcCrossConnectGroup OBJECT-GROUP + OBJECTS { atmVclReceiveTrafficDescrIndex, + atmVclTransmitTrafficDescrIndex, + atmVclOperStatus, atmVclRowStatus, + atmVcCrossConnectAdminStatus, + atmVcCrossConnectL2HOperStatus, + atmVcCrossConnectH2LOperStatus, + atmVcCrossConnectL2HLastChange, + atmVcCrossConnectH2LLastChange, + atmVcCrossConnectRowStatus, + atmVclCrossConnectIdentifier, + atmVcCrossConnectIndexNext } + STATUS current + DESCRIPTION + "A collection of objects providing + information about a VC cross-connect + and the associated VCLs that are + cross-connected together." + ::= { atmMIBGroups 8 } + + aal5VccGroup OBJECT-GROUP + OBJECTS {atmVccAal5CpcsTransmitSduSize, + atmVccAal5CpcsReceiveSduSize, + atmVccAal5EncapsType, + aal5VccCrcErrors, aal5VccSarTimeOuts, + aal5VccOverSizedSDUs } + STATUS current + DESCRIPTION + "A collection of objects providing + AAL5 configuration and performance statistics + of a VCC." + ::= { atmMIBGroups 9 } + + END diff --git a/pandora_console/attachment/mibs/BGP4-MIB b/pandora_console/attachment/mibs/BGP4-MIB new file mode 100644 index 0000000000..0128f48e21 --- /dev/null +++ b/pandora_console/attachment/mibs/BGP4-MIB @@ -0,0 +1,828 @@ +-- Changes for rfc1657 - (BGP4-MIB) +-- Renamed bgpRcvdPathAttrTable to bgpPathAttrTable so it +-- a consistent name. +-- dperkins@scruznet.com + + +BGP4-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + IpAddress, Integer32, Counter32, Gauge32 + FROM SNMPv2-SMI + mib-2 + FROM RFC1213-MIB; + + bgp MODULE-IDENTITY + LAST-UPDATED "9405050000Z" + ORGANIZATION "IETF BGP Working Group" + CONTACT-INFO + " John Chu (Editor) + Postal: IBM Corp. + P.O.Box 218 + Yorktown Heights, NY 10598 + US + + Tel: +1 914 945 3156 + Fax: +1 914 945 2141 + E-mail: jychu@watson.ibm.com" + DESCRIPTION + "The MIB module for BGP-4." + ::= { mib-2 15 } + + bgpVersion OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (1..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Vector of supported BGP protocol version + numbers. Each peer negotiates the version + from this vector. Versions are identified + via the string of bits contained within this + object. The first octet contains bits 0 to + 7, the second octet contains bits 8 to 15, + and so on, with the most significant bit + referring to the lowest bit number in the + octet (e.g., the MSB of the first octet + refers to bit 0). If a bit, i, is present + and set, then the version (i+1) of the BGP + is supported." + ::= { bgp 1 } + + bgpLocalAs OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local autonomous system number." + ::= { bgp 2 } + + + + -- BGP Peer table. This table contains, one entry per + -- BGP peer, information about the BGP peer. + + bgpPeerTable OBJECT-TYPE + SYNTAX SEQUENCE OF BgpPeerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "BGP peer table. This table contains, + one entry per BGP peer, information about + the connections with BGP peers." + ::= { bgp 3 } + + bgpPeerEntry OBJECT-TYPE + SYNTAX BgpPeerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entry containing information about the + connection with a BGP peer." + INDEX { bgpPeerRemoteAddr } + ::= { bgpPeerTable 1 } + + BgpPeerEntry ::= SEQUENCE { + bgpPeerIdentifier + IpAddress, + bgpPeerState + INTEGER, + bgpPeerAdminStatus + INTEGER, + bgpPeerNegotiatedVersion + Integer32, + bgpPeerLocalAddr + IpAddress, + bgpPeerLocalPort + INTEGER, + bgpPeerRemoteAddr + IpAddress, + bgpPeerRemotePort + INTEGER, + bgpPeerRemoteAs + INTEGER, + bgpPeerInUpdates + Counter32, + bgpPeerOutUpdates + Counter32, + bgpPeerInTotalMessages + Counter32, + bgpPeerOutTotalMessages + Counter32, + bgpPeerLastError + OCTET STRING, + bgpPeerFsmEstablishedTransitions + Counter32, + bgpPeerFsmEstablishedTime + Gauge32, + bgpPeerConnectRetryInterval + INTEGER, + bgpPeerHoldTime + INTEGER, + bgpPeerKeepAlive + INTEGER, + bgpPeerHoldTimeConfigured + INTEGER, + bgpPeerKeepAliveConfigured + INTEGER, + bgpPeerMinASOriginationInterval + INTEGER, + bgpPeerMinRouteAdvertisementInterval + INTEGER, + bgpPeerInUpdateElapsedTime + Gauge32 + } + + bgpPeerIdentifier OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The BGP Identifier of this entry's BGP + peer." + ::= { bgpPeerEntry 1 } + + bgpPeerState OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + connect(2), + active(3), + opensent(4), + openconfirm(5), + established(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The BGP peer connection state." + ::= { bgpPeerEntry 2 } + + bgpPeerAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + stop(1), + start(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The desired state of the BGP connection. + A transition from 'stop' to 'start' will + cause the BGP Start Event to be generated. + A transition from 'start' to 'stop' will + cause the BGP Stop Event to be generated. + This parameter can be used to restart BGP + peer connections. Care should be used in + providing write access to this object + without adequate authentication." + ::= { bgpPeerEntry 3 } + + bgpPeerNegotiatedVersion OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The negotiated version of BGP running + between the two peers." + ::= { bgpPeerEntry 4 } + + bgpPeerLocalAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local IP address of this entry's BGP + connection." + ::= { bgpPeerEntry 5 } + + bgpPeerLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local port for the TCP connection + between the BGP peers." + ::= { bgpPeerEntry 6 } + + bgpPeerRemoteAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote IP address of this entry's BGP + peer." + ::= { bgpPeerEntry 7 } + + bgpPeerRemotePort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote port for the TCP connection + between the BGP peers. Note that the + objects bgpPeerLocalAddr, + bgpPeerLocalPort, bgpPeerRemoteAddr and + bgpPeerRemotePort provide the appropriate + reference to the standard MIB TCP + connection table." + ::= { bgpPeerEntry 8 } + + bgpPeerRemoteAs OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote autonomous system number." + ::= { bgpPeerEntry 9 } + + bgpPeerInUpdates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of BGP UPDATE messages + received on this connection. This object + should be initialized to zero (0) when the + connection is established." + ::= { bgpPeerEntry 10 } + + bgpPeerOutUpdates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of BGP UPDATE messages + transmitted on this connection. This + object should be initialized to zero (0) + when the connection is established." + ::= { bgpPeerEntry 11 } + + bgpPeerInTotalMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of messages received + from the remote peer on this connection. + This object should be initialized to zero + when the connection is established." + ::= { bgpPeerEntry 12 } + + bgpPeerOutTotalMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of messages transmitted to + the remote peer on this connection. This + object should be initialized to zero when + the connection is established." + ::= { bgpPeerEntry 13 } + + bgpPeerLastError OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The last error code and subcode seen by this + peer on this connection. If no error has + occurred, this field is zero. Otherwise, the + first byte of this two byte OCTET STRING + contains the error code, and the second byte + contains the subcode." + ::= { bgpPeerEntry 14 } + + bgpPeerFsmEstablishedTransitions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of times the BGP FSM + transitioned into the established state." + ::= { bgpPeerEntry 15 } + + bgpPeerFsmEstablishedTime OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This timer indicates how long (in + seconds) this peer has been in the + Established state or how long + since this peer was last in the + Established state. It is set to zero when + a new peer is configured or the router is + booted." + ::= { bgpPeerEntry 16 } + + bgpPeerConnectRetryInterval OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time interval in seconds for the + ConnectRetry timer. The suggested value + for this timer is 120 seconds." + ::= { bgpPeerEntry 17 } + + bgpPeerHoldTime OBJECT-TYPE + SYNTAX INTEGER ( 0 | 3..65535 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time interval in seconds for the Hold + Timer established with the peer. The + value of this object is calculated by this + BGP speaker by using the smaller of the + value in bgpPeerHoldTimeConfigured and the + Hold Time received in the OPEN message. + This value must be at lease three seconds + if it is not zero (0) in which case the + Hold Timer has not been established with + the peer, or, the value of + bgpPeerHoldTimeConfigured is zero (0)." + ::= { bgpPeerEntry 18 } + + bgpPeerKeepAlive OBJECT-TYPE + SYNTAX INTEGER ( 0 | 1..21845 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time interval in seconds for the KeepAlive + timer established with the peer. The value + of this object is calculated by this BGP + speaker such that, when compared with + bgpPeerHoldTime, it has the same + proportion as what + bgpPeerKeepAliveConfigured has when + compared with bgpPeerHoldTimeConfigured. + If the value of this object is zero (0), + it indicates that the KeepAlive timer has + not been established with the peer, or, + the value of bgpPeerKeepAliveConfigured is + zero (0)." + ::= { bgpPeerEntry 19 } + + bgpPeerHoldTimeConfigured OBJECT-TYPE + SYNTAX INTEGER ( 0 | 3..65535 ) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time interval in seconds for the Hold Time + configured for this BGP speaker with this + peer. This value is placed in an OPEN + message sent to this peer by this BGP + speaker, and is compared with the Hold + Time field in an OPEN message received + from the peer when determining the Hold + Time (bgpPeerHoldTime) with the peer. + This value must not be less than three + seconds if it is not zero (0) in which + case the Hold Time is NOT to be + established with the peer. The suggested + value for this timer is 90 seconds." + ::= { bgpPeerEntry 20 } + + bgpPeerKeepAliveConfigured OBJECT-TYPE + SYNTAX INTEGER ( 0 | 1..21845 ) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time interval in seconds for the + KeepAlive timer configured for this BGP + speaker with this peer. The value of this + object will only determine the + KEEPALIVE messages' frequency relative to + the value specified in + bgpPeerHoldTimeConfigured; the actual + time interval for the KEEPALIVE messages + is indicated by bgpPeerKeepAlive. A + reasonable maximum value for this timer + would be configured to be one + third of that of + bgpPeerHoldTimeConfigured. + If the value of this object is zero (0), + no periodical KEEPALIVE messages are sent + to the peer after the BGP connection has + been established. The suggested value for + this timer is 30 seconds." + ::= { bgpPeerEntry 21 } + + bgpPeerMinASOriginationInterval OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time interval in seconds for the + MinASOriginationInterval timer. + The suggested value for this timer is 15 + seconds." + ::= { bgpPeerEntry 22 } + + bgpPeerMinRouteAdvertisementInterval OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time interval in seconds for the + MinRouteAdvertisementInterval timer. + The suggested value for this timer is 30 + seconds." + ::= { bgpPeerEntry 23 } + + bgpPeerInUpdateElapsedTime OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Elapsed time in seconds since the last BGP + UPDATE message was received from the peer. + Each time bgpPeerInUpdates is incremented, + the value of this object is set to zero + (0)." + ::= { bgpPeerEntry 24 } + + + + bgpIdentifier OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The BGP Identifier of local system." + ::= { bgp 4 } + + + -- Received Path Attribute Table. This table contains, + -- one entry per path to a network, path attributes + -- received from all peers running BGP version 3 or + -- less. This table is deprecated. + +-- bgpRcvdPathAttrTable OBJECT-TYPE + bgpPathAttrTable OBJECT-TYPE + SYNTAX SEQUENCE OF BgpPathAttrEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "The BGP Received Path Attribute Table + contains information about paths to + destination networks received from all + peers running BGP version 3 or less." + ::= { bgp 5 } + + bgpPathAttrEntry OBJECT-TYPE + SYNTAX BgpPathAttrEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "Information about a path to a network." + INDEX { bgpPathAttrDestNetwork, + bgpPathAttrPeer } +-- ::= { bgpRcvdPathAttrTable 1 } + ::= { bgpPathAttrTable 1 } + + BgpPathAttrEntry ::= SEQUENCE { + bgpPathAttrPeer + IpAddress, + bgpPathAttrDestNetwork + IpAddress, + bgpPathAttrOrigin + INTEGER, + bgpPathAttrASPath + OCTET STRING, + bgpPathAttrNextHop + IpAddress, + bgpPathAttrInterASMetric + Integer32 + } + + bgpPathAttrPeer OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The IP address of the peer where the path + information was learned." + ::= { bgpPathAttrEntry 1 } + + bgpPathAttrDestNetwork OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The address of the destination network." + ::= { bgpPathAttrEntry 2 } + + bgpPathAttrOrigin OBJECT-TYPE + SYNTAX INTEGER { + igp(1),-- networks are interior + egp(2),-- networks learned via EGP + incomplete(3) -- undetermined + } + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The ultimate origin of the path information." + ::= { bgpPathAttrEntry 3 } + + bgpPathAttrASPath OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (2..255)) + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The set of ASs that must be traversed to + reach the network. This object is + probably best represented as SEQUENCE OF + INTEGER. For SMI compatibility, though, + it is represented as OCTET STRING. Each + AS is represented as a pair of octets + according to the following algorithm: + + first-byte-of-pair = ASNumber / 256; + second-byte-of-pair = ASNumber & 255;" + ::= { bgpPathAttrEntry 4 } + + bgpPathAttrNextHop OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The address of the border router that + should be used for the destination + network." + ::= { bgpPathAttrEntry 5 } + + bgpPathAttrInterASMetric OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The optional inter-AS metric. If this + attribute has not been provided for this + route, the value for this object is 0." + ::= { bgpPathAttrEntry 6 } + + + + -- BGP-4 Received Path Attribute Table. This table + -- contains, one entry per path to a network, path + -- attributes received from all peers running BGP-4. + + bgp4PathAttrTable OBJECT-TYPE + SYNTAX SEQUENCE OF Bgp4PathAttrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The BGP-4 Received Path Attribute Table + contains information about paths to + destination networks received from all + BGP4 peers." + ::= { bgp 6 } + + bgp4PathAttrEntry OBJECT-TYPE + SYNTAX Bgp4PathAttrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a path to a network." + INDEX { bgp4PathAttrIpAddrPrefix, + bgp4PathAttrIpAddrPrefixLen, + bgp4PathAttrPeer } + ::= { bgp4PathAttrTable 1 } + + Bgp4PathAttrEntry ::= SEQUENCE { + bgp4PathAttrPeer + IpAddress, + bgp4PathAttrIpAddrPrefixLen + INTEGER, + bgp4PathAttrIpAddrPrefix + IpAddress, + bgp4PathAttrOrigin + INTEGER, + bgp4PathAttrASPathSegment + OCTET STRING, + bgp4PathAttrNextHop + IpAddress, + bgp4PathAttrMultiExitDisc + INTEGER, + bgp4PathAttrLocalPref + INTEGER, + bgp4PathAttrAtomicAggregate + INTEGER, + bgp4PathAttrAggregatorAS + INTEGER, + bgp4PathAttrAggregatorAddr + IpAddress, + bgp4PathAttrCalcLocalPref + INTEGER, + bgp4PathAttrBest + INTEGER, + bgp4PathAttrUnknown + OCTET STRING + + } + + bgp4PathAttrPeer OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of the peer where the path + information was learned." + ::= { bgp4PathAttrEntry 1 } + + bgp4PathAttrIpAddrPrefixLen OBJECT-TYPE + SYNTAX INTEGER (0..32) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Length in bits of the IP address prefix + in the Network Layer Reachability + Information field." + ::= { bgp4PathAttrEntry 2 } + + bgp4PathAttrIpAddrPrefix OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An IP address prefix in the Network Layer + Reachability Information field. This object + is an IP address containing the prefix with + length specified by + bgp4PathAttrIpAddrPrefixLen. + Any bits beyond the length specified by + bgp4PathAttrIpAddrPrefixLen are zeroed." + ::= { bgp4PathAttrEntry 3 } + + bgp4PathAttrOrigin OBJECT-TYPE + SYNTAX INTEGER { + igp(1),-- networks are interior + egp(2),-- networks learned + -- via EGP + incomplete(3) -- undetermined + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ultimate origin of the path + information." + ::= { bgp4PathAttrEntry 4 } + + bgp4PathAttrASPathSegment OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (2..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sequence of AS path segments. Each AS + path segment is represented by a triple + . + + The type is a 1-octet field which has two + possible values: + 1 AS_SET: unordered set of ASs a + route in the UPDATE + message has traversed + 2 AS_SEQUENCE: ordered set of ASs + a route in the UPDATE + message has traversed. + + The length is a 1-octet field containing the + number of ASs in the value field. + + The value field contains one or more AS + numbers, each AS is represented in the octet + string as a pair of octets according to the + following algorithm: + first-byte-of-pair = ASNumber / 256; + second-byte-of-pair = ASNumber & 255;" + ::= { bgp4PathAttrEntry 5 } + + bgp4PathAttrNextHop OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The address of the border router that + should be used for the destination + network." + ::= { bgp4PathAttrEntry 6 } + + bgp4PathAttrMultiExitDisc OBJECT-TYPE + SYNTAX INTEGER (-1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This metric is used to discriminate + between multiple exit points to an + adjacent autonomous system. A value of -1 + indicates the absence of this attribute." + ::= { bgp4PathAttrEntry 7 } + + bgp4PathAttrLocalPref OBJECT-TYPE + SYNTAX INTEGER (-1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The originating BGP4 speaker's degree of + preference for an advertised route. A + value of -1 indicates the absence of this + attribute." + ::= { bgp4PathAttrEntry 8 } + + bgp4PathAttrAtomicAggregate OBJECT-TYPE + SYNTAX INTEGER { + lessSpecificRrouteNotSelected(1), + lessSpecificRouteSelected(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether or not the local system has + selected a less specific route without + selecting a more specific route." + ::= { bgp4PathAttrEntry 9 } + + bgp4PathAttrAggregatorAS OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The AS number of the last BGP4 speaker that + performed route aggregation. A value of + zero (0) indicates the absence of this + attribute." + ::= { bgp4PathAttrEntry 10 } + + bgp4PathAttrAggregatorAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of the last BGP4 speaker + that performed route aggregation. A value + of 0.0.0.0 indicates the absence of this + attribute." + ::= { bgp4PathAttrEntry 11 } + + bgp4PathAttrCalcLocalPref OBJECT-TYPE + SYNTAX INTEGER (-1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The degree of preference calculated by the + receiving BGP4 speaker for an advertised + route. A value of -1 indicates the + absence of this attribute." + ::= { bgp4PathAttrEntry 12 } + + bgp4PathAttrBest OBJECT-TYPE + SYNTAX INTEGER { + false(1),-- not chosen as best route + true(2) -- chosen as best route + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of whether or not this route + was chosen as the best BGP4 route." + ::= { bgp4PathAttrEntry 13 } + + bgp4PathAttrUnknown OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "One or more path attributes not understood + by this BGP4 speaker. Size zero (0) + indicates the absence of such + attribute(s). Octets beyond the maximum + size, if any, are not recorded by this + object." + ::= { bgp4PathAttrEntry 14 } + + + -- Traps. + + bgpTraps OBJECT IDENTIFIER ::= { bgp 7 } + + bgpEstablished NOTIFICATION-TYPE + OBJECTS { bgpPeerLastError, + bgpPeerState } + STATUS current + DESCRIPTION + "The BGP Established event is generated when + the BGP FSM enters the ESTABLISHED state." + ::= { bgpTraps 1 } + + bgpBackwardTransition NOTIFICATION-TYPE + OBJECTS { bgpPeerLastError, + bgpPeerState } + STATUS current + DESCRIPTION + "The BGPBackwardTransition Event is generated + when the BGP FSM moves from a higher numbered + state to a lower numbered state." + ::= { bgpTraps 2 } + +END + diff --git a/pandora_console/attachment/mibs/BRIDGE-MIB b/pandora_console/attachment/mibs/BRIDGE-MIB new file mode 100644 index 0000000000..cd1abfe770 --- /dev/null +++ b/pandora_console/attachment/mibs/BRIDGE-MIB @@ -0,0 +1,1085 @@ +-- Changes to rfc1493 (Bridge MIB): +-- No changes needed. +-- dperkins@scruznet.com + + +BRIDGE-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter, TimeTicks + FROM RFC1155-SMI + mib-2 + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212 + TRAP-TYPE + FROM RFC-1215; + + -- All representations of MAC addresses in this MIB Module + -- use, as a textual convention (i.e. this convention does + -- not affect their encoding), the data type: + + MacAddress ::= OCTET STRING (SIZE (6)) -- a 6 octet address + -- in the + -- "canonical" + -- order + -- defined by IEEE 802.1a, i.e., as if it were transmitted + -- least significant bit first, even though 802.5 (in + -- contrast to other n802.x protocols) requires MAC + -- addresses to be transmitted most significant bit first. + -- + -- 16-bit addresses, if needed, are represented by setting + -- their upper 4 octets to all 0's, i.e., AAFF would be + -- represented as 00000000AAFF. + + -- Similarly, all representations of Bridge-Id in this MIB + -- Module use, as a textual convention (i.e. this + -- convention does not affect their encoding), the data + -- type: + + BridgeId ::= OCTET STRING (SIZE (8)) -- the + -- Bridge-Identifier + -- as used in the + -- Spanning Tree + + -- Protocol to uniquely identify a bridge. Its first two + -- octets (in network byte order) contain a priority + -- value and its last 6 octets contain the MAC address + -- used to refer to a bridge in a unique fashion + -- (typically, the numerically smallest MAC address + -- of all ports on the bridge). + + + -- Several objects in this MIB module represent values of + -- timers used by the Spanning Tree Protocol. In this + -- MIB, these timers have values in units of hundreths of + -- a second (i.e. 1/100 secs). + -- These timers, when stored in a Spanning Tree Protocol's + -- BPDU, are in units of 1/256 seconds. Note, however, + -- that 802.1D-1990 specifies a settable granularity of + -- no more than 1 second for these timers. To avoid + -- ambiguity, a data type is defined here as a textual + -- convention and all representation of these timers + -- in this MIB module are defined using this data type. An + -- algorithm is also defined for converting between the + -- different units, to ensure a timer's value is not + -- distorted by multiple conversions. + -- The data type is: + + Timeout ::= INTEGER -- a STP timer in units of 1/100 seconds + + -- To convert a Timeout value into a value in units of + -- 1/256 seconds, the following algorithm should be used: + -- + -- b = floor( (n * 256) / 100) + -- + -- where: + -- floor = quotient [ignore remainder] + -- n is the value in 1/100 second units + -- b is the value in 1/256 second units + -- + -- To convert the value from 1/256 second units back to + -- 1/100 seconds, the following algorithm should be used: + -- + -- n = ceiling( (b * 100) / 256) + -- + -- where: + -- ceiling = quotient [if remainder is 0], or + -- quotient + 1 [if remainder is non-zero] + -- n is the value in 1/100 second units + -- b is the value in 1/256 second units + -- + -- Note: it is important that the arithmetic operations are + -- done in the order specified (i.e., multiply first, divide + -- second). + + dot1dBridge OBJECT IDENTIFIER ::= { mib-2 17 } + + + -- groups in the Bridge MIB + + dot1dBase OBJECT IDENTIFIER ::= { dot1dBridge 1 } + + dot1dStp OBJECT IDENTIFIER ::= { dot1dBridge 2 } + + dot1dSr OBJECT IDENTIFIER ::= { dot1dBridge 3 } + -- separately documented + + dot1dTp OBJECT IDENTIFIER ::= { dot1dBridge 4 } + + dot1dStatic OBJECT IDENTIFIER ::= { dot1dBridge 5 } + + -- the dot1dBase group + + -- Implementation of the dot1dBase group is mandatory for all + -- bridges. + + dot1dBaseBridgeAddress OBJECT-TYPE + SYNTAX MacAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MAC address used by this bridge when it must + be referred to in a unique fashion. It is + recommended that this be the numerically smallest + MAC address of all ports that belong to this + bridge. However it is only required to be unique. + When concatenated with dot1dStpPriority a unique + BridgeIdentifier is formed which is used in the + Spanning Tree Protocol." + REFERENCE + "IEEE 802.1D-1990: Sections 6.4.1.1.3 and 3.12.5" + ::= { dot1dBase 1 } + + dot1dBaseNumPorts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ports controlled by this bridging + entity." + REFERENCE + "IEEE 802.1D-1990: Section 6.4.1.1.3" + ::= { dot1dBase 2 } + + dot1dBaseType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + transparent-only(2), + sourceroute-only(3), + srt(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates what type of bridging this bridge can + perform. If a bridge is actually performing a + certain type of bridging this will be indicated by + entries in the port table for the given type." + ::= { dot1dBase 3 } + + -- The Generic Bridge Port Table + + dot1dBasePortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot1dBasePortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table that contains generic information about + every port that is associated with this bridge. + Transparent, source-route, and srt ports are + included." + ::= { dot1dBase 4 } + + dot1dBasePortEntry OBJECT-TYPE + SYNTAX Dot1dBasePortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of information for each port of the + bridge." + REFERENCE + "IEEE 802.1D-1990: Section 6.4.2, 6.6.1" + INDEX { dot1dBasePort } + ::= { dot1dBasePortTable 1 } + + Dot1dBasePortEntry ::= + SEQUENCE { + dot1dBasePort + INTEGER, + dot1dBasePortIfIndex + INTEGER, + dot1dBasePortCircuit + OBJECT IDENTIFIER, + dot1dBasePortDelayExceededDiscards + Counter, + dot1dBasePortMtuExceededDiscards + Counter + } + + dot1dBasePort OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port number of the port for which this entry + contains bridge management information." + ::= { dot1dBasePortEntry 1 } + + dot1dBasePortIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the instance of the ifIndex object, + defined in MIB-II, for the interface corresponding + to this port." + ::= { dot1dBasePortEntry 2 } + + dot1dBasePortCircuit OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "For a port which (potentially) has the same value + of dot1dBasePortIfIndex as another port on the + same bridge, this object contains the name of an + object instance unique to this port. For example, + in the case where multiple ports correspond one- + to-one with multiple X.25 virtual circuits, this + value might identify an (e.g., the first) object + instance associated with the X.25 virtual circuit + corresponding to this port. + + For a port which has a unique value of + dot1dBasePortIfIndex, this object can have the + value { 0 0 }." + ::= { dot1dBasePortEntry 3 } + + dot1dBasePortDelayExceededDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of frames discarded by this port due + to excessive transit delay through the bridge. It + is incremented by both transparent and source + route bridges." + REFERENCE + "IEEE 802.1D-1990: Section 6.6.1.1.3" + ::= { dot1dBasePortEntry 4 } + + dot1dBasePortMtuExceededDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of frames discarded by this port due + to an excessive size. It is incremented by both + transparent and source route bridges." + REFERENCE + "IEEE 802.1D-1990: Section 6.6.1.1.3" + ::= { dot1dBasePortEntry 5 } + + -- the dot1dStp group + + -- Implementation of the dot1dStp group is optional. It is + -- implemented by those bridges that support the Spanning Tree + -- Protocol. + + dot1dStpProtocolSpecification OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + decLb100(2), + ieee8021d(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of what version of the Spanning + Tree Protocol is being run. The value + 'decLb100(2)' indicates the DEC LANbridge 100 + Spanning Tree protocol. IEEE 802.1d + implementations will return 'ieee8021d(3)'. If + future versions of the IEEE Spanning Tree Protocol + are released that are incompatible with the + current version a new value will be defined." + ::= { dot1dStp 1 } + + dot1dStpPriority OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the write-able portion of the Bridge + ID, i.e., the first two octets of the (8 octet + long) Bridge ID. The other (last) 6 octets of the + Bridge ID are given by the value of + dot1dBaseBridgeAddress." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.7" + ::= { dot1dStp 2 } + + dot1dStpTimeSinceTopologyChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time (in hundredths of a second) since the + last time a topology change was detected by the + bridge entity." + REFERENCE + "IEEE 802.1D-1990: Section 6.8.1.1.3" + ::= { dot1dStp 3 } + + dot1dStpTopChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of topology changes detected by + this bridge since the management entity was last + reset or initialized." + REFERENCE + "IEEE 802.1D-1990: Section 6.8.1.1.3" + ::= { dot1dStp 4 } + + dot1dStpDesignatedRoot OBJECT-TYPE + SYNTAX BridgeId + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The bridge identifier of the root of the spanning + tree as determined by the Spanning Tree Protocol + as executed by this node. This value is used as + the Root Identifier parameter in all Configuration + Bridge PDUs originated by this node." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.1" + ::= { dot1dStp 5 } + + dot1dStpRootCost OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The cost of the path to the root as seen from + this bridge." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.2" + ::= { dot1dStp 6 } + + dot1dStpRootPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port number of the port which offers the + lowest cost path from this bridge to the root + bridge." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.3" + ::= { dot1dStp 7 } + + dot1dStpMaxAge OBJECT-TYPE + SYNTAX Timeout + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum age of Spanning Tree Protocol + information learned from the network on any port + before it is discarded, in units of hundredths of + a second. This is the actual value that this + bridge is currently using." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.4" + ::= { dot1dStp 8 } + + dot1dStpHelloTime OBJECT-TYPE + SYNTAX Timeout + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of time between the transmission of + Configuration bridge PDUs by this node on any port + when it is the root of the spanning tree or trying + to become so, in units of hundredths of a second. + This is the actual value that this bridge is + currently using." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.5" + ::= { dot1dStp 9 } + + dot1dStpHoldTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This time value determines the interval length + during which no more than two Configuration bridge + PDUs shall be transmitted by this node, in units + of hundredths of a second." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.14" + ::= { dot1dStp 10 } + + dot1dStpForwardDelay OBJECT-TYPE + SYNTAX Timeout + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This time value, measured in units of hundredths + of a second, controls how fast a port changes its + spanning state when moving towards the Forwarding + state. The value determines how long the port + stays in each of the Listening and Learning + states, which precede the Forwarding state. This + value is also used, when a topology change has + been detected and is underway, to age all dynamic + entries in the Forwarding Database. [Note that + this value is the one that this bridge is + currently using, in contrast to + dot1dStpBridgeForwardDelay which is the value that + this bridge and all others would start using + if/when this bridge were to become the root.]" + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.6" + ::= { dot1dStp 11 } + + dot1dStpBridgeMaxAge OBJECT-TYPE + SYNTAX Timeout (600..4000) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value that all bridges use for MaxAge when + this bridge is acting as the root. Note that + 802.1D-1990 specifies that the range for this + parameter is related to the value of + dot1dStpBridgeHelloTime. The granularity of this + timer is specified by 802.1D-1990 to be 1 second. + An agent may return a badValue error if a set is + attempted to a value which is not a whole number + of seconds." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.8" + ::= { dot1dStp 12 } + + dot1dStpBridgeHelloTime OBJECT-TYPE + SYNTAX Timeout (100..1000) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value that all bridges use for HelloTime when + this bridge is acting as the root. The + granularity of this timer is specified by 802.1D- + 1990 to be 1 second. An agent may return a + badValue error if a set is attempted to a value + which is not a whole number of seconds." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.9" + ::= { dot1dStp 13 } + + dot1dStpBridgeForwardDelay OBJECT-TYPE + SYNTAX Timeout (400..3000) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value that all bridges use for ForwardDelay + when this bridge is acting as the root. Note that + 802.1D-1990 specifies that the range for this + parameter is related to the value of + dot1dStpBridgeMaxAge. The granularity of this + timer is specified by 802.1D-1990 to be 1 second. + An agent may return a badValue error if a set is + attempted to a value which is not a whole number + of seconds." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.3.10" + ::= { dot1dStp 14 } + + + -- The Spanning Tree Port Table + + dot1dStpPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot1dStpPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table that contains port-specific information + for the Spanning Tree Protocol." + ::= { dot1dStp 15 } + + dot1dStpPortEntry OBJECT-TYPE + SYNTAX Dot1dStpPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of information maintained by every port + about the Spanning Tree Protocol state for that + port." + INDEX { dot1dStpPort } + ::= { dot1dStpPortTable 1 } + + Dot1dStpPortEntry ::= + SEQUENCE { + dot1dStpPort + INTEGER, + dot1dStpPortPriority + INTEGER, + dot1dStpPortState + INTEGER, + dot1dStpPortEnable + INTEGER, + dot1dStpPortPathCost + INTEGER, + dot1dStpPortDesignatedRoot + BridgeId, + dot1dStpPortDesignatedCost + INTEGER, + dot1dStpPortDesignatedBridge + BridgeId, + dot1dStpPortDesignatedPort + OCTET STRING, + dot1dStpPortForwardTransitions + Counter + } + + dot1dStpPort OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port number of the port for which this entry + contains Spanning Tree Protocol management + information." + REFERENCE + "IEEE 802.1D-1990: Section 6.8.2.1.2" + ::= { dot1dStpPortEntry 1 } + + dot1dStpPortPriority OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the priority field which is + contained in the first (in network byte order) + octet of the (2 octet long) Port ID. The other + octet of the Port ID is given by the value of + dot1dStpPort." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.1" + ::= { dot1dStpPortEntry 2 } + + dot1dStpPortState OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + blocking(2), + listening(3), + learning(4), + forwarding(5), + broken(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port's current state as defined by + application of the Spanning Tree Protocol. This + state controls what action a port takes on + reception of a frame. If the bridge has detected + a port that is malfunctioning it will place that + port into the broken(6) state. For ports which + are disabled (see dot1dStpPortEnable), this object + will have a value of disabled(1)." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.2" + ::= { dot1dStpPortEntry 3 } + + dot1dStpPortEnable OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The enabled/disabled status of the port." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.2" + ::= { dot1dStpPortEntry 4 } + + dot1dStpPortPathCost OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The contribution of this port to the path cost of + paths towards the spanning tree root which include + this port. 802.1D-1990 recommends that the + default value of this parameter be in inverse + proportion to the speed of the attached LAN." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.3" + ::= { dot1dStpPortEntry 5 } + + dot1dStpPortDesignatedRoot OBJECT-TYPE + SYNTAX BridgeId + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unique Bridge Identifier of the Bridge + recorded as the Root in the Configuration BPDUs + transmitted by the Designated Bridge for the + segment to which the port is attached." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.4" + ::= { dot1dStpPortEntry 6 } + + dot1dStpPortDesignatedCost OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The path cost of the Designated Port of the + segment connected to this port. This value is + compared to the Root Path Cost field in received + bridge PDUs." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.5" + ::= { dot1dStpPortEntry 7 } + + dot1dStpPortDesignatedBridge OBJECT-TYPE + SYNTAX BridgeId + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Bridge Identifier of the bridge which this + port considers to be the Designated Bridge for + this port's segment." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.6" + ::= { dot1dStpPortEntry 8 } + + dot1dStpPortDesignatedPort OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Port Identifier of the port on the Designated + Bridge for this port's segment." + REFERENCE + "IEEE 802.1D-1990: Section 4.5.5.7" + ::= { dot1dStpPortEntry 9 } + + dot1dStpPortForwardTransitions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this port has transitioned + from the Learning state to the Forwarding state." + ::= { dot1dStpPortEntry 10 } + + -- the dot1dTp group + + -- Implementation of the dot1dTp group is optional. It is + -- implemented by those bridges that support the transparent + -- bridging mode. A transparent or SRT bridge will implement + -- this group. + + dot1dTpLearnedEntryDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of Forwarding Database entries, + which have been or would have been learnt, but + have been discarded due to a lack of space to + store them in the Forwarding Database. If this + counter is increasing, it indicates that the + Forwarding Database is regularly becoming full (a + condition which has unpleasant performance effects + on the subnetwork). If this counter has a + significant value but is not presently increasing, + it indicates that the problem has been occurring + but is not persistent." + REFERENCE + "IEEE 802.1D-1990: Section 6.7.1.1.3" + ::= { dot1dTp 1 } + + dot1dTpAgingTime OBJECT-TYPE + SYNTAX INTEGER (10..1000000) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The timeout period in seconds for aging out + dynamically learned forwarding information. + 802.1D-1990 recommends a default of 300 seconds." + REFERENCE + "IEEE 802.1D-1990: Section 6.7.1.1.3" + ::= { dot1dTp 2 } + + -- The Forwarding Database for Transparent Bridges + + dot1dTpFdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot1dTpFdbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table that contains information about unicast + entries for which the bridge has forwarding and/or + filtering information. This information is used + by the transparent bridging function in + determining how to propagate a received frame." + ::= { dot1dTp 3 } + + dot1dTpFdbEntry OBJECT-TYPE + SYNTAX Dot1dTpFdbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a specific unicast MAC address + for which the bridge has some forwarding and/or + filtering information." + INDEX { dot1dTpFdbAddress } + ::= { dot1dTpFdbTable 1 } + + Dot1dTpFdbEntry ::= + SEQUENCE { + dot1dTpFdbAddress + MacAddress, + dot1dTpFdbPort + INTEGER, + dot1dTpFdbStatus + INTEGER + } + + dot1dTpFdbAddress OBJECT-TYPE + SYNTAX MacAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unicast MAC address for which the bridge has + forwarding and/or filtering information." + REFERENCE + "IEEE 802.1D-1990: Section 3.9.1, 3.9.2" + ::= { dot1dTpFdbEntry 1 } + + dot1dTpFdbPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Either the value '0', or the port number of the + port on which a frame having a source address + equal to the value of the corresponding instance + of dot1dTpFdbAddress has been seen. A value of + '0' indicates that the port number has not been + learned but that the bridge does have some + forwarding/filtering information about this + address (e.g. in the dot1dStaticTable). + Implementors are encouraged to assign the port + value to this object whenever it is learned even + for addresses for which the corresponding value of + dot1dTpFdbStatus is not learned(3)." + ::= { dot1dTpFdbEntry 2 } + + dot1dTpFdbStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + invalid(2), + learned(3), + self(4), + mgmt(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of this entry. The meanings of the + values are: + + other(1) : none of the following. This would + include the case where some other + MIB object (not the corresponding + instance of dot1dTpFdbPort, nor an + entry in the dot1dStaticTable) is + being used to determine if and how + frames addressed to the value of + the corresponding instance of + dot1dTpFdbAddress are being + forwarded. + + invalid(2) : this entry is not longer valid + (e.g., it was learned but has since + aged-out), but has not yet been + flushed from the table. + + learned(3) : the value of the corresponding + instance of dot1dTpFdbPort was + learned, and is being used. + + self(4) : the value of the corresponding + instance of dot1dTpFdbAddress + represents one of the bridge's + addresses. The corresponding + instance of dot1dTpFdbPort + indicates which of the bridge's + ports has this address. + + mgmt(5) : the value of the corresponding + instance of dot1dTpFdbAddress is + also the value of an existing + instance of dot1dStaticAddress." + ::= { dot1dTpFdbEntry 3 } + + + -- Port Table for Transparent Bridges + + dot1dTpPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot1dTpPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table that contains information about every + port that is associated with this transparent + bridge." + ::= { dot1dTp 4 } + + dot1dTpPortEntry OBJECT-TYPE + SYNTAX Dot1dTpPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of information for each port of a + transparent bridge." + INDEX { dot1dTpPort } + ::= { dot1dTpPortTable 1 } + + Dot1dTpPortEntry ::= + SEQUENCE { + dot1dTpPort + INTEGER, + dot1dTpPortMaxInfo + INTEGER, + dot1dTpPortInFrames + Counter, + dot1dTpPortOutFrames + Counter, + dot1dTpPortInDiscards + Counter + } + + dot1dTpPort OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port number of the port for which this entry + contains Transparent bridging management + information." + ::= { dot1dTpPortEntry 1 } + + -- It would be nice if we could use ifMtu as the size of the + -- largest INFO field, but we can't because ifMtu is defined + -- to be the size that the (inter-)network layer can use which + -- can differ from the MAC layer (especially if several layers + -- of encapsulation are used). + + dot1dTpPortMaxInfo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum size of the INFO (non-MAC) field that + this port will receive or transmit." + ::= { dot1dTpPortEntry 2 } + + dot1dTpPortInFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of frames that have been received by + this port from its segment. Note that a frame + received on the interface corresponding to this + port is only counted by this object if and only if + it is for a protocol being processed by the local + bridging function, including bridge management + frames." + REFERENCE + "IEEE 802.1D-1990: Section 6.6.1.1.3" + ::= { dot1dTpPortEntry 3 } + + dot1dTpPortOutFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of frames that have been transmitted + by this port to its segment. Note that a frame + transmitted on the interface corresponding to this + port is only counted by this object if and only if + it is for a protocol being processed by the local + bridging function, including bridge management + frames." + REFERENCE + "IEEE 802.1D-1990: Section 6.6.1.1.3" + ::= { dot1dTpPortEntry 4 } + + dot1dTpPortInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of valid frames received which were + discarded (i.e., filtered) by the Forwarding + Process." + REFERENCE + "IEEE 802.1D-1990: Section 6.6.1.1.3" + ::= { dot1dTpPortEntry 5 } + + -- The Static (Destination-Address Filtering) Database + + -- Implementation of this group is optional. + + dot1dStaticTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot1dStaticEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing filtering information + configured into the bridge by (local or network) + management specifying the set of ports to which + frames received from specific ports and containing + specific destination addresses are allowed to be + forwarded. The value of zero in this table as the + port number from which frames with a specific + destination address are received, is used to + specify all ports for which there is no specific + entry in this table for that particular + destination address. Entries are valid for + unicast and for group/broadcast addresses." + REFERENCE + "IEEE 802.1D-1990: Section 6.7.2" + ::= { dot1dStatic 1 } + + dot1dStaticEntry OBJECT-TYPE + SYNTAX Dot1dStaticEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Filtering information configured into the bridge + by (local or network) management specifying the + set of ports to which frames received from a + specific port and containing a specific + destination address are allowed to be forwarded." + REFERENCE + "IEEE 802.1D-1990: Section 6.7.2" + + + INDEX { dot1dStaticAddress, dot1dStaticReceivePort } + ::= { dot1dStaticTable 1 } + + Dot1dStaticEntry ::= + SEQUENCE { + dot1dStaticAddress + MacAddress, + dot1dStaticReceivePort + INTEGER, + dot1dStaticAllowedToGoTo + OCTET STRING, + dot1dStaticStatus + INTEGER + } + + dot1dStaticAddress OBJECT-TYPE + SYNTAX MacAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The destination MAC address in a frame to which + this entry's filtering information applies. This + object can take the value of a unicast address, a + group address or the broadcast address." + REFERENCE + "IEEE 802.1D-1990: Section 3.9.1, 3.9.2" + ::= { dot1dStaticEntry 1 } + + dot1dStaticReceivePort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Either the value '0', or the port number of the + port from which a frame must be received in order + for this entry's filtering information to apply. + A value of zero indicates that this entry applies + on all ports of the bridge for which there is no + other applicable entry." + ::= { dot1dStaticEntry 2 } + + dot1dStaticAllowedToGoTo OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The set of ports to which frames received from a + specific port and destined for a specific MAC + address, are allowed to be forwarded. Each octet + within the value of this object specifies a set of + eight ports, with the first octet specifying ports + 1 through 8, the second octet specifying ports 9 + through 16, etc. Within each octet, the most + significant bit represents the lowest numbered + port, and the least significant bit represents the + highest numbered port. Thus, each port of the + bridge is represented by a single bit within the + value of this object. If that bit has a value of + '1' then that port is included in the set of + ports; the port is not included if its bit has a + value of '0'. (Note that the setting of the bit + corresponding to the port from which a frame is + received is irrelevant.) The default value of + this object is a string of ones of appropriate + length." + ::= { dot1dStaticEntry 3 } + + dot1dStaticStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + invalid(2), + permanent(3), + deleteOnReset(4), + deleteOnTimeout(5) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object indicates the status of this entry. + The default value is permanent(3). + + other(1) - this entry is currently in use but + the conditions under which it will + remain so are different from each of the + following values. + invalid(2) - writing this value to the object + removes the corresponding entry. + permanent(3) - this entry is currently in use + and will remain so after the next reset + of the bridge. + deleteOnReset(4) - this entry is currently in + use and will remain so until the next + reset of the bridge. + deleteOnTimeout(5) - this entry is currently + in use and will remain so until it is + aged out." + ::= { dot1dStaticEntry 4 } + + -- Traps for use by Bridges + + -- Traps for the Spanning Tree Protocol + + newRoot TRAP-TYPE + ENTERPRISE dot1dBridge + DESCRIPTION + "The newRoot trap indicates that the sending agent + has become the new root of the Spanning Tree; the + trap is sent by a bridge soon after its election + as the new root, e.g., upon expiration of the + Topology Change Timer immediately subsequent to + its election. Implementation of this trap is + optional." + ::= 1 + + topologyChange TRAP-TYPE + ENTERPRISE dot1dBridge + DESCRIPTION + "A topologyChange trap is sent by a bridge when + any of its configured ports transitions from the + Learning state to the Forwarding state, or from + the Forwarding state to the Blocking state. The + trap is not sent if a newRoot trap is sent for the + same transition. Implementation of this trap is + optional." + ::= 2 + +END diff --git a/pandora_console/attachment/mibs/CHARACTER-MIB b/pandora_console/attachment/mibs/CHARACTER-MIB new file mode 100644 index 0000000000..3d26ba7239 --- /dev/null +++ b/pandora_console/attachment/mibs/CHARACTER-MIB @@ -0,0 +1,667 @@ +-- Changes to RFC1658 - CHARACTER-MIB +-- Added IMPORT of TEXTUAL-CONVENTION macro. +-- Added IMPORT of DisplayString. +-- Removed unused IMPORT of NOTIFICATION-TYPE. +-- Removed unused IMPORT of transmission. +-- Need to add the following object-types to an object-group: +-- charPortInFlowType & charPortOutFlowType. +-- Syntax of object charSessConnectionId changed from +-- InstancePointer to OBJECT IDENTIFIER and import +-- of InstancePointer removed. +-- dperkins@scruznet.com + + CHARACTER-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + Counter32, Integer32, Gauge32, TimeTicks + FROM SNMPv2-SMI + AutonomousType, +-- InstancePointer, + DisplayString, TEXTUAL-CONVENTION + FROM SNMPv2-TC + InterfaceIndex + FROM IF-MIB + mib-2 + FROM RFC1213-MIB + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF; + + + char MODULE-IDENTITY + LAST-UPDATED "9405261700Z" + ORGANIZATION "IETF Character MIB Working Group" + CONTACT-INFO + " Bob Stewart + Postal: Xyplex, Inc. + 295 Foster Street + Littleton, MA 01460 + + Tel: 508-952-4816 + Fax: 508-952-4887 + + E-mail: rlstewart@eng.xyplex.com" + DESCRIPTION + "The MIB module for character stream devices." + ::= { mib-2 19 } + + PortIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A unique value, greater than zero, for each + character port in the managed system. It is + recommended that values are assigned contiguously + starting from 1. The value for each interface sub- + layer must remain constant at least from one re- + initialization of the entity's network management + system to the next re-initialization. + + In a system where the character ports are attached + to hardware represented by an ifIndex, it is + conventional, but not required, to make the + character port index equal to the corresponding + ifIndex." + SYNTAX Integer32 + + + -- Generic Character information + + charNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of entries in charPortTable, regardless + of their current state." + ::= { char 1 } + + + -- the Character Port table + + charPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF CharPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port entries. The number of entries is + given by the value of charNumber." + ::= { char 2 } + + charPortEntry OBJECT-TYPE + SYNTAX CharPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Status and parameter values for a character port." + INDEX { charPortIndex } + ::= { charPortTable 1 } + + CharPortEntry ::= + SEQUENCE { + charPortIndex + PortIndex, + charPortName + DisplayString, + charPortType + INTEGER, + charPortHardware + AutonomousType, + charPortReset + INTEGER, + charPortAdminStatus + INTEGER, + charPortOperStatus + INTEGER, + charPortLastChange + TimeTicks, + charPortInFlowType + INTEGER, + charPortOutFlowType + INTEGER, + charPortInFlowState + INTEGER, + charPortOutFlowState + INTEGER, + charPortInCharacters + Counter32, + charPortOutCharacters + Counter32, + charPortAdminOrigin + INTEGER, + charPortSessionMaximum + INTEGER, + charPortSessionNumber + Gauge32, + charPortSessionIndex + INTEGER, + charPortInFlowTypes + OCTET STRING, + charPortOutFlowTypes + OCTET STRING, + charPortLowerIfIndex + InterfaceIndex + } + + charPortIndex OBJECT-TYPE + SYNTAX PortIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each character port, perhaps + corresponding to the same value of ifIndex when the + character port is associated with a hardware port + represented by an ifIndex." + ::= { charPortEntry 1 } + + charPortName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An administratively assigned name for the port, + typically with some local significance." + ::= { charPortEntry 2 } + + charPortType OBJECT-TYPE + SYNTAX INTEGER { physical(1), virtual(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port's type, 'physical' if the port represents + an external hardware connector, 'virtual' if it does + not." + ::= { charPortEntry 3 } + + charPortHardware OBJECT-TYPE + SYNTAX AutonomousType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A reference to hardware MIB definitions specific to + a physical port's external connector. For example, + if the connector is RS-232, then the value of this + object refers to a MIB sub-tree defining objects + specific to RS-232. If an agent is not configured + to have such values, the agent returns the object + identifier: + + nullHardware OBJECT IDENTIFIER ::= { 0 0 } + " + ::= { charPortEntry 4 } + + charPortReset OBJECT-TYPE + SYNTAX INTEGER { ready(1), execute(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A control to force the port into a clean, initial + state, both hardware and software, disconnecting all + the port's existing sessions. In response to a + get-request or get-next-request, the agent always + returns 'ready' as the value. Setting the value to + 'execute' causes a reset." + ::= { charPortEntry 5 } + + charPortAdminStatus OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2), off(3), + maintenance(4) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's desired state, independent of flow + control. 'enabled' indicates that the port is + allowed to pass characters and form new sessions. + 'disabled' indicates that the port is allowed to + pass characters but not form new sessions. 'off' + indicates that the port is not allowed to pass + characters or have any sessions. 'maintenance' + indicates a maintenance mode, exclusive of normal + operation, such as running a test. + + 'enabled' corresponds to ifAdminStatus 'up'. + 'disabled' and 'off' correspond to ifAdminStatus + 'down'. 'maintenance' corresponds to ifAdminStatus + 'test'." + ::= { charPortEntry 6 } + + charPortOperStatus OBJECT-TYPE + SYNTAX INTEGER { up(1), down(2), + maintenance(3), absent(4), active(5) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port's actual, operational state, independent + of flow control. 'up' indicates able to function + normally. 'down' indicates inability to function + for administrative or operational reasons. + 'maintenance' indicates a maintenance mode, + exclusive of normal operation, such as running a + test. 'absent' indicates that port hardware is not + present. 'active' indicates up with a user present + (e.g. logged in). + + 'up' and 'active' correspond to ifOperStatus 'up'. + 'down' and 'absent' correspond to ifOperStatus + 'down'. 'maintenance' corresponds to ifOperStatus + 'test'." + ::= { charPortEntry 7 } + + charPortLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time the port entered + its current operational state. If the current state + was entered prior to the last reinitialization of + the local network management subsystem, then this + object contains a zero value." + ::= { charPortEntry 8 } + + -- charPortInFlowType is deprecated in favor of + -- charPortInFlowTypes + + charPortInFlowType OBJECT-TYPE + SYNTAX INTEGER { none(1), xonXoff(2), hardware(3), + ctsRts(4), dsrDtr(5) } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "The port's type of input flow control. 'none' + indicates no flow control at this level or below. + 'xonXoff' indicates software flow control by + recognizing XON and XOFF characters. 'hardware' + indicates flow control delegated to the lower level, + for example a parallel port. + + 'ctsRts' and 'dsrDtr' are specific to RS-232-like + ports. Although not architecturally pure, they are + included here for simplicity's sake." + ::= { charPortEntry 9 } + + + -- charPortOutFlowType is deprecated in favor of + -- charPortOutFlowTypes + + charPortOutFlowType OBJECT-TYPE + SYNTAX INTEGER { none(1), xonXoff(2), hardware(3), + ctsRts(4), dsrDtr(5) } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "The port's type of output flow control. 'none' + indicates no flow control at this level or below. + 'xonXoff' indicates software flow control by + recognizing XON and XOFF characters. 'hardware' + indicates flow control delegated to the lower level, + for example a parallel port. + + 'ctsRts' and 'dsrDtr' are specific to RS-232-like + ports. Although not architecturally pure, they are + included here for simplicy's sake." + ::= { charPortEntry 10 } + + charPortInFlowState OBJECT-TYPE + SYNTAX INTEGER { none(1), unknown(2), stop(3), go(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of input flow control + on the port. 'none' indicates not applicable. + 'unknown' indicates this level does not know. + 'stop' indicates flow not allowed. 'go' indicates + flow allowed." + ::= { charPortEntry 11 } + + charPortOutFlowState OBJECT-TYPE + SYNTAX INTEGER { none(1), unknown(2), stop(3), go(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of output flow + control on the port. 'none' indicates not + applicable. 'unknown' indicates this level does not + know. 'stop' indicates flow not allowed. 'go' + indicates flow allowed." + ::= { charPortEntry 12 } + + charPortInCharacters OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of characters detected as input from + the port since system re-initialization and while + the port operational state was 'up', 'active', or + 'maintenance', including, for example, framing, flow + control (i.e. XON and XOFF), each occurrence of a + BREAK condition, locally-processed input, and input + sent to all sessions." + ::= { charPortEntry 13 } + + charPortOutCharacters OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of characters detected as output to + the port since system re-initialization and while + the port operational state was 'up', 'active', or + 'maintenance', including, for example, framing, flow + control (i.e. XON and XOFF), each occurrence of a + BREAK condition, locally-created output, and output + received from all sessions." + ::= { charPortEntry 14 } + + charPortAdminOrigin OBJECT-TYPE + SYNTAX INTEGER { dynamic(1), network(2), local(3), + none(4) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The administratively allowed origin for + establishing session on the port. 'dynamic' allows + 'network' or 'local' session establishment. 'none' + disallows session establishment." + ::= { charPortEntry 15 } + + charPortSessionMaximum OBJECT-TYPE + SYNTAX INTEGER (-1..2147483647) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of concurrent sessions allowed + on the port. A value of -1 indicates no maximum. + Setting the maximum to less than the current number + of sessions has unspecified results." + ::= { charPortEntry 16 } + + charPortSessionNumber OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open sessions on the port that are in + the connecting, connected, or disconnecting state." + ::= { charPortEntry 17 } + + charPortSessionIndex OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of charSessIndex for the port's first or + only active session. If the port has no active + session, the agent returns the value zero." + ::= { charPortEntry 18 } + + charPortInFlowTypes OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (1)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's types of input flow control at the + software level. Hardware-level flow control is + independently controlled by the appropriate + hardware-level MIB. + + A value of zero indicates no flow control. + Depending on the specific implementation, any or + all combinations of flow control may be chosen by + adding the values: + + 128 xonXoff, recognizing XON and XOFF characters + 64 enqHost, ENQ/ACK to allow input to host + 32 enqTerm, ACK to allow output to port + " + ::= { charPortEntry 19 } + + charPortOutFlowTypes OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (1)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's types of output flow control at the + software level. Hardware-level flow control is + independently controlled by the appropriate + hardware-level MIB. + + A value of zero indicates no flow control. + Depending on the specific implementation, any or + all combinations of flow control may be chosen by + adding the values: + + 128 xonXoff, recognizing XON and XOFF characters + 64 enqHost, ENQ/ACK to allow input to host + 32 enqTerm, ACK to allow output to port + " + ::= { charPortEntry 20 } + + charPortLowerIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ifIndex value of the lower level hardware supporting + this character port, zero if none." + ::= { charPortEntry 21 } + + + -- the Character Session table + + charSessTable OBJECT-TYPE + SYNTAX SEQUENCE OF CharSessEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port session entries." + ::= { char 3 } + + charSessEntry OBJECT-TYPE + SYNTAX CharSessEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Status and parameter values for a character port + session." + INDEX { charSessPortIndex, charSessIndex } + ::= { charSessTable 1 } + + CharSessEntry ::= + SEQUENCE { + charSessPortIndex + PortIndex, + charSessIndex + INTEGER, + charSessKill + INTEGER, + charSessState + INTEGER, + charSessProtocol + AutonomousType, + charSessOperOrigin + INTEGER, + charSessInCharacters + Counter32, + charSessOutCharacters + Counter32, + charSessConnectionId +-- InstancePointer, + OBJECT IDENTIFIER, + charSessStartTime + TimeTicks + } + + charSessPortIndex OBJECT-TYPE + SYNTAX PortIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of charPortIndex for the port to which + this session belongs." + ::= { charSessEntry 1 } + + charSessIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The session index in the context of the port, a + non-zero positive integer. Session indexes within a + port need not be sequential. Session indexes may be + reused for different ports. For example, port 1 and + port 3 may both have a session 2 at the same time. + Session indexes may have any valid integer value, + with any meaning convenient to the agent + implementation." + ::= { charSessEntry 2 } + + charSessKill OBJECT-TYPE + SYNTAX INTEGER { ready(1), execute(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A control to terminate the session. In response to + a get-request or get-next-request, the agent always + returns 'ready' as the value. Setting the value to + 'execute' causes termination." + ::= { charSessEntry 3 } + + charSessState OBJECT-TYPE + SYNTAX INTEGER { connecting(1), connected(2), + disconnecting(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of the session, + disregarding flow control. 'connected' indicates + that character data could flow on the network side + of session. 'connecting' indicates moving from + nonexistent toward 'connected'. 'disconnecting' + indicates moving from 'connected' or 'connecting' to + nonexistent." + ::= { charSessEntry 4 } + + charSessProtocol OBJECT-TYPE + SYNTAX AutonomousType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network protocol over which the session is + running. Other OBJECT IDENTIFIER values may be + defined elsewhere, in association with specific + protocols. However, this document assigns those of + known interest as of this writing." + ::= { charSessEntry 5 } + + wellKnownProtocols OBJECT IDENTIFIER ::= { char 4 } + + protocolOther OBJECT IDENTIFIER ::= { wellKnownProtocols 1 } + protocolTelnet OBJECT IDENTIFIER ::= { wellKnownProtocols 2 } + protocolRlogin OBJECT IDENTIFIER ::= { wellKnownProtocols 3 } + protocolLat OBJECT IDENTIFIER ::= { wellKnownProtocols 4 } + protocolX29 OBJECT IDENTIFIER ::= { wellKnownProtocols 5 } + protocolVtp OBJECT IDENTIFIER ::= { wellKnownProtocols 6 } + + + charSessOperOrigin OBJECT-TYPE + SYNTAX INTEGER { unknown(1), network(2), local(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The session's source of establishment." + ::= { charSessEntry 6 } + + charSessInCharacters OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This session's subset of charPortInCharacters." + ::= { charSessEntry 7 } + + charSessOutCharacters OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This session's subset of charPortOutCharacters." + ::= { charSessEntry 8 } + + charSessConnectionId OBJECT-TYPE +-- SYNTAX InstancePointer + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A reference to additional local MIB information. + This should be the highest available related MIB, + corresponding to charSessProtocol, such as Telnet. + For example, the value for a TCP connection (in the + absence of a Telnet MIB) is the object identifier of + tcpConnState. If an agent is not configured to have + such values, the agent returns the object + identifier: + + nullConnectionId OBJECT IDENTIFIER ::= { 0 0 } + " + ::= { charSessEntry 9 } + + charSessStartTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime in MIB-2 when the session + entered connecting state." + ::= { charSessEntry 10 } + + + -- conformance information + + charConformance OBJECT IDENTIFIER ::= { char 5 } + + charGroups OBJECT IDENTIFIER ::= { charConformance 1 } + charCompliances OBJECT IDENTIFIER ::= { charConformance 2 } + + + -- compliance statements + + charCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities + which have Character hardware interfaces." + + MODULE -- this module + MANDATORY-GROUPS { charGroup } + ::= { charCompliances 1 } + + + -- units of conformance + + charGroup OBJECT-GROUP + OBJECTS { charNumber, charPortIndex, charPortName, + charPortType, charPortHardware, charPortReset, + charPortAdminStatus, charPortOperStatus, + charPortLastChange, + charPortInFlowState, charPortOutFlowState, + charPortAdminOrigin, charPortSessionMaximum, + charPortInFlowTypes, charPortOutFlowTypes, + charPortInCharacters, charPortOutCharacters, + charPortSessionNumber, charPortSessionIndex, + charPortLowerIfIndex, + charSessPortIndex, charSessIndex, + charSessKill, charSessState, + charSessProtocol, charSessOperOrigin, + charSessInCharacters, charSessOutCharacters, + charSessConnectionId, charSessStartTime } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to all Character interfaces." + ::= { charGroups 1 } + + END + diff --git a/pandora_console/attachment/mibs/CISCO-C2900-MIB.mib b/pandora_console/attachment/mibs/CISCO-C2900-MIB.mib new file mode 100644 index 0000000000..ce0e4fafca --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-C2900-MIB.mib @@ -0,0 +1,2081 @@ +-- ***************************************************************** +-- Cisco C2900 MIB +-- +-- September, 1997 Tricia Shueh +-- +-- Copyright (c) 1996-1999, 2000, 2001, 2002 by cisco Systems, Inc. +-- All rights reserved. +-- ***************************************************************** +-- + +CISCO-C2900-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + Counter32, Gauge32, Integer32 + FROM SNMPv2-SMI + DateAndTime, TruthValue + FROM SNMPv2-TC + InterfaceIndex + FROM IF-MIB + ciscoMgmt + FROM CISCO-SMI + DisplayString, sysName + FROM RFC1213-MIB + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF; + +ciscoC2900MIB MODULE-IDENTITY + LAST-UPDATED "200205300000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + "Postal: Cisco Systems, Inc. + 170 West Tasman Drive + San Jose, CA 95134-1706 + USA + + Tel: +1 800 553-NETS + + E-mail: switchsnmp@cisco.com" + DESCRIPTION + "The MIB module for Catalyst 2900 enterprise specific information" + + REVISION "200205300000Z" + DESCRIPTION + "Added the c2900PortAddrSecureAgingTime, + c2900PortAddrSecureAgingType and + c2900PortAddrSecureAgingStatic + MIB objects to port entry and port group; + Also added c2900NotificationsGroup and + c2900PortStatsGroupRev1 object." + + REVISION "200107251345Z" + DESCRIPTION + "Added the c2900PortVoiceVlanId + MIB object to port group." + + REVISION "9909240000Z" + DESCRIPTION + "Modified the description for the c2900InfoSelfTestFailed object + so that the bits of the self-test bit array are explained." + + REVISION "9908240000Z" + DESCRIPTION + "Modified the description for the c2900InfoSelfTestFailed object + so that the bits of the self-test bit array are explained." + + REVISION "9905200000Z" + DESCRIPTION + "Added enumerated values to c2900ModuleType for: + ATM modules + VLAN-trunking 10/100 Ethernet modules + Gigabit Ethernet module + + Added one enumerated value to c2900PortAdminSpeed + to describe ATM 155.52 Mbps speed." + + REVISION "9806080000Z" + DESCRIPTION + "Added the c2900PortSpantreeFast MIB object to port group." + + + REVISION "9804300000Z" + DESCRIPTION + "Added the c2900PortNoMonitorDestinationPort MIB object + to remove a port from the monitored list. + + Added c2900Portdot1dBasePort to C2900PortEntry. + + Removed enumerated value securityDynamic(3) from the + MIB object c2900PortUsageApplication" + + ::= { ciscoMgmt 87 } + +c2900MIBObjects OBJECT IDENTIFIER ::= { ciscoC2900MIB 1 } + +-- MIB groups + +c2900SysInfo OBJECT IDENTIFIER ::= { c2900MIBObjects 1 } +c2900SysConfig OBJECT IDENTIFIER ::= { c2900MIBObjects 2 } +c2900Port OBJECT IDENTIFIER ::= { c2900MIBObjects 4 } +c2900BandwidthUsage OBJECT IDENTIFIER ::= { c2900MIBObjects 5 } + +-- +-- General System Information +-- + +c2900InfoBoardRevision OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Returns the revision number of the main board + on which the FastSwitch firmware resides." + ::= { c2900SysInfo 1 } + +c2900InfoPeakBuffersUsed OBJECT-TYPE + SYNTAX Gauge32 + UNITS "buffers" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of 64-byte buffers used in the + main switch buffer pool." + ::= { c2900SysInfo 2} + +c2900InfoTotalBufferDepth OBJECT-TYPE + SYNTAX Gauge32 + UNITS "buffers" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "It represents the total number of 64-byte buffers + in the Ethernet Controller." + ::= { c2900SysInfo 3} + +c2900InfoAddrCapacity OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system-wide maximum number of MAC addresses + supported in the address table, a primary + resource when forwarding frames through a bridge. + The address table is dynamically updated with new + learned addresses inserted and aged addresses removed. + The address capacity represented by this object includes + dynamic, secure, and static address types. + + To ensure optimal performance, the number of MAC addresses + in the bridged local area network to which this bridge is + connected should be less than the value of this object. + + The system administrator can refer to this object + for the number of MAC addresses suppored by this box." + ::= { c2900SysInfo 4 } + +c2900InfoRestrictedStaticAddrCapacity OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system-wide maximum number of static addresses + supported. A static address is one that has explicit + source port filtering information assigned. + + This number limits the static table's entries configured by user." + REFERENCE "IEEE 802.1D-1990: Section 6.7.2" + ::= { c2900SysInfo 5 } + +c2900InfoSelfTestFailed OBJECT-TYPE +-- +-- +-- SYNTAX BITS { +-- systemBoard(0), +-- cpuBuffer(1), +-- ram(2), +-- helpEngineAsic(3), +-- dataBuffer(4), +-- bufferTable(5), +-- switchEngineAsic(6), +-- ethernetFrontEnd(7) +-- } + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A bit array where the presence of a particular bit + indicates a failure of a specific Power On Self Test. + Bit 0 - System Board Failure + Bit 1 - CPU Buffer Failure + Bit 2 - Notify RAM Failure + Bit 3 - Supervisor ASIC Failure + Bit 4 - Data Buffer Failure + Bit 5 - Buffer Table Failure + Bit 6 - Satellite ASIC Failure + Bit 7 - Front End Failure" + ::= { c2900SysInfo 6 } + +c2900InfoUtilDisplay OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of utilization meter LEDs currently + lit on the front panel, if the value of + c2900InfoVisualIndicatorMode is selected as + utilization(4). More LEDs are lit + as more total bandwidth through the switch + is being utilized. + + The percentage of the utilization is calculated as follows: + the number of LEDs lit/the total number of LEDs. + + The total number of the LEDs is twenty four for c2900 switch. + + c2900InfoVisualIndicatorMode is utilization(4). If the value of + c2900InfoVisualIndicatorMode is not utilization(4), the value of + the object will be zero." + ::= { c2900SysInfo 7 } + +c2900InfoVisualIndicatorMode OBJECT-TYPE + SYNTAX INTEGER { + portStatus(1), + fullDuplex(2), + linkRate(3), + utilization(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object reflects what is currently selected + as the visual indication mode, selected by the + mode button. + + The portStatus(1) mode uses the visual LEDS + to indicate port link status. + + The fullDuplex(2) mode uses the visual LEDS + to indicate that a port is running with full + duplex or half duplex or no link status. + + The linkRate(3) mode uses the visual LEDS to + indicate the rate of operation on a port: + 100 MBPS or 10 MBPS or no link. + + The utilization(4) mode uses the visual LEDS to + indicate the utiliztion of the system as more total + bandwidth through the switch is being utilized, + more LED's are lit." + ::= { c2900SysInfo 8} + +c2900InfoRedunantPowerSupplyInfo OBJECT-TYPE + SYNTAX INTEGER { + absent(1), + connectedFunctional(2), + connectedNotFunctional(3), + functionalPrimaryFailed(4) + } + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The switch allows a redundant power supply in addition + to its local power supply. Only one power source can be + supplying power to a unit. + + absent(1) :the redundant power supply is not connected + to the switch. + + connectedFunctional(2) : the redundant power supply is + connected to the switch and operational. + + connectedNotFunctional(3): the redundant power supply + is connected to the switch, but cannot supply + power to the system. + + functionalPrimaryFailed(4): the redundant power supply + is installed, powered on, and operational, + but a failure exists in the local power + supply system." + ::= { c2900SysInfo 9 } + +c2900InfoBoardIdentifier OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Returns the identifier of the main board + on which the FastSwitch firmware resides." + ::= { c2900SysInfo 10 } + +-- +-- General System Configurations +-- + +c2900ConfigAddressViolationAction OBJECT-TYPE + SYNTAX INTEGER { + doNothing(1), + disablePort(2), + sendNotify(3), + disablePortAndNotify(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "Indicates what action to take when an address violation + (an address mismatch or duplication) occurs on a + secure port. The default action is to do nothing. + + doNothing(1) : do nothing + disablePort(2) : disable port; the port can only be reenabled + by an explicit management action. + sendNotify(3) : generate address violation notification. + disablePortAndNotify(4): disable port and send notification. + + Default value: doNothing(1). + + This object is deprecated. A separate object + c2900PortAddressViolationAction is defined for each port." + ::= { c2900SysConfig 1 } + +c2900ConfigBroadcastStormAlarm OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "When set to true(1), the switch will generate + a broadcastStorm notification upon detecting a port is + receiving broadcast packets at a rate higher than + or equal to the specified broadcast threshold. + When set to false(2), no such trap will be issued. + Default value: false(2). + + This object is deprecated. A separate object + c2900PortBroadcastStormAlarm is defined for each port." + ::= { c2900SysConfig 2 } + +-- +-- Module Information of c2900 switch. +-- + +c2900ModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF C2900ModuleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of module entries." + ::= { c2900MIBObjects 3 } + +c2900ModuleEntry OBJECT-TYPE + SYNTAX C2900ModuleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing status information about one module in + the c2900 chassis." + INDEX { c2900ModuleIndex } + ::= { c2900ModuleTable 1 } + +C2900ModuleEntry ::= + SEQUENCE { + c2900ModuleIndex + Integer32, + c2900ModuleStatus + INTEGER, + c2900ModuleType + INTEGER, + c2900ModuleHwVersion + DisplayString, + c2900ModuleSwVersion + DisplayString + } + +c2900ModuleIndex OBJECT-TYPE + SYNTAX Integer32(1..64) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Module index into c2900ModuleTable ." + ::= { c2900ModuleEntry 1 } + +c2900ModuleStatus OBJECT-TYPE + SYNTAX INTEGER { + moduleNotInstalled(1), + moduleInTest(2), + moduleHealthy(3), + moduleFaulty(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The overall status of of the module." + ::= { c2900ModuleEntry 2 } + +c2900ModuleType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + empty(2), -- nothing installed + + -- the following modules are for WS-C2900 + wsx2914xl(3), -- 4 port 10/100 TX + wsx2922xl(4), -- 2 port 10/100 FX + atm155SMLRFiber (5), -- single mode long reach + atm155SMMRFiber (6), -- single mode medium reach + atm155MMFiber (7), -- multi mode fiber + atm155UTP (8), -- unshielded twisted pair + wsx2914xlv (9), -- VLAN-trunking 4 port 10/100 TX + wsx2922xlv (10), -- VLAN-trunking 2 port 10/100 FX + wsx2924xlv (11), -- VLAN-trunking 4 port 10/100 FX + wsx2931xl (12), -- 1 port Gigabit Ethernet + wsx2932xl (13) -- 1 port Gigabit Ethernet(Copper) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of module installed in malibu switch." + ::= { c2900ModuleEntry 3 } + +c2900ModuleHwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..12)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The hardware version of the module. The format + of the version string x.y.z where x,y, and z + are hardware register field values." + ::= { c2900ModuleEntry 4 } + +c2900ModuleSwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..40)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The software version of the module." + ::= { c2900ModuleEntry 5 } + +-- +-- switch Port Table +-- + +c2900PortTable OBJECT-TYPE + SYNTAX SEQUENCE OF C2900PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port entries. The number of entries is + determined by the number of modules in the chassis + and the number of ports on each module." + ::= { c2900Port 1 } + +c2900PortEntry OBJECT-TYPE + SYNTAX C2900PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entry containing information for a particular + switched port on a module installed. The entries + are not created or deleted by management commands." + INDEX { c2900PortModuleIndex, c2900PortIndex } + ::= { c2900PortTable 1 } + +C2900PortEntry ::= SEQUENCE { + c2900PortModuleIndex Integer32, + c2900PortIndex Integer32, + c2900PortUsageApplication INTEGER, + c2900PortGroupIndex Integer32, + c2900PortMayLearnAddress TruthValue, -- DEPRECATED OBJECT + c2900PortMayForwardFrames TruthValue, + c2900PortBufferCongestionControl TruthValue, -- DEPRECATED OBJECT + c2900PortBufferCongestionThreshholdPercent Integer32, + c2900PortFrameAge Integer32, + c2900PortAddrSecureMaxAddresses Integer32, + c2900PortAddrSecureCurrentAddresses Gauge32, + c2900PortAddrSecureAddrViolations Counter32, + c2900PortNumberOfLearnedAddresses Counter32, + c2900PortNumberOfDroppedAddresses Counter32, + c2900PortClearAddresses TruthValue, + c2900PortFloodUnknownMulticasts TruthValue, + c2900PortFloodUnknownUnicasts TruthValue, + c2900PortLinkbeatStatus INTEGER, + c2900PortBroadcastStormAction INTEGER, + c2900PortBroadcastRisingThreshold Gauge32, + c2900PortBroadcastFallingThreshold Gauge32, + c2900PortStatus INTEGER, + c2900PortTestResult TruthValue, + c2900PortVisualIndicator INTEGER, + c2900PortIfIndex InterfaceIndex, + c2900PortAddressViolationAction INTEGER, + c2900PortBroadcastStormAlarm TruthValue, + c2900PortMonitorDestinationPort Integer32, + c2900PortSwitchPortIndex Integer32, + c2900PortMonitoredPortMap OCTET STRING, + c2900PortDuplexState INTEGER, + c2900PortDuplexStatus INTEGER, + c2900PortAdminSpeed INTEGER, + c2900PortNoMonitorDestinationPort Integer32, + c2900Portdot1dBasePort Integer32, + c2900PortSpantreeFastStart INTEGER, + c2900PortVoiceVlanId INTEGER, + c2900PortAddrSecureAgingTime Integer32, + c2900PortAddrSecureAgingType INTEGER, + c2900PortAddrSecureAgingStatic TruthValue + } + +c2900PortModuleIndex OBJECT-TYPE + SYNTAX Integer32 (0..64) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An index value that uniquely identifies the module + where this port is located. The value is determined + by the chassis slot number into which the module is + plugged." + ::= { c2900PortEntry 1 } + +c2900PortIndex OBJECT-TYPE + SYNTAX Integer32 (1..64) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An index value that uniquely identifies this port + within a module." + ::= { c2900PortEntry 2 } + +c2900PortUsageApplication OBJECT-TYPE + SYNTAX INTEGER { + standard(1), -- standard port usage + security(2), -- secured port usage + monitor(3), -- monitor usage + portGrouping(4), -- fast EtherChannel usage + network(5), -- network port usage + networkGroup(6), -- network port group usage + portGroupDest(7), -- destination addr FEC + protected(8) -- protected port usage + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object indicates how the port is to be used. + The variable usage applications are shown above. + These applications are defined such that they + are mutually exclusive. In other words, a port + using the security(2) application cannot also + use the monitor(3) application at the same time. + + The default usage is standard(1), or no special + behavior (the port behaves as normal + switched port). + + The security(2) usage adds addressing security + to the port, whereby all learned addresses are + secure address. + + The monitor(3) usage provides network diagnosis + by reflecting traffic on other ports to this port. + + The portGrouping(4) application treats this and other ports in + the same group as one(inter-switch) connection for more + bandwidth potential. When the c2900PortUsageApplication is + portGrouping, the c2900PortGroupIndex is set to the index + value of the port group. The source address of a received frame + is used to determine on which port within the group the frame + should be transmitted. + + The network(5) usage saves address table space when the port + is used as the link to a large network with many MAC addresses + by disabling address learning on the port and allowing + unknown unicasts packets received on other ports of the vlan + the port associated with to be forwarded only to the port. + + The networkGroup(6) usage treates this and other + ports in the same group as a network port group. All ports in + port are network ports in the sense that address learning is + disabled on them and unknown unicast packets received on other + ports of the vlan are forwarded to the group. + + The portGroupDest(7) application treats this and other ports in + the same group as one(inter-switch) connection for more + bandwidth potential. When the c2900PortUsageApplication is + portGroupDest, the c2900PortGroupIndex is set to the index + value of the port group. The destination address of a received + frame is used to determine on which port within the group the + frame should be transmitted. + + The protected(8) application does not forward any traffic to other + protected ports. It does not forward all kinds of unicast, multicast + and broadcast traffic to any other protected port. The protected + ports, however, forward traffic normally to non-protected ports and + vice versa." + DEFVAL { standard } + ::= { c2900PortEntry 3} + +c2900PortGroupIndex OBJECT-TYPE + SYNTAX Integer32 (1..12) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object is meaningful only when the + corresponding c2900PortUsageApplication is portGrouping. + Ports assigned with the same value of c2900PortGroupIndex + belong to the same connection channel." + ::= { c2900PortEntry 4} + +c2900PortMayLearnAddress OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This object reflects an internal state of the port + with regard to its ability to learn new addresses. + Certain port configurations such as learning time + limit, security usage, etc., and some Spanning + Tree Protocol states can temporarily prohibit the + port from learning. This object is true(1) if the + port is allowed to learn. It is false(2) otherwise. + + Setting this object to true(1) will fail, + if the port is not in normal state. + + This object is deprecated." + DEFVAL { true } + ::= { c2900PortEntry 5} + +c2900PortMayForwardFrames OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object reflects an internal state of the port + with regard to its ability to forward frames. + A port sometimes stops forwarding frames when it + is blocked by the Spanning Tree Protocol, or + while it is undergoing temporary load balancing + as part of the port grouping usage. + This object is true(1) if the port is allowed to + forward frames. It is false(2) otherwise. + + Setting this object to true(1) will fail, + if the port is in the middle of being blocked by the Spanning Tree + Protocol, or while it is undergoing temporary load balancing + as part of the port grouping usage. + + This object is only supported for static VLAN access ports." + DEFVAL { true } + ::= { c2900PortEntry 6} + +c2900PortBufferCongestionControl OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Seting this object to true(1) allows the switch + to run its buffer congestion control algorithm on the + port. Setting the object to false(2) disallows + such control. The buffer congestion control algorithm + is summarized in the description of + the c2900PortBufferCongestionThresholdPercent below. + + This object is deprecated" + ::= { c2900PortEntry 7} + +c2900PortBufferCongestionThreshholdPercent OBJECT-TYPE + SYNTAX Integer32 (1..99) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port buffer congestion threshold provides an early + warning to the switch that the port is about to + exhaust all its guaranteed buffers, leading to congestion. + This threshold is expressed as a percentage of the port's + total guaranteed buffer depth. Once this threshold has + been crossed, the switch begins colliding with frames + received on the port for a fixed period of time. + After this time has expired, the switch determines + whether the port's buffer congestion has been alleviated. + If this situation has not changed, the switch resumes + this congestion control algorithm on the port." + ::= { c2900PortEntry 8} + +c2900PortFrameAge OBJECT-TYPE + SYNTAX Integer32 (50..4000) + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The aging interval in milliseconds after + which old frames queued for transmission on this + port are discarded." + REFERENCE "Section 4.2 IEEE802.1D-1993" + DEFVAL { 1000 } + ::= { c2900PortEntry 9} + +c2900PortAddrSecureMaxAddresses OBJECT-TYPE + SYNTAX Integer32 (1..132) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of secure addresses that can + be learned on this port when it is a secure port. + This number should be always higher than + c2900PortAddrSecureCurrentAddresses" + ::= { c2900PortEntry 10} + +c2900PortAddrSecureCurrentAddresses OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of statically assigned + unicast addresses on the port." + ::= { c2900PortEntry 11} + +c2900PortAddrSecureAddrViolations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times a source address was + seen on this port which duplicates a secured + address configured on another port, + plus the number of times a source address was + seen on this port which does not match any + addresses secured for the port." + ::= { c2900PortEntry 12} + +c2900PortNumberOfLearnedAddresses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of dynamically learned + addresses on the port." + ::= { c2900PortEntry 13} + +c2900PortNumberOfDroppedAddresses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an address could not be learned + or assigned for the port because its address table + was full at one time." + ::= { c2900PortEntry 14} + +c2900PortClearAddresses OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to true(1) to delete all learned and assigned + dynamic, static and secure unicast addresses the + port currently has. Setting the object to false(2) + has no effect. This object always returns false(2) + when read." + ::= { c2900PortEntry 15} + +c2900PortFloodUnknownMulticasts OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to true(1) to allow forwarding to this + port frames addressed to multicast addresses + that have not been configured for the port. + Set to false(2) to filter and discard such frames." + DEFVAL { true } + ::= { c2900PortEntry 16} + +c2900PortFloodUnknownUnicasts OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object controls the forwarding of unknown + unicast frames to this port. When set to true(1), + the switch will, upon receiving a frame with an + unknown unicast destination address from + another port, transmit the frame to this port. + When set to false(2), switch will filter + and not transmit said frames to this port. + Default value: false(2) for ports using + the security or monitor application; + true(1) for all other usage applications." + ::= { c2900PortEntry 17} + +c2900PortLinkbeatStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + linkbeat(2), + nolinkbeat(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object depends on the physical layer in use + and indicates the current port linkbeat status: + if the physical link between two devices is + properly connected or not. + If the value is linkbeat(1), there is linkbeat. + If the value is nolinkbeat(2), there is no linkbeat. + If the value is unknown(3), the information is not + available." + ::= { c2900PortEntry 18} + +c2900PortBroadcastStormAction OBJECT-TYPE + SYNTAX INTEGER { stopBroadcastForwarding(1), + forwardBroadcast(2), + disablePort(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates what action to take when the broadcast + rising threshold for a port is reached. + The default action is to forwardBroadcast(2) as usual + for all broadcast frames received from the port. The + other action is to stopBroadcastForwarding(1) frames + until the broadcast reception rate falls to + or below the falling threshold. + The port can also be shutdown in the event of a + broadcast storm with the action disablePort(3)." + + DEFVAL { forwardBroadcast } + ::= { c2900PortEntry 19} + +c2900PortBroadcastRisingThreshold OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The broadcast rising threshold is measured in the number + of broadcast frames received on a port in a second. + + When the number of broadcast frames received per + second on this port crosses this threshold, + the appropriate action as specified by the object + c2900PortBroadcastStormAction will take place. + See the description of c2900PortBroadcastStormAction." + DEFVAL { 500 } + ::= { c2900PortEntry 20} + +c2900PortBroadcastFallingThreshold OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The broadcast falling threshold is measured in number of + broadcast frames received on a port in a second. + + When the falling threshold is crossed and the + c2900PortBroadcastStormAction was stopBroadcastForwarding(1) + then broadcast forwarding will be re-enabled on the port. + For the other values of c2900PortBroadcastStormAction, + crossing the falling threshold has no affect." + DEFVAL { 250 } + ::= { c2900PortEntry 21} + +c2900PortStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + blocking(3), + listening(4), + learning(5), + preforwarding(6), + forwarding(7), + secureforwarding(8), + suspended(9), + broken(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port's current state as defined by application + of the Spanning Tree Protocol. This state controls + what action a port takes on reception of a frame. + If the switch has detected a port that is + malfunctioning it will place that port into the + broken(10) state. For ports which are + disabled(see dot1dStpPortEnable), this object will + have a value of disabled(2). + Since the switch implements three + additional states which are not part of IEEE Standard, + these additional states are possible values for + c2900PortStaus. The additional states are preforwarding(6), + secureforwarding(8), and suspended(9). Note: except + for these additional states, this object is the same + as the dot1dStpPortState object. + Default value: blocking(2). + + This object is only supported for static VLAN access ports." + REFERENCE "Section 4.5.5.2 IEEE802.1D-1990" + DEFVAL { blocking } + ::= {c2900PortEntry 22} + +c2900PortTestResult OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates if the port passed power on self test or not. + If the value of this object is true(1), the port passed test. + If the value of this object is false(2), the port failed test." + ::= { c2900PortEntry 23 } + +c2900PortVisualIndicator OBJECT-TYPE + SYNTAX INTEGER { + notused(1), + black(2), + amber(3), + green(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is used to indicate the current color of + a LED. If a LED is flashing, the value of this object will + represent the color of the LED at that instant in time. + The following conventions indicate port status: + Link healthy returns green(4) + Link activity usually green(4), but may return black(2). + Link faulty alternating green(4)/amber(3) + Port disabled returns amber(3)" + ::= { c2900PortEntry 24 } + +c2900PortIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the instance of the ifIndex object, + defined in MIB-II, for the interface corresponding + to this port." + ::= { c2900PortEntry 25 } + +c2900PortAddressViolationAction OBJECT-TYPE + SYNTAX INTEGER { + doNothing(1), + disablePort(2), + sendNotify(3), + disablePortAndNotify(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates what action to take when an address violation + (an address mismatch or duplication) occurs on a + secure port. The default action is to do nothing. + + doNothing(1) : do nothing + disablePort(2) : disable port; the port can only be reenabled + by an explicit management action. + sendNotify(3) : generate address violation notification. + disablePortAndNotify(4): disable port and send notification." + DEFVAL { doNothing } + ::= { c2900PortEntry 26 } + +c2900PortBroadcastStormAlarm OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "When set to true(1), the switch will generate + a broadcastStorm notification upon detecting a port is + receiving broadcast packets at a rate higher than + or equal to the threshold specified by + c2900PortBroadcastRisingThreshold. + When set to false(2), no such trap will be issued. + Default value: false(2). + c2900PortBroadcastStormAlarm is defined for each port." + DEFVAL { false } + ::= { c2900PortEntry 27 } + +c2900PortMonitorDestinationPort OBJECT-TYPE + SYNTAX Integer32 (0..64) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Switch Port (c2900PortSwitchPortIndex) index value of the port + that is to be monitored by this port. A value of zero can't be + used to do set, it is used to return when this object is read. + + To remove a port from the monitored list use the object + c2900PortNoMonitorDestinationPort." + ::= { c2900PortEntry 28 } + +c2900PortSwitchPortIndex OBJECT-TYPE + SYNTAX Integer32 (1..64) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Switch port index of a port is a value that uniquely + identifies the port within a switch. This is obtained + from the port index (c2900PortIndex) and the module + index (c2900PortModuleIndex)." + ::= { c2900PortEntry 29 } + +c2900PortMonitoredPortMap OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates which ports are actually being monitored. + The octet string contains one bit per port. Each bit + within the octet string represents one port of the device. + The ordering of ports represented within the octet string + is in the same order as in the RFC 1493 dot1dStaticAllowedToGoTo + in the dot1dStaticTable. + + The bit value interpretation is as follows: + 1 = being monitored + 0 = not being monitored" + ::= { c2900PortEntry 30 } + +c2900PortDuplexState OBJECT-TYPE + SYNTAX INTEGER { + fullduplex(1), + halfduplex(2), + autoNegotiate(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to fullduplex(1) to operate in full duplex mode, port + will allow simultaneous transmit and receive which can + double its bandwidth. + + Set to halfduplex(2) to operate in half duplex mode. + + Set to autoNegotiate(3) to allow the switch to negoti- + ate with the other end of the connection. + + The status of duplex mode on a port is available with + c2900PortDuplexStatus object." + DEFVAL { autoNegotiate } + ::= { c2900PortEntry 31 } + +c2900PortDuplexStatus OBJECT-TYPE + SYNTAX INTEGER { + fullduplex(1), + halfduplex(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of duplex mode on this port. + + When linkbeat is not present, halfduplex is always + reported. + + When linkbeat is present, the result of full duplex + auto-negotiation is reported if c2900PortDuplexState is + set to auto-negotiate, otherwise it reports fullduplex + if c2900PortDuplexState is set to fullduplex or + halfduplex if c2900PortDuplexState is set to + halfduplex." + ::= { c2900PortEntry 32 } + +c2900PortAdminSpeed OBJECT-TYPE + SYNTAX INTEGER { + autoDetect(1), + s10000000(10000000), -- 10 Mbps + s100000000(100000000), -- 100 Mbps + s155520000(155520000) -- ATM 155.52 Mbps + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The object controls the speed of the port. + The current operational speed of the port can be + determined from ifSpeed." + DEFVAL { autoDetect } + ::= { c2900PortEntry 33 } + +c2900PortNoMonitorDestinationPort OBJECT-TYPE + SYNTAX Integer32 (0..64) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Switch Port (c2900PortSwitchPortIndex) index value of the port + that is to be removed from the monitored list. A value of zero + can't be used to do set, it is used to return when this object + is read. + + To add a port to the monitored list use the object + c2900PortMonitorDestinationPort." + ::= { c2900PortEntry 34 } + +c2900Portdot1dBasePort OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the dot1dBasePort associated with this port." + ::= { c2900PortEntry 35} + + c2900PortSpantreeFastStart OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether the port is operating in spantree + fast start mode. A port with fast start enabled is + immediately put in spanning tree forwarding state on + link up, rather than starting in blocking state which + is the normal operation. This is useful when the port + is known to be connected to a single station which + has problems waiting for the normal spanning tree + operation to put the port in forwarding state." + DEFVAL { disabled } + ::= { c2900PortEntry 36 } + +c2900PortVoiceVlanId OBJECT-TYPE + SYNTAX INTEGER ( 0|1..1000|4095|4096 ) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The Voice Virtual Vlan ID (VVID) to which this + port belongs to. + If the VVID is not supported on the port, this MIB + object will not be configurable and will return + 4096. + + Setting this MIB object to 4096, the CDP packets + transmitting through this port would not include + Appliance VLAN-ID TLV. + + Setting this MIB object to 4095, the CDP packets + transmitting through this port would contain + Appliance VLAN-ID TLV with value of 4095 - VoIP + and related packets are expected to be sent and + received untagged without an 802.1p priority. + + Setting this MIB object to 0, the CDP packets + transmitting through this port would contain + Appliance VLAN-ID TLV with value of 0 - VoIP + and related packets are expected to be sent and + received with VLAN-id=0 and an 802.1p priority. + + Setting this MIB object to N (1..1000), the CDP + packets transmitting through this port would + contain Appliance VLAN-ID TLV with N - VoIP and + related packets are expected to be sent and received + with VLAN-id=N and an 802.1p priority." + ::= { c2900PortEntry 37 } + +c2900PortAddrSecureAgingTime OBJECT-TYPE + SYNTAX Integer32 (0..1440) + UNITS "minutes" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The aging interval in minutes for each secure address + entry on a given port. Depending on the type of aging + the secure address will age out after the expiration + of the aging time and will be removed from the + secure address list. + + Any change in the value of this object will restart + the aging for all the secure addresses on this port. + + If the value of this object is 0 for a given + port, the aging mechanism is disabled for this + port." + DEFVAL { 0 } + ::= { c2900PortEntry 38 } + +c2900PortAddrSecureAgingType OBJECT-TYPE + SYNTAX INTEGER { absolute(1), inactivity(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "If the value of this object on a given port is + + absolute - all the secure addresses on this + port will age out exactly after the aging + time configured for this port. + + inactivity - the secure addresses on this port + will age out only if there is no data traffic + from the given secure source address for a + time period specified by aging time. + + Any change in the value of this object will restart + the aging for all the secure addresses on this port. + + The value of this object is not effective when the + value of c2900PortAddrSecureAgingTime is 0." + DEFVAL { absolute } + ::= { c2900PortEntry 39 } + +c2900PortAddrSecureAgingStatic OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to true(1) to enable aging for statically + configured secure addresses on one port. Disable + the aging for statically configured secure + addresses if set to false(2). + + Any change in the value of this object will restart + the aging for all the configured secure addresses on + this port. + + The value of this object is not effective when the + value of c2900PortAddrSecureAgingTime is 0." + DEFVAL { false } + ::= { c2900PortEntry 40 } + +-- +-- The switch Port Statistics Table +-- + +c2900PortStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF C2900PortStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port entries. The number of entries is + determined by the number of modules in the chassis + and the number of ports on each module." + ::= { c2900Port 2 } + +c2900PortStatsEntry OBJECT-TYPE + SYNTAX C2900PortStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entry containing information for a particular + switched port on a module installed. The entry + cannot be created or deleted." + INDEX { c2900PortModuleIndex, c2900PortIndex } + ::= { c2900PortStatsTable 1 } + +C2900PortStatsEntry ::= SEQUENCE { + c2900PortRxNoBwFrames Counter32, + c2900PortRxNoBufferFrames Counter32, + c2900PortRxNoDestUniFrames Counter32, + c2900PortRxNoDestMultiFrames Counter32, + c2900PortRxSuppressBcastFrames Counter32, -- DEPRECATED OBJECT + c2900PortRxFcsErrFrames Counter32, + c2900PortCollFragFrames Counter32, + c2900PortTxMulticastFrames Counter32, + c2900PortTxBroadcastFrames Counter32 +} + +c2900PortRxNoBwFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A count of frames received on this port that were discarded + due to a lack of bandwidth resources in the Catalyst Switch + forwarding engine." + ::= { c2900PortStatsEntry 1 } + +c2900PortRxNoBufferFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A count of frames received that were discarded due + to a lack of frame buffer resources in the Catalyst Switch + forwarding engine." + ::= { c2900PortStatsEntry 2 } + +c2900PortRxNoDestUniFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A count of unicast frames received that were discarded, + because the forwarding rules stipulate that they are + not be forwarded." + ::= { c2900PortStatsEntry 3 } + +c2900PortRxNoDestMultiFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A count of multicast frames received that were discarded, + because they have not been configured for the port." + ::= { c2900PortStatsEntry 4 } + +c2900PortRxSuppressBcastFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A count of broadcast frames received that were discarded + because of the threshold-based broadcast suppression. + + This object is deprecated, because there is no way that the + Malibu system to give the brodcast_supress frames" + ::= { c2900PortStatsEntry 5 } + +c2900PortRxFcsErrFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of frames received with FCS errors. + This total includes all frames received with an FCS + error and an integral number of bytes. + Unlike RFC1650's dot3StatsFCSErrors, + this object does not include frames which are less + than the minimum packet size (such as collision fragments)." + ::= { c2900PortStatsEntry 6 } + +c2900PortCollFragFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of frames whose lengths are less than + 64 and have bad FCS values. + The preamble and sfd fields are excluded from the byte + count of a frame while the FCS field is included." + ::= { c2900PortStatsEntry 7 } + +c2900PortTxMulticastFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A count of frames that are successfully transmitted and + are directed to a multicast address. + Unlike RFC1573's ifOutMulticastPkts, this object does not + include those that were discarded or not sent." + ::= { c2900PortStatsEntry 8 } + +c2900PortTxBroadcastFrames OBJECT-TYPE + SYNTAX Counter32 + UNITS "frames" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A count of frames that are successfully transmitted and + are directed to the broadcast address. + Unlike RFC1573's ifOutBroadcastPkts, this object does + not include those that were discarded or not sent." + ::= { c2900PortStatsEntry 9 } + +-- +-- Bandwidth Usage Information +-- + +c2900BandwidthUsageCurrent OBJECT-TYPE + SYNTAX Gauge32 + UNITS "megabits per second" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current bandwidth consumed. The measurement unit is + in megabits per second (1,000,000 bits/second). + This value gives a reasonable estimate of the amount of + traffic currently flowing through the switch. + + It is calculated as follows: + + Octets*8 + Frames*(96 + 64) + --------------------------- + Measurement Interval * 1,000,000 * 2 + + Where: + Measurement Interval is the amount of time over which + the Octets and Frames were collected, in seconds. + + Measurement Interval is always one second in current + implementation. + + Octets is the total number of octets transmitted + or received by all network interfaces, excluding + framing data but including FCS. This includes octets + in frames which were partially transmitted or + received (due to collisions, for example). + + Frames is the total number of frames transmitted + or received by all network interfaces, including + frames with errors. + + The number of frames is multiplied by 96 plus 64 in + order to estimate the delay between each frame for + Ethernet's IPG and preamble/SFD. + + The '2' in the divisor makes this a forwarding bandwidth + counter. A frame received on one interface is typically + forwarded out another interface. In order to avoid double- + counting this frame's bandwidth, once on the receiving + interface and once on the transmitting interface, the + total bandwidth is divided by two. + Since multicast and broadcast frames can be sent to multiple + ports, the above is at best a lower bound." + ::= { c2900BandwidthUsage 1 } + +c2900BandwidthUsageMaxPeakEntries OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of entries c2900BandwidthUsagePeakTable + can have." + ::= { c2900BandwidthUsage 2 } + +c2900BandwidthUsagePeakInterval OBJECT-TYPE + SYNTAX INTEGER { onehour(1),threehours(3),sixhours(6), + twelvehours(12),oneday(24),twodays(48), + threedays(72),fourdays(96),fivedays(120), + sixdays(144),oneweek(168) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object specifies the length of time + which forms a peak bandwidth measurement interval. + + A write to this object with any new value + restarts the peak bandwidth recording interval used + by bandwidthUsagePeakTable. + + In other words, the bandwidthUsagePeakTable + will be cleared and entry number one will record + the peak with a new measurement interval." + DEFVAL { oneday } + ::= { c2900BandwidthUsage 3 } + +c2900BandwidthUsagePeakRestart OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to true(1) to clear the c2900BandwidthUsagePeakTable + and restart the peak bandwidth recording. + No action will be taken if this object is set + to false(2). This object returns false(2) + when read." + ::= { c2900BandwidthUsage 4 } + +c2900BandwidthUsageCurrentPeakEntry OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value identifying an instance of the + c2900BandwidthUsagePeakIndex where the + peak bandwidth estimation is most recent." + ::= { c2900BandwidthUsage 5 } + +c2900BandwidthUsagePeakTable OBJECT-TYPE + SYNTAX SEQUENCE OF C2900BandwidthUsagePeakEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of entries containing peak bandwidth usages in + a number of recording interval. + + After being cleared, entries are added to the + bandwidthUsagePeakTable with ascending values of + c2900BandwidthUsagePeakIndex starting at 1. When the number of + entries reaches c2900BandwidthUsageMaxPeakEntries, + each new recording interval is assigned the value of + c2900BandwidthUsagePeakIndex corresponding to the oldest entry, + overwriting the previous contents of that entry." + ::= { c2900BandwidthUsage 6 } + +c2900BandwidthUsagePeakEntry OBJECT-TYPE + SYNTAX C2900BandwidthUsagePeakEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about peak bandwidth usage in a recording interval." + INDEX { c2900BandwidthUsagePeakIndex } + ::= { c2900BandwidthUsagePeakTable 1 } + +C2900BandwidthUsagePeakEntry ::= + SEQUENCE { + c2900BandwidthUsagePeakIndex + Integer32, + c2900BandwidthUsageStartTime + DateAndTime, + c2900BandwidthUsagePeak + Gauge32, + c2900BandwidthUsagePeakTime + DateAndTime + } + +c2900BandwidthUsagePeakIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number from one to c2900BandwidthUsageMaxPeakEntries + identifying a particular c2900BandwithUsagePeakEntry." + ::= { c2900BandwidthUsagePeakEntry 1 } + +c2900BandwidthUsageStartTime OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time that marks the start of this recording interval." + ::= { c2900BandwidthUsagePeakEntry 2 } + +c2900BandwidthUsagePeak OBJECT-TYPE + SYNTAX Gauge32 + UNITS "megabits per second" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum bandwidth usage of any measurement interval + within this recording interval. + + This value is an estimate of the highest amount of + traffic flowing through the switch during this + recording interval. + + It is calculated as follows: + + Octets*8 + Frames*(96 + 64) + --------------------------- + Measurement Interval * 1,000,000 * 2 + + Where: + Measurement Interval is the amount of time over which + the Octets and Frames were collected, in seconds. + + Measurement Interval is always one second in c2900's + implementation. + + Octets is the total number of octets transmitted + or received by all network interfaces, excluding + framing data but including FCS. This includes octets + in frames which were partially transmitted or + received (due to collisions, for example). + + Frames is the total number of frames transmitted + or received by all network interfaces, including + frames with errors. + + The number of frames is multiplied by 96 plus 64 in + order to estimate the delay between each frame for + Ethernet's IPG and preamble/SFD. + + The '2' in the divisor makes this a forwarding bandwidth + counter. A frame received on one interface is typically + forwarded out another interface. In order to avoid double- + counting this frame's bandwidth, once on the receiving + interface and once on the transmitting interface, the + total bandwidth is divided by two. + Since multicast and broadcast frames can be sent to multiple + ports, the above is at best a lower bound." + ::= { c2900BandwidthUsagePeakEntry 3 } + +c2900BandwidthUsagePeakTime OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The start time of the measurement interval." + ::= { c2900BandwidthUsagePeakEntry 4 } + +-- +-- C a t a l y s t N O T I F I C A T I O N S +-- + +c2900MibNotifications OBJECT IDENTIFIER ::= { ciscoC2900MIB 2 } +c2900MibNotificationsPrefix + OBJECT IDENTIFIER ::= { c2900MibNotifications 0 } + +c2900AddressViolation NOTIFICATION-TYPE + OBJECTS {c2900PortIfIndex} + STATUS current + DESCRIPTION + "The addressViolation notification is generated + when an address violation is detected + on a secured port. The generation of the + addressViolation notification can be enabled + or suppressed using the object + c2900ConfigAddressViolationAction. + The particular secured port is indicated by + the value of c2900PortIfIndex." + ::= { c2900MibNotificationsPrefix 1 } + +c2900BroadcastStorm NOTIFICATION-TYPE + OBJECTS {c2900PortBroadcastRisingThreshold} + STATUS current + DESCRIPTION + "The broadcastStorm notification is generated + upon detecting a port is receiving + broadcast packets at a rate crossing + the specified broadcast threshold. + This trap is only for the rising threshold. + The particular port is indicated by the values of + c2900PortModuleIndex and c2900PortIndex, and the + value of the threshold is given by + c2900PortBroadcastRisingThreshold." + ::= { c2900MibNotificationsPrefix 2 } + +c2900RpsFailed NOTIFICATION-TYPE + OBJECTS {sysName} + STATUS current + DESCRIPTION + "A redundant power system (RPS) is connected to the + switch. The RpsFailed notification is generated + upon detecting RPS failure." + ::= { c2900MibNotificationsPrefix 3 } + +-- +-- C o n f o r m a n c e +-- + +-- conformance information + +c2900MIBConformance OBJECT IDENTIFIER ::= { ciscoC2900MIB 3 } +c2900MIBCompliances OBJECT IDENTIFIER ::= { c2900MIBConformance 1 } +c2900MIBGroups OBJECT IDENTIFIER ::= { c2900MIBConformance 2 } + +-- compliance statements + +c2900MIBCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for all c2900 switch." + MODULE -- this module + MANDATORY-GROUPS { c2900SysInfoGroup, + c2900SysConfigGroup, + c2900PortGroup, + c2900BandwidthUsageGroup + } + ::= { c2900MIBCompliances 1 } + +c2900MIBComplianceSA3 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for all c2900 switch." + MODULE -- this module + MANDATORY-GROUPS { c2900SysInfoGroup, + c2900ModuleGroup, + c2900BandwidthUsageGroup, + c2900PortGroupSA3, + c2900PortStatsGroupSA3 + } + ::= { c2900MIBCompliances 3 } + +c2900MIBComplianceSA5 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for all c2900 switch." + MODULE -- this module + MANDATORY-GROUPS { c2900SysInfoGroup, + c2900ModuleGroup, + c2900BandwidthUsageGroup, + c2900PortGroupSA5 + } + ::= { c2900MIBCompliances 2 } + +c2900MIBComplianceSA7 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for all c2900 switch." + MODULE -- this module + MANDATORY-GROUPS { c2900SysInfoGroup, + c2900ModuleGroup, + c2900BandwidthUsageGroup, + c2900PortGroupSA7 + } + ::= { c2900MIBCompliances 4 } + + +c2900MIBComplianceWC2 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for all c2900 switch." + MODULE -- this module + MANDATORY-GROUPS { c2900SysInfoGroup, + c2900ModuleGroup, + c2900BandwidthUsageGroup, + c2900PortGroupWC2 + } + ::= { c2900MIBCompliances 5 } + +c2900MIBComplianceWC4 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for all c2900 switch." + MODULE -- this module + MANDATORY-GROUPS { c2900SysInfoGroup, + c2900ModuleGroup, + c2900BandwidthUsageGroup, + c2900PortGroupWC4, + c2900NotificationsGroup + } + GROUP c2900PortStatsGroupRev1 + DESCRIPTION + "This group is optional." + + ::= { c2900MIBCompliances 6 } + +-- Units of Conformance + +c2900SysInfoGroup OBJECT-GROUP + OBJECTS { + c2900InfoBoardRevision, + c2900InfoPeakBuffersUsed, + c2900InfoTotalBufferDepth, + c2900InfoAddrCapacity, + c2900InfoRestrictedStaticAddrCapacity, + c2900InfoSelfTestFailed, + c2900InfoUtilDisplay, + c2900InfoVisualIndicatorMode, + c2900InfoRedunantPowerSupplyInfo, + c2900InfoBoardIdentifier + } + STATUS current + DESCRIPTION + "The collection of objects which are used to provide + the general switch information." + ::= { c2900MIBGroups 1 } + +c2900SysConfigGroup OBJECT-GROUP + OBJECTS { + c2900ConfigAddressViolationAction, -- DEPRECATED OBJECT + c2900ConfigBroadcastStormAlarm -- DEPRECATED OBJECT + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to configure + the switch." + ::= { c2900MIBGroups 2 } + +c2900ModuleGroup OBJECT-GROUP + OBJECTS { + c2900ModuleStatus, + c2900ModuleType, + c2900ModuleHwVersion, + c2900ModuleSwVersion + } + STATUS current + DESCRIPTION + "The object is used to provide the module status." + ::= { c2900MIBGroups 3 } + +c2900PortGroup OBJECT-GROUP + OBJECTS { + c2900PortUsageApplication, + c2900PortGroupIndex, + c2900PortMayLearnAddress, -- DEPRECATED OBJECT + c2900PortMayForwardFrames, + c2900PortBufferCongestionControl, -- DEPRECATED OBJECT + c2900PortBufferCongestionThreshholdPercent, + c2900PortFrameAge, + c2900PortAddrSecureMaxAddresses, + c2900PortAddrSecureCurrentAddresses, + c2900PortAddrSecureAddrViolations, + c2900PortNumberOfLearnedAddresses, + c2900PortNumberOfDroppedAddresses, + c2900PortClearAddresses, + c2900PortFloodUnknownMulticasts, + c2900PortFloodUnknownUnicasts, + c2900PortLinkbeatStatus, + c2900PortBroadcastStormAction, + c2900PortBroadcastRisingThreshold, + c2900PortBroadcastFallingThreshold, + c2900PortStatus, + c2900PortTestResult, + c2900PortVisualIndicator, + c2900PortIfIndex, + c2900PortAddressViolationAction, + c2900PortBroadcastStormAlarm, + c2900PortMonitorDestinationPort, + c2900PortSwitchPortIndex, + c2900PortMonitoredPortMap, + c2900PortDuplexState, + c2900PortDuplexStatus, + c2900PortAdminSpeed, + c2900PortNoMonitorDestinationPort + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to + provide port status and configuration." + ::= { c2900MIBGroups 4 } + +c2900PortStatsGroup OBJECT-GROUP + OBJECTS { + c2900PortRxNoBwFrames, + c2900PortRxNoBufferFrames, + c2900PortRxNoDestUniFrames, + c2900PortRxNoDestMultiFrames, + c2900PortRxSuppressBcastFrames, -- DEPRECATED OBJECT + c2900PortRxFcsErrFrames, + c2900PortCollFragFrames, + c2900PortTxMulticastFrames, + c2900PortTxBroadcastFrames + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to + provide port stats." + ::= { c2900MIBGroups 5 } + +c2900BandwidthUsageGroup OBJECT-GROUP + OBJECTS { + c2900BandwidthUsageCurrent, + c2900BandwidthUsageMaxPeakEntries, + c2900BandwidthUsagePeakInterval, + c2900BandwidthUsagePeakRestart, + c2900BandwidthUsagePeakIndex, + c2900BandwidthUsageStartTime, + c2900BandwidthUsagePeak, + c2900BandwidthUsagePeakTime, + c2900BandwidthUsageCurrentPeakEntry + } + STATUS current + DESCRIPTION + "The collection of objects which are used to + provide the bandwidth information." + ::= { c2900MIBGroups 6 } + +c2900PortGroupSA3 OBJECT-GROUP + OBJECTS { + c2900PortUsageApplication, + c2900PortGroupIndex, + c2900PortMayLearnAddress, + c2900PortMayForwardFrames, + c2900PortBufferCongestionThreshholdPercent, + c2900PortFrameAge, + c2900PortAddrSecureMaxAddresses, + c2900PortAddrSecureCurrentAddresses, + c2900PortAddrSecureAddrViolations, + c2900PortNumberOfLearnedAddresses, + c2900PortNumberOfDroppedAddresses, + c2900PortClearAddresses, + c2900PortFloodUnknownMulticasts, + c2900PortFloodUnknownUnicasts, + c2900PortLinkbeatStatus, + c2900PortBroadcastStormAction, + c2900PortBroadcastRisingThreshold, + c2900PortBroadcastFallingThreshold, + c2900PortStatus, + c2900PortTestResult, + c2900PortVisualIndicator, + c2900PortIfIndex, + c2900PortAddressViolationAction, + c2900PortBroadcastStormAlarm, + c2900PortMonitorDestinationPort, + c2900PortSwitchPortIndex, + c2900PortMonitoredPortMap, + c2900PortDuplexState, + c2900PortDuplexStatus, + c2900PortAdminSpeed, + c2900PortNoMonitorDestinationPort + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to + provide port status and configuration." + ::= { c2900MIBGroups 7 } + +c2900PortStatsGroupSA3 OBJECT-GROUP + OBJECTS { + c2900PortRxNoBwFrames, + c2900PortRxNoBufferFrames, + c2900PortRxNoDestUniFrames, + c2900PortRxNoDestMultiFrames, + c2900PortRxFcsErrFrames, + c2900PortCollFragFrames, + c2900PortTxMulticastFrames, + c2900PortTxBroadcastFrames + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to + provide port stats." + ::= { c2900MIBGroups 8 } + +c2900PortGroupSA5 OBJECT-GROUP + OBJECTS { + c2900PortUsageApplication, + c2900PortGroupIndex, + c2900PortMayForwardFrames, + c2900PortBufferCongestionThreshholdPercent, + c2900PortFrameAge, + c2900PortAddrSecureMaxAddresses, + c2900PortAddrSecureCurrentAddresses, + c2900PortAddrSecureAddrViolations, + c2900PortNumberOfLearnedAddresses, + c2900PortNumberOfDroppedAddresses, + c2900PortClearAddresses, + c2900PortFloodUnknownMulticasts, + c2900PortFloodUnknownUnicasts, + c2900PortLinkbeatStatus, + c2900PortBroadcastStormAction, + c2900PortBroadcastRisingThreshold, + c2900PortBroadcastFallingThreshold, + c2900PortStatus, + c2900PortTestResult, + c2900PortVisualIndicator, + c2900PortIfIndex, + c2900PortAddressViolationAction, + c2900PortBroadcastStormAlarm, + c2900PortMonitorDestinationPort, + c2900PortSwitchPortIndex, + c2900PortMonitoredPortMap, + c2900PortDuplexState, + c2900PortDuplexStatus, + c2900PortAdminSpeed, + c2900PortNoMonitorDestinationPort, + c2900Portdot1dBasePort + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to + provide port status and configuration." + ::= { c2900MIBGroups 9 } + +c2900PortGroupSA7 OBJECT-GROUP + OBJECTS { + c2900PortUsageApplication, + c2900PortGroupIndex, + c2900PortMayForwardFrames, + c2900PortBufferCongestionThreshholdPercent, + c2900PortFrameAge, + c2900PortAddrSecureMaxAddresses, + c2900PortAddrSecureCurrentAddresses, + c2900PortAddrSecureAddrViolations, + c2900PortNumberOfLearnedAddresses, + c2900PortNumberOfDroppedAddresses, + c2900PortClearAddresses, + c2900PortFloodUnknownMulticasts, + c2900PortFloodUnknownUnicasts, + c2900PortLinkbeatStatus, + c2900PortBroadcastStormAction, + c2900PortBroadcastRisingThreshold, + c2900PortBroadcastFallingThreshold, + c2900PortStatus, + c2900PortTestResult, + c2900PortVisualIndicator, + c2900PortIfIndex, + c2900PortAddressViolationAction, + c2900PortBroadcastStormAlarm, + c2900PortMonitorDestinationPort, + c2900PortSwitchPortIndex, + c2900PortMonitoredPortMap, + c2900PortDuplexState, + c2900PortDuplexStatus, + c2900PortAdminSpeed, + c2900PortNoMonitorDestinationPort, + c2900Portdot1dBasePort, + c2900PortSpantreeFastStart + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to + provide port status and configuration." + ::= { c2900MIBGroups 10 } + +c2900PortGroupWC2 OBJECT-GROUP + OBJECTS { + c2900PortUsageApplication, + c2900PortGroupIndex, + c2900PortMayForwardFrames, + c2900PortBufferCongestionThreshholdPercent, + c2900PortFrameAge, + c2900PortAddrSecureMaxAddresses, + c2900PortAddrSecureCurrentAddresses, + c2900PortAddrSecureAddrViolations, + c2900PortNumberOfLearnedAddresses, + c2900PortNumberOfDroppedAddresses, + c2900PortClearAddresses, + c2900PortFloodUnknownMulticasts, + c2900PortFloodUnknownUnicasts, + c2900PortLinkbeatStatus, + c2900PortBroadcastStormAction, + c2900PortBroadcastRisingThreshold, + c2900PortBroadcastFallingThreshold, + c2900PortStatus, + c2900PortTestResult, + c2900PortVisualIndicator, + c2900PortIfIndex, + c2900PortAddressViolationAction, + c2900PortBroadcastStormAlarm, + c2900PortMonitorDestinationPort, + c2900PortSwitchPortIndex, + c2900PortMonitoredPortMap, + c2900PortDuplexState, + c2900PortDuplexStatus, + c2900PortAdminSpeed, + c2900PortNoMonitorDestinationPort, + c2900Portdot1dBasePort, + c2900PortSpantreeFastStart, + c2900PortVoiceVlanId + } + STATUS deprecated + DESCRIPTION + "The collection of objects which are used to + provide port status and configuration, includes + voice vlan id." + ::= { c2900MIBGroups 11 } + +c2900PortGroupWC4 OBJECT-GROUP + OBJECTS { + c2900PortUsageApplication, + c2900PortGroupIndex, + c2900PortMayForwardFrames, + c2900PortBufferCongestionThreshholdPercent, + c2900PortFrameAge, + c2900PortAddrSecureMaxAddresses, + c2900PortAddrSecureCurrentAddresses, + c2900PortAddrSecureAddrViolations, + c2900PortNumberOfLearnedAddresses, + c2900PortNumberOfDroppedAddresses, + c2900PortClearAddresses, + c2900PortFloodUnknownMulticasts, + c2900PortFloodUnknownUnicasts, + c2900PortLinkbeatStatus, + c2900PortBroadcastStormAction, + c2900PortBroadcastRisingThreshold, + c2900PortBroadcastFallingThreshold, + c2900PortStatus, + c2900PortTestResult, + c2900PortVisualIndicator, + c2900PortIfIndex, + c2900PortAddressViolationAction, + c2900PortBroadcastStormAlarm, + c2900PortMonitorDestinationPort, + c2900PortSwitchPortIndex, + c2900PortMonitoredPortMap, + c2900PortDuplexState, + c2900PortDuplexStatus, + c2900PortAdminSpeed, + c2900PortNoMonitorDestinationPort, + c2900Portdot1dBasePort, + c2900PortSpantreeFastStart, + c2900PortVoiceVlanId, + c2900PortAddrSecureAgingTime, + c2900PortAddrSecureAgingType, + c2900PortAddrSecureAgingStatic + } + STATUS current + DESCRIPTION + "The collection of objects which are used to + provide port status and configuration, includes + voice vlan id and port-security aging." + ::= { c2900MIBGroups 12 } + +c2900NotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { + c2900AddressViolation, + c2900BroadcastStorm, + c2900RpsFailed + } + STATUS current + DESCRIPTION + "The set of notifications provided by c2900 device." + ::= { c2900MIBGroups 13 } + +c2900PortStatsGroupRev1 OBJECT-GROUP + OBJECTS { + c2900PortRxNoBwFrames, + c2900PortRxNoBufferFrames, + c2900PortRxNoDestUniFrames, + c2900PortRxNoDestMultiFrames, + c2900PortRxFcsErrFrames, + c2900PortCollFragFrames, + c2900PortTxMulticastFrames, + c2900PortTxBroadcastFrames + } + STATUS current + DESCRIPTION + "The collection of objects which are used to + provide port stats." + ::= { c2900MIBGroups 14 } + +END + diff --git a/pandora_console/attachment/mibs/CISCO-CDP-MIB b/pandora_console/attachment/mibs/CISCO-CDP-MIB new file mode 100644 index 0000000000..27bdba1342 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-CDP-MIB @@ -0,0 +1,828 @@ +-- ***************************************************************** +-- CISCO-CDP-MIB.my: CDP MIB file +-- +-- Oct 1994, Arun Sastry +-- November 2001, Edward Pham +-- +-- Copyright (c) 1994-1998, 1999, 2001 by cisco Systems, Inc. +-- All rights reserved. +-- ***************************************************************** +-- +CISCO-CDP-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + Integer32 + FROM SNMPv2-SMI + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF + TruthValue, DisplayString, TimeStamp + FROM SNMPv2-TC + ciscoMgmt + FROM CISCO-SMI + CiscoNetworkProtocol, CiscoNetworkAddress, Unsigned32 + FROM CISCO-TC + VlanIndex + FROM CISCO-VTP-MIB + ifIndex + FROM IF-MIB + ; + +ciscoCdpMIB MODULE-IDENTITY + LAST-UPDATED "200111230000Z" + ORGANIZATION "Cisco System Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 West Tasman Drive, + San Jose CA 95134-1706. + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "The MIB module for management of the Cisco Discovery + Protocol in Cisco devices." + REVISION "200111230000Z" + DESCRIPTION + "Added cdpInterfaceExtTable which contains the following + objects: + cdpInterfaceExtendedTrust, + cdpInterfaceCosForUntrustedPort." + REVISION "200104230000Z" + DESCRIPTION + "Added the following objects: + cdpGlobalDeviceIdFormatCpb, + cdpGlobalDeviceIdFormat." + REVISION "200011220000Z" + DESCRIPTION + "Added the following objects: + cdpCacheApplianceID, + cdpCacheVlanID, + cdpCachePowerConsumption, + cdpCacheMTU, + cdpCachePrimaryMgmtAddrType, + cdpCachePrimaryMgmtAddr, + cdpCacheSecondaryMgmtAddrType, + cdpCacheSecondaryMgmtAddr, + cdpCacheLastChange, + cdpCachePhysLocation, + cdpCacheSysName, + cdpCacheSysObjectID, + cdpGlobalLastChange" + REVISION "9812100000Z" + DESCRIPTION + "Added cdpGlobalDeviceId object." + REVISION "9809160000Z" + DESCRIPTION + "added these objects to cdpCacheTable: + cdpCacheVTPMgmtDomain, + cdpCacheNativeVLAN, + cdpCacheDuplex. + " + REVISION "9607080000Z" + DESCRIPTION + "Obsolete cdpInterfaceMessageInterval and newly + define cdpGlobal object." + REVISION "9508150000Z" + DESCRIPTION + "Specify a correct (non-negative) range for several + index objects." + REVISION "9507270000Z" + DESCRIPTION + "Correct range of cdpInterfaceMessageInterval." + REVISION "9501250000Z" + DESCRIPTION + "Move from ciscoExperiment to ciscoMgmt oid subtree." + ::= { ciscoMgmt 23 } + + +ciscoCdpMIBObjects OBJECT IDENTIFIER ::= { ciscoCdpMIB 1 } + +cdpInterface OBJECT IDENTIFIER ::= { ciscoCdpMIBObjects 1 } +cdpCache OBJECT IDENTIFIER ::= { ciscoCdpMIBObjects 2 } +cdpGlobal OBJECT IDENTIFIER ::= { ciscoCdpMIBObjects 3 } + +-- +-- The CDP Interface Group +-- +cdpInterfaceTable OBJECT-TYPE + SYNTAX SEQUENCE OF CdpInterfaceEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The (conceptual) table containing the status of CDP on + the device's interfaces." + ::= { cdpInterface 1 } + +cdpInterfaceEntry OBJECT-TYPE + SYNTAX CdpInterfaceEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry (conceptual row) in the cdpInterfaceTable, + containing the status of CDP on an interface." + INDEX { cdpInterfaceIfIndex } + ::= { cdpInterfaceTable 1 } + +CdpInterfaceEntry ::= SEQUENCE { + cdpInterfaceIfIndex Integer32, + cdpInterfaceEnable TruthValue, + cdpInterfaceMessageInterval INTEGER, + cdpInterfaceGroup Integer32, + cdpInterfacePort Integer32 +} + +cdpInterfaceIfIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The ifIndex value of the local interface. + + For 802.3 Repeaters on which the repeater ports do not + have ifIndex values assigned, this value is a unique + value for the port, and greater than any ifIndex value + supported by the repeater; in this case, the specific + port is indicated by corresponding values of + cdpInterfaceGroup and cdpInterfacePort, where these + values correspond to the group number and port number + values of RFC 1516." + ::= { cdpInterfaceEntry 1 } + +cdpInterfaceEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An indication of whether the Cisco Discovery Protocol + is currently running on this interface. This variable + has no effect when CDP is disabled (cdpGlobalRun = FALSE)." + ::= { cdpInterfaceEntry 2 } + +cdpInterfaceMessageInterval OBJECT-TYPE + SYNTAX INTEGER (5..254) + UNITS "seconds" + MAX-ACCESS read-write + STATUS obsolete -- replaced by cdpGlobalMessageInterval + -- this object should be applied to the + -- whole system instead of per interface + DESCRIPTION + "The interval at which CDP messages are to be generated + on this interface. The default value is 60 seconds." + ::= { cdpInterfaceEntry 3 } + +cdpInterfaceGroup OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is only relevant to interfaces which are + repeater ports on 802.3 repeaters. In this situation, + it indicates the RFC1516 group number of the repeater + port which corresponds to this interface." + ::= { cdpInterfaceEntry 4 } + +cdpInterfacePort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is only relevant to interfaces which are + repeater ports on 802.3 repeaters. In this situation, + it indicates the RFC1516 port number of the repeater + port which corresponds to this interface." + ::= { cdpInterfaceEntry 5 } + +cdpInterfaceExtTable OBJECT-TYPE + SYNTAX SEQUENCE OF CdpInterfaceExtEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains the additional CDP configuration on + the device's interfaces." + ::= { cdpInterface 2 } + +cdpInterfaceExtEntry OBJECT-TYPE + SYNTAX CdpInterfaceExtEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the cdpInterfaceExtTable contains the values + configured for Extented Trust TLV and COS (Class of Service) + for Untrusted Ports TLV on an interface which supports the + sending of these TLVs." + INDEX { ifIndex } + ::= { cdpInterfaceExtTable 1 } + +CdpInterfaceExtEntry ::= SEQUENCE { + cdpInterfaceExtendedTrust INTEGER, + cdpInterfaceCosForUntrustedPort Unsigned32 +} + +cdpInterfaceExtendedTrust OBJECT-TYPE + SYNTAX INTEGER { + trusted(1), + noTrust(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates the value to be sent by Extended Trust TLV. + + If trusted(1) is configured, the value of Extended Trust TLV + is one byte in length with its least significant bit equal to + 1 to indicate extended trust. All other bits are 0. + + If noTrust(2) is configured, the value of Extended Trust TLV + is one byte in length with its least significant bit equal to + 0 to indicate no extended trust. All other bits are 0." + ::= { cdpInterfaceExtEntry 1 } + +cdpInterfaceCosForUntrustedPort OBJECT-TYPE + SYNTAX Unsigned32 (0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates the value to be sent by COS for Untrusted Ports TLV." + ::= { cdpInterfaceExtEntry 2 } + +-- +-- The CDP Address Cache Group +-- + +cdpCacheTable OBJECT-TYPE + SYNTAX SEQUENCE OF CdpCacheEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The (conceptual) table containing the cached + information obtained via receiving CDP messages." + ::= { cdpCache 1 } + +cdpCacheEntry OBJECT-TYPE + SYNTAX CdpCacheEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry (conceptual row) in the cdpCacheTable, + containing the information received via CDP on one + interface from one device. Entries appear when + a CDP advertisement is received from a neighbor + device. Entries disappear when CDP is disabled + on the interface, or globally." + INDEX { cdpCacheIfIndex, cdpCacheDeviceIndex } + ::= { cdpCacheTable 1 } + +CdpCacheEntry ::= SEQUENCE { + cdpCacheIfIndex Integer32, + cdpCacheDeviceIndex Integer32, + cdpCacheAddressType CiscoNetworkProtocol, + cdpCacheAddress CiscoNetworkAddress, + cdpCacheVersion DisplayString, + cdpCacheDeviceId DisplayString, + cdpCacheDevicePort DisplayString, + cdpCachePlatform DisplayString, + cdpCacheCapabilities OCTET STRING, + cdpCacheVTPMgmtDomain DisplayString, + cdpCacheNativeVLAN VlanIndex, + cdpCacheDuplex INTEGER, + cdpCacheApplianceID Unsigned32, + cdpCacheVlanID Unsigned32, + cdpCachePowerConsumption Unsigned32, + cdpCacheMTU Unsigned32, + cdpCacheSysName DisplayString, + cdpCacheSysObjectID OBJECT IDENTIFIER, + cdpCachePrimaryMgmtAddrType CiscoNetworkProtocol, + cdpCachePrimaryMgmtAddr CiscoNetworkAddress, + cdpCacheSecondaryMgmtAddrType CiscoNetworkProtocol, + cdpCacheSecondaryMgmtAddr CiscoNetworkAddress, + cdpCachePhysLocation DisplayString, + cdpCacheLastChange TimeStamp +} + +cdpCacheIfIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Normally, the ifIndex value of the local interface. + For 802.3 Repeaters for which the repeater ports do not + have ifIndex values assigned, this value is a unique + value for the port, and greater than any ifIndex value + supported by the repeater; the specific port number in + this case, is given by the corresponding value of + cdpInterfacePort." + ::= { cdpCacheEntry 1 } + +cdpCacheDeviceIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value for each device from which CDP messages + are being received." + ::= { cdpCacheEntry 2 } + +cdpCacheAddressType OBJECT-TYPE + SYNTAX CiscoNetworkProtocol + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of the type of address contained in the + corresponding instance of cdpCacheAddress." + ::= { cdpCacheEntry 3 } + +cdpCacheAddress OBJECT-TYPE + SYNTAX CiscoNetworkAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The (first) network-layer address of the device's + SNMP-agent as reported in the Address TLV of the most recently + received CDP message. For example, if the corresponding + instance of cacheAddressType had the value 'ip(1)', then + this object would be an IP-address." + ::= { cdpCacheEntry 4 } + +cdpCacheVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Version string as reported in the most recent CDP + message. The zero-length string indicates no Version + field (TLV) was reported in the most recent CDP + message." + ::= { cdpCacheEntry 5 } + +cdpCacheDeviceId OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Device-ID string as reported in the most recent CDP + message. The zero-length string indicates no Device-ID + field (TLV) was reported in the most recent CDP + message." + ::= { cdpCacheEntry 6 } + +cdpCacheDevicePort OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Port-ID string as reported in the most recent CDP + message. This will typically be the value of the ifName + object (e.g., 'Ethernet0'). The zero-length string + indicates no Port-ID field (TLV) was reported in the + most recent CDP message." + ::= { cdpCacheEntry 7 } + +cdpCachePlatform OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Device's Hardware Platform as reported in the most + recent CDP message. The zero-length string indicates + that no Platform field (TLV) was reported in the most + recent CDP message." + ::= { cdpCacheEntry 8 } + +cdpCacheCapabilities OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..4)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Device's Functional Capabilities as reported in the + most recent CDP message. For latest set of specific + values, see the latest version of the CDP specification. + The zero-length string indicates no Capabilities field + (TLV) was reported in the most recent CDP message." + REFERENCE "Cisco Discovery Protocol Specification, 10/19/94." + + ::= { cdpCacheEntry 9 } + +cdpCacheVTPMgmtDomain OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The VTP Management Domain for the remote device's interface, + as reported in the most recently received CDP message. + This object is not instantiated if no VTP Management Domain field + (TLV) was reported in the most recently received CDP message." + REFERENCE "managementDomainName in CISCO-VTP-MIB" + ::= { cdpCacheEntry 10 } + +cdpCacheNativeVLAN OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote device's interface's native VLAN, as reported in the + most recent CDP message. The value 0 indicates + no native VLAN field (TLV) was reported in the most + recent CDP message." + ::= { cdpCacheEntry 11 } + +cdpCacheDuplex OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + halfduplex(2), + fullduplex(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote device's interface's duplex mode, as reported in the + most recent CDP message. The value unknown(1) indicates + no duplex mode field (TLV) was reported in the most + recent CDP message." + ::= { cdpCacheEntry 12 } + +cdpCacheApplianceID OBJECT-TYPE + SYNTAX Unsigned32 (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote device's Appliance ID, as reported in the + most recent CDP message. This object is not instantiated if + no Appliance VLAN-ID field (TLV) was reported in the most + recently received CDP message." + ::= { cdpCacheEntry 13 } + +cdpCacheVlanID OBJECT-TYPE + SYNTAX Unsigned32 (0..4095) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote device's VoIP VLAN ID, as reported in the + most recent CDP message. This object is not instantiated if + no Appliance VLAN-ID field (TLV) was reported in the most + recently received CDP message." + ::= { cdpCacheEntry 14 } + +cdpCachePowerConsumption OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliwatts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of power consumed by remote device, as reported + in the most recent CDP message. This object is not instantiated + if no Power Consumption field (TLV) was reported in the most + recently received CDP message." + ::= { cdpCacheEntry 15 } + +cdpCacheMTU OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the size of the largest datagram that can be + sent/received by remote device, as reported in the most recent + CDP message. This object is not instantiated if no MTU field + (TLV) was reported in the most recently received CDP message." + ::= { cdpCacheEntry 16 } + +cdpCacheSysName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the value of the remote device's sysName MIB object. + By convention, it is the device's fully qualified domain name. + This object is not instantiated if no sysName field (TLV) was + reported in the most recently received CDP message." + ::= { cdpCacheEntry 17 } + +cdpCacheSysObjectID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the value of the remote device's sysObjectID MIB + object. This object is not instantiated if no sysObjectID field + (TLV) was reported in the most recently received CDP message." + ::= { cdpCacheEntry 18 } + +cdpCachePrimaryMgmtAddrType OBJECT-TYPE + SYNTAX CiscoNetworkProtocol + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of the type of address contained in the + corresponding instance of cdpCachePrimaryMgmtAddress." + ::= { cdpCacheEntry 19 } + +cdpCachePrimaryMgmtAddr OBJECT-TYPE + SYNTAX CiscoNetworkAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates the (first) network layer address at + which the device will accept SNMP messages as reported in the + most recently received CDP message. If the corresponding + instance of cdpCachePrimaryMgmtAddrType has the value 'ip(1)', + then this object would be an IP-address. If the remote device + is not currently manageable via any network protocol, this + object has the special value of the IPv4 address 0.0.0.0. + If the most recently received CDP message did not contain any + primary address at which the device prefers to receive + SNMP messages, then this object is not instanstiated." + ::= { cdpCacheEntry 20 } + +cdpCacheSecondaryMgmtAddrType OBJECT-TYPE + SYNTAX CiscoNetworkProtocol + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of the type of address contained in the + corresponding instance of cdpCacheSecondaryMgmtAddress." + ::= { cdpCacheEntry 21 } + +cdpCacheSecondaryMgmtAddr OBJECT-TYPE + SYNTAX CiscoNetworkAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates the alternate network layer address + (other than the one indicated by cdpCachePrimaryMgmtAddr) at + which the device will accept SNMP messages as reported in the + most recently received CDP message. If the corresponding + instance of cdpCacheSecondaryMgmtAddrType has the value 'ip(1)', + then this object would be an IP-address. If the most recently + received CDP message did not contain such an alternate network + layer address, then this object is not instanstiated." + ::= { cdpCacheEntry 22 } + +cdpCachePhysLocation OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the physical location, as reported by the most recent + CDP message, of a connector which is on, or physically connected + to, the remote device's interface over which the CDP packet is + sent. This object is not instantiated if no Physical Location + field (TLV) was reported by the most recently received CDP + message." + ::= { cdpCacheEntry 23 } + +cdpCacheLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the time when this cache entry was last changed. + This object is initialised to the current time when the entry + gets created and updated to the current time whenever the value + of any (other) object instance in the corresponding row is + modified." + ::= { cdpCacheEntry 24 } + +-- +-- The CDP Global Group +-- + +cdpGlobalRun OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An indication of whether the Cisco Discovery Protocol + is currently running. Entries in cdpCacheTable are + deleted when CDP is disabled." + DEFVAL { true } + ::= { cdpGlobal 1 } + +cdpGlobalMessageInterval OBJECT-TYPE + SYNTAX INTEGER (5..254) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The interval at which CDP messages are to be generated. + The default value is 60 seconds." + DEFVAL { 60 } + ::= { cdpGlobal 2 } + +cdpGlobalHoldTime OBJECT-TYPE + SYNTAX INTEGER (10..255) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The time for the receiving device holds CDP message. + The default value is 180 seconds." + DEFVAL { 180 } + ::= { cdpGlobal 3 } + +cdpGlobalDeviceId OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The device ID advertised by this device. The format of this + device id is characterized by the value of + cdpGlobalDeviceIdFormat object." + ::= { cdpGlobal 4 } + +cdpGlobalLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the time when the cache table was last changed. It + is the most recent time at which any row was last created, + modified or deleted." + ::= { cdpGlobal 5 } + +cdpGlobalDeviceIdFormatCpb OBJECT-TYPE + SYNTAX BITS { + serialNumber(0), + macAddress(1), + other (2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicate the Device-Id format capability of the device. + + serialNumber(0) indicates that the device supports using + serial number as the format for its DeviceId. + + macAddress(1) indicates that the device supports using + layer 2 MAC address as the format for its DeviceId. + + other(2) indicates that the device supports using its + platform specific format as the format for its DeviceId." + ::= { cdpGlobal 6 } + +cdpGlobalDeviceIdFormat OBJECT-TYPE + SYNTAX INTEGER { + serialNumber(1), + macAddress(2), + other(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An indication of the format of Device-Id contained in the + corresponding instance of cdpGlobalDeviceId. User can only + specify the formats that the device is capable of as + denoted in cdpGlobalDeviceIdFormatCpb object. + + serialNumber(1) indicates that the value of cdpGlobalDeviceId + object is in the form of an ASCII string contain the device + serial number. + + macAddress(2) indicates that the value of cdpGlobalDeviceId + object is in the form of Layer 2 MAC address. + + other(3) indicates that the value of cdpGlobalDeviceId object + is in the form of a platform specific ASCII string contain + info that identifies the device. For example: ASCII string + contains serialNumber appended/prepened with system name." + ::= { cdpGlobal 7 } + +-- conformance information + +ciscoCdpMIBConformance + OBJECT IDENTIFIER ::= { ciscoCdpMIB 2 } +ciscoCdpMIBCompliances + OBJECT IDENTIFIER ::= { ciscoCdpMIBConformance 1 } +ciscoCdpMIBGroups + OBJECT IDENTIFIER ::= { ciscoCdpMIBConformance 2 } + + +-- compliance statements + +ciscoCdpMIBCompliance MODULE-COMPLIANCE + STATUS obsolete -- superseded by ciscoCdpMIBComplianceV11R01 + DESCRIPTION + "The compliance statement for the CDP MIB." + MODULE -- this module + MANDATORY-GROUPS { ciscoCdpMIBGroup } + + ::= { ciscoCdpMIBCompliances 1 } + +ciscoCdpMIBComplianceV11R01 MODULE-COMPLIANCE + STATUS obsolete -- superseded by ciscoCdpMIBComplianceV11R02 + DESCRIPTION + "The compliance statement for the CDP MIB." + MODULE -- this module + MANDATORY-GROUPS { ciscoCdpMIBGroupV11R01 } + + ::= { ciscoCdpMIBCompliances 2 } + +ciscoCdpMIBComplianceV11R02 MODULE-COMPLIANCE + STATUS obsolete -- superseded by ciscoCdpMIBComplianceV12R02 + DESCRIPTION + "The compliance statement for the CDP MIB." + MODULE -- this module + MANDATORY-GROUPS { ciscoCdpMIBGroupV11R02 } + + ::= { ciscoCdpMIBCompliances 3 } + +ciscoCdpMIBComplianceV12R02 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for the CDP MIB." + MODULE -- this module + MANDATORY-GROUPS { ciscoCdpMIBGroupV12R02 } + + ::= { ciscoCdpMIBCompliances 4 } + +-- units of conformance + +ciscoCdpMIBGroup OBJECT-GROUP + OBJECTS { cdpInterfaceEnable, cdpInterfaceMessageInterval, + cdpCacheAddressType, cdpCacheAddress, cdpCacheVersion, + cdpCacheDeviceId, cdpCacheDevicePort, + cdpCacheCapabilities, cdpCachePlatform + } + STATUS obsolete -- superseded by ciscoCdpMIBGroupV11R01 + DESCRIPTION + "A collection of objects for use with the Cisco + Discovery Protocol." + ::= { ciscoCdpMIBGroups 1 } + +ciscoCdpMIBGroupV11R01 OBJECT-GROUP + OBJECTS { cdpInterfaceEnable, cdpInterfaceMessageInterval, + cdpInterfaceGroup, cdpInterfacePort, + cdpCacheAddressType, cdpCacheAddress, cdpCacheVersion, + cdpCacheDeviceId, cdpCacheDevicePort, + cdpCacheCapabilities, cdpCachePlatform + } + STATUS obsolete -- superseded by ciscoCdpMIBGroupV11R02 + DESCRIPTION + "A collection of objects for use with the Cisco + Discovery Protocol." + ::= { ciscoCdpMIBGroups 2 } + +ciscoCdpMIBGroupV11R02 OBJECT-GROUP + OBJECTS { cdpInterfaceEnable, + cdpInterfaceGroup, cdpInterfacePort, + cdpCacheAddressType, cdpCacheAddress, cdpCacheVersion, + cdpCacheDeviceId, cdpCacheDevicePort, + cdpCacheCapabilities, cdpCachePlatform, + cdpGlobalRun, cdpGlobalMessageInterval, cdpGlobalHoldTime + } + STATUS obsolete -- superseded by ciscoCdpMIBGroupV12R02 + DESCRIPTION + "A collection of objects for use with the Cisco + Discovery Protocol." + ::= { ciscoCdpMIBGroups 3 } + +ciscoCdpMIBGroupV12R02 OBJECT-GROUP + OBJECTS { cdpInterfaceEnable, + cdpInterfaceGroup, cdpInterfacePort, + cdpCacheAddressType, cdpCacheAddress, cdpCacheVersion, + cdpCacheDeviceId, cdpCacheDevicePort, + cdpCacheCapabilities, cdpCachePlatform, + cdpCacheVTPMgmtDomain, cdpCacheNativeVLAN, cdpCacheDuplex, + cdpGlobalRun, cdpGlobalMessageInterval, cdpGlobalHoldTime, + cdpGlobalDeviceId + } + STATUS current + DESCRIPTION + "A collection of objects for use with the Cisco + Discovery Protocol." + ::= { ciscoCdpMIBGroups 5 } + +ciscoCdpV2MIBGroup OBJECT-GROUP + OBJECTS { + cdpCacheApplianceID, cdpCacheVlanID, + cdpCachePowerConsumption, cdpCacheMTU, + cdpCacheSysName, cdpCacheSysObjectID, + cdpCacheLastChange, cdpCachePhysLocation, + cdpCachePrimaryMgmtAddrType, + cdpCachePrimaryMgmtAddr, + cdpCacheSecondaryMgmtAddrType, + cdpCacheSecondaryMgmtAddr, + cdpGlobalLastChange, cdpGlobalDeviceIdFormatCpb, + cdpGlobalDeviceIdFormat + } + STATUS current + DESCRIPTION + "A collection of objects for use with the Cisco + Discovery Protocol version 2." + ::= { ciscoCdpMIBGroups 6 } + +ciscoCdpV2IfExtGroup OBJECT-GROUP + OBJECTS { + cdpInterfaceExtendedTrust, + cdpInterfaceCosForUntrustedPort + } + STATUS current + DESCRIPTION + "A collection of objects for use with the Cisco + Discovery Protocol version 2 to configure the value + for Extended Trust TLV and COS for Untrusted Port TLV." + ::= { ciscoCdpMIBGroups 7 } +END diff --git a/pandora_console/attachment/mibs/CISCO-CONFIG-COPY-MIB b/pandora_console/attachment/mibs/CISCO-CONFIG-COPY-MIB new file mode 100644 index 0000000000..3be979f756 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-CONFIG-COPY-MIB @@ -0,0 +1,524 @@ +-- ***************************************************************** +-- CISCO-CONFIG-COPY-MIB.my: MIB for copying a Cisco router's config +-- +-- December 1997, Ramanathan R. Kavasseri +-- +-- Copyright (c) 1998 by cisco Systems, Inc. +-- All rights reserved. +-- ***************************************************************** +-- + + +CISCO-CONFIG-COPY-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + IpAddress, Unsigned32 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, DisplayString, TimeStamp, RowStatus, + TruthValue + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF + ciscoMgmt + FROM CISCO-SMI; + +ciscoConfigCopyMIB MODULE-IDENTITY + LAST-UPDATED "200212170000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 W. Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "This MIB facilitates writing of configuration files + of an SNMP Agent running Cisco's IOS in the following + ways: to and from the net, copying running + configurations to startup configurations and + vice-versa, and copying a configuration + (running or startup) to and from the local + IOS file system." + REVISION "200212170000Z" + DESCRIPTION + "Added a new enumeration value someConfigApplyFailed(7) + to ConfigCopyFailCause TC." + REVISION "200205300000Z" + DESCRIPTION + "Added sftp protocol as an option for + ConfigCopyProtocol." + REVISION "200205070000Z" + DESCRIPTION + "Added scp protocol as an option for ConfigCopyProtocol. + Added unsupportedProtocol(6) as an option for the + ConfigCopyFailCause TC." + + REVISION "200203280000Z" + DESCRIPTION + "Imported Unsigned32 from SNMPv2-SMI instead of + CISCO-TC" + ::= { ciscoMgmt 96 } + +-- A config-copy operation is a request to copy a configuration +-- file of an SNMP Agent running Cisco's IOS in the following ways: +-- 1. to or from the net (via a protocol like tftp, ftp, rcp, +-- scp or sftp). +-- 2. copying running configurations to startup +-- configurations and vice-versa. +-- 3. copy a running or startup config to a file +-- to the local IOS file system and vice versa." +-- +-- The term "agent-config" will be used in this MIB to refer to +-- either the running config or the startup config. It will be +-- used as a short way of saying "either running config or the +-- startup config". + + +ConfigCopyProtocol ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The protocol file transfer protocol that should be used + to copy the configuration file over the network. If the + config file transfer is to occur locally on the SNMP + agent, the method of transfer is left upto the + implementation, and is not restricted to the + protocols below." + SYNTAX INTEGER { + tftp(1), + ftp(2), + rcp(3), + scp(4), + sftp(5) + } + +ConfigCopyState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The state of a tftp config-copy operation. + The description of each state is given below: + + waiting: only one config-copy request can run + at any time. A newly activated + config-copy request is placed in this + state if another request has already + been activated. + + running: this state signifies that the config-copy + request is running. + + successsful: the state when a config-copy request is + successfully completed. + + failed: the config-copy request was unsuccesful. + " + SYNTAX INTEGER { + waiting(1), + running(2), + successful(3), + failed(4) + } + +ConfigCopyFailCause ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The reason a config-copy request failed." + SYNTAX INTEGER { + unknown(1), -- very descriptive + badFileName(2), -- check your file name/path/permissions + timeout(3), -- the network may be overloaded, or the + -- remote file server may not be + -- responding. + noMem(4), -- the Agent wasn't able to allocate + -- memory for the config-copy operation + noConfig(5), -- the agent-config selected as the + -- source was non-existant. + unsupportedProtocol(6),-- The protocol is not supported + -- by the agent. + someConfigApplyFailed(7) -- applying of some of the + -- configuration commands + -- failed. + } + +ConfigFileType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The various types of files on which a config-copy + operation can be performed." + SYNTAX INTEGER { + networkFile(1), -- file on another network device, e.g. + -- a file-server on the net + iosFile(2), -- a file on the local agent, other than + -- startup or running config + startupConfig(3), + runningConfig(4), + terminal(5) -- a terminal (e.g. the console window) + -- on which the config is to be + -- displayed. + } + +ciscoConfigCopyMIBObjects OBJECT IDENTIFIER ::= { ciscoConfigCopyMIB 1 } + +ccCopy OBJECT IDENTIFIER ::= { ciscoConfigCopyMIBObjects 1 } + +ccCopyTable OBJECT-TYPE + SYNTAX SEQUENCE OF CcCopyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of config-copy requests." + ::= { ccCopy 1 } + +ccCopyEntry OBJECT-TYPE + SYNTAX CcCopyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A config-copy request. + + A management station wishing to create an entry should + first generate a random serial number to be used + as the index to this sparse table. The station should + then create the associated instance of the row status + and row index objects. It must also, either in the same + or in successive PDUs, create an instance of + ccCopySourceFileType and ccCopyDestFileType. + At least one of the FileTypes must be an agent-config + file type (i.e. startupConfig or runningConfig). + If one of the file types is a networkFile, a valid + ccCopyServerAddress and ccCopyFileName must be + created as well. For a file type of iosFile, only + a valid fileName needs to be created as an extra + parameter. + + It should also modify the default values for the other + configuration objects if the defaults are not + appropriate. + + Once the appropriate instance of all the configuration + objects have been created, either by an explicit SNMP + set request or by default, the row status should be set + to active to initiate the request. Note that this entire + procedure may be initiated via a single set request + which specifies a row status of createAndGo as well as + specifies valid values for the non-defaulted + configuration objects. + + Once the config-copy request has been created (i.e. the + ccCopyEntryRowStatus has been made active), the entry + cannot be modified - the only operation possible + after this is to delete the row. + + Once the request completes, the management station + should retrieve the values of the status objects of + interest, and should then delete the entry. In order + to prevent old entries from clogging the table, + entries will be aged out, but an entry will never be + deleted within 5 minutes of completing." + INDEX { ccCopyIndex } + ::= { ccCopyTable 1 } + +CcCopyEntry ::= + SEQUENCE { + ccCopyIndex Unsigned32, + -- configuration items + ccCopyProtocol ConfigCopyProtocol, + ccCopySourceFileType ConfigFileType, + ccCopyDestFileType ConfigFileType, + ccCopyServerAddress IpAddress, + ccCopyFileName DisplayString, + ccCopyUserName DisplayString, + ccCopyUserPassword DisplayString, + ccCopyNotificationOnCompletion TruthValue, + -- status items + ccCopyState ConfigCopyState, + ccCopyTimeStarted TimeStamp, + ccCopyTimeCompleted TimeStamp, + ccCopyFailCause ConfigCopyFailCause, + ccCopyEntryRowStatus RowStatus + } + +ccCopyIndex OBJECT-TYPE + SYNTAX Unsigned32(1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Object which specifies a unique entry in the + ccCopyTable. A management station wishing + to initiate a config-copy operation should use a + random value for this object when creating + or modifying an instance of a ccCopyEntry. + The RowStatus semantics of the ccCopyEntryRowStatus + object will prevent access conflicts." + ::= { ccCopyEntry 1 } + +ccCopyProtocol OBJECT-TYPE + SYNTAX ConfigCopyProtocol + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The protocol to be used for any copy. + Will default to tftp if not specified. + + If the copy operation occurs locally on the SNMP agent + (e.g. runningCOnfigToStartupConfig), this object may + be ignored by the implementation." + DEFVAL { tftp } + ::= { ccCopyEntry 2 } + +ccCopySourceFileType OBJECT-TYPE + SYNTAX ConfigFileType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "specifies the type of file to copy from. Either the + ccCopySourceFileType or the ccCopyDestFileType (or both) + must be of type runningConfig or startupConfig. Also, + the ccCopySourceFileType must be different from the + ccCopyDestFileType. + + If the ccCopySourceFileType has the value of + networkFile, the ccCopyServerAddress and + ccCopyFileName must also be created, and these 3 + objects together (ccCopySourceFileType, + ccCopyServerAddress, ccCopyFileName) will uniquely + identify the source file. + + If the ccCopySourceFileType is iosFile, the + ccCopyFileName must also be created, and the + 2 objects together (ccCopySourceFileType, + ccCopyFileName) will uniquely identify the source + file. + " + ::= { ccCopyEntry 3 } + +ccCopyDestFileType OBJECT-TYPE + SYNTAX ConfigFileType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "specifies the type of file to copy to. Either the + ccCopySourceFileType or the ccCopyDestFileType (or both) + must be of type runningConfig or startupConfig. Also, + the ccCopySourceFileType must be different from the + ccCopyDestFileType. + + If the ccCopyDestFileType has the value of + networkFile, the ccCopyServerAddress and + ccCopyFileName must also be created, and these + 3 objects together + (ccCopyDestFileType, ccCopyServerAddress, + ccCopyFileName) will uniquely identify the + destination file. + + If the ccCopyDestFileType is iosFile, the ccCopyFileName + must also be created, and the 2 objects together + (ccCopyDestFileType, ccCopyFileName) will uniquely + identify the destination file." + ::= { ccCopyEntry 4 } + +ccCopyServerAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The ip address of the tftp server from (or to) + which to copy the configuration file. This object must + be created when either the ccCopySourceFileType + or ccCopyDestFileType has the value networkFile. + Values of 0.0.0.0 or FF.FF.FF.FF for + ccCopyServerAddress are not allowed." + ::= { ccCopyEntry 5 } + +ccCopyFileName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The file name (including the path, if applicable) of + the file. This object must be created when either the + ccCopySourceFileType or ccCopyDestFileType has the value + networkFile or iosFile." + ::= { ccCopyEntry 6 } + +ccCopyUserName OBJECT-TYPE + SYNTAX DisplayString(SIZE (1..40)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Remote user name for copy via ftp, rcp, sftp or + scp protocol. + This object must be created when the ccCopyProtocol + is rcp, scp, ftp or sftp. + If the protocol is rcp, it will override the remote + user-name configured through the + rcmd remote-username + configuration command. + The remote user-name is sent as the server user-name + in an rcp command request sent by the system to a + remote rcp server." + ::= { ccCopyEntry 7 } + +ccCopyUserPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE (1..40)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Password used by ftp, sftp or scp for copying a + file to/from an ftp/sftp/scp server. This object must + be created when the ccCopyProtocol is ftp or scp. + Reading it returns a zero-length string for security + reasons." + ::= { ccCopyEntry 8 } + +ccCopyNotificationOnCompletion OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies whether or not a ccCopyCompletion + notification should be issued on completion of the tftp + transfer. If such a notification is desired, it is the + responsibility of the management entity to ensure + that the SNMP administrative model is configured in + such a way as to allow the notification to be + delivered." + DEFVAL { false } + ::= { ccCopyEntry 9 } + +ccCopyState OBJECT-TYPE + SYNTAX ConfigCopyState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies the state of this config-copy request. + This value of this object is instantiated only after + the row has been instantiated, i.e. after the + ccCopyEntryRowStatus has been made active." + ::= { ccCopyEntry 10 } + +ccCopyTimeStarted OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies the time the ccCopyState last transitioned + to running, or 0 if the state has never transitioned to + running (for e.g., stuck in waiting state). + This object is instantiated only after the row has been + instantiated." + ::= { ccCopyEntry 11 } + +ccCopyTimeCompleted OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies the time the ccCopyState last transitioned + from running to successful or failed states. This + object is instantiated only after the row has been + instantiated. + Its value will remain 0 until he request has completed." + ::= { ccCopyEntry 12 } + +ccCopyFailCause OBJECT-TYPE + SYNTAX ConfigCopyFailCause + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The reason why the config-copy operation failed. + This object is instantiated only when the ccCopyState + for this entry is in the failed state." + ::= { ccCopyEntry 13 } + +ccCopyEntryRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this table entry. Once the entry + status is set to active, the associated entry cannot + be modified until the request completes (ccCopyState + transitions to successful or failed state)." + ::= { ccCopyEntry 14 } + +ciscoConfigCopyMIBTrapPrefix OBJECT IDENTIFIER + ::= { ciscoConfigCopyMIB 2 } +ccCopyMIBTraps OBJECT IDENTIFIER + ::= { ciscoConfigCopyMIBTrapPrefix 1 } + +ccCopyCompletion NOTIFICATION-TYPE + OBJECTS { ccCopyServerAddress, + ccCopyFileName, + ccCopyState, + ccCopyTimeStarted, + ccCopyTimeCompleted, + ccCopyFailCause + } + STATUS current + DESCRIPTION + "A ccCopyCompletion trap is sent at the completion + of a config-copy request. The ccCopyFailCause is not + instantiated, and hence not included in a trap, when + the ccCopyState is success." + ::= { ccCopyMIBTraps 1 } + +ciscoConfigCopyMIBConformance + OBJECT IDENTIFIER ::= { ciscoConfigCopyMIB 3 } +ccCopyMIBCompliances + OBJECT IDENTIFIER ::= { ciscoConfigCopyMIBConformance 1 } +ccCopyMIBGroups + OBJECT IDENTIFIER ::= { ciscoConfigCopyMIBConformance 2 } + +ccCopyMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for Cisco agents which + implement the Cisco ConfigCopy MIB. This MIB should + be implemented on all Cisco agents that support + copying of configs via the CLI." + MODULE + MANDATORY-GROUPS { ccCopyGroup, + ccCopyNotificationsGroup + } + ::= {ccCopyMIBCompliances 1 } + +-- units of conformance + +ccCopyGroup OBJECT-GROUP + OBJECTS { + ccCopyProtocol, + ccCopySourceFileType, + ccCopyDestFileType, + ccCopyServerAddress, + ccCopyFileName, + ccCopyUserName, + ccCopyUserPassword, + ccCopyNotificationOnCompletion, + ccCopyState, + ccCopyTimeStarted, + ccCopyTimeCompleted, + ccCopyFailCause, + ccCopyEntryRowStatus + } + STATUS current + DESCRIPTION + "A collection of objects providing the ability to + copy an agent-configuration file." + ::= { ccCopyMIBGroups 1 } + +ccCopyNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { ccCopyCompletion + } + STATUS current + DESCRIPTION + "The notification used to indicate that a config-copy + operation to or from the agent has been completed." + ::= { ccCopyMIBGroups 2 } + +END diff --git a/pandora_console/attachment/mibs/CISCO-ENVMON-MIB b/pandora_console/attachment/mibs/CISCO-ENVMON-MIB new file mode 100644 index 0000000000..160ea145ec --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-ENVMON-MIB @@ -0,0 +1,933 @@ +-- ***************************************************************** +-- CISCO-ENVMON-MIB.my: CISCO Environmental Monitor MIB file +-- +-- November 1994 Sandra C. Durham/Jeffrey T. Johnson +-- +-- Copyright (c) 1994-2001, 2002 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- +CISCO-ENVMON-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-TYPE, + NOTIFICATION-TYPE, + Gauge32, + Integer32 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, + DisplayString, + TruthValue + FROM SNMPv2-TC + MODULE-COMPLIANCE, + OBJECT-GROUP, + NOTIFICATION-GROUP + FROM SNMPv2-CONF + ciscoMgmt + FROM CISCO-SMI; + + +ciscoEnvMonMIB MODULE-IDENTITY + LAST-UPDATED "200311250000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "The MIB module to describe the status of the Environmental + Monitor on those devices which support one." + REVISION "200311250000Z" + DESCRIPTION + "Added ciscoEnvMonMIBMiscNotifGroup." + REVISION "200210150000Z" + DESCRIPTION + "Added c7600(12) as values for ciscoEnvMonPresent" + REVISION "200207170000Z" + DESCRIPTION + "Added optional groups ciscoEnvMonEnableStatChangeGroup + and ciscoEnvMonStatChangeNotifGroup." + REVISION "200202040000Z" + DESCRIPTION + "Added osr7600(11) as values + for ciscoEnvMonPresent" + REVISION "200108300000Z" + DESCRIPTION + "Added c10000(10) as values for ciscoEnvMonPresent" + REVISION "200108160000Z" + DESCRIPTION + "Added cat4000(9) as values for ciscoEnvMonPresent" + REVISION "200105070000Z" + DESCRIPTION + "Added cat6000(7),ubr7200(8) + as values for ciscoEnvMonPresent" + REVISION "200001310000Z" + DESCRIPTION + "Add notFunctioning to CiscoEnvMonState. + " + REVISION "9810220000Z" + DESCRIPTION + "Renamed enumerated value internalRPS(5) as + internalRedundant(5) and added description for + ciscoEnvMonSupplySource enumerated values. + " + REVISION "9808050000Z" + DESCRIPTION + "Add enumerated value internalRPS(5) to + ciscoEnvMonSupplySource. + " + REVISION "9611120000Z" + DESCRIPTION + "Add monitoring support for c3600 series router" + REVISION "9508150000Z" + DESCRIPTION + "Specify a correct (non-negative) range for several + index objects." + REVISION "9503130000Z" + DESCRIPTION + "Miscellaneous changes including monitoring support + for c7000 series redundant power supplies." + + ::= { ciscoMgmt 13 } + + +CiscoEnvMonState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the state of a device being monitored. + Valid values are: + + normal(1): the environment is good, such as low + temperature. + + warning(2): the environment is bad, such as temperature + above normal operation range but not too + high. + + critical(3): the environment is very bad, such as + temperature much higher than normal + operation limit. + + shutdown(4): the environment is the worst, the system + should be shutdown immediately. + + notPresent(5): the environmental monitor is not present, + such as temperature sensors do not exist. + + notFunctioning(6): the environmental monitor does not + function properly, such as a temperature + sensor generates a abnormal data like + 1000 C. + " + SYNTAX INTEGER { + normal(1), + warning(2), + critical(3), + shutdown(4), + notPresent(5), + notFunctioning(6) + } + +CiscoSignedGauge ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the current value of an entity, as a signed + integer." + SYNTAX Integer32 + +ciscoEnvMonObjects OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 1 } + +ciscoEnvMonPresent OBJECT-TYPE + SYNTAX INTEGER { + oldAgs (1), + ags (2), + c7000 (3), + ci (4), + cAccessMon (6), + cat6000 (7), + ubr7200 (8), + cat4000 (9), + c10000 (10), + osr7600(11), + c7600 (12) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of environmental monitor located in the chassis. + An oldAgs environmental monitor card is identical to an ags + environmental card except that it is not capable of supplying + data, and hence no instance of the remaining objects in this + MIB will be returned in response to an SNMP query. Note that + only a firmware upgrade is required to convert an oldAgs into + an ags card." + ::= { ciscoEnvMonObjects 1 } + + +ciscoEnvMonVoltageStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF CiscoEnvMonVoltageStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of voltage status maintained by the environmental + monitor." + ::= { ciscoEnvMonObjects 2 } + +ciscoEnvMonVoltageStatusEntry OBJECT-TYPE + SYNTAX CiscoEnvMonVoltageStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the voltage status table, representing the status + of the associated testpoint maintained by the environmental + monitor." + INDEX { ciscoEnvMonVoltageStatusIndex } + ::= { ciscoEnvMonVoltageStatusTable 1 } + +CiscoEnvMonVoltageStatusEntry ::= + SEQUENCE { + ciscoEnvMonVoltageStatusIndex Integer32 (0..2147483647), + ciscoEnvMonVoltageStatusDescr DisplayString, + ciscoEnvMonVoltageStatusValue CiscoSignedGauge, + ciscoEnvMonVoltageThresholdLow Integer32, + ciscoEnvMonVoltageThresholdHigh Integer32, + ciscoEnvMonVoltageLastShutdown Integer32, + ciscoEnvMonVoltageState CiscoEnvMonState + } + +ciscoEnvMonVoltageStatusIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unique index for the testpoint being instrumented. + This index is for SNMP purposes only, and has no + intrinsic meaning." + ::= { ciscoEnvMonVoltageStatusEntry 1 } + +ciscoEnvMonVoltageStatusDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Textual description of the testpoint being instrumented. + This description is a short textual label, suitable as a + human-sensible identification for the rest of the + information in the entry." + ::= { ciscoEnvMonVoltageStatusEntry 2 } + +ciscoEnvMonVoltageStatusValue OBJECT-TYPE + SYNTAX CiscoSignedGauge + UNITS "millivolts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current measurement of the testpoint being instrumented." + ::= { ciscoEnvMonVoltageStatusEntry 3 } + +ciscoEnvMonVoltageThresholdLow OBJECT-TYPE + SYNTAX Integer32 + UNITS "millivolts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The lowest value that the associated instance of the object + ciscoEnvMonVoltageStatusValue may obtain before an emergency + shutdown of the managed device is initiated." + ::= { ciscoEnvMonVoltageStatusEntry 4 } + +ciscoEnvMonVoltageThresholdHigh OBJECT-TYPE + SYNTAX Integer32 + UNITS "millivolts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The highest value that the associated instance of the object + ciscoEnvMonVoltageStatusValue may obtain before an emergency + shutdown of the managed device is initiated." + ::= { ciscoEnvMonVoltageStatusEntry 5 } + +ciscoEnvMonVoltageLastShutdown OBJECT-TYPE + SYNTAX Integer32 + UNITS "millivolts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the associated instance of the object + ciscoEnvMonVoltageStatusValue at the time an emergency + shutdown of the managed device was last initiated. This + value is stored in non-volatile RAM and hence is able to + survive the shutdown." + ::= { ciscoEnvMonVoltageStatusEntry 6 } + +ciscoEnvMonVoltageState OBJECT-TYPE + SYNTAX CiscoEnvMonState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of the testpoint being instrumented." + ::= { ciscoEnvMonVoltageStatusEntry 7 } + + + +ciscoEnvMonTemperatureStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF CiscoEnvMonTemperatureStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of ambient temperature status maintained by the + environmental monitor." + ::= { ciscoEnvMonObjects 3 } + +ciscoEnvMonTemperatureStatusEntry OBJECT-TYPE + SYNTAX CiscoEnvMonTemperatureStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the ambient temperature status table, representing + the status of the associated testpoint maintained by the + environmental monitor." + INDEX { ciscoEnvMonTemperatureStatusIndex } + ::= { ciscoEnvMonTemperatureStatusTable 1 } + +CiscoEnvMonTemperatureStatusEntry ::= + SEQUENCE { + ciscoEnvMonTemperatureStatusIndex Integer32 (0..2147483647), + ciscoEnvMonTemperatureStatusDescr DisplayString, + ciscoEnvMonTemperatureStatusValue Gauge32, + ciscoEnvMonTemperatureThreshold Integer32, + ciscoEnvMonTemperatureLastShutdown Integer32, + ciscoEnvMonTemperatureState CiscoEnvMonState + } + + +ciscoEnvMonTemperatureStatusIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unique index for the testpoint being instrumented. + This index is for SNMP purposes only, and has no + intrinsic meaning." + ::= { ciscoEnvMonTemperatureStatusEntry 1 } + +ciscoEnvMonTemperatureStatusDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Textual description of the testpoint being instrumented. + This description is a short textual label, suitable as a + human-sensible identification for the rest of the + information in the entry." + ::= { ciscoEnvMonTemperatureStatusEntry 2 } + +ciscoEnvMonTemperatureStatusValue OBJECT-TYPE + SYNTAX Gauge32 + UNITS "degrees Celsius" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current measurement of the testpoint being instrumented." + ::= { ciscoEnvMonTemperatureStatusEntry 3 } + +ciscoEnvMonTemperatureThreshold OBJECT-TYPE + SYNTAX Integer32 + UNITS "degrees Celsius" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The highest value that the associated instance of the + object ciscoEnvMonTemperatureStatusValue may obtain + before an emergency shutdown of the managed device is + initiated." + ::= { ciscoEnvMonTemperatureStatusEntry 4 } + +ciscoEnvMonTemperatureLastShutdown OBJECT-TYPE + SYNTAX Integer32 + UNITS "degrees Celsius" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the associated instance of the object + ciscoEnvMonTemperatureStatusValue at the time an emergency + shutdown of the managed device was last initiated. This + value is stored in non-volatile RAM and hence is able to + survive the shutdown." + ::= { ciscoEnvMonTemperatureStatusEntry 5 } + +ciscoEnvMonTemperatureState OBJECT-TYPE + SYNTAX CiscoEnvMonState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of the testpoint being instrumented." + ::= { ciscoEnvMonTemperatureStatusEntry 6 } + + + +ciscoEnvMonFanStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF CiscoEnvMonFanStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of fan status maintained by the environmental + monitor." + ::= { ciscoEnvMonObjects 4 } + +ciscoEnvMonFanStatusEntry OBJECT-TYPE + SYNTAX CiscoEnvMonFanStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the fan status table, representing the status of + the associated fan maintained by the environmental monitor." + INDEX { ciscoEnvMonFanStatusIndex } + ::= { ciscoEnvMonFanStatusTable 1 } + +CiscoEnvMonFanStatusEntry ::= + SEQUENCE { + ciscoEnvMonFanStatusIndex Integer32 (0..2147483647), + ciscoEnvMonFanStatusDescr DisplayString, + ciscoEnvMonFanState CiscoEnvMonState + } + +ciscoEnvMonFanStatusIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unique index for the fan being instrumented. + This index is for SNMP purposes only, and has no + intrinsic meaning." + ::= { ciscoEnvMonFanStatusEntry 1 } + +ciscoEnvMonFanStatusDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Textual description of the fan being instrumented. + This description is a short textual label, suitable as a + human-sensible identification for the rest of the + information in the entry." + ::= { ciscoEnvMonFanStatusEntry 2 } + +ciscoEnvMonFanState OBJECT-TYPE + SYNTAX CiscoEnvMonState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of the fan being instrumented." + ::= { ciscoEnvMonFanStatusEntry 3 } + + + +ciscoEnvMonSupplyStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF CiscoEnvMonSupplyStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of power supply status maintained by the + environmental monitor card." + ::= { ciscoEnvMonObjects 5 } + +ciscoEnvMonSupplyStatusEntry OBJECT-TYPE + SYNTAX CiscoEnvMonSupplyStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the power supply status table, representing the + status of the associated power supply maintained by the + environmental monitor card." + INDEX { ciscoEnvMonSupplyStatusIndex } + ::= { ciscoEnvMonSupplyStatusTable 1 } + +CiscoEnvMonSupplyStatusEntry ::= + SEQUENCE { + ciscoEnvMonSupplyStatusIndex Integer32 (0..2147483647), + ciscoEnvMonSupplyStatusDescr DisplayString, + ciscoEnvMonSupplyState CiscoEnvMonState, + ciscoEnvMonSupplySource INTEGER + } + +ciscoEnvMonSupplyStatusIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unique index for the power supply being instrumented. + This index is for SNMP purposes only, and has no + intrinsic meaning." + ::= { ciscoEnvMonSupplyStatusEntry 1 } + +ciscoEnvMonSupplyStatusDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Textual description of the power supply being instrumented. + This description is a short textual label, suitable as a + human-sensible identification for the rest of the + information in the entry." + ::= { ciscoEnvMonSupplyStatusEntry 2 } + +ciscoEnvMonSupplyState OBJECT-TYPE + SYNTAX CiscoEnvMonState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of the power supply being instrumented." + ::= { ciscoEnvMonSupplyStatusEntry 3 } + +ciscoEnvMonSupplySource OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ac(2), + dc(3), + externalPowerSupply(4), + internalRedundant(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The power supply source. + unknown - Power supply source unknown + ac - AC power supply + dc - DC power supply + externalPowerSupply - External power supply + internalRedundant - Internal redundant power supply + " + ::= { ciscoEnvMonSupplyStatusEntry 4 } + +ciscoEnvMonAlarmContacts OBJECT-TYPE + SYNTAX BITS { + minorVisual(0), + majorVisual(1), + criticalVisual(2), + minorAudible(3), + majorAudible(4), + criticalAudible(5), + input(6) + } + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Each bit is set to reflect the respective + alarm being set. The bit will be cleared + when the respective alarm is cleared." + ::= { ciscoEnvMonObjects 6 } + +ciscoEnvMonMIBNotificationEnables OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 2 } + +ciscoEnvMonEnableShutdownNotification OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This variable indicates whether the system + produces the ciscoEnvMonShutdownNotification. A false + value will prevent shutdown notifications + from being generated by this system." + DEFVAL { false } + ::= { ciscoEnvMonMIBNotificationEnables 1 } + +ciscoEnvMonEnableVoltageNotification OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This variable indicates whether the system + produces the ciscoEnvMonVoltageNotification. A false + value will prevent voltage notifications from being + generated by this system. This object is deprecated + in favour of ciscoEnvMonEnableStatChangeNotif." + DEFVAL { false } + ::= { ciscoEnvMonMIBNotificationEnables 2 } + +ciscoEnvMonEnableTemperatureNotification OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This variable indicates whether the system + produces the ciscoEnvMonTemperatureNotification. + A false value prevents temperature notifications + from being sent by this entity. This object is + deprecated in favour of + ciscoEnvMonEnableStatChangeNotif." + DEFVAL { false } + ::= { ciscoEnvMonMIBNotificationEnables 3 } + +ciscoEnvMonEnableFanNotification OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This variable indicates whether the system + produces the ciscoEnvMonFanNotification. + A false value prevents fan notifications + from being sent by this entity. This object is + deprecated in favour of + ciscoEnvMonEnableStatChangeNotif." + DEFVAL { false } + ::= { ciscoEnvMonMIBNotificationEnables 4 } + +ciscoEnvMonEnableRedundantSupplyNotification OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This variable indicates whether the system + produces the ciscoEnvMonRedundantSupplyNotification. + A false value prevents redundant supply notifications + from being generated by this system. This object is + deprecated in favour of + ciscoEnvMonEnableStatChangeNotif." + DEFVAL { false } + ::= { ciscoEnvMonMIBNotificationEnables 5 } + +ciscoEnvMonEnableStatChangeNotif OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This variable indicates whether the system + produces the ciscoEnvMonVoltStatusChangeNotif, + ciscoEnvMonTempStatusChangeNotif, + ciscoEnvMonFanStatusChangeNotif and + ciscoEnvMonSuppStatusChangeNotif. A false value will + prevent these notifications from being generated by + this system." + DEFVAL { false } + ::= { ciscoEnvMonMIBNotificationEnables 6 } + +-- the following two OBJECT IDENTIFIERS are used to define SNMPv2 Notifications +-- that are backward compatible with SNMPv1 Traps. +ciscoEnvMonMIBNotificationPrefix OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 3 } +ciscoEnvMonMIBNotifications OBJECT IDENTIFIER ::= { ciscoEnvMonMIBNotificationPrefix 0 } + +ciscoEnvMonShutdownNotification NOTIFICATION-TYPE + -- no OBJECTS + STATUS current + DESCRIPTION + "A ciscoEnvMonShutdownNotification is sent if the environmental + monitor detects a testpoint reaching a critical state + and is about to initiate a shutdown. This notification + contains no objects so that it may be encoded and sent in the + shortest amount of time possible. Even so, management + applications should not rely on receiving such a notification + as it may not be sent before the shutdown completes." + ::= { ciscoEnvMonMIBNotifications 1 } + + +ciscoEnvMonVoltageNotification NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonVoltageStatusDescr, + ciscoEnvMonVoltageStatusValue, + ciscoEnvMonVoltageState + } + STATUS deprecated + DESCRIPTION + "A ciscoEnvMonVoltageNotification is sent if the voltage + measured at a given testpoint is outside the normal range + for the testpoint (i.e. is at the warning, critical, or + shutdown stage). Since such a notification is usually + generated before the shutdown state is reached, it can + convey more data and has a better chance of being sent + than does the ciscoEnvMonShutdownNotification. + This notification is deprecated in favour of + ciscoEnvMonVoltStatusChangeNotif." + ::= { ciscoEnvMonMIBNotifications 2 } + + +ciscoEnvMonTemperatureNotification NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonTemperatureStatusDescr, + ciscoEnvMonTemperatureStatusValue, + ciscoEnvMonTemperatureState + } + STATUS deprecated + DESCRIPTION + "A ciscoEnvMonTemperatureNotification is sent if the + temperature measured at a given testpoint is outside + the normal range for the testpoint (i.e. is at the warning, + critical, or shutdown stage). Since such a Notification + is usually generated before the shutdown state is reached, + it can convey more data and has a better chance of being + sent than does the ciscoEnvMonShutdownNotification. + This notification is deprecated in favour of + ciscoEnvMonTempStatusChangeNotif." + ::= { ciscoEnvMonMIBNotifications 3 } + + + +ciscoEnvMonFanNotification NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonFanStatusDescr, + ciscoEnvMonFanState + } + STATUS deprecated + DESCRIPTION + "A ciscoEnvMonFanNotification is sent if any one of + the fans in the fan array (where extant) fails. + Since such a notification is usually generated before + the shutdown state is reached, it can convey more + data and has a better chance of being sent + than does the ciscoEnvMonShutdownNotification. + This notification is deprecated in favour of + ciscoEnvMonFanStatusChangeNotif." + ::= { ciscoEnvMonMIBNotifications 4 } + +ciscoEnvMonRedundantSupplyNotification NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonSupplyStatusDescr, + ciscoEnvMonSupplyState + } + STATUS deprecated + DESCRIPTION + "A ciscoEnvMonRedundantSupplyNotification is sent if + the redundant power supply (where extant) fails. + Since such a notification is usually generated before + the shutdown state is reached, it can convey more + data and has a better chance of being sent + than does the ciscoEnvMonShutdownNotification. + This notification is deprecated in favour of + ciscoEnvMonSuppStatusChangeNotif." + ::= { ciscoEnvMonMIBNotifications 5 } + +ciscoEnvMonVoltStatusChangeNotif NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonVoltageStatusDescr, + ciscoEnvMonVoltageStatusValue, + ciscoEnvMonVoltageState + } + STATUS current + DESCRIPTION + "A ciscoEnvMonVoltStatusChangeNotif is sent if there is + change in the state of a device being monitored + by ciscoEnvMonVoltageState." + ::= { ciscoEnvMonMIBNotifications 6 } + +ciscoEnvMonTempStatusChangeNotif NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonTemperatureStatusDescr, + ciscoEnvMonTemperatureStatusValue, + ciscoEnvMonTemperatureState + } + STATUS current + DESCRIPTION + "A ciscoEnvMonTempStatusChangeNotif is sent if there + is change in the state of a device being monitored + by ciscoEnvMonTemperatureState." + ::= { ciscoEnvMonMIBNotifications 7 } + +ciscoEnvMonFanStatusChangeNotif NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonFanStatusDescr, + ciscoEnvMonFanState + } + STATUS current + DESCRIPTION + "A ciscoEnvMonFanStatusChangeNotif is sent if there + is change in the state of a device being monitored + by ciscoEnvMonFanState." + ::= { ciscoEnvMonMIBNotifications 8 } + +ciscoEnvMonSuppStatusChangeNotif NOTIFICATION-TYPE + OBJECTS { + ciscoEnvMonSupplyStatusDescr, + ciscoEnvMonSupplyState + } + STATUS current + DESCRIPTION + "A ciscoEnvMonSupplyStatChangeNotif is sent if there + is change in the state of a device being monitored + by ciscoEnvMonSupplyState." + ::= { ciscoEnvMonMIBNotifications 9 } + +-- conformance information + +ciscoEnvMonMIBConformance OBJECT IDENTIFIER ::= { ciscoEnvMonMIB 4 } +ciscoEnvMonMIBCompliances OBJECT IDENTIFIER ::= { ciscoEnvMonMIBConformance 1 } +ciscoEnvMonMIBGroups OBJECT IDENTIFIER ::= { ciscoEnvMonMIBConformance 2 } + + +-- compliance statements + +ciscoEnvMonMIBCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for entities which implement + the Cisco Environmental Monitor MIB. This is + deprecated and new compliance + ciscoEnvMonMIBComplianceRev1 is added." + MODULE -- this module + MANDATORY-GROUPS { ciscoEnvMonMIBGroup } + ::= { ciscoEnvMonMIBCompliances 1 } + +ciscoEnvMonMIBComplianceRev1 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for entities which implement + the Cisco Environmental Monitor MIB." + MODULE -- this module + MANDATORY-GROUPS { ciscoEnvMonMIBGroupRev, + ciscoEnvMonMIBNotifGroup } + + GROUP ciscoEnvMonEnableStatChangeGroup + DESCRIPTION + "The ciscoEnvMonEnableStatChangeGroup is optional. + This group is applicable for implementations which + need status change notifications for environmental + monitoring." + + GROUP ciscoEnvMonStatChangeNotifGroup + DESCRIPTION + "The ciscoEnvMonStatChangeNotifGroup is optional. + This group is applicable for implementations which + need status change notifications for environmental + monitoring." + + ::= { ciscoEnvMonMIBCompliances 2 } + +-- units of conformance + +ciscoEnvMonMIBGroup OBJECT-GROUP + OBJECTS { + ciscoEnvMonPresent, + + ciscoEnvMonVoltageStatusDescr, + ciscoEnvMonVoltageStatusValue, + ciscoEnvMonVoltageThresholdLow, + ciscoEnvMonVoltageThresholdHigh, + ciscoEnvMonVoltageLastShutdown, + ciscoEnvMonVoltageState, + + ciscoEnvMonTemperatureStatusDescr, + ciscoEnvMonTemperatureStatusValue, + ciscoEnvMonTemperatureThreshold, + ciscoEnvMonTemperatureLastShutdown, + ciscoEnvMonTemperatureState, + + ciscoEnvMonFanStatusDescr, + ciscoEnvMonFanState, + + ciscoEnvMonSupplyStatusDescr, + ciscoEnvMonSupplyState, + ciscoEnvMonSupplySource, + + ciscoEnvMonAlarmContacts, + + ciscoEnvMonEnableShutdownNotification, + ciscoEnvMonEnableVoltageNotification, + ciscoEnvMonEnableTemperatureNotification, + ciscoEnvMonEnableFanNotification, + ciscoEnvMonEnableRedundantSupplyNotification + + } + STATUS deprecated + DESCRIPTION + "A collection of objects providing environmental + monitoring capability to a cisco chassis. This group + is deprecated in favour of ciscoEnvMonMIBGroupRev." + ::= { ciscoEnvMonMIBGroups 1 } + +ciscoEnvMonMIBGroupRev OBJECT-GROUP + OBJECTS { + ciscoEnvMonPresent, + + ciscoEnvMonVoltageStatusDescr, + ciscoEnvMonVoltageStatusValue, + ciscoEnvMonVoltageThresholdLow, + ciscoEnvMonVoltageThresholdHigh, + ciscoEnvMonVoltageLastShutdown, + ciscoEnvMonVoltageState, + + ciscoEnvMonTemperatureStatusDescr, + ciscoEnvMonTemperatureStatusValue, + ciscoEnvMonTemperatureThreshold, + ciscoEnvMonTemperatureLastShutdown, + ciscoEnvMonTemperatureState, + + ciscoEnvMonFanStatusDescr, + ciscoEnvMonFanState, + + ciscoEnvMonSupplyStatusDescr, + ciscoEnvMonSupplyState, + ciscoEnvMonSupplySource, + + ciscoEnvMonAlarmContacts, + + ciscoEnvMonEnableShutdownNotification + + } + STATUS current + DESCRIPTION + "A collection of objects providing environmental + monitoring capability to a cisco chassis." + ::= { ciscoEnvMonMIBGroups 2 } + +ciscoEnvMonEnableStatChangeGroup OBJECT-GROUP + OBJECTS { + ciscoEnvMonEnableStatChangeNotif + } + STATUS current + DESCRIPTION + "A collection of objects providing enabling/disabling + of the status change notifications for environmental + monitoring." + ::= { ciscoEnvMonMIBGroups 3 } + +ciscoEnvMonMIBNotifGroup NOTIFICATION-GROUP + NOTIFICATIONS { + ciscoEnvMonShutdownNotification + } + STATUS current + DESCRIPTION + "A notification group providing shutdown notification + for environmental monitoring. " + ::= { ciscoEnvMonMIBGroups 4 } + +ciscoEnvMonStatChangeNotifGroup NOTIFICATION-GROUP + NOTIFICATIONS { + ciscoEnvMonVoltStatusChangeNotif, + ciscoEnvMonTempStatusChangeNotif, + ciscoEnvMonFanStatusChangeNotif, + ciscoEnvMonSuppStatusChangeNotif + } + STATUS current + DESCRIPTION + "A collection of notifications providing the status + change for environmental monitoring." + ::= { ciscoEnvMonMIBGroups 5 } + +ciscoEnvMonMIBMiscNotifGroup NOTIFICATION-GROUP + NOTIFICATIONS { + ciscoEnvMonVoltageNotification, + ciscoEnvMonTemperatureNotification, + ciscoEnvMonFanNotification, + ciscoEnvMonRedundantSupplyNotification + } + STATUS deprecated + DESCRIPTION + "A collection of various notifications for the + enviromental monitoring mib module. The notifications + the group and the group are both in deprecated state. + The notifications in the group were deprecated in + favour of notifications in + ciscoEnvMonStatChangeNotifGroup." + ::= { ciscoEnvMonMIBGroups 6 } + +END + diff --git a/pandora_console/attachment/mibs/CISCO-MEMORY-POOL-MIB b/pandora_console/attachment/mibs/CISCO-MEMORY-POOL-MIB new file mode 100644 index 0000000000..be4db4c710 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-MEMORY-POOL-MIB @@ -0,0 +1,227 @@ +-- ***************************************************************** +-- CISCO-MEMORY-POOL-MIB +-- +-- February 1996, Jeffrey T. Johnson +-- +-- Copyright (c) 1996 by cisco Systems, Inc. +-- All rights reserved. +-- ***************************************************************** + +CISCO-MEMORY-POOL-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-TYPE, + Integer32, + Gauge32 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, + DisplayString, + TruthValue + FROM SNMPv2-TC + MODULE-COMPLIANCE, + OBJECT-GROUP + FROM SNMPv2-CONF + ciscoMgmt + FROM CISCO-SMI; + +ciscoMemoryPoolMIB MODULE-IDENTITY + LAST-UPDATED "9602120000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "MIB module for monitoring memory pools" + ::= { ciscoMgmt 48 } + +CiscoMemoryPoolTypes ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the different types of memory pools that + may be present in a managed device. Memory pools can + be roughly categorized into two groups, predefined + pools and dynamic pools. The following pool types + are currently predefined: + 1: processor memory + 2: i/o memory + 3: pci memory + 4: fast memory + 5: multibus memory + + Dynamic pools will have a pool type value greater than + any of the predefined types listed above. + + Note that only the processor pool is required to be + supported by all devices. Support for other pool types + is dependent on the device being managed." + SYNTAX Integer32 (1..65535) + +ciscoMemoryPoolObjects OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 1 } + +ciscoMemoryPoolTable OBJECT-TYPE + SYNTAX SEQUENCE OF CiscoMemoryPoolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of memory pool monitoring entries." + ::= { ciscoMemoryPoolObjects 1 } + +ciscoMemoryPoolEntry OBJECT-TYPE + SYNTAX CiscoMemoryPoolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the memory pool monitoring table." + INDEX { ciscoMemoryPoolType } + ::= { ciscoMemoryPoolTable 1 } + +CiscoMemoryPoolEntry ::= + SEQUENCE { + ciscoMemoryPoolType CiscoMemoryPoolTypes, + ciscoMemoryPoolName DisplayString, + ciscoMemoryPoolAlternate Integer32, + ciscoMemoryPoolValid TruthValue, + ciscoMemoryPoolUsed Gauge32, + ciscoMemoryPoolFree Gauge32, + ciscoMemoryPoolLargestFree Gauge32 + } + +ciscoMemoryPoolType OBJECT-TYPE + SYNTAX CiscoMemoryPoolTypes + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The type of memory pool for which this entry + contains information." + ::= { ciscoMemoryPoolEntry 1 } + +ciscoMemoryPoolName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual name assigned to the memory pool. This + object is suitable for output to a human operator, + and may also be used to distinguish among the various + pool types, especially among dynamic pools." + ::= { ciscoMemoryPoolEntry 2 } + +ciscoMemoryPoolAlternate OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether or not this memory pool has an + alternate pool configured. Alternate pools are + used for fallback when the current pool runs out + of memory. + + If an instance of this object has a value of zero, + then this pool does not have an alternate. Otherwise + the value of this object is the same as the value of + ciscoMemoryPoolType of the alternate pool." + ::= { ciscoMemoryPoolEntry 3 } + +ciscoMemoryPoolValid OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether or not the remaining objects in + this entry contain accurate data. If an instance + of this object has the value false (which in and of + itself indicates an internal error condition), the + values of the remaining objects in the conceptual row + may contain inaccurate information (specifically, the + reported values may be less than the actual values)." + ::= { ciscoMemoryPoolEntry 4 } + +ciscoMemoryPoolUsed OBJECT-TYPE + SYNTAX Gauge32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of bytes from the memory pool + that are currently in use by applications on the + managed device." + ::= { ciscoMemoryPoolEntry 5 } + +ciscoMemoryPoolFree OBJECT-TYPE + SYNTAX Gauge32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of bytes from the memory pool + that are currently unused on the managed device. + + Note that the sum of ciscoMemoryPoolUsed and + ciscoMemoryPoolFree is the total amount of memory + in the pool" + ::= { ciscoMemoryPoolEntry 6 } + +ciscoMemoryPoolLargestFree OBJECT-TYPE + SYNTAX Gauge32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the largest number of contiguous bytes + from the memory pool that are currently unused on + the managed device." + ::= { ciscoMemoryPoolEntry 7 } + +-- notifications + +ciscoMemoryPoolNotifications OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 2 } + +-- (no notifications are currently defined) + + +-- conformance information + +ciscoMemoryPoolConformance OBJECT IDENTIFIER ::= { ciscoMemoryPoolMIB 3 } +ciscoMemoryPoolCompliances OBJECT IDENTIFIER ::= { ciscoMemoryPoolConformance 1 } +ciscoMemoryPoolGroups OBJECT IDENTIFIER ::= { ciscoMemoryPoolConformance 2 } + + +-- compliance statements + +ciscoMemoryPoolCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for entities which implement + the Cisco Memory Pool MIB" + MODULE -- this module + MANDATORY-GROUPS { ciscoMemoryPoolGroup } + ::= { ciscoMemoryPoolCompliances 1 } + + +-- units of conformance + +ciscoMemoryPoolGroup OBJECT-GROUP + OBJECTS { + ciscoMemoryPoolName, + ciscoMemoryPoolAlternate, + ciscoMemoryPoolValid, + ciscoMemoryPoolUsed, + ciscoMemoryPoolFree, + ciscoMemoryPoolLargestFree + } + STATUS current + DESCRIPTION + "A collection of objects providing memory pool monitoring." + ::= { ciscoMemoryPoolGroups 1 } + + +END diff --git a/pandora_console/attachment/mibs/CISCO-MIB b/pandora_console/attachment/mibs/CISCO-MIB new file mode 100644 index 0000000000..3bcf5a5287 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-MIB @@ -0,0 +1,4381 @@ + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + -- cisco MIB* + + -- Wed Apr 8 14:37:15 1992 + + + -- cisco Systems, Inc. + -- 1525 O'Brien + -- Menlo Park, CA 94025 + + -- customer-service@cisco.com + + + + -- 1. Introduction + + -- This memo describes the variables that are implemented for + -- the cisco Systems, Inc. set of products including the + -- Gateway Server, Terminal Server, Trouter, and Protocol + -- Translator. The document relies upon the Structure of + -- Management Information (SMI), RFC1155. It is presented in + -- a format described in RFC1212, the Concise MIB document. + + -- This document describes the cisco local Management + -- Information Base (MIB) variables for + -- version 8.3 of the system software. + + + -- 2. Object Definitions + + CISCO-MIB { iso org(3) dod(6) internet(1) private(4) + enterprises(1) 9 } + + DEFINITIONS ::= BEGIN + + IMPORTS + enterprises, OBJECT-TYPE, NetworkAddress, IpAddress, + Counter, Gauge, TimeTicks + FROM RFC1155-SMI + ifIndex, ipAdEntAddr, ipRouteDest, tcpConnLocalAddress, + tcpConnLocalPort, tcpConnRemAddress, tcpConnRemPort + FROM RFC1213-MIB; + + + -- *This file is machine generated. Do not edit. + + + + + + + -- cisco MIB [Page 1] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + cisco OBJECT IDENTIFIER ::= { enterprises 9 } + + products OBJECT IDENTIFIER ::= { cisco 1 } + local OBJECT IDENTIFIER ::= { cisco 2 } + temporary OBJECT IDENTIFIER ::= { cisco 3 } + + gateway-server OBJECT IDENTIFIER ::= { products 1 } + terminal-server OBJECT IDENTIFIER ::= { products 2 } + trouter OBJECT IDENTIFIER ::= { products 3 } + protocol-translator OBJECT IDENTIFIER ::= { products 4 } + igs OBJECT IDENTIFIER ::= { products 5 } + + lsystem OBJECT IDENTIFIER ::= { local 1 } + linterfaces OBJECT IDENTIFIER ::= { local 2 } + lat OBJECT IDENTIFIER ::= { local 3 } + lip OBJECT IDENTIFIER ::= { local 4 } + licmp OBJECT IDENTIFIER ::= { local 5 } + ltcp OBJECT IDENTIFIER ::= { local 6 } + ludp OBJECT IDENTIFIER ::= { local 7 } + legp OBJECT IDENTIFIER ::= { local 8 } + lts OBJECT IDENTIFIER ::= { local 9 } + + decnet OBJECT IDENTIFIER ::= { temporary 1 } + xns OBJECT IDENTIFIER ::= { temporary 2 } + appletalk OBJECT IDENTIFIER ::= { temporary 3 } + novell OBJECT IDENTIFIER ::= { temporary 4 } + vines OBJECT IDENTIFIER ::= { temporary 5 } + + + + -- Product Section + + -- The product section contains the different product's + -- object identifiers. Each product has a unique object + -- identifier allocated from this section which is referenced + -- by the sysObjectID variable from RFC1156. + + -- gateway-server OBJECT IDENTIFIER ::= { products 1 } + -- terminal-server OBJECT IDENTIFIER ::= { products 2 } + -- trouter OBJECT IDENTIFIER ::= { products 3 } + -- protocol-translator OBJECT IDENTIFIER ::= { products 4 } + -- igs OBJECT IDENTIFIER ::= { products 5 } + + -- New products will be added at the end of this list. + + + + + + + -- cisco MIB [Page 2] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + -- Local Variable Section + + -- This section describes the local variables within the cisco + -- product line. Groups may or may not be present depending + -- on the software options present in the managed device. + + + -- Local System Group + + -- This group is present in all products. + + romId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains a printable octet + string which contains the System Bootstrap + description and version identification." + ::= { lsystem 1 } + + whyReload OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains a printable octet + string which contains the reason why the + system was last restarted." + ::= { lsystem 2 } + + hostName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable represents the name of the + host." + ::= { lsystem 3 } + + domainName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + + + + + + -- cisco MIB [Page 3] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + "This variable is the domain portion of the + domain name of the host." + ::= { lsystem 4 } + + authAddr OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains the last SNMP + authorization failure IP address." + ::= { lsystem 5 } + + bootHost OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the IP address of the host that + supplied the currently running software." + ::= { lsystem 6 } + + ping OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Supplies a way to ping a host from this + entity. The ping variable takes the following + instance identifiers: 1 - IP protocol ping. + IP - address to ping. integer - count of + packets to send. integer - size of ping + packet. integer - timeout delay between + packets." + ::= { lsystem 7 } + + freeMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Return the amount of free memory in bytes." + ::= { lsystem 8 } + + bufferElFree OBJECT-TYPE + + + + + + -- cisco MIB [Page 4] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free buffer + elements." + ::= { lsystem 9 } + + bufferElMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of buffer + elements." + ::= { lsystem 10 } + + bufferElHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of buffer element hits." + ::= { lsystem 11 } + + bufferElMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of buffer element + misses." + ::= { lsystem 12 } + + bufferElCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of buffer element + creates." + ::= { lsystem 13 } + + bufferSmSize OBJECT-TYPE + SYNTAX INTEGER + + + + + + -- cisco MIB [Page 5] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of small buffers." + ::= { lsystem 14 } + + bufferSmTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of small buffers." + ::= { lsystem 15 } + + bufferSmFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free small buffers." + ::= { lsystem 16 } + + bufferSmMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of small + buffers." + ::= { lsystem 17 } + + bufferSmHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer hits." + ::= { lsystem 18 } + + bufferSmMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer misses." + + + + + + -- cisco MIB [Page 6] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ::= { lsystem 19 } + + bufferSmTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer trims." + ::= { lsystem 20 } + + bufferSmCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer + creates." + ::= { lsystem 21 } + + bufferMdSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of medium buffers." + ::= { lsystem 22 } + + bufferMdTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of medium + buffers." + ::= { lsystem 23 } + + bufferMdFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free medium buffers." + ::= { lsystem 24 } + + bufferMdMax OBJECT-TYPE + + + + + + -- cisco MIB [Page 7] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of medium + buffers." + ::= { lsystem 25 } + + bufferMdHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer hits." + ::= { lsystem 26 } + + bufferMdMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer + misses." + ::= { lsystem 27 } + + bufferMdTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer trims." + ::= { lsystem 28 } + + bufferMdCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer + creates." + ::= { lsystem 29 } + + bufferBgSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + + + + + + -- cisco MIB [Page 8] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + STATUS mandatory + DESCRIPTION + "Contains the size of big buffers." + ::= { lsystem 30 } + + bufferBgTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of big buffers." + ::= { lsystem 31 } + + bufferBgFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free big buffers." + ::= { lsystem 32 } + + bufferBgMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of big buffers." + ::= { lsystem 33 } + + bufferBgHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer hits." + ::= { lsystem 34 } + + bufferBgMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer misses." + ::= { lsystem 35 } + + + + + + + -- cisco MIB [Page 9] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + bufferBgTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer trims." + ::= { lsystem 36 } + + bufferBgCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer creates." + ::= { lsystem 37 } + + bufferLgSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of large buffers." + ::= { lsystem 38 } + + bufferLgTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of large buffers." + ::= { lsystem 39 } + + bufferLgFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free large buffers." + ::= { lsystem 40 } + + bufferLgMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + + + + + + -- cisco MIB [Page 10] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + "Contains the maximum number of large + buffers." + ::= { lsystem 41 } + + bufferLgHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer hits." + ::= { lsystem 42 } + + bufferLgMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer misses." + ::= { lsystem 43 } + + bufferLgTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer trims." + ::= { lsystem 44 } + + bufferLgCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer + creates." + ::= { lsystem 45 } + + bufferFail OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of the number of buffer allocation + failures." + ::= { lsystem 46 } + + + + + + -- cisco MIB [Page 11] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + bufferNoMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of the number of buffer create + failures due to no free memory." + ::= { lsystem 47 } + + netConfigIP OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the IP address of the host that + supplied the network-confg file." + ::= { lsystem 48 } + + netConfigName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the name of the network configuration + file." + ::= { lsystem 49 } + + netConfigSet OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Permit the loading of a new network-confg + file using TFTP." + ::= { lsystem 50 } + + hostConfigIP OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the IP address of the host that + provided the host-config file." + ::= { lsystem 51 } + + + + + + + -- cisco MIB [Page 12] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + hostConfigName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the name of the last configured + host-confg file." + ::= { lsystem 52 } + + hostConfigSet OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Permit the loading of a new host-confg file + using TFTP." + ::= { lsystem 53 } + + writeMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Write configuration into non-volatile memory + / erase config memory if 0" + ::= { lsystem 54 } + + writeNet OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Write configuration to host using TFTP." + ::= { lsystem 55 } + + busyPer OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CPU busy percentage in the last 5 second + period. Not the last 5 realtime seconds but + the last 5 second period in the scheduler." + ::= { lsystem 56 } + + + + + + + -- cisco MIB [Page 13] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + avgBusy1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "1 minute exponentially-decayed moving + average of the CPU busy percentage." + ::= { lsystem 57 } + + avgBusy5 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5 minute exponentially-decayed moving + average of the CPU busy percentage." + ::= { lsystem 58 } + + idleCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "cisco internal variable. not to be used" + ::= { lsystem 59 } + + idleWired OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "cisco internal variable. not to be used" + ::= { lsystem 60 } + + ciscoContactInfo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "cisco's name and address" + ::= { lsystem 61 } + + bufferHgSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + + + + + + -- cisco MIB [Page 14] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + STATUS mandatory + DESCRIPTION + "Contains the size of huge buffers." + ::= { lsystem 62 } + + bufferHgTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of huge buffers." + ::= { lsystem 63 } + + bufferHgFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free huge buffers." + ::= { lsystem 64 } + + bufferHgMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of huge + buffers." + ::= { lsystem 65 } + + bufferHgHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer hits." + ::= { lsystem 66 } + + bufferHgMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer misses." + ::= { lsystem 67 } + + + + + + -- cisco MIB [Page 15] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + bufferHgTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer trims." + ::= { lsystem 68 } + + bufferHgCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer creates." + ::= { lsystem 69 } + + + -- Local Interface Group + + -- This group is present in all products. + + + -- Local Interface Table + + -- This group provides additional objects to the table + -- defined by RFC1156. + + lifTable OBJECT-TYPE + SYNTAX SEQUENCE OF LIfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of interface entries." + ::= { linterfaces 1 } + + lifEntry OBJECT-TYPE + SYNTAX LIfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of additional objects in the + cisco interface." + INDEX { ifIndex } + ::= { lifTable 1 } + + + + + + + -- cisco MIB [Page 16] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + LIfEntry ::= + SEQUENCE { + locIfHardType + DisplayString, + locIfLineProt + INTEGER, + locIfLastIn + INTEGER, + locIfLastOut + INTEGER, + locIfLastOutHang + INTEGER, + locIfInBitsSec + INTEGER, + locIfInPktsSec + INTEGER, + locIfOutBitsSec + INTEGER, + locIfOutPktsSec + INTEGER, + locIfInRunts + INTEGER, + locIfInGiants + INTEGER, + locIfInCRC + INTEGER, + locIfInFrame + INTEGER, + locIfInOverrun + INTEGER, + locIfInIgnored + INTEGER, + locIfInAbort + INTEGER, + locIfResets + INTEGER, + locIfRestarts + INTEGER, + locIfKeep + INTEGER, + locIfReason + DisplayString, + locIfCarTrans + INTEGER, + locIfReliab + + + + + + -- cisco MIB [Page 17] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + INTEGER, + locIfDelay + INTEGER, + locIfLoad + INTEGER, + locIfCollisions + INTEGER, + locIfInputQueueDrops + INTEGER, + locIfOutputQueueDrops + INTEGER + } + + + -- The following section describes the components of the + -- table. + + locIfHardType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Returns the type of interface." + ::= { lifEntry 1 } + + locIfLineProt OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Boolean whether interface line protocol is + up or not." + ::= { lifEntry 2 } + + locIfLastIn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Elapsed time in milliseconds since last + successful line protocol input packet was + received." + ::= { lifEntry 3 } + + locIfLastOut OBJECT-TYPE + + + + + + -- cisco MIB [Page 18] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Elapsed time in milliseconds since last + successful line protocol output packet was + transmitted." + ::= { lifEntry 4 } + + locIfLastOutHang OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Elapsed time in milliseconds since last line + protocol output packet could not be + successfully transmitted." + ::= { lifEntry 5 } + + locIfInBitsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute average of input bits per + second." + ::= { lifEntry 6 } + + locIfInPktsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute average of input packets per + second." + ::= { lifEntry 7 } + + locIfOutBitsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute average of output bits per + second." + ::= { lifEntry 8 } + + + + + + -- cisco MIB [Page 19] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + locIfOutPktsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute average of output packets per + second." + ::= { lifEntry 9 } + + locIfInRunts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of packets input which were smaller + then the allowable physical media permitted." + ::= { lifEntry 10 } + + locIfInGiants OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which were larger + then the physical media permitted." + ::= { lifEntry 11 } + + locIfInCRC OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which had cyclic + redundancy checksum errors." + ::= { lifEntry 12 } + + locIfInFrame OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packet which were + misaligned." + ::= { lifEntry 13 } + + + + + + + -- cisco MIB [Page 20] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + locIfInOverrun OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of input which arrived too quickly for + the to hardware receive." + ::= { lifEntry 14 } + + locIfInIgnored OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which were simply + ignored by this interface." + ::= { lifEntry 15 } + + locIfInAbort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which were aborted." + ::= { lifEntry 16 } + + locIfResets OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the interface internally + reset." + ::= { lifEntry 17 } + + locIfRestarts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times interface needed to be + completely restarted." + ::= { lifEntry 18 } + + locIfKeep OBJECT-TYPE + + + + + + -- cisco MIB [Page 21] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Boolean whether keepalives are enabled on + this interface." + ::= { lifEntry 19 } + + locIfReason OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Reason for interface last status change." + ::= { lifEntry 20 } + + locIfCarTrans OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times interface saw the carrier + signal transition." + ::= { lifEntry 21 } + + locIfReliab OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The reliability of the interface. Used by + IGRP." + ::= { lifEntry 22 } + + locIfDelay OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of delay in microseconds of the + interface. Used by IGRP." + ::= { lifEntry 23 } + + locIfLoad OBJECT-TYPE + SYNTAX INTEGER + + + + + + -- cisco MIB [Page 22] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The loading factor of the interface. Used by + IGRP." + ::= { lifEntry 24 } + + locIfCollisions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of output collisions detected on + this interface." + ::= { lifEntry 25 } + + locIfInputQueueDrops OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets dropped because the + input queue was full." + ::= { lifEntry 26 } + + locIfOutputQueueDrops OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets dropped because the + output queue was full." + ::= { lifEntry 27 } + + -- End of table + + + + -- Local IP Group + + -- This group is present in all products which are using the + -- IP protocol. + + + -- Local IP Address Table + + + + + + -- cisco MIB [Page 23] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + -- This group provides additional objects to the table + -- defined by RFC1156. + + lipAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF LIpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of IP address entries." + ::= { lip 1 } + + lipAddrEntry OBJECT-TYPE + SYNTAX LIpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of additional objects in the + cisco IP implementation." + INDEX { ipAdEntAddr } + ::= { lipAddrTable 1 } + + LIpAddrEntry ::= + SEQUENCE { + locIPHow + DisplayString, + locIPWho + NetworkAddress, + locIPHelper + NetworkAddress, + locIPSecurity + INTEGER, + locIPRedirects + INTEGER, + locIPUnreach + INTEGER + } + + + -- The following section describes the components of the + -- table. + + locIPHow OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + + + + + + -- cisco MIB [Page 24] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "Method of how this interface obtained its IP + address." + ::= { lipAddrEntry 1 } + + locIPWho OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IP address of who supplied this interface + its IP address." + ::= { lipAddrEntry 2 } + + locIPHelper OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IP helper address for broadcast forwarding + support." + ::= { lipAddrEntry 3 } + + locIPSecurity OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IP security level. See RFC 1038." + ::= { lipAddrEntry 4 } + + locIPRedirects OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Boolean whether ICMP redirects will be sent + or not." + ::= { lipAddrEntry 5 } + + locIPUnreach OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + + + + + + -- cisco MIB [Page 25] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + "Boolean whether ICMP unreachables will be + sent or not." + ::= { lipAddrEntry 6 } + + -- End of table + + + + -- Local IP Routing Table + + -- This group provides additional objects to the table + -- defined by RFC1156. + + lipRoutingTable OBJECT-TYPE + SYNTAX SEQUENCE OF LIpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of IP routing entries." + ::= { lip 2 } + + lipRouteEntry OBJECT-TYPE + SYNTAX LIpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of additional objects in the + cisco IP routing implementation." + INDEX { ipRouteDest } + ::= { lipRoutingTable 1 } + + LIpRouteEntry ::= + SEQUENCE { + locRtMask + NetworkAddress, + locRtCount + INTEGER, + locRtUses + INTEGER + } + + + -- The following section describes the components of the + -- table. + + + + + + + -- cisco MIB [Page 26] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + locRtMask OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Routing table network mask." + ::= { lipRouteEntry 1 } + + locRtCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of parallel routes within routing + table." + ::= { lipRouteEntry 2 } + + locRtUses OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times this route was used in a + forward operation." + ::= { lipRouteEntry 3 } + + -- End of table + + + actThresh OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Threshold of IP accounting records in use + before IP traffic will be discarded." + ::= { lip 4 } + + actLostPkts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Lost IP packets due to memory limitations." + ::= { lip 5 } + + + + + + -- cisco MIB [Page 27] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + actLostByts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total bytes of lost IP packets." + ::= { lip 6 } + + + -- Local IP Accounting Table + + -- This group provides access to the cisco IP accounting + -- support. + + lipAccountingTable OBJECT-TYPE + SYNTAX SEQUENCE OF LIpAccountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of IP accounting entries." + ::= { lip 7 } + + lipAccountEntry OBJECT-TYPE + SYNTAX LIpAccountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of objects necessary for IP + accounting." + INDEX { actSrc, actDst } + ::= { lipAccountingTable 1 } + + LIpAccountEntry ::= + SEQUENCE { + actSrc + NetworkAddress, + actDst + NetworkAddress, + actPkts + INTEGER, + actByts + INTEGER + } + + + + + + + + -- cisco MIB [Page 28] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + -- The following section describes the components of the + -- table. + + actSrc OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IP Source address for host traffic matrix." + ::= { lipAccountEntry 1 } + + actDst OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IP Destination address for host traffic + matrix." + ::= { lipAccountEntry 2 } + + actPkts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of IP packets sent from source to + destination." + ::= { lipAccountEntry 3 } + + actByts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of bytes in IP packets from + source to destination." + ::= { lipAccountEntry 4 } + + -- End of table + + + actAge OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + + + + + + -- cisco MIB [Page 29] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "The age of the data in the current data + matrix." + ::= { lip 8 } + + + -- Local IP Checkpoint Accounting Table + + -- This group provides access to the cisco + -- IP checkpoint accounting support. + + lipCkAccountingTable OBJECT-TYPE + SYNTAX SEQUENCE OF LIpCkAccountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of IP checkpoint accounting + entries." + ::= { lip 9 } + + lipCkAccountEntry OBJECT-TYPE + SYNTAX LIpCkAccountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of objects necessary for IP + checkpoint accounting." + INDEX { ckactSrc, ckactDst } + ::= { lipCkAccountingTable 1 } + + LIpCkAccountEntry ::= + SEQUENCE { + ckactSrc + NetworkAddress, + ckactDst + NetworkAddress, + ckactPkts + INTEGER, + ckactByts + INTEGER + } + + + -- The following section describes the components of the + -- table. + + + + + + -- cisco MIB [Page 30] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ckactSrc OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IP Source address for host in checkpoint + traffic matrix." + ::= { lipCkAccountEntry 1 } + + ckactDst OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IP Destination address for host in + checkpoint traffic matrix." + ::= { lipCkAccountEntry 2 } + + ckactPkts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of IP packets sent from source to + destination in checkpoint matrix." + ::= { lipCkAccountEntry 3 } + + ckactByts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of bytes in IP packets from + source to destination in checkpoint matrix." + ::= { lipCkAccountEntry 4 } + + -- End of table + + + ckactAge OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Age of data in the checkpoint matrix." + + + + + + -- cisco MIB [Page 31] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ::= { lip 10 } + + actCheckPoint OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Check points the accounting database. This + mib variable must be read and then set with + the same value for the check point to + succeed. The value read and then set will be + incremented after a successful set request" + ::= { lip 11 } + + ipNoaccess OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of packets dropped due to + access control failure." + ::= { lip 12 } + + + -- Local TCP Group + + -- This group is present in all products which are using the + -- TCP protocol. + + + -- Local TCP Connection Table + + -- This group provides additional objects to the table defined + -- by RFC1156. + + ltcpConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF LTcpConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of TCP connection entries." + ::= { ltcp 1 } + + ltcpConnEntry OBJECT-TYPE + SYNTAX LTcpConnEntry + + + + + + -- cisco MIB [Page 32] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of additional objects in the + cisco TCP implementation." + INDEX { tcpConnLocalAddress, tcpConnLocalPort, + tcpConnRemAddress, tcpConnRemPort} + ::= { ltcpConnTable 1 } + + LTcpConnEntry ::= + SEQUENCE { + loctcpConnInBytes + INTEGER, + loctcpConnOutBytes + INTEGER, + loctcpConnInPkts + INTEGER, + loctcpConnOutPkts + INTEGER, + loctcpConnElapsed + TimeTicks + } + + + -- The following section describes the components of the + -- table. + + loctcpConnInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Bytes input for this TCP connection." + ::= { ltcpConnEntry 1 } + + loctcpConnOutBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Bytes output for this TCP connection." + ::= { ltcpConnEntry 2 } + + loctcpConnInPkts OBJECT-TYPE + SYNTAX INTEGER + + + + + + -- cisco MIB [Page 33] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Packets input for this TCP connection." + ::= { ltcpConnEntry 3 } + + loctcpConnOutPkts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Packets output for this TCP connection." + ::= { ltcpConnEntry 4 } + + loctcpConnElapsed OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "How long this TCP connection has been + established." + ::= { ltcpConnEntry 5 } + + -- End of table + + + + -- Local cisco Terminal Server Group + + -- This group is present in all products which contain + -- asynchronous terminal lines. + + tsLines OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of physical lines on this device." + ::= { lts 1 } + + + -- Local Terminal Server Line Table + + -- This group contains terminal server specific + -- information on a per line basis. + + + + + + -- cisco MIB [Page 34] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ltsLineTable OBJECT-TYPE + SYNTAX SEQUENCE OF LTsLineEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of terminal server line entries." + ::= { lts 2 } + + ltsLineEntry OBJECT-TYPE + SYNTAX LTsLineEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of per TTY objects in the + cisco Terminal Server implementation." + INDEX { INTEGER } + ::= { ltsLineTable 1 } + + LTsLineEntry ::= + SEQUENCE { + tsLineActive + INTEGER, + tsLineType + INTEGER, + tsLineAutobaud + INTEGER, + tsLineSpeedin + INTEGER, + tsLineSpeedout + INTEGER, + tsLineFlow + INTEGER, + tsLineModem + INTEGER, + tsLineLoc + DisplayString, + tsLineTerm + DisplayString, + tsLineScrlen + INTEGER, + tsLineScrwid + INTEGER, + tsLineEsc + OCTET STRING, + tsLineTmo + + + + + + -- cisco MIB [Page 35] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + INTEGER, + tsLineSestmo + INTEGER, + tsLineRotary + INTEGER, + tsLineUses + INTEGER, + tsLineNses + INTEGER, + tsLineUser + DisplayString, + tsLineNoise + INTEGER + } + + + -- The following section describes the components of the + -- table. + + tsLineActive OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Boolean whether this line is active or not." + ::= { ltsLineEntry 1 } + + tsLineType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + console(2), + terminal(3), + line-printer(4), + virtual-terminal(5), + auxiliary(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Type of line." + ::= { ltsLineEntry 2 } + + tsLineAutobaud OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + + + + + + -- cisco MIB [Page 36] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + STATUS mandatory + DESCRIPTION + "Boolean whether line will autobaud or not." + ::= { ltsLineEntry 3 } + + tsLineSpeedin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "What input speed the line is running at." + ::= { ltsLineEntry 4 } + + tsLineSpeedout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "What output speed the line is running at." + ::= { ltsLineEntry 5 } + + tsLineFlow OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + none(2), + software-input(3), + software-output(4), + software-both(5), + hardware-input(6), + hardware-output(7), + hardware-both(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "What kind of flow control the line is + using." + ::= { ltsLineEntry 6 } + + tsLineModem OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + none(2), + call-in(3), + call-out(4), + + + + + + -- cisco MIB [Page 37] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + cts-required(5), + rs-is-cd(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "What kind of modem control the line is + using." + ::= { ltsLineEntry 7 } + + tsLineLoc OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Describes the line's physical location." + ::= { ltsLineEntry 8 } + + tsLineTerm OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Describes the line's terminal type." + ::= { ltsLineEntry 9 } + + tsLineScrlen OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Length in lines of the screen of terminal + attached to this line." + ::= { ltsLineEntry 10 } + + tsLineScrwid OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Width in characters of the screen of + terminal attached to this line." + ::= { ltsLineEntry 11 } + + tsLineEsc OBJECT-TYPE + + + + + + -- cisco MIB [Page 38] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Escape character used to break out of active + sessions." + ::= { ltsLineEntry 12 } + + tsLineTmo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Line idleness timeout in seconds." + ::= { ltsLineEntry 13 } + + tsLineSestmo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Session idleness timeout in seconds." + ::= { ltsLineEntry 14 } + + tsLineRotary OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Rotary group number the line belongs in." + ::= { ltsLineEntry 15 } + + tsLineUses OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times a connection has been made + to or from this line." + ::= { ltsLineEntry 16 } + + tsLineNses OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + + + + + + -- cisco MIB [Page 39] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "Current number of sessions in use on this + line." + ::= { ltsLineEntry 17 } + + tsLineUser OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "TACACS user name, if TACACS enabled, of user + on this line." + ::= { ltsLineEntry 18 } + + tsLineNoise OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of garbage characters received when + line inactive." + ::= { ltsLineEntry 19 } + + -- End of table + + + + -- Local Terminal Server Line Session Table + + -- This group contains terminal server specific + -- information on a per line and per session basis. + + ltsLineSessionTable OBJECT-TYPE + SYNTAX SEQUENCE OF LTsLineSessionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of terminal server line and session + entries." + ::= { lts 3 } + + ltsLineSessionEntry OBJECT-TYPE + SYNTAX LTsLineSessionEntry + ACCESS not-accessible + STATUS mandatory + + + + + + -- cisco MIB [Page 40] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "A collection of per session and per TTY + objects in the cisco Terminal Server + implementation." + INDEX { INTEGER, INTEGER } + ::= { ltsLineSessionTable 1 } + + LTsLineSessionEntry ::= + SEQUENCE { + tslineSesType + INTEGER, + tslineSesDir + INTEGER, + tslineSesAddr + NetworkAddress, + tslineSesName + DisplayString, + tslineSesCur + INTEGER, + tslineSesIdle + INTEGER + } + + + -- The following section describes the components of the + -- table. + + tslineSesType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + pad(2), + stream(3), + rlogin(4), + telnet(5), + tcp(6), + lat(7), + mop(8), + slip(9), + xremote(10) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Type of session." + ::= { ltsLineSessionEntry 1 } + + + + + + -- cisco MIB [Page 41] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + tslineSesDir OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + incoming(2), + outgoing(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Direction of session." + ::= { ltsLineSessionEntry 2 } + + tslineSesAddr OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Remote host address of session. [What about + PAD connections?]" + ::= { ltsLineSessionEntry 3 } + + tslineSesName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Remote host name of session." + ::= { ltsLineSessionEntry 4 } + + tslineSesCur OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Boolean whether session is the currently + active one." + ::= { ltsLineSessionEntry 5 } + + tslineSesIdle OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Time in seconds session has been idle." + ::= { ltsLineSessionEntry 6 } + + + + + + -- cisco MIB [Page 42] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + -- End of table + + + tsMsgTtyLine OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "tty line to send the message to. -1 will + send it to all tty lines" + ::= { lts 4 } + + tsMsgIntervaltim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Interval between reissuing message in + milliseconds. Minimum non-zero setting is + 10000. 0 will cause the routine to choose its + own intervals becoming more frequent as + MessageDuration gets close to expiring. + 2hr, 1hr, 30min, 5min, 1min" + ::= { lts 5 } + + tsMsgDuration OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Length of time to reissue message in + milliseconds. Minimum non-zero setting is + 10000. A setting of 0 will not repeat the + message." + ::= { lts 6 } + + tsMsgText OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Up to 256 characters that will make up the + message" + ::= { lts 7 } + + tsMsgTmpBanner OBJECT-TYPE + + + + + + -- cisco MIB [Page 43] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER { + no(1), + additive(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Should the message be used as a temporary + banner. 1 - No. 2 - In addition to the normal + banner" + ::= { lts 8 } + + tsMsgSend OBJECT-TYPE + SYNTAX INTEGER { + nothing(1), + reload(2), + messagedone(3), + abort(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Sends the message. The value determines what + to do after the message has completed." + ::= { lts 9 } + + + -- Temporary Variable Section + + -- This section is equivalent to the experimental + -- space defined by the SMI. It contains variables + -- that are useful to have but are beyond cisco's + -- ability to control and maintain. This section can + -- change from release to release without warning. + -- This document controls what is contained here for + -- this version. + + + -- Temporary DECNET Section + + -- This group is present in all router based products. + + dnForward OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + + + + + + -- cisco MIB [Page 44] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + STATUS mandatory + DESCRIPTION + "Total count of DECNET packets forwarded." + ::= { decnet 1 } + + dnReceived OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of total DECNET packets received." + ::= { decnet 2 } + + dnFormaterr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of DECNET packets received with + header errors." + ::= { decnet 3 } + + dnNotgateway OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of packets received while not + routing." + ::= { decnet 4 } + + dnNotimp OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of unknown control packets + received." + ::= { decnet 5 } + + dnHellos OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + + + + + + -- cisco MIB [Page 45] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + "Total number of Hellos received." + ::= { decnet 6 } + + dnBadhello OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of received bad Hellos." + ::= { decnet 7 } + + dnNotlong OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of received packets not in long + format." + ::= { decnet 8 } + + dnDatas OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of received data packets." + ::= { decnet 9 } + + dnBigaddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of too large addresses." + ::= { decnet 10 } + + dnNoroute OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of packets dropped due to no + route present." + ::= { decnet 11 } + + + + + + + -- cisco MIB [Page 46] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + dnNoencap OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of packets dropped due to + output encapsulation failure." + ::= { decnet 12 } + + dnLevel1s OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of Level 1 routing packets + received." + ::= { decnet 13 } + + dnBadlevel1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of bad Level 1 routing packets + received." + ::= { decnet 14 } + + dnToomanyhops OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of packets received which + visited too many nodes." + ::= { decnet 15 } + + dnHellosent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of Hellos output." + ::= { decnet 16 } + + dnLevel1sent OBJECT-TYPE + + + + + + -- cisco MIB [Page 47] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of Level 1 routing packets + sent." + ::= { decnet 17 } + + dnNomemory OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of memory requests denied." + ::= { decnet 18 } + + dnOtherhello OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of Hellos received from another + area." + ::= { decnet 19 } + + dnOtherlevel1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of Level 1 routing packets + received from another area." + ::= { decnet 20 } + + dnLevel2s OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of Level 2 routing packets + received." + ::= { decnet 21 } + + dnLevel2sent OBJECT-TYPE + SYNTAX INTEGER + + + + + + -- cisco MIB [Page 48] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of Level 2 routing packets + sent." + ::= { decnet 22 } + + dnNovector OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of missing routing vectors." + ::= { decnet 23 } + + dnOtherlevel2 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of received Level 2 routing + packets from another area." + ::= { decnet 24 } + + dnNoaccess OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of packets dropped due to + access control failure." + ::= { decnet 25 } + + dnAreaTable OBJECT-TYPE + SYNTAX SEQUENCE OF DnAreaTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "DECNET area routing table" + ::= { decnet 26 } + + dnAreaTableEntry OBJECT-TYPE + SYNTAX DnAreaTableEntry + ACCESS not-accessible + STATUS mandatory + + + + + + -- cisco MIB [Page 49] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "DECNET area routing table" + INDEX { dnArea } + ::= { dnAreaTable 1 } + + DnAreaTableEntry ::= + SEQUENCE { + dnArea + INTEGER, + dnACost + INTEGER, + dnAHop + INTEGER, + dnAIfIndex + INTEGER, + dnANextHop + OCTET STRING, + dnAAge + INTEGER, + dnAPrio + INTEGER + } + + + -- The following section describes the components of the + -- table. + + dnArea OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "DECNet area from the area table." + ::= { dnAreaTableEntry 1 } + + dnACost OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Cost of area in the area table." + ::= { dnAreaTableEntry 2 } + + dnAHop OBJECT-TYPE + SYNTAX INTEGER + + + + + + -- cisco MIB [Page 50] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of hops to area in the area table." + ::= { dnAreaTableEntry 3 } + + dnAIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index of interface to the next hop address + to the area. 0 denotes self." + ::= { dnAreaTableEntry 4 } + + dnANextHop OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Next hop DECNet address." + ::= { dnAreaTableEntry 5 } + + dnAAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Age in seconds of area route." + ::= { dnAreaTableEntry 6 } + + dnAPrio OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Priority of next hop router for area route." + ::= { dnAreaTableEntry 7 } + + -- End of table + + + dnHostTable OBJECT-TYPE + SYNTAX SEQUENCE OF DnHostTableEntry + ACCESS not-accessible + + + + + + -- cisco MIB [Page 51] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + STATUS mandatory + DESCRIPTION + "DECNET routing table" + ::= { decnet 27 } + + dnHostTableEntry OBJECT-TYPE + SYNTAX DnHostTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "DECNET routing table" + INDEX { INTEGER, INTEGER } + ::= { dnHostTable 1 } + + DnHostTableEntry ::= + SEQUENCE { + dnHost + INTEGER, + dnHCost + INTEGER, + dnHHop + INTEGER, + dnHIfIndex + INTEGER, + dnHNextHop + OCTET STRING, + dnHAge + INTEGER, + dnHPrio + INTEGER + } + + + -- The following section describes the components of the + -- table. + + dnHost OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "DECNet node address from the routing table." + ::= { dnHostTableEntry 1 } + + dnHCost OBJECT-TYPE + + + + + + -- cisco MIB [Page 52] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Cost of path to node in the routing table." + ::= { dnHostTableEntry 2 } + + dnHHop OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of hops to node in the routing + table." + ::= { dnHostTableEntry 3 } + + dnHIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index of interface to the next hop address + to the node. 0 denotes self." + ::= { dnHostTableEntry 4 } + + dnHNextHop OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Next hop DECNet address." + ::= { dnHostTableEntry 5 } + + dnHAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Age in seconds of route to node." + ::= { dnHostTableEntry 6 } + + dnHPrio OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + + + + + + -- cisco MIB [Page 53] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "Priority of next hop router for node." + ::= { dnHostTableEntry 7 } + + -- End of table + + + dnIfTable OBJECT-TYPE + SYNTAX SEQUENCE OF DnIfTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "DECNET interface table" + ::= { decnet 28 } + + dnIfTableEntry OBJECT-TYPE + SYNTAX DnIfTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "DECNET interface table" + INDEX { ifIndex } + ::= { dnIfTable 1 } + + DnIfTableEntry ::= + SEQUENCE { + dnIfCost + INTEGER + } + + + -- The following section describes the components of the + -- table. + + dnIfCost OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Cost of this interface." + ::= { dnIfTableEntry 1 } + + -- End of table + + + + + + + + -- cisco MIB [Page 54] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + -- Temporary XNS Section + + -- This group is present in all router based products. + + xnsInput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total input count of number of XNS packets." + ::= { xns 1 } + + xnsLocal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of XNS input packets for this + host." + ::= { xns 2 } + + xnsBcastin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS input broadcast + packets." + ::= { xns 3 } + + xnsForward OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS packets + forwarded." + ::= { xns 4 } + + xnsBcastout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS output + + + + + + -- cisco MIB [Page 55] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + broadcast packets." + ::= { xns 5 } + + xnsErrin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS Error input + packets." + ::= { xns 6 } + + xnsErrout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS Error output + packets." + ::= { xns 7 } + + xnsFormerr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS input packets + with header errors." + ::= { xns 8 } + + xnsChksum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS input packets + with checksum errors." + ::= { xns 9 } + + xnsNotgate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS input packets + + + + + + -- cisco MIB [Page 56] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + received while not routing." + ::= { xns 10 } + + xnsHopcnt OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS input packets + that have exceeded the maximum hop count." + ::= { xns 11 } + + xnsNoroute OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS packets dropped + due to no route." + ::= { xns 12 } + + xnsNoencap OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS packets dropped + due to output encapsulation failure." + ::= { xns 13 } + + xnsOutput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS output + packets." + ::= { xns 14 } + + xnsInmult OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS input multicast + + + + + + -- cisco MIB [Page 57] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + packets." + ::= { xns 15 } + + xnsUnknown OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of unknown XNS input + packets." + ::= { xns 16 } + + xnsFwdbrd OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS broadcast + packets forwarded." + ::= { xns 17 } + + xnsEchoreqin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS Echo request + packets received." + ::= { xns 18 } + + xnsEchoreqout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS Echo request + packets sent." + ::= { xns 19 } + + xnsEchorepin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS Echo reply + + + + + + -- cisco MIB [Page 58] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + packets received." + ::= { xns 20 } + + xnsEchorepout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of XNS Echo reply + packets sent." + ::= { xns 21 } + + + -- Temporary AppleTalk Section + + -- This group is present in all router based products. + + atInput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total input count of number of AppleTalk + packets." + ::= { appletalk 1 } + + atLocal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of AppleTalk input packets for + this host." + ::= { appletalk 2 } + + atBcastin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk input + broadcast packets." + ::= { appletalk 3 } + + atForward OBJECT-TYPE + + + + + + -- cisco MIB [Page 59] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk packets + forwarded." + ::= { appletalk 4 } + + atBcastout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk output + broadcast packets." + ::= { appletalk 5 } + + atChksum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk input + packets with checksum erors." + ::= { appletalk 7 } + + atNotgate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of AppleTalk input packets + received while not routing." + ::= { appletalk 8 } + + atHopcnt OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk input + packets that have exceeded the maximum hop + count." + ::= { appletalk 9 } + + + + + + + -- cisco MIB [Page 60] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + atNoaccess OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of AppleTalk packets dropped + due to access control." + ::= { appletalk 10 } + + atNoroute OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk packets + dropped due to no route." + ::= { appletalk 11 } + + atNoencap OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk packets + dropped due to output encapsulation failure." + ::= { appletalk 12 } + + atOutput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk output + packets." + ::= { appletalk 13 } + + atInmult OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk input + multicast packets." + ::= { appletalk 14 } + + + + + + + -- cisco MIB [Page 61] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + atRtmpin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk RTMP + packets received." + ::= { appletalk 15 } + + atRtmpout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk RTMP + packets sent." + ::= { appletalk 16 } + + atNbpin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk NBP + packets received." + ::= { appletalk 17 } + + atNbpout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk NBP + packets sent." + ::= { appletalk 18 } + + atAtp OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk ATP + packets received." + ::= { appletalk 19 } + + + + + + + -- cisco MIB [Page 62] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + atZipin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk ZIP + packets received." + ::= { appletalk 20 } + + atZipout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk ZIP + packets sent." + ::= { appletalk 21 } + + atEcho OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk Echo + packets received." + ::= { appletalk 22 } + + atEchoill OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of illegal AppleTalk + Echo packets received." + ::= { appletalk 23 } + + atDdpshort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of short AppleTalk DDP + packets received." + ::= { appletalk 24 } + + + + + + + -- cisco MIB [Page 63] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + atDdplong OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of long AppleTalk DDP + packets received." + ::= { appletalk 25 } + + atDdpbad OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of illegal sized + AppleTalk DDP packets received." + ::= { appletalk 26 } + + atNobuffer OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk packets + lost due to no memory." + ::= { appletalk 27 } + + atArpreq OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of input AppleTalk ARP + request packets." + ::= { appletalk 28 } + + atArpreply OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of AppleTalk ARP reply + packets output." + ::= { appletalk 29 } + + + + + + + -- cisco MIB [Page 64] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + atArpprobe OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of input AppleTalk ARP + probe packets." + ::= { appletalk 30 } + + atUnknown OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of unknown AppleTalk + input packets." + ::= { appletalk 31 } + + + -- Temporary Novell Section + + -- This group is present in all router based products. + + novellInput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total input count of number of NOVELL + packets." + ::= { novell 1 } + + novellBcastin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL input + broadcast packets." + ::= { novell 2 } + + novellForward OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + + + + + + -- cisco MIB [Page 65] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "Total count of number of NOVELL packets + forwarded." + ::= { novell 3 } + + novellBcastout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL output + broadcast packets." + ::= { novell 4 } + + novellFormerr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL input + packets with header errors." + ::= { novell 5 } + + novellChksum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL input + packets with checksum erors." + ::= { novell 6 } + + novellHopcnt OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL input + packets that have exceeded the maximum hop + count." + ::= { novell 7 } + + novellNoroute OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + + + + + + -- cisco MIB [Page 66] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL packets + dropped due to no route." + ::= { novell 8 } + + novellNoencap OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL packets + dropped due to output encapsulation failure." + ::= { novell 9 } + + novellOutput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL output + packets." + ::= { novell 10 } + + novellInmult OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL input + multicast packets." + ::= { novell 11 } + + novellLocal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of NOVELL input packets for this + host." + ::= { novell 12 } + + novellUnknown OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + + + + + + -- cisco MIB [Page 67] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + STATUS mandatory + DESCRIPTION + "Total count of number of unknown NOVELL + input packets." + ::= { novell 13 } + + novellSapreqin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL SAP request + packets received." + ::= { novell 14 } + + novellSapresin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL SAP response + packets received." + ::= { novell 15 } + + novellSapout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL SAP request + packets sent." + ::= { novell 16 } + + novellSapreply OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of NOVELL SAP reply + packets sent." + ::= { novell 17 } + + + -- Temporary Vines Section + + + + + + + -- cisco MIB [Page 68] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + -- This group is present in all router based products. + + vinesInput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total input count of number of Vines + packets." + ::= { vines 1 } + + vinesOutput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines output + packets." + ::= { vines 2 } + + vinesLocaldest OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of Vines input packets for this + host." + ::= { vines 3 } + + vinesForwarded OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines packets + forwarded." + ::= { vines 4 } + + vinesBcastin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines input + broadcast packets." + + + + + + -- cisco MIB [Page 69] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + ::= { vines 5 } + + vinesBcastout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines output + broadcast packets." + ::= { vines 6 } + + vinesBcastfwd OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines broadcast + packets forwarded." + ::= { vines 7 } + + vinesNotlan OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines broadcast + packets not forwarded to all interfaces + because the LAN ONLY bit was set." + ::= { vines 8 } + + vinesNotgt4800 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines broadcast + packets not forwarded to all interfaces + because the OVER 4800 BPS bit was set." + ::= { vines 9 } + + vinesNocharges OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + + + + + + -- cisco MIB [Page 70] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + "Total count of number of Vines broadcast + packets not forwarded to all interfaces + because the NO CHARGES only bit was set." + ::= { vines 10 } + + vinesFormaterror OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines input packets + with header errors." + ::= { vines 11 } + + vinesCksumerr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines input packets + with checksum erors." + ::= { vines 12 } + + vinesHopcount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines input packets + that have exceeded the maximum hop count." + ::= { vines 13 } + + vinesNoroute OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines packets + dropped due to no route." + ::= { vines 14 } + + vinesEncapsfailed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + + + + + + -- cisco MIB [Page 71] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "Total count of number of Vines packets + dropped due to output encapsulation failed." + ::= { vines 15 } + + vinesUnknown OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of unknown Vines input + packets." + ::= { vines 16 } + + vinesIcpIn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines ICP packets + received." + ::= { vines 17 } + + vinesIcpOut OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines ICP packets + generaed." + ::= { vines 18 } + + vinesMetricOut OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines ICP Metric + Notification packets generated." + ::= { vines 19 } + + vinesMacEchoIn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + + + + + + -- cisco MIB [Page 72] +-- + + + + + + -- Request for Comments: Draft cisco Systems, Inc. + + + DESCRIPTION + "Total count of number of Vines MAC level + Echo packets received." + ::= { vines 20 } + + vinesMacEchoOut OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines MAC level + Echo packets generated." + ::= { vines 21 } + + vinesEchoIn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines Echo packets + received." + ::= { vines 22 } + + vinesEchoOut OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total count of number of Vines Echo packets + generated." + ::= { vines 23 } + END + + + + + + + + + + + + + + + + + + + -- cisco MIB [Page 73] +-- + diff --git a/pandora_console/attachment/mibs/CISCO-PING-MIB.my.txt b/pandora_console/attachment/mibs/CISCO-PING-MIB.my.txt new file mode 100644 index 0000000000..e776c419d6 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-PING-MIB.my.txt @@ -0,0 +1,451 @@ +-- ***************************************************************** +-- CISCO-PING-MIB.my: Cisco Ping MIB file +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-2000, 2001 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** + +CISCO-PING-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-TYPE, + NOTIFICATION-TYPE, + Integer32, + Counter32 + FROM SNMPv2-SMI + TruthValue, + RowStatus + FROM SNMPv2-TC + MODULE-COMPLIANCE, + OBJECT-GROUP, + NOTIFICATION-GROUP + FROM SNMPv2-CONF + OwnerString + FROM IF-MIB + ciscoMgmt + FROM CISCO-SMI + CiscoNetworkProtocol, + CiscoNetworkAddress + FROM CISCO-TC; + +ciscoPingMIB MODULE-IDENTITY + LAST-UPDATED "200108280000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "Modified description of ciscoPingAddress object." + REVISION "200108280000Z" + DESCRIPTION + "Added VPN name to notifications" + REVISION "200105140000Z" + DESCRIPTION + "Add VrfName attribute to support VPN ping" + REVISION "9910080000Z" + DESCRIPTION + "" + REVISION "9411110000Z" + DESCRIPTION + "Redefined Ping completion trap." + REVISION "9407220000Z" + DESCRIPTION + "Initial version of this MIB module." + ::= { ciscoMgmt 16 } + + +ciscoPingMIBObjects OBJECT IDENTIFIER ::= { ciscoPingMIB 1 } + +ciscoPingTable OBJECT-TYPE + SYNTAX SEQUENCE OF CiscoPingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of ping request entries." + ::= { ciscoPingMIBObjects 1 } + +ciscoPingEntry OBJECT-TYPE + SYNTAX CiscoPingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A ping request entry. + + A management station wishing to create an entry should + first generate a pseudo-random serial number to be used + as the index to this sparse table. The station should + then create the associated instance of the row status + and row owner objects. It must also, either in the same + or in successive PDUs, create the associated instance of + the protocol and address objects. It should also modify + the default values for the other configuration objects + if the defaults are not appropriate. + + Once the appropriate instance of all the configuration + objects have been created, either by an explicit SNMP + set request or by default, the row status should be set + to active to initiate the request. Note that this entire + procedure may be initiated via a single set request which + specifies a row status of createAndGo as well as specifies + valid values for the non-defaulted configuration objects. + + Once the ping sequence has been activated, it cannot be + stopped -- it will run until the configured number of + packets have been sent. + + Once the sequence completes, the management station should + retrieve the values of the status objects of interest, and + should then delete the entry. In order to prevent old + entries from clogging the table, entries will be aged out, + but an entry will never be deleted within 5 minutes of + completing." + INDEX { ciscoPingSerialNumber } + ::= { ciscoPingTable 1 } + + +CiscoPingEntry ::= + SEQUENCE { + -- index + ciscoPingSerialNumber Integer32, + -- configuration items + ciscoPingProtocol CiscoNetworkProtocol, + ciscoPingAddress CiscoNetworkAddress, + ciscoPingPacketCount Integer32, + ciscoPingPacketSize Integer32, + ciscoPingPacketTimeout Integer32, + ciscoPingDelay Integer32, + ciscoPingTrapOnCompletion TruthValue, + -- status items + ciscoPingSentPackets Counter32, + ciscoPingReceivedPackets Counter32, + ciscoPingMinRtt Integer32, + ciscoPingAvgRtt Integer32, + ciscoPingMaxRtt Integer32, + ciscoPingCompleted TruthValue, + ciscoPingEntryOwner OwnerString, + ciscoPingEntryStatus RowStatus, + ciscoPingVrfName OCTET STRING + } + + +ciscoPingSerialNumber OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Object which specifies a unique entry in the + ciscoPingTable. A management station wishing + to initiate a ping operation should use a + pseudo-random value for this object when creating + or modifying an instance of a ciscoPingEntry. + The RowStatus semantics of the ciscoPingEntryStatus + object will prevent access conflicts." + ::= { ciscoPingEntry 1 } + +ciscoPingProtocol OBJECT-TYPE + SYNTAX CiscoNetworkProtocol + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The protocol to use. + Once an instance of this object is created, its + value can not be changed." + ::= { ciscoPingEntry 2 } + +ciscoPingAddress OBJECT-TYPE + SYNTAX CiscoNetworkAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The address of the device to be pinged. + An instance of this object cannot be created until the + associated instance of ciscoPingProtocol is created." + ::= { ciscoPingEntry 3 } + +ciscoPingPacketCount OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the number of ping packets to send to the target + in this sequence." + DEFVAL { 5 } + ::= { ciscoPingEntry 4 } + +ciscoPingPacketSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the size of ping packets to send to the target + in this sequence. The lower and upper boundaries of this + object are protocol-dependent. + An instance of this object cannot be modified unless the + associated instance of ciscoPingProtocol has been created + (so as to allow protocol-specific range checking on the + new value)." + DEFVAL { 100 } + ::= { ciscoPingEntry 5 } + +ciscoPingPacketTimeout OBJECT-TYPE + SYNTAX Integer32 (0..3600000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the amount of time to wait for a response to a + transmitted packet before declaring the packet 'dropped.'" + DEFVAL { 2000 } + ::= { ciscoPingEntry 6 } + +ciscoPingDelay OBJECT-TYPE + SYNTAX Integer32 (0..3600000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the minimum amount of time to wait before sending + the next packet in a sequence after receiving a response or + declaring a timeout for a previous packet. The actual delay + may be greater due to internal task scheduling." + DEFVAL { 0 } + ::= { ciscoPingEntry 7 } + +ciscoPingTrapOnCompletion OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies whether or not a ciscoPingCompletion trap should + be issued on completion of the sequence of pings. If such a + trap is desired, it is the responsibility of the management + entity to ensure that the SNMP administrative model is + configured in such a way as to allow the trap to be delivered." + DEFVAL { false } + ::= { ciscoPingEntry 8 } + +ciscoPingSentPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ping packets that have been sent to the target + in this sequence." + ::= { ciscoPingEntry 9 } + +ciscoPingReceivedPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ping packets that have been received from the + target in this sequence." + ::= { ciscoPingEntry 10 } + +ciscoPingMinRtt OBJECT-TYPE + SYNTAX Integer32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum round trip time of all the packets that have + been sent in this sequence. + + This object will not be created until the first ping + response in a sequence is received." + ::= { ciscoPingEntry 11 } + +ciscoPingAvgRtt OBJECT-TYPE + SYNTAX Integer32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average round trip time of all the packets that have + been sent in this sequence. + + This object will not be created until the first ping + response in a sequence is received." + ::= { ciscoPingEntry 12 } + +ciscoPingMaxRtt OBJECT-TYPE + SYNTAX Integer32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum round trip time of all the packets that have + been sent in this sequence. + + This object will not be created until the first ping + response in a sequence is received." + ::= { ciscoPingEntry 13 } + +ciscoPingCompleted OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Set to true when all the packets in this sequence have been + either responded to or timed out." + ::= { ciscoPingEntry 14 } + +ciscoPingEntryOwner OBJECT-TYPE + SYNTAX OwnerString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The entity that configured this entry." + ::= { ciscoPingEntry 15 } + +ciscoPingEntryStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this table entry. Once the entry status is + set to active, the associate entry cannot be modified until + the sequence completes (ciscoPingCompleted is true)." + ::= { ciscoPingEntry 16 } + + +ciscoPingVrfName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This field is used to specify the VPN name in + which the ping will be used. For regular ping this + field should not be configured. The agent will use + this field to identify the VPN routing Table for + this ping. This is the same ascii string used in + the CLI to refer to this VPN. " + DEFVAL { "" } + ::= { ciscoPingEntry 17 } + + +ciscoPingMIBTrapPrefix OBJECT IDENTIFIER ::= { ciscoPingMIB 2 } +ciscoPingMIBTraps OBJECT IDENTIFIER ::= { ciscoPingMIBTrapPrefix 0 } + +ciscoPingCompletion NOTIFICATION-TYPE + OBJECTS { ciscoPingCompleted, + ciscoPingSentPackets, + ciscoPingReceivedPackets + } + STATUS current + DESCRIPTION + "A ciscoPingCompleted trap is sent at the completion + of a sequence of pings if such a trap was requested + when the sequence was initiated. In addition to the + above listed objects (which are always present), + the message will contain the following objects if + any responses were received: + ciscoPingMinRtt + ciscoPingAvgRtt + ciscoPingMaxRtt + It will also contain the following object if the ping + is to a VPN address: + ciscoPingVrfName" + ::= { ciscoPingMIBTraps 1 } + + +-- conformance information + +ciscoPingMIBConformance OBJECT IDENTIFIER ::= { ciscoPingMIB 3 } +ciscoPingMIBCompliances OBJECT IDENTIFIER ::= { ciscoPingMIBConformance 1 } +ciscoPingMIBGroups OBJECT IDENTIFIER ::= { ciscoPingMIBConformance 2 } + + +-- compliance statements + +ciscoPingMIBCompliance MODULE-COMPLIANCE + STATUS obsolete + DESCRIPTION + "The compliance statement for entities which implement + the Cisco Ping MIB" + MODULE -- this module + MANDATORY-GROUPS { ciscoPingMIBGroup } + ::= { ciscoPingMIBCompliances 1 } + +ciscoPingMIBComplianceVpn MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for entities which implement + the Cisco Ping MIB" + MODULE -- this module + MANDATORY-GROUPS { ciscoPingMIBGroupVpn } + ::= { ciscoPingMIBCompliances 2 } + +-- units of conformance + +ciscoPingMIBGroup OBJECT-GROUP + OBJECTS { + ciscoPingProtocol, + ciscoPingAddress, + ciscoPingPacketCount, + ciscoPingPacketSize, + ciscoPingPacketTimeout, + ciscoPingDelay, + ciscoPingTrapOnCompletion, + ciscoPingSentPackets, + ciscoPingReceivedPackets, + ciscoPingMinRtt, + ciscoPingAvgRtt, + ciscoPingMaxRtt, + ciscoPingCompleted, + ciscoPingEntryOwner, + ciscoPingEntryStatus + } + STATUS obsolete + DESCRIPTION + "A collection of objects providing ping (echo) ability to a + Cisco agent." + ::= { ciscoPingMIBGroups 1 } + +ciscoPingMIBGroupVpn OBJECT-GROUP + OBJECTS { + ciscoPingProtocol, + ciscoPingAddress, + ciscoPingPacketCount, + ciscoPingPacketSize, + ciscoPingPacketTimeout, + ciscoPingDelay, + ciscoPingTrapOnCompletion, + ciscoPingSentPackets, + ciscoPingReceivedPackets, + ciscoPingMinRtt, + ciscoPingAvgRtt, + ciscoPingMaxRtt, + ciscoPingCompleted, + ciscoPingEntryOwner, + ciscoPingEntryStatus, + ciscoPingVrfName + } + STATUS current + DESCRIPTION + "A collection of objects providing ping (echo) ability to a + Cisco agent." + ::= { ciscoPingMIBGroups 2 } + +ciscoPingMIBNotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { ciscoPingCompletion + + } + STATUS current + DESCRIPTION + "Set of notifications implemented in this module." + ::= { ciscoPingMIBGroups 3 } + +END diff --git a/pandora_console/attachment/mibs/CISCO-RTTMON-MIB b/pandora_console/attachment/mibs/CISCO-RTTMON-MIB new file mode 100644 index 0000000000..30043db002 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-RTTMON-MIB @@ -0,0 +1,8909 @@ +-- ***************************************************************** +-- Response Time Monitor Mib. +-- +-- March 1996, Larry Metzger +-- +-- Copyright (c) 1995-2005 by cisco Systems, Inc. +-- All rights reserved. +-- ***************************************************************** +-- + + +CISCO-RTTMON-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-TYPE, + NOTIFICATION-TYPE, + Integer32, + Counter32, + Gauge32, + TimeTicks + FROM SNMPv2-SMI + + NOTIFICATION-GROUP, + MODULE-COMPLIANCE, + OBJECT-GROUP + FROM SNMPv2-CONF + + StorageType, + DisplayString, + TruthValue, + RowStatus, + TimeInterval, + TimeStamp + FROM SNMPv2-TC + + ciscoMgmt + FROM CISCO-SMI + + OwnerString + FROM IF-MIB + + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB + + RttReset, + RttMonOperation, + RttResponseSense, + RttMonRttType, + RttMplsVpnMonRttType, + RttMplsVpnMonLpdFailureSense, + RttMplsVpnMonLpdGrpStatus, + RttMonProtocol, + RttMonCodecType, + RttMonLSPPingReplyMode, + RttMonTargetAddress, + RttMonReactVar + FROM CISCO-RTTMON-TC-MIB +; + +ciscoRttMonMIB MODULE-IDENTITY + LAST-UPDATED "200508110000Z" + ORGANIZATION "Cisco IOS" + CONTACT-INFO + "Cisco Systems, Inc. + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + + Tel: +1 800 553 NETS + + cs-ipsla@cisco.com" + DESCRIPTION + "This module defines a MIB for Round Trip Time + (RTT) monitoring of a list of targets, using a + variety of protocols. + + The table structure overview is a follows (t: + indicates a table, at: indicates an augmented + table, and it: indicates table with the same + indices/control as parent table): + + RTTMON MIB + |--- Application Group + | |--- Application Identity + | |--- Application Capabilities + | |--- Application Reset + | |t-- Supported RTT Types + | |--- Truth Value + | |t-- Supported Protocols + | |--- Truth Value + | |t-- Application Preconfigured + | |--- Script Names + | |--- File Paths + | |--- Responder control + | |t-- Control Protocol Authentication + | + |--- Overall Control Group + | |t-- Master Definitions Table + | | |--- Global Configuration Definitions + | | |--- Config for a single RTT Life + | | |it- Echo Specific Configuration + | | |it- Echo Path Hop Address Configuration + | | |it- File I/O Specific Configuration + | | |it- Script Specific Configuration + | | |at- Schedule Configuration + | | |at- Reaction Specific Config + | | |at- Statistics Capture Configuration + | | |at- History Collection Configuration + | | |at- Monitoring Operational State + | | |at- Last RTT operation + | | + | |t-- Reaction Trigger Table + | |at- Reaction Trigger Operational State + | + |--- Statistics Collection Group + | |t-- Statistics Capture Table + | |--- Captured Statistics + | |--- Path Information + | |--- Distribution Capture + | |--- Mean and Deviation Capture + | |it- Statistics Collection Table + | |it- Statistics Totals Table + | |t-- HTTP Stats Table + | |t-- Jitter Stats Table + | + |--- History Collection Group + | |t-- History Collection Table + | |-- Path Information + | |-- Completion Information per operation + | + |--- Latest Operation Group + | |t-- Latest HTTP Oper Table + | |t-- Latest Jitter Oper Table + + DEFINITIONS: + conceptual RTT control row - + This is a row in the 'Overall Control + Group'. This row is indexed via the + rttMonCtrlAdminIndex object. This row + is spread across multiple real tables + in the 'Overall Control Group'. + probe - + This is the entity that executes via a + conceptual RTT control row and populates + a conceptual statistics row and a + conceptual history row. + Rtt operation - + This is a single operation performed by + a probe. This operation can be a single + Rtt attempt/completion or a group of Rtt + attempts/completions that produce one + operation table entry. + + ARR Protocol Definition: + + The format of the RTT Asymmetric Request/Responses + (ARR) protocol is as follows: + + The ARR Header (total of 12 octets): + + 4 octet -> eyecatcher: 'WxYz' + 1 octet -> version : 0x01 - protocol version + 1 octet -> command : 0x01 - logoff request + 0x02 - echo request + 0x03 - echo response + 0x04 - software version request + 0x05 - software version response + 2 octet -> sequence number (Network Byte Order) + 4 octet -> response data size (Network Byte Order) + + The ARR Data: + + n octets -> request/response data + : 'AB..ZAB..ZAB..' + + For software version request/response the + protocol version octet will contain the version + number of the responder. Thus the sequence + number, etc will not be included. + + For snaLU0EchoAppl and snaLU2EchoAppl all character + fields will be in EBCDIC. + + The response data should be appended to the + origin request data. This allows data + verification to check the data that flows in + both directions. If the response data size is + smaller than the request data size the original + request data will be truncated. + + An example would be: + Request: / Response: + 'WxYz' / 'WxYz' + 0x01 / 0x01 + 0x02 / 0x03 + 0x0001 / 0x0001 + 0x00000008 / 0x00000008 + 'ABCDEF' / 'ABCDEFGH' + + NOTE: We requested 8 bytes in the response and + the response had 8 bytes. The size of the + request data has no correlation to the + size of the response data. + + NOTE: For native RTT request/response (i.e. + ipIcmpecho) operations both the 'Header' + and 'Data' will be included. Only the + 'sequence number' in the Header will be + valid. + + NOTE: For non-connection oriented protocol the + initial RTT request/response operation will + be preceded with an RTT request/response + operation to the target address to force + path exploration and to prove + connectivity. The History collection table + will contain these responses, but the + Statistics capture table will omit them to + prevent skewed results." + + REVISION "200508110000Z" + DESCRIPTION + "- TEXTUAL Conventions previously defined in the MIB are defined + in CISCO-RTTMON-TC-MIB." + + REVISION "200504210000Z" + DESCRIPTION + "- Added new objects given in ciscoCtrlGroupRev4 to + rttMonGrpScheduleAdminTable. + - Changed description of object rttMonHTTPStatsRTTMax." + + REVISION "200501040000Z" + DESCRIPTION + "Added two new rttMonRttType's rtp and lspGroup. Added a new + object rttMonApplLpdGrpStatsReset to reset the LPD Group Stats. + Added rttMonLpdGrpStatsTable for supporting LSP Path Discovery. + Added two new notifications rttMonLpdDiscoveryNotification + and rttMonLpdGrpStatusNotification. + Added and modified descriptions of some objects in + rttMplsVpnMonCtrlTable, rttMplsVpnMonTypeTable and + rttMplsVpnMonReactTable for LSP Path Discovery. + Added 6 options in the rttMonReactVar. + Added rttMonEchoAdminSourceVoicePort and + rttMonEchoAdminCallDuration in rttMonEchoAdminTable." + + REVISION "200408260000Z" + DESCRIPTION + "Added a table rttMonReactTable, which defines the + the reaction configurations for the probes. + Deprecated the old reaction table rttMonReactAdminTable. + This is replaced by the new table (rttMonReactTable). + Depreacted the notification types + rttMonConnectionChangeNotification + rttMonTimeoutNotification + rttMonThresholdNotification + rttMonVerifyErrorNotification + Added new notification type rttMonNotification. + Added two objects, rttMonGrpScheduleAdminFreqMax + and rttMonGrpScheduleAdminFreqMin to table + rttMonGrpScheduleAdminTable." + + REVISION "200405180000Z" + DESCRIPTION + "- Add the following fields for VoIP GK registration delay: + RttMonEchoAdminEntry: + rttMonEchoAdminGKRegistration + - Add the following fields for VoIP Post dial delay: + RttMonOperation: + voipDTAlertRinging(6), + voipDTConnectOK(7) + RttMonRttType: + voip(13) + RttMonProtocol: + voipAppl(31) + RttMonEchoAdminEntry: + rttMonEchoAdminCalledNumber + rttMonEchoAdminDetectPoint + - Add HTTP code 301, 302 as non-error scenario. + - Modify description for rttMonEchoAdminNameServer: + it is applicable for DNS and HTTP probe. + - Modify rttMonCtrlAdminFrequency range + from Integer32 (0..604800) to (1..604800) + - Added following new objects for jitter probe precision + and other improvements: + rttMonEchoAdminPrecision, rttMonEchoAdminProbePakPriority, + rttMonJitterStatsIAJOut, rttMonJitterStatsIAJIn, + rttMonJitterStatsAvgJitter, rttMonJitterStatsAvgJitterSD, + rttMonJitterStatsAvgJitterDS, rttMonJitterStatsUnSyncRTs, + rttMonLatestJitterOperIAJIn, rttMonLatestJitterOperAvgJitter, + rttMonLatestJitterOperAvgSDJ, rttMonLatestJitterOperAvgDSJ, + rttMonLatestJitterOperOWAvgSD, rttMonLatestJitterOperOWAvgDS, + rttMonLatestJitterOperIAJOut, rttMonLatestJitterOperNTPState, + rttMonEchoAdminOWNTPSyncTolAbs, + rttMonEchoAdminOWNTPSyncTolPct, + rttMonEchoAdminOWNTPSyncTolType, + rttMonLatestJitterOperUNSyncRTs" + + REVISION "200401200000Z" + DESCRIPTION + "Created new tables for Auto SAA L3 MPLS VPN. + rttMplsVpnMonCtrlTable + rttMplsVpnMonTypeTable + rttMplsVpnMonScheduleTable + rttMplsVpnMonReactTable. + Modified MIB for creation of echo and pathecho operations based + on MPLS LSP Ping." + + REVISION "200308110000Z" + DESCRIPTION + "Added 1 object rttMonScheduleAdminRttRecurring to the + rttMonScheduleAdminTable. Added a new table + rttMonGrpScheduleAdminTable for group scheduling. This table + contains the following objects + rttMonGrpScheduleAdminIndex + rttMonGrpScheduleAdminProbes + rttMonGrpScheduleAdminPeriod + rttMonGrpScheduleAdminFrequency + rttMonGrpScheduleAdminLife + rttMonGrpScheduleAdminAgeout + rttMonGrpScheduleAdminStatus. + Modified the default value of rttMonReactTriggerAdminStatus + from createAndGo to no default value. Corrected the Revision + clause specified for the existing and all the earlier + submissions." + + REVISION "200305210000Z" + DESCRIPTION + "Range for rttMonLatestJitterOperMOS, rttMonJitterStatsMinOfMOS + and rttMonJitterStatsMaxOfMOS to be changed to 100..500 + instead of 1..5. Modifying the range of rttMonApplProbeCapacity + and rttMonApplNumCtrlAdminEntry to 1..10000.Added value other(0) + for RttResponseSense and changed the range of objects + rttMonLatestRttOperApplSpecificSense and + rttMonHistoryCollectionApplSpecificSense to 0..2147483647. + Added range for rttMonApplAuthIndex. " + + REVISION "200304150000Z" + DESCRIPTION + "Removed default values from + rttMonEchoAdminCodecInterval + rttMonEchoAdminCodecPayload + rttMonEchoAdminCodecNumPackets. + Corrected some typos in the earliar revision." + + REVISION "200303120000Z" + DESCRIPTION + "Added 5 objects in the rttMonEchoAdminTable to support + codec configuration. + Added few objects in rttMonLatestJitterOperTable and + rttMonJitterStatsTable for ICPIF (Calculated Planning + Impairment Factor) and MOS (Mean Opinion Score) scores." + + REVISION "200011030000Z" + DESCRIPTION + "deprecated 4 objects in the rttMonJitterStatsTable + and added the same objects with a SYNTAX of Gauge32. + Also added the capability to specify a VrfName." + + REVISION "9906150000Z" + DESCRIPTION "created rttMonAuthTable." + ::= { ciscoMgmt 42 } + +-- +-- Round Trip Time (RTT) Monitor MIB Objects +-- + +ciscoRttMonObjects OBJECT IDENTIFIER ::= { ciscoRttMonMIB 1 } + +-- +-- Round Trip Time Monitoring Object Groups +-- + +rttMonAppl OBJECT IDENTIFIER ::= { ciscoRttMonObjects 1 } +rttMonCtrl OBJECT IDENTIFIER ::= { ciscoRttMonObjects 2 } +rttMonStats OBJECT IDENTIFIER ::= { ciscoRttMonObjects 3 } +rttMonHistory OBJECT IDENTIFIER ::= { ciscoRttMonObjects 4 } +rttMonLatestOper OBJECT IDENTIFIER ::= { ciscoRttMonObjects 5 } + +-- +-- GLOBAL RTT MONITORING VARIABLES +-- + +rttMonApplVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Round Trip Time monitoring application version + string. + + The format will be: + + 'Version.Release.Patch-Level: Textual-Description' + + For example: '1.0.0: Initial RTT Application'" + ::= { rttMonAppl 1 } + + +rttMonApplMaxPacketDataSize OBJECT-TYPE + SYNTAX INTEGER (0..16384) + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum size of the data portion an echo + packet supported by this RTT application. This is + the maximum value that can be specified by + (rttMonEchoAdminPktDataRequestSize + ARR Header) + or + (rttMonEchoAdminPktDataResponseSize + ARR Header) + in the rttMonCtrlAdminTable. + + This object is undefined for conceptual RTT + control rows when the RttMonRttType object is set + to 'fileIO' or 'script'." + ::= { rttMonAppl 2 } + + +rttMonApplTimeOfLastSet OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The last time at which a set operation occurred + on any of the objects in this MIB. The managing + application can inspect this value in order to + determine whether changes have been made without + retrieving the entire Administration portion of + this MIB. + + This object applies to all settable objects in this + MIB, including the 'Reset' objects that could clear + saved history/statistics." + ::= { rttMonAppl 3 } + + +rttMonApplNumCtrlAdminEntry OBJECT-TYPE + SYNTAX Integer32 ( 1..10000 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object defines the maximum number of entries + that can be added to the rttMonCtrlAdminTable. It + is calculated at the system init time. The value + is impacted when rttMonApplFreeMemLowWaterMark is changed." + ::= { rttMonAppl 4 } + + +rttMonApplReset OBJECT-TYPE + SYNTAX RttReset + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "When set to 'reset' the entire RTT application + goes through a reset sequence, making a best + effort to revert to its startup condition. Any + and all rows in the Overall Control Group will be + immediately deleted, together with any associated + rows in the Statistics Collection Group, and + History Collection Group. All open connections + will also be closed. Finally the + rttMonApplPreConfigedTable will reset (see + rttMonApplPreConfigedReset)." + ::= { rttMonAppl 5 } + + +rttMonApplPreConfigedReset OBJECT-TYPE + SYNTAX RttReset + MAX-ACCESS read-write + STATUS obsolete + DESCRIPTION + "When set to 'reset' the RTT application will + reset the Application Preconfigured MIB section. + + This will force the RTT application to delete all + entries in the rttMonApplPreConfigedTable and then + to repopulate the table with the current configuration. + + This provides a mechanism to load and unload user + scripts and file paths." + ::= { rttMonAppl 6 } + + +-- +-- Supported RTT Types. +-- + +rttMonApplSupportedRttTypesTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonApplSupportedRttTypesEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of which contains the supported Rtt + Monitor Types. + + See the RttMonRttType textual convention for + the definition of each type." + ::= { rttMonAppl 7 } + + +rttMonApplSupportedRttTypesEntry OBJECT-TYPE + SYNTAX RttMonApplSupportedRttTypesEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list that presents the valid Rtt Monitor + Types." + INDEX { rttMonApplSupportedRttTypes } + ::= { rttMonApplSupportedRttTypesTable 1 } + + +RttMonApplSupportedRttTypesEntry ::= SEQUENCE +{ + rttMonApplSupportedRttTypes RttMonRttType, + rttMonApplSupportedRttTypesValid TruthValue +} + + +rttMonApplSupportedRttTypes OBJECT-TYPE + SYNTAX RttMonRttType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object indexes the supported + 'RttMonRttType' types." + ::= { rttMonApplSupportedRttTypesEntry 1 } + + +rttMonApplSupportedRttTypesValid OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object defines the supported + 'RttMonRttType' types." + ::= { rttMonApplSupportedRttTypesEntry 2 } + + +-- +-- Supported Protocols. +-- + +rttMonApplSupportedProtocolsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonApplSupportedProtocolsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of which contains the supported Rtt + Monitor Protocols. + + See the RttMonProtocol textual convention + for the definition of each protocol." + ::= { rttMonAppl 8 } + + +rttMonApplSupportedProtocolsEntry OBJECT-TYPE + SYNTAX RttMonApplSupportedProtocolsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list that presents the valid Rtt Monitor + Protocols." + INDEX { rttMonApplSupportedProtocols } + ::= { rttMonApplSupportedProtocolsTable 1 } + + +RttMonApplSupportedProtocolsEntry ::= SEQUENCE +{ + rttMonApplSupportedProtocols RttMonProtocol, + rttMonApplSupportedProtocolsValid TruthValue +} + + +rttMonApplSupportedProtocols OBJECT-TYPE + SYNTAX RttMonProtocol + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object indexes the supported + 'RttMonProtocol' protocols." + ::= { rttMonApplSupportedProtocolsEntry 1 } + + +rttMonApplSupportedProtocolsValid OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object defines the supported + 'RttMonProtocol' protocols." + ::= { rttMonApplSupportedProtocolsEntry 2 } + + +-- +-- Preconfigured Script Names and File IO targets. +-- + +rttMonApplPreConfigedTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonApplPreConfigedEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A table of which contains the previously + configured Script Names and File IO targets. + + These Script Names and File IO targets are installed + via a different mechanism than this application, and + are specific to each platform." + ::= { rttMonAppl 9 } + + +rttMonApplPreConfigedEntry OBJECT-TYPE + SYNTAX RttMonApplPreConfigedEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A list of objects that describe the previously + configured Script Names and File IO targets." + INDEX { rttMonApplPreConfigedType, + rttMonApplPreConfigedName + } + ::= { rttMonApplPreConfigedTable 1 } + + +RttMonApplPreConfigedEntry ::= SEQUENCE +{ + rttMonApplPreConfigedType INTEGER, + rttMonApplPreConfigedName DisplayString, + rttMonApplPreConfigedValid TruthValue +} + + +rttMonApplPreConfigedType OBJECT-TYPE + SYNTAX INTEGER + { + filePath(1), + scriptName(2) + } + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "This is the type of value being stored in the + rttMonApplPreConfigedName object." + ::= { rttMonApplPreConfigedEntry 2 } + + +rttMonApplPreConfigedName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "This is either one of the following depending on the + value of the rttMonApplPreConfigedType object: + + - The file path to a server. One of these file paths + must be used when defining an entry in the + rttMonFileIOAdminTable table with 'fileIO' as the + value of the rttMonCtrlAdminRttType object. + + - The script name to be used when generating RTT + operations. One of these script names must be used + when defining an entry in the rttMonScriptAdminTable + table with 'script' as the value of the + rttMonCtrlAdminRttType object. + + NOTE: For script names, command line parameters + can follow these names in the + rttMonScriptAdminTable table." + ::= { rttMonApplPreConfigedEntry 3 } + +rttMonApplPreConfigedValid OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "When this row exists, this value will be 'true'. + This object exists only to create a valid row in this + table." + ::= { rttMonApplPreConfigedEntry 4 } + +rttMonApplProbeCapacity OBJECT-TYPE + SYNTAX Integer32 ( 1..10000 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object defines the number of new probes that can be + configured on a router. The number depends on the value + of rttMonApplFreeMemLowWaterMark, free bytes + available on the router and the system configured + rttMonCtrlAdminEntry number. + Equation: + rttMonApplProbeCapacity = + MIN(((Free_Bytes_on_the_Router - rttMonApplFreeMemLowWaterMark)/ + Memory_required_by_each_probe), + rttMonApplNumCtrlAdminEntry - Num_of_Probes_already_configured)) + " + ::= { rttMonAppl 10 } + +rttMonApplFreeMemLowWaterMark OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object defines the amount of free memory a router must + have in order to configure RTR. If RTR found out that the + memory is falling below this mark, it will not allow new + probes to be configured. + + This value should not be set higher (or very close to) than + the free bytes available on the router." + ::= { rttMonAppl 11 } + +rttMonApplLatestSetError OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An error description for the last error message caused + by set. + + Currently, it includes set error caused due to setting + rttMonApplFreeMemLowWaterMark greater than the available + free memory on the router or not enough memory left to + create new probes." + ::= { rttMonAppl 12 } + +rttMonApplResponder OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable RTR responder on the router." + ::= { rttMonAppl 13 } + +-- +-- MD5 Authentication for RTR Control Protocol +-- + +rttMonApplAuthTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonApplAuthEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table which contains the definitions for key-strings + that will be used in authenticating RTR Control Protocol." + ::= { rttMonAppl 14 } + + +rttMonApplAuthEntry OBJECT-TYPE + SYNTAX RttMonApplAuthEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list that presents the valid parameters for Authenticating + RTR Control Protocol." + INDEX { rttMonApplAuthIndex } + ::= { rttMonApplAuthTable 1 } + + +RttMonApplAuthEntry ::= SEQUENCE +{ + rttMonApplAuthIndex Integer32, + rttMonApplAuthKeyChain DisplayString, + rttMonApplAuthKeyString1 DisplayString, + rttMonApplAuthKeyString2 DisplayString, + rttMonApplAuthKeyString3 DisplayString, + rttMonApplAuthKeyString4 DisplayString, + rttMonApplAuthKeyString5 DisplayString, + rttMonApplAuthStatus RowStatus +} + +rttMonApplAuthIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Uniquely identifies a row in the rttMonApplAuthTable. + This is a pseudo-random number selected by the management + station when creating a row via the rttMonApplAuthStatus + object. If the pseudo-random number is already in use, an + 'inconsistentValue' is returned. Currently, only one row + can be created." + ::= { rttMonApplAuthEntry 1 } + +rttMonApplAuthKeyChain OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..48)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which represents the key-chain name. If multiple + key-strings are specified, then the authenticator will + alternate between the specified strings." + ::= { rttMonApplAuthEntry 2 } + +rttMonApplAuthKeyString1 OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..48)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which represents a key-string name whose id is 1." + ::= { rttMonApplAuthEntry 3 } + +rttMonApplAuthKeyString2 OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..48)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which represents a key-string name whose id is 2." + ::= { rttMonApplAuthEntry 4 } + +rttMonApplAuthKeyString3 OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..48)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which represents a key-string name whose id is 3." + ::= { rttMonApplAuthEntry 5 } + +rttMonApplAuthKeyString4 OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..48)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which represents a key-string name whose id is 4." + ::= { rttMonApplAuthEntry 6 } + +rttMonApplAuthKeyString5 OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..48)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which represents a key-string name whose id is 5." + ::= { rttMonApplAuthEntry 7 } + +rttMonApplAuthStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of the Authentication row." + ::= { rttMonApplAuthEntry 8 } + +rttMonApplLpdGrpStatsReset OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object is used to reset certain objects within the + rttMonLpdGrpStatsTable. When the object is set to value of + an active LPD Group identifier the associated objects will be + reset. The reset objects will be set to a value as specified + in the object's description. + + The following objects will not be reset. + - rttMonLpdGrpStatsTargetPE + - rttMonLpdGrpStatsGroupProbeIndex + - rttMonLpdGrpStatsGroupIndex + - rttMonLpdGrpStatsStartTimeIndex." + ::= { rttMonAppl 15 } + +-- +-- RTT Configuration Definitions +-- + +rttMonCtrlAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonCtrlAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring definitions. + + The RTT administration control is in multiple tables. + This first table, is used to create a conceptual RTT + control row. The following tables contain objects which + configure scheduling, information gathering, and + notification/trigger generation. All of these tables + will create the same conceptual RTT control row as this + table using this tables' index as their own index. + + This table is limited in size by the agent + implementation. The object rttMonApplNumCtrlAdminEntry + will reflect this tables maximum number of entries." + ::= { rttMonCtrl 1 } + + +rttMonCtrlAdminEntry OBJECT-TYPE + SYNTAX RttMonCtrlAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A base list of objects that define a conceptual RTT + control row." + INDEX { rttMonCtrlAdminIndex } + ::= { rttMonCtrlAdminTable 1 } + + +RttMonCtrlAdminEntry ::= SEQUENCE +{ + rttMonCtrlAdminIndex Integer32, + rttMonCtrlAdminOwner OwnerString, + rttMonCtrlAdminTag DisplayString, + rttMonCtrlAdminRttType RttMonRttType, + rttMonCtrlAdminThreshold Integer32, + rttMonCtrlAdminFrequency Integer32, + rttMonCtrlAdminTimeout Integer32, + rttMonCtrlAdminVerifyData TruthValue, + rttMonCtrlAdminStatus RowStatus, + rttMonCtrlAdminNvgen TruthValue +} + + +rttMonCtrlAdminIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Uniquely identifies a row in the rttMonCtrlAdminTable. + + This is a pseudo-random number selected by the management + station when creating a row via the rttMonCtrlAdminStatus + object. If the pseudo-random number is already in use an + 'inconsistentValue' return code will be returned when + set operation is attempted." + ::= { rttMonCtrlAdminEntry 1 } + + +rttMonCtrlAdminOwner OBJECT-TYPE + SYNTAX OwnerString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Identifies the entity that created this table row." + DEFVAL { "" } + ::= { rttMonCtrlAdminEntry 2 } + + +rttMonCtrlAdminTag OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which is used by a managing application to + identify the RTT target. This string is inserted into trap + notifications, but has no other significance to the + agent." + DEFVAL { "" } + ::= { rttMonCtrlAdminEntry 3 } + + +rttMonCtrlAdminRttType OBJECT-TYPE + SYNTAX RttMonRttType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The type of RTT operation to be performed. This value + must be set in the same PDU or before setting any type + specific configuration. + + Note: The RTT operation 'lspGroup' cannot be created via this + control row. It will be created automatically by Auto SAA L3 + MPLS VPN when rttMplsVpnMonCtrlLpd is 'true'." + DEFVAL { echo } + ::= { rttMonCtrlAdminEntry 4 } + + +rttMonCtrlAdminThreshold OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object defines an administrative threshold limit. + If the RTT operation time exceeds this limit and if the + conditions specified in rttMonReactAdminThresholdType or + rttMonHistoryAdminFilter are satisfied, a + threshold is generated." + DEFVAL { 5000 } + ::= { rttMonCtrlAdminEntry 5 } + + +rttMonCtrlAdminFrequency OBJECT-TYPE + SYNTAX Integer32 (0..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the duration between initiating each RTT + operation. + + This object cannot be set to a value which would be a + shorter duration than rttMonCtrlAdminTimeout. + + When the RttMonRttType specifies an operation that is + synchronous in nature, it may happen that the next RTT + operation is blocked by a RTT operation which has not + yet completed. In this case, the value of a counter + (rttMonStatsCollectBusies) in rttMonStatsCaptureTable is + incremented in lieu of initiating a RTT operation, and + the next attempt will occur at the next + rttMonCtrlAdminFrequency expiration. + + NOTE: When the rttMonCtrlAdminRttType object is defined + to be 'pathEcho', setting this value to a small + value for your network size may cause an operation + attempt (or multiple attempts) to be started + before the previous operation has finished. In + this situation the rttMonStatsCollectBusies object + will be incremented in lieu of initiating a new + RTT operation, and the next attempt will occur at + the next rttMonCtrlAdminFrequency expiration. + + When the rttMonCtrlAdminRttType object is defined + to be 'pathEcho', the suggested value for this object + is greater than rttMonCtrlAdminTimeout times the + maximum number of expected hops to the target. + + NOTE: When the rttMonCtrlAdminRttType object is defined + to be 'dhcp', the minimum allowed value for this + object is 10 seconds. This restriction is due to + protocol limitations described in RFC 2131." + DEFVAL { 60 } + ::= { rttMonCtrlAdminEntry 6 } + + +rttMonCtrlAdminTimeout OBJECT-TYPE + SYNTAX Integer32 (0..604800000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the duration to wait for a RTT operation + completion. The value of this object cannot be set to + a value which would specify a duration exceeding + rttMonCtrlAdminFrequency. + + For connection oriented protocols, this may cause the + connection to be closed by the probe. Once closed, it + will be assumed that the connection reestablishment + will be performed. To prevent unwanted closure of + connections, be sure to set this value to a realistic + connection timeout." + DEFVAL { 5000 } + ::= { rttMonCtrlAdminEntry 7 } + + +rttMonCtrlAdminVerifyData OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When set to true, the resulting data in each RTT + operation is compared with the expected data. This + includes checking header information (if possible) and + exact packet size. Any mismatch will be recorded in the + rttMonStatsCollectVerifyErrors object. + + Some RttMonRttTypes may not support this option. When + a type does not support this option, the agent will + transition this object to false. It is the management + applications responsibility to check for this + transition. This object is only applicable to SNA protocols." + DEFVAL { false } + ::= { rttMonCtrlAdminEntry 8 } + + +rttMonCtrlAdminStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of the conceptual RTT control row. + + In order for this object to become active, the following + row objects must be defined: + - rttMonCtrlAdminRttType + Additionally: + - for echo, pathEcho based on 'ipIcmpEcho' and dlsw probes + rttMonEchoAdminProtocol and + rttMonEchoAdminTargetAddress; + - for echo, pathEcho based on 'mplsLspPingAppl' + rttMonEchoAdminProtocol, rttMonEchoAdminTargetAddress + and rttMonEchoAdminLSPFECType + - for udpEcho, tcpConnect and jitter probes + rttMonEchoAdminTargetAddress and + rttMonEchoAdminTargetPort + - for http and ftp probe + rttMonEchoAdminURL + - for dns probe + rttMonEchoAdminTargetAddressString + rttMonEchoAdminNameServer + - dhcp probe doesn't require any additional objects + + All other objects can assume default values. The + conceptual Rtt control row will be placed into a + 'pending' state (via the rttMonCtrlOperState object) + if rttMonScheduleAdminRttStartTime is not specified. + + Most conceptual Rtt control row objects cannot be + modified once this conceptual Rtt control row has been + created. The objects that can change are the following: + + - Objects in the rttMonReactAdminTable can be modified + as needed without setting this object to + 'notInService'. + - Objects in the rttMonScheduleAdminTable can be + modified only when this object has the value of + 'notInService'. + - The rttMonCtrlOperState can be modified to control + the state of the probe. + + Once this object is in 'active' status, it cannot be + set to 'notInService' while the rttMonCtrlOperState + is in 'active' state. Thus the rttMonCtrlOperState + object must be transitioned first. + + This object can be set to 'destroy' from any value + at any time." + ::= { rttMonCtrlAdminEntry 9 } + +rttMonCtrlAdminNvgen OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When set to true, this entry will be shown in + 'show running' command and can be saved into + Non-volatile memory." + DEFVAL { false } + ::= { rttMonCtrlAdminEntry 10 } + + + +-- +-- Echo Administration Table +-- + +rttMonEchoAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonEchoAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table that contains Round Trip Time (RTT) specific + definitions. + + This table is controlled via the + rttMonCtrlAdminTable. Entries in this table are + created via the rttMonCtrlAdminStatus object." + ::= { rttMonCtrl 2 } + + +rttMonEchoAdminEntry OBJECT-TYPE + SYNTAX RttMonEchoAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define specific configuration for + RttMonRttType conceptual Rtt control rows." + INDEX { rttMonCtrlAdminIndex } + ::= { rttMonEchoAdminTable 1 } + + +RttMonEchoAdminEntry ::= SEQUENCE +{ + rttMonEchoAdminProtocol RttMonProtocol, + rttMonEchoAdminTargetAddress RttMonTargetAddress, + rttMonEchoAdminPktDataRequestSize Integer32, + rttMonEchoAdminPktDataResponseSize Integer32, + rttMonEchoAdminTargetPort Integer32, + rttMonEchoAdminSourceAddress RttMonTargetAddress, + rttMonEchoAdminSourcePort Integer32, + rttMonEchoAdminControlEnable TruthValue, + rttMonEchoAdminTOS Integer32, + rttMonEchoAdminLSREnable TruthValue, + rttMonEchoAdminTargetAddressString DisplayString, + rttMonEchoAdminNameServer RttMonTargetAddress, + rttMonEchoAdminOperation RttMonOperation, + rttMonEchoAdminHTTPVersion DisplayString, + rttMonEchoAdminURL DisplayString, + rttMonEchoAdminCache TruthValue, + rttMonEchoAdminInterval Integer32, + rttMonEchoAdminNumPackets Integer32, + rttMonEchoAdminProxy DisplayString, + rttMonEchoAdminString1 DisplayString, + rttMonEchoAdminString2 DisplayString, + rttMonEchoAdminString3 DisplayString, + rttMonEchoAdminString4 DisplayString, + rttMonEchoAdminString5 DisplayString, + rttMonEchoAdminMode RttMonOperation, + rttMonEchoAdminVrfName OCTET STRING, + rttMonEchoAdminCodecType RttMonCodecType, + rttMonEchoAdminCodecInterval Integer32, + rttMonEchoAdminCodecPayload Integer32, + rttMonEchoAdminCodecNumPackets Integer32, + rttMonEchoAdminICPIFAdvFactor Integer32, + rttMonEchoAdminLSPFECType INTEGER, + rttMonEchoAdminLSPSelector RttMonTargetAddress, + rttMonEchoAdminLSPReplyMode RttMonLSPPingReplyMode, + rttMonEchoAdminLSPTTL Integer32, + rttMonEchoAdminLSPExp Integer32, + rttMonEchoAdminPrecision INTEGER, + rttMonEchoAdminProbePakPriority INTEGER, + rttMonEchoAdminOWNTPSyncTolAbs Integer32, + rttMonEchoAdminOWNTPSyncTolPct Integer32, + rttMonEchoAdminOWNTPSyncTolType INTEGER, + rttMonEchoAdminCalledNumber SnmpAdminString, + rttMonEchoAdminDetectPoint RttMonOperation, + rttMonEchoAdminGKRegistration TruthValue, + rttMonEchoAdminSourceVoicePort DisplayString, + rttMonEchoAdminCallDuration Integer32, + rttMonEchoAdminLSPReplyDscp Integer32, + rttMonEchoAdminLSPNullShim TruthValue +} + +rttMonEchoAdminProtocol OBJECT-TYPE + SYNTAX RttMonProtocol + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the protocol to be used to perform the RTT + operation. The following list defines what protocol + should be used for each probe type: + + echo, pathEcho - ipIcmpEcho / mplsLspPingAppl + udpEcho - ipUdpEchoAppl + tcpConnect - ipTcpConn + http - httpAppl + jitter - jitterAppl + dlsw - dlswAppl + dhcp - dhcpAppl + ftp - ftpAppl + mplsLspPing - mplsLspPingAppl + voip - voipAppl + + When this protocol does not support the type, a 'badValue' + error will be returned." + DEFVAL { notApplicable } + ::= { rttMonEchoAdminEntry 1 } + + +rttMonEchoAdminTargetAddress OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the address of the target." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 2 } + + +rttMonEchoAdminPktDataRequestSize OBJECT-TYPE + SYNTAX Integer32 (0..16384) + UNITS "octets" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the number of octets to be + placed into the ARR Data portion of the request + message, when using SNA protocols. + + For non-ARR protocols' RTT request/responses, + this value represents the native payload size. + + REMEMBER: The ARR Header overhead is not included + in this value. + + For echo probes the total packet size = (IP header(20) + + ICMP header(8) + 8 (internal timestamps) + request size). + + For echo and pathEcho default request size is 28. + For udp probe, default request size is 16 and for jitter + probe it is 32. For dlsw probes default request size is 0. + + The minimum request size for echo and pathEcho is 28 bytes, + for udp it is 4 and for jitter it is 16. + For udp and jitter probes the maximum request size is 1500." + DEFVAL { 1 } + ::= { rttMonEchoAdminEntry 3 } + + +rttMonEchoAdminPktDataResponseSize OBJECT-TYPE + SYNTAX Integer32 (0..16384) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the number of octets to be + placed into the ARR Data portion of the response message. + This value is passed to the RTT Echo Server via a + field in the ARR Header. + + For non-ARR RTT request/response (i.e. ipIcmpecho) + this value will be set by the agent to match the + size of rttMonEchoAdminPktDataRequestSize, when + native payloads are supported. + + REMEMBER: The ARR Header overhead is not included + in this value. + + This object is only supported by SNA protocols." + DEFVAL { 0 } + ::= { rttMonEchoAdminEntry 4 } + +rttMonEchoAdminTargetPort OBJECT-TYPE + SYNTAX Integer32 (0..65536) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the target's port number. This + object is applicable to udpEcho, tcpConnect and jitter probes." + DEFVAL { 0 } + ::= { rttMonEchoAdminEntry 5 } + +rttMonEchoAdminSourceAddress OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the IP address of the source. + This object is applicable to all probes except dns, dlsw + and sna." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 6 } + +rttMonEchoAdminSourcePort OBJECT-TYPE + SYNTAX Integer32 (0..65536) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the source's port number. If this + object is not specified, the application will get a + port allocated by the system. This object is applicable + to all probes except dns, dlsw and sna." + DEFVAL { 0 } + ::= { rttMonEchoAdminEntry 7 } + +rttMonEchoAdminControlEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "If this object is enabled, then the RTR application + will send control messages to a responder, residing on the + target router to respond to the data request packets being + sent by the source router. This object is not applicable to + echo, pathEcho, dns and http probes." + DEFVAL { true } + ::= { rttMonEchoAdminEntry 8 } + +rttMonEchoAdminTOS OBJECT-TYPE + SYNTAX Integer32 (0..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the type of service octet in an + IP header. This object is not applicable to dhcp and dns." + REFERENCE + "Refer to the following documents for TOS definition. + RFC791/1349 for IPv4, IPv6, draft-ietf-diffserv-header-02.txt" + DEFVAL { 0 } + ::= { rttMonEchoAdminEntry 9 } + +rttMonEchoAdminLSREnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If this object is enabled then it means that the application + calculates response time for a specific path, defined in + rttMonEchoPathAdminEntry. This object is applicable to echo + probe only." + DEFVAL { false } + ::= { rttMonEchoAdminEntry 10 } + +rttMonEchoAdminTargetAddressString OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the address of the target. This string + can be in IP address format or a hostname. This object + is applicable to dns probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 11 } + +rttMonEchoAdminNameServer OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the ip address of the name-server. + This object is applicable to dns probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 12 } + +rttMonEchoAdminOperation OBJECT-TYPE + SYNTAX RttMonOperation + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A code that represents the specific type of RTT operation. + This object is applicable to http and ftp probe only." + ::= { rttMonEchoAdminEntry 13 } + +rttMonEchoAdminHTTPVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (3..10)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the version number of the HTTP + Server. The syntax for the version string is + . An example would be 1.0, + 1.1 etc.,. This object is applicable to http probe only." + DEFVAL { "1.0" } + ::= { rttMonEchoAdminEntry 14 } + +rttMonEchoAdminURL OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which represents the URL to which a HTTP probe should + communicate with. This object is applicable to http probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 15 } + +rttMonEchoAdminCache OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "If this object is false then it means that HTTP request should + not download cached pages. This means that the request should + be forwarded to the origin server. This object is applicable + to http probe only." + DEFVAL { true } + ::= { rttMonEchoAdminEntry 16 } + +rttMonEchoAdminInterval OBJECT-TYPE + SYNTAX Integer32 (0..60000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value represents the inter-packet delay between packets + and is in milliseconds. This value is currently used for + Jitter probe. This object is applicable to jitter probe only." + DEFVAL { 20 } + ::= { rttMonEchoAdminEntry 17 } + +rttMonEchoAdminNumPackets OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value represents the number of packets that need to be + transmitted. This value is currently used for Jitter probe. + This object is applicable to jitter probe only." + DEFVAL { 10 } + ::= { rttMonEchoAdminEntry 18 } + +rttMonEchoAdminProxy OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This string represents the proxy server information. + This object is applicable to http probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 19 } + +rttMonEchoAdminString1 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This string stores the content of HTTP raw request. + If the request cannot fit into String1 then it should + be split and put in Strings 1 through 5. + + This string stores the content of the DHCP raw option + data. The raw DHCP option data must be in HEX. + If an odd number of characters are specified, a 0 + will be appended to the end of the string. Only + DHCP option 82 (decimal) is allowed. + Here is an example of a valid string: + 5208010610005A6F1234 + Only rttMonEchoAdminString1 is used for dhcp, Strings + 1 through 5 are not used. + + This object is applicable to http and dhcp probe + types only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 20 } + +rttMonEchoAdminString2 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This string stores the content of HTTP raw request. + rttMonEchoAdminString1-5 are concatenated to + form the HTTP raw request used in the RTT operation. + This object is applicable to http probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 21 } + +rttMonEchoAdminString3 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This string stores the content of HTTP raw request. + rttMonEchoAdminString1-5 are concatenated to + form the HTTP raw request used in the RTT operation. + This object is applicable to http probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 22 } + +rttMonEchoAdminString4 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This string stores the content of HTTP raw request. + rttMonEchoAdminString1-5 are concatenated to + form the HTTP raw request used in the RTT operation. + This object is applicable to http probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 23 } + +rttMonEchoAdminString5 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This string stores the content of HTTP raw request. + rttMonEchoAdminString1-5 are concatenated to + form the HTTP raw request used in the RTT operation. + This object is applicable to http probe only." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 24 } + +rttMonEchoAdminMode OBJECT-TYPE + SYNTAX RttMonOperation + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A code that represents the specific type of RTT operation. + This object is applicable to ftp probe only." + DEFVAL { ftpPassive } + ::= { rttMonEchoAdminEntry 25 } + +rttMonEchoAdminVrfName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This field is used to specify the VPN name in + which the RTT operation will be used. For regular RTT + operation this field should not be configured. The agent + will use this field to identify the VPN routing Table for + this operation." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 26 } + +rttMonEchoAdminCodecType OBJECT-TYPE + SYNTAX RttMonCodecType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the codec type to be used with jitter probe. This is + applicable only for the jitter probe. + + If codec-type is configured the following parameters cannot be + configured. + rttMonEchoAdminPktDataRequestSize + rttMonEchoAdminInterval + rttMonEchoAdminNumPackets" + ::= { rttMonEchoAdminEntry 27 } + +rttMonEchoAdminCodecInterval OBJECT-TYPE + SYNTAX Integer32 (0..60000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This field represents the inter-packet delay between + packets and is in milliseconds. This object is applicable + only to jitter probe which uses codec type." + ::= { rttMonEchoAdminEntry 28 } + +rttMonEchoAdminCodecPayload OBJECT-TYPE + SYNTAX Integer32 (0..16384) + UNITS "octets" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the number of octets that needs to be + placed into the Data portion of the message. This value is + used only for jitter probe which uses codec type." + ::= { rttMonEchoAdminEntry 29 } + + +rttMonEchoAdminCodecNumPackets OBJECT-TYPE + SYNTAX Integer32 (0..60000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value represents the number of packets that need to be + transmitted. This value is used only for jitter probe which + uses codec type." + ::= { rttMonEchoAdminEntry 30 } + +rttMonEchoAdminICPIFAdvFactor OBJECT-TYPE + SYNTAX Integer32 (0..20) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The advantage factor is dependant on the type of access and + how the service is to be used. + Conventional Wire-line 0 + Mobility within Building 5 + Mobility within geographic area 10 + Access to hard-to-reach location 20 + + This will be used while calculating the ICPIF values + This valid only for Jitter while calculating the ICPIF value" + DEFVAL {0} + ::= { rttMonEchoAdminEntry 31 } + +rttMonEchoAdminLSPFECType OBJECT-TYPE + SYNTAX INTEGER + { + ldpIpv4Prefix(1) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The type of the target FEC for the RTT 'echo' and 'pathEcho' + operations based on 'mplsLspPingAppl' RttMonProtocol. + + ldpIpv4Prefix - LDP IPv4 prefix." + ::= { rttMonEchoAdminEntry 32 } + +rttMonEchoAdminLSPSelector OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies a valid 127/8 address. This address + is of the form 127.x.y.z. + This address is not used to route the MPLS echo packet to the + destination but is used for load balancing in cases where the + IP payload's destination address is used for load balancing." + DEFVAL { "7F 00 00 01" } + ::= { rttMonEchoAdminEntry 33 } + +rttMonEchoAdminLSPReplyMode OBJECT-TYPE + SYNTAX RttMonLSPPingReplyMode + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the reply mode for the LSP Echo + requests." + DEFVAL { replyIpv4Udp } + ::= { rttMonEchoAdminEntry 34 } + +rttMonEchoAdminLSPTTL OBJECT-TYPE + SYNTAX Integer32 ( 0..255 ) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the TTL setting for MPLS echo request + packets. For ping operation this represents the TTL value to + be set in the echo request packet. For trace operation it + represent the maximum ttl value that can be set in the echo + request packets starting with TTL=1. + + For 'echo' based on mplsLspPingAppl the default TTL will be + set to 255, and for 'pathEcho' based on mplsLspPingAppl the + default will be set to 30. + + Note: This object cannot be set to the value of 0. The + default value of 0 signifies the default TTL values to be + used for 'echo' and 'pathEcho' based on 'mplsLspPingAppl'." + DEFVAL { 0 } + ::= { rttMonEchoAdminEntry 35 } + +rttMonEchoAdminLSPExp OBJECT-TYPE + SYNTAX Integer32 ( 0..7 ) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the EXP value that needs to be + put as precedence bit in the MPLS echo request IP header." + DEFVAL { 0 } + ::= { rttMonEchoAdminEntry 36 } + + +rttMonEchoAdminPrecision OBJECT-TYPE + SYNTAX INTEGER + { + milliseconds(1), + microseconds(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the accuracy of statistics that + needs to be calculated + milliseconds - The accuracy of stats will be of milliseconds + microseconds - The accuracy of stats will be in microseconds. + This value can be set only for jitter operation" + DEFVAL { milliseconds } + ::= { rttMonEchoAdminEntry 37 } + +rttMonEchoAdminProbePakPriority OBJECT-TYPE + SYNTAX INTEGER + { + normal(1), + high(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the priority that will be assigned + to probe packet. This value can be set only for jitter + operation" + DEFVAL { normal } + ::= { rttMonEchoAdminEntry 38 } + +rttMonEchoAdminOWNTPSyncTolAbs OBJECT-TYPE + SYNTAX Integer32 + UNITS "microseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the total clock synchronization error + on source and responder that is considered acceptable for + oneway measurement when NTP is used as clock synchronization + mechanism. The total clock synchronization error is sum of + NTP offsets on source and responder. The value specified is + microseconds. This value can be set only for jitter operation + with precision of microsecond." + DEFVAL {0} + ::= { rttMonEchoAdminEntry 39 } + +rttMonEchoAdminOWNTPSyncTolPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the total clock synchronization error + on source and responder that is considered acceptable for + oneway measurement when NTP is used as clock synchronization + mechanism. The total clock synchronization error is sum of + NTP offsets on source and responder. The value is expressed + as the percentage of actual oneway latency that is measured. + This value can be set only for jitter operation with precision + of microsecond." + DEFVAL {0} + ::= { rttMonEchoAdminEntry 40 } + +rttMonEchoAdminOWNTPSyncTolType OBJECT-TYPE + SYNTAX INTEGER + { + percent(1), + absolute(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies whether the value in specified for oneway + NTP sync tolerance is absolute value or percent value" + DEFVAL { percent } + ::= { rttMonEchoAdminEntry 41 } + + +rttMonEchoAdminCalledNumber OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..24)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This string stores the called number of post dial delay. + This object is applicable to voip post dial delay probe only. + The number will be like the one actualy the user could dial. + It has the number required by the local country dial plan, plus + E.164 number. The maximum length is 24 digits. Only digit (0-9) + is allowed." + DEFVAL { "" } + ::= { rttMonEchoAdminEntry 42 } + +rttMonEchoAdminDetectPoint OBJECT-TYPE + SYNTAX RttMonOperation + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A code that represents the detect point of post dial delay. + This object is applicable to SAA post dial delay probe only." + DEFVAL { voipDTAlertRinging } + ::= { rttMonEchoAdminEntry 43 } + +rttMonEchoAdminGKRegistration OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A boolean that represents VoIP GK registration delay. + This object is applicable to SAA GK registration delay + probe only." + DEFVAL { false } + ::= { rttMonEchoAdminEntry 44 } + +rttMonEchoAdminSourceVoicePort OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the voice-port on the source gateway. + This object is applicable to RTP probe only." + DEFVAL { "" } +::= { rttMonEchoAdminEntry 45 } + +rttMonEchoAdminCallDuration OBJECT-TYPE + SYNTAX Integer32 (10..300) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Duration of RTP session. + This object is applicable to RTP probe only." + DEFVAL { 60 } +::= { rttMonEchoAdminEntry 46 } + +rttMonEchoAdminLSPReplyDscp OBJECT-TYPE + SYNTAX Integer32 ( 0..63 | 255 ) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the DSCP value to be set in the IP header + of the LSP echo reply packet. + The value of this object will be in range of DiffServ codepoint + values between 0 to 63. + + Note: This object cannot be set to value of 255. This default + value specifies that DSCP is not set for this row." + DEFVAL { 255 } + ::= { rttMonEchoAdminEntry 47 } + +rttMonEchoAdminLSPNullShim OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies if the explicit-null label is to be added + to LSP echo requests which are sent while performing RTT + operation." + DEFVAL { false } + ::= { rttMonEchoAdminEntry 48 } + +-- +-- FileIO Administration Table +-- + +rttMonFileIOAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonFileIOAdminEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring 'fileIO' + specific definitions. + + When the RttMonRttType is not 'fileIO' this table is + not valid. + + This table is controlled via the + rttMonCtrlAdminTable. Entries in this table are + created via the rttMonCtrlAdminStatus object." + ::= { rttMonCtrl 3 } + + +rttMonFileIOAdminEntry OBJECT-TYPE + SYNTAX RttMonFileIOAdminEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A list of objects that define specific configuration for + 'fileIO' RttMonRttType conceptual Rtt control rows." + INDEX { rttMonCtrlAdminIndex } + ::= { rttMonFileIOAdminTable 1 } + + +RttMonFileIOAdminEntry ::= SEQUENCE +{ + rttMonFileIOAdminFilePath DisplayString, + rttMonFileIOAdminSize INTEGER, + rttMonFileIOAdminAction INTEGER +} + + +rttMonFileIOAdminFilePath OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "The fully qualified file path that will be the target + of the RTT operation. + + This value must match one of the rttMonApplPreConfigedName + entries." + DEFVAL { "" } + ::= { rttMonFileIOAdminEntry 1 } + + +rttMonFileIOAdminSize OBJECT-TYPE + SYNTAX INTEGER + { + n256(1), + n1k(2), + n64k(3), + n128k(4), + n256k(5) + } + UNITS "bytes" + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "The size of the file to write/read from the File + Server." + DEFVAL { n256 } + ::= { rttMonFileIOAdminEntry 2 } + + +rttMonFileIOAdminAction OBJECT-TYPE + SYNTAX INTEGER + { + write(1), + read(2), + writeRead(3) + } + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "The File I/O action to be performed." + DEFVAL { read } + ::= { rttMonFileIOAdminEntry 3 } + + +-- +-- Script Administration Table +-- + +rttMonScriptAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonScriptAdminEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring 'script' + specific definitions. + + When the RttMonRttType is not 'script' this table is + not valid. + + This table is controlled via the + rttMonCtrlAdminTable. Entries in this table are + created via the rttMonCtrlAdminStatus object." + ::= { rttMonCtrl 4 } + + +rttMonScriptAdminEntry OBJECT-TYPE + SYNTAX RttMonScriptAdminEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A list of objects that define specific configuration for + 'script' RttMonRttType conceptual Rtt control rows." + INDEX { rttMonCtrlAdminIndex } + ::= { rttMonScriptAdminTable 1 } + + +RttMonScriptAdminEntry ::= SEQUENCE +{ + rttMonScriptAdminName DisplayString, + rttMonScriptAdminCmdLineParams DisplayString +} + + +rttMonScriptAdminName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "This will be the Name of the Script that will be used to + generate RTT operations. + + This object must match one of the + rttMonApplPreConfigedName entries." + DEFVAL { "" } + ::= { rttMonScriptAdminEntry 1 } + + +rttMonScriptAdminCmdLineParams OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "This will be the actual command line parameters + passed to the rttMonScriptAdminName when being + executed." + DEFVAL { "" } + ::= { rttMonScriptAdminEntry 2 } + + +-- +-- Schedule Administration Table +-- + +rttMonScheduleAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonScheduleAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring scheduling + specific definitions. + + This table is controlled via the + rttMonCtrlAdminTable. Entries in this table are + created via the rttMonCtrlAdminStatus object." + ::= { rttMonCtrl 5 } + + +rttMonScheduleAdminEntry OBJECT-TYPE + SYNTAX RttMonScheduleAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define specific configuration for + the scheduling of RTT operations." + AUGMENTS { rttMonCtrlAdminEntry } + ::= { rttMonScheduleAdminTable 1 } + + +RttMonScheduleAdminEntry ::= SEQUENCE +{ + rttMonScheduleAdminRttLife Integer32, + rttMonScheduleAdminRttStartTime TimeTicks, + rttMonScheduleAdminConceptRowAgeout Integer32, + rttMonScheduleAdminRttRecurring TruthValue +} + +rttMonScheduleAdminRttLife OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object value will be placed into the + rttMonCtrlOperRttLife object when the rttMonCtrlOperState + object transitions to 'active' or 'pending'. + + The value 2147483647 has a special meaning. When + this object is set to 2147483647, the + rttMonCtrlOperRttLife object will not decrement. + And thus the life time will never end." + DEFVAL { 3600 } + ::= { rttMonScheduleAdminEntry 1 } + + +rttMonScheduleAdminRttStartTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This is the time when this conceptional row will + activate. + + This is the value of MIB-II's sysUpTime in the future. + When sysUpTime equals this value this object will + cause the activation of a conceptual Rtt row. + + When an agent has the capability to determine date and + time, the agent should store this object as DateAndTime. + This allows the agent to completely reset (restart) and + still be able to start conceptual Rtt rows at the + intended time. If the agent cannot keep date and time + and the agent resets, all entries should take on one of + the special value defined below. + + The first special value allows this conceptual Rtt + control row to immediately transition the + rttMonCtrlOperState object into 'active' state when the + rttMonCtrlAdminStatus object transitions to active. + This special value is defined to be a value of this + object that, when initially set, is 1. + + The second special value allows this conceptual Rtt + control row to immediately transition the + rttMonCtrlOperState object into 'pending' state when + the rttMonCtrlAdminStatus object transitions to active. + Also, when the rttMonCtrlOperRttLife counts down to zero + (and not when set to zero), this special value causes + this conceptual Rtt control row to retransition the + rttMonCtrlOperState object into 'pending' state. This + special value is defined to be a value of this object + that, when initially set, is smaller than the current + sysUpTime. (With the exception of one, as defined in + the previous paragraph)" + DEFVAL { 0 } + ::= { rttMonScheduleAdminEntry 2 } + + +rttMonScheduleAdminConceptRowAgeout OBJECT-TYPE + SYNTAX Integer32 (0..2073600) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The amount of time this conceptual Rtt control row will + exist when not in an 'active' rttMonCtrlOperState. + + When this conceptual Rtt control row enters an 'active' + state, this timer will be reset and suspended. When + this conceptual RTT control row enters a state other + than 'active', the timer will be restarted. + + NOTE: When a conceptual Rtt control row ages out, the + agent needs to remove the associated entries in + the rttMonReactTriggerAdminTable and + rttMonReactTriggerOperTable. + + When this value is set to zero, this entry will + never be aged out." + DEFVAL { 3600 } + ::= { rttMonScheduleAdminEntry 3 } + + +rttMonScheduleAdminRttRecurring OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When set to true, this entry will be scheduled to + run automatically for the specified duration equal + to the life configured, at the same time daily. + + This value cannot be set to true + (a) if rttMonScheduleAdminRttLife object has value greater or + equal to 86400 seconds. + (b) if sum of values of rttMonScheduleAdminRttLife and + rttMonScheduleAdminConceptRowAgeout is less or equal to + 86400 seconds." + DEFVAL { false } + ::= { rttMonScheduleAdminEntry 4 } + +-- +-- Reaction Administration Table +-- + +rttMonReactAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonReactAdminEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring Notification + and Trigger definitions. + + All Notification/Reactions are applied to all RTT + End-to-End operations. Thus, they do not apply to hops + along a path to the target, when RttMonRttType is + 'pathEcho'. + + The format and content of SNA NMVT's are not defined + within this module. + + It can be noted, however, that there are Alert NMVT's, + and traps which are sent when an abnormal + condition occurs, i.e. when one of + rttMonCtrlOperConnectionLostOccurred, + rttMonCtrlOperTimeoutOccurred or + rttMonCtrlOperOverThresholdOccurred are changed to true, + and Resolution NMVT's, and Resolution traps which are + sent when that condition clears, i.e. when one of + rttMonCtrlOperConnectionLostOccurred, + rttMonCtrlOperTimeoutOccurred or + rttMonCtrlOperOverThresholdOccurred is changed back to + false. + + When rttMonReactAdminActionType is set to one of the + following: + - triggerOnly + - trapAndTrigger + - nmvtAndTrigger + - trapNmvtAndTrigger + The corresponding rows in the + rttMonReactTriggerAdminTable defined via the + rttMonCtrlAdminIndex will become active. + + This table augments the rttMonCtrlAdminTable." + ::= { rttMonCtrl 6 } + + +rttMonReactAdminEntry OBJECT-TYPE + SYNTAX RttMonReactAdminEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A list of objects that define RTT reaction operations." + AUGMENTS { rttMonCtrlAdminEntry } + ::= { rttMonReactAdminTable 1 } + + +RttMonReactAdminEntry ::= SEQUENCE +{ + rttMonReactAdminConnectionEnable TruthValue, + rttMonReactAdminTimeoutEnable TruthValue, + rttMonReactAdminThresholdType INTEGER, + rttMonReactAdminThresholdFalling Integer32, + rttMonReactAdminThresholdCount Integer32, + rttMonReactAdminThresholdCount2 Integer32, + rttMonReactAdminActionType INTEGER, + rttMonReactAdminVerifyErrorEnable TruthValue +} + + +rttMonReactAdminConnectionEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "If true, a reaction is generated when a RTT + operation to a rttMonEchoAdminTargetAddress + (echo type) causes + rttMonCtrlOperConnectionLostOccurred to change its + value. Thus connections to intermediate hops will + not cause this value to change." + DEFVAL { false } + ::= { rttMonReactAdminEntry 1 } + + +rttMonReactAdminTimeoutEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "If true, a reaction is generated when a RTT + operation causes rttMonCtrlOperTimeoutOccurred + to change its value. + + When the RttMonRttType is 'pathEcho' timeouts to + intermediate hops will not cause + rttMonCtrlOperTimeoutOccurred to change its value." + DEFVAL { false } + ::= { rttMonReactAdminEntry 2 } + + +rttMonReactAdminThresholdType OBJECT-TYPE + SYNTAX INTEGER + { + never(1), + immediate(2), + consecutive(3), + xOfy(4), + average(5) + } + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "This object specifies the conditions under which + rttMonCtrlOperOverThresholdOccurred is changed: + + NOTE: When the RttMonRttType is 'pathEcho' this + objects' value and all associated + object values are only valid when RTT + 'echo' operations are to the + rttMonEchoAdminTargetAddress object address. Thus + 'pathEcho' operations to intermediate + hops will not cause this object to change. + + never - rttMonCtrlOperOverThresholdOccurred is + never set + immediate - rttMonCtrlOperOverThresholdOccurred is set + to true when an operation completion time + exceeds rttMonCtrlAdminThreshold; + conversely + rttMonCtrlOperOverThresholdOccurred is set + to false when an operation completion time + falls below + rttMonReactAdminThresholdFalling + consecutive - rttMonCtrlOperOverThresholdOccurred is set + to true when an operation completion time + exceeds rttMonCtrlAdminThreshold on + rttMonReactAdminThresholdCount consecutive + RTT operations; conversely, + rttMonCtrlOperOverThresholdOccurred is set + to false when an operation completion time + falls under the + rttMonReactAdminThresholdFalling + for the same number of consecutive + operations + xOfy - rttMonCtrlOperOverThresholdOccurred is set + to true when x (as specified by + rttMonReactAdminThresholdCount) out of the + last y (as specified by + rttMonReactAdminThresholdCount2) + operation completion time exceeds + rttMonCtrlAdminThreshold; + conversely, it is set to false when x, + out of the last y operation completion + time fall below + rttMonReactAdminThresholdFalling + NOTE: When x > y, the probe will never + generate a reaction. + average - rttMonCtrlOperOverThresholdOccurred is set + to true when the running average of the + previous rttMonReactAdminThresholdCount + operation completion times exceed + rttMonCtrlAdminThreshold; conversely, it + is set to false when the running average + falls below the + rttMonReactAdminThresholdFalling + + If this value is changed by a management station, + rttMonCtrlOperOverThresholdOccurred is set to false, but + no reaction is generated if the prior value of + rttMonCtrlOperOverThresholdOccurred was true." + DEFVAL { never } + ::= { rttMonReactAdminEntry 3 } + + +rttMonReactAdminThresholdFalling OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "This object defines a threshold limit. If the RTT + operation time falls below this limit and if the conditions + specified in rttMonReactAdminThresholdType are satisfied, an + threshold is generated." + DEFVAL { 3000 } + ::= { rttMonReactAdminEntry 4 } + + +rttMonReactAdminThresholdCount OBJECT-TYPE + SYNTAX Integer32 (1..16) + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "This object defines the 'x' value of the xOfy condition + specified in rttMonReactAdminThresholdType." + DEFVAL { 5 } + ::= { rttMonReactAdminEntry 5 } + + +rttMonReactAdminThresholdCount2 OBJECT-TYPE + SYNTAX Integer32 (1..16) + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "This object defines the 'y' value of the xOfy condition + specified in rttMonReactAdminThresholdType." + DEFVAL { 5 } + ::= { rttMonReactAdminEntry 6 } + + +rttMonReactAdminActionType OBJECT-TYPE + SYNTAX INTEGER + { + none(1), + trapOnly(2), + nmvtOnly(3), + triggerOnly(4), + trapAndNmvt(5), + trapAndTrigger(6), + nmvtAndTrigger(7), + trapNmvtAndTrigger(8) + } + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "Specifies what type(s), if any, of reaction(s) to + generate if an operation violates one of the watched + conditions: + + none - no reaction is generated + trapOnly - a trap is generated + nmvtOnly - an SNA NMVT is generated + triggerOnly - all trigger actions defined for this + entry are initiated + trapAndNmvt - both a trap and an SNA NMVT are + generated + trapAndTrigger - both a trap and all trigger actions + are initiated + nmvtAndTrigger - both a NMVT and all trigger actions + are initiated + trapNmvtAndTrigger - a NMVT, trap, and all trigger actions + are initiated + + A trigger action is defined via the + rttMonReactTriggerAdminTable." + DEFVAL { none } + ::= { rttMonReactAdminEntry 7 } + +rttMonReactAdminVerifyErrorEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION + "If true, a reaction is generated when a RTT + operation causes rttMonCtrlOperVerifyErrorOccurred + to change its value." + DEFVAL { false } + ::= { rttMonReactAdminEntry 8 } + + +-- +-- Statistics Administration Table +-- + +rttMonStatisticsAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonStatisticsAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring statistics + definitions. + + The definitions in this table control what and how many + entries will be placed into the rttMonStatsCaptureTable. + + The statistics capture table is a rollover table. When + the rttMonStatisticsAdminNumHourGroups index value + exceeds its value defined in this table, the oldest + corresponding group will be deleted and will be replaced + with the new group. All other indices will only fill to + there maximum size. + + NOTE: The maximum size of this table is defined to be + the product of the rttMonCtrlAdminIndex times + rttMonStatisticsAdminNumHourGroups times + rttMonStatisticsAdminNumPaths times + rttMonStatisticsAdminNumHops times + rttMonStatisticsAdminNumDistBuckets. + + NOTE WELL: Each of the 'Num' objects values in this + have a special behavior. When one of the + objects is set to a value larger than the + Rtt application can support the set will + succeed, but the resultant value will + be set to the applications maximum value. + The setting management station must reread + this object to verify the actual value. + + This table augments the rttMonCtrlAdminTable." + ::= { rttMonCtrl 7 } + + +rttMonStatisticsAdminEntry OBJECT-TYPE + SYNTAX RttMonStatisticsAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define RTT statistics + capture operations." + AUGMENTS { rttMonCtrlAdminEntry } + ::= { rttMonStatisticsAdminTable 1 } + + +RttMonStatisticsAdminEntry ::= SEQUENCE +{ + rttMonStatisticsAdminNumHourGroups Integer32, + rttMonStatisticsAdminNumPaths Integer32, + rttMonStatisticsAdminNumHops Integer32, + rttMonStatisticsAdminNumDistBuckets Integer32, + rttMonStatisticsAdminDistInterval Integer32 +} + + +rttMonStatisticsAdminNumHourGroups OBJECT-TYPE + SYNTAX Integer32 (0..25) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of groups of paths to record. + Specifically this is the number of hourly groups + to keep before rolling over. + + The value of one is not advisable because the + group will close and immediately be deleted before + the network management station will have the + opportunity to retrieve the statistics. + + The value used in the rttMonStatsCaptureTable to + uniquely identify this group is the + rttMonStatsCaptureStartTimeIndex. + + HTTP and Jitter probes store only two hours of data. + + When this object is set to the value of zero all + rttMonStatsCaptureTable data capturing will be shut off." + DEFVAL { 2 } + ::= { rttMonStatisticsAdminEntry 1 } + + +rttMonStatisticsAdminNumPaths OBJECT-TYPE + SYNTAX Integer32 (1..128) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When RttMonRttType is 'pathEcho' this is the maximum + number of statistics paths to record per hourly group. + This value directly represents the path to a target. + For all other RttMonRttTypes this value will be + forced to one by the agent. + + NOTE: For 'pathEcho' a source to target path will be + created to to hold all errors that occur when a + specific path or connection has not be found/setup. + Thus, it is advised to set this value greater + than one. + + Since this index does not rollover, only the first + rttMonStatisticsAdminNumPaths will be kept." + DEFVAL { 5 } + ::= { rttMonStatisticsAdminEntry 2 } + + +rttMonStatisticsAdminNumHops OBJECT-TYPE + SYNTAX Integer32 (1..30) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When RttMonRttType is 'pathEcho' this is the maximum + number of statistics hops to record per path group. + This value directly represents the number of hops along + a path to a target, thus we can only support 30 hops. + For all other RttMonRttTypes this value will be + forced to one by the agent. + + Since this index does not rollover, only the first + rttMonStatisticsAdminNumHops will be kept. This object + is applicable to pathEcho probes only." + DEFVAL { 16 } + ::= { rttMonStatisticsAdminEntry 3 } + + +rttMonStatisticsAdminNumDistBuckets OBJECT-TYPE + SYNTAX Integer32 (1..20) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of statistical distribution + Buckets to accumulate. + + Since this index does not rollover, only the first + rttMonStatisticsAdminNumDistBuckets will be kept. + + The last rttMonStatisticsAdminNumDistBucket will + contain all entries from its distribution interval + start point to infinity. This object is not applicable + to http and jitter probes." + DEFVAL { 1 } + ::= { rttMonStatisticsAdminEntry 4 } + + +rttMonStatisticsAdminDistInterval OBJECT-TYPE + SYNTAX Integer32 (1..100) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The statistical distribution buckets interval. + + Distribution Bucket Example: + + rttMonStatisticsAdminNumDistBuckets = 5 buckets + rttMonStatisticsAdminDistInterval = 10 milliseconds + + | Bucket 1 | Bucket 2 | Bucket 3 | Bucket 4 | Bucket 5 | + | 0-9 ms | 10-19 ms | 20-29 ms | 30-39 ms | 40-Inf ms | + + Odd Example: + + rttMonStatisticsAdminNumDistBuckets = 1 buckets + rttMonStatisticsAdminDistInterval = 10 milliseconds + + | Bucket 1 | + | 0-Inf ms | + + Thus, this odd example shows that the value of + rttMonStatisticsAdminDistInterval does not apply when + rttMonStatisticsAdminNumDistBuckets is one. + This object is not applicable to http and jitter probes." + DEFVAL { 20 } + ::= { rttMonStatisticsAdminEntry 5 } + + +-- +-- History Administration Table +-- + +rttMonHistoryAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonHistoryAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring history + definitions. + + The definitions in this table control what and how many + entries will be placed into the + rttMonHistoryCollectionTable. + + The history collection table is a rollover table. When + the rttMonHistoryAdminNumLives index value exceeds its + value defined in this table, the oldest corresponding + 'lives' group will be deleted and will be replaced with + the new 'lives' group. All other indices will only fill + to their maximum size. + + NOTE: The maximum size of this table is defined to be + the product of the rttMonCtrlAdminIndex times + rttMonHistoryAdminNumLives times + rttMonHistoryAdminNumBuckets times + rttMonHistoryAdminNumSamples. + + NOTE WELL: Each of the 'Num' objects values in this + have a special behavior. When one of the + objects is set to a value larger than the + Rtt application can support the set will + succeed, but the resultant value will + be set to the applications maximum value. + The setting management station must reread + this object to verify the actual value. + + NOTE: this table is not applicable to http and jitter + probes" + ::= { rttMonCtrl 8 } + + +rttMonHistoryAdminEntry OBJECT-TYPE + SYNTAX RttMonHistoryAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define RTT history collection + operations." + AUGMENTS { rttMonCtrlAdminEntry } + ::= { rttMonHistoryAdminTable 1 } + + +RttMonHistoryAdminEntry ::= SEQUENCE +{ + rttMonHistoryAdminNumLives Integer32, + rttMonHistoryAdminNumBuckets Integer32, + rttMonHistoryAdminNumSamples Integer32, + rttMonHistoryAdminFilter INTEGER +} + + +rttMonHistoryAdminNumLives OBJECT-TYPE + SYNTAX Integer32 (0..2) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of history lives to record. A life + is defined by the countdown (or transition) to zero + by the rttMonCtrlOperRttLife object. A new life is + created when the same conceptual RTT control row is + restarted via the transition of the + rttMonCtrlOperRttLife object and its subsequent + countdown. + + The value of zero will shut off all + rttMonHistoryAdminTable data collection." + DEFVAL { 0 } + ::= { rttMonHistoryAdminEntry 1 } + + +rttMonHistoryAdminNumBuckets OBJECT-TYPE + SYNTAX Integer32 (1..60) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of history buckets to record. When + the RttMonRttType is 'pathEcho' this value directly + represents a path to a target. For all other + RttMonRttTypes this value should be set to the number + of operations to keep per lifetime. + + After rttMonHistoryAdminNumBuckets are filled, the + and the oldest entries are deleted and the most recent + rttMonHistoryAdminNumBuckets buckets are retained." + DEFVAL { 15 } + ::= { rttMonHistoryAdminEntry 2 } + + +rttMonHistoryAdminNumSamples OBJECT-TYPE + SYNTAX Integer32 (1..30) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of history samples to record per + bucket. When the RttMonRttType is 'pathEcho' this + value directly represents the number of hops along a + path to a target, thus we can only support 30 hops. + For all other RttMonRttTypes this value will be + forced to one by the agent." + DEFVAL { 16 } + ::= { rttMonHistoryAdminEntry 3 } + + +rttMonHistoryAdminFilter OBJECT-TYPE + SYNTAX INTEGER + { + none(1), + all(2), + overThreshold(3), + failures(4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Defines a filter for adding RTT results to the history + buffer: + + none - no history is recorded + all - the results of all completion times + and failed completions are recorded + overThreshold - the results of completion times + over rttMonCtrlAdminThreshold are + recorded. + failures - the results of failed operations (only) + are recorded." + DEFVAL { none } + ::= { rttMonHistoryAdminEntry 4 } + + +-- +-- Overall Operational values +-- + +rttMonCtrlOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonCtrlOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of which contains the Operational values for the + probe, and the conceptual RTT control row. + + This table augments the rttMonCtrlAdminTable." + ::= { rttMonCtrl 9 } + + +rttMonCtrlOperEntry OBJECT-TYPE + SYNTAX RttMonCtrlOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that describe the current state + of probe, and the conceptual RTT control row. " + AUGMENTS { rttMonCtrlAdminEntry } + ::= { rttMonCtrlOperTable 1 } + + +RttMonCtrlOperEntry ::= SEQUENCE +{ + rttMonCtrlOperModificationTime TimeStamp, + rttMonCtrlOperDiagText DisplayString, + rttMonCtrlOperResetTime TimeStamp, + rttMonCtrlOperOctetsInUse Gauge32, + rttMonCtrlOperConnectionLostOccurred TruthValue, + rttMonCtrlOperTimeoutOccurred TruthValue, + rttMonCtrlOperOverThresholdOccurred TruthValue, + rttMonCtrlOperNumRtts Integer32, + rttMonCtrlOperRttLife Integer32, + rttMonCtrlOperState INTEGER, + rttMonCtrlOperVerifyErrorOccurred TruthValue +} + + +rttMonCtrlOperModificationTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is updated whenever an object in + the conceptual RTT control row is changed or + updated." + ::= { rttMonCtrlOperEntry 1 } + + +rttMonCtrlOperDiagText OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..51)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string which can be used as an aid in tracing problems. + The content of this field will depend on the type of + target (rttMonEchoAdminProtocol). + + When rttMonEchoAdminProtocol is one of snaLU0EchoAppl, or + snaLU2EchoAppl this object contains the name of the + Logical Unit (LU) being used for this RTT session (from + the HOST's point of view), once the session has been + established; this can then be used to correlate this + name to the connection information stored in the + Mainframe Host. + + When rttMonEchoAdminProtocol is snaLU62EchoAppl, this + object contains the Logical Unit (LU) name being used for + this RTT session, once the session has been established. + This name can be used by the management application to + correlate this objects value to the connection + information stored at this SNMP Agent via the APPC or + APPN mib. + + When rttMonEchoAdminProtocol is not one of the + previously mentioned values, this value will be null. + + It is primarily intended that this object contains + information which has significance to a human operator." + DEFVAL { "" } + ::= { rttMonCtrlOperEntry 2 } + + +rttMonCtrlOperResetTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is set when the rttMonCtrlOperState is set + to reset." + ::= { rttMonCtrlOperEntry 3 } + +rttMonCtrlOperOctetsInUse OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is the number of octets currently in use + by this composite conceptual RTT row. A composite + conceptual row include the control, statistics, and + history conceptual rows combined. (All octets that + are addressed via the rttMonCtrlAdminIndex in this + mib.)" + ::= { rttMonCtrlOperEntry 4 } + +rttMonCtrlOperConnectionLostOccurred OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object will only change its value when the + RttMonRttType is 'echo' or 'pathEcho'. + + This object is set to true when the RTT connection fails + to be established or is lost, and set to false when a + connection is reestablished. When the RttMonRttType + is 'pathEcho', connection loss applies only to the + rttMonEchoAdminTargetAddress and not to intermediate + hops to the Target. + + When this value changes and + rttMonReactAdminConnectionEnable is true, a reaction + will occur. + + If a trap is sent it is a + rttMonConnectionChangeNotification. + + When this value changes and any one of the rttMonReactTable row + has rttMonReactVar object value as 'connectionLoss(8)', + a reaction may occur. + + If a trap is sent it is rttMonNotification with rttMonReactVar + value of 'connectionLoss'." + DEFVAL { false } + ::= { rttMonCtrlOperEntry 5 } + + +rttMonCtrlOperTimeoutOccurred OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object will change its value for all + RttMonRttTypes. + + This object is set to true when an operation times out, + and set to false when an operation completes under + rttMonCtrlAdminTimeout. When this value changes, a + reaction may occur, as defined by + rttMonReactAdminTimeoutEnable. + + When the RttMonRttType is 'pathEcho', this timeout + applies only to the rttMonEchoAdminTargetAddress and + not to intermediate hops to the Target. + + If a trap is sent it is a rttMonTimeoutNotification. + + When this value changes and any one of the rttMonReactTable + row has rttMonReactVar object value as 'timeout(7)', a reaction + may occur. + + If a trap is sent it is rttMonNotification with rttMonReactVar + value of 'timeout'." + DEFVAL { false } + ::= { rttMonCtrlOperEntry 6 } + + +rttMonCtrlOperOverThresholdOccurred OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object will change its value for all + RttMonRttTypes. + + This object is changed by operation completion times over + threshold, as defined by rttMonReactAdminThresholdType. + When this value changes, a reaction may occur, as defined + by rttMonReactAdminThresholdType. + + If a trap is sent it is a rttMonThresholdNotification. + + This object is set to true if the operation completion time + exceeds the rttMonCtrlAdminThreshold and set to false when an + operation completes under rttMonCtrlAdminThreshold. When this + value changes, a reaction may occur, as defined by + rttMonReactThresholdType. + + If a trap is sent it is rttMonNotification with rttMonReactVar + value of 'rtt'." + DEFVAL { false } + ::= { rttMonCtrlOperEntry 7 } + + +rttMonCtrlOperNumRtts OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the total number of probe operations that have + been attempted. + + This value is incremented for each start of an RTT + operation. Thus when rttMonCtrlAdminRttType is set to + 'pathEcho' this value will be incremented by one and + not for very every hop along the path. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object. + + This value is not effected by the rollover of a statistics + hourly group." + ::= { rttMonCtrlOperEntry 8 } + + +rttMonCtrlOperRttLife OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is decremented every second, until it + reaches zero. When the value of this object is zero + RTT operations for this row are suspended. This + object will either reach zero by a countdown or + it will transition to zero via setting the + rttMonCtrlOperState. + + When this object reaches zero the agent needs to + transition the rttMonCtrlOperState to 'inactive'. + + REMEMBER: The value 2147483647 has a special + meaning. When this object has the + value 2147483647, this object will + not decrement. And thus the life + time will never. + + When the rttMonCtrlOperState object is 'active' and + the rttMonReactTriggerOperState object transitions to + 'active' this object will not be updated with the + current value of rttMonCrtlAdminRttLife object." + ::= { rttMonCtrlOperEntry 9 } + + +rttMonCtrlOperState OBJECT-TYPE + SYNTAX INTEGER + { + reset(1), + orderlyStop(2), + immediateStop(3), + pending(4), + inactive(5), + active(6), + restart(7) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The RttMonOperStatus object is used to + manage the 'state' of the probe that is implementing + conceptual RTT control row. + + This status object has six defined values: + + reset(1) - reset this entry, transition + to 'pending' + orderlyStop(2) - shutdown this entry at the end + of the next RTT operation attempt, + transition to 'inactive' + immediateStop(3) - shutdown this entry immediately + (if possible), transition to + 'inactive' + pending(4) - this value is not settable and + this conceptual RTT control row is + waiting for further control either + via the rttMonScheduleAdminTable + or the rttMonReactAdminTable/ + rttMonReactTriggerAdminTable; + This object can transition to this + value via two mechanisms, first by + reseting this object, and second + by creating a conceptual Rtt control + row with the + rttMonScheduleAdminRttStartTime + object with the its special value + inactive(5) - this value is not settable and + this conceptual RTT control row is + waiting for further control via + the rttMonScheduleAdminTable; + This object can transition to this + value via two mechanisms, first by + setting this object to 'orderlyStop' + or 'immediateStop', second by + the rttMonCtrlOperRttLife object + reaching zero + active(6) - this value is not settable and + this conceptual RTT control row is + currently active + restart(7) - this value is only settable when the + state is active. It clears the data + of this entry and remain on active state. + + The probes action when this object is set to 'reset': + - all rows in rttMonStatsCaptureTable that relate to + this conceptual RTT control row are destroyed and + the indices are set to 1 + - if rttMonStatisticsAdminNumHourGroups is not zero, a + single new rttMonStatsCaptureTable row is created + - all rows in rttMonHistoryCaptureTable that relate + to this RTT definition are destroyed and the indices + are set to 1 + - implied history used for timeout or threshold + notification (see rttMonReactAdminThresholdType or + rttMonReactThresholdType) + is purged + - rttMonCtrlOperRttLife is set to + rttMonScheduleAdminRttLife + - rttMonCtrlOperNumRtts is set to zero + - rttMonCtrlOperTimeoutOccurred, + rttMonCtrlOperOverThresholdOccurred, and + rttMonCtrlOperConnectionLostOccurred are set to + false; if this causes a change in the value of + either of these objects, resolution notifications + will not occur + - the next RTT operation is controlled by the objects + in the rttMonScheduleAdminTable or the + rttMonReactAdminTable/rttMonReactTriggerAdminTable + - if the rttMonReactTriggerOperState is 'active', it + will transition to 'pending' + - all rttMonReactTriggerAdminEntries pointing to + this conceptual entry with their + rttMonReactTriggerOperState object 'active', + will transition their OperState to 'pending' + - all open connections must be maintained + + This can be used to synchronize various RTT + definitions, so that the RTT requests occur + simultaneously, or as simultaneously as possible. + + The probes action when this object transitions to + 'inactive' (via setting this object to 'orderlyStop' + or 'immediateStop' or by rttMonCtrlOperRttLife + reaching zero): + - all statistics and history collection information + table entries will be closed and kept + - implied history used for timeout or threshold + notification (see rttMonReactAdminThresholdType or + rttMonReactThresholdType) + is purged + - rttMonCtrlOperTimeoutOccurred, + rttMonCtrlOperOverThresholdOccurred, and + rttMonCtrlOperConnectionLostOccurred are set to + false; if this causes a change in the value of + either of these objects, resolution notifications + will not occur. + - the next RTT request is controlled by the objects + in the rttMonScheduleAdminTable + - if the rttMonReactTriggerOperState is 'active', it + will transition to 'pending' (this denotes that + the Trigger will be ready the next time this + object goes active) + - all rttMonReactTriggerAdminEntries pointing to + this conceptual entry with their + rttMonReactTriggerOperState object 'active', + will transition their OperState to 'pending' + - all open connections are to be closed and cleanup. + + rttMonCtrlOperState + STATE + +-------------------------------------------+ + | A | B | C | + ACTION | 'pending' | 'inactive' | 'active' | ++----------------+--------------+--------------+-------------+ +| OperState set | noError |inconsistent- | noError | +| to 'reset' | | Value | | +| | -> A | | -> A | ++----------------+--------------+--------------+-------------+ +| OperState set | noError | noError | noError | +|to 'orderlyStop'| -> B | -> B | -> B | +| or to | | | | +|'immediateStop' | | | | ++----------------+--------------+--------------+-------------+ +| Event causes | -> C | -> B | -> C | +| Trigger State | | | see (3) | +| to transition | | | | +| to 'active' | | | | ++----------------+--------------+--------------+-------------+ +| AdminStatus | -> C | -> C | see (1) | +| transitions to | | | | +| 'active' & | | | | +| RttStartTime is| | | | +| special value | | | | +| of one. | | | | ++----------------+--------------+--------------+-------------+ +| AdminStatus | -> A | -> A | see (1) | +| transitions to | | | | +| 'active' & | | | | +| RttStartTime is| | | | +| special value | | | | +| of less than | | | | +| current time, | | | | +| excluding one. | | | | ++----------------+--------------+--------------+-------------+ +| AdminStatus | -> A | -> B | see (2) | +| transitions to | | | | +| 'notInService' | | | | ++----------------+--------------+--------------+-------------+ +| AdminStatus | -> B | -> B | -> B | +| transitions to | | | | +| 'delete' | | | | ++----------------+--------------+--------------+-------------+ +| AdminStatus is | -> C | -> C | -> C | +| 'active' & the | | | see (3) | +| RttStartTime | | | | +| arrives | | | | ++----------------+--------------+--------------+-------------+ +| RowAgeout | -> B | -> B | -> B | +| expires | | | | ++----------------+--------------+--------------+-------------+ +| OperRttLife | N/A | N/A | -> B | +| counts down to | | | | +| zero | | | | ++----------------+--------------+--------------+-------------+ + +(1) - rttMonCtrlOperState must have transitioned to 'inactive' + or 'pending' before the rttMonCtrlAdminStatus can + transition to 'active'. See (2). +(2) - rttMonCtrlAdminStatus cannot transition to 'notInService' + unless rttMonCtrlOperState has been previously forced + to 'inactive' or 'pending'. +(3) - when this happens the rttMonCtrlOperRttLife will not + be updated with the rttMonCtrlAdminRttLife. + + NOTE: In order for all objects in a PDU to be set + at the same time, this object can not be + part of a multi-bound PDU." + ::= { rttMonCtrlOperEntry 10 } + +rttMonCtrlOperVerifyErrorOccurred OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is true if rttMonCtrlAdminVerifyData is + set to true and data corruption occurs." + DEFVAL { false } + ::= { rttMonCtrlOperEntry 11 } + + +-- +-- Latest RTT operation values +-- + +rttMonLatestRttOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonLatestRttOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of which contains the status of latest RTT + operation. + + When the RttMonRttType is 'pathEcho', operations + performed to the hops along the path will be recorded + in this table. + + This table augments the RTT definition table, + rttMonCtrlAdminTable." + ::= { rttMonCtrl 10 } + + + +rttMonLatestRttOperEntry OBJECT-TYPE + SYNTAX RttMonLatestRttOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that record the latest RTT operation. " + AUGMENTS { rttMonCtrlAdminEntry } + ::= { rttMonLatestRttOperTable 1 } + + +RttMonLatestRttOperEntry ::= SEQUENCE +{ + rttMonLatestRttOperCompletionTime Gauge32, + rttMonLatestRttOperSense RttResponseSense, + rttMonLatestRttOperApplSpecificSense Integer32, + rttMonLatestRttOperSenseDescription DisplayString, + rttMonLatestRttOperTime TimeStamp, + rttMonLatestRttOperAddress RttMonTargetAddress +} + +rttMonLatestRttOperCompletionTime OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The completion time of the latest RTT operation + successfully completed." + ::= { rttMonLatestRttOperEntry 1 } + + +rttMonLatestRttOperSense OBJECT-TYPE + SYNTAX RttResponseSense + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A sense code for the completion status of the latest + RTT operation." + ::= { rttMonLatestRttOperEntry 2 } + + +rttMonLatestRttOperApplSpecificSense OBJECT-TYPE + SYNTAX Integer32 ( 0..2147483647 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An application specific sense code for the + completion status of the latest RTT operation. This + object will only be valid when the + rttMonLatestRttOperSense object is set to + 'applicationSpecific'. Otherwise, this object's + value is not valid." + ::= { rttMonLatestRttOperEntry 3 } + + +rttMonLatestRttOperSenseDescription OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A sense description for the completion status of + the latest RTT operation when the + rttMonLatestRttOperSense object is set to + 'applicationSpecific'." + ::= { rttMonLatestRttOperEntry 4 } + + +rttMonLatestRttOperTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the agent system time at the time of the + latest RTT operation." + ::= { rttMonLatestRttOperEntry 5 } + +rttMonLatestRttOperAddress OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the RttMonRttType is 'echo', 'pathEcho', 'udpEcho', + 'tcpConnect', 'dns' and 'dlsw' this is a string which specifies + the address of the target for this RTT operation. When the + RttMonRttType is not one of these types this object will + be null. + + This address will be the address of the hop along the + path to the rttMonEchoAdminTargetAddress address, + including rttMonEchoAdminTargetAddress address, or just + the rttMonEchoAdminTargetAddress address, when the + path information is not collected. This behavior is + defined by the rttMonCtrlAdminRttType object. + + The interpretation of this string depends on the type + of RTT operation selected, as specified by the + rttMonEchoAdminProtocol object. + + See rttMonEchoAdminTargetAddress for a complete + description." + ::= { rttMonLatestRttOperEntry 6 } + + +-- +-- LatestHTTPOper Table +-- + +rttMonLatestHTTPOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonLatestHTTPOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table which contains the status of latest HTTP RTT + operation." + ::= { rttMonLatestOper 1 } + +rttMonLatestHTTPOperEntry OBJECT-TYPE + SYNTAX RttMonLatestHTTPOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that record the latest HTTP RTT + operation. This entry is created automatically after the + rttMonCtrlAdminEntry is created. Also the entry is + automatically deleted when rttMonCtrlAdminEntry is deleted." + INDEX { rttMonCtrlAdminIndex + } + ::= { rttMonLatestHTTPOperTable 1 } + +RttMonLatestHTTPOperEntry ::= SEQUENCE +{ + rttMonLatestHTTPOperRTT Gauge32, + rttMonLatestHTTPOperDNSRTT Gauge32, + rttMonLatestHTTPOperTCPConnectRTT Gauge32, + rttMonLatestHTTPOperTransactionRTT Gauge32, + rttMonLatestHTTPOperMessageBodyOctets Gauge32, + rttMonLatestHTTPOperSense RttResponseSense, + rttMonLatestHTTPErrorSenseDescription DisplayString +} + +rttMonLatestHTTPOperRTT OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Round Trip Time taken to perform HTTP operation. This value + is the sum of DNSRTT, TCPConnectRTT and TransactionRTT." + ::= { rttMonLatestHTTPOperEntry 1 } + +rttMonLatestHTTPOperDNSRTT OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Round Trip Time taken to perform DNS query within the + HTTP operation. If an IP Address is specified in the URL, + then DNSRTT is 0." + ::= { rttMonLatestHTTPOperEntry 2 } + +rttMonLatestHTTPOperTCPConnectRTT OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Round Trip Time taken to connect to the HTTP server." + ::= { rttMonLatestHTTPOperEntry 3 } + +rttMonLatestHTTPOperTransactionRTT OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Round Trip Time taken to download the object specified by + the URL." + ::= { rttMonLatestHTTPOperEntry 4 } + +rttMonLatestHTTPOperMessageBodyOctets OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the message body received as a response to + the HTTP request." + ::= { rttMonLatestHTTPOperEntry 5 } + + +rttMonLatestHTTPOperSense OBJECT-TYPE + SYNTAX RttResponseSense + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An application specific sense code for the completion status + of the latest RTT operation." + ::= { rttMonLatestHTTPOperEntry 6 } + +rttMonLatestHTTPErrorSenseDescription OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An sense description for the completion status + of the latest RTT operation." + ::= { rttMonLatestHTTPOperEntry 7 } + +-- +-- LatestJitterOper Table +-- + +rttMonLatestJitterOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonLatestJitterOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table which contains the status of latest Jitter + operation." + ::= { rttMonLatestOper 2 } + +rttMonLatestJitterOperEntry OBJECT-TYPE + SYNTAX RttMonLatestJitterOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that record the latest Jitter + operation." + INDEX { rttMonCtrlAdminIndex + } + ::= { rttMonLatestJitterOperTable 1 } + +RttMonLatestJitterOperEntry ::= SEQUENCE +{ + rttMonLatestJitterOperNumOfRTT Gauge32, + rttMonLatestJitterOperRTTSum Gauge32, + rttMonLatestJitterOperRTTSum2 Gauge32, + rttMonLatestJitterOperRTTMin Gauge32, + rttMonLatestJitterOperRTTMax Gauge32, + rttMonLatestJitterOperMinOfPositivesSD Gauge32, + rttMonLatestJitterOperMaxOfPositivesSD Gauge32, + rttMonLatestJitterOperNumOfPositivesSD Gauge32, + rttMonLatestJitterOperSumOfPositivesSD Gauge32, + rttMonLatestJitterOperSum2PositivesSD Gauge32, + rttMonLatestJitterOperMinOfNegativesSD Gauge32, + rttMonLatestJitterOperMaxOfNegativesSD Gauge32, + rttMonLatestJitterOperNumOfNegativesSD Gauge32, + rttMonLatestJitterOperSumOfNegativesSD Gauge32, + rttMonLatestJitterOperSum2NegativesSD Gauge32, + rttMonLatestJitterOperMinOfPositivesDS Gauge32, + rttMonLatestJitterOperMaxOfPositivesDS Gauge32, + rttMonLatestJitterOperNumOfPositivesDS Gauge32, + rttMonLatestJitterOperSumOfPositivesDS Gauge32, + rttMonLatestJitterOperSum2PositivesDS Gauge32, + rttMonLatestJitterOperMinOfNegativesDS Gauge32, + rttMonLatestJitterOperMaxOfNegativesDS Gauge32, + rttMonLatestJitterOperNumOfNegativesDS Gauge32, + rttMonLatestJitterOperSumOfNegativesDS Gauge32, + rttMonLatestJitterOperSum2NegativesDS Gauge32, + rttMonLatestJitterOperPacketLossSD Gauge32, + rttMonLatestJitterOperPacketLossDS Gauge32, + rttMonLatestJitterOperPacketOutOfSequence Gauge32, + rttMonLatestJitterOperPacketMIA Gauge32, + rttMonLatestJitterOperPacketLateArrival Gauge32, + rttMonLatestJitterOperSense RttResponseSense, + rttMonLatestJitterErrorSenseDescription DisplayString, + rttMonLatestJitterOperOWSumSD Gauge32, + rttMonLatestJitterOperOWSum2SD Gauge32, + rttMonLatestJitterOperOWMinSD Gauge32, + rttMonLatestJitterOperOWMaxSD Gauge32, + rttMonLatestJitterOperOWSumDS Gauge32, + rttMonLatestJitterOperOWSum2DS Gauge32, + rttMonLatestJitterOperOWMinDS Gauge32, + rttMonLatestJitterOperOWMaxDS Gauge32, + rttMonLatestJitterOperNumOfOW Gauge32, + rttMonLatestJitterOperMOS Gauge32, + rttMonLatestJitterOperICPIF Gauge32, + rttMonLatestJitterOperIAJOut Gauge32, + rttMonLatestJitterOperIAJIn Gauge32, + rttMonLatestJitterOperAvgJitter Gauge32, + rttMonLatestJitterOperAvgSDJ Gauge32, + rttMonLatestJitterOperAvgDSJ Gauge32, + rttMonLatestJitterOperOWAvgSD Gauge32, + rttMonLatestJitterOperOWAvgDS Gauge32, + rttMonLatestJitterOperNTPState INTEGER, + rttMonLatestJitterOperUnSyncRTs Counter32 +} + +rttMonLatestJitterOperNumOfRTT OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT's that were successfully measured." + ::= { rttMonLatestJitterOperEntry 1 } + +rttMonLatestJitterOperRTTSum OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of Jitter RTT's that are successfully measured." + ::= { rttMonLatestJitterOperEntry 2 } + +rttMonLatestJitterOperRTTSum2 OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's that are successfully measured." + ::= { rttMonLatestJitterOperEntry 3 } + +rttMonLatestJitterOperRTTMin OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of RTT's that were successfully measured." + ::= { rttMonLatestJitterOperEntry 4 } + +rttMonLatestJitterOperRTTMax OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of RTT's that were successfully measured." + ::= { rttMonLatestJitterOperEntry 5 } + +rttMonLatestJitterOperMinOfPositivesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all positive jitter values from packets sent + from source to destination." + ::= { rttMonLatestJitterOperEntry 6 } + +rttMonLatestJitterOperMaxOfPositivesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all positive jitter values from packets sent + from source to destination." + ::= { rttMonLatestJitterOperEntry 7 } + +rttMonLatestJitterOperNumOfPositivesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of all positive jitter values from packets + sent from source to destination." + ::= { rttMonLatestJitterOperEntry 8 } + +rttMonLatestJitterOperSumOfPositivesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT's of all positive jitter values from packets + sent from source to destination." + ::= { rttMonLatestJitterOperEntry 9 } + +rttMonLatestJitterOperSum2PositivesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of square of RTT's of all positive jitter values from + packets sent from source to destination." + ::= { rttMonLatestJitterOperEntry 10 } + +rttMonLatestJitterOperMinOfNegativesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of absolute values of all negative jitter values + from packets sent from source to destination." + ::= { rttMonLatestJitterOperEntry 11 } + +rttMonLatestJitterOperMaxOfNegativesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of absolute values of all negative jitter values + from packets sent from source to destination." + ::= { rttMonLatestJitterOperEntry 12 } + +rttMonLatestJitterOperNumOfNegativesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of number of all negative jitter values from packets + sent from source to destination." + ::= { rttMonLatestJitterOperEntry 13 } + +rttMonLatestJitterOperSumOfNegativesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of all negative jitter values from packets + sent from source to destination." + ::= { rttMonLatestJitterOperEntry 14 } + +rttMonLatestJitterOperSum2NegativesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of square of RTT's of all negative jitter values from + packets sent from source to destination." + ::= { rttMonLatestJitterOperEntry 15 } + +rttMonLatestJitterOperMinOfPositivesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all positive jitter values from packets sent + from destination to source." + ::= { rttMonLatestJitterOperEntry 16 } + +rttMonLatestJitterOperMaxOfPositivesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all positive jitter values from packets sent + from destination to source." + ::= { rttMonLatestJitterOperEntry 17 } + +rttMonLatestJitterOperNumOfPositivesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of number of all positive jitter values from packets + sent from destination to source." + ::= { rttMonLatestJitterOperEntry 18 } + +rttMonLatestJitterOperSumOfPositivesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT's of all positive jitter values from packets + sent from destination to source." + ::= { rttMonLatestJitterOperEntry 19 } + +rttMonLatestJitterOperSum2PositivesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's of all positive jitter values from + packets sent from destination to source." + ::= { rttMonLatestJitterOperEntry 20 } + +rttMonLatestJitterOperMinOfNegativesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all negative jitter values from packets sent + from destination to source." + ::= { rttMonLatestJitterOperEntry 21 } + +rttMonLatestJitterOperMaxOfNegativesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all negative jitter values from packets sent + from destination to source." + ::= { rttMonLatestJitterOperEntry 22 } + +rttMonLatestJitterOperNumOfNegativesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of number of all negative jitter values from packets + sent from destination to source." + ::= { rttMonLatestJitterOperEntry 23 } + +rttMonLatestJitterOperSumOfNegativesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT's of all negative jitter values from packets + sent from destination to source." + ::= { rttMonLatestJitterOperEntry 24 } + +rttMonLatestJitterOperSum2NegativesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's of all negative jitter values from + packets sent from destination to source." + ::= { rttMonLatestJitterOperEntry 25 } + +rttMonLatestJitterOperPacketLossSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets lost when sent from source to destination." + ::= { rttMonLatestJitterOperEntry 26 } + +rttMonLatestJitterOperPacketLossDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets lost when sent from destination to source." + ::= { rttMonLatestJitterOperEntry 27 } + +rttMonLatestJitterOperPacketOutOfSequence OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets arrived out of sequence." + ::= { rttMonLatestJitterOperEntry 28 } + +rttMonLatestJitterOperPacketMIA OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets that are lost for which we cannot determine + the direction." + ::= { rttMonLatestJitterOperEntry 29 } + +rttMonLatestJitterOperPacketLateArrival OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets that arrived after the timeout." + ::= { rttMonLatestJitterOperEntry 30 } + +rttMonLatestJitterOperSense OBJECT-TYPE + SYNTAX RttResponseSense + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An application specific sense code for the completion status + of the latest Jitter RTT operation." + ::= { rttMonLatestJitterOperEntry 31 } + +rttMonLatestJitterErrorSenseDescription OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An sense description for the completion status + of the latest Jitter RTT operation." + ::= { rttMonLatestJitterOperEntry 32 } + +rttMonLatestJitterOperOWSumSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of one way latency from source to destination." + ::= { rttMonLatestJitterOperEntry 33 } + +rttMonLatestJitterOperOWSum2SD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of one way latency from source to + destination." + ::= { rttMonLatestJitterOperEntry 34 } + +rttMonLatestJitterOperOWMinSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all one way latency from source to destination." + ::= { rttMonLatestJitterOperEntry 35 } + +rttMonLatestJitterOperOWMaxSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all one way latency from source to destination." + ::= { rttMonLatestJitterOperEntry 36 } + +rttMonLatestJitterOperOWSumDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of one way latency from destination to source." + ::= { rttMonLatestJitterOperEntry 37 } + +rttMonLatestJitterOperOWSum2DS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of one way latency from destination to + source." + ::= { rttMonLatestJitterOperEntry 38 } + +rttMonLatestJitterOperOWMinDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all one way latency from destination to + source." + ::= { rttMonLatestJitterOperEntry 39 } + +rttMonLatestJitterOperOWMaxDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all one way latency from destination to source." + ::= { rttMonLatestJitterOperEntry 40 } + +rttMonLatestJitterOperNumOfOW OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of successful one way latency measurements." + ::= { rttMonLatestJitterOperEntry 41 } + +rttMonLatestJitterOperMOS OBJECT-TYPE + SYNTAX Gauge32 ( 100..500 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The MOS value for the latest jitter operation in hundreds. " + ::= { rttMonLatestJitterOperEntry 42 } + +rttMonLatestJitterOperICPIF OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Represents ICPIF value for the latest jitter operation" + ::= { rttMonLatestJitterOperEntry 43 } + +rttMonLatestJitterOperIAJOut OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interarrival Jitter (RC1889) at responder." + REFERENCE + "Refer to the following documents for the definition: RFC 1889" + ::= { rttMonLatestJitterOperEntry 44 } + +rttMonLatestJitterOperIAJIn OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interarrival Jitter (RFC1889) at source." + REFERENCE + "Refer to the following documents for the definition: RFC 1889" + ::= { rttMonLatestJitterOperEntry 45 } + +rttMonLatestJitterOperAvgJitter OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average of positive and negative jitter + values in SD and DS direction for latest operation." + ::= { rttMonLatestJitterOperEntry 46 } + +rttMonLatestJitterOperAvgSDJ OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average of positive and negative jitter values + from source to destination for latest operation." + ::= { rttMonLatestJitterOperEntry 47 } + +rttMonLatestJitterOperAvgDSJ OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average of positive and negative jitter values + from destination to source for latest operation." + ::= { rttMonLatestJitterOperEntry 48 } + +rttMonLatestJitterOperOWAvgSD OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average latency value from source to destination." + ::= { rttMonLatestJitterOperEntry 49 } + +rttMonLatestJitterOperOWAvgDS OBJECT-TYPE + SYNTAX Gauge32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average latency value from destination to source." + ::= { rttMonLatestJitterOperEntry 50 } + +rttMonLatestJitterOperNTPState OBJECT-TYPE + SYNTAX INTEGER + { + sync(1), + outOfSync(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value of sync(1) means sender and responder was in sync + with NTP. The NTP sync means the total of NTP offset + on sender and responder is within configured tolerance level." + ::= { rttMonLatestJitterOperEntry 51 } + +rttMonLatestJitterOperUnSyncRTs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT operations that have completed with + sender and responder out of sync with NTP. The NTP sync means + the total of NTP offset on sender and responder is within + configured tolerance level." + ::= { rttMonLatestJitterOperEntry 52 } + +-- +-- Reaction Trigger Administration Table +-- + + +rttMonReactTriggerAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonReactTriggerAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of which contains the list of conceptual RTT + control rows that will start to collect data when a + reaction condition is violated and when + rttMonReactAdminActionType is set to one of the + following: + - triggerOnly + - trapAndTrigger + - nmvtAndTrigger + - trapNmvtAndTrigger + or when a reaction condition is violated and when any of the + row in rttMonReactTable has rttMonReactActionType as one of + the following: + - triggerOnly + - trapAndTrigger + + The goal of this table is to define one or more + additional conceptual RTT control rows that will become + active and start to collect additional history and + statistics (depending on the rows configuration values), + when a problem has been detected. + + If the conceptual RTT control row is undefined, and a + trigger occurs, no action will take place. + + If the conceptual RTT control row is scheduled to start + at a later time, triggering that row will have no effect. + + If the conceptual RTT control row is currently active, + triggering that row will have no effect on that row, but + the rttMonReactTriggerOperState object will transition to + 'active'. + + An entry in this table can only be triggered when + it is not currently in a triggered state. The + object rttMonReactTriggerOperState will + reflect the state of each entry in this table." + ::= { rttMonCtrl 11 } + + +rttMonReactTriggerAdminEntry OBJECT-TYPE + SYNTAX RttMonReactTriggerAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that will be triggered when + a reaction condition is violated." + INDEX { rttMonCtrlAdminIndex, + rttMonReactTriggerAdminRttMonCtrlAdminIndex } + ::= { rttMonReactTriggerAdminTable 1 } + + +RttMonReactTriggerAdminEntry ::= SEQUENCE +{ + rttMonReactTriggerAdminRttMonCtrlAdminIndex Integer32, + rttMonReactTriggerAdminStatus RowStatus +} + +rttMonReactTriggerAdminRttMonCtrlAdminIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object points to a single conceptual Rtt control + row. If this row does not exist and this value is + triggered no action will result. + + The conceptual Rtt control row will be triggered for the + rttMonCtrlOperRttLife length. If this conceptual Rtt + control row is already active, rttMonCtrlOperRttLife will + not be updated, and its life will continue as previously + defined." + ::= { rttMonReactTriggerAdminEntry 1 } + +rttMonReactTriggerAdminStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used to create Trigger entries." + ::= { rttMonReactTriggerAdminEntry 2 } + + +-- +-- Reaction Violation Trigger Operational State Table +-- + + +rttMonReactTriggerOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonReactTriggerOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of which contains the operational state + of each entry in the + rttMonReactTriggerAdminTable. + + This table augments the RTT trigger + definition table, rttMonReactTriggerAdminTable." + ::= { rttMonCtrl 12 } + + +rttMonReactTriggerOperEntry OBJECT-TYPE + SYNTAX RttMonReactTriggerOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of state objects for the + rttMonReactTriggerAdminTable." + AUGMENTS { rttMonReactTriggerAdminEntry } + ::= { rttMonReactTriggerOperTable 1 } + + +RttMonReactTriggerOperEntry ::= SEQUENCE +{ + rttMonReactTriggerOperState INTEGER +} + +rttMonReactTriggerOperState OBJECT-TYPE + SYNTAX INTEGER + { + active(1), + pending(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object takes on the value active + when its associated entry in the + rttMonReactTriggerAdminTable has been + triggered. + + When the associated entry in the + rttMonReactTriggerAdminTable is not under + a trigger state, this object will be + pending. + + When this object is in the active state + this entry can not be retriggered." + ::= { rttMonReactTriggerOperEntry 1 } + + +-- +-- EchoPath Admin Table +-- + +rttMonEchoPathAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonEchoPathAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table to store the hop addresses in a Loose Source Routing + path. Response times are computed along the specified path using + ping. + + This maximum table size is limited by the size of the + maximum number of hop addresses that can fit in an IP header, + which is 8. The object rttMonEchoPathAdminEntry will reflect + this tables maximum number of entries. + + This table is coupled with rttMonCtrlAdminStatus." + ::= { rttMonCtrl 13 } + +rttMonEchoPathAdminEntry OBJECT-TYPE + SYNTAX RttMonEchoPathAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define intermediate hop's IP Address. + + This entry can be added only if the rttMonCtrlAdminRttType is + 'echo'. The entry gets deleted when the corresponding RTR entry, + which has an index of rttMonCtrlAdminIndex, is deleted." + INDEX { rttMonCtrlAdminIndex, + rttMonEchoPathAdminHopIndex + } + ::= { rttMonEchoPathAdminTable 1 } + +RttMonEchoPathAdminEntry ::= SEQUENCE +{ + rttMonEchoPathAdminHopIndex Integer32, + rttMonEchoPathAdminHopAddress RttMonTargetAddress +} + +rttMonEchoPathAdminHopIndex OBJECT-TYPE + SYNTAX Integer32 (1..8) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Uniquely identifies a row in the rttMonEchoPathAdminTable. + This number represents the hop address number in a specific + ping path. All the indicies should start from 1 and must be + contiguous ie., entries should be (say rttMonCtrlAdminIndex = 1) + 1.1, 1.2, 1.3, they cannot be 1.1, 1.2, 1.4" + ::= { rttMonEchoPathAdminEntry 1 } + +rttMonEchoPathAdminHopAddress OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the address of an intermediate hop's + IP Address for a RTT 'echo' operation" + ::= { rttMonEchoPathAdminEntry 2 } + + +rttMonGrpScheduleAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonGrpScheduleAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Round Trip Time (RTT) monitoring group scheduling + specific definitions. + This table is used to create a conceptual group scheduling + control row. The entries in this control row contain objects + used to define group schedule configuration parameters. + + The objects of this table will be used to schedule a group of + probes identified by the conceptual rows of the + rttMonCtrlAdminTable." + ::= { rttMonCtrl 14 } + + +rttMonGrpScheduleAdminEntry OBJECT-TYPE + SYNTAX RttMonGrpScheduleAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define a conceptual group scheduling + control row." + INDEX { rttMonGrpScheduleAdminIndex } + ::= { rttMonGrpScheduleAdminTable 1 } + + +RttMonGrpScheduleAdminEntry ::= SEQUENCE +{ + rttMonGrpScheduleAdminIndex Integer32, + rttMonGrpScheduleAdminProbes DisplayString, + rttMonGrpScheduleAdminPeriod Integer32, + rttMonGrpScheduleAdminFrequency Integer32, + rttMonGrpScheduleAdminLife Integer32, + rttMonGrpScheduleAdminAgeout Integer32, + rttMonGrpScheduleAdminStatus RowStatus, + rttMonGrpScheduleAdminFreqMax Integer32, + rttMonGrpScheduleAdminFreqMin Integer32, + rttMonGrpScheduleAdminStartTime Integer32, + rttMonGrpScheduleAdminAdd TruthValue, + rttMonGrpScheduleAdminDelete TruthValue, + rttMonGrpScheduleAdminReset TruthValue +} + + +rttMonGrpScheduleAdminIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Uniquely identifies a row in the + rttMonGrpScheduleAdminTable. + + This is a pseudo-random number selected by the management + station when creating a row via the + rttMonGrpScheduleAdminStatus object. If the pseudo-random + number is already in use an 'inconsistentValue' return code + will be returned when set operation is attempted." + ::= { rttMonGrpScheduleAdminEntry 1 } + + +rttMonGrpScheduleAdminProbes OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..200)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which holds the different probes which are to be + group scheduled. The probes can be specified in the following + forms. + (a) Individual ID's with comma separated as 23,45,34. + (b) Range form including hyphens with multiple ranges being + separated by a comma as 1-10,12-34. + (c) Mix of the above two forms as 1,2,4-10,12,15,19-25. + + Any whitespace in the string is considered an error. Duplicates + and overlapping ranges as an example 1,2,3,2-10 are considered + fine. For a single range like 1-20 the upper value (in this + example 20) must be greater than lower value (1), otherwise it's + treated as an error. The agent will not normalize the list e.g., + it will not change 1,2,1-10 or even 1,2,3,4,5,6.. to 1-10." + DEFVAL { "" } + ::= { rttMonGrpScheduleAdminEntry 2 } + + +rttMonGrpScheduleAdminPeriod OBJECT-TYPE + SYNTAX Integer32 (0..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the time duration over which all the probes have to + be scheduled." + DEFVAL { 0 } + ::= { rttMonGrpScheduleAdminEntry 3 } + + +rttMonGrpScheduleAdminFrequency OBJECT-TYPE + SYNTAX Integer32 (0..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the duration between initiating each RTT + operation for all the probes specified in the group. + + The value of this object is only effective when both + rttMonGrpScheduleAdminFreqMax and rttMonGrpScheduleAdminFreqMin + have zero values." + DEFVAL { 0 } + ::= { rttMonGrpScheduleAdminEntry 4 } + + +rttMonGrpScheduleAdminLife OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the life of all the probes included in + the object rttMonGrpScheduleAdminProbes, that are getting group + scheduled. This value will be placed into + rttMonScheduleAdminRttLife object for each of the probes listed + in rttMonGrpScheduleAdminProbes when this conceptual control + row becomes 'active'. + + The value 2147483647 has a special meaning. When this object is + set to 2147483647, the rttMonCtrlOperRttLife object for all the + probes listed in rttMonGrpScheduleAdminProbes, will not + decrement. And thus the life time of the probes will never end." + DEFVAL { 3600 } + ::= { rttMonGrpScheduleAdminEntry 5 } + + +rttMonGrpScheduleAdminAgeout OBJECT-TYPE + SYNTAX Integer32 (0..2073600) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the ageout value of all the probes + included in the object rttMonGrpScheduleAdminProbes, that are + getting group scheduled. This value will be placed into + rttMonScheduleAdminConceptRowAgeout object for each of the + probes listed in rttMonGrpScheduleAdminProbes when this + conceptual control row becomes 'active'. + + When this value is set to zero, the probes listed in + rttMonGrpScheduleAdminProbes, will never ageout." + DEFVAL { 3600 } + ::= { rttMonGrpScheduleAdminEntry 6 } + + +rttMonGrpScheduleAdminStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of the conceptual RTT group schedule control row. + + In order for this object to become active, the following + row objects must be defined: + - rttMonGrpScheduleAdminProbes + - rttMonGrpScheduleAdminPeriod + All other objects can assume default values. + + The conceptual RTT group schedule control row objects cannot be + modified once this conceptual RTT group schedule control row + has been created. + Once this object is in 'active' status, it cannot be set to + 'notInService'. + When this object moves to 'active' state it will schedule the + probes of the rttMonCtrlAdminTable which had been created using + 'createAndWait'. + + This object can be set to 'destroy' from any value at any time. + When this object is set to 'destroy' it will stop all the probes + of the rttMonCtrlAdminTable, which had been group scheduled + by it earlier, before destroying the RTT group schedule + control row." + ::= { rttMonGrpScheduleAdminEntry 7 } + +rttMonGrpScheduleAdminFreqMax OBJECT-TYPE + SYNTAX Integer32 (0..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the max duration between initiating each RTT + operation for all the probes specified in the group. + + If this is 0 and rttMonGrpScheduleAdminFreqMin is also 0 + then rttMonGrpScheduleAdminFrequency becomes the fixed + frequency." + DEFVAL { 0 } + ::= { rttMonGrpScheduleAdminEntry 8 } + +rttMonGrpScheduleAdminFreqMin OBJECT-TYPE + SYNTAX Integer32 (0..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the min duration between initiating each RTT + operation for all the probes specified in the group. + + The value of this object cannot be greater than the value of + rttMonGrpScheduleAdminFreqMax. + + If this is 0 and rttMonGrpScheduleAdminFreqMax is 0 then + rttMonGrpScheduleAdminFrequency becomes the fixed frequency." + DEFVAL { 0 } + ::= { rttMonGrpScheduleAdminEntry 9 } + +rttMonGrpScheduleAdminStartTime OBJECT-TYPE + SYNTAX Integer32 (0..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This is the time in seconds after which the member probes of + this group specified in rttMonGrpScheduleAdminProbes will + transition to active state" + DEFVAL { 0 } + ::= { rttMonGrpScheduleAdminEntry 10 } + +rttMonGrpScheduleAdminAdd OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Addition of members to an existing group will be allowed + if this object is set to TRUE (1). The members, IDs of + which are mentioned in rttMonGrpScheduleAdminProbes object + are added to the existing group" + ::= { rttMonGrpScheduleAdminEntry 11 } + +rttMonGrpScheduleAdminDelete OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Removal of members from an existing group will be allowed + if this object is set to TRUE (1). The members, IDs of + which are mentioned in rttMonGrpScheduleAdminProbes object + are removed from the existing group" + + ::= { rttMonGrpScheduleAdminEntry 12 } + +rttMonGrpScheduleAdminReset OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When this is set to true then all members + of this group will be stopped and rescheduled using the + previously set values of this group." + + ::= { rttMonGrpScheduleAdminEntry 13 } + + +-- +-- Auto SAA L3 MPLS VPN Configuration Definitions +-- + +rttMplsVpnMonCtrlTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMplsVpnMonCtrlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Auto SAA L3 MPLS VPN definitions. + + The Auto SAA L3 MPLS VPN administration control is in multiple + tables. + + This first table, is used to create a conceptual Auto SAA L3 + MPLS VPN control row. The following tables contain objects + which used in type specific configurations, scheduling and + reaction configurations. All of these tables will create the + same conceptual control row as this table using this table's + index as their own index. + + In order to a row in this table to become active the following + objects must be defined. + rttMplsVpnMonCtrlRttType, + rttMplsVpnMonCtrlVrfName and + rttMplsVpnMonSchedulePeriod." + ::= { rttMonCtrl 15 } + +rttMplsVpnMonCtrlEntry OBJECT-TYPE + SYNTAX RttMplsVpnMonCtrlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A base list of objects that define a conceptual Auto SAA L3 + MPLS VPN control row." + INDEX { rttMplsVpnMonCtrlIndex } + ::= { rttMplsVpnMonCtrlTable 1 } + + +RttMplsVpnMonCtrlEntry ::= SEQUENCE +{ + rttMplsVpnMonCtrlIndex Integer32, + rttMplsVpnMonCtrlRttType RttMplsVpnMonRttType, + rttMplsVpnMonCtrlVrfName OCTET STRING, + rttMplsVpnMonCtrlTag DisplayString, + rttMplsVpnMonCtrlThreshold Integer32, + rttMplsVpnMonCtrlTimeout Integer32, + rttMplsVpnMonCtrlScanInterval Integer32, + rttMplsVpnMonCtrlDelScanFactor Integer32, + rttMplsVpnMonCtrlEXP Integer32, + rttMplsVpnMonCtrlRequestSize Integer32, + rttMplsVpnMonCtrlVerifyData TruthValue, + rttMplsVpnMonCtrlStorageType StorageType, + rttMplsVpnMonCtrlProbeList DisplayString, + rttMplsVpnMonCtrlStatus RowStatus, + rttMplsVpnMonCtrlLpd TruthValue, + rttMplsVpnMonCtrlLpdGrpList DisplayString, + rttMplsVpnMonCtrlLpdCompTime Integer32 +} + +rttMplsVpnMonCtrlIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Uniquely identifies a row in the rttMplsVpnMonCtrlTable. + + This is a pseudo-random number selected by the management + station when creating a row via the + rttMplsVpnMonCtrlStatus object. + + If the pseudo-random number is already in use an + 'inconsistentValue' return code will be returned when set + operation is attempted." + ::= { rttMplsVpnMonCtrlEntry 1 } + +rttMplsVpnMonCtrlRttType OBJECT-TYPE + SYNTAX RttMplsVpnMonRttType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The type of RTT operation to be performed for Auto SAA L3 + MPLS VPN. + + This value must be set in the same PDU of + rttMplsVpnMonCtrlStatus. + + This value must be set before setting + any other parameter configuration of an Auto SAA L3 MPLS VPN." + ::= { rttMplsVpnMonCtrlEntry 2 } + +rttMplsVpnMonCtrlVrfName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This field is used to specify the VPN name for which + the Auto SAA L3 MPLS VPN RTT operation will be used. + + This value must be set in the same PDU of + rttMplsVpnMonCtrlStatus. + + The Auto SAA L3 MPLS VPN will find the PEs participating in + this VPN and configure RTT operation corresponding to value + specified in rttMplsVpnMonCtrlRttType. + + If the VPN corresponds to the value configured for this object + doesn't exist 'inconsistentValue' error will be returned. + + The value 'saa-vrf-all' has a special meaning. When this + object is set to 'saa-vrf-all', all the VPNs in the PE will be + discovered and Auto SAA L3 MPLS VPN will configure RTT + operations corresponding to all these PEs with the value + specified in rttMplsVpnMonCtrlRttType as type for those + operations. + + So, the user should avoid using this string for a particular + VPN name when using this feature in order to avoid ambiguity." + ::= { rttMplsVpnMonCtrlEntry 3 } + +rttMplsVpnMonCtrlTag OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which is used by a managing application to + identify the RTT target. + + This string will be configured as rttMonCtrlAdminTag for all + the operations configured by this Auto SAA L3 MPLS VPN. + + The usage of this value in Auto SAA L3 MPLS VPN is same as + rttMonCtrlAdminTag in RTT operation." + DEFVAL { "" } + ::= { rttMplsVpnMonCtrlEntry 4 } + +rttMplsVpnMonCtrlThreshold OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object defines an administrative threshold limit. + + This value will be configured as rttMonCtrlAdminThreshold for + all the operations that will be configured by the current + Auto SAA L3 MPLS VPN. + + The usage of this value in Auto SAA L3 MPLS VPN is same as + rttMonCtrlAdminThreshold." + DEFVAL { 5000 } + ::= { rttMplsVpnMonCtrlEntry 5 } + +rttMplsVpnMonCtrlTimeout OBJECT-TYPE + SYNTAX Integer32 (0..604800000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the duration to wait for a RTT operation configured + automatically by the Auto SAA L3 MPLS VPN to complete. + + The value of this object cannot be set to a value which would + specify a duration exceeding rttMplsVpnMonScheduleFrequency. + + The usage of this value in Auto SAA L3 MPLS VPN is similar to + rttMonCtrlAdminTimeout." + DEFVAL { 5000 } + ::= { rttMplsVpnMonCtrlEntry 6 } + +rttMplsVpnMonCtrlScanInterval OBJECT-TYPE + SYNTAX Integer32 (1..70560) + UNITS "minutes" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the frequency at which the automatic PE addition + should take place if there is any for an Auto SAA L3 MPLS VPN. + + New RTT operations corresponding to the new PEs discovered will + be created and scheduled. + + The default value for this object is 4 hours. The maximum value + supported is 49 days." + DEFVAL { 240 } + ::= { rttMplsVpnMonCtrlEntry 7 } + +rttMplsVpnMonCtrlDelScanFactor OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the frequency at which the automatic PE deletion + should take place. + + This object specifies the number of times of + rttMonMplslmCtrlScanInterval (rttMplsVpnMonCtrlDelScanFactor * + rttMplsVpnMonCtrlScanInterval) to wait before removing the PEs. + This object doesn't directly specify the explicit value to + wait before removing the PEs that were down. + + If this object set 0 the entries will never removed." + DEFVAL { 1 } + ::= { rttMplsVpnMonCtrlEntry 8 } + +rttMplsVpnMonCtrlEXP OBJECT-TYPE + SYNTAX Integer32 (0..7) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the EXP value that needs to be + put as precedence bit of an IP header." + DEFVAL { 0 } + ::= { rttMplsVpnMonCtrlEntry 9 } + +rttMplsVpnMonCtrlRequestSize OBJECT-TYPE + SYNTAX Integer32 (0..16384) + UNITS "octets" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the native payload size that needs to + be put on the packet. + + This value will be configured as + rttMonEchoAdminPktDataRequestSize for all the RTT operations + configured by the current Auto SAA L3 MPLS VPN. + + The minimum request size for jitter probe is 16. The maximum + for jitter probe is 1500. The default request size is 32 for + jitter probe. + + For echo and pathEcho default request size is 28. + The minimum request size for echo and pathEcho is 28 bytes." + DEFVAL { 1 } + ::= { rttMplsVpnMonCtrlEntry 10 } + +rttMplsVpnMonCtrlVerifyData OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When set to true, the resulting data in each RTT operation + created by the current Auto SAA L3 MPLS VPN is compared with + the expected data. This includes checking header information + (if possible) and exact packet size. Any mismatch will be + recorded in the rttMonStatsCollectVerifyErrors object of each + RTT operation created by the current Auto SAA L3 MPLS VPN." + DEFVAL { false } + ::= { rttMplsVpnMonCtrlEntry 11 } + +rttMplsVpnMonCtrlStorageType OBJECT-TYPE + SYNTAX StorageType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The storage type of this conceptual row. When set to + 'nonVolatile', this entry will be shown in 'show running' + command and can be saved into Non-volatile memory. + + By Default the entry will not be saved into Non-volatile + memory. + + This object can be set to either 'volatile' or 'nonVolatile'. + Other values are not applicable for this conceptual row and + are not supported." + DEFVAL { volatile } + ::= { rttMplsVpnMonCtrlEntry 12 } + +rttMplsVpnMonCtrlProbeList OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object holds the list of probes ID's that are created by + the Auto SAA L3 MPLS VPN. + + The probes will be specified in the following form. + (a) Individual ID's with comma separated as 1,5,3. + (b) Range form including hyphens with multiple ranges being + separated by comma as 1-10,12-34. + (c) Mix of the above two forms as 1,2,4-10,12,15,19-25." + ::= { rttMplsVpnMonCtrlEntry 13 } + +rttMplsVpnMonCtrlStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of the conceptual Auto SAA L3 MPLS VPN control row. + + In order for this object to become active + rttMplsVpnMonCtrlRttType, rttMplsVpnMonCtrlVrfName and + rttMplsVpnMonSchedulePeriod objects must be defined. + All other objects can assume default values. + + If the object is set to 'createAndGo' rttMplsVpnMonCtrlRttType, + rttMplsVpnMonCtrlVrfName and rttMplsVpnMonSchedulePeriod needs + to be set along with rttMplsVpnMonCtrlStatus. + + If the object is set to 'createAndWait' rttMplsVpnMonCtrlRttType + and rttMplsVpnMonCtrlVrfName needs to be set along with + rttMplsVpnMonCtrlStatus. rttMplsVpnMonSchedulePeriod needs to be + specified before setting rttMplsVpnMonCtrlStatus to 'active'. + + The following objects cannot be modified after creating the + Auto SAA L3 MPLS VPN conceptual row. + + - rttMplsVpnMonCtrlRttType + - rttMplsVpnMonCtrlVrfName + + The following objects can be modified even after creating the + Auto SAA L3 MPLS VPN conceptual row by setting this object to + 'notInService' + + - All other writable objects in rttMplsVpnMonCtrlTable except + rttMplsVpnMonCtrlRttType and rttMplsVpnMonCtrlVrfName. + - Objects in the rttMplsVpnMonTypeTable. + - Objects in the rttMplsVpnMonScheduleTable. + + The following objects can be modified as needed without setting + this object to 'notInService' even after creating the + Auto SAA L3 MPLS VPN conceptual row. + + - Objects in rttMplsVpnMonReactTable. + + This object can be set to 'destroy' from any value + at any time. When this object is set to 'destroy' it will stop + and destroy all the probes created by this Auto SAA L3 MPLS VPN + before destroying Auto SAA L3 MPLS VPN control row." + ::= { rttMplsVpnMonCtrlEntry 14 } + +rttMplsVpnMonCtrlLpd OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "When set to true, this implies that LPD (LSP Path Discovery) + is enabled for this row. + + The Auto SAA L3 MPLS VPN will find all the paths to each of the + PE's and configure RTT operation with rttMonCtrlAdminRttType + value as 'lspGroup'. The 'lspGroup' probe will walk through + the list of set of information that uniquely identifies a path + and send the LSP echo requests across them. All these LSP echo + requests sent for 1st path, 2nd path etc. can be thought of as + 'single probes' sent as a part of 'lspGroup'. These single + probes will of type 'rttMplsVpnMonCtrlRttType'. + + 'lspGroup' probe is a superset of individual probes that will + test multiple paths. For example Suppose there are 10 paths to + the target. One 'lspGroup' probe will be created which will + store all the information related to uniquely identify the 10 + paths. When the 'lspGroup' probe will run it will sweep through + the set of information for 1st path, 2nd path, 3rd path and so + on till it has tested all the paths." + DEFVAL { false } + ::= { rttMplsVpnMonCtrlEntry 15 } + +rttMplsVpnMonCtrlLpdGrpList OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object holds the list of LPD Group IDs that are created + for this Auto SAA L3 MPLS VPN row. + + This object will be applicable only when LSP Path Discovery is + enabled for this row. + + The LPD Groups will be specified in the following form. + (a) Individual ID's with comma separated as 1,5,3. + (b) Range form including hyphens with multiple ranges being + separated by comma as 1-10,12-34. + (c) Mix of the above two forms as 1,2,4-10,12,15,19-25." + ::= { rttMplsVpnMonCtrlEntry 16 } + +rttMplsVpnMonCtrlLpdCompTime OBJECT-TYPE + SYNTAX Integer32 (1..65535) + UNITS "minutes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The completion time of the LSP Path Discovery for the entire + set of PEs which are discovered for this Auto SAA. + + This object will be applicable only when LSP Path Discovery is + enabled for this row." + ::= { rttMplsVpnMonCtrlEntry 17 } + +-- +-- Auto SAA L3 MPLS VPN Type Specific Configuration +-- + +rttMplsVpnMonTypeTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMplsVpnMonTypeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table that contains Auto SAA L3 MPLS VPN configured RTT + operation specific definitions. + + This table is controlled via the rttMplsVpnMonCtrlTable. + Entries in this table are created via the + rttMplsVpnMonCtrlStatus object." + ::= { rttMonCtrl 16 } + +rttMplsVpnMonTypeEntry OBJECT-TYPE + SYNTAX RttMplsVpnMonTypeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define RTT operation specific + configuration for an Auto SAA L3 MPLS VPN." + AUGMENTS { rttMplsVpnMonCtrlEntry } + ::= { rttMplsVpnMonTypeTable 1 } + +RttMplsVpnMonTypeEntry ::= SEQUENCE +{ + rttMplsVpnMonTypeInterval Integer32, + rttMplsVpnMonTypeNumPackets Integer32, + rttMplsVpnMonTypeDestPort Integer32, + rttMplsVpnMonTypeSecFreqType INTEGER, + rttMplsVpnMonTypeSecFreqValue Integer32, + rttMplsVpnMonTypeLspSelector OCTET STRING, + rttMplsVpnMonTypeLSPReplyMode RttMonLSPPingReplyMode, + rttMplsVpnMonTypeLSPTTL Integer32, + rttMplsVpnMonTypeLSPReplyDscp Integer32, + rttMplsVpnMonTypeLpdMaxSessions Integer32, + rttMplsVpnMonTypeLpdSessTimeout Integer32, + rttMplsVpnMonTypeLpdEchoTimeout Integer32, + rttMplsVpnMonTypeLpdEchoInterval Integer32, + rttMplsVpnMonTypeLpdEchoNullShim TruthValue, + rttMplsVpnMonTypeLpdScanPeriod Integer32, + rttMplsVpnMonTypeLpdStatHours Integer32 +} + +rttMplsVpnMonTypeInterval OBJECT-TYPE + SYNTAX Integer32 (1..60000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value represents the inter-packet delay between packets + and is in milliseconds. This value is currently used for + Jitter probe. This object is applicable to jitter probe only. + + The usage of this value in RTT operation is same as + rttMonEchoAdminInterval." + DEFVAL { 20 } + ::= { rttMplsVpnMonTypeEntry 1 } + +rttMplsVpnMonTypeNumPackets OBJECT-TYPE + SYNTAX Integer32 (1..60000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value represents the number of packets that need to be + transmitted. This value is currently used for Jitter probe. + This object is applicable to jitter probe only. + + The usage of this value in RTT operation is same as + rttMonEchoAdminNumPackets." + DEFVAL { 10 } + ::= { rttMplsVpnMonTypeEntry 2 } + +rttMplsVpnMonTypeDestPort OBJECT-TYPE + SYNTAX Integer32 (1..65536) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the target's port number to which the + packets need to be sent. + + This value will be configured as target port for all the + operations that is going to be configured + + The usage of this value is same as rttMonEchoAdminTargetPort + in RTT operation. This object is applicable to jitter type. + + If this object is not being set random port will be used as + destination port." + ::= { rttMplsVpnMonTypeEntry 3 } + +rttMplsVpnMonTypeSecFreqType OBJECT-TYPE + SYNTAX INTEGER + { + none(1), + timeout(2), + connectionLoss(3), + both(4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the reaction type for which the + rttMplsVpnMonTypeSecFreqValue should be applied. + + The Value 'timeout' will cause secondary frequency to be set + for frequency on timeout condition. + + The Value 'connectionLoss' will cause secondary frequency to + be set for frequency on connectionloss condition. + + The Value 'both' will cause secondary frequency to be set for + frequency on either of timeout/connectionloss condition. + + Notifications must be configured on corresponding reaction type + in order to rttMplsVpnMonTypeSecFreqValue get effect. + + When LSP Path Discovery is enabled for this row the following + rttMplsVpnMonReactLpdNotifyType notifications must be + configured in order to rttMplsVpnMonTypeSecFreqValue get effect. + - 'lpdGroupStatus' or 'lpdAll'. + + Since the Frequency of the operation changes the stats will be + collected in new bucket. + + If any of the reaction type (timeout/connectionLoss) occurred + for an operation configured by this Auto SAA L3 MPLS VPN and + the following conditions are satisfied, the frequency of the + operation will be changed to rttMplsVpnMonTypeSecFreqValue. + + 1) rttMplsVpnMonTypeSecFreqType is set for a reaction type + (timeout/connectionLoss). + 2) A notification is configured for the same reaction type + (timeout/connectionLoss). + + When LSP Path Discovery is enabled for this row, if any of the + reaction type (timeout/connectionLoss) occurred for 'single + probes' configured by this Auto SAA L3 MPLS VPN and the + following conditions are satisfied, the secondary frequency + rttMplsVpnMonTypeSecFreqValue will be applied to the + 'lspGroup' probe. + + 1) rttMplsVpnMonTypeSecFreqType is set for a reaction type + (timeout/connectionLoss/both). + 2) rttMplsVpnMonReactLpdNotifyType object must be set to + value of 'lpdGroupStatus' or 'lpdAll'. + + The frequency of the individual operations will be restored to + original frequency once the trap is sent." + DEFVAL { none } + ::= { rttMplsVpnMonTypeEntry 4 } + +rttMplsVpnMonTypeSecFreqValue OBJECT-TYPE + SYNTAX Integer32 (1..604800) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the value that needs to be applied to + secondary frequency of individual RTT operations configured by + Auto SAA L3 MPLS VPN. + + Setting rttMplsVpnMonTypeSecFreqValue without setting + rttMplsVpnMonTypeSecFreqType will not have any effect." + DEFVAL { 60 } + ::= { rttMplsVpnMonTypeEntry 5 } + +rttMplsVpnMonTypeLspSelector OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string which specifies the address of the local host + (127.X.X.X). + + This object will be used as lsp-selector in MPLS RTT + operations configured by the Auto SAA L3 MPLS VPN. + + When LSP Path Discovery is enabled for the row, this object will + be used to indicate the base LSP selector value to be used in + the LSP Path Discovery. + + This value of this object is significant in MPLS load + balancing scenario. This value will be used as one of the + parameter in that load balancing." + DEFVAL { "7F 00 00 01" } + ::= { rttMplsVpnMonTypeEntry 6 } + +rttMplsVpnMonTypeLSPReplyMode OBJECT-TYPE + SYNTAX RttMonLSPPingReplyMode + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the reply mode for the LSP Echo + requests originated by the operations configured by the + Auto SAA L3 MPLS VPN. + + This object is currently used by echo and pathEcho." + DEFVAL { replyIpv4Udp } + ::= { rttMplsVpnMonTypeEntry 7 } + +rttMplsVpnMonTypeLSPTTL OBJECT-TYPE + SYNTAX Integer32 ( 0..255 ) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the TTL setting for MPLS echo request + packets originated by the operations configured by the + Auto SAA L3 MPLS VPN. + + This object is currently used by echo and pathEcho. + + For 'echo' the default TTL will be set to 255. + For 'pathEcho' the default will be set to 30. + + Note: This object cannot be set to the value of 0. The + default value of 0 signifies the default TTL values will be + used for 'echo' and 'pathEcho'." + DEFVAL { 0 } + ::= { rttMplsVpnMonTypeEntry 8 } + +rttMplsVpnMonTypeLSPReplyDscp OBJECT-TYPE + SYNTAX Integer32 ( 0..63 | 255 ) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the DSCP value to be set in the IP header + of the LSP echo reply packet. + The value of this object will be in range of DiffServ codepoint + values between 0 to 63. + + Note: This object cannot be set to value of 255. This default + value specifies that DSCP is not set for this row." + DEFVAL { 255 } + ::= { rttMplsVpnMonTypeEntry 9 } + +rttMplsVpnMonTypeLpdMaxSessions OBJECT-TYPE + SYNTAX Integer32 (1..15) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object represents the number of concurrent path discovery + requests that will be active at one time per MPLS VPN control + row. This object is meant for reducing the time for discovery + of all the paths to the target in a large customer network. + However its value should be chosen such that it does not cause + any performance impact. + + Note: If the customer network has low end routers in the Core + it is recommended to keep this value low." + DEFVAL { 1 } + ::= { rttMplsVpnMonTypeEntry 10 } + +rttMplsVpnMonTypeLpdSessTimeout OBJECT-TYPE + SYNTAX Integer32 (1..900) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the maximum allowed duration of a + particular tree trace request. + + If no response is received in configured time the request will + be considered a failure." + DEFVAL { 120 } + ::= { rttMplsVpnMonTypeEntry 11 } + +rttMplsVpnMonTypeLpdEchoTimeout OBJECT-TYPE + SYNTAX Integer32 (0..604800000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the timeout value for the LSP echo + requests which are sent while performing the LSP Path Discovery." + DEFVAL { 5000 } + ::= { rttMplsVpnMonTypeEntry 12 } + +rttMplsVpnMonTypeLpdEchoInterval OBJECT-TYPE + SYNTAX Integer32 (0..3600000) + UNITS "milliseconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the send interval between LSP echo + requests which are sent while performing the LSP Path Discovery." + DEFVAL { 0 } + ::= { rttMplsVpnMonTypeEntry 13 } + +rttMplsVpnMonTypeLpdEchoNullShim OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies if the explicit-null label is added to + LSP echo requests which are sent while performing the LSP Path + Discovery. + + If set to TRUE all the probes configured as part of this control + row will send the LSP echo requests with the explicit-null + label added." + DEFVAL { false } + ::= { rttMplsVpnMonTypeEntry 14 } + +rttMplsVpnMonTypeLpdScanPeriod OBJECT-TYPE + SYNTAX Integer32 (0..7200) + UNITS "minutes" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the scan time for the completion of LSP + Path Discovery for all the PEs discovered for this control row. + If the scan period is exceeded on completion of the LSP Path + Discovery for all the PEs, the next discovery will start + immediately else it will wait till expiry of scan period. + + For example: If the value is set to 30 minutes then on start of + the LSP Path Discovery a timestamp will be taken say T1. At the + end of the tree trace discovery one more timestamp will be taken + again say T2. If (T2-T1) is greater than 30, the next discovery + will start immediately else next discovery will wait for + [30 - (T2-T1)]. + + Note: If the object is set to a special value of '0', it will + force immediate start of the next discovery on all neighbours + without any delay." + DEFVAL { 0 } + ::= { rttMplsVpnMonTypeEntry 15 } + +rttMplsVpnMonTypeLpdStatHours OBJECT-TYPE + SYNTAX Integer32 (0..2) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of hours of data to be kept per LPD + group. The LPD group statistics will be kept in an hourly + bucket. At the maximum there can be two buckets. + The value of 'one' is not advisable because the group will close + and immediately be deleted before the network management station + will have the opportunity to retrieve the statistics. + + The value used in the rttMplsVpnLpdGroupStatsTable to + uniquely identify this group is the + rttMonStatsCaptureStartTimeIndex. + + Note: When this object is set to the value of '0' all + rttMplsVpnLpdGroupStatsTable data capturing will be shut off." + DEFVAL { 2 } + ::= { rttMplsVpnMonTypeEntry 16 } +-- +-- Auto SAA L3 MPLS VPN Schedule Table +-- + +rttMplsVpnMonScheduleTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMplsVpnMonScheduleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of Auto SAA L3 MPLS VPN monitoring scheduling + specific definitions. + + This table is controlled via the rttMplsVpnMonCtrlTable. + Entries in this table are created via the + rttMplsVpnMonCtrlStatus object." + ::= { rttMonCtrl 17 } + +rttMplsVpnMonScheduleEntry OBJECT-TYPE + SYNTAX RttMplsVpnMonScheduleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define specific configuration for + the scheduling of RTT operations." + AUGMENTS { rttMplsVpnMonCtrlEntry } + ::= { rttMplsVpnMonScheduleTable 1 } + +RttMplsVpnMonScheduleEntry ::= SEQUENCE +{ + rttMplsVpnMonScheduleRttStartTime TimeTicks, + rttMplsVpnMonSchedulePeriod Integer32, + rttMplsVpnMonScheduleFrequency Integer32 +} + +rttMplsVpnMonScheduleRttStartTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This is the time when this conceptual row will + activate. rttMplsVpnMonSchedulePeriod object must be specified + before setting this object. + + This is the value of MIB-II's sysUpTime in the future. + When sysUpTime equals this value this object will + cause the activation of a conceptual Auto SAA L3 MPLS VPN row. + + When an agent has the capability to determine date and + time, the agent should store this object as DateAndTime. + This allows the agent to be able to activate conceptual + Auto SAA L3 MPLS VPN row at the intended time. + + If this object has value as 1, this means start the operation + now itself. Value of 0 puts the operation in pending state." + DEFVAL { 0 } + ::= { rttMplsVpnMonScheduleEntry 1 } + +rttMplsVpnMonSchedulePeriod OBJECT-TYPE + SYNTAX Integer32 (1..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the time duration over which all the probes created + by the current Auto SAA L3 MPLS VPN have to be scheduled. + + This object must be set first before setting + rttMplsVpnMonScheduleRttStartTime." + ::= { rttMplsVpnMonScheduleEntry 2 } + +rttMplsVpnMonScheduleFrequency OBJECT-TYPE + SYNTAX Integer32 (1..604800) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies the duration between initiating each RTT + operation configured by the Auto SAA L3 MPLS VPN. + + This object cannot be set to a value which would be a + shorter duration than rttMplsVpnMonCtrlTimeout. + + The usage of this value in RTT operation is same as + rttMonCtrlAdminFrequency." + DEFVAL { 60 } + ::= { rttMplsVpnMonScheduleEntry 3 } + +-- +-- Auto SAA L3 MPLS VPN Reaction Table +-- + +rttMplsVpnMonReactTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMplsVpnMonReactEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A Table of Auto SAA L3 MPLS VPN Notification definitions. + + This table augments the rttMplsVpnMonCtrlTable." + ::= { rttMonCtrl 18 } + +rttMplsVpnMonReactEntry OBJECT-TYPE + SYNTAX RttMplsVpnMonReactEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects that define Auto SAA L3 MPLS VPN reaction + configuration." + AUGMENTS { rttMplsVpnMonCtrlEntry } + ::= { rttMplsVpnMonReactTable 1 } + +RttMplsVpnMonReactEntry::= SEQUENCE +{ + rttMplsVpnMonReactConnectionEnable TruthValue, + rttMplsVpnMonReactTimeoutEnable TruthValue, + rttMplsVpnMonReactThresholdType INTEGER, + rttMplsVpnMonReactThresholdCount Integer32, + rttMplsVpnMonReactActionType INTEGER, + rttMplsVpnMonReactLpdNotifyType INTEGER, + rttMplsVpnMonReactLpdRetryCount Integer32 +} + +rttMplsVpnMonReactConnectionEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value set for this will be applied as + rttMonReactAdminConnectionEnable for individual probes created + by the Auto SAA L3 MPLS VPN. + + When this object is set to true, rttMonReactVar for individual + probes created by the Auto SAA L3 MPLS VPN will be set to + 'connectionLoss(8)'." + DEFVAL { false } + ::= { rttMplsVpnMonReactEntry 1 } + +rttMplsVpnMonReactTimeoutEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value set for this will be applied as + rttMonReactAdminTimeoutEnable for individual probes created + by the Auto SAA L3 MPLS VPN. + + When this object is set to true, rttMonReactVar for individual + probes created by the Auto SAA L3 MPLS VPN will be set to + 'timeout(7)'." + DEFVAL { false } + ::= { rttMplsVpnMonReactEntry 2 } + +rttMplsVpnMonReactThresholdType OBJECT-TYPE + SYNTAX INTEGER + { + never(1), + immediate(2), + consecutive(3) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value corresponding to this object will be applied as + rttMonReactAdminThresholdType for individual probes created by + the Auto SAA L3 MPLS VPN. + + The value corresponding to this object will be applied as + rttMonReactThresholdType for individual probes created by + the Auto SAA L3 MPLS VPN." + DEFVAL { never } + ::= { rttMplsVpnMonReactEntry 3 } + +rttMplsVpnMonReactThresholdCount OBJECT-TYPE + SYNTAX Integer32 (1..16) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object value will be applied as + rttMonReactAdminThresholdCount for individual probes created by + the Auto SAA L3 MPLS VPN. + + This object value will be applied as rttMonReactThresholdCountX + for individual probes created by the Auto SAA L3 MPLS VPN." + DEFVAL { 5 } + ::= { rttMplsVpnMonReactEntry 4 } + +rttMplsVpnMonReactActionType OBJECT-TYPE + SYNTAX INTEGER + { + none(1), + trapOnly(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value corresponding to this object will be applied as + rttMonReactAdminActionType of individual probes created by + this Auto SAA L3 MPLS VPN. + + The value corresponding to this object will be applied as + rttMonReactActionType of individual probes created by + this Auto SAA L3 MPLS VPN." + DEFVAL { none } + ::= { rttMplsVpnMonReactEntry 5 } + +rttMplsVpnMonReactLpdNotifyType OBJECT-TYPE + SYNTAX INTEGER + { + none(1), + lpdPathDiscovery(2), + lpdGroupStatus(3), + lpdAll(4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the type of LPD notifications to be + generated for the current Auto SAA L3 MPLS VPN control row. + + This object will be applicable only when LSP Path Discovery is + enabled for this row. + + There are two types of notifications supported for the LPD - + (a) rttMonLpdDiscoveryNotification - This notification will + be sent on the failure of LSP Path Discovery to the + particular PE. Reversal of the failure will also result in + sending the notification. + (b) rttMonLpdGrpStatusNotification - Individual probes in an LPD + group will not generate notifications independently but will + be generating dependent on the state of the group. Any + individual probe can initiate the generation of a + notification, dependent on the state of the group. + Notifications are only generated if the failure/restoration + of an individual probe causes the state of the group to + change. + + The Value 'none' will not cause any notifications to be sent. + + The Value 'lpdPathDiscovery' will cause (a) to be sent. + + The Value 'lpdGroupStatus' will cause (b) to be sent. + + The Value 'lpdAll' will cause both (a) and (b) to sent + depending on the failure conditions." + DEFVAL { none } + ::= { rttMplsVpnMonReactEntry 6 } + +rttMplsVpnMonReactLpdRetryCount OBJECT-TYPE + SYNTAX Integer32 (1..16) + UNITS "attempts" + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object value specifies the number of attempts to be + performed before declaring the path as 'down'. Each 'single + probe' which is part of 'lspGroup' probe will be retried these + many times before marking it as 'down'. + + This object will be applicable only when LSP Path Discovery is + enabled for this row. + + - When rttMplsVpnMonTypeSecFreqType is not configured, the + failure count will be incremented at the next cycle of + 'lspGroup' probe at interval's of + rttMplsVpnMonScheduleFrequency value. + + For example: Assume there are 10 paths discovered and on + the first run of the 'lspGroup' probe first two paths failed + and rest passed. On the second run all the probes will be run + again. The probes 1 and 2 will be retried till the + rttMplsVpnMonReactLpdRetryCount value, and + then marked as 'down' and rttMonLpdGrpStatusNotification + will be sent if configured. + + - When rttMplsVpnMonTypeSecFreqType value is anything other + than 'none', the retry will happen for the failed probes at + the rttMplsVpnMonTypeSecFreqValue and only the failed + probes will be retried. + + For example: Assume there are 10 paths discovered and on the + first run of the 'lspGroup' probe first two paths failed and + rest passed. The secondary frequency will be applied to the + failed probes. At secondary frequency interval the first two + probes will be run again. The probes 1 and 2 will be retried + till the rttMplsVpnMonReactLpdRetryCount value, and + then marked as 'down' and rttMonLpdGrpStatusNotification + will be sent if configured." + DEFVAL { 1 } + ::= { rttMplsVpnMonReactEntry 7 } + +-- +-- A new Reaction Table for the probes. +-- + +rttMonReactTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonReactEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table that contains the reaction configurations. Each + conceptual row in rttMonReactTable corresponds to a reaction + configured for the probe defined in rttMonCtrlAdminTable. + + For each reaction configured for a probe there is an entry in + the table. + + Each Probe can have multiple reactions and hence there can be + multiple rows for a particular probe. + + This table is coupled with rttMonCtrlAdminTable." + ::= { rttMonCtrl 19 } + +rttMonReactEntry OBJECT-TYPE + SYNTAX RttMonReactEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A base list of objects that define a conceptual reaction + configuration control row." + INDEX { rttMonCtrlAdminIndex, + rttMonReactConfigIndex } + ::= { rttMonReactTable 1 } + +RttMonReactEntry ::= SEQUENCE +{ + rttMonReactConfigIndex Integer32, + rttMonReactVar RttMonReactVar, + rttMonReactThresholdType INTEGER, + rttMonReactActionType INTEGER, + rttMonReactThresholdRising Integer32, + rttMonReactThresholdFalling Integer32, + rttMonReactThresholdCountX Integer32, + rttMonReactThresholdCountY Integer32, + rttMonReactValue Integer32, + rttMonReactOccurred TruthValue, + rttMonReactStatus RowStatus +} + +rttMonReactConfigIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object along with rttMonCtrlAdminIndex identifies + a particular reaction-configuration for a particular probe. + This is a pseudo-random number selected by the management + station when creating a row via the rttMonReactStatus. + If the pseudo-random number is already in use an + 'inconsistentValue' return code will be returned when + set operation is attempted." + ::= { rttMonReactEntry 1 } + +rttMonReactVar OBJECT-TYPE + SYNTAX RttMonReactVar + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the type of reaction configured for a + probe. + + The reaction types 'rtt', 'timeout', and 'connectionLoss' + can be configured for all probe types. + + The reaction type 'verifyError' can be configured for all + probe types except RTP probe type. + + The reaction types 'jitterSDAvg', 'jitterDSAvg', 'jitterAvg', + 'packetLateArrival', 'packetOutOfSequence', + 'maxOfPositiveSD', 'maxOfNegativeSD', 'maxOfPositiveDS' + and 'maxOfNegativeDS' can be configured for UDP jitter + and ICMP jitter probe types only. + + The reaction types 'mos' and 'icpif' can be configured + for UDP jitter and ICMP jitter probe types only. + + The reaction types 'packetLossDS', 'packetLossSD' and + 'packetMIA' can be configured for UDP jitter, and + RTP probe types only. + + The reaction types 'iaJitterDS', 'frameLossDS', 'mosLQDS', + 'mosCQDS', 'rFactorDS', 'iaJitterSD', 'rFactorSD', 'mosCQSD' + can be configured for RTP probe type only. + + The reaction types 'successivePacketLoss', 'maxOfLatencyDS', + 'maxOfLatencySD', 'latencyDSAvg', 'latencySDAvg' and + 'packetLoss' can be configured for ICMP jitter probe + type only." + ::= { rttMonReactEntry 2 } + +rttMonReactThresholdType OBJECT-TYPE + SYNTAX INTEGER + { + never(1), + immediate(2), + consecutive(3), + xOfy(4), + average(5) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object specifies the conditions under which + the notification ( trap ) is sent. + + never - rttMonReactOccurred is never set + + immediate - rttMonReactOccurred is set to 'true' when the + value of parameter for which reaction is + configured ( e.g rtt, jitterAvg, packetLossSD, + mos etc ) violates the threshold. + Conversely, rttMonReactOccurred is set to 'false' + when the parameter ( e.g rtt, jitterAvg, + packetLossSD, mos etc ) is below the threshold + limits. + + consecutive - rttMonReactOccurred is set to true when the value + of parameter for which reaction is configured + ( e.g rtt, jitterAvg, packetLossSD, mos etc ) + violates the threshold for configured consecutive + times. + Conversely, rttMonReactOccurred is set to false + when the value of parameter ( e.g rtt, jitterAvg + packetLossSD, mos etc ) is below the threshold + limits for the same number of consecutive + operations. + + xOfy - rttMonReactOccurred is set to true when x + ( as specified by rttMonReactThresholdCountX ) + out of the last y ( as specified by + rttMonReacthresholdCountY ) times the value of + parameter for which the reaction is configured + ( e.g rtt, jitterAvg, packetLossSD, mos etc ) + violates the threshold. + Conversely, it is set to false when x, out of the + last y times the value of parameter + ( e.g rtt, jitterAvg, packetLossSD, mos ) is + below the threshold limits. + NOTE: When x > y, the probe will never + generate a reaction. + + average - rttMonReactOccurred is set to true when the + average ( rttMonReactThresholdCountX times ) + value of parameter for which reaction is + configured ( e.g rtt, jitterAvg, packetLossSD, + mos etc ) violates the threshold condition. + Conversely, it is set to false when the + average value of parameter ( e.g rtt, jitterAvg, + packetLossSD, mos etc ) is below the threshold + limits. + + If this value is changed by a management station, + rttMonReactOccurred is set to false, but + no reaction is generated if the prior value of + rttMonReactOccurred was true." + DEFVAL { never } +::= { rttMonReactEntry 3 } + +rttMonReactActionType OBJECT-TYPE + SYNTAX INTEGER + { + none(1), + trapOnly(2), + triggerOnly(3), + trapAndTrigger(4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specifies what type(s), if any, of reaction(s) to + generate if an operation violates one of the watched + ( reaction-configuration ) conditions: + + none - no reaction is generated + trapOnly - a trap is generated + triggerOnly - all trigger actions defined for this + entry are initiated + trapAndTrigger - both a trap and all trigger actions + are initiated + A trigger action is defined via the + rttMonReactTriggerAdminTable." + DEFVAL { none } + ::= { rttMonReactEntry 4 } + +rttMonReactThresholdRising OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object defines the higher threshold limit. + If the value ( e.g rtt, jitterAvg, packetLossSD etc ) rises + above this limit and if the condition specified in + rttMonReactThresholdType are satisfied, a trap is generated. + + Default value of rttMonReactThresholdRising for + 'rtt' is 5000 + 'jitterAvg' is 100. + 'jitterSDAvg' is 100. + 'jitterDSAvg' 100. + 'packetLossSD' is 10000. + 'packetLossDS' is 10000. + 'mos' is 500. + 'icpif' is 93. + 'packetMIA' is 10000. + 'packetLateArrival' is 10000. + 'packetOutOfSequence' is 10000. + 'maxOfPositiveSD' is 10000. + 'maxOfNegativeSD' is 10000. + 'maxOfPositiveDS' is 10000. + 'maxOfNegativeDS' is 10000. + 'iaJitterDS' is 20. + 'frameLossDS' is 10000. + 'mosLQDS' is 400. + 'mosCQDS' is 400. + 'rFactorDS' is 80. + 'successivePacketLoss' is 1000. + 'maxOfLatencyDS' is 5000. + 'maxOfLatencySD' is 5000. + 'latencyDSAvg' is 5000. + 'latencySDAvg' is 5000. + 'packetLoss' is 10000. + + This object is not applicable if the rttMonReactVar is + 'timeout', 'connectionLoss' or 'verifyError'. For 'timeout', + 'connectionLoss' and 'verifyError' default value of + rttMonReactThresholdRising will be 0." + ::= { rttMonReactEntry 5 } + +rttMonReactThresholdFalling OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object defines a lower threshold limit. If the + value ( e.g rtt, jitterAvg, packetLossSD etc ) falls + below this limit and if the conditions specified in + rttMonReactThresholdType are satisfied, a trap is generated. + + Default value of rttMonReactThresholdFalling + 'rtt' is 3000 + 'jitterAvg' is 100. + 'jitterSDAvg' is 100. + 'jitterDSAvg' 100. + 'packetLossSD' is 10000. + 'packetLossDS' is 10000. + 'mos' is 500. + 'icpif' is 93. + 'packetMIA' is 10000. + 'packetLateArrival' is 10000. + 'packetOutOfSequence' is 10000. + 'maxOfPositiveSD' is 10000. + 'maxOfNegativeSD' is 10000. + 'maxOfPositiveDS' is 10000. + 'maxOfNegativeDS' is 10000. + 'iaJitterDS' is 20. + 'frameLossDS' is 10000. + 'mosLQDS' is 310. + 'mosCQDS' is 310. + 'rFactorDS' is 60. + 'successivePacketLoss' is 1000. + 'maxOfLatencyDS' is 3000. + 'maxOfLatencySD' is 3000. + 'latencyDSAvg' is 3000. + 'latencySDAvg' is 3000. + 'packetLoss' is 10000. + 'iaJitterSD' is 20. + 'mosCQSD' is 310. + 'rFactorSD' is 60. + + This object is not applicable if the rttMonReactVar is + 'timeout', 'connectionLoss' or 'verifyError'. For 'timeout', + 'connectionLoss' and 'verifyError' default value of + rttMonReactThresholdFalling will be 0." + ::= {rttMonReactEntry 6 } + +rttMonReactThresholdCountX OBJECT-TYPE + SYNTAX Integer32 (1..16) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "If rttMonReactThresholdType value is 'xOfy', this object + defines the 'x' value. + + If rttMonReactThresholdType value is 'consecutive' + this object defines the number of consecutive occurrences + that needs threshold violation before setting + rttMonReactOccurred as true. + + If rttMonReactThresholdType value is 'average' this object + defines the number of samples that needs be considered for + calculating average. + + This object has no meaning if rttMonReactThresholdType has + value of 'never' and 'immediate'." + DEFVAL { 5 } + ::= { rttMonReactEntry 7 } + +rttMonReactThresholdCountY OBJECT-TYPE + SYNTAX Integer32 (1..16) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object defines the 'y' value of the xOfy condition + if rttMonReactThresholdType is 'xOfy'. + + For other values of rttMonReactThresholdType, this object + is not applicable." + DEFVAL { 5 } + ::= { rttMonReactEntry 8 } + +rttMonReactValue OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object will be set when the configured threshold condition + is violated as defined by rttMonReactThresholdType and holds the + actual value that violated the configured threshold values. + + This object is not valid for the following values of + rttMonReactVar and It will be always 0: + - timeout + - connectionLoss + - verifyError." + DEFVAL { 0 } + ::= { rttMonReactEntry 9 } + +rttMonReactOccurred OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is set to true when the configured threshold + condition is violated as defined by rttMonReactThresholdType. + It will be again set to 'false' if the condition reverses. + + This object is set to true in the following conditions: + - rttMonReactVar is set to timeout and + rttMonCtrlOperTimeoutOccurred set to true. + - rttMonReactVar is set to connectionLoss and + rttMonCtrlOperConnectionLostOccurred set to true. + - rttMonReactVar is set to verifyError and + rttMonCtrlOperVerifyErrorOccurred is set to true. + - For all other values of rttMonReactVar, if the + corresponding value exceeds the configured + rttMonReactThresholdRising. + + This object is set to false in the following conditions: + - rttMonReactVar is set to timeout and + rttMonCtrlOperTimeoutOccurred set to false. + - rttMonReactVar is set to connectionLoss and + rttMonCtrlOperConnectionLostOccurred set to false. + - rttMonReactVar is set to verifyError and + rttMonCtrlOperVerifyErrorOccurred is set to false. + - For all other values of rttMonReactVar, if the + corresponding value fall below the configured + rttMonReactThresholdFalling. + + When the RttMonRttType is 'pathEcho' or 'pathJitter', + this object is applied only to the + rttMonEchoAdminTargetAddress and not to intermediate + hops to the Target." + DEFVAL { false } + ::= { rttMonReactEntry 10 } + +rttMonReactStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This objects indicates the status of the conceptual RTT + Reaction Control Row.Only CreateAndGo and destroy + operations are permitted on the row. + + When this object moves to active state, the conceptual row + having the Reaction configuration for the probe is monitored + and the notifications are generated when the threshold violation + takes place. + + In order for this object to become active rttMonReactVar must + be defined. All other objects assume the default value. + + This object can be set to 'destroy' from any value at any time. + When this object is set to 'destroy' no reaction configuration + for the probes would exist. The reaction configuration for the + probe is removed." + ::= { rttMonReactEntry 11 } + +-- +-- Statistics Capture Table +-- + + +rttMonStatsCaptureTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonStatsCaptureEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The statistics capture database. + + The statistics capture table contains summarized + information of the results for a conceptual RTT control + row. A rolling accumulated history of this information + is maintained in a series of hourly 'group(s)'. Each + 'group' contains a series of 'path(s)', each 'path' + contains a series of 'hop(s)', each 'hop' contains a + series of 'statistics distribution bucket(s)'. + + Each conceptual statistics row has a current hourly + group, into which RTT results are accumulated. At the + end of each hour a new hourly group is created which + then becomes current. The counters and accumulators in + the new group are initialized to zero. The previous + group(s) is kept in the table until the table contains + rttMonStatisticsAdminNumHourGroups groups for the + conceptual statistics row; at this point, the oldest + group is discarded and is replaced by the newly created + one. The hourly group is uniquely identified by the + rttMonStatsCaptureStartTimeIndex object. + + If the activity for a conceptual RTT control row ceases + because the rttMonCtrlOperState object transitions to + 'inactive', the corresponding current hourly group in + this table is 'frozen', and a new hourly group is + created when activity is resumed. + + If the activity for a conceptual RTT control row ceases + because the rttMonCtrlOperState object transitions to + 'pending' this whole table will be cleared and reset to + its initial state. + + When the RttMonRttType is 'pathEcho', the path + exploration RTT requests' statistics will not be + accumulated in this table. + + NOTE: When the RttMonRttType is 'pathEcho', a source to + target rttMonStatsCapturePathIndex path will be + created for each rttMonStatsCaptureStartTimeIndex + to hold all errors that occur when a specific path + had not been found or connection has not be setup. + + Using this rttMonStatsCaptureTable, a managing + application can retrieve summarized data from accurately + measured periods, which is synchronized across multiple + conceptual RTT control rows. With the new hourly group + creation being performed on a 60 minute period, the + managing station has plenty of time to collect the data, + and need not be concerned with the vagaries of network + delays and lost PDU's when trying to get matching data. + Also, the managing station can spread the data gathering + over a longer period, which removes the need for a flood + of get requests in a short period which otherwise would + occur." + ::= { rttMonStats 1 } + + +rttMonStatsCaptureEntry OBJECT-TYPE + SYNTAX RttMonStatsCaptureEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects which accumulate the results of a + series of RTT operations over a 60 minute time period. + + The statistics capture table is a rollover table. When + rttMonStatsCaptureStartTimeIndex groups exceeds the + rttMonStatisticsAdminNumHourGroups value, the oldest + corresponding hourly group will be deleted and will be + replaced with the new rttMonStatsCaptureStartTimeIndex + hourly group. + + All other indices will fill to there maximum size. + + The statistics capture table has five indices. Each + described as follows: + + - The first index correlates its entries to a + conceptual RTT control row via the + rttMonCtrlAdminIndex object. + - The second index is a rollover group and it + uniquely identifies a 60 minute group. (The + rttMonStatsCaptureStartTimeIndex object + is used to make this value unique.) + - When the RttMonRttType is 'pathEcho', the third + index uniquely identifies the paths in a + statistics period. (The period is 60 + minutes.) A path will be created for each + unique path through the network. Note: A + path that does not contain the target is + considered a different path than one which + uses the exact same path, but does contain the + target. For all other values of RttMonRttType + this index will be one. + - When the RttMonRttType is 'pathEcho', the fourth + index uniquely identifies the hops in each path, + as grouped by the third index. This index does + imply the order of the hops along the path to a + target. For all other values of RttMonRttType + this index will be one. + - The fifth index uniquely creates a statistical + distribution bucket." + INDEX { rttMonCtrlAdminIndex, + rttMonStatsCaptureStartTimeIndex, + rttMonStatsCapturePathIndex, + rttMonStatsCaptureHopIndex, + rttMonStatsCaptureDistIndex + } + ::= { rttMonStatsCaptureTable 1 } + + +RttMonStatsCaptureEntry ::= SEQUENCE +{ + rttMonStatsCaptureStartTimeIndex TimeStamp, + rttMonStatsCapturePathIndex Integer32, + rttMonStatsCaptureHopIndex Integer32, + rttMonStatsCaptureDistIndex Integer32, + rttMonStatsCaptureCompletions Integer32, + rttMonStatsCaptureOverThresholds Integer32, + rttMonStatsCaptureSumCompletionTime Gauge32, + rttMonStatsCaptureSumCompletionTime2Low Gauge32, + rttMonStatsCaptureSumCompletionTime2High Gauge32, + rttMonStatsCaptureCompletionTimeMax Gauge32, + rttMonStatsCaptureCompletionTimeMin Gauge32 +} + + +rttMonStatsCaptureStartTimeIndex OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The time when this row was created. + + This object is the second index of the + rttMonStatsCaptureTable Table. + + The the number of rttMonStatsCaptureStartTimeIndex + groups exceeds the rttMonStatisticsAdminNumHourGroups + value, the oldest rttMonStatsCaptureStartTimeIndex + group will be removed and replaced with the new entry. + + When the RttMonRttType is 'pathEcho', this object also + uniquely defines a group of paths. See the + rttMonStatsCaptureEntry object." + ::= { rttMonStatsCaptureEntry 1 } + + +rttMonStatsCapturePathIndex OBJECT-TYPE + SYNTAX Integer32 (1..128) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "When the RttMonRttType is 'pathEcho', this object + uniquely defines a path for a given value of + rttMonStatsCaptureStartTimeIndex. For all other values + of RttMonRttType, this object will be one. + + For a particular value of + rttMonStatsCaptureStartTimeIndex, the agent assigns the + first instance of a path a value of 1, then second + instance a value of 2, and so on. The sequence keeps + incrementing until the number of paths equals + rttMonStatisticsAdminNumPaths value, then no new paths + are kept for the current rttMonStatsCaptureStartTimeIndex + group. + + NOTE: A source to target rttMonStatsCapturePathIndex + path will be created for each + rttMonStatsCaptureStartTimeIndex to hold all + errors that occur when a specific path or + connection has not be setup. + + This value directly represents the path to + a target. We can only support 128 paths." + ::= { rttMonStatsCaptureEntry 2 } + + +rttMonStatsCaptureHopIndex OBJECT-TYPE + SYNTAX Integer32 (1..30) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "When the RttMonRttType is 'pathEcho', this object + uniquely defines a hop for a given value of + rttMonStatsCapturePathIndex. For all other values of + RttMonRttType, this object will be one. + + For a particular value of rttMonStatsCapturePathIndex, + the agent assigns the first instance of a hop + a value of 1, then second instance a value of 2, and so + on. The sequence keeps incrementing until the number of + hops equals rttMonStatisticsAdminNumHops value, then + no new hops are kept for the current + rttMonStatsCapturePathIndex. + + This value directly represents a hop along the path to + a target, thus we can only support 30 hops. + + This value shows the order along the path to a target." + ::= { rttMonStatsCaptureEntry 3 } + + +rttMonStatsCaptureDistIndex OBJECT-TYPE + SYNTAX Integer32 (1..20) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This object uniquely defines a statistical distribution + bucket for a given value of rttMonStatsCaptureHopIndex. + + For a particular value of rttMonStatsCaptureHopIndex, + the agent assigns the first instance of a distribution + a value of 1, then second instance a value of 2, and so + on. The sequence keeps incrementing until the number of + statistics distribution intervals equals + rttMonStatisticsAdminNumDistBuckets value, then + all values that fall above the last interval will + be placed into the last interval. + + Each of these Statistics Distribution Buckets contain + the results of each completion as defined by + rttMonStatisticsAdminDistInterval object." + ::= { rttMonStatsCaptureEntry 4 } + + +rttMonStatsCaptureCompletions OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT operations that have completed without + an error and without timing out. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCaptureEntry 5 } + + +rttMonStatsCaptureOverThresholds OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT operations successfully completed, but + in excess of rttMonCtrlAdminThreshold. This number is a + subset of the accumulation of all + rttMonStatsCaptureCompletions. The operation time + of these completed operations will be accumulated. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCaptureEntry 6 } + + +rttMonStatsCaptureSumCompletionTime OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The accumulated completion time of RTT operations which + complete successfully." + ::= { rttMonStatsCaptureEntry 7 } + + +rttMonStatsCaptureSumCompletionTime2Low OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The low order 32 bits of the accumulated squares + of completion times (in milliseconds) of RTT + operations which complete successfully. + + Low/High order is defined where the binary number + will look as follows: + ------------------------------------------------- + | High order 32 bits | Low order 32 bits | + ------------------------------------------------- + For example the number 4294967296 would have all + Low order bits as '0' and the rightmost High + order bit will be 1 (zeros,1)." + ::= { rttMonStatsCaptureEntry 8 } + + +rttMonStatsCaptureSumCompletionTime2High OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The high order 32 bits of the accumulated squares + of completion times (in milliseconds) of RTT + operations which complete successfully. + + See the rttMonStatsCaptureSumCompletionTime2Low object + for a definition of Low/High Order." + ::= { rttMonStatsCaptureEntry 9 } + + +rttMonStatsCaptureCompletionTimeMax OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum completion time of any RTT operation which + completes successfully." + ::= { rttMonStatsCaptureEntry 10 } + + +rttMonStatsCaptureCompletionTimeMin OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum completion time of any RTT operation which + completes successfully." + ::= { rttMonStatsCaptureEntry 11 } + + +-- +-- Statistics Collection Table +-- + +rttMonStatsCollectTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonStatsCollectEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The statistics collection database. + + This table has the exact same behavior as the + rttMonStatsCaptureTable, except it does not keep + statistical distribution information. + + For a complete table description see + the rttMonStatsCaptureTable object." + ::= { rttMonStats 2 } + + +rttMonStatsCollectEntry OBJECT-TYPE + SYNTAX RttMonStatsCollectEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects which accumulate the results of a + series of RTT operations over a 60 minute time period. + + This entry has the exact same behavior as the + rttMonStatsCaptureEntry, except it does not keep + statistical distribution information. + + For a complete entry description see + the rttMonStatsCaptureEntry object." + INDEX { rttMonCtrlAdminIndex, + rttMonStatsCaptureStartTimeIndex, + rttMonStatsCapturePathIndex, + rttMonStatsCaptureHopIndex + } + ::= { rttMonStatsCollectTable 1 } + + +RttMonStatsCollectEntry ::= SEQUENCE +{ + rttMonStatsCollectNumDisconnects Integer32, + rttMonStatsCollectTimeouts Integer32, + rttMonStatsCollectBusies Integer32, + rttMonStatsCollectNoConnections Integer32, + rttMonStatsCollectDrops Integer32, + rttMonStatsCollectSequenceErrors Integer32, + rttMonStatsCollectVerifyErrors Integer32, + rttMonStatsCollectAddress RttMonTargetAddress +} + + +rttMonStatsCollectNumDisconnects OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the RttMonRttType is 'echo' or pathEcho', this + object represents the number of times that the target or + hop along the path to a target became disconnected. For + all other values of RttMonRttType, this object will + remain zero. + + For connectionless protocols this has no meaning, + and will consequently remain 0. When + rttMonEchoAdminProtocol is one of snaRUEcho, this is + the number of times that an LU-SSCP session was lost, + for snaLU0EchoAppl, snaLU2EchoAppl, snaLu62Echo, and for + snaLU62EchoAppl, this is the number of times that LU-LU + session was lost. + + Since this error does not indicate any information about + the failure of an RTT operation, no response time + information for this instance will be recorded in the + appropriate objects. + + If this error occurs and the rttMonStatsCapturePathIndex + cannot be determined, this error will be accumulated in + the source to target path, that will always exist. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCollectEntry 1 } + + +rttMonStatsCollectTimeouts OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occasions when a RTT operation was not + completed before a timeout occurred, i.e. + rttMonCtrlAdminTimeout was exceeded. + + Since the RTT operation was never completed, the + completion time of these operations are not accumulated, + nor do they increment rttMonStatsCaptureCompletions (in + any of the statistics distribution buckets). + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCollectEntry 2 } + + +rttMonStatsCollectBusies OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occasions when a RTT operation could not + be initiated because a previous RTT operation has not + been completed. + + When the RttMonRttType is 'pathEcho' this can occur for + both connection oriented protocols and connectionless + protocols. + + When the RttMonRttType is 'echo' this can only occur for + connection oriented protocols such as SNA. + + When the initiation of a new operation cannot be started, + this object will be incremented and the operation will be + omitted. (The next operation will start at the next + Frequency). Since, a RTT operation was never initiated, + the completion time of these operations is not + accumulated, nor do they increment + rttMonStatsCaptureCompletions. + + When the RttMonRttType is 'pathEcho', and this error + occurs and the rttMonStatsCapturePathIndex cannot be + determined, this error will be accumulated in the source + to target path, that will always exist. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCollectEntry 3 } + + +rttMonStatsCollectNoConnections OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the RttMonRttType is 'echo' or 'pathEcho' this is + the number of occasions when a RTT operation could not be + initiated because the connection to the target has not + been established. For all other RttMonRttTypes this + object will remain zero. + + This cannot occur for connectionless protocols, but may + occur for connection oriented protocols, such as SNA. + + Since a RTT operation was never initiated, the completion + time of these operations are not accumulated, nor do they + increment rttMonStatsCaptureCompletions. + + If this error occurs and the rttMonStatsCapturePathIndex + cannot be determined, this error will be accumulated + in the source to target path, that will always exist. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCollectEntry 4 } + + +rttMonStatsCollectDrops OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occasions when a RTT operation could not + be initiated because some necessary internal resource + (for example memory, or SNA subsystem) was not available, + or the operation completion could not be recognized. + + Since a RTT operation was never initiated or was not + recognized, the completion time of these operations + are not accumulated, nor do they increment + rttMonStatsCaptureCompletions (in the expected + Distribution Bucket). + + When the RttMonRttType is 'pathEcho', and this error + occurs and the rttMonStatsCapturePathIndex cannot be + determined, this error will be accumulated in the + source to target path, that will always exist. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCollectEntry 5 } + + +rttMonStatsCollectSequenceErrors OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the RttMonRttType is 'echo' of 'pathEcho' this is + the number of RTT operation completions received with + an unexpected sequence identifier. For all other values + of RttMonRttType this object will remain zero. + + When this has occurred some of the possible reasons may + be: + - a duplicate packet was received + - a response was received after it had timed-out + - a corrupted packet was received and was not detected + + The completion time of these operations are not + accumulated, nor do they increment + rttMonStatsCaptureCompletions (in the expected + Distribution Bucket). + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCollectEntry 6 } + + +rttMonStatsCollectVerifyErrors OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT operation completions received with + data that does not compare with the expected data. The + completion time of these operations are not accumulated, + nor do they increment rttMonStatsCaptureCompletions (in + the expected Distribution Bucket). + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsCollectEntry 7 } + + +rttMonStatsCollectAddress OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object only applies when the RttMonRttType is + 'echo', 'pathEcho', 'dlsw', 'udpEcho', 'tcpConnect'. + For all other values of the RttMonRttType, this will be + null. + + The object is a string which specifies the address of + the target for the this RTT operation. + + This address will be the address of the hop along the + path to the rttMonEchoAdminTargetAddress address, + including rttMonEchoAdminTargetAddress address, or just + the rttMonEchoAdminTargetAddress address, when the + path information is not collected. This behavior is + defined by the rttMonCtrlAdminRttType object. + + The interpretation of this string depends on the type + of RTT operation selected, as specified by the + rttMonEchoAdminProtocol object." + ::= { rttMonStatsCollectEntry 8 } + + +-- +-- Statistics Totals Table +-- + +rttMonStatsTotalsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonStatsTotalsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The statistics totals database. + + This table has the exact same behavior as the + rttMonStatsCaptureTable, except it only keeps + 60 minute group values. + + For a complete table description see + the rttMonStatsCaptureTable object." + ::= { rttMonStats 3 } + + +rttMonStatsTotalsEntry OBJECT-TYPE + SYNTAX RttMonStatsTotalsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects which accumulate the results of a + series of RTT operations over a 60 minute time period. + + This entry has the exact same behavior as the + rttMonStatsCaptureEntry, except it only keeps + 60 minute group values. + + For a complete entry description see + the rttMonStatsCaptureEntry object." + INDEX { rttMonCtrlAdminIndex, + rttMonStatsCaptureStartTimeIndex + } + ::= { rttMonStatsTotalsTable 1 } + + +RttMonStatsTotalsEntry ::= SEQUENCE +{ + rttMonStatsTotalsElapsedTime TimeInterval, + rttMonStatsTotalsInitiations Integer32 +} + +rttMonStatsTotalsElapsedTime OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The length of time since this conceptual statistics row + was created." + ::= { rttMonStatsTotalsEntry 1 } + + +rttMonStatsTotalsInitiations OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT operations that have been initiated. + + This number includes all RTT operations which succeed + or fail for whatever reason. + + This object has the special behavior as defined by the + ROLLOVER NOTE in the DESCRIPTION of the ciscoRttMonMIB + object." + ::= { rttMonStatsTotalsEntry 2 } + + +-- +-- HTTP Statistics Table +-- + +rttMonHTTPStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonHTTPStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The HTTP statistics collection database. + + The HTTP statistics table contains summarized information of + the results for a conceptual RTT control row. A rolling + accumulated history of this information is maintained in a + series of hourly 'group(s)'. + + The operation of this table is same as that of + rttMonStatsCaptureTable, except that this table can only + store a maximum of 2 hours of data." + ::= { rttMonStats 4 } + +rttMonHTTPStatsEntry OBJECT-TYPE + SYNTAX RttMonHTTPStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects which accumulate the results of a + series of RTT operations over a 60 minute time period. + + This entry is created only if the rttMonCtrlAdminRttType + is http. The operation of this table is same as that of + rttMonStatsCaptureTable." + INDEX { rttMonCtrlAdminIndex, + rttMonHTTPStatsStartTimeIndex + } + ::= { rttMonHTTPStatsTable 1 } + +RttMonHTTPStatsEntry ::= SEQUENCE +{ + rttMonHTTPStatsStartTimeIndex TimeStamp, + rttMonHTTPStatsCompletions Counter32, + rttMonHTTPStatsOverThresholds Counter32, + rttMonHTTPStatsRTTSum Counter32, + rttMonHTTPStatsRTTSum2Low Counter32, + rttMonHTTPStatsRTTSum2High Counter32, + rttMonHTTPStatsRTTMin Gauge32, + rttMonHTTPStatsRTTMax Gauge32, + rttMonHTTPStatsDNSRTTSum Counter32, + rttMonHTTPStatsTCPConnectRTTSum Counter32, + rttMonHTTPStatsTransactionRTTSum Counter32, + rttMonHTTPStatsMessageBodyOctetsSum Counter32, + rttMonHTTPStatsDNSServerTimeout Counter32, + rttMonHTTPStatsTCPConnectTimeout Counter32, + rttMonHTTPStatsTransactionTimeout Counter32, + rttMonHTTPStatsDNSQueryError Counter32, + rttMonHTTPStatsHTTPError Counter32, + rttMonHTTPStatsError Counter32, + rttMonHTTPStatsBusies Counter32 +} + +rttMonHTTPStatsStartTimeIndex OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This is the time when this row was created. This index + uniquely identifies a HTTP Stats row in the + rttMonHTTPStatsTable." + ::= { rttMonHTTPStatsEntry 1 } + +rttMonHTTPStatsCompletions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of HTTP operations that have completed + successfully." + ::= { rttMonHTTPStatsEntry 2 } + +rttMonHTTPStatsOverThresholds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of HTTP operations that violate threshold." + ::= { rttMonHTTPStatsEntry 3 } + +rttMonHTTPStatsRTTSum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of HTTP operations that are successfully measured." + ::= { rttMonHTTPStatsEntry 4 } + +rttMonHTTPStatsRTTSum2Low OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of the RTT's that are successfully + measured (low order 32 bits)." + ::= { rttMonHTTPStatsEntry 5 } + +rttMonHTTPStatsRTTSum2High OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of the RTT's that are successfully + measured (high order 32 bits)." + ::= { rttMonHTTPStatsEntry 6 } + +rttMonHTTPStatsRTTMin OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum RTT taken to perform HTTP operation." + ::= { rttMonHTTPStatsEntry 7 } + +rttMonHTTPStatsRTTMax OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum RTT taken to perform HTTP operation." + ::= { rttMonHTTPStatsEntry 8 } + +rttMonHTTPStatsDNSRTTSum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT taken to perform DNS query within the + HTTP operation." + ::= { rttMonHTTPStatsEntry 9 } + +rttMonHTTPStatsTCPConnectRTTSum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT taken to connect to the HTTP server." + ::= { rttMonHTTPStatsEntry 10 } + +rttMonHTTPStatsTransactionRTTSum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT taken to download the object specified by URL." + ::= { rttMonHTTPStatsEntry 11 } + +rttMonHTTPStatsMessageBodyOctetsSum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of the size of the message body received as a + response to the HTTP request." + ::= { rttMonHTTPStatsEntry 12 } + +rttMonHTTPStatsDNSServerTimeout OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of requests that could not connect to the + DNS Server." + ::= { rttMonHTTPStatsEntry 13 } + +rttMonHTTPStatsTCPConnectTimeout OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of requests that could not connect to the + the HTTP Server." + ::= { rttMonHTTPStatsEntry 14 } + +rttMonHTTPStatsTransactionTimeout OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of requests that timed out during HTTP + transaction." + ::= { rttMonHTTPStatsEntry 15 } + +rttMonHTTPStatsDNSQueryError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of requests that had DNS Query errors." + ::= { rttMonHTTPStatsEntry 16 } + +rttMonHTTPStatsHTTPError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of requests that had HTTP errors while + downloading the base page." + ::= { rttMonHTTPStatsEntry 17 } + +rttMonHTTPStatsError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occasions when a HTTP operation could not + be initiated because an internal error" + ::= { rttMonHTTPStatsEntry 18 } + +rttMonHTTPStatsBusies OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occasions when an HTTP operation could not + be initiated because a previous HTTP operation has not + been completed." + ::= { rttMonHTTPStatsEntry 19 } + +-- +-- Jitter Statistics Table +-- + +rttMonJitterStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonJitterStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Jitter statistics collection database. + + The Jitter statistics table contains summarized information of + the results for a conceptual RTT control row. A rolling + accumulated history of this information is maintained in a + series of hourly 'group(s)'. + + The operation of this table is same as that of + rttMonStatsCaptureTable, except that this table will store + 2 hours of data." + ::= { rttMonStats 5 } + +rttMonJitterStatsEntry OBJECT-TYPE + SYNTAX RttMonJitterStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects which accumulate the results of a + series of RTT operations over a 60 minute time period. + + This entry is created only if the rttMonCtrlAdminRttType + is jitter. The operation of this table is same as that of + rttMonStatsCaptureTable." + INDEX { rttMonCtrlAdminIndex, + rttMonJitterStatsStartTimeIndex + } + ::= { rttMonJitterStatsTable 1 } + +RttMonJitterStatsEntry ::= SEQUENCE +{ + rttMonJitterStatsStartTimeIndex TimeStamp, + rttMonJitterStatsCompletions Counter32, + rttMonJitterStatsOverThresholds Counter32, + rttMonJitterStatsNumOfRTT Counter32, + rttMonJitterStatsRTTSum Counter32, + rttMonJitterStatsRTTSum2Low Counter32, + rttMonJitterStatsRTTSum2High Counter32, + rttMonJitterStatsRTTMin Gauge32, + rttMonJitterStatsRTTMax Gauge32, + rttMonJitterStatsMinOfPositivesSD Gauge32, + rttMonJitterStatsMaxOfPositivesSD Gauge32, + rttMonJitterStatsNumOfPositivesSD Counter32, + rttMonJitterStatsSumOfPositivesSD Counter32, + rttMonJitterStatsSum2PositivesSDLow Counter32, + rttMonJitterStatsSum2PositivesSDHigh Counter32, + rttMonJitterStatsMinOfNegativesSD Gauge32, + rttMonJitterStatsMaxOfNegativesSD Gauge32, + rttMonJitterStatsNumOfNegativesSD Counter32, + rttMonJitterStatsSumOfNegativesSD Counter32, + rttMonJitterStatsSum2NegativesSDLow Counter32, + rttMonJitterStatsSum2NegativesSDHigh Counter32, + rttMonJitterStatsMinOfPositivesDS Gauge32, + rttMonJitterStatsMaxOfPositivesDS Gauge32, + rttMonJitterStatsNumOfPositivesDS Counter32, + rttMonJitterStatsSumOfPositivesDS Counter32, + rttMonJitterStatsSum2PositivesDSLow Counter32, + rttMonJitterStatsSum2PositivesDSHigh Counter32, + rttMonJitterStatsMinOfNegativesDS Gauge32, + rttMonJitterStatsMaxOfNegativesDS Gauge32, + rttMonJitterStatsNumOfNegativesDS Counter32, + rttMonJitterStatsSumOfNegativesDS Counter32, + rttMonJitterStatsSum2NegativesDSLow Counter32, + rttMonJitterStatsSum2NegativesDSHigh Counter32, + rttMonJitterStatsPacketLossSD Counter32, + rttMonJitterStatsPacketLossDS Counter32, + rttMonJitterStatsPacketOutOfSequence Counter32, + rttMonJitterStatsPacketMIA Counter32, + rttMonJitterStatsPacketLateArrival Counter32, + rttMonJitterStatsError Counter32, + rttMonJitterStatsBusies Counter32, + rttMonJitterStatsOWSumSD Counter32, + rttMonJitterStatsOWSum2SDLow Counter32, + rttMonJitterStatsOWSum2SDHigh Counter32, + rttMonJitterStatsOWMinSD Counter32, + rttMonJitterStatsOWMaxSD Counter32, + rttMonJitterStatsOWSumDS Counter32, + rttMonJitterStatsOWSum2DSLow Counter32, + rttMonJitterStatsOWSum2DSHigh Counter32, + rttMonJitterStatsOWMinDS Counter32, + rttMonJitterStatsOWMaxDS Counter32, + rttMonJitterStatsNumOfOW Counter32, + rttMonJitterStatsOWMinSDNew Gauge32, + rttMonJitterStatsOWMaxSDNew Gauge32, + rttMonJitterStatsOWMinDSNew Gauge32, + rttMonJitterStatsOWMaxDSNew Gauge32, + rttMonJitterStatsMinOfMOS Gauge32, + rttMonJitterStatsMaxOfMOS Gauge32, + rttMonJitterStatsMinOfICPIF Gauge32, + rttMonJitterStatsMaxOfICPIF Gauge32, + rttMonJitterStatsIAJOut Gauge32, + rttMonJitterStatsIAJIn Gauge32, + rttMonJitterStatsAvgJitter Gauge32, + rttMonJitterStatsAvgJitterSD Gauge32, + rttMonJitterStatsAvgJitterDS Gauge32, + rttMonJitterStatsUnSyncRTs Counter32 +} + +rttMonJitterStatsStartTimeIndex OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The time when this row was created." + ::= { rttMonJitterStatsEntry 1 } + +rttMonJitterStatsCompletions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of jitter operation that have completed + successfully." + ::= { rttMonJitterStatsEntry 2 } + +rttMonJitterStatsOverThresholds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of jitter operations that violate threshold." + ::= { rttMonJitterStatsEntry 3 } + +rttMonJitterStatsNumOfRTT OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT's that are successfully measured." + ::= { rttMonJitterStatsEntry 4 } + +rttMonJitterStatsRTTSum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT's that are successfully measured." + ::= { rttMonJitterStatsEntry 5 } + +rttMonJitterStatsRTTSum2Low OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's that are successfully measured + (low order 32 bits)." + ::= { rttMonJitterStatsEntry 6 } + +rttMonJitterStatsRTTSum2High OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's that are successfully measured + (high order 32 bits)." + ::= { rttMonJitterStatsEntry 7 } + +rttMonJitterStatsRTTMin OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of RTT's that were successfully measured" + ::= { rttMonJitterStatsEntry 8 } + +rttMonJitterStatsRTTMax OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of RTT's that were successfully measured" + ::= { rttMonJitterStatsEntry 9 } + +rttMonJitterStatsMinOfPositivesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of absolute values of all positive jitter values + from packets sent from source to destination." + ::= { rttMonJitterStatsEntry 10 } + +rttMonJitterStatsMaxOfPositivesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of absolute values of all positive jitter values + from packets sent from source to destination." + ::= { rttMonJitterStatsEntry 11 } + +rttMonJitterStatsNumOfPositivesSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of number of all positive jitter values from packets + sent from source to destination." + ::= { rttMonJitterStatsEntry 12 } + +rttMonJitterStatsSumOfPositivesSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of all positive jitter values from packets + sent from source to destination." + ::= { rttMonJitterStatsEntry 13 } + +rttMonJitterStatsSum2PositivesSDLow OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of square of RTT's of all positive jitter values from + packets sent from source to destination (low order 32 bits)." + ::= { rttMonJitterStatsEntry 14 } + +rttMonJitterStatsSum2PositivesSDHigh OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of square of RTT's of all positive jitter values from + packets sent from source to destination (high order 32 bits)." + ::= { rttMonJitterStatsEntry 15 } + +rttMonJitterStatsMinOfNegativesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all negative jitter values from packets sent + from source to destination." + ::= { rttMonJitterStatsEntry 16 } + +rttMonJitterStatsMaxOfNegativesSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all negative jitter values from packets sent + from source to destination." + ::= { rttMonJitterStatsEntry 17 } + +rttMonJitterStatsNumOfNegativesSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of number of all negative jitter values from packets + sent from source to destination." + ::= { rttMonJitterStatsEntry 18 } + +rttMonJitterStatsSumOfNegativesSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT's of all negative jitter values from packets + sent from source to destination." + ::= { rttMonJitterStatsEntry 19 } + +rttMonJitterStatsSum2NegativesSDLow OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of square of RTT's of all negative jitter values from + packets sent from source to destination (low order 32 bits)." + ::= { rttMonJitterStatsEntry 20 } + +rttMonJitterStatsSum2NegativesSDHigh OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of square of RTT's of all negative jitter values from + packets sent from source to destination (high order 32 bits)." + ::= { rttMonJitterStatsEntry 21 } + +rttMonJitterStatsMinOfPositivesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all positive jitter values from packets sent + from destination to source." + ::= { rttMonJitterStatsEntry 22 } + +rttMonJitterStatsMaxOfPositivesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all positive jitter values from packets sent + from destination to source." + ::= { rttMonJitterStatsEntry 23 } + +rttMonJitterStatsNumOfPositivesDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of number of all positive jitter values from packets + sent from destination to source." + ::= { rttMonJitterStatsEntry 24 } + +rttMonJitterStatsSumOfPositivesDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT's of all positive jitter values from packets + sent from destination to source." + ::= { rttMonJitterStatsEntry 25 } + +rttMonJitterStatsSum2PositivesDSLow OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's of all positive jitter values from + packets sent from destination to source (low order 32 bits)." + ::= { rttMonJitterStatsEntry 26 } + +rttMonJitterStatsSum2PositivesDSHigh OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's of all positive jitter values from + packets sent from destination to source (high order 32 bits)." + ::= { rttMonJitterStatsEntry 27 } + +rttMonJitterStatsMinOfNegativesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all negative jitter values from packets sent + from destination to source." + ::= { rttMonJitterStatsEntry 28 } + +rttMonJitterStatsMaxOfNegativesDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all negative jitter values from packets sent + from destination to source." + ::= { rttMonJitterStatsEntry 29 } + +rttMonJitterStatsNumOfNegativesDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of number of all negative jitter values from packets + sent from destination to source." + ::= { rttMonJitterStatsEntry 30 } + +rttMonJitterStatsSumOfNegativesDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of RTT's of all negative jitter values from packets + sent from destination to source." + ::= { rttMonJitterStatsEntry 31 } + +rttMonJitterStatsSum2NegativesDSLow OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's of all negative jitter values from + packets sent from destination to source (low order 32 bits)." + ::= { rttMonJitterStatsEntry 32 } + +rttMonJitterStatsSum2NegativesDSHigh OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of RTT's of all negative jitter values from + packets sent from destination to source (high order 32 bits)." + ::= { rttMonJitterStatsEntry 33 } + +rttMonJitterStatsPacketLossSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets lost when sent from source to destination." + ::= { rttMonJitterStatsEntry 34 } + +rttMonJitterStatsPacketLossDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets lost when sent from destination to source." + ::= { rttMonJitterStatsEntry 35 } + +rttMonJitterStatsPacketOutOfSequence OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets arrived out of sequence." + ::= { rttMonJitterStatsEntry 36 } + +rttMonJitterStatsPacketMIA OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets that are lost for which we cannot determine + the direction." + ::= { rttMonJitterStatsEntry 37 } + +rttMonJitterStatsPacketLateArrival OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets that arrived after the timeout." + ::= { rttMonJitterStatsEntry 38 } + +rttMonJitterStatsError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occasions when a jitter operation could not + be initiated because an internal error" + ::= { rttMonJitterStatsEntry 39 } + +rttMonJitterStatsBusies OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occasions when a jitter operation could not + be initiated because a previous jitter operation has not + been completed." + ::= { rttMonJitterStatsEntry 40 } + +rttMonJitterStatsOWSumSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of one way times from source to destination." + ::= { rttMonJitterStatsEntry 41 } + +rttMonJitterStatsOWSum2SDLow OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of one way times from source to destination + (low order 32 bits)." + ::= { rttMonJitterStatsEntry 42 } + +rttMonJitterStatsOWSum2SDHigh OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of one way times from source to destination + (high order 32 bits)." + ::= { rttMonJitterStatsEntry 43 } + +rttMonJitterStatsOWMinSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The minimum of all one way times from source to destination." + ::= { rttMonJitterStatsEntry 44 } + +rttMonJitterStatsOWMaxSD OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The maximum of all one way times from source to destination." + ::= { rttMonJitterStatsEntry 45 } + +rttMonJitterStatsOWSumDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of one way times from destination to source." + ::= { rttMonJitterStatsEntry 46 } + +rttMonJitterStatsOWSum2DSLow OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of one way times from destination to source + (low order 32 bits)." + ::= { rttMonJitterStatsEntry 47 } + +rttMonJitterStatsOWSum2DSHigh OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sum of squares of one way times from destination to source + (high order 32 bits)." + ::= { rttMonJitterStatsEntry 48 } + +rttMonJitterStatsOWMinDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The minimum of all one way times from destination to source." + ::= { rttMonJitterStatsEntry 49 } + +rttMonJitterStatsOWMaxDS OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The maximum of all one way times from destination to source." + ::= { rttMonJitterStatsEntry 50 } + +rttMonJitterStatsNumOfOW OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of one way times that are successfully measured." + ::= { rttMonJitterStatsEntry 51 } + +rttMonJitterStatsOWMinSDNew OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all one way times from source to destination. + Replaces deprecated rttMonJitterStatsOWMinSD." + ::= { rttMonJitterStatsEntry 52 } + +rttMonJitterStatsOWMaxSDNew OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all one way times from source to destination. + Replaces deprecated rttMonJitterStatsOWMaxSD." + ::= { rttMonJitterStatsEntry 53 } + +rttMonJitterStatsOWMinDSNew OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all one way times from destination to source. + Replaces deprecated rttMonJitterStatsOWMinDS." + ::= { rttMonJitterStatsEntry 54 } + +rttMonJitterStatsOWMaxDSNew OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all one way times from destination to source. + Replaces deprecated rttMonJitterStatsOWMaxDS" + ::= { rttMonJitterStatsEntry 55 } + +rttMonJitterStatsMinOfMOS OBJECT-TYPE + SYNTAX Gauge32 ( 100..500 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all MOS values for the jitter operations + in hundreds. " + ::= { rttMonJitterStatsEntry 56 } + +rttMonJitterStatsMaxOfMOS OBJECT-TYPE + SYNTAX Gauge32 ( 100..500 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all MOS values for the jitter operations + in hunderds. " + ::= { rttMonJitterStatsEntry 57 } + +rttMonJitterStatsMinOfICPIF OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of all ICPIF values for the jitter operations" + ::= { rttMonJitterStatsEntry 58 } + +rttMonJitterStatsMaxOfICPIF OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of all ICPIF values for the jitter operations" + ::= { rttMonJitterStatsEntry 59 } + +rttMonJitterStatsIAJOut OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interarrival Jitter (RFC 1889) at responder" + REFERENCE + "Refer to the following documents for the definition: RFC 1889" + ::= { rttMonJitterStatsEntry 60 } + +rttMonJitterStatsIAJIn OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interarrival Jitter (RFC 1889) at sender" + REFERENCE + "Refer to the following documents for the definition: RFC 1889" + ::= { rttMonJitterStatsEntry 61 } + +rttMonJitterStatsAvgJitter OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average of positive and negative jitter + values for SD and DS direction." + ::= { rttMonJitterStatsEntry 62 } + +rttMonJitterStatsAvgJitterSD OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average of positive and negative jitter + values in SD direction." + ::= { rttMonJitterStatsEntry 63 } + +rttMonJitterStatsAvgJitterDS OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average of positive and negative jitter + values in DS direction." + ::= { rttMonJitterStatsEntry 64 } + +rttMonJitterStatsUnSyncRTs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RTT operations that have completed with + sender and responder out of sync with NTP. The NTP sync means + the total of NTP offset on sender and responder is within + configured tolerance level." + ::= { rttMonJitterStatsEntry 65 } + +-- +-- Auto SAA L3 MPLS VPN LPD Group Stats Collection Table +-- + +rttMonLpdGrpStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonLpdGrpStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The Auto SAA L3 MPLS VPN LPD Group Database. + + The LPD Group statistics table contains summarized performance + statistics for the LPD group. + + LPD Group - The set of 'single probes' which are subset of the + 'lspGroup' probe traversing set of paths between two PE end + points are grouped together and called as the LPD group. The + LPD group will be uniquely referenced by the LPD Group ID. + + A rolling accumulated history of this information is maintained + in a series of hourly 'group(s)'. + + Each conceptual statistics row has a current hourly group, into + which RTT results are accumulated. At the end of each hour a new + hourly group is created which then becomes current. The + counters and accumulators in the new group are initialized to + zero. The previous group(s) is kept in the table until the table + contains rttMplsVpnMonTypeLpdStatHours groups for the + conceptual statistics row; at this point, the oldest group is + discarded and is replaced by the newly created one. The hourly + group is uniquely identified by the + rttMonLpdGrpStatsStartTimeIndex object." + ::= { rttMonStats 7 } + +rttMonLpdGrpStatsEntry OBJECT-TYPE + SYNTAX RttMonLpdGrpStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects which accumulate the results of a set of RTT + operations over a 60 minute time period. + + The LPD group statistics table is a rollover table. When + rttMonLpdGrpStatsStartTimeIndex groups exceeds the + rttMplsVpnMonTypeLpdStatHours value, the oldest corresponding + hourly group will be deleted and will be replaced with the new + rttMonLpdGrpStatsStartTimeIndex hourly group. + + The LPD group statistics table has two indices. Each described + as follows: + + - The first index correlates its entries to a LPD group via the + rttMonLpdGrpStatsGroupIndex object. + - The second index is a rollover group and it uniquely identifies + a 60 minute group. (The rttMonLpdGrpStatsStartTimeIndex is + used to make this value unique.)" + INDEX { rttMonLpdGrpStatsGroupIndex, + rttMonLpdGrpStatsStartTimeIndex + } + ::= { rttMonLpdGrpStatsTable 1 } + +RttMonLpdGrpStatsEntry ::= SEQUENCE +{ + rttMonLpdGrpStatsGroupIndex Integer32, + rttMonLpdGrpStatsStartTimeIndex TimeStamp, + rttMonLpdGrpStatsTargetPE RttMonTargetAddress, + rttMonLpdGrpStatsNumOfPass Integer32, + rttMonLpdGrpStatsNumOfFail Integer32, + rttMonLpdGrpStatsNumOfTimeout Integer32, + rttMonLpdGrpStatsAvgRTT Integer32, + rttMonLpdGrpStatsMinRTT Integer32, + rttMonLpdGrpStatsMaxRTT Integer32, + rttMonLpdGrpStatsMinNumPaths Integer32, + rttMonLpdGrpStatsMaxNumPaths Integer32, + rttMonLpdGrpStatsLPDStartTime TimeStamp, + rttMonLpdGrpStatsLPDFailOccurred TruthValue, + rttMonLpdGrpStatsLPDFailCause RttMplsVpnMonLpdFailureSense, + rttMonLpdGrpStatsLPDCompTime Integer32, + rttMonLpdGrpStatsGroupStatus RttMplsVpnMonLpdGrpStatus, + rttMonLpdGrpStatsGroupProbeIndex Integer32, + rttMonLpdGrpStatsProbeStatus DisplayString, + rttMonLpdGrpStatsPathIds DisplayString, + rttMonLpdGrpStatsResetTime TimeStamp +} + +rttMonLpdGrpStatsGroupIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Uniquely identifies a row in rttMonLpdGrpStatsTable. + + This is a pseudo-random number which identifies a particular + LPD group." + ::= { rttMonLpdGrpStatsEntry 1 } + +rttMonLpdGrpStatsStartTimeIndex OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The time when this row was created. + + This object is the second index of the rttMonLpdGrpStatsTable. + When the number of rttMonLpdGrpStatsStartTimeIndex groups + exceeds the rttMplsVpnMonTypeLpdStatHours value, the oldest + rttMonLpdGrpStatsStartTimeIndex group will be removed and + replaced with the new entry." + ::= { rttMonLpdGrpStatsEntry 2 } + +rttMonLpdGrpStatsTargetPE OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The object is a string that specifies the address of the + target PE for this LPD group." + ::= { rttMonLpdGrpStatsEntry 3 } + +rttMonLpdGrpStatsNumOfPass OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "passes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represents the number of successfull completions + of 'single probes' for all the set of paths in the LPD group. + + Whenever the rttMonLatestRttOperSense value is 'ok' for a + particular probe in the LPD Group this object will be + incremented. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 4 } + +rttMonLpdGrpStatsNumOfFail OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "failures" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represents the number of failed operations of + 'single probes' for all the set of paths in the LPD group. + + Whenever the rttMonLatestRttOperSense has a value other than + 'ok' or 'timeout' for a particular probe in the LPD Group this + object will be incremented. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 5 } + +rttMonLpdGrpStatsNumOfTimeout OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "timeouts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object represents the number of timed out operations of + 'single probes' for all the set of paths in the LPD group. + + Whenever the rttMonLatestRttOperSense has a value of 'timeout' + for a particular probe in the LPD Group this object will be + incremented. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 6 } + +rttMonLpdGrpStatsAvgRTT OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average RTT across all set of probes in the LPD group. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 7 } + +rttMonLpdGrpStatsMinRTT OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum of RTT's for all set of probes in the LPD group + that were successfully measured. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 8 } + +rttMonLpdGrpStatsMaxRTT OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum of RTT's for all set of probes in the LPD group + that were successfully measured. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 9 } + +rttMonLpdGrpStatsMinNumPaths OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "paths" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum number of active paths discovered to the + rttMonLpdGrpStatsTargetPE target. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 10 } + +rttMonLpdGrpStatsMaxNumPaths OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + UNITS "paths" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of active paths discovered to the + rttMonLpdGrpStatsTargetPE target. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 11 } + +rttMonLpdGrpStatsLPDStartTime OBJECT-TYPE + SYNTAX TimeStamp + UNITS "tenths of milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time when the last LSP Path Discovery to the group was + attempted. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 12 } + +rttMonLpdGrpStatsLPDFailOccurred OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is set to true when the LSP Path Discovery + to the target PE i.e. rttMonLpdGrpStatsTargetPE fails, and + set to false when the LSP Path Discovery succeeds. + + When this value changes and rttMplsVpnMonReactLpdNotifyType is + set to 'lpdPathDiscovery' or 'lpdAll' a + rttMonLpdDiscoveryNotification will be generated. + + This object will be set to 'FALSE' on reset." + ::= { rttMonLpdGrpStatsEntry 13 } + +rttMonLpdGrpStatsLPDFailCause OBJECT-TYPE + SYNTAX RttMplsVpnMonLpdFailureSense + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object identifies the cause of failure for the LSP Path + Discovery last attempted. It will be only valid if + rttMonLpdGrpStatsLPDFailOccurred is set to true. + + This object will be set to 'unknown' on reset." + ::= { rttMonLpdGrpStatsEntry 14 } + +rttMonLpdGrpStatsLPDCompTime OBJECT-TYPE + SYNTAX Integer32 (0..65535) + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The completion time of the last successfull LSP Path Discovery + to the target PE. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 15 } + +rttMonLpdGrpStatsGroupStatus OBJECT-TYPE + SYNTAX RttMplsVpnMonLpdGrpStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object identifies the LPD Group status. + + When the LPD Group status changes and + rttMplsVpnMonReactLpdNotifyType is set to 'lpdGroupStatus' or + 'lpdAll' a rttMonLpdGrpStatusNotification will be generated. + + When the LPD Group status value is 'unknown' or changes to + 'unknown' this notification will not be generated. + + When LSP Path Discovery is enabled for a particular row in + rttMplsVpnMonCtrlTable, 'single probes' in the 'lspGroup' probe + cannot generate notifications independently but will be + generating depending on the state of the group. Notifications + are only generated if the failure/restoration of an individual + probe causes the state of the LPD Group to change. + + This object will be set to 'unknown' on reset." + ::= { rttMonLpdGrpStatsEntry 16 } + +rttMonLpdGrpStatsGroupProbeIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + UNITS "identifier" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object identifies 'lspGroup' probe uniquely created for + this particular LPD Group." + ::= { rttMonLpdGrpStatsEntry 17 } + +rttMonLpdGrpStatsPathIds OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string which holds the list of information to uniquely + identify the paths to the target PE. This information is used + by the 'single probes' when testing the paths. + + Following three parameters are needed to uniquely identify a path + - lsp-selector (127.x.x.x) + - outgoing-interface (i/f) + - label-stack (s), if mutiple labels they will be colon (:) + separated. + + These parameters will be hyphen (-) separated for a particular + path. This set of information will be comma (,) separated for + all the paths discovered as part of this LPD Group. + + For example: If there are 5 paths in the LPD group then this + object will return all the identifier's to uniquely identify + the path. + + The output will look like '127.0.0.1-Se3/0.1-20:18, + 127.0.0.2-Se3/0.1-20,127.0.0.3-Se3/0.1-20,127.0.0.4-Se3/0.1-20, + 127.0.0.5-Se3/0.1-20'. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 18 } + +rttMonLpdGrpStatsProbeStatus OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string which holds the latest operation return code for + all the set of 'single probes' which are part of the LPD group. + The return codes will be comma separated and will follow the + same sequence of probes as followed in + 'rttMonLpdGrpStatsPathIds'. The latest operation return code + will be mapped to 'up','down' or 'unkwown'. + + 'up' - Probe state is up when the rttMonLatestRttOperSense + value is 'ok'. + 'down' - Probe state is down when the rttMonLatestRttOperSense + has value other then 'ok' and 'other'. + 'unknown' - Probe state is unkown when the + rttMonLatestRttOperSense value is 'other'. + + For example: If there are 5 paths in the LPD group then this + object output will look like 'ok,ok,ok,down,down'. + + This object will be set to '0' on reset." + ::= { rttMonLpdGrpStatsEntry 19 } + +rttMonLpdGrpStatsResetTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object specifies the time when this statistics row was + last reset using the rttMonApplLpdGrpStatsReset object." + ::= { rttMonLpdGrpStatsEntry 20 } + +-- +-- History Collection Table +-- + +rttMonHistoryCollectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF RttMonHistoryCollectionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The history collection database. + + The history table contains a point by point rolling + history of the most recent RTT operations for each + conceptual RTT control row. The rolling history of this + information is maintained in a series of 'live(s)', each + containing a series of 'bucket(s)', each 'bucket' + contains a series of 'sample(s)'. + + Each conceptual history row can have lives. A life is + defined by the rttMonCtrlOperRttLife object. A new life + will be created when rttMonCtrlOperState transitions + 'active'. When the number of lives become greater + than rttMonHistoryAdminNumLives the oldest life will be + discarded and a new life will be created by incrementing + the index. + + The path exploration RTT operation will be kept as an + entry in this table." + ::= { rttMonHistory 1 } + + +rttMonHistoryCollectionEntry OBJECT-TYPE + SYNTAX RttMonHistoryCollectionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of history objects that are recorded for each + RTT operation. + + The history collection table has four indices. Each + described as follows: + - The first index correlates its entries to a + conceptual RTT control row via the + rttMonCtrlAdminIndex object. + - The second index uniquely identifies the results + of each 'life' as defined by the + rttMonCtrlOperRttLife object. + - The third index uniquely identifies the number of + buckets in a life. A bucket will contain one + sample per bucket if the rttMonCtrlAdminRttType + object is set to any value + other than 'pathEcho'. If the + rttMonCtrlAdminRttType object is set to + 'pathEcho', a bucket will contain one sample per + hop along a path to the target (including the + target). + - The fourth index uniquely identifies the number of + samples in a bucket. Again, if the + rttMonCtrlAdminRttType object is set to + 'pathEcho', this value is associated with each + hop in an ascending order, thus for the + first hop on a path, this index will be 1, the + second will be 2 and so on. For all other values + of rttMonCtrlAdminRttType this will be 1." + INDEX { rttMonCtrlAdminIndex, + rttMonHistoryCollectionLifeIndex, + rttMonHistoryCollectionBucketIndex, + rttMonHistoryCollectionSampleIndex + } + ::= { rttMonHistoryCollectionTable 1 } + + +RttMonHistoryCollectionEntry ::= SEQUENCE +{ + rttMonHistoryCollectionLifeIndex Integer32, + rttMonHistoryCollectionBucketIndex Integer32, + rttMonHistoryCollectionSampleIndex Integer32, + rttMonHistoryCollectionSampleTime TimeStamp, + rttMonHistoryCollectionAddress RttMonTargetAddress, + rttMonHistoryCollectionCompletionTime Gauge32, + rttMonHistoryCollectionSense RttResponseSense, + rttMonHistoryCollectionApplSpecificSense Integer32, + rttMonHistoryCollectionSenseDescription DisplayString +} + + +rttMonHistoryCollectionLifeIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This uniquely defines a life for a conceptual history + row. + + For a particular value of rttMonHistoryCollectionLifeIndex, + the agent assigns the first value of 1, the second value + of 2, and so on. The sequence keeps incrementing, + despite older (lower) values being removed from the + table." + ::= { rttMonHistoryCollectionEntry 1 } + + +rttMonHistoryCollectionBucketIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "When the RttMonRttType is 'pathEcho', this uniquely + defines a bucket for a given value of + rttMonHistoryCollectionLifeIndex. For all other + RttMonRttType this value will be the number of + operations per a lifetime. Thus, this object + increments on each operation attempt. + + For a particular value of + rttMonHistoryCollectionLifeIndex, the agent assigns + the first value of 1, the second value of 2, and so + on. The sequence keeps incrementing until the number + of buckets equals rttMonHistoryAdminNumBuckets, after + which the most recent rttMonHistoryAdminNumBuckets + buckets are retained (the index is incremented though)." + ::= { rttMonHistoryCollectionEntry 2 } + + +rttMonHistoryCollectionSampleIndex OBJECT-TYPE + SYNTAX Integer32 (1..512) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This uniquely defines a row for a given value of + rttMonHistoryCollectionBucketIndex. This object + represents a hop along a path to the Target. + + For a particular value of + rttMonHistoryCollectionBucketIndex, the agent assigns + the first value of 1, the second value of 2, and so on. + The sequence keeps incrementing until the number of + samples equals rttMonHistoryAdminNumSamples, then no + new samples are created for the current + rttMonHistoryCollectionBucketIndex. + + When the RttMonRttType is 'pathEcho', this value + directly represents the number of hops along a + path to a target, thus we can only support 512 hops. + For all other values of RttMonRttType this object + will be one." + ::= { rttMonHistoryCollectionEntry 3 } + + +rttMonHistoryCollectionSampleTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time that the RTT operation was initiated." + ::= { rttMonHistoryCollectionEntry 4 } + + +rttMonHistoryCollectionAddress OBJECT-TYPE + SYNTAX RttMonTargetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the RttMonRttType is 'echo' or 'pathEcho' this + is a string which specifies the address of the target for + the this RTT operation. For all other values of + RttMonRttType this string will be null. + + This address will be the address of the hop along the + path to the rttMonEchoAdminTargetAddress address, + including rttMonEchoAdminTargetAddress address, or just + the rttMonEchoAdminTargetAddress address, when the + path information is not collected. This behavior is + defined by the rttMonCtrlAdminRttType object. + + The interpretation of this string depends on the type + of RTT operation selected, as specified by the + rttMonEchoAdminProtocol object. + + See rttMonEchoAdminTargetAddress for a complete + description." + ::= { rttMonHistoryCollectionEntry 5 } + + +rttMonHistoryCollectionCompletionTime OBJECT-TYPE + SYNTAX Gauge32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the operation completion time of the RTT + operation. If the RTT operation fails + (rttMonHistoryCollectionSense is any + value other than ok), this has a value of 0." + ::= { rttMonHistoryCollectionEntry 6 } + + +rttMonHistoryCollectionSense OBJECT-TYPE + SYNTAX RttResponseSense + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A sense code for the completion status of the RTT + operation." + ::= { rttMonHistoryCollectionEntry 7 } + + +rttMonHistoryCollectionApplSpecificSense OBJECT-TYPE + SYNTAX Integer32 ( 0..2147483647 ) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An application specific sense code for the + completion status of the last RTT operation. This + object will only be valid when the + rttMonHistoryCollectionSense object is set to + 'applicationSpecific'. Otherwise, this object's + value is not valid." + ::= { rttMonHistoryCollectionEntry 8 } + + +rttMonHistoryCollectionSenseDescription OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A sense description for the completion status of + the last RTT operation when the + rttMonHistoryCollectionSense object is set to + 'applicationSpecific'." + ::= { rttMonHistoryCollectionEntry 9 } + +-- +-- NOTIFICATION DEFINITIONS +-- +-- This section defines the traps that +-- can be generated by the agent. +-- +-- + +rttMonNotificationsPrefix OBJECT IDENTIFIER + ::= { ciscoRttMonMIB 2 } +rttMonNotifications OBJECT IDENTIFIER + ::= { rttMonNotificationsPrefix 0 } + +rttMonConnectionChangeNotification NOTIFICATION-TYPE + OBJECTS { rttMonCtrlAdminTag, + rttMonHistoryCollectionAddress, + rttMonCtrlOperConnectionLostOccurred + } + STATUS deprecated + DESCRIPTION + "This notification is only valid when the RttMonRttType + is 'echo' or 'pathEcho'. + + A rttMonConnectionChangeNotification indicates that a + connection to a target (not to a hop along the path + to a target) has either failed on establishment or + been lost and when reestablished. Precisely, this + has resulted in rttMonCtrlOperConnectionLostOccurred + changing value. + + If History is not being collected, the instance values + for the rttMonHistoryCollectionAddress object will not + be valid. When RttMonRttType is not 'echo' or 'pathEcho' + the rttMonHistoryCollectionAddress object will be null." + ::= { rttMonNotifications 1 } + + +rttMonTimeoutNotification NOTIFICATION-TYPE + OBJECTS { rttMonCtrlAdminTag, + rttMonHistoryCollectionAddress, + rttMonCtrlOperTimeoutOccurred + } + STATUS deprecated + DESCRIPTION + "A rttMonTimeoutNotification indicates the occurrence of + a timeout for a RTT operation, and it indicates the + clearing of such a condition by a subsequent RTT + operation. Precisely, this has resulted in + rttMonCtrlOperTimeoutOccurred changing value. + + When the RttMonRttType is 'pathEcho', this + notification will only be sent when the timeout + occurs during an operation to the target and not to + a hop along the path to the target. This also + applies to the clearing of the timeout. + + If History is not being collected, the instance values + for the rttMonHistoryCollectionAddress object will not + be valid. When RttMonRttType is not 'echo' or 'pathEcho' + the rttMonHistoryCollectionAddress object will be null." + ::= { rttMonNotifications 2 } + + +rttMonThresholdNotification NOTIFICATION-TYPE + OBJECTS { rttMonCtrlAdminTag, + rttMonHistoryCollectionAddress, + rttMonCtrlOperOverThresholdOccurred + } + STATUS deprecated + DESCRIPTION + "A rttMonThresholdNotification indicates the + occurrence of a threshold violation for a RTT operation, + and it indicates the previous violation has subsided for + a subsequent RTT operation. Precisely, this has resulted + in rttMonCtrlOperOverThresholdOccurred changing value. + + When the RttMonRttType is 'pathEcho', this + notification will only be sent when the threshold + violation occurs during an operation to the target and + not to a hop along the path to the target. This also + applies to the subsiding of a threshold condition. + + If History is not being collected, the instance values + for the rttMonHistoryCollectionAddress object will not + be valid. When RttMonRttType is not 'echo' or 'pathEcho' + the rttMonHistoryCollectionAddress object will be null." + ::= { rttMonNotifications 3 } + + +rttMonVerifyErrorNotification NOTIFICATION-TYPE + OBJECTS { rttMonCtrlAdminTag, + rttMonHistoryCollectionAddress, + rttMonCtrlOperVerifyErrorOccurred + } + STATUS deprecated + DESCRIPTION + "A rttMonVerifyErrorNotification indicates the + occurrence of a data corruption in an RTT operation." + ::= { rttMonNotifications 4 } + + + +rttMonNotification NOTIFICATION-TYPE + OBJECTS { rttMonCtrlAdminTag, + rttMonHistoryCollectionAddress, + rttMonReactVar, + rttMonReactOccurred, + rttMonReactValue, + rttMonReactThresholdRising, + rttMonReactThresholdFalling, + rttMonEchoAdminLSPSelector + } + STATUS current + DESCRIPTION + "A rttMonNotification indicates the occurrence of a + threshold violation, and it indicates the previous + violation has subsided for a subsequent operation. + + When the RttMonRttType is 'pathEcho', this + notification will only be sent when the threshold + violation occurs during an operation to the target and + not to a hop along the path to the target. This also + applies to the subsiding of a threshold condition. + + If History is not being collected, the instance values + for the rttMonHistoryCollectionAddress object will not + be valid. When RttMonRttType is not 'echo' or 'pathEcho' + the rttMonHistoryCollectionAddress object will be null. + + rttMonReactVar defines the type of reaction that is + configured for the probe ( e.g jitterAvg, rtt etc ). + In the rttMonReactTable there are trap definitions + for the probes and each probe may have more than + one trap definitions for various types ( e.g rtt, + jitterAvg, packetLoossSD etc ). So the object rttMonReactVar + indicates the type ( e.g. rtt, packetLossSD, timeout etc ) + for which threshold violation traps has been generated. + + The object rttMonEchoAdminLSPSelector will be valid only + for the probes based on 'mplsLspPingAppl' RttMonProtocol. For + all other probes it will be null." + ::= { rttMonNotifications 5 } + +rttMonLpdDiscoveryNotification NOTIFICATION-TYPE + OBJECTS { rttMplsVpnMonCtrlTag, + rttMonLpdGrpStatsTargetPE, + rttMonLpdGrpStatsLPDFailCause, + rttMonLpdGrpStatsLPDFailOccurred + } + STATUS current + DESCRIPTION + "A rttMonLpdDiscoveryNotification indicates that the LSP Path + Discovery to the target PE has failed, and it also indicates + the clearing of such condition. Precisely this has resulted in + rttMonLpdGrpStatsLPDFailOccurred changing value. + + When the rttMonLpdGrpStatsLPDFailOccurred is 'false', the + instance value for rttMonLpdGrpStatsLPDFailCause is not valid." + ::= { rttMonNotifications 6 } + +rttMonLpdGrpStatusNotification NOTIFICATION-TYPE + OBJECTS { rttMplsVpnMonCtrlTag, + rttMonLpdGrpStatsTargetPE, + rttMonLpdGrpStatsGroupStatus + } + STATUS current + DESCRIPTION + "A rttMonLpdGrpStatusNotification indicates that the LPD + Group status rttMonLpdGrpStatsGroupStatus has changed indicating + some connectivity change to the target PE. + This has resulted in rttMonLpdGrpStatsGroupStatus changing + value." + ::= { rttMonNotifications 7 } + +-- +-- Conformance Information +-- + +ciscoRttMonMibConformance OBJECT IDENTIFIER + ::= { ciscoRttMonMIB 3 } +ciscoRttMonMibCompliances OBJECT IDENTIFIER + ::= { ciscoRttMonMibConformance 1 } +ciscoRttMonMibGroups OBJECT IDENTIFIER + ::= { ciscoRttMonMibConformance 2 } + +-- The following OIDs which were previously used to define +-- MODULE-COMPLIANCE statements are now obsolete: +-- ciscoRttMonMibCompliance ... ::= { ciscoRttMonMibCompliances 1 } +-- ciscoRttMonMibComplianceRev1 ... ::= { ciscoRttMonMibCompliances 2 } +-- ciscoRttMonMibComplianceRev2 ... ::= { ciscoRttMonMibCompliances 3 } +-- ciscoRttMonMibComplianceRev3 ... ::= { ciscoRttMonMibCompliances 4 } +-- ciscoRttMonMibComplianceRev4 ... ::= { ciscoRttMonMibCompliances 5 } +-- ciscoRttMonMibComplianceRev5 ... ::= { ciscoRttMonMibCompliances 6 } +-- ciscoRttMonMibComplianceRev6 ... ::= { ciscoRttMonMibCompliances 7 } +-- ciscoRttMonMibComplianceRev7 ... ::= { ciscoRttMonMibCompliances 8 } +-- ciscoRttMonMibComplianceRev8 ... ::= { ciscoRttMonMibCompliances 9 } +-- ciscoRttMonMibComplianceRev9 ... ::= { ciscoRttMonMibCompliances 10} +-- ciscoRttMonMibComplianceRev10 ... ::= { ciscoRttMonMibCompliances 11} +-- ciscoRttMonMibComplianceRev11 ... ::= { ciscoRttMonMibCompliances 12} + + +-- The following OIDs which were previously used to define +-- OBJECT-GROUPs are now obsolete: +-- ciscoCtrlGroup ... ::= { ciscoRttMonMibGroups 2 } +-- ciscoApplGroup ... ::= { ciscoRttMonMibGroups 1 } +-- ciscoApplGroupRev1 ... ::= { ciscoRttMonMibGroups 9 } +-- ciscoCtrlGroupRev3 ... ::= { ciscoRttMonMibGroups 10} +-- ciscoCtrlGroupRev5 ... ::= { ciscoRttMonMibGroups 15} +-- ciscoStatsGroupRev2 ... ::= { ciscoRttMonMibGroups 13} +-- ciscoNotificationGroup ... ::= { ciscoRttMonMibGroups 18 } + + +ciscoRttMonMibComplianceRev12 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for new MIB extensions for + (1) supporting LSP Path Discovery for Auto SAA L3 MPLS VPN. + (2) Group Scheduler Enhancement." + MODULE + MANDATORY-GROUPS { + ciscoStatsGroup, + ciscoHistoryGroup, + ciscoCtrlGroupRev1, + ciscoCtrlGroupRev2, + ciscoLatestOperGroupRev1, + ciscoStatsGroupRev1, + ciscoStatsGroupRev3, + ciscoStatsGroupRev4, + ciscoStatsGroupRev5, + ciscoApplGroupRev2, + ciscoApplGroupRev3, + ciscoCtrlGroupRev4, + ciscoCtrlGroupRev6, + ciscoCtrlGroupRev7, + ciscoCtrlGroupRev9, + ciscoCtrlGroupRev10, + ciscoCtrlGroupRev11, + ciscoCtrlGroupRev14, + ciscoNotificationGroupRev1 + } + GROUP ciscoCtrlGroupRev8 + DESCRIPTION + "ciscoCtrlGroupRev8 is only mandatory for the devices + that support MPLS." + GROUP ciscoStatsGroupRev7 + DESCRIPTION + "ciscoStatsGroupRev7 is only mandatory for the devices + that support MPLS." + GROUP ciscoCtrlGroupRev13 + DESCRIPTION + "ciscoCtrlGroupRev13 is only mandatory for the devices + that support MPLS." + GROUP ciscoNotificationGroupRev2 + DESCRIPTION + "ciscoNotificationGroupRev2 is only mandatory for the devices + that support MPLS." + GROUP ciscoApplGroupRev4 + DESCRIPTION + "ciscoApplGroupRev4 is only mandatory for the devices + that support MPLS." + GROUP ciscoCtrlGroupRev12 + DESCRIPTION + "ciscoCtrlGroupRev12 is only mandatory for the devices + that support voice." + ::= { ciscoRttMonMibCompliances 12 } + +ciscoStatsGroup OBJECT-GROUP + OBJECTS { + rttMonStatsCaptureCompletions, + rttMonStatsCaptureOverThresholds, + rttMonStatsCaptureSumCompletionTime, + rttMonStatsCaptureSumCompletionTime2Low, + rttMonStatsCaptureSumCompletionTime2High, + rttMonStatsCaptureCompletionTimeMax, + rttMonStatsCaptureCompletionTimeMin, + rttMonStatsCollectNumDisconnects, + rttMonStatsCollectTimeouts, + rttMonStatsCollectBusies, + rttMonStatsCollectNoConnections, + rttMonStatsCollectDrops, + rttMonStatsCollectSequenceErrors, + rttMonStatsCollectVerifyErrors, + rttMonStatsCollectAddress, + rttMonStatsTotalsElapsedTime, + rttMonStatsTotalsInitiations + } + STATUS current + DESCRIPTION + "A collection of objects providing accumulated statistical + history." + ::= { ciscoRttMonMibGroups 3 } + + +ciscoHistoryGroup OBJECT-GROUP + OBJECTS { + rttMonHistoryCollectionSampleTime, + rttMonHistoryCollectionAddress, + rttMonHistoryCollectionCompletionTime, + rttMonHistoryCollectionSense, + rttMonHistoryCollectionApplSpecificSense, + rttMonHistoryCollectionSenseDescription + } + STATUS current + DESCRIPTION + "A collection of objects providing point by point + history of each RTT operation." + ::= { ciscoRttMonMibGroups 4 } + + +ciscoCtrlGroupRev1 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminTargetPort, + rttMonEchoAdminSourceAddress, + rttMonEchoAdminSourcePort, + rttMonEchoAdminControlEnable, + rttMonEchoAdminTOS, + rttMonEchoAdminLSREnable, + rttMonEchoPathAdminHopAddress + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + functionality of the RTT application." + ::= { ciscoRttMonMibGroups 5 } + +ciscoCtrlGroupRev2 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminTargetAddressString, + rttMonEchoAdminNameServer, + rttMonEchoAdminOperation, + rttMonEchoAdminHTTPVersion, + rttMonEchoAdminURL, + rttMonEchoAdminCache, + rttMonEchoAdminInterval, + rttMonEchoAdminNumPackets, + rttMonEchoAdminProxy, + rttMonEchoAdminString1, + rttMonEchoAdminString2, + rttMonEchoAdminString3, + rttMonEchoAdminString4, + rttMonEchoAdminString5, + rttMonEchoAdminMode + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + functionality of the RTT application to configure HTTP, DNS and + Jitter probes." + ::= { ciscoRttMonMibGroups 6 } + +ciscoLatestOperGroupRev1 OBJECT-GROUP + OBJECTS { + rttMonLatestHTTPOperRTT, + rttMonLatestHTTPOperDNSRTT, + rttMonLatestHTTPOperTCPConnectRTT, + rttMonLatestHTTPOperTransactionRTT, + rttMonLatestHTTPOperMessageBodyOctets, + rttMonLatestHTTPOperSense, + rttMonLatestHTTPErrorSenseDescription, + rttMonLatestJitterOperNumOfRTT, + rttMonLatestJitterOperRTTSum, + rttMonLatestJitterOperRTTSum2, + rttMonLatestJitterOperRTTMin, + rttMonLatestJitterOperRTTMax, + rttMonLatestJitterOperMinOfPositivesSD, + rttMonLatestJitterOperMaxOfPositivesSD, + rttMonLatestJitterOperNumOfPositivesSD, + rttMonLatestJitterOperSumOfPositivesSD, + rttMonLatestJitterOperSum2PositivesSD, + rttMonLatestJitterOperMinOfNegativesSD, + rttMonLatestJitterOperMaxOfNegativesSD, + rttMonLatestJitterOperNumOfNegativesSD, + rttMonLatestJitterOperSumOfNegativesSD, + rttMonLatestJitterOperSum2NegativesSD, + rttMonLatestJitterOperMinOfPositivesDS, + rttMonLatestJitterOperMaxOfPositivesDS, + rttMonLatestJitterOperNumOfPositivesDS, + rttMonLatestJitterOperSumOfPositivesDS, + rttMonLatestJitterOperSum2PositivesDS, + rttMonLatestJitterOperMinOfNegativesDS, + rttMonLatestJitterOperMaxOfNegativesDS, + rttMonLatestJitterOperNumOfNegativesDS, + rttMonLatestJitterOperSumOfNegativesDS, + rttMonLatestJitterOperSum2NegativesDS, + rttMonLatestJitterOperPacketLossSD, + rttMonLatestJitterOperPacketLossDS, + rttMonLatestJitterOperPacketOutOfSequence, + rttMonLatestJitterOperPacketMIA, + rttMonLatestJitterOperPacketLateArrival, + rttMonLatestJitterOperSense, + rttMonLatestJitterErrorSenseDescription + } + STATUS current + DESCRIPTION + "A collection of objects that were added to store the latest + operational results for HTTP, DNS and Jitter probes." + ::= { ciscoRttMonMibGroups 7 } + +ciscoStatsGroupRev1 OBJECT-GROUP + OBJECTS { + rttMonHTTPStatsCompletions, + rttMonHTTPStatsOverThresholds, + rttMonHTTPStatsRTTSum, + rttMonHTTPStatsRTTSum2Low, + rttMonHTTPStatsRTTSum2High, + rttMonHTTPStatsRTTMin, + rttMonHTTPStatsRTTMax, + rttMonHTTPStatsDNSRTTSum, + rttMonHTTPStatsTCPConnectRTTSum, + rttMonHTTPStatsTransactionRTTSum, + rttMonHTTPStatsMessageBodyOctetsSum, + rttMonHTTPStatsDNSServerTimeout, + rttMonHTTPStatsTCPConnectTimeout, + rttMonHTTPStatsTransactionTimeout, + rttMonHTTPStatsDNSQueryError, + rttMonHTTPStatsHTTPError, + rttMonHTTPStatsError, + rttMonHTTPStatsBusies, + rttMonJitterStatsCompletions, + rttMonJitterStatsOverThresholds, + rttMonJitterStatsNumOfRTT, + rttMonJitterStatsRTTSum, + rttMonJitterStatsRTTSum2Low, + rttMonJitterStatsRTTSum2High, + rttMonJitterStatsRTTMin, + rttMonJitterStatsRTTMax, + rttMonJitterStatsMinOfPositivesSD, + rttMonJitterStatsMaxOfPositivesSD, + rttMonJitterStatsNumOfPositivesSD, + rttMonJitterStatsSumOfPositivesSD, + rttMonJitterStatsSum2PositivesSDLow, + rttMonJitterStatsSum2PositivesSDHigh, + rttMonJitterStatsMinOfNegativesSD, + rttMonJitterStatsMaxOfNegativesSD, + rttMonJitterStatsNumOfNegativesSD, + rttMonJitterStatsSumOfNegativesSD, + rttMonJitterStatsSum2NegativesSDLow, + rttMonJitterStatsSum2NegativesSDHigh, + rttMonJitterStatsMinOfPositivesDS, + rttMonJitterStatsMaxOfPositivesDS, + rttMonJitterStatsNumOfPositivesDS, + rttMonJitterStatsSumOfPositivesDS, + rttMonJitterStatsSum2PositivesDSLow, + rttMonJitterStatsSum2PositivesDSHigh, + rttMonJitterStatsMinOfNegativesDS, + rttMonJitterStatsMaxOfNegativesDS, + rttMonJitterStatsNumOfNegativesDS, + rttMonJitterStatsSumOfNegativesDS, + rttMonJitterStatsSum2NegativesDSLow, + rttMonJitterStatsSum2NegativesDSHigh, + rttMonJitterStatsPacketLossSD, + rttMonJitterStatsPacketLossDS, + rttMonJitterStatsPacketOutOfSequence, + rttMonJitterStatsPacketMIA, + rttMonJitterStatsPacketLateArrival, + rttMonJitterStatsError, + rttMonJitterStatsBusies + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + functionality of the RTT application to store 'HTTP' and + 'Jitter' probes statistics." + ::= { ciscoRttMonMibGroups 8 } + + +ciscoApplGroupRev2 OBJECT-GROUP + OBJECTS { + rttMonApplResponder, + rttMonApplAuthKeyChain, + rttMonApplAuthKeyString1, + rttMonApplAuthKeyString2, + rttMonApplAuthKeyString3, + rttMonApplAuthKeyString4, + rttMonApplAuthKeyString5, + rttMonApplAuthStatus + } + STATUS current + DESCRIPTION + "These objects provide support for configuring responder + on a router and also configure authentication information." + ::= { ciscoRttMonMibGroups 11 } + +ciscoCtrlGroupRev4 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminVrfName + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + functionality of the RTT application." + ::= { ciscoRttMonMibGroups 12 } + + +ciscoStatsGroupRev3 OBJECT-GROUP + OBJECTS { + rttMonLatestJitterOperOWSumSD, + rttMonLatestJitterOperOWSum2SD, + rttMonLatestJitterOperOWMinSD, + rttMonLatestJitterOperOWMaxSD, + rttMonLatestJitterOperOWSumDS, + rttMonLatestJitterOperOWSum2DS, + rttMonLatestJitterOperOWMinDS, + rttMonLatestJitterOperOWMaxDS, + rttMonLatestJitterOperNumOfOW, + rttMonJitterStatsOWSumSD, + rttMonJitterStatsOWSum2SDLow, + rttMonJitterStatsOWSum2SDHigh, + rttMonJitterStatsOWSumDS, + rttMonJitterStatsOWSum2DSLow, + rttMonJitterStatsOWSum2DSHigh, + rttMonJitterStatsNumOfOW, + rttMonJitterStatsOWMinSDNew, + rttMonJitterStatsOWMaxSDNew, + rttMonJitterStatsOWMinDSNew, + rttMonJitterStatsOWMaxDSNew + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + functionality of the RTT application to store one way + 'Jitter' probes statistics." + ::= { ciscoRttMonMibGroups 14 } + + +ciscoCtrlGroupRev6 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminCodecType, + rttMonEchoAdminCodecInterval, + rttMonEchoAdminCodecPayload, + rttMonEchoAdminCodecNumPackets, + rttMonEchoAdminICPIFAdvFactor + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + functionality of the RTT application." + ::= { ciscoRttMonMibGroups 16 } + +ciscoStatsGroupRev4 OBJECT-GROUP + OBJECTS { + rttMonLatestJitterOperMOS, + rttMonLatestJitterOperICPIF, + rttMonJitterStatsMinOfMOS, + rttMonJitterStatsMaxOfMOS, + rttMonJitterStatsMinOfICPIF, + rttMonJitterStatsMaxOfICPIF + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + functionality of the RTT application to store MOS and + ICPIF for 'Jitter' probe statistics." + ::= { ciscoRttMonMibGroups 17 } + + +ciscoApplGroupRev3 OBJECT-GROUP + OBJECTS { + rttMonApplVersion, + rttMonApplMaxPacketDataSize, + rttMonApplTimeOfLastSet, + rttMonApplSupportedRttTypesValid, + rttMonApplSupportedProtocolsValid, + rttMonApplNumCtrlAdminEntry, + rttMonApplReset, + rttMonApplProbeCapacity, + rttMonApplFreeMemLowWaterMark, + rttMonApplLatestSetError + } + STATUS current + DESCRIPTION + "A collection of objects providing the RTT Monitoring + Application defaults. + + This group of information is provided to the agent when + the Application starts." + ::= { ciscoRttMonMibGroups 19 } + +ciscoCtrlGroupRev7 OBJECT-GROUP + OBJECTS { + rttMonScheduleAdminRttRecurring, + rttMonGrpScheduleAdminProbes, + rttMonGrpScheduleAdminPeriod, + rttMonGrpScheduleAdminFrequency, + rttMonGrpScheduleAdminLife, + rttMonGrpScheduleAdminAgeout, + rttMonGrpScheduleAdminStatus + } + STATUS current + DESCRIPTION + "A collection of objects that were added to enhance the + scheduling functionality of the RTT application." + ::= { ciscoRttMonMibGroups 20 } + +ciscoCtrlGroupRev8 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminLSPFECType, + rttMonEchoAdminLSPSelector, + rttMonEchoAdminLSPReplyMode, + rttMonEchoAdminLSPTTL, + rttMonEchoAdminLSPExp, + rttMplsVpnMonCtrlRttType, + rttMplsVpnMonCtrlVrfName, + rttMplsVpnMonCtrlTag, + rttMplsVpnMonCtrlThreshold, + rttMplsVpnMonCtrlTimeout, + rttMplsVpnMonCtrlScanInterval, + rttMplsVpnMonCtrlDelScanFactor, + rttMplsVpnMonCtrlEXP, + rttMplsVpnMonCtrlRequestSize, + rttMplsVpnMonCtrlVerifyData, + rttMplsVpnMonCtrlStorageType, + rttMplsVpnMonCtrlProbeList, + rttMplsVpnMonCtrlStatus, + rttMplsVpnMonTypeInterval, + rttMplsVpnMonTypeNumPackets, + rttMplsVpnMonTypeDestPort, + rttMplsVpnMonTypeSecFreqType, + rttMplsVpnMonTypeSecFreqValue, + rttMplsVpnMonTypeLspSelector, + rttMplsVpnMonTypeLSPReplyMode, + rttMplsVpnMonTypeLSPTTL, + rttMplsVpnMonScheduleRttStartTime, + rttMplsVpnMonSchedulePeriod, + rttMplsVpnMonScheduleFrequency, + rttMplsVpnMonReactConnectionEnable, + rttMplsVpnMonReactTimeoutEnable, + rttMplsVpnMonReactThresholdType, + rttMplsVpnMonReactThresholdCount, + rttMplsVpnMonReactActionType + } + STATUS current + DESCRIPTION + "A collection of objects that were added to support + (1) echo operations support based on MPLS LSP Ping, + (2) pathEcho operations support based on MPLS LSP Ping and + (3) Auto SAA L3 MPLS VPN enhancement." + ::= { ciscoRttMonMibGroups 21 } + +ciscoStatsGroupRev5 OBJECT-GROUP + OBJECTS{ + rttMonJitterStatsIAJOut, + rttMonJitterStatsIAJIn, + rttMonJitterStatsAvgJitter, + rttMonJitterStatsAvgJitterSD, + rttMonJitterStatsAvgJitterDS, + rttMonJitterStatsUnSyncRTs, + rttMonLatestJitterOperIAJIn, + rttMonLatestJitterOperIAJOut, + rttMonLatestJitterOperAvgJitter, + rttMonLatestJitterOperAvgSDJ, + rttMonLatestJitterOperAvgDSJ, + rttMonLatestJitterOperOWAvgSD, + rttMonLatestJitterOperOWAvgDS, + rttMonLatestJitterOperNTPState, + rttMonLatestJitterOperUnSyncRTs + } + STATUS current + DESCRIPTION + "A collection of objects that are added to report + intera-rrival Jitter, average jitter and improve accuracy." + ::= {ciscoRttMonMibGroups 22 } + +ciscoCtrlGroupRev9 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminPrecision, + rttMonEchoAdminProbePakPriority, + rttMonEchoAdminOWNTPSyncTolAbs, + rttMonEchoAdminOWNTPSyncTolPct, + rttMonEchoAdminOWNTPSyncTolType, + rttMonEchoAdminCalledNumber, + rttMonEchoAdminDetectPoint, + rttMonEchoAdminGKRegistration + } + STATUS current + DESCRIPTION + "A collection of objects that are added to enhance the + jitter probe accuracy." + ::= { ciscoRttMonMibGroups 23 } + +ciscoCtrlGroupRev10 OBJECT-GROUP + OBJECTS { + rttMonCtrlAdminOwner, + rttMonCtrlAdminTag, + rttMonCtrlAdminRttType, + rttMonCtrlAdminThreshold, + rttMonCtrlAdminFrequency, + rttMonCtrlAdminTimeout, + rttMonCtrlAdminVerifyData, + rttMonCtrlAdminStatus, + rttMonCtrlAdminNvgen, + rttMonEchoAdminProtocol, + rttMonEchoAdminTargetAddress, + rttMonEchoAdminPktDataRequestSize, + rttMonEchoAdminPktDataResponseSize, + rttMonScheduleAdminRttLife, + rttMonScheduleAdminRttStartTime, + rttMonScheduleAdminConceptRowAgeout, + rttMonStatisticsAdminNumHourGroups, + rttMonStatisticsAdminNumPaths, + rttMonStatisticsAdminNumHops, + rttMonStatisticsAdminNumDistBuckets, + rttMonStatisticsAdminDistInterval, + rttMonHistoryAdminNumLives, + rttMonHistoryAdminNumBuckets, + rttMonHistoryAdminNumSamples, + rttMonHistoryAdminFilter, + rttMonCtrlOperModificationTime, + rttMonCtrlOperDiagText, + rttMonCtrlOperResetTime, + rttMonCtrlOperOctetsInUse, + rttMonCtrlOperConnectionLostOccurred, + rttMonCtrlOperTimeoutOccurred, + rttMonCtrlOperVerifyErrorOccurred, + rttMonCtrlOperOverThresholdOccurred, + rttMonCtrlOperNumRtts, + rttMonCtrlOperRttLife, + rttMonCtrlOperState, + rttMonLatestRttOperCompletionTime, + rttMonLatestRttOperSense, + rttMonLatestRttOperApplSpecificSense, + rttMonLatestRttOperSenseDescription, + rttMonLatestRttOperTime, + rttMonLatestRttOperAddress, + rttMonReactTriggerAdminStatus, + rttMonReactTriggerOperState + } + STATUS current + DESCRIPTION + "A collection of objects providing the Administration, + Operational, Last Statistical values for the RTT + Monitoring Application." + ::= { ciscoRttMonMibGroups 24 } + +ciscoCtrlGroupRev11 OBJECT-GROUP + OBJECTS { + rttMonReactVar, + rttMonReactThresholdType, + rttMonReactActionType, + rttMonReactThresholdRising, + rttMonReactThresholdFalling, + rttMonReactThresholdCountX, + rttMonReactThresholdCountY, + rttMonReactValue, + rttMonReactOccurred, + rttMonReactStatus, + rttMonGrpScheduleAdminFreqMax, + rttMonGrpScheduleAdminFreqMin + } + STATUS current + DESCRIPTION + "A collection of objects that were added + for the reaction configuration of probe." + ::= { ciscoRttMonMibGroups 25 } + +ciscoNotificationGroupRev1 NOTIFICATION-GROUP + NOTIFICATIONS { + rttMonNotification + } + STATUS current + DESCRIPTION + "A collection of notifications." + ::= { ciscoRttMonMibGroups 26 } + +ciscoCtrlGroupRev12 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminSourceVoicePort, + rttMonEchoAdminCallDuration + } + STATUS current + DESCRIPTION + "A collection of objects that were added + for the configuration of rtp operation." + ::= { ciscoRttMonMibGroups 27 } + +ciscoCtrlGroupRev13 OBJECT-GROUP + OBJECTS { + rttMonEchoAdminLSPReplyDscp, + rttMonEchoAdminLSPNullShim, + rttMplsVpnMonCtrlLpd, + rttMplsVpnMonCtrlLpdGrpList, + rttMplsVpnMonCtrlLpdCompTime, + rttMplsVpnMonTypeLSPReplyDscp, + rttMplsVpnMonTypeLpdMaxSessions, + rttMplsVpnMonTypeLpdSessTimeout, + rttMplsVpnMonTypeLpdEchoTimeout, + rttMplsVpnMonTypeLpdEchoInterval, + rttMplsVpnMonTypeLpdEchoNullShim, + rttMplsVpnMonTypeLpdScanPeriod, + rttMplsVpnMonTypeLpdStatHours, + rttMplsVpnMonReactLpdNotifyType, + rttMplsVpnMonReactLpdRetryCount + } + STATUS current + DESCRIPTION + "A collection of objects that were added + for the parameters configuration of mpls based operations." + ::= { ciscoRttMonMibGroups 29 } + +ciscoStatsGroupRev7 OBJECT-GROUP + OBJECTS { + rttMonLpdGrpStatsTargetPE, + rttMonLpdGrpStatsNumOfPass, + rttMonLpdGrpStatsNumOfFail, + rttMonLpdGrpStatsNumOfTimeout, + rttMonLpdGrpStatsAvgRTT, + rttMonLpdGrpStatsMinRTT, + rttMonLpdGrpStatsMaxRTT, + rttMonLpdGrpStatsMinNumPaths, + rttMonLpdGrpStatsMaxNumPaths, + rttMonLpdGrpStatsLPDStartTime, + rttMonLpdGrpStatsLPDFailOccurred, + rttMonLpdGrpStatsLPDFailCause, + rttMonLpdGrpStatsLPDCompTime, + rttMonLpdGrpStatsGroupStatus, + rttMonLpdGrpStatsGroupProbeIndex, + rttMonLpdGrpStatsProbeStatus, + rttMonLpdGrpStatsPathIds, + rttMonLpdGrpStatsResetTime + } + STATUS current + DESCRIPTION + "A collection of objects that are added for + collecting the statistics for LSP Path Discovery Group." + ::= {ciscoRttMonMibGroups 30 } + +ciscoNotificationGroupRev2 NOTIFICATION-GROUP + NOTIFICATIONS { + rttMonLpdDiscoveryNotification, + rttMonLpdGrpStatusNotification + } + STATUS current + DESCRIPTION + "A collection of notifications added for supporting LSP + Path Discovery." + ::= { ciscoRttMonMibGroups 31 } + +ciscoApplGroupRev4 OBJECT-GROUP + OBJECTS { + rttMonApplLpdGrpStatsReset + } + STATUS current + DESCRIPTION + "This object is added to reset the LSP Path Discovery Stats." + ::= { ciscoRttMonMibGroups 32 } + +ciscoCtrlGroupRev14 OBJECT-GROUP + OBJECTS { + rttMonGrpScheduleAdminStartTime, + rttMonGrpScheduleAdminAdd, + rttMonGrpScheduleAdminDelete, + rttMonGrpScheduleAdminReset + } + STATUS current + DESCRIPTION + "This object is added for group scheduler enhancement" + ::= { ciscoRttMonMibGroups 33 } + +END + diff --git a/pandora_console/attachment/mibs/CISCO-RTTMON-TC-MIB.my b/pandora_console/attachment/mibs/CISCO-RTTMON-TC-MIB.my new file mode 100644 index 0000000000..0cb204666f --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-RTTMON-TC-MIB.my @@ -0,0 +1,730 @@ +-- ***************************************************************** +-- CISCO-RTTMON-TC-MIB.my: IP SLA Textual Conventions MIB file +-- +-- August 2005, Katherine Yang +-- +-- Copyright (c) 2005 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** + +CISCO-RTTMON-TC-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY + FROM SNMPv2-SMI + + TEXTUAL-CONVENTION + FROM SNMPv2-TC + + ciscoMgmt + FROM CISCO-SMI; + +ciscoRttMonTCMIB MODULE-IDENTITY + LAST-UPDATED "200508090000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + "Cisco Systems, Inc. + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + + Tel: +1 800 553 NETS + Email: cs-ipsla@cisco.com" + + DESCRIPTION + "This MIB contains textual conventions used by + CISCO-RTTMON-MIB, CISCO-RTTMON-RTP-MIB and + CISCO-RTTMON-ICMP-MIB, but they are not limited + to only these MIBs. + These textual conventions were originally defined in + CISCO-RTTMON-MIB. + + Acronyms: + FEC: Forward Equivalence Class + LPD: Label Path Discovery + LSP: Label Switched Path + MPLS: Multi Protocol Label Switching + RTT: Round Trip Time + SAA: Service Assurance Agent + VPN: Virtual Private Network" + + REVISION "200508090000Z" + DESCRIPTION + "Initial version of this MIB module." + ::= { ciscoMgmt 485 } + + + +-- Textual Conventions +-- + +RttReset ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "When the value set to 'reset', the entire RTT application + goes through a reset sequence, making a best + effort to revert to its startup condition. At other times, + the value is 'ready'." + + SYNTAX INTEGER + { + ready(1), + reset(2) + } + + +RttMonOperation ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The following are specific RTT operations for a + particular probe type: + notApplicable(0) - This object is not applicable for the + probe type. + httpGet(1) - HTTP get request + httpRaw(2) - HTTP request with user defined payload + ftpGet(3) - FTP get request + ftpPassive(4) - FTP passive mode + ftpActive(5) - FTP active mode + voipDTAlertRinging(6) - Voip post dial delay detect point: + Alerting / Ringing + voipDTConnectOK(7) - Voip post dial delay detect point: + Connect /OK" + SYNTAX INTEGER + { + notApplicable(0), + httpGet(1), + httpRaw(2), + ftpGet(3), + ftpPassive(4), + ftpActive(5), + voipDTAlertRinging(6), + voipDTConnectOK(7) + } + +-- +-- Operation completion sense code textual convention +-- +-- + +RttResponseSense ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "These are the defined values for a completion status + of a RTT operation. + + other(0) - the operation is not started or completed + or this object is not applicable for + the probe type. + ok(1) - a valid completion occurred and + timed successfully + disconnected(2) - the operation did not occur because + the connection to the target + was lost + overThreshold(3) - a valid completion was received but + the completion time exceeded a + threshold value + timeout(4) - an operation timed out; no completion + time recorded + busy(5) - the operation did not occur because a + previous operation is still + outstanding + notConnected(6) - the operation did not occur because no + connection (session) exists with the + target + dropped(7) - the operation did not occur due to lack + of internal resource + sequenceError(8) - a completed operation did not contain + the correct sequence id; no completion + time recorded + verifyError(9) - a completed operation was received, but + the data it contained did not match + the expected data; no completion time + recorded + applicationSpecific(10) + - the application generating the operation + had a specific error + dnsServerTimeout(11) + - DNS Server Timeout + tcpConnectTimeout(12) + - TCP Connect Timeout + httpTransactionTimeout(13) + - HTTP Transaction Timeout + dnsQueryError(14) + - DNS Query error (because of unknown address + etc.,) + httpError(15) + - HTTP Response StatusCode is not OK (200), + or permenent redirect(301), temporary redirect + (302) then HTTP error is set. + error(16) + - if there are socket failures or some other + errors not relavant to the actual probe, they + are recorded under this error + mplsLspEchoTxError(17) + - MPLS echo request transmission failure. + mplsLspUnreachable(18) + - MPLS Target FEC not reachable or unsupported + mpls echo reply code. + mplsLspMalformedReq(19) + - MPLS echo request was malformalformed, pointed + out by the reply router. + mplsLspReachButNotFEC(20) + - MPLS echo request processed by the downstream + router but not the target." + SYNTAX INTEGER + { + other(0), + ok(1), + disconnected(2), + overThreshold(3), + timeout(4), + busy(5), + notConnected(6), + dropped(7), + sequenceError(8), + verifyError(9), + applicationSpecific(10), + dnsServerTimeout(11), + tcpConnectTimeout(12), + httpTransactionTimeout(13), + dnsQueryError(14), + httpError(15), + error(16), + mplsLspEchoTxError(17), + mplsLspUnreachable(18), + mplsLspMalformedReq(19), + mplsLspReachButNotFEC(20) + } + +-- +-- Operation type textual convention +-- + +RttMonRttType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Specifies the type of RTT operation to be performed. + + The value 'echo' will cause the RTT application to + perform a timed echo request/response operation directed + at the 'RttMonTargetAddress'. + + The value 'pathEcho' will cause the RTT application + to perform path discovery to the 'RttMonTargetAddress', + then it will perform a timed echo request/response + operation directed at the each hop along the path. + This operation will provide two types of information, + first the path and second the time delay along the path. + + NOTE: The 'pathEcho' time delay operation is a heuristic + measurement because an intermediate hop may forward + the different echo request/response at different + rates. Thus the time delay difference between two + hops along a path may contain very little 'true' + statistical meaning. + + The value 'fileIO' will cause the RTT application to + write, read, or write/read a file to a preconfigured + file server. + + The value 'script' will cause the RTT application to + execute a preconfigured script. + + The value 'udpEcho' will cause the RTT application + to perform a timed udp packet send/receive operation + directed at the 'RttMonTargetAddress'. + + The value 'tcpConnect' will cause the RTT application + to perform a timed tcp connect operation directed at the + 'RttMonTargetAddress'. + + The value 'http' will cause the RTT application + to perform a download of the object specified in the URL. + + The value 'dns' will cause the RTT application + to perform a name lookup of an IP Address or a hostname. + + The value 'jitter' will cause the RTT application + to perform delay variance analysis. + + The value 'dlsw' will cause the RTT application + to perform a keepalive operation to measure the response + time of a DLSw peer. + + The value 'dhcp' will cause the RTT application + to perform an IP Address lease request/teardown operation. + + The value 'voip' will cause the RTT application + to perform call set up operation to measure the response. + + The value 'rtp' will cause the RTT application to perform + delay variance analysis for RTP packet. + + The value 'lspGroup' will cause the RTT application to logically + group Label Switched Paths discovered as part of LSP Path + Discovery to the target and perform an RTT operation end to end + over each path in the Group. The type of operation configured + is determined by rttMplsVpnMonCtrlRttType. + + The value 'icmpjitter' will cause the RTT application + to perform delay variance analysis using ICMP timestamp packets. + + The value of 'lspPing' will cause the RTT application to + perform ping over LSP path. + + The value of 'lspTrace' will cause the RTT application to + perform trace over LSP path." + SYNTAX INTEGER + { + echo(1), + pathEcho(2), + fileIO(3), + script(4), + udpEcho(5), + tcpConnect(6), + http(7), + dns(8), + jitter(9), + dlsw(10), + dhcp(11), + ftp(12), + voip(13), + rtp(14), + lspGroup(15), + icmpjitter(16), + lspPing(17), + lspTrace(18) + } + +-- +-- Operation type for Auto SAA L3 MPLS VPN textual convention +-- +-- + +RttMplsVpnMonRttType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Specifies the type of RTT operation to be performed for + Auto SAA L3 MPLS VPN. + + The value 'jitter' will cause the Auto SAA L3 MPLS VPN to + automatically configure jitter operations. + + The value 'echo' will cause the Auto SAA L3 MPLS VPN to + automatically configure jitter operations. + + The value 'pathEcho' will cause the Auto SAA L3 MPLS VPN to + automatically configure jitter operations." + SYNTAX INTEGER + { + jitter(1), + echo(2), + pathEcho(3) + } + +---- +-- Auto SAA L3 MPLS VPN LSP Path Discovery +-- Failure Cause textual convention +-- + +RttMplsVpnMonLpdFailureSense ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "These are the defined values for the causes of failure in + LSP Path Discovery. + + unknown(1) - The cause of failure for the + LSP Path Discovery cannot be + determined. The discovery for + the target PE may not have + started. + noPath(2) - No paths were found to the + target FEC while doing the + LSP Path Discovery. + allPathsBroken(3) - All paths to the target FEC + are broken. This means an + untagged interface on the LSP + to the target. + allPathsUnexplorable(4) - All paths to the target FEC are + unexplorable. This identifies + a case where there is some + problem in reaching the next + hop while doing Discovery. + allPathsBrokenOrUnexplorable(5) - All paths to the target FEC are + are either broken or + unexplorable. + timeout(6) - The LSP Path Discovery could + not be completed for the + target FEC within the + configured time. + error(7) - Error occurred while + performing LSP Path Discovery. + It might be also due to some + reasons unrelated to LSP Path + Discovery." + SYNTAX INTEGER + { + unknown(1), + noPath(2), + allPathsBroken(3), + allPathsUnexplorable(4), + allPathsBrokenOrUnexplorable(5), + timeout(6), + error(7) + } + +-- +-- textual convention +-- +-- + +RttMplsVpnMonLpdGrpStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "These are the defined values for the status of the LPD Group. + + unknown(1) - This indicates that some/all of the probes which are + part of the LPD group have not completed even + a single operation, so the group status cannot be + identified. + up(2) - This state indicates that all the probes which are + part of the LPD group are up with latest return + code as 'ok'. + partial(3) - This state indicates that some probes are up and + running fine and some are not 'ok'. + down(4) - This state indicates that all the probes to the + target are not running fine. This state indicates + that there is connectivity problem to the target + PE." + SYNTAX INTEGER + { + unknown(1), + up(2), + partial(3), + down(4) + } + + + +RttMonProtocol ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Specifies the protocol to be used to perform the timed + echo request/response. The following protocols are + defined: + + NOTE: All protocols that end in 'Appl' will support + the asymetric request/response (ARR) protocol. + See the DESCRIPTION for ciscoRttMonMIB for a + complete description of the asymetric + request/response protocol. + + notApplicable - no protocol is defined + ipIcmpEcho - uses Echo Request/Reply as defined + in RFC792 for Internet Protocol + networks + ipUdpEchoAppl - uses the UDP based echo server + snaRUEcho - uses the REQECHO and ECHOTEST RU's + to an SSCP over an SNA LU-SSCP + session + snaLU0EchoAppl - uses test RU's sent to the Echo + Server over an SNA LU0-LU0 session + snaLU2EchoAppl - uses test RU's sent to the Echo + Server over an SNA LU2-LU2 session + snaLU62Echo - uses the native appn ping ie. aping + snaLU62EchoAppl - uses test RU's sent to the ARR + Echo Server over an SNA LU6.2-LU6.2 + session + appleTalkEcho - uses Echo Request/Reply as defined + for appleTalk networks + appleTalkEchoAppl - uses the appleTalk based echo + server + decNetEcho - uses Echo Request/Reply as defined + for DECNet networks + decNetEchoAppl - uses the DECnet based echo server + ipxEcho - uses Echo Request/Reply as defined + for Novell IPX networks + ipxEchoAppl - uses the Novel IPX based echo + server + isoClnsEcho - uses Echo Request/Reply as defined + for ISO CLNS networks + isoClnsEchoAppl - uses the ISO CLNS based echo + server + vinesEcho - uses Echo Request/Reply as defined + for VINES networks + vinesEchoAppl - uses the VINES based echo server + xnsEcho - uses Echo Request/Reply as defined + for XNS networks + xnsEchoAppl - uses the XNS based echo server + apolloEcho - uses Echo Request/Reply as defined + for APOLLO networks + apolloEchoAppl - uses the APOLLO based echo + server + netbiosEchoAppl - uses the netbios based echo + server + ipTcpConn - uses the tcp's connect mechanism + httpAppl - uses udp for name resolution, + tcp connect and tcp data transfer + mechanisms for HTTP data download + from a particular HTTP Server + dnsAppl - uses udp for name resolution + jitterAppl - uses udp for packet transfers + dlswAppl - uses tcp for sending keepalives + dhcpAppl - uses udp for sending dhcp requests + ftpAppl - uses tcp for connect & data transfer + mplsLspPingAppl - uses MPLS Echo Request/Response as per + draft-ietf-mpls-lsp-ping-04 ietf + standard + voipAppl - uses Symphony infrastructure to measure + H.323/SIP call set up time + rtpAppl - uses Symphony infrastructure to measure + rtp packets delay variance. + icmpJitterAppl - uses ICMP Timestamp for packet transfer + to measure jitter." + SYNTAX INTEGER + { + notApplicable(1), + ipIcmpEcho(2), + ipUdpEchoAppl(3), + snaRUEcho(4), + snaLU0EchoAppl(5), + snaLU2EchoAppl(6), + snaLU62Echo(7), + snaLU62EchoAppl(8), + appleTalkEcho(9), + appleTalkEchoAppl(10), + decNetEcho(11), + decNetEchoAppl(12), + ipxEcho(13), + ipxEchoAppl(14), + isoClnsEcho(15), + isoClnsEchoAppl(16), + vinesEcho(17), + vinesEchoAppl(18), + xnsEcho(19), + xnsEchoAppl(20), + apolloEcho(21), + apolloEchoAppl(22), + netbiosEchoAppl(23), + ipTcpConn(24), + httpAppl(25), + dnsAppl(26), + jitterAppl(27), + dlswAppl(28), + dhcpAppl(29), + ftpAppl(30), + mplsLspPingAppl(31), + voipAppl(32), + rtpAppl(33), + icmpJitterAppl(34) + } + +RttMonCodecType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Specifies the codec type to be used with the jitter probe. + The following codec types are defined: + + notApplicable - no CodecType is defined + g711ulaw - uses G.711 U Law 64000 bps + g711alaw - uses G.711 A Law 64000 bps + g729a - uses G.729 8000 bps" + SYNTAX INTEGER + { + notApplicable(0), + g711ulaw(1), + g711alaw(2), + g729a(3) + } + +RttMonLSPPingReplyMode ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Specifies the Reply mode for the MPLS LSP Echo request + packets. The following reply modes are supported: + + replyIpv4Udp(1) - an mpls echo request will normally + have reply via IPv4 UDP packets. + replyIpv4UdpRA(2) - reply via IPv4 UDP Router Alert. Used + when IPv4 return path is deemed + unreliable." + SYNTAX INTEGER + { + replyIpv4Udp(1), + replyIpv4UdpRA(2) + } + + +RttMonTargetAddress ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A string which specifies the address of the target for + the RTT operation; a value of RttMonTargetAddress + which corresponds to a 'broadcast' address is disallowed. + + The interpretation of this string depends on the type of + RTT operation selected, as specified by RttMonProtocol; + consequently, this object cannot be created until + RttMonProtocol has been created (or must be in the same + PDU). + + SNA addresses will be provided in ASCII, but will be + converted to EBCDIC + + It is interpreted as follows, for the specified values of + RttMonProtocol: + + ipIcmpEcho, ipUdpEchoAppl, ipTcpConn, jitterAppl, dlswAppl, + dnsAppl, httpAppl, and dhcpAppl + - 4 octets + + snaRUEcho + - N octets, containing the value of the sna + HOSTNAME of which the SSCP LU will be used + for the operation. For many systems this value + can be empty, and the system will use the + implied SSCP LU. For example 'NSPECHO'. + + snaLU0EchoAppl and snaLU2EchoAppl + - N octets, the first x octets are the HOSTNAME + (Alternatively, this could be a PU name defined + to transport to the desired HOST), the second + y octets are the APPLID, and the last z octets + are the MODENAME of the Echo Server (blank + for a MODENAME default). The address will be + encoded with a size byte preceding each of + the x y and z called s. For example sxsysz + as in '0x06CWBC060x07NSPECHO0x00' where + HOSTNAME = CWBC06, APPLID = NSPECHO, and + MODENAME is defaulted to 8 blanks. + NOTE: MODENAME is either size 0 or 8. + + snaLU62Echo and snaLU62EchoAppl + - N octets, the first x octets are the LU-NAME, + the second y octets are the TP-NAME, and the + last z octets are the MODENAME of the Echo + Server. The address will be encoded with a size + byte preceding each of the x y and z called s. + For example sxsysz (zero size before z for a + MODENAME default). The LU-NAME is composed of + 8 bytes '.' 8 bytes. The Transaction Program + name (TP-NAME) is 1-64 bytes. The MODENAME + is 8 bytes. + + appleTalkEcho, appleTalkEchoAppl + + decNetEcho, decNetEchoAppl + + ipxEcho, ipxEchoAppl + + isoClnsEcho, isoClnsEchoAppl + + vinesEcho, vinesEchoAppl + + xnsEcho, xnsEchoAppl + apolloEcho, apolloEchoAppl + + netbiosEchoAppl, voipAppl + - unsupported protocols. + + mplsLspPingAppl + - 8 octets, the first 4 octets are the FEC address + and the next 4 octets are the FEC address mask." + SYNTAX OCTET STRING + + + +RttMonReactVar ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The following are specific Reaction variables for a + particular probe type: + rtt(1) - Round Trip Time + jitterSDAvg(2) - Jitter average from source to Destination + jitterDSAvg(3) - Jitter average from destination to source + packetLossSD(4) - Packet loss from source to destination + packetLossDS(5) - Packet loss from destination to source + mos(6) - Mean Opinion Score + timeout(7) - Timeout of the Operation + connectionLoss(8) - Connection Failed to the destination + verifyError(9) - Data corruption occurs + jitterAvg(10) - Jitter Average in both the directions + icpif(11) - Calculated Planning Impairment Factor + packetMIA(12) - Missing In Action + packetLateArrival(13) - Packets arriving Late + packetOutOfSequence(14) - Packets arriving out of sequence + maxOfPositiveSD(15) - Maximum positive jitter from + Source to Destination + maxOfNegativeSD(16) - Maximum negative jitter from + Source to Destination + maxOfPositiveDS(17) - Maximum positive jitter from + Destination to Source + maxOfNegativeDS(18) - Maximum negative jitter from + Destination to Source. + iaJitterDS(19) - Inter arrival jitter from + Destination to Source + frameLossDS(20) - Number of frame loss recorded + at source DSP + mosLQDS(21) - Listener quality MOS at Source + mosCQDS(22) - Conversational quality MOS at source + rFactorDS(23) - R-Factor value at Destination. + successivePacketLoss(24)- Successive Dropped Packet + maxOfLatencyDS(25) - Maximum Latency from Destination + to Source + maxOfLatencySD(26) - Maximum Latency from Source + to Destination + latencyDSAvg(27) - Latency average from Destination + to Source + latencySDAvg(28) - Latency average from Source + to Destination + packetLoss(29) - Packets loss in both directions + iaJitterSD(30) - Inter arrival jitter from + Source to Destination + mosCQSD(31) - Conversational quality MOS at + Destination + rFactorSD(32) - R-Factor value at Destination." + + SYNTAX INTEGER + { + rtt(1), + jitterSDAvg(2), + jitterDSAvg(3), + packetLossSD(4), + packetLossDS(5), + mos(6), + timeout(7), + connectionLoss(8), + verifyError(9), + jitterAvg(10), + icpif(11), + packetMIA(12), + packetLateArrival(13), + packetOutOfSequence(14), + maxOfPositiveSD(15), + maxOfNegativeSD(16), + maxOfPositiveDS(17), + maxOfNegativeDS(18), + iaJitterDS(19), + frameLossDS(20), + mosLQDS(21), + mosCQDS(22), + rFactorDS(23), + successivePacketLoss(24), + maxOfLatencyDS(25), + maxOfLatencySD(26), + latencyDSAvg(27), + latencySDAvg(28), + packetLoss(29), + iaJitterSD(30), + mosCQSD(31), + rFactorSD(32) + } + +END + + + + + diff --git a/pandora_console/attachment/mibs/CISCO-SMI b/pandora_console/attachment/mibs/CISCO-SMI new file mode 100644 index 0000000000..7ee7f71fb0 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-SMI @@ -0,0 +1,326 @@ +-- ***************************************************************** +-- CISCO-SMI.my: Cisco Enterprise Structure of Management Information +-- +-- April 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-1997 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- + +CISCO-SMI DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-IDENTITY, + enterprises + FROM SNMPv2-SMI; + +cisco MODULE-IDENTITY + LAST-UPDATED "200001110000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 West Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "The Structure of Management Information for the + Cisco enterprise." + REVISION "200001110000Z" + DESCRIPTION + "Added ciscoPolicy, ciscoPolicyAuto, ciscoPIB, and + ciscoPibToMib." + REVISION "9704090000Z" + DESCRIPTION + "Added ciscoPartnerProducts to generate sysObjectID + for partner platforms" + REVISION "9505160000Z" + DESCRIPTION + "New oid assignments for Cisco REPEATER MIB and others." + REVISION "9404262000Z" + DESCRIPTION + "Initial version of this MIB module." + ::= { enterprises 9 } -- assigned by IANA + + +ciscoProducts OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoProducts is the root OBJECT IDENTIFIER from + which sysObjectID values are assigned. Actual + values are defined in CISCO-PRODUCTS-MIB." + ::= { cisco 1 } + +local OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Subtree beneath which pre-10.2 MIBS were built." + ::= { cisco 2 } + +temporary OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Subtree beneath which pre-10.2 experiments were + placed." + ::= { cisco 3 } + +pakmon OBJECT-IDENTITY + STATUS current + DESCRIPTION + "reserved for pakmon" + ::= { cisco 4 } + +workgroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "subtree reserved for use by the Workgroup Business Unit" + ::= { cisco 5 } + +otherEnterprises OBJECT-IDENTITY + STATUS current + DESCRIPTION + "otherEnterprises provides a root object identifier + from which mibs produced by other companies may be + placed. mibs produced by other enterprises are + typicially implemented with the object identifiers + as defined in the mib, but if the mib is deemed to + be uncontrolled, we may reroot the mib at this + subtree in order to have a controlled version." + ::= { cisco 6 } + +ciscoAgentCapability OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoAgentCapability provides a root object identifier + from which AGENT-CAPABILITIES values may be assigned." + ::= { cisco 7 } + +ciscoConfig OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoConfig is the main subtree for configuration mibs." + ::= { cisco 8 } + +ciscoMgmt OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoMgmt is the main subtree for new mib development." + ::= { cisco 9 } + +ciscoExperiment OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoExperiment provides a root object identifier + from which experimental mibs may be temporarily + based. mibs are typicially based here if they + fall in one of two categories + 1) are IETF work-in-process mibs which have not + been assigned a permanent object identifier by + the IANA. + 2) are cisco work-in-process which has not been + assigned a permanent object identifier by the + cisco assigned number authority, typicially because + the mib is not ready for deployment. + + NOTE WELL: support for mibs in the ciscoExperiment + subtree will be deleted when a permanent object + identifier assignment is made." + ::= { cisco 10 } + +ciscoAdmin OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoAdmin is reserved for administratively assigned + OBJECT IDENTIFIERS, i.e. those not associated with MIB + objects" + ::= { cisco 11 } + +ciscoModules OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoModules provides a root object identifier + from which MODULE-IDENTITY values may be assigned." + ::= { cisco 12 } + +lightstream OBJECT-IDENTITY + STATUS current + DESCRIPTION + "subtree reserved for use by Lightstream" + ::= { cisco 13 } + +ciscoworks OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoworks provides a root object identifier beneath + which mibs applicable to the CiscoWorks family of network + management products are defined." + ::= { cisco 14 } + +newport OBJECT-IDENTITY + STATUS current + DESCRIPTION + "subtree reserved for use by the former Newport Systems + Solutions, now a portion of the Access Business Unit." + ::= { cisco 15 } + +ciscoPartnerProducts OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPartnerProducts is the root OBJECT IDENTIFIER from + which partner sysObjectID values may be assigned. Such + sysObjectID values are composed of the ciscoPartnerProducts + prefix, followed by a single identifier that is unique for + each partner, followed by the value of sysObjectID of the + Cisco product from which partner product is derived. Note + that the chassisPartner MIB object defines the value of the + identifier assigned to each partner." + ::= { cisco 16 } + +ciscoPolicy OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPolicy is the root of the Cisco-assigned OID + subtree for use with Policy Management." + ::= { cisco 17 } + +-- Note that 1.3.6.1.4.1.9.17.1 is currently unassigned + +ciscoPIB OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPIB is the root of the Cisco-assigned OID + subtree for assignment to PIB (Policy Information + Base) modules." + ::= { ciscoPolicy 2 } + +ciscoPolicyAuto OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPolicyAuto is the root of the Cisco-assigned + OID subtree for OIDs which are automatically assigned + for use in Policy Management." + ::= { cisco 18 } + +-- Note that 1.3.6.1.4.1.9.18.1 is currently unassigned + +ciscoPibToMib OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPibToMib is the root of the Cisco-assigned + OID subtree for MIBs which are algorithmically + generated/translated from Cisco PIBs with OIDs + assigned under the ciscoPIB subtree. + These generated MIBs allow management + entities (other the current Policy Server) to + read the downloaded policy. By convention, for PIB + 'ciscoPIB.x', the generated MIB shall have the + name 'ciscoPibToMib.x'." + ::= { ciscoPolicyAuto 2 } + +-- ciscoAdmin assignments follow + +ciscoProxy OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoProxy OBJECT IDENTIFIERS are used to uniquely name + party mib records created to proxy for SNMPv1." + ::= { ciscoAdmin 1 } +ciscoPartyProxy OBJECT IDENTIFIER ::= { ciscoProxy 1 } +ciscoContextProxy OBJECT IDENTIFIER ::= { ciscoProxy 2 } + +-- +-- Administrative assignments for repeaters +-- + +ciscoRptrGroupObjectID OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoRptrGroupObjectID OBJECT IDENTIFIERS are used to + uniquely identify groups of repeater ports for use by the + SNMP-REPEATER-MIB (RFC 1516) rptrGroupObjectID object." + ::= { ciscoAdmin 2 } + +ciscoUnknownRptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of an unknown repeater port group." + ::= { ciscoRptrGroupObjectID 1 } + +cisco2505RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the Cisco 2505 repeater + port group." + ::= { ciscoRptrGroupObjectID 2 } + +cisco2507RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the Cisco 2507 repeater + port group." + ::= { ciscoRptrGroupObjectID 3 } + +cisco2516RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the Cisco 2516 repeater + port group." + ::= { ciscoRptrGroupObjectID 4 } + +ciscoWsx5020RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the wsx5020 repeater + port group." + ::= { ciscoRptrGroupObjectID 5 } + +-- +-- Administrative assignments for chip sets +-- + +ciscoChipSets OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Numerous media-specific MIBS have an object, defined as + an OBJECT IDENTIFIER, which is the identity of the chipset + realizing the interface. Cisco-specific chipsets have their + OBJECT IDENTIFIERS assigned under this subtree." + ::= { ciscoAdmin 3 } + +ciscoChipSetSaint1 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 1 SAINT ethernet chipset + manufactured for cisco by LSI Logic." + ::= { ciscoChipSets 1 } + +ciscoChipSetSaint2 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 2 SAINT ethernet chipset + manufactured for cisco by LSI Logic." + ::= { ciscoChipSets 2 } + +ciscoChipSetSaint3 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 3 SAINT ethernet chipset + manufactured for cisco by Plessey." + ::= { ciscoChipSets 3 } + +ciscoChipSetSaint4 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 4 SAINT ethernet chipset + manufactured for cisco by Mitsubishi." + ::= { ciscoChipSets 4 } + +END diff --git a/pandora_console/attachment/mibs/CISCO-SMI.my b/pandora_console/attachment/mibs/CISCO-SMI.my new file mode 100644 index 0000000000..7ee7f71fb0 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-SMI.my @@ -0,0 +1,326 @@ +-- ***************************************************************** +-- CISCO-SMI.my: Cisco Enterprise Structure of Management Information +-- +-- April 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-1997 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- + +CISCO-SMI DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + OBJECT-IDENTITY, + enterprises + FROM SNMPv2-SMI; + +cisco MODULE-IDENTITY + LAST-UPDATED "200001110000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 West Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "The Structure of Management Information for the + Cisco enterprise." + REVISION "200001110000Z" + DESCRIPTION + "Added ciscoPolicy, ciscoPolicyAuto, ciscoPIB, and + ciscoPibToMib." + REVISION "9704090000Z" + DESCRIPTION + "Added ciscoPartnerProducts to generate sysObjectID + for partner platforms" + REVISION "9505160000Z" + DESCRIPTION + "New oid assignments for Cisco REPEATER MIB and others." + REVISION "9404262000Z" + DESCRIPTION + "Initial version of this MIB module." + ::= { enterprises 9 } -- assigned by IANA + + +ciscoProducts OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoProducts is the root OBJECT IDENTIFIER from + which sysObjectID values are assigned. Actual + values are defined in CISCO-PRODUCTS-MIB." + ::= { cisco 1 } + +local OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Subtree beneath which pre-10.2 MIBS were built." + ::= { cisco 2 } + +temporary OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Subtree beneath which pre-10.2 experiments were + placed." + ::= { cisco 3 } + +pakmon OBJECT-IDENTITY + STATUS current + DESCRIPTION + "reserved for pakmon" + ::= { cisco 4 } + +workgroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "subtree reserved for use by the Workgroup Business Unit" + ::= { cisco 5 } + +otherEnterprises OBJECT-IDENTITY + STATUS current + DESCRIPTION + "otherEnterprises provides a root object identifier + from which mibs produced by other companies may be + placed. mibs produced by other enterprises are + typicially implemented with the object identifiers + as defined in the mib, but if the mib is deemed to + be uncontrolled, we may reroot the mib at this + subtree in order to have a controlled version." + ::= { cisco 6 } + +ciscoAgentCapability OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoAgentCapability provides a root object identifier + from which AGENT-CAPABILITIES values may be assigned." + ::= { cisco 7 } + +ciscoConfig OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoConfig is the main subtree for configuration mibs." + ::= { cisco 8 } + +ciscoMgmt OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoMgmt is the main subtree for new mib development." + ::= { cisco 9 } + +ciscoExperiment OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoExperiment provides a root object identifier + from which experimental mibs may be temporarily + based. mibs are typicially based here if they + fall in one of two categories + 1) are IETF work-in-process mibs which have not + been assigned a permanent object identifier by + the IANA. + 2) are cisco work-in-process which has not been + assigned a permanent object identifier by the + cisco assigned number authority, typicially because + the mib is not ready for deployment. + + NOTE WELL: support for mibs in the ciscoExperiment + subtree will be deleted when a permanent object + identifier assignment is made." + ::= { cisco 10 } + +ciscoAdmin OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoAdmin is reserved for administratively assigned + OBJECT IDENTIFIERS, i.e. those not associated with MIB + objects" + ::= { cisco 11 } + +ciscoModules OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoModules provides a root object identifier + from which MODULE-IDENTITY values may be assigned." + ::= { cisco 12 } + +lightstream OBJECT-IDENTITY + STATUS current + DESCRIPTION + "subtree reserved for use by Lightstream" + ::= { cisco 13 } + +ciscoworks OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoworks provides a root object identifier beneath + which mibs applicable to the CiscoWorks family of network + management products are defined." + ::= { cisco 14 } + +newport OBJECT-IDENTITY + STATUS current + DESCRIPTION + "subtree reserved for use by the former Newport Systems + Solutions, now a portion of the Access Business Unit." + ::= { cisco 15 } + +ciscoPartnerProducts OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPartnerProducts is the root OBJECT IDENTIFIER from + which partner sysObjectID values may be assigned. Such + sysObjectID values are composed of the ciscoPartnerProducts + prefix, followed by a single identifier that is unique for + each partner, followed by the value of sysObjectID of the + Cisco product from which partner product is derived. Note + that the chassisPartner MIB object defines the value of the + identifier assigned to each partner." + ::= { cisco 16 } + +ciscoPolicy OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPolicy is the root of the Cisco-assigned OID + subtree for use with Policy Management." + ::= { cisco 17 } + +-- Note that 1.3.6.1.4.1.9.17.1 is currently unassigned + +ciscoPIB OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPIB is the root of the Cisco-assigned OID + subtree for assignment to PIB (Policy Information + Base) modules." + ::= { ciscoPolicy 2 } + +ciscoPolicyAuto OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPolicyAuto is the root of the Cisco-assigned + OID subtree for OIDs which are automatically assigned + for use in Policy Management." + ::= { cisco 18 } + +-- Note that 1.3.6.1.4.1.9.18.1 is currently unassigned + +ciscoPibToMib OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoPibToMib is the root of the Cisco-assigned + OID subtree for MIBs which are algorithmically + generated/translated from Cisco PIBs with OIDs + assigned under the ciscoPIB subtree. + These generated MIBs allow management + entities (other the current Policy Server) to + read the downloaded policy. By convention, for PIB + 'ciscoPIB.x', the generated MIB shall have the + name 'ciscoPibToMib.x'." + ::= { ciscoPolicyAuto 2 } + +-- ciscoAdmin assignments follow + +ciscoProxy OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoProxy OBJECT IDENTIFIERS are used to uniquely name + party mib records created to proxy for SNMPv1." + ::= { ciscoAdmin 1 } +ciscoPartyProxy OBJECT IDENTIFIER ::= { ciscoProxy 1 } +ciscoContextProxy OBJECT IDENTIFIER ::= { ciscoProxy 2 } + +-- +-- Administrative assignments for repeaters +-- + +ciscoRptrGroupObjectID OBJECT-IDENTITY + STATUS current + DESCRIPTION + "ciscoRptrGroupObjectID OBJECT IDENTIFIERS are used to + uniquely identify groups of repeater ports for use by the + SNMP-REPEATER-MIB (RFC 1516) rptrGroupObjectID object." + ::= { ciscoAdmin 2 } + +ciscoUnknownRptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of an unknown repeater port group." + ::= { ciscoRptrGroupObjectID 1 } + +cisco2505RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the Cisco 2505 repeater + port group." + ::= { ciscoRptrGroupObjectID 2 } + +cisco2507RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the Cisco 2507 repeater + port group." + ::= { ciscoRptrGroupObjectID 3 } + +cisco2516RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the Cisco 2516 repeater + port group." + ::= { ciscoRptrGroupObjectID 4 } + +ciscoWsx5020RptrGroup OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The authoritative identity of the wsx5020 repeater + port group." + ::= { ciscoRptrGroupObjectID 5 } + +-- +-- Administrative assignments for chip sets +-- + +ciscoChipSets OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Numerous media-specific MIBS have an object, defined as + an OBJECT IDENTIFIER, which is the identity of the chipset + realizing the interface. Cisco-specific chipsets have their + OBJECT IDENTIFIERS assigned under this subtree." + ::= { ciscoAdmin 3 } + +ciscoChipSetSaint1 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 1 SAINT ethernet chipset + manufactured for cisco by LSI Logic." + ::= { ciscoChipSets 1 } + +ciscoChipSetSaint2 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 2 SAINT ethernet chipset + manufactured for cisco by LSI Logic." + ::= { ciscoChipSets 2 } + +ciscoChipSetSaint3 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 3 SAINT ethernet chipset + manufactured for cisco by Plessey." + ::= { ciscoChipSets 3 } + +ciscoChipSetSaint4 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The identity of the Rev 4 SAINT ethernet chipset + manufactured for cisco by Mitsubishi." + ::= { ciscoChipSets 4 } + +END diff --git a/pandora_console/attachment/mibs/CISCO-STACK-MIB.my b/pandora_console/attachment/mibs/CISCO-STACK-MIB.my new file mode 100644 index 0000000000..63ce9f2e73 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-STACK-MIB.my @@ -0,0 +1,12611 @@ +-- ***************************************************************** +-- CISCO-STACK-MIB.my +-- +-- June 1995, Fei Xu +-- +-- Copyright (c) 1995-2005 by cisco Systems, Inc. +-- All rights reserved. +-- ***************************************************************** +-- +CISCO-STACK-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, IpAddress, TimeTicks, + Counter32, Counter64, Unsigned32, NOTIFICATION-TYPE + FROM SNMPv2-SMI + DisplayString, RowStatus, TruthValue, MacAddress, + TEXTUAL-CONVENTION + FROM SNMPv2-TC + fddimibPORTSMTIndex, fddimibPORTIndex + FROM FDDI-SMT73-MIB + OwnerString, ifName, ifIndex + FROM IF-MIB + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF + workgroup + FROM CISCO-SMI + ringStationMacAddress + FROM TOKEN-RING-RMON-MIB + PhysicalIndex + FROM ENTITY-MIB + VlanIndex + FROM CISCO-VTP-MIB; + +ciscoStackMIB MODULE-IDENTITY + LAST-UPDATED "200703300000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-wbu@cisco.com, + cs-lan-switch-snmp@cisco.com" + + DESCRIPTION + "This MIB provides configuration and runtime status for + chassis, modules, ports, etc. on the Catalyst systems." + + REVISION "200703300000Z" + DESCRIPTION + "Modified chassisSysType to include: + 'mec6524gs8s', 'mec6524gt8s', 'cisco7603s'. + + Updated chassisPs1Type and chassisPs2Type to include: + 'pwr400dc', 'pwr400ac'. + + Updated chassisComponentType for new hardwares: + 'fan6524', 'fanMod6Shs', 'fanMod9Shs', 'fanMod9St', + 'fanMod3Hs'. + + Modified moduleType to include: + 'mec6524gs8s', 'mec6524gt8s', 'me6524msfc2a', + 'wsx670810ge'. + + Updated moduleSubType to include new hardwares: + 'mec6524pfc3c', 'wsf6700dfc3c', 'wsf6700dfc3cxl'. + + Modified VendorIdType to compliance with SNMP v2 + format" + + REVISION "200510280000Z" + DESCRIPTION + "Modified chassisComponentType to include: + 'fanMod4Hs'. + + Modified syslogMessageFacility to include: + 'eou', 'backup', 'eoam', 'webauth'. + + Modified sysErrDisableTimeoutEnable to include: + 'ethernetOam', 'gl2ptEoamThresholdExceed'. + + Updated chassisPs1Type and chassisPs2Type to include: + 'pwr2700dc', 'pwr2700ac4', 'pwr2700dc4', and + 'wscac8700we'. + + Modified moduleType to include: + 'osm4oc3PosMM', 'wsx6196rj21', + 'wssup32ge3b', 'wsSvcIpSec1', + 'wsx6148arj45', 'wsSvcWebVpnk9', + 'ace106500k9', 'ace046500k9', + 'wsSvcAdm1k9', 'wsSvcAgm1k9', + 'wssup3210ge3b', 'osm2choc12T3SI', + 'wsf6700cfc', 'osm8choc3DS0SI'. + + Updated portType to include: + 'e10GBaseEdc1310', 'e10GBaseSW', + 'sslVpn', 'adsm', + 'agsm', 'aces', + 'e10GBaseZR', 'e100BaseEX', + 'e100BaseZX'." + + REVISION "200504270000Z" + DESCRIPTION + "Added support of the following objects: + cisco7604sysID, wsc6504esysID + + Modified sysEnableStpxTrap to include: + 'enabledForInconOnly', 'enabledForRootOnly', + 'enabledForLoopOnly', 'enabledForInconRootOnly', + 'enabledForInconLoopOnly', 'enabledForRootLoopOnly' + + Modified sysErrDisableTimeoutEnable to include: + 'camMonitor', 'gl2ptCdpThresholdExceed', + 'gl2ptStpThresholdExceed', 'gl2ptVtpThresholdExceed', + 'linkRxCrc', 'linkTxCrc', + 'linkInErrors', 'packetBufferError' + + Updated chassisSysType for new hardwares: + cisco7604 and wsc6504e + + Updated chassisPs1Type and chassisPs2Type for new + hardwares: + wscac6000w and pwr2700ac + + Updated chassisComponentType for new hardwares: + wsc6506eFan, wsc6509eFan, wsc6503eFan, wsc6000vtte. + + Updated moduleType for hardware: + osm2oc48OneDptSSDual, osm2oc48OneDptSIDual, + osm2oc48OneDptSLDual, osm4choc12T3MM, + osm4choc12T3SI, osm8choc12T3MM, + osm8choc12T3SI, osm2choc48T3SS, + osm1choc48T3SI, osm2choc48T3SI, + osm4choc3DS0SI, osm1choc12T1SI, + osm12ct3T1, osm24t3e3, + osm2oc12AtmMMPlus, osm2oc12AtmSIPlus, + osm8oc3PosSLPlus, wsx6516aGbic, + wsx6148getx, wsSvcWlan1k9, + wsSvcAon1k9, wsx6148FeSfp, + wsx65822pa + + Updated moduleType for name changed: + wsx61821pa changed to wsx61822pa + + Updated moduleSubType to include new hardwares: + wsf6700dfc3a, wsf6kdfc3bxl, + wsf6kpfc3bxl, wsf6700dfc3bxl, + wsf6700dfc3b, wsf6kdfc3b + + Updated moduleSubType to include new hardwares: + wssvccmm6e1, wssvccmm6t1, + wssvccmm24fxs, wssvccmmact + + Updated portType to include: + e10GBaseWdm1550, e10GBaseLW, + e10GBaseEW, lwa, + aons, e100BaseEmpty, + e100BaseUnknown, e100BaseUnapproved, + e100BaseSX, e100BaseBX10D, + e100BaseBX10U, e1000BaseBX10D, + e1000BaseBX10U, e10GBaseBad + + Updated portType for name changed: + posOc48mm changed to posOc48sms + + Modified ipPermitAccessType, ipPermitDeniedAccess, + ipPermitAccessTypeEnable to include: + http + + Modified syslogMessageFacility to include: + diags + + Modified portCpbInlinePower to include: + static + + Deprecated sysEnableStpxTrap, replaced by + stpxNotificationEnable in + CISCO-STP-EXTENSIONS-MIB.my + + Deprecated radiusServerTable, replaced by + crRadiusServerTable in CISCO-RADIUS-MIB.my + + Added new conformance Groups: + optionalSystemTrapGroup1, + authenticationGroup2, + systemTrapGroup2, + notificationGroup." + + REVISION "200405140000Z" + DESCRIPTION + "Modified sysEnableBridgeTraps to include: + 'enabledForNewRootOnly' and 'enabledForTopoChangeOnly' + + Updated moduleType for new hardwares: + wsx2948ggetx, wsx2948ggetxgbrj and wsx6748sfp + + Updated moduleSubType for the new harware: + wsf6kpfc3b + + Updated moduleSubType2 for the new harware: + wsf6kVpwrGe + + Updated portType to include: + e10GBaseSR, e10GBaseCX4, + e1000BaseUnknown and e10GBaseUnknown, + e10GBaseUnapproved, e1000BaseWdmRxOnly, + e1000BaseDwdm3033,e1000BaseDwdm3112, + e1000BaseDwdm3190,e1000BaseDwdm3268, + e1000BaseDwdm3425,e1000BaseDwdm3504, + e1000BaseDwdm3582,e1000BaseDwdm3661, + e1000BaseDwdm3819,e1000BaseDwdm3898, + e1000BaseDwdm3977,e1000BaseDwdm4056, + e1000BaseDwdm4214,e1000BaseDwdm4294, + e1000BaseDwdm4373,e1000BaseDwdm4453, + e1000BaseDwdm4612,e1000BaseDwdm4692, + e1000BaseDwdm4772,e1000BaseDwdm4851, + e1000BaseDwdm5012,e1000BaseDwdm5092, + e1000BaseDwdm5172,e1000BaseDwdm5252, + e1000BaseDwdm5413,e1000BaseDwdm5494, + e1000BaseDwdm5575,e1000BaseDwdm5655, + e1000BaseDwdm5817,e1000BaseDwdm5898, + e1000BaseDwdm5979,e1000BaseDwdm6061, + e10GBaseWdmRxOnly, e10GBaseDwdm3033, + e10GBaseDwdm3112, e10GBaseDwdm3190 + e10GBaseDwdm3268, e10GBaseDwdm3425, + e10GBaseDwdm3504, e10GBaseDwdm3582, + e10GBaseDwdm3661, e10GBaseDwdm3819, + e10GBaseDwdm3898, e10GBaseDwdm3977, + e10GBaseDwdm4056, e10GBaseDwdm4214, + e10GBaseDwdm4294, e10GBaseDwdm4373, + e10GBaseDwdm4453, e10GBaseDwdm4612, + e10GBaseDwdm4692, e10GBaseDwdm4772, + e10GBaseDwdm4851, e10GBaseDwdm5012, + e10GBaseDwdm5092, e10GBaseDwdm5172, + e10GBaseDwdm5252, e10GBaseDwdm5413, + e10GBaseDwdm5494, e10GBaseDwdm5575, + e10GBaseDwdm5655, e10GBaseDwdm5817, + e10GBaseDwdm5898, e10GBaseDwdm5979 and + e10GBaseDwdm6061 + + Modified portAdminSpeed to include: + 'autoDetect10100' + + Modified syslogMessageFacility to include: + 'dhcpsnooping'." + + REVISION "200401150000Z" + DESCRIPTION + "Updated workgroup for new hardware: + wsc2948ggetxsysID + + Updated chassisSysType for new hardware: + wsc2948ggetx + + Updated chassisPs1Type for new hardware: + w156 + + Updated moduleType for new hardwares: + wsx4148lxmt, wsx4548gbrj45, wsx4548gbrj45v + wsx4248rj21v, wsx4302gb, wsx4248rj45v, wsx6748getx, + wsx670410ge, wsx6724sfp and wsx6148x2rj45 + + Updated moduleSubType2 for new hardwares: + wsf6kmsfc, wsf6kmsfc2, wsf6kmsfc2a, + wsf6kFe48af, wsf6kGe48af and wsf6kFe48x2af, + + Updated moduleType for new hardwares: + e1000BaseUnknown and e10GBaseUnknown. + + Modified syslogMessageFacility to include 'callhome'. + + Modified sysErrDisableTimeoutEnable to include + 'arpInspectionRate' and 'noStaticInlinePwr'. + + Modified Description clause for deprecated objects: + sysIpAddr, sysNetMask, sysBroadcast, sysReset, + sysConsolePrimaryLoginAuthentication, + sysConsolePrimaryEnableAuthentication, + sysTelnetPrimaryLoginAuthentication, + sysTelnetPrimaryEnableAuthentication, + sysPortFastBpduGuard, chassisSerialNumber, + chassisComponentTable, moduleSerialNumber, + moduleHwHiVersion, moduleHwLoVersion, + moduleFwHiVersion, moduleFwLoVersion, + moduleSwHiVersion, moduleSwLoVersion, + portSpantreeFastStart, monitorGrp and + vlanSpantreeEnable. + + Added new conformance Groups: + systemMiscGroup1, + systemTrapGroup1, + optionalSystemMiscGroup6, + optionalChassisGroup1, + portGroup4, + vlanGroup2, + ipPermitGroup2 and + optionalPortGroup1." + + REVISION "200305290000Z" + DESCRIPTION + "Change the ORGANIZATION clause. Deprecated + sysClearMacTime object." + REVISION + "200305050000Z" + DESCRIPTION + "Add support of the following objects: cisco7613sysID, + wsc6509nebasysID. ChassisType: wsc4507, wsc6509NEBA, + wsc65509, cisco7613. chassisPs1Type: pwr950dc, + pwr1900ac, pwr1900dc, wscac3000w, + pwrc451400dcp, wscdc3000w, pwr1400ac. + chassisPs2Type: pwr950dc, pwr1900ac, pwr1900dc, + wscac3000w, wscdc3000w, pwr1400ac. + moduleTable: wsSvcIdsm2, wsSvcFwm1, wsSvcCe1, + wssvcSsl1, osm2oc12PosMMPlus, osm2oc12PosSIPlus, + osm16oc3PosSIPlus, osm1oc48PosSSPlus,osm1oc48PosSIPlus, + osm1oc48PosSLPlus, osm4oc3PosSIPlus, osm8oc3PosSIPlus, + osm4oc12PosSIPlus, wsx6548getx, wssup720, wssup720base. + moduleSubType: wsf6kpfc2a, wsf6kdfca, vsp300dfc, + wsf6kpfc3a, wsf6kdfc3a. moduleSubType2: wsg6489, + wsg6485, wsu4502gb, wssvcidsupg, wssup720. + portType: e100BaseLX. + + Deprecate the following objects: sysIpAddr, sysNetMask, + sysBroadcast, sysTrapReceiverTable, sysReset, + sysClearPortTime, sysClearMacTime, + sysPortFastBpduGuard, chassisComponentTable, + portSpantreeFastStart, vlanTable, portChannelTable. + + Remove the TC MacAddressType, and replaced other uses + by MacAddress." + + REVISION + "200209240000Z" + DESCRIPTION + "Added more HW models." + REVISION + "200106110000Z" + DESCRIPTION + "Added cat6000 new HW chassis & modules." + REVISION + "200104110000Z" + DESCRIPTION + "Added more HW modules; + Added the following MIB objects under systemGrp: + sysMaxRmonMemory + sysMacReductionAdminEnable + sysMacReductionOperEnable + Added the following MIB object under fileCopyGrp: + fileCopyRuntimeConfigPart + Added the following MIB object under filterPortTable: + filterPortSuppressionOption + Added the following MIB object under syslogGrp: + syslogTelnetEnable" + + REVISION + "200010100000Z" + DESCRIPTION + "Added more HW modules; + Added the following objects in systemGrp + sshPublicKeySize + Added the vlanTrunkMappingTable in vlanGrp + Added portJumboFrameGrp + Added the following objects in portCpbTable: + portCpbCosRewrite + portCpbTosRewrite + portCpbCopsGrouping + Added copyTechReportFromRuntimeToHost in fileCopyAction + Added ssh(2) in ipPermitAccessType & + ipPermitDeniedAccess." + + REVISION + "200005160000Z" + DESCRIPTION + "Added more HW models; + Added the following objects: + portInlinePowerDetect + vlanPortAuxiliaryVlan + portCpbInlinePower + portCpbAuxiliaryVlan + moduleAdditionalStatus + sysExtendedRmonNetflowModuleMask + Added the voiceGrp + Added the switchAccelerationGrp" + + REVISION + "200002020000Z" + DESCRIPTION + "Added the following objects: + sysPortFastBpduGuard + sysErrDisableTimeoutEnable + sysErrDisableTimeoutInterval + sysTrafficMonitorHighWaterMark + chassisPs3Type + chassisPs3Status + chassisPs3TestResult + chassisPEMInstalled + moduleEntPhysicalIndex + portAdditionalOperStatus + portEntPhysicalIndex + filterPortBroadcastThresholdFraction + mcastEnableRgmp + portCpbSpan. + modified ipPermitGrp for supporting IP Permit + Enhancement. Added more HW models." + + REVISION + "9909300000Z" + DESCRIPTION + "Added more HW models." + + REVISION + "9903260000Z" + DESCRIPTION + "Added traceRouteGrp." + + REVISION + "9902120000Z" + DESCRIPTION + "Initial v2 version of this MIB module." + ::= { workgroup 1 } + +adapterCard OBJECT IDENTIFIER ::= { workgroup 2 } +wsc1000sysID OBJECT IDENTIFIER ::= { workgroup 3 } +wsc1100sysID OBJECT IDENTIFIER ::= { workgroup 4 } +wsc1200sysID OBJECT IDENTIFIER ::= { workgroup 5 } +wsc1400sysID OBJECT IDENTIFIER ::= { workgroup 6 } +wsc5000sysID OBJECT IDENTIFIER ::= { workgroup 7 } +wsc1600sysID OBJECT IDENTIFIER ::= { workgroup 8 } +cpw1600sysID OBJECT IDENTIFIER ::= { workgroup 9 } +wsc3000sysID OBJECT IDENTIFIER ::= { workgroup 10 } +-- rhino OBJECT IDENTIFIER ::= { workgroup 11 } +wsc2900sysID OBJECT IDENTIFIER ::= { workgroup 12 } +cpw2200sysID OBJECT IDENTIFIER ::= { workgroup 13 } +esStack OBJECT IDENTIFIER ::= { workgroup 14 } +wsc3200sysID OBJECT IDENTIFIER ::= { workgroup 15 } +cpw1900sysID OBJECT IDENTIFIER ::= { workgroup 16 } +wsc5500sysID OBJECT IDENTIFIER ::= { workgroup 17 } +wsc1900sysID OBJECT IDENTIFIER ::= { workgroup 18 } +cpw1220sysID OBJECT IDENTIFIER ::= { workgroup 19 } +wsc2820sysID OBJECT IDENTIFIER ::= { workgroup 20 } +cpw1420sysID OBJECT IDENTIFIER ::= { workgroup 21 } +dcd OBJECT IDENTIFIER ::= { workgroup 22 } +wsc3100sysID OBJECT IDENTIFIER ::= { workgroup 23 } +cpw1800sysID OBJECT IDENTIFIER ::= { workgroup 24 } +cpw1601sysID OBJECT IDENTIFIER ::= { workgroup 25 } +wsc3001sysID OBJECT IDENTIFIER ::= { workgroup 26 } +cpw1220csysID OBJECT IDENTIFIER ::= { workgroup 27 } +wsc1900csysID OBJECT IDENTIFIER ::= { workgroup 28 } +wsc5002sysID OBJECT IDENTIFIER ::= { workgroup 29 } +cpw1220isysID OBJECT IDENTIFIER ::= { workgroup 30 } +wsc1900isysID OBJECT IDENTIFIER ::= { workgroup 31 } +tsStack OBJECT IDENTIFIER ::= { workgroup 32 } +wsc3900sysID OBJECT IDENTIFIER ::= { workgroup 33 } +wsc5505sysID OBJECT IDENTIFIER ::= { workgroup 34 } +wsc2926sysID OBJECT IDENTIFIER ::= { workgroup 35 } +wsc5509sysID OBJECT IDENTIFIER ::= { workgroup 36 } +wsc3920sysID OBJECT IDENTIFIER ::= { workgroup 37 } +wsc6006sysID OBJECT IDENTIFIER ::= { workgroup 38 } +wsc6009sysID OBJECT IDENTIFIER ::= { workgroup 39 } +wsc4003sysID OBJECT IDENTIFIER ::= { workgroup 40 } +wsc4912gsysID OBJECT IDENTIFIER ::= { workgroup 41 } +wsc2948gsysID OBJECT IDENTIFIER ::= { workgroup 42 } +wsc6509sysID OBJECT IDENTIFIER ::= { workgroup 44 } +wsc6506sysID OBJECT IDENTIFIER ::= { workgroup 45 } +wsc4006sysID OBJECT IDENTIFIER ::= { workgroup 46 } +wsc6509nebsysID OBJECT IDENTIFIER ::= { workgroup 47 } +wsc6knamsysID OBJECT IDENTIFIER ::= { workgroup 48 } +wsc2980gsysID OBJECT IDENTIFIER ::= { workgroup 49 } +wsc6513sysID OBJECT IDENTIFIER ::= { workgroup 50 } +wsc2980gasysID OBJECT IDENTIFIER ::= { workgroup 51 } +cisco7603sysID OBJECT IDENTIFIER ::= { workgroup 53 } +cisco7606sysID OBJECT IDENTIFIER ::= { workgroup 54 } +cisco7609sysID OBJECT IDENTIFIER ::= { workgroup 55 } +wsc6503sysID OBJECT IDENTIFIER ::= { workgroup 56 } +wsc4503sysID OBJECT IDENTIFIER ::= { workgroup 58 } +wsc4506sysID OBJECT IDENTIFIER ::= { workgroup 59 } +cisco7613sysID OBJECT IDENTIFIER ::= { workgroup 60 } +wsc6509nebasysID OBJECT IDENTIFIER ::= { workgroup 61 } +wsc2948ggetxsysID OBJECT IDENTIFIER ::= { workgroup 62 } +cisco7604sysID OBJECT IDENTIFIER ::= { workgroup 63 } +wsc6504esysID OBJECT IDENTIFIER ::= { workgroup 64 } +wsc1900LiteFxsysID OBJECT IDENTIFIER ::= { workgroup 175 } + +-- stackMIBobjects +systemGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 1 } +chassisGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 2 } +moduleGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 3 } +portGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 4 } +tftpGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 5 } +brouterGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 6 } +filterGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 7 } +monitorGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 8 } +vlanGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 9 } +securityGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 10 } +tokenRingGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 11 } +multicastGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 12 } +dnsGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 13 } +syslogGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 14 } +ntpGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 15 } +tacacsGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 16 } +ipPermitListGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 17 } +portChannelGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 18 } +portCpbGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 19 } +portTopNGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 20 } +mdgGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 21 } +radiusGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 22 } +traceRouteGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 24 } +fileCopyGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 25 } +voiceGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 26 } +portJumboFrameGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 27 } +switchAccelerationGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 28 } +configGrp OBJECT IDENTIFIER ::= { ciscoStackMIB 29 } + +-- textual conventions + +-- The vendor ID portion of a MacAddress (first 3 octets +-- of the 6-octet MAC address) +VendorIdType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "Vendor ID Type" + SYNTAX OCTET STRING (SIZE (3)) + +-- the system group + +-- Implementation of the system group is current for all Cisco Workgroup +-- Stack products. + +sysMgmtType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + snmpV1(2), -- Simple Network Management Protocol + smux(3), -- SNMP MUX sub-agent + snmpV2V1(4), -- Bi-lingual SNMP, Ver 2 and 1 + snmpV2cV1(5),-- Bi-lingual SNMP, V2c and V1 + snmpV3V2cV1(6) -- SNMPv3, SNMPv2c and SNMPv1 + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Type of network management running on this + entity." + ::= { systemGrp 1 } + +sysIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "This entity's IP address. + + This object is deprecated and replaced by + ciiIPAddressType and ciiIPAddress in + CISCO-IP-IF-MIB." + ::= { systemGrp 2 } + +sysNetMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "This entity's subnet mask. + + This object is deprecated and replaced by + ciiIPAddressPrefixLength in CISCO-IP-IF-MIB." + ::= { systemGrp 3 } + +sysBroadcast OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "This entity's broadcast address. + + This object is deprecated and replaced by + ciiIPAddressBroadcast in CISCO-IP-IF-MIB." + ::= { systemGrp 4 } + +-- the trap receiver table + +sysTrapReceiverTable OBJECT-TYPE + SYNTAX SEQUENCE OF SysTrapReceiverEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "The trap receiver table (0 to 20 entries). This + table lists the addresses of Network Management + Stations that should receive trap messages from + this entity when an exception condition occurs. + + This table is deprecated and replaced by + trapDestTable and other tables in SNMP-TARGET- + MIB and SNMP-NOTIFICATION-MIB." + ::= { systemGrp 5 } + +sysTrapReceiverEntry OBJECT-TYPE + SYNTAX SysTrapReceiverEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "A trap receiver table entry." + INDEX { sysTrapReceiverAddr } + ::= { sysTrapReceiverTable 1 } + +SysTrapReceiverEntry ::= + SEQUENCE { + sysTrapReceiverType + INTEGER, + sysTrapReceiverAddr + IpAddress, + sysTrapReceiverComm + DisplayString + } + +sysTrapReceiverType OBJECT-TYPE + SYNTAX INTEGER { + valid(1), -- add this entry + invalid(2) -- remove this entry + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Setting this object to invalid(2) removes the + corresponding entry from the sysTrapReceiverTable. + To add a new entry to the sysTrapReceiverTable, + set this object to valid(1) for an IpAddress which + is not already in the table." + ::= { sysTrapReceiverEntry 1 } + +sysTrapReceiverAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "IP address for trap receiver." + ::= { sysTrapReceiverEntry 2 } + +sysTrapReceiverComm OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Community string used for trap messages to this + trap receiver." + ::= { sysTrapReceiverEntry 3 } + +-- the community table + +-- This table is deprecated and replaced by the sysCommunityRo, +-- sysCommunityRw, and sysCommunityRwa objects. New workgroup products +-- will not support this table. Older products will continue to support +-- this table for some time in order to be backwards compatible with +-- existing network management applications. When this table does exist, +-- sysCommunityString.2 is the same value as sysCommunityRo, +-- sysCommunityString.3 is the same value as sysCommunityRw, and +-- sysCommunityString.4 is the same as sysCommunityRwa. + +sysCommunityTable OBJECT-TYPE + SYNTAX SEQUENCE OF SysCommunityEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "The community table (4 entries). This table lists + community strings and their access levels. When an + SNMP message is received by this entity, the + community string in the message is compared with + this table to determine access rights of the + sender. + + Note that this item is only accessible when using + the community string defined in sysCommunityRwa." + ::= { systemGrp 6 } + +sysCommunityEntry OBJECT-TYPE + SYNTAX SysCommunityEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "A community table entry." + INDEX { sysCommunityAccess } + ::= { sysCommunityTable 1 } + +SysCommunityEntry ::= + SEQUENCE { + sysCommunityAccess + INTEGER, + sysCommunityString + DisplayString + } + +sysCommunityAccess OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + readOnly(2), -- read but not write all + -- but restricted items + readWrite(3), -- read and write all but + -- restricted items + readWriteAll(4) -- read and write all + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "A value of readWriteAll(4) allows the community + to read and write all objects in the MIB. A + value of readWrite(3) allows the community to + read and write all objects except restricted + items such as community strings, which cannot + be accessed at all. A value of readOnly(2) allows + the community to read all objects except + restricted items. A value of other(1) allows no + access." + ::= { sysCommunityEntry 1 } + +sysCommunityString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Configurable community string with access rights + defined by the value of sysCommunityAccess." + ::= { sysCommunityEntry 2 } + +-- additional system group objects + +sysAttachType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + dualAttach(2), -- port 1 is A and port 2 is B + singleAttach(3),-- port 1 is S and port 2 is M + nullAttach(4), -- port 1 is M and port 2 is M + dualPrio(5) -- dual attach priority mode + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The requested concentrator attachment type. For a + dual attachment concentrator which can be + connected to the trunk ring, the first FDDI port + is configured as A and the second FDDI port is + configured as B. + For a single attachment concentrator which can be + connected beneath another concentrator, the first + FDDI port is configured as M and the second FDDI + port is configured as S. For a null attachment + concentrator which can be located at the root of + the tree, the first two FDDI ports are configured + as M. + This object does not take effect until the + concentrator is reset. The current attachment + type can be determined from snmpFddiPORTPCType + for ports 1 and 2." + DEFVAL { dualAttach } + ::= { systemGrp 7 } + +sysTraffic OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Traffic meter value, i.e. the percentage of + bandwidth utilization for the previous polling + interval." + ::= { systemGrp 8 } + +sysReset OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + reset(2), -- resetting the system + resetMinDown(3) -- reset in minimal down time + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Writing reset(2) to this object resets the + control logic of all modules in the system. + Writing resetMinDown(3) to this object resets the + system with the minimal system down time. The + resetMinDown(3) is only supported in systems with + redundant supervisors. + + This object is deprecated and replaced by + csyScheduledReset in CISCO-SYSTEM-MIB." + ::= { systemGrp 9 } + +sysBaudRate OBJECT-TYPE + SYNTAX INTEGER { + b600(600), + b1200(1200), + b2400(2400), + b4800(4800), + b9600(9600), + b19200(19200), + b38400(38400) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The baud rate in bits per second of the RS-232 + port." + DEFVAL { b9600 } + ::= { systemGrp 10 } + +sysInsertMode OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + standard(2), -- standard insertion + scheduled(3), -- scheduled insertion + graceful(4) -- graceful insertion + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The mode for inserting M-ports into the + concentrator ring." + ::= { systemGrp 11 } + +sysClearMacTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The time (in hundredths of a second) since mac + counters were last cleared. Writing a 0 to this + object causes the mac counters to be cleared." + ::= { systemGrp 12 } + +sysClearPortTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The time (in hundredths of a second) since port + counters were last cleared. Writing a 0 to this + object causes the port counters to be cleared." + ::= { systemGrp 13 } + +-- the FDDI ring map table + +sysFddiRingTable OBJECT-TYPE + SYNTAX SEQUENCE OF SysFddiRingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The fddi ring map table. This table lists the + nodes in the FDDI ring(s) to which the system + belongs." + ::= { systemGrp 14 } + +sysFddiRingEntry OBJECT-TYPE + SYNTAX SysFddiRingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A FDDI Ring table entry." + INDEX { sysFddiRingSMTIndex, sysFddiRingAddress } + ::= { sysFddiRingTable 1 } + +SysFddiRingEntry ::= + SEQUENCE { + sysFddiRingSMTIndex + INTEGER, + sysFddiRingAddress + MacAddress, + sysFddiRingNext + MacAddress + } + +sysFddiRingSMTIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The value of the SMT index associated with this + ring." + ::= { sysFddiRingEntry 1 } + +sysFddiRingAddress OBJECT-TYPE + SYNTAX MacAddress -- OCTET STRING (SIZE (6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The MAC address of this node in the FDDI ring." + ::= { sysFddiRingEntry 2 } + +sysFddiRingNext OBJECT-TYPE + SYNTAX MacAddress -- OCTET STRING (SIZE (6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The MAC address of the next node in the FDDI + ring." + ::= { sysFddiRingEntry 3 } + +-- additional system group objects + +sysEnableModem OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the RS-232 port modem control + lines are enabled." + DEFVAL { disabled } + ::= { systemGrp 15 } + +sysEnableRedirects OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether ICMP redirect messages are sent + or received by the system." + DEFVAL { enabled } + ::= { systemGrp 16 } + +sysEnableRmon OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the SNMP agent supports the + RMON MIB." + DEFVAL { enabled } + ::= { systemGrp 17 } + +sysArpAgingTime OBJECT-TYPE + SYNTAX INTEGER (0..1000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The aging time for the ARP table." + DEFVAL { 1200 } + ::= { systemGrp 18 } + +sysTrafficPeak OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Peak traffic meter value since the last time port + counters were cleared or the system started (see + sysClearPortTime)." + ::= { systemGrp 19 } + +sysTrafficPeakTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The time (in hundredths of a second) since the + peak traffic meter value occurred." + ::= { systemGrp 20 } + +sysCommunityRwa OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, + the community string in the message is compared + with this string first. If it matches, read-write + access is granted to all items in the MIB. If it + doesn't match, the sysCommunityRw string is + compared next. + + Note that this item is only accessible when using + the community string defined in sysCommunityRwa." + ::= { systemGrp 21 } + +sysCommunityRw OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, + the community string in the message is compared + with this string second. If it matches, read-write + access is granted to all items in the MIB except + restricted items such as community strings. + (Restricted items appear empty when read and + return a no such name error when an attempt is + made to write them.) If it doesn't match, the + sysCommunityRo string is compared next. + + Note that this item is only accessible when using + the community string defined in sysCommunityRwa." + ::= { systemGrp 22 } + +sysCommunityRo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, + the community string in the message is compared + with this string third. If it matches, read-only + access is granted to all items in the MIB except + restricted items such as community strings. + (Restricted items appear empty when read.) If it + doesn't match, no access is granted, no response + is sent back to the SNMP requester, and an SNMP + is sent to the SNMP trap receivers if configured. + + Note that this item is only accessible when using + the community string defined in sysCommunityRwa." + ::= { systemGrp 23 } + +sysEnableChassisTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether chassisAlarmOn and + chassisAlarmOff traps in this MIB should be + generated." + DEFVAL { disabled } + ::= { systemGrp 24 } + +sysEnableModuleTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether moduleUp and moduleDown traps + in this MIB should be generated." + DEFVAL { disabled } + ::= { systemGrp 25 } + +sysEnableBridgeTraps OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForNewRootOnly(3), -- read-only + enabledForTopoChangeOnly(4) -- read-only + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether newRoot and topologyChange + traps in the BRIDGE-MIB (RFC 1493) should be + generated. + + enabled -- both newRoot and topologyChange + traps are enabled. + + disabled -- both of the newRoot and + topologyChange traps are disabled. + + enabledForNewRootOnly -- only the newRoot trap is + enabled. This value is read-only. + + enabledForTopoChangeOnly -- only the + topologyChange trap is enabled. This + value is read-only. + + This object is deprecated and replaced by + stpxNotificationEnable in + CISCO-STP-EXTENSIONS-MIB." + DEFVAL { disabled } + ::= { systemGrp 26 } + +sysIpVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This entity's IP address Virtual LAN + association." + DEFVAL { 1 } + ::= { systemGrp 27 } + +sysConfigChangeTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The time (in hundredths of a second) since the + configuration of the system was last changed." + ::= { systemGrp 28 } + +sysEnableRepeaterTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the traps in the REPEATER-MIB + (RFC1516) should be generated." + DEFVAL { disabled } + ::= { systemGrp 29 } + +sysBannerMotd OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Message of the day banner which is displayed on + the Command Line Interface before log in." + ::= { systemGrp 30 } + +sysEnableIpPermitTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the IP permit traps in this MIB + should be generated." + DEFVAL { disabled } + ::= { systemGrp 31 } + +-- the system traffic meter table + +sysTrafficMeterTable OBJECT-TYPE + SYNTAX SEQUENCE OF SysTrafficMeterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The system traffic meter table. This table + lists the traffic meters available in the + system." + ::= { systemGrp 32 } + +sysTrafficMeterEntry OBJECT-TYPE + SYNTAX SysTrafficMeterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A traffic meter table entry." + INDEX { sysTrafficMeterType} + ::= { sysTrafficMeterTable 1 } + +SysTrafficMeterEntry ::= + SEQUENCE { + sysTrafficMeterType + INTEGER, + sysTrafficMeter + INTEGER, + sysTrafficMeterPeak + INTEGER, + sysTrafficMeterPeakTime + TimeTicks + } + +sysTrafficMeterType OBJECT-TYPE + SYNTAX INTEGER { + systemSwitchingBus(1), -- system switching bus + -- for WS-X5530 supervisor module + switchingBusA(2), -- switching bus A + switchingBusB(3), -- switching bus B + switchingBusC(4) -- switching bus C + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The type of traffic meter." + ::= { sysTrafficMeterEntry 1 } + +sysTrafficMeter OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Traffic meter value, i.e. the percentage of + bandwidth utilization for the previous polling + interval." + ::= { sysTrafficMeterEntry 2 } + +sysTrafficMeterPeak OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Peak traffic meter value since the system + started." + ::= { sysTrafficMeterEntry 3 } + +sysTrafficMeterPeakTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The time (in hundredths of a second) since the + peak traffic meter value occurred." + ::= { sysTrafficMeterEntry 4 } + +sysEnableVmpsTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the vmVmpsChange trap defined + in CISCO-VLAN-MEMBERSHIP-MIB should be generated." + DEFVAL { disabled } + ::= { systemGrp 33} + +sysConfigChangeInfo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates which NVRAM block is changed by whom." + ::= { systemGrp 34 } + +sysEnableConfigTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether sysConfigChange trap in this + MIB should be generated." + DEFVAL { disabled } + ::= { systemGrp 35 } + +sysConfigRegister OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (2)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The value of configuration register that will be + used by the supervisor module when the system is + restarted. + This MIB object is only supported in systems with + supervisor modules having ROMMON support. + + The lowest four bits of the configuration register + (bits 3,2,1, and 0) form the boot field and the + boot field determines whether the system boots + from as the following: + 0000 -- stay in ROM monitor + 0001 -- boot from the first bootable system + images on the bootflash + 0010 to 1111 + -- boot from the first bootable system + images specified in the sysBootVariable + + The bit 5(0x0020) indicates whether the + configuration file specified in + sysStartupConfigSourceFile will beused recurringly + or not whenever the system resets. If this bit is + not set, the configuration file(s) specified in + sysStartupConfigSourceFile will only be used once + and the value of sysStartupConfigSourceFile will + be reset to empty string automatically during the + next system reset. + + If the bit 6(0x0040) is set, the system will start + with default configuration. + + The bits 11,12 (0x0800, 0x1000) are used to + specify the console line speed in ROM monitor mode + as the following: + 00 -- 9600 + 01 -- 1200 + 10 -- 4800 + 11 -- 2400 + + The unspecified bits are not used." + DEFVAL { '010f'h } -- "01 0F" + ::= { systemGrp 36 } + +sysBootVariable OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A list of the system boot images in the BOOT + environment variable on supervisor modules with + ROMMON. The format of sysBootVariable should be: + :[],1;{:[],1;...} + If the [fileName] is not specified, the first file + on the will be used. + + This MIB object is only supported in systems + having supervisor modules with ROMMON." +-- DEFVAL { "bootflash:" } + ::= { systemGrp 37 } + +sysBootedImage OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The name of the system boot image which the + system booted from. + This MIB object is only supported in the system + with Supervisor module 3 present." + ::= { systemGrp 38 } + +sysEnableEntityTrap OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether entConfigChange trap in the + ENTITY-MIB should be generated." + DEFVAL { disabled } + ::= { systemGrp 39 } + +sysEnableStpxTrap OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForInconOnly(3), -- read-only + enabledForRootOnly(4), -- read-only + enabledForLoopOnly(5), -- read-only + enabledForInconRootOnly(6), -- read-only + enabledForInconLoopOnly(7), -- read-only + enabledForRootLoopOnly(8) -- read-only + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether stpxInconsistencyUpdate, + stpxRootInconsistencyUpdate and + stpxLoopInconsistencyUpdate notifications in + CISCO-STP-EXTENSIONS-MIB should be generated. + + enabled -- the stpxInconsistencyUpdate, + stpxRootInconsistencyUpdate and + stpxLoopInconsistencyUpdate traps are + all enabled. + + disabled -- the stpxInconsistencyUpdate, + stpxRootInconsistencyUpdate and + stpxLoopInconsistencyUpdate traps + are all disabled. + + enabledForInconOnly -- only the + stpxInconsistencyUpdate trap is + enabled. This value is read-only. + + enabledForRootOnly -- only the + stpxRootInconsistencyUpdate trap is + enabled. This value is read-only. + + enabledForLoopOnly -- only the + stpxLoopInconsistencyUpdate trap is + enabled. This value is read-only. + + enabledForInconRootOnly -- only the + stpxInconsistencyUpdate and + stpxRootInconsistencyUpdate traps are + enabled. This value is read-only. + + enabledForInconLoopOnly -- only the + stpxInconsistencyUpdate and + stpxLoopInconsistencyUpdate traps are + enabled. This value is read-only. + + enabledForRootLoopOnly -- only the + stpxRootInconsistencyUpdate and + stpxLoopInconsistencyUpdate traps are + enabled. This value is read-only. + + This object is deprecated and replaced by + stpxNotificationEnable in + CISCO-STP-EXTENSIONS-MIB." + DEFVAL { disabled } + ::= { systemGrp 40 } + +sysExtendedRmonVlanModeEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the Extended RMON VlanMode + feature is enabled or not. If it is set to + enabled(1), hostTable (rmon 4) will provide the + information of a list of VLANs instead of a list + of MAC addresses for a monitored trunking port." + DEFVAL { disabled } + ::= { systemGrp 41 } + +sysExtendedRmonNetflowPassword OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The password for enabling the Extended RMON + Netflow feature and this object has to be set + before setting sysExtendedRmonNetflowEnable to + enabled(1). When reading this object, it will + return empty string. + + If the platform supports + sysExtendedRmonNetflowModuleMask object, this + object will be not be supported." + ::= { systemGrp 42 } + +sysExtendedRmonNetflowEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the Extended RMON Netflow + feature is enabled or not. Setting this object to + disabled(2), will clear + sysExtendedRmonNetflowPassword automatically. + Setting this object to enabled(1) will be rejected + if sysExtendedRmonNetflowPassword does not contain + a valid password. + + If the platform supports + sysExtendedRmonNetflowModuleMask object, this + object will not be supported." + DEFVAL { disabled } + ::= { systemGrp 43 } + +sysExtendedRmonVlanAgentEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the Extended RMON VlanAgent + feature is enabled or not. If it is set to + enabled(1), the extended RMON will also provide + the information on VLAN based interface in + addition to the port based interface for the + monitored traffic. + Setting this object to enabled(1), it will consume + more CPU for processing each monitored frame and + affect Extended RMON performance." + DEFVAL { disabled } + ::= { systemGrp 44 } + +sysExtendedRmonEnable OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + noNAMPresent(3) -- No Network Analysis Module + -- present + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the SNMP agent supports the + extended RMON feature. noNAMPresent(3) is a + read-only value and the agent will return this + value when the sysEnableExtendedRmon is set to + enabled(1), but Network Analysis module is not + present in the system." + DEFVAL { enabled } + ::= { systemGrp 45 } + +sysConsolePrimaryLoginAuthentication OBJECT-TYPE + SYNTAX INTEGER{ tacacs(1), + radius(2), + local(3) -- read-only + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether TACACS+ or RADIUS is the + primary login authentication, i.e which method + will be tried first for a console session. If + tacacsLoginAuthentication and + radiusLoginAuthentication are set to disabled + then sysConsolePrimaryLoginAuthentication will + have a value of local(3). + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + ::= { systemGrp 46 } + +sysConsolePrimaryEnableAuthentication OBJECT-TYPE + SYNTAX INTEGER{ tacacs(1), + radius(2), + local(3) -- read-only + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether TACACS+ or RADIUS is the + primary enable authentication, i.e which method + will be tried first for a console session. If + tacacsEnableAuthentication and + radiusEnableAuthentication are set to disabled + then sysConsolePrimaryEnableAuthentication will + have a value of local(3). + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + ::= { systemGrp 47 } + +sysTelnetPrimaryLoginAuthentication OBJECT-TYPE + SYNTAX INTEGER{ tacacs(1), + radius(2), + local(3) -- read-only + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether TACACS+ or RADIUS is the + primary login authentication, i.e which method + will be tried first for a telnet session. If + tacacsLoginAuthentication and + radiusLoginAuthentication are set to disabled then + sysTelnetPrimaryLoginAuthentication will have a + value of local(3). + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + ::= { systemGrp 48 } + +sysTelnetPrimaryEnableAuthentication OBJECT-TYPE + SYNTAX INTEGER{ tacacs(1), + radius(2), + local(3) -- read-only + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether TACACS+ or RADIUS is the + primary enable authentication, i.e which method + will be tried first for a telnet session. If + tacacsEnableAuthentication and + radiusEnableAuthentication are set to disabled + then sysTelnetPrimaryEnableAuthentication will + have a value of local(3). + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + ::= { systemGrp 49 } + +sysStartupConfigSource OBJECT-TYPE + SYNTAX INTEGER{ flashFileRecurring(1), + flashFileNonRecurring(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the configuration file(s) + specified in sysStartupConfigSourceFile will be + used recurringly or not whenever the system + resets. + Setting this object to flashFileNonRecurring(2), + the configuration file(s) specified in + sysStartupConfigSourceFile will only be used once + and the value of sysStartupConfigSourceFile will + be reset to empty string automatically during the + next system reset. + + This MIB object is only supported in systems with + SupG supervisor models or supervisor models that + have flash file system support." + ::= { systemGrp 50 } + +sysStartupConfigSourceFile OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates which configuration file(s) on the + flash device will be used during the next system + startup. + If the value of this MIB object contains one or + multiple valid configuration file(s), then the + valid configuration file(s) will reconfigure the + system during the next system startup one by one + in the order specified. If the value of this MIB + object does not contain the valid configuration + file(s) on the device, the NVRAM configuration + will be used instead. + + For supervisor models wsx5540 and wsx5550, only + 'cfg1' and 'cfg2' are valid file names. + + For supervisor models with the flash file system + support, the valid file name has the format of + '[;...]'. + + This MIB object is only supported in systems with + supervisor models wsx5540 and wsx5550 or + supervisor models with the flash file system + support." + ::= { systemGrp 51 } + +sysConfigSupervisorModuleNo OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the supervisor module (active or + standby, if applicable) that the MIB objects + sysConfigRegister, sysBootVariable, + sysStartupConfigSource, and + sysStartupConfigSourceFile are specified for. + + This MIB object is only supported by the + supervisor modules with the flash file system + feature support. The default value for this MIB + object is set to the active supervisor module + number." + ::= { systemGrp 52 } + +sysStandbyPortEnable OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the standby port feature is + enabled or not. If this object is set to + enabled(1), the uplink ports on the standby + supervisor module are activated; otherwise, the + uplink ports on the standby supervisor remain + inactive." + DEFVAL {disabled } + ::= { systemGrp 53 } + +sysPortFastBpduGuard OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether BPDU Guard for Spanning Tree + Port Fast Start feature is enabled or not. If the + value of this object is set to enabled(1), then + when the switch receives a BPDU from a port with + the value of portSpantreeFastStart object set to + enabled(1), that port is immediately disabled. + + This object is deprecated and replaced by + stpxFastStartBpduGuardEnable in + CISCO-STP-EXTENSIONS-MIB." + DEFVAL { disabled } + ::= { systemGrp 54 } + +sysErrDisableTimeoutEnable OBJECT-TYPE + SYNTAX BITS { + other(0), + udld(1), + duplexMismatch(2), + bpduPortGuard(3), + channelMisconfig(4), + crossBarFallBack(5), + gl2ptIngressLoop(6), + gl2ptThresholdExceed(7), + bcastSuppression(8), + arpInspectionRate(9), + noStaticInlinePwr(10), + camMonitor(11), + gl2ptCdpThresholdExceed(12), + gl2ptStpThresholdExceed(13), + gl2ptVtpThresholdExceed(14), + linkRxCrc(15), + linkTxCrc(16), + linkInErrors(17), + packetBufferError(18), + ethernetOam(19), + gl2ptEoamThresholdExceed(20) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether errdisable timeout feature is + enabled for each of the causes or not. The + other(0) is for all causes other than: + udld(1), + duplexMismatch(2), + bpduPortGuard(3), + channelMisconfig(4), + crossBarFallBack(5), (only supported on platforms + that support this errdisable + reason.) + gl2ptIngressLoop(6), (only supported on platforms + that support this errdisable + reason.) + gl2ptThresholdExceed(7), (only supported on + platforms that support this + errdisable reason.) + bcastSuppression(8), (only supported on platforms + that support this errdisable + reason.) + arpInspectionRate(9), (only supported on platforms + that support this errdisable + reason.) + noStaticInlinePwr(10), (only supported on + platforms that support this + errdisable reason.) + camMonitor(11), (only supported on + platforms that support this + errdisable reason.) + gl2ptCdpThresholdExceed(12), (only supported on + platforms that support this + errdisable reason.) + gl2ptStpThresholdExceed(13), (only supported on + platforms that support this + errdisable reason.) + gl2ptVtpThresholdExceed(14), (only supported on + platforms that support this + errdisable reason.) + linkRxCrc(15), (only supported on + platforms that support this + errdisable reason.) + linkTxCrc(16), (only supported on + platforms that support this + errdisable reason.) + linkInErrors(17), (only supported on + platforms that support this + errdisable reason.) + packetBufferError(18), (only supported on + platforms that support this + errdisable reason.) + ethernetOam(19), (only supported on + platforms that support this + errdisable reason.) + gl2ptEoamThresholdExceed(20), (only supported on + platforms that support this + errdisable reason.) + + A port is in errdisable state if ifAdminStatus of + the port in the ifTable is up(1) while the port is + shutdown during runtime by the system due to error + detection. If the value of object + portAdditionalOperStatus for the port is + errdisable(11) then that port is in errdisable + state. + + By setting the bit corresponding to a cause to + '1', this errdisable timeout feature is enabled + on the system for the ports that are put into + errdisable state by that cause, then those ports + can be re-enabled automatically during the timeout + interval as specified by + sysErrDisableTimeoutInterval object after they + are put into errdisable state by that cause; + otherwise, by setting the bit corresponding to a + cause to '0', this errdisable timeout feature is + disabled on the system for the ports that are put + into errdisable state by that cause, then those + ports will remain shutdown until the user + re-enable it manually." + DEFVAL { { } } + ::= { systemGrp 55 } + +sysErrDisableTimeoutInterval OBJECT-TYPE + SYNTAX INTEGER (30..86400) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the timeout interval in seconds for + errdisable timeout feature." + DEFVAL { 300 } + ::= { systemGrp 56 } + +sysTrafficMonitorHighWaterMark OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the high watermark for the switching + bus traffic in percentage. Syslog messages will be + generated if the switching bus traffic goes over + this object value during the polling interval. + Setting this object value to 100 would mean no + syslog message would be generated. For systems + with 3 switching buses, high watermark and syslog + will be for each switching bus." + DEFVAL { 100 } + ::= { systemGrp 57 } + +sysHighAvailabilityEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether High System Availability + feature is enabled or not. If this feature is + enabled, the active supervisor's layer-2 protocol + state will be synched to the standby supervisor + module, thus maintaining an up-to-date protocol + data on the standby supervisor whenever possible. + + This object is supported in systems with High + System Availability feature support." + DEFVAL { false } + ::= { systemGrp 58 } + +sysHighAvailabilityVersioningEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether support for supervisor software + image versioning (i.e., the capability to run + different images on the active and standby + supervisors) for the High System Availability + feature is enabled or not. + + This object is supported in systems with High + System Availability feature support." + DEFVAL { false } + ::= { systemGrp 59 } + +sysHighAvailabilityOperStatus OBJECT-TYPE + SYNTAX INTEGER { + running(1), + notRunning(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the operational status of High System + Availability feature. If the value of this object + is notRunning(2), then the reason why this feature + is actually not running is specified by the object + sysHighAvailabilityNotRunningReason. If the value + of this object is running(1), then the value of + object sysHighAvailabilityOperReason is empty + string. + + This object is supported in systems with High + System Availability feature support." + ::= { systemGrp 60 } + +sysHighAvailabilityNotRunningReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the reason why High System Availability + feature is not running when the value of + sysHighAvailabilityOperStatus is notRunning(2). + The value of this object is empty string when + the value of sysHighAvailabilityOperStatus is + running(1). + + This object is supported in systems with High + System Availability feature support." + ::= { systemGrp 61 } + +sysExtendedRmonNetflowModuleMask OBJECT-TYPE + SYNTAX BITS { + module1(0), + module2(1), + module3(2), + module4(3), + module5(4), + module6(5), + module7(6), + module8(7), + module9(8), + module10(9), + module11(10), + module12(11), + module13(12), + module14(13), + module15(14), + module16(15) + } + + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates Netflow Export Data (NDE) to be sent to + which Network Analysis Modules (NAM) in the same + chassis. + + If users set a bit from off to on, the system will + check the corresponding module is a NAM or not. + If it is not, the system should return error. + + This mib object will only be supported by the + system that can support the multiple NAM modules." + ::= { systemGrp 62 } + +sshPublicKeySize OBJECT-TYPE + SYNTAX INTEGER (0 | 512..2048) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates public key size in bits. In write, if + a key does not exist, a value between 512 and 2048 + will generate a RSA public key with the value as + its key size for secured shell access. If a key + exists a value other than 0 is valid, indicating a + clear key operation. In read, the current key size + is returned if a key exists. If not,a 0 is + returned." + ::= { systemGrp 63 } + +sysMaxRmonMemory OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the maximum percentage of the memory + usage for RMON." + ::= { systemGrp 64 } + +sysMacReductionAdminEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether Mac Reduction feature (to + reduce the number of MAC addresses used in + bridge identifier) is administratively enabled + on the device or not." + ::= { systemGrp 65 } + +sysMacReductionOperEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether Mac Reduction feature (to + reduce the number of MAC addresses used in + bridge identifier) is operationaly enabled + on the device or not. + + If the value of this object is true(1), then + the accepted values for dot1dStpPriority + in BRIDGE-MIB should be multiples of 4096 plus + bridge instance ID, such as VlanIndex. Changing + this object value might cause the values of + dot1dBaseBridgeAddress and dot1dStpPriority + in BRIDGE-MIB to be changed also." + ::= { systemGrp 66 } + +sysStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + ok(2), -- status ok + minorFault(3), -- minor problem + majorFault(4) -- major problem + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The operational status of the system." + ::= { systemGrp 67 } + +-- the chassis group + +-- Implementation of the chassis group is current for all Cisco +-- Workgroup Stack products. + +chassisSysType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + wsc1000(3), -- 2+8 Port CDDI Concentrator + wsc1001(4), -- 2+8 Port FDDI Concentrator + wsc1100(5), -- 2+16 Port FDDI/CDDI Concentrator + wsc5000(6), -- 5 slot Switch + wsc2900(7), -- closed 2 slot Switch + wsc5500(8), -- 13 slot Switch + wsc5002(9), -- 2 slot Switch + wsc5505(10), -- 5 slot Switch + wsc1200(11), -- 2+8 Port FDDI/Ethernet Switch + wsc1400(12), -- 2 slot FDDI/CDDI Concentrator + wsc2926(13), -- closed 2 slot Switch + wsc5509(14), -- 9 slot Switch + wsc6006(15), -- 6 slot Switch + wsc6009(16), -- 9 slot Switch + wsc4003(17), -- 3 slot Switch + wsc5500e(18),-- 13 slot Switch + wsc4912g(19), -- closed 2 slot Switch + wsc2948g(20), -- closed 2 slot Switch + wsc6509(22), -- 9 slot Switch + wsc6506(23), -- 6 slot Switch + wsc4006(24), -- 6 slot Switch + wsc6509NEB(25),-- 9 slot Verticle Chassis Switch + wsc2980g(26), -- closed 3 slot Switch + wsc6513(27), -- 13 slot Switch + wsc2980ga(28), -- closed 3 slot Switch + cisco7603(30), -- 3 slot Chassis (Nebula-SP) + cisco7606(31), -- 6 slot Chassis (Seaquest-SP) + cisco7609(32), -- 9 slot chassis + wsc6503(33), -- 3 slot Chassis + wsc6509NEBA(34), -- 9 slot Chassis + wsc4507(35), -- 7 slot Chassis (Galaxy3) + wsc4503(36), -- 3 slot Chassis (Galaxy5) + wsc4506(37), -- 6 slot Chassis (Galaxy6) + wsc65509(38), -- 9 slot Chassis + cisco7613(40), -- 13 slot Chassis + wsc2948ggetx(41), -- closed 2 slot Switch + cisco7604(42), -- 4 slot Chassis + wsc6504e(43), -- 4 slot Chassis + mec6524gs8s(45), -- closed 1 slot switch + mec6524gt8s(48), -- closed 1 slot switch + cisco7603s(52) -- 3 slot Chassis + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The chassis system type." + ::= { chassisGrp 1 } + +chassisBkplType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + fddi(2), -- FDDI + fddiEthernet(3),-- FDDI and Ethernet + giga(4), -- 1.2 Gigabit switch + giga3(5), -- 3.6 Gigabit switch + giga3E(6), -- 3.6 Gigabit switch + -- enhanced + giga12(7), -- 12 Gigabit switch + giga16(8), -- 16 Gigabit switch + giga40(9) -- 40 Gigabit switch + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The chassis backplane type." + ::= { chassisGrp 2 } + +chassisPs1Type OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + none(2), -- no power supply + w50(3), -- 50 watt supply + w200(4), -- 200 watt supply + w600(5), -- 600 watt supply + w80(6), -- 80 watt supply + w130(7), -- 130 watt supply + wsc5008(8), -- 376 watt supply + wsc5008a(9), -- 376 watt supply w/PFC + w175(10), -- 175 watt supply + wsc5068(11), -- 376 watt supply DC + wsc5508(12), -- 1100 watt supply + wsc5568(13), -- 1200 watt supply DC + wsc5508a(14), -- 1200 watt supply + w155(15), -- 155 watt supply + w175pfc(16), -- 175 watt supply w/PFC + w175dc(17), -- 175 watt supply DC + wsc5008b(18), -- 376 watt supply + -- w/PFC, OCP + wsc5008c(19), -- 436 watt supply w/PFC + wsc5068b(20), -- 376 watt supply DC + -- w/OCP + wscac1000(21), -- 1000 watt supply AC + wscac1300(22), -- 1300 watt supply AC + wscdc1000(23), -- 1000 watt supply DC + wscdc1360(24), -- 1360 watt supply DC + wsx4008(25), -- 400 watt supply + wsc5518(26), -- 805 watt supply AC + wsc5598(27), -- 805 watt supply DC + w120(28), -- 120 watt + externalPS(29), -- external power supply + wscac2500w(30), -- 2500 watt supply AC + wscdc2500w(31), -- 2500 watt supply DC + wsx4008dc(32), -- 400 watt supply DC + wscac4000w(33), -- 4000 watt supply AC + pwr4000dc(34), -- 4000 watt supply DC + pwr950ac(35), -- 950 watt supply AC + pwr950dc(36), -- 950 watt supply DC + pwr1900ac(37), -- 1900 watt supply AC + pwr1900dc(38), -- 1900 watt supply DC + pwr1900ac6(39), -- 1900 watt supply + -- AC/6 slots + wsx4008ac650w(42), -- 650 watt supply AC + wsx4008dc650w(43), -- 650 watt supply DC + wscac3000w(44), -- 3000 watt supply AC + pwrc451000ac(46), -- 1000 watt supply AC + pwrc452800acv(47),-- 2800 watt supply AC + pwrc451300acv(48),-- 1300 watt supply AC + pwrc451400dcp(49),-- 1400 watt supply DC + wscdc3000w(50), -- 3000 watt supply DC + pwr1400ac(51), -- 1400 watt supply AC + w156(52), -- 156 watt supply AC + wscac6000w(53), -- 6000 watt supply AC + pwr2700ac(54), -- 2700 watt supply AC + pwr2700dc(55), -- 2700 watt supply DC + wscac8700we(58), -- 8700 watt supply AC + pwr2700ac4(59), -- 2700 watt supply AC + pwr2700dc4(60), -- 2700 watt supply DC + pwr400dc(63), -- 400 watt supply DC + pwr400ac(64) -- 400 watt supply AC + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Type of power supply number 1." + ::= { chassisGrp 3 } + +chassisPs1Status OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + ok(2), -- status ok + minorFault(3), -- minor problem + majorFault(4) -- major problem + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Status of power supply number 1. If the status is + not ok, the value of chassisPs1TestResult gives + more detailed information about the power supply's + failure condition(s)." + ::= { chassisGrp 4 } + +chassisPs1TestResult OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Test result for power supply number 1. A zero + indicates that the supply passed all tests. Bits + set in the result indicate error conditions." + ::= { chassisGrp 5 } + +chassisPs2Type OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + none(2), -- no power supply + w50(3), -- 50 watt supply + w200(4), -- 200 watt supply + w600(5), -- 600 watt supply + w80(6), -- 80 watt supply + w130(7), -- 130 watt supply + wsc5008(8), -- 376 watt supply + wsc5008a(9), -- 376 watt supply w/PFC + w175(10), -- 175 watt supply + wsc5068(11), -- 376 watt supply DC + wsc5508(12), -- 1100 watt supply + wsc5568(13), -- 1200 watt supply DC + wsc5508a(14), -- 1200 watt supply + w155(15), -- 155 watt supply + w175pfc(16), -- 175 watt supply w/PFC + w175dc(17), -- 175 watt supply DC + wsc5008b(18), -- 376 watt supply + -- w/PFC, OCP + wsc5008c(19), -- 436 watt supply w/PFC + wsc5068b(20), -- 376 watt supply DC + -- w/OCP + wscac1000(21), -- 1000 watt supply AC + wscac1300(22), -- 1300 watt supply AC + wscdc1000(23), -- 1000 watt supply DC + wscdc1360(24), -- 1360 watt supply DC + wsx4008(25), -- 400 watt supply + wsc5518(26), -- 805 watt supply AC + wsc5598(27), -- 805 watt supply DC + w120(28), -- 120 watt + externalPS(29), -- external power supply + wscac2500w(30), -- 2500 watt supply AC + wscdc2500w(31), -- 2500 watt supply DC + wsx4008dc(32), -- 400 watt supply DC + wscac4000w(33), -- 4000 watt supply AC + pwr4000dc(34), -- 4000 watt supply DC + pwr950ac(35), -- 950 watt supply AC + pwr950dc(36), -- 950 watt supply DC + pwr1900ac(37), -- 1900 watt supply AC + pwr1900dc(38), -- 1900 watt supply DC + pwr1900ac6(39), -- 1900 watt supply + -- AC/6 slots + wsx4008ac650w(42), -- 650 watt supply AC + wsx4008dc650w(43), -- 650 watt supply DC + wscac3000w(44), -- 3000 watt supply AC + pwrc451000ac(46), -- 1000 watt supply AC + pwrc452800acv(47),-- 2800 watt supply AC + pwrc451300acv(48),-- 1300 watt supply AC + pwrc451400dcp(49),-- 1400 watt supply DC + wscdc3000w(50), -- 3000 watt supply DC + pwr1400ac(51), -- 1400 watt supply AC + w156(52), -- 156 watt supply AC + wscac6000w(53), -- 6000 watt supply AC + pwr2700ac(54), -- 2700 watt supply AC + pwr2700dc(55), -- 2700 watt supply DC + wscac8700we(58), -- 8700 watt supply AC + pwr2700ac4(59), -- 2700 watt supply AC + pwr2700dc4(60), -- 2700 watt supply DC + pwr400dc(63), -- 400 watt supply DC + pwr400ac(64) -- 400 watt supply AC + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Type of power supply number 2." + ::= { chassisGrp 6 } + +chassisPs2Status OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + ok(2), -- status ok + minorFault(3), -- minor problem + majorFault(4) -- major problem + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Status of power supply number 2. If the status is + not ok, the value of chassisPs2TestResult gives + more detailed information about the power supply's + failure condition(s)." + ::= { chassisGrp 7 } + +chassisPs2TestResult OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Test result for power supply number 2. A zero + indicates that the supply passed all tests. Bits + set in the result indicate error conditions." + ::= { chassisGrp 8 } + +chassisFanStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + ok(2), -- status ok + minorFault(3), -- minor problem + majorFault(4) -- major problem + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Status of the chassis fan. If the status is not + ok, the value of chassisFanTestResult gives more + detailed information about the fan's failure + condition(s)." + ::= { chassisGrp 9 } + +chassisFanTestResult OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Test result for the chassis fan. A zero indicates + that the fan passed all tests. Bits set in the + result indicate error conditions." + ::= { chassisGrp 10 } + +chassisMinorAlarm OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The chassis minor alarm status." + ::= { chassisGrp 11 } + +chassisMajorAlarm OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The chassis major alarm status." + ::= { chassisGrp 12 } + +chassisTempAlarm OBJECT-TYPE + SYNTAX INTEGER { + off(1), -- temperature within normal + -- range + on(2), -- temperature too high + critical(3) -- critical temperature, + -- system shut down imminent + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The chassis temperature alarm status." + ::= { chassisGrp 13 } + +chassisNumSlots OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of slots in the chassis available for + plug-in modules." + ::= { chassisGrp 14 } + +chassisSlotConfig OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An indication of which slots in the chassis have + modules inserted. This is an integer value with + bits set to indicate configured modules. It can be + interpreted as a sum of f(x) as x goes from 1 to + the number of slots, where f(x) = 0 for no module + inserted and f(x) = exp(2, x-1) for a module + inserted." + ::= { chassisGrp 15 } + +chassisModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The manufacturer's model number for the chassis." + ::= { chassisGrp 16 } + +chassisSerialNumber OBJECT-TYPE + SYNTAX INTEGER (0..999999999) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The serial number of the chassis in a numeric + format. If the chassis uses an alphanumeric + serial number, this MIB object will return 0. + + This object is deprecated and replaced by + entPhysicalSerialNum in ENTITY-MIB." + ::= { chassisGrp 17 } + +-- chassis component table + +chassisComponentTable OBJECT-TYPE + SYNTAX SEQUENCE OF ChassisComponentEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "A list of the chassis related components in the + chassis. + + This table is deprecated and replaced by + entPhysicalTable in ENTITY-MIB." + ::= { chassisGrp 18 } + +chassisComponentEntry OBJECT-TYPE + SYNTAX ChassisComponentEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "Entry containing information about one component + in the chassis." + INDEX { chassisComponentIndex } + ::= { chassisComponentTable 1 } + +ChassisComponentEntry ::= + SEQUENCE { + chassisComponentIndex + INTEGER, + chassisComponentType + INTEGER, + chassisComponentSerialNumber + DisplayString, + chassisComponentHwVersion + DisplayString, + chassisComponentModel + DisplayString + } + +chassisComponentIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "A unique value for each chassis related component + within the chassis." + ::= { chassisComponentEntry 1 } + +chassisComponentType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), -- unknown chassis component + wsc6000cl(2), -- clock module for cat6000 + wsc6000vtt(3), -- VTT module for cat6000 + wsc6000tempSensor(4), -- Temp Sensor for cat6000 + wsc6513Clock(5), -- clock for WS-C6513 + clk7600(6), -- clock module for cisco7600 + ws9SlotFan(7), -- Catalyst 6000 Fan Tray for + -- 9-Slot Systems + fanMod9(8), -- Cisco 7609 and Catalyst + -- 6509-NEB-A Fan Tray + wsc6506eFan(10), -- Catalyst 6506 E FAN Tray + wsc6509eFan(11), -- Catalyst 6509 E FAN Tray + wsc6503eFan(13), -- Catalyst 6503 E FAN Tray + wsc6000vtte(14), -- VTT module for cat6000 E + fanMod4Hs(15), -- Fan module for cisco7604 + -- and WS-C6504 + fan6524(16), -- Catalyst 6524 Series FAN Tray + fanMod6Shs(17), -- 6-slot FAN for CISCO7606-S + fanMod9Shs(18), -- 9-slot FAN for CISCO7609-S + fanMod9St(19), -- 9-slot FAN for CISCO7609-S + fanMod3Hs(21) -- Fan Tray for CISCO7603-S + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The type of the chassis component." + ::= { chassisComponentEntry 2 } + +chassisComponentSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0 .. 20)) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The serial number of the chassis component." + ::= { chassisComponentEntry 3 } + +chassisComponentHwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0 .. 20)) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The hardware version of the chassis component." + ::= { chassisComponentEntry 4 } + +chassisComponentModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0 .. 20)) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The manufacturer's model number for the chassis + component." + ::= { chassisComponentEntry 5 } + +chassisSerialNumberString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The serial number of the chassis. This MIB object + will return the chassis serial number for any + chassis that either a numeric or an alphanumeric + serial number is being used." + ::= { chassisGrp 19 } + +chassisPs3Type OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + none(2), -- no power supply + wsx4008(25), -- 400 watt supply + wsx4008dc(32), -- 400 watt supply DC + wsx4008ac650w(42), -- 650 watt supply AC + wsx4008dc650w(43) -- 650 watt supply DC + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Type of power supply number 3. This object is + only supported by systems that can have 3 or more + power supplies." + ::= { chassisGrp 20 } + +chassisPs3Status OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + ok(2), -- status ok + minorFault(3), -- minor problem + majorFault(4) -- major problem + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Status of power supply number 3. If the status is + not ok, the value of chassisPs3TestResult gives + more detailed information about the power supply's + failure condition(s). This object is only + supported by systems that can have 3 or more + power supplies." + ::= { chassisGrp 21 } + +chassisPs3TestResult OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Test result for power supply number 3. A zero + indicates that the supply passed all tests. Bits + set in the result indicate error conditions. This + object is only supported by systems that can + have 3 or more power supplies." + ::= { chassisGrp 22 } + +chassisPEMInstalled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether Power Entry Module is installed + into the Chassis or not. Power Entry Module is a + connection into the system for an external + power supply of -48 Volts. This object is only + supported by systems that can have 3 or more power + supplies." + ::= { chassisGrp 23 } + + + +-- the module group + +moduleTable OBJECT-TYPE + SYNTAX SEQUENCE OF ModuleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of module entries. The number of entries + is the number of modules in the chassis." + ::= { moduleGrp 1 } + +moduleEntry OBJECT-TYPE + SYNTAX ModuleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing information about one module in + the chassis." + INDEX { moduleIndex } + ::= { moduleTable 1 } + +ModuleEntry ::= + SEQUENCE { + moduleIndex + INTEGER, + moduleType + INTEGER, + moduleSerialNumber + INTEGER, + moduleHwHiVersion + INTEGER, + moduleHwLoVersion + INTEGER, + moduleFwHiVersion + INTEGER, + moduleFwLoVersion + INTEGER, + moduleSwHiVersion + INTEGER, + moduleSwLoVersion + INTEGER, + moduleStatus + INTEGER, + moduleTestResult + INTEGER, + moduleAction + INTEGER, + moduleName + DisplayString, + moduleNumPorts + INTEGER, + modulePortStatus + OCTET STRING, + moduleSubType + INTEGER, + moduleModel + DisplayString, + moduleHwVersion + DisplayString, + moduleFwVersion + DisplayString, + moduleSwVersion + DisplayString, + moduleStandbyStatus + INTEGER, + moduleIPAddress + IpAddress, + moduleIPAddressVlan + VlanIndex, + moduleSubType2 + INTEGER, + moduleSlotNum + INTEGER, + moduleSerialNumberString + DisplayString, + moduleEntPhysicalIndex + PhysicalIndex, + moduleAdditionalStatus + BITS + } + +moduleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A unique value for each module within the + chassis." + ::= { moduleEntry 1 } + +moduleType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + empty(2), -- nothing installed + wsc1000(3), -- 2+8 Port CDDI Concentrator + wsc1001(4), -- 2+8 Port FDDI Concentrator + wsc1100(5), -- 2+16 Port FDDI/CDDI Concentrator + wsc1200(11), -- 2+8 Port FDDI/Ethernet Switch + wsc1400(12), -- 2 slot FDDI/CDDI Concentrator + + -- the following modules are for the WS-C1400 + wsx1441(13), -- 8 port Multi Mode FDDI (MIC connector) + wsx1444(14), -- 8 port Single Mode FDDI (ST connector) + wsx1450(15), -- 2 port MM FDDI (MIC), 12 port + -- CDDI(RJ-45) + wsx1483(16), -- 16 port CDDI (RJ-45 connector) + wsx1454(17), -- 2 port SM FDDI (ST), 12 port CDDI + -- (RJ-45) + wsx1455(18), -- 10 port MM FDDI (SC connector) + wsx1431(19), -- 4 port Multi Mode FDDI (MIC connector) + wsx1465(20), -- 2 port MM FDDI (SC), 12 port CDDI + -- (RJ-45) + wsx1436(21), -- 4 port SM FDDI (ST), 4 port MM FDDI + -- (MIC) + wsx1434(22), -- 4 port Single Mode FDDI (ST connector) + + -- the following modules are for the WSC-5000 series + wsx5009(23), -- Supervisor Module 1, 2 100 BaseTX + -- (RJ-45/MII) + wsx5013(24), -- 24 port 10BaseT (RJ-45 connector) + wsx5011(25), -- 12 port 10BaseFL MultiMode (ST + -- connector) + wsx5010(26), -- 24 port 10BaseT (Telco connector) + wsx5113(27), -- 12 port 100BaseTX (RJ-45 connector) + wsx5101(28), -- 1 dual attach Multi Mode FDDI + -- (MIC connector) + wsx5103(29), -- 1 dual attach CDDI (RJ-45 connector) + wsx5104(30), -- 1 dual attach Single Mode FDDI (ST + -- connector) + wsx5155(32), -- 1 port Multi Mode OC-3 ATM (SC + -- connector) + wsx5154(33), -- 1 port Single Mode OC-3 ATM (SC + -- connector) + wsx5153(34), -- 1 port UTP OC-3 ATM (RJ-45 connector) + wsx5111(35), -- 12 port 100BaseFX Multi Mode (SC + -- connector) + wsx5213(36), -- 12 port 10/100BaseTX (RJ-45 connector) + wsx5020(37), -- 48 port 4 segment 10BaseT (Telco + -- connector) + wsx5006(38), -- Supervisor Mod 1, 2 100BaseFX Multi Mode + -- (SC) + wsx5005(39), -- Supervisor Mod 1, 2 100BaseFX Single + -- Mode (SC) + wsx5509(40), -- Supervisor Mod 2, 2 100BaseTX + -- (RJ-45/MII) + wsx5506(41), -- Supervisor Mod 2, 2 100BaseFX Multi Mode + -- (SC) + wsx5505(42), -- Supervisor Mod 2, 2 100BaseFX Single + -- Mode (SC) + wsx5156(43), -- 1 dual phy UTP OC-3 ATM (RJ-45 + -- connector) + wsx5157(44), -- 1 dual phy Single Mode OC-3 ATM (SC + -- connector) + wsx5158(45), -- 1 dual phy Multi Mode OC-3 ATM (SC + -- connector) + wsx5030(46), -- 16 port Token Ring (RJ-45 connector) + wsx5114(47), -- 6 port SM, 6 port MM 100BaseFX (SC + -- connector) + wsx5223(48), -- 24 port 3 segment 100BaseTX (RJ-45 + -- connector) + wsx5224(49), -- 24 port 10/100BaseTX (RJ-45 connector) + wsx5012(50), -- 48 port 10BaseT (Telco connector) + wsx5302(52), -- Vlan router + wsx5213a(53), -- 12 port 10/100BaseTX (RJ-45 connector) + wsx5380(54), -- Network Analysis Module + wsx5201(55), -- 12 port 100BaseFX Multi Mode (SC + -- connector) + wsx5203(56), -- 12 port 10/100BaseTX (RJ-45 connector) + wsx5530(57), -- Supervisor Module 3 + wsx5161(61), -- 1 dual phy Multi Mode OC-12 ATM (SC + -- connector) + wsx5162(62), -- 1 dual phy Single Mode OC-12 ATM (SC + -- connector) + wsx5165(65), -- ATM bridge + wsx5166(66), -- 1 dual phy DS3 ATM (BNC connector) + wsx5031(67), -- 16 port Multi Mode Token Ring (ST + -- connector) + wsx5410(68), -- 9 port 1000BaseX (GBIC connector) + wsx5403(69), -- 3 port 1000BaseX (GBIC connector) + wsx5201r(73), -- 12 port 100BaseFX Multi Mode (SC + --connector) + wsx5225r(74), -- 24 port 10/100BaseTX (RJ-45 connector) + wsx5014(75), -- 48 port 10BaseT (RJ-45 connector) + wsx5015(76), -- 24 port 10BaseFL (MT-RJ connector) + wsx5236(77), -- 24 port 100BaseFX Multi Mode (MT-RJ + -- connector) + wsx5540(78), -- Supervisor Module 2 GS + wsx5234(79), -- 24 port 10/100BaseTX (RJ-45 connector) + wsx5012a(81), -- 48 port 10BaseT (Telco connector) + wsx5167(82), -- 1 dual phy Multi Mode OC-3 ATM (SC + -- connector) + wsx5239(83), -- 36 port 10/100BaseTX (Telco connector) + wsx5168(84), -- 1 dual phy Single Mode OC-3 ATM (SC + -- connector) + wsx5305(85), -- 8 port 100BaseFX MM (SC)/Ethernet bridge + wsx5550(87), -- Supervisor Module 3 GS, 2 port GBIC + wsf5541(88), -- RSFC for wsx5540, wsx5550 + wsx5534(91), -- Supervisor Module 3 FSX + wsx5536(92), -- Supervisor Module 3 FLX + wsx5237(96), -- 24 port 100BaseFX Single Mode (MT-RJ + -- connector) + + -- the following modules are for the WSC-6000 series + wsx6ksup12ge(200), -- 2 port 1000BaseX Supervisor Mod + -- (GBIC) + wsx6408gbic(201), -- 8 port 1000BaseX (GBIC) + wsx6224mmmt(202), -- 24 port 100BaseFX MM (MT-RJ) + wsx6248rj45(203), -- 48 port 10/100BaseTX (RJ-45) + wsx6248tel(204), -- 48 port 10/100BaseTX (Telco) + wsx6302msm(206), -- Multilayer switch module + wsf6kmsfc(207), -- Multilayer switch feature card + wsx6024flmt(208), -- 24 port 10BaseFL (MT-RJ) + wsx6101oc12mmf(209),-- 1 port Multi Mode OC-12 ATM (SC) + wsx6101oc12smf(210),-- 1 port Single Mode OC-12 ATM (SC) + wsx6416gemt(211), -- 16 port 1000BaseSX (MT-RJ) + wsx61822pa(212), -- 2 port adapter FlexWAN Module + osm2oc12AtmMM(213),-- 2-port OC-12 ATM MM + osm2oc12AtmSI(214),-- 2-port OC-12 ATM SI + osm4oc12PosMM(216),-- 4-port OC-12c POS MM + osm4oc12PosSI(217),-- 4-port OC-12c POS SI + osm4oc12PosSL(218),-- 4-port OC-12c POS SL + wsx6ksup1a2ge(219),-- 2 port 1000BaseX Supervisor Mod + -- (GBIC) + wsx6302amsm(220), -- Multilayer switch module (Rev. A) + wsx6416gbic(221), -- 16 port 1000BaseX (GBIC) + wsx6224ammmt(222), -- 24 port 100BaseFX MM (MT-RJ), + -- Enhanced QoS + wsx6380nam(223), -- Network Analysis Module + wsx6248arj45(224), -- 48 port 10/100BaseTX (RJ-45) + -- Enhanced QoS + wsx6248atel(225), -- 48 port 10/100BaseTX (Telco) + -- Enhanced QoS + wsx6408agbic(226), -- 8 port 1000BaseX (GBIC),Enhanced + -- QoS + wsx6608t1(229), -- 8 port T1 (1.544 Mps) + wsx6608e1(230), -- 8 port E1 (2.048 Mps) + wsx6624fxs(231), -- 24 port FXS Analog station module + wsx6316getx(233), -- 16 port 1000BaseT (RJ-45) + wsf6kmsfc2(234), -- Multilayer switch feature card II + wsx6324mmmt(235), -- 24 port 100BaseFX MM (MT-RJ) + wsx6348rj45(236), -- 48 port 10/100BaseTX (RJ-45) + wsx6ksup22ge(237), -- 2 port 1000BaseX Supervisor Mod 2 + -- (GBIC) + wsx6324sm(238), -- 24 port 100BaseFX SM (MT-RJ) + wsx6516gbic(239), -- 16 port 1000BaseX (GBIC) + osm4geWanGbic(240), -- 4 port 1000BaseX (GBIC) + osm1oc48PosSS(241), -- 1 port OC-48 POS SS + osm1oc48PosSI(242), -- 1 port OC-48 POS SI + osm1oc48PosSL(243), -- 1 port OC-48 POS SL + wsx6381ids(244), -- Intrusion Detection module + wsc6500sfm(245), -- Switch Fabric Module + osm16oc3PosMM(246), -- 16 port OC3 POS MM + osm16oc3PosSI(247), -- 16 port OC3 POS SI + osm16oc3PosSL(248), -- 16 port OC3 POS SL + osm2oc12PosMM(249), -- 2 port OC12 POS MM + osm2oc12PosSI(250), -- 2 port OC12 POS SI + osm2oc12PosSL(251), -- 2 port OC12 POS SL + wsx650210ge(252), -- 1 port 10 Gigabit Ethernet + osm8oc3PosMM(253), -- 8 port OC3 POS MM + osm8oc3PosSI(254), -- 8 port OC3 POS SI + osm8oc3PosSL(255), -- 8 port OC3 POS SL + wsx6548rj45(258), -- 48 port 10/100BaseTX (RJ-45) + wsx6524mmmt(259), -- 24 port 100BaseFX MM (MT-RJ) + wsx6066SlbApc(260), -- SLB Application Processor Complex + wsx6516getx(261), -- 16 port 10/100/1000BaseT (RJ-45) + osm2oc48OneDptSS(265), -- 2 port OC48 1 DPT SS + osm2oc48OneDptSI(266), -- 2 port OC48 1 DPT SI + osm2oc48OneDptSL(267), -- 2 port OC48 1 DPT SL + osm2oc48OneDptSSDual(268), -- 2 port OC48 DPT SS + -- dual-natured + osm2oc48OneDptSIDual(269), -- 2 port OC48 DPT SI + -- dual-natured + osm2oc48OneDptSLDual(270), -- 2 port OC48 DPT SL + -- dual-natured + wsx6816gbic(271), -- 16 port 1000BaseX (Layer 3) + osm4choc12T3MM(272), -- 4 port OC-12 Multimode + osm4choc12T3SI(273), -- 4 port OC-12 Singlemode + -- Intermediate + osm8choc12T3MM(274), -- 8 port OC-12 Multimode + osm8choc12T3SI(275), -- 8 port OC-12 Singlemode + -- Intermediate + osm1choc48T3SS(276), -- 1 port OC-48 Singlemode Short + osm2choc48T3SS(277), -- 2 port OC-48 Singlemode Short + wsx6500sfm2(278), -- Switch Fabric Module 136 + osm1choc48T3SI(279), -- 1 port OC-48 Singlemode + -- Intermediate + osm2choc48T3SI(280), -- 2 port OC-48 Singlemode + -- Intermediate + wsx6348rj21(281), -- 48 port 10/100BaseTX (RJ-21) + wsx6548rj21(282), -- 48 port 10/100BaseTX (RJ-21) + wsSvcCmm(284), -- AVVID Services Module + wsx650110gex4(285), -- 1 port 10 Gigabit Ethernet (EX4) + osm4oc3PosSI(286), -- 4 port OC3 POS SI + osm4oc3PosMM(289), -- 4 port OC3 POS MM + wsSvcIdsm2(290), -- Intrusion Detection module + wsSvcNam2(291), -- Network Analysis Module + wsSvcFwm1(292), -- Firewall Module + wsSvcCe1(293), -- Web Cache/Content Engine Module + wsSvcSsl1(294), -- SSL Module + osm8choc3DS0SI(295), -- 8 port OC3 DS0 SI + osm4choc3DS0SI(296), -- 4 port OC3 DS0 SI + osm1choc12T1SI(297), -- 1 port OC3 T1 SI + + -- the following modules are for the WSC-4000 series + wsx4012(300), -- Supervisor Module + wsx4148rj(301), -- 48 port 10/100BaseTX (RJ-45) + wsx4232gbrj(302), -- 2 1000X (GBIC), 32 10/100BaseTX + -- (RJ-45) + wsx4306gb(303), -- 6 port 1000BaseX (GBIC) + wsx4418gb(304), -- 18 port 1000BaseX (GBIC) + wsx44162gbtx(305), -- 2 1000BaseX (GBIC), 16 1000BaseT + -- (RJ-45) + wsx4912gb(306), -- 12 port 1000BaseX (GBIC) + wsx2948gbrj(307), -- 2 1000X (GBIC), 48 10/100BaseTX + -- (RJ-45) + wsx2948(309), -- Supervisor Module + wsx4912(310), -- Supervisor Module + wsx4424sxmt(311), -- 24 port 1000BaseSX (MT-RJ) + wsx4232rjxx(312), -- 32 port 10/100 (RJ-45) + uplink + -- submodule + wsx4148rj21(313), -- 48 port 10/100BaseTX (RJ-21) + wsx4124fxmt(317), -- 24 port 100BaseFX MM (MT-RJ) + wsx4013(318), -- Supervisor Module 2, 2 port + -- 1000X(GBIC) + wsx4232l3(319), -- 32 10/100TX(RJ-45), 2 1000X + -- Routed port + wsx4604gwy(320), -- 1 port 1000 Mb routed + 1 daughter + -- card + wsx44122Gbtx(321), -- 2 1000BaseX(GBIC), 12 1000BaseT + -- (RJ-45) + wsx2980(322), -- Supervisor module for wsc2980g + wsx2980rj(323), -- 48 port 10/100BaseTX + wsx2980gbrj(324), -- 32 port 10/100BaseTX + 2 port + -- 1000X + wsx4019(325), -- Switch Fabric Module + wsx4148rj45v(326), -- 48 port 10/100BaseT Voice Power + -- module + wsx4424gbrj45(330),-- 24 10/100/1000BaseTX (RJ-45) + wsx4148fxmt(331), -- 48 port 100BaseFX MM (MT-RJ) + wsx4448gblx(332), -- 48 port 1000BaseX (SFP GBIC) + wsx4448gbrj45(334), -- 48 port 10/100/1000Base TX + -- (RJ-45) + wsx4148lxmt(337), -- 48 port 100BaseLX + wsx4548gbrj45(339), -- 48 port 10/100/1000Base TX + -- (RJ-45) + wsx4548gbrj45v(340), -- 48 port 10/100/1000T Voice + -- module + wsx4248rj21v(341), -- 48 port 10/100 (RJ-21) Voice + -- module + wsx4302gb(342), -- 2 port 1000BaseX (GBIC) + wsx4248rj45v(343), -- 48 port 10/100BaseT Voice Power + -- module + wsx2948ggetx(345), -- Supervisor Module for + -- wsc2948ggetx + wsx2948ggetxgbrj(346), -- 4 1000Base FX(SFP), 48 + -- 10/100/1000 BaseTX (RJ-45) + -- the following modules are for the WSC-6000 series + wsx6516aGbic(502), -- 16 port 1000BaseX (GBIC) + wsx6148getx(503), -- 48 port 10/100/1000BaseT(RJ-45) + wsx6148x2rj45(506), -- 96 port 10/100BaseTX (RJ-45) + wsx6196rj21(507), -- 96 port 10/100BaseTX (RJ-21) + wssup32ge3b(509), -- 8 port 1000BaseX Supervisor + -- module + wssup3210ge3b(510), -- 2 port 10GBaseX Supervisor + -- module + mec6524gs8s(511), -- 24 port SFP with 8 SFP uplinks + mec6524gt8s(512), -- 24 port 10/100/1000BaseT with + -- 8 SFP uplinks + me6524msfc2a(598), -- Multilayer switch feature card + -- II A + + -- WAN module for c6k and 76xx + osm12ct3T1(600), -- 12 port CT3 T1 + osm24t3e3(602), -- 24 port T3 E3 + osm1choc12T3SI(604), -- 1 port OC-12 Singlemode + -- Intermediate + osm2choc12T3SI(605), -- 2 port OC-12 Singlemode + -- Intermediate + osm2oc12AtmMMPlus(606), -- 2-port OC-12 ATM MM + osm2oc12AtmSIPlus(607), -- 2-port OC-12 ATM SI + osm2oc12PosMMPlus(608), -- 2 port OC12 POS MM + osm2oc12PosSIPlus(609), -- 2 port OC12 POS SI + osm16oc3PosSIPlus(610), -- 16 port OC3 POS SI + osm1oc48PosSSPlus(611), -- 1 port OC-48 POS SS + osm1oc48PosSIPlus(612), -- 1 port OC-48 POS SI + osm1oc48PosSLPlus(613), -- 1 port OC-48 POS SL + osm4oc3PosSIPlus(614), -- 4 port OC3 POS SI + osm8oc3PosSLPlus(615), -- 8 port OC3 POS SL + osm8oc3PosSIPlus(616), -- 8 port OC3 POS SI + osm4oc12PosSIPlus(617), -- 4 port OC12 POS SI + + wsSvcIpSec1(903), -- VPN security blade module + wsSvcCsg1(911), -- Content Services Gateway Module + wsx6148rj45v(912), -- 48 port 10/100BaseTX (RJ-45) + wsx6148rj21v(913), -- 48 port 10/100BaseTX (RJ-21) + wsSvcNam1(914), -- Network Analysis Module + wsx6548getx(915), -- 48 port 10/100/1000BaseT(RJ-45) + wsx6148agetx(921), -- 48 port + -- 10/100/1000BaseTX (RJ-45) + wsx6148arj45(923), -- 48 port 10/100BaseTX (RJ-45) + wsSvcWlan1k9(924), -- Wireless LAN Application Module + wsSvcAon1k9(925), -- Application Oriented Network + -- Switching + ace106500k9(926), -- Application Control Engine + -- 10G Service Module + wsSvcWebVpnk9(927), -- Web VPN Module + wsx6148FeSfp(928), -- 48 port 100Base-X SFP Module + wsSvcAdm1k9(929), -- Anomaly Detection Module + wsSvcAgm1k9(930), -- Anomaly Guard Module + ace046500k9(936), -- Application Control Engine + -- 4G Service Module + wssup720(1001), -- Supervisor Mod 720 CPU board + -- (moduleSubType2) + wssup720base(1002), -- Supervisor Mod 720 base board + wsx6748getx(1007), -- 48 port 10/100/1000 (RJ-45) + wsx670410ge(1008), -- 4 port 10 GE + wsx6748sfp(1009), -- 48 port 1000Base FX (SFP GBIC) + wsx6724sfp(1010), -- 24 port 1000Base FX (SFP GBIC) + wsx670810ge(1016), -- 8 port X2 10 GE with DFC + -- constellation 2 WAN module + wsx65822pa(1101) -- Enhanced FlexWAN Module + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The type of module." + ::= { moduleEntry 2 } + +moduleSerialNumber OBJECT-TYPE + SYNTAX INTEGER (0..999999999) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The serial number of the module in a numeric + format. If the module uses an alphanumeric serial + number, this MIB object will return 0. + + This object is deprecated and replaced by + entPhysicalSerialNum in ENTITY-MIB." + ::= { moduleEntry 3 } + +moduleHwHiVersion OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The high part of the hardware version of the + module. + For example, if the hardware version is 3.1, the + value of moduleHwHiVersion is 3. + + This object is deprecated and replaced by + entPhysicalHardwareRev in ENTITY-MIB." + ::= { moduleEntry 4 } + +moduleHwLoVersion OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The low part of the hardware version of the + module. + For example, if the hardware version is 3.1, the + value of moduleHwLoVersion is 1. + + This object is deprecated and replaced by + entPhysicalHardwareRev in ENTITY-MIB." + ::= { moduleEntry 5 } + +moduleFwHiVersion OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The high part of the firmware version number. For + example, if the firmware version is 3.1, the value + of moduleFwHiVersion is 3. + + This object is deprecated and replaced by + entPhysicalFirmwareRev in ENTITY-MIB." + ::= { moduleEntry 6 } + +moduleFwLoVersion OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The low part of the firmware version number. For + example, if the firmware version is 3.1, the value + of moduleFwLoVersion is 1. + + This object is deprecated and replaced by + entPhysicalFirmwareRev in ENTITY-MIB." + ::= { moduleEntry 7 } + +moduleSwHiVersion OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The high part of the software version number. For + example, if the software version is 3.1, the value + of moduleSwHiVersion is 3. + + This object is deprecated and replaced by + entPhysicalSoftwareRev in ENTITY-MIB." + ::= { moduleEntry 8 } + +moduleSwLoVersion OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The low part of the software version number. For + example, if the software version is 3.1, the value + of moduleSwLoVersion is 1. + + This object is deprecated and replaced by + entPhysicalSoftwareRev in ENTITY-MIB." + ::= { moduleEntry 9 } + +moduleStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + ok(2), -- status ok + minorFault(3), -- minor problem + majorFault(4) -- major problem + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The operational status of the module. If the + status is not ok, the value of moduleTestResult + gives more detailed information about the + module's failure condition(s)." + ::= { moduleEntry 10 } + +moduleTestResult OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The result of the module's self test. A zero + indicates that the module passed all tests. Bits + set in the result indicate error conditions." + ::= { moduleEntry 11 } + +moduleAction OBJECT-TYPE + SYNTAX INTEGER { + other(1), + reset(2), + enable(3), + disable(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This object, when read, returns one of the + following results: + other(1): module permanently enabled + enable(3): module currently enabled + disable(4): module currently disabled + Setting this object to one of the acceptable + values gives the following results: + other(1): gives an error + reset(2): resets the module's control logic + enable(3): if the module status is configurable, + enables the module, else gives error + disable(4): if the module status is + configurable, disables the module, + else gives error. + Setting this object to any other values results in + an error." + ::= { moduleEntry 12 } + +moduleName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A descriptive string used by the network + administrator to name the module." + ::= { moduleEntry 13 } + +moduleNumPorts OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of ports supported by the module." + ::= { moduleEntry 14 } + +modulePortStatus OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A series of bytes containing status information + about the module and each of the ports on the + module. + The first byte contains the status for the module + (same value as moduleStatus), and subsequent bytes + contain status for the first through the last + ports on the module (same value as + portOperStatus)." + ::= { moduleEntry 15 } + +moduleSubType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + empty(2), -- nothing installed + + -- sub modules for the WS-X5505,5506,5509 + wsf5510(3), -- EARL 1 + wsf5511(4), -- EARL 1+ + + -- sub modules for the WS-X5302 + wsx5304(6), -- VIP II carrier + + -- sub modules for the WS-X5530,5540 + wsf5520(7), -- EARL 1+ + wsf5521(8), -- NFFC + wsf5531(9), -- NFFC II + + -- sub modules for the WS-X6K-SUP-2GE + wsf6020(100), -- L2 switching card + wsf6020a(101),-- L2 switching card II + wsf6kpfc(102),-- L3 switching engine + wsf6kpfc2(103),-- L3 switching engine II + + wsf6kvpwr(104), -- inline power card + + wsf6kdfc(105), -- distributed switching + -- engine + wsf6kpfc2a(106),-- L3 switching engine + -- IIA + wsf6kdfca(107), -- distributed switching + -- engine + + -- sub module for SPA Carrier Basecard + vsp300dfc(200), -- VSP 300 Earl7 + -- Daughtercard + wsf6kpfc3a(201), + -- Policy feature card 3A + wsf6kdfc3a(202), + -- Distributed forwarding card 3A + wsf6700dfc3a(203), + -- Distributed forwarding card 3A + wsf6kdfc3bxl(205), + -- Distributed forwarding card 3B + -- XL + wsf6kpfc3bxl(206), + -- Policy feature card 3B XL + wsf6700dfc3bxl(207), + -- Distributed forwarding card 3B + -- XL + wsf6700cfc(208), + -- Centralized forwarding card + wsf6kpfc3b(216), + -- Policy feature card 3B + wsf6700dfc3b(217), + -- Distributed forwarding card 3B + wsf6700dfc3c(218), + -- Distributed forwarding card + wsf6700dfc3cxl(221), + -- Distributed forwarding card + wsf6kdfc3b(223), + -- Distributed forwarding card 3B + mec6524pfc3c(224) + -- Policy feature card 3C + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The type of daughterboard attached to this + module." + ::= { moduleEntry 16 } + +moduleModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The manufacturer's model number for the module." + ::= { moduleEntry 17 } + +moduleHwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..12)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The hardware version of the module." + ::= { moduleEntry 18 } + +moduleFwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..40)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The firmware version of the module." + ::= { moduleEntry 19 } + +moduleSwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..40)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The software version of the module." + ::= { moduleEntry 20 } + +moduleStandbyStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + active(2), + standby(3), + error(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Redundant status of a module that supports + redundancy." + ::= { moduleEntry 21 } + +moduleIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "If the module has a separate IP address to + reach it by, then it is reported here. + Otherwise, this object has a value of + '00000000H'." + ::= { moduleEntry 22 } + +moduleIPAddressVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "If the moduleIPAddress is valid then this + object reports the VLAN to access that IP + address on. Otherwise this object has a value + of zero." + ::= { moduleEntry 23 } + +moduleSubType2 OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + empty(2), -- nothing installed + + -- sub module 2 type for the WS-X5530,5540 + wsu5531(3), -- 2 port 10/100BaseTX (RJ-45) + wsu5533(5), -- 2 port 100BaseFX MM (SC) + wsu5534(6), -- 2 port 1000BaseSX (SC) + wsu5535(7), -- 2 port 100BaseFX SM (SC) + wsu5536(8), -- 2 port 1000BaseLX (SC) + wsu5537(9), -- 4 port 10/100BaseTX (RJ-45) + wsu5538(10), -- 4 port 100BaseFX MM (SC) + wsu5539(11), -- 4 port 100BaseFX SM (SC) + + wsg6488(102), -- 10GE-LR Serial 1310nm long haul + wsg6489(103), -- 10GE-SX4 850nm WWDM short reach + wsg6483(104), -- 10GE-ER Serial 1550nm extended reach + wsg6485(105), -- 10GE-LX4 Campus 1310nm WWDM long + -- haul/short reach. + + wsf6kFe48af(106), -- inline power card + wsf6kGe48af(107), -- inline power card + wsf6kVpwrGe(108), -- inline power card + wsf6kFe48x2af(109), -- inline power card + + -- sub module 2 type for cat6k IOS Software + wsf6kmsfc(207), -- Multilayer switch feature card + wsf6kmsfc2(234), -- Multilayer switch feature card II + + -- sub module 2 type for WS-X4232,4224,4416 + wsu4504fxmt(314), -- 4 port 100BaseFX (MT-RJ) + wsu4502gb(315), -- 2 port 1000BaseX (GBIC) + + -- sub module 2 type for Cat6k modules + wssvcidsupg(402), -- IDS 2 accelerator board + wssvccmm6e1(403), -- 6 E1 port adapter + wssvccmm6t1(404), -- 6 T1 port adapter + wssvccmm24fxs(405), -- 24 FXS port adapter + wssvccmmact(406), -- ad-hoc conferencing and + -- transcoding port adapter + + wsf6kmsfc2a(599), -- Multilayer switch feature card II A + + -- sub module 2 type for sup 720 + wssup720(1001) -- Supervisor Mod 720 CPU board + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The type of daughterboard attached to this + module." + ::= { moduleEntry 24 } + +moduleSlotNum OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This value is determined by the chassis slot + number where the module is located. Valid entries + are 1 to the value of chassisNumSlots" + ::= { moduleEntry 25 } + +moduleSerialNumberString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The serial number of the module. This MIB object + will return the module serial number for any + module that either a numeric or an alphanumeric + serial number is being used." + ::= { moduleEntry 26 } + +moduleEntPhysicalIndex OBJECT-TYPE + SYNTAX PhysicalIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The value of the instance of the entPhysicalIndex + object, defined in ENTITY-MIB, for the entity + physical index corresponding to this module." + ::= { moduleEntry 27 } + +moduleAdditionalStatus OBJECT-TYPE + SYNTAX BITS { + fruInstalled(0), + powerDenied(1), + faulty(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The additional status of the module. + + fruInstalled(0) indicates that whether or not + FRU is installed on the module. + + powerDenied(1) indicates that whether phones + connected to the ports of this module are + denied of power. + + faulty(2) indicates hardware faulty." + ::= { moduleEntry 28} + + + +-- the port group + +-- Implementation of the port group is current for all Cisco Workgroup +-- Stack products. + +portTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of port entries. The number of entries is + determined by the number of modules in the chassis + and the number of ports on each module." + ::= { portGrp 1 } + +portEntry OBJECT-TYPE + SYNTAX PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing information for a particular + port on a module." + INDEX { portModuleIndex, portIndex } + ::= { portTable 1 } + +PortEntry ::= + SEQUENCE { + portModuleIndex + INTEGER, + portIndex + INTEGER, + portCrossIndex + INTEGER, + portName + DisplayString, + portType + INTEGER, + portOperStatus + INTEGER, + portCrossGroupIndex + INTEGER, + portAdditionalStatus + INTEGER, + portAdminSpeed + INTEGER, + portDuplex + INTEGER, + portIfIndex + INTEGER, + portSpantreeFastStart + INTEGER, + portAdminRxFlowControl + INTEGER, + portOperRxFlowControl + INTEGER, + portAdminTxFlowControl + INTEGER, + portOperTxFlowControl + INTEGER, + portMacControlTransmitFrames + Counter32, + portMacControlReceiveFrames + Counter32, + portMacControlPauseTransmitFrames + Counter32, + portMacControlPauseReceiveFrames + Counter32, + portMacControlUnknownProtocolFrames + Counter32, + portLinkFaultStatus + INTEGER, + portAdditionalOperStatus + BITS, + portInlinePowerDetect + TruthValue, + portEntPhysicalIndex + PhysicalIndex, + portErrDisableTimeOutEnable + INTEGER + } + +portModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located." + ::= { portEntry 1 } + +portIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module. The value is determined by the + location of the port on the module. Valid entries + are 1 to the value of moduleNumPorts for this + module." + ::= { portEntry 2 } + +portCrossIndex OBJECT-TYPE + SYNTAX INTEGER (1..4080) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A cross-reference to the port's index within + another mib group. The value is dependent on the + type of port. For an FDDI port, this corresponds + to the snmpFddiPORTIndex." + ::= { portEntry 3 } + +portName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A descriptive string used by the network + administrator to name the port." + ::= { portEntry 4 } + +portType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + cddi(2), -- CDDI (UTP FDDI) + fddi(3), -- Multi Mode fiber FDDI + tppmd(4), -- ANSI standard UTP FDDI + mlt3(5), -- MLT-3 UTP FDDI + sddi(6), -- STP FDDI + smf(7), -- Single Mode fiber FDDI + e10BaseT(8), -- UTP Ethernet + e10BaseF(9), -- Multi Mode fiber Ethernet + scf(10), -- small-connector fiber FDDI + e100BaseTX(11),-- UTP Fast Ethernet (Cat 5) + e100BaseT4(12),-- UTP Fast Ethernet (Cat 3) + e100BaseF(13), -- Multi Mode fiber Fast + -- Ethernet + atmOc3mmf(14), -- Multi Mode fiber OC-3 ATM + atmOc3smf(15), -- Single Mode fiber OC-3 ATM + atmOc3utp(16), -- UTP OC-3 ATM + e100BaseFsm(17), -- Single Mode fiber Fast + -- Ethernet + e10a100BaseTX(18), -- 10/100 UTP Ethernet + -- (Cat 3/5) + mii(19), -- MII Ethernet + vlanRouter(20), -- vlan router connection + remoteRouter(21), -- + tokenring(22), -- Token Ring + atmOc12mmf(23),-- Multi Mode fiber OC-12 ATM + atmOc12smf(24),-- Single Mode fiber OC-12 + -- ATM + atmDs3(25), -- DS-3 ATM + tokenringMmf(26), -- Multi Mode fiber Token + -- Ring + e1000BaseLX(27), -- Long Wave fiber Giga + -- Ethernet + e1000BaseSX(28), -- Short Wave fiber Giga + -- Ethernet + e1000BaseCX(29), -- Copper Gigabit Ethernet + networkAnalysis(30), -- Network Analysis + -- connection + e1000Empty(31), -- GBIC not installed + e1000BaseLH(32), -- Long Haul fiber Giga + -- Ethernet + e1000BaseT(33), -- Twisted Pair Giga + -- Ethernet + e1000UnsupportedGbic(34), + -- Unsupported Gbic Giga + -- Ethernet + e1000BaseZX(35), -- Extended Reach Giga + -- Ethernet + depi2(36), -- Digital Ethernet Phone + -- Interface 2 Mbps + t1(37), -- T1 + e1(38), -- E1 + fxs(39), -- FXS + fxo(40), -- FXO + transcoding(41), -- transcoding DSP + conferencing(42),-- conferencing DSP + atmOc12mm(43), -- OC-12 ATM MMF + atmOc12smi(44), -- OC-12 ATM SMIR + atmOc12sml(45), -- OC-12 ATM SML + posOc12mm(46), -- OC-12 POS MM + posOc12smi(47), -- OC-12 POS SMIR + posOc12sml(48), -- OC-12 POS SMLR + posOc48sms(49), -- OC-48 POS SMS + posOc48smi(50), -- OC-48 POS SMIR + posOc48sml(51), -- OC-48 POS SMLR + posOc3mm(52), -- OC-3 POS MM + posOc3smi(53), -- OC-3 POS SMIR + posOc3sml(54), -- OC-3 POS SMLR + intrusionDetect(55), -- intrusion detection + e10GBaseCPX(56), --10GE Parallel 860nm Laser + e10GBaseLX4(57), -- 10GE Wide-WDM 1310nm + -- Laser + e10GBaseEX4(59), -- 10GE Wide-WDM 1550 Laser + e10GEmpty(60), -- 10GE not installed + e10a100a1000BaseT(61), -- 10/100/1000 BaseT + dptOc48mm(62), -- OC-48 DPT MM + dptOc48smi(63), -- OC-48 DPT SMIR + dptOc48sml(64), -- OC-48 DPT SMLR + e10GBaseLR(65), -- 10GE Serial 1310nm Laser + chOc12smi(66), -- OC-12 channelized SMIR + chOc12mm(67), -- OC-12 channelized MM + chOc48ss(68), -- OC-48 channelized SS + chOc48smi(69), -- OC-48 channelized SMIR + e10GBaseSX4(70), -- 10GE Wide-WDM 850nm + -- Laser + e10GBaseER(71), -- 10GE Serial 1550nm Laser + contentEngine(72),-- content engine + -- connection + ssl(73), -- SSL connection + firewall(74), -- Firewall connection + vpnIpSec(75), -- VPN IP Sec connection + ct3(76), -- DS3 Channelized + e1000BaseCwdm1470(77), + -- CWDM 1470 Giga Ethernet + e1000BaseCwdm1490(78), + -- CWDM 1490 Giga Ethernet + e1000BaseCwdm1510(79), + -- CWDM 1510 Giga Ethernet + e1000BaseCwdm1530(80), + -- CWDM 1530 Giga Ethernet + e1000BaseCwdm1550(81), + -- CWDM 1550 Giga Ethernet + e1000BaseCwdm1570(82), + -- CWDM 1570 Giga Ethernet + e1000BaseCwdm1590(83), + -- CWDM 1590 Giga Ethernet + e1000BaseCwdm1610(84), + -- CWDM 1610 Giga Ethernet + e1000BaseBT(85), -- BT Giga Ethernet + e1000BaseUnapproved(86), + -- Unappeoved Giga Ethernet + chOc3smi(87), -- OC-3 channelized SMIR + mcr(88), -- Mobile Context Registry + -- connection + coe(89), -- Content Optimization Engine + -- connection + mwa(90), -- Mobile Wireless Application + -- connection + psd(91), -- Persistent Store Device + -- connection + e100BaseLX(92), -- Long Wave fiber Fast + -- Ethernet + e10GBaseSR(93), -- 10GE Serial 850nm Laser + e10GBaseCX4(94), -- 10GE XAUI Copper + e10GBaseWdm1550(95), + -- 10GE Serial 1550nm Laser + e10GBaseEdc1310(96), + -- 10GE Serial 1310nm EDC Laser + e10GBaseSW(97), -- 10GE Laser + e10GBaseLW(98), -- 10GE Laser + e10GBaseEW(99), -- 10GE Laser + lwa(100), -- Lan Wireless Application + -- connection + aons(101), -- Application Oriented Network + -- Switching + sslVpn(102), -- Web/VPN + e100BaseEmpty(103), -- Fiber Fast Ethernet + -- not installed + adsm(104), -- Distributed Denial of Service + -- Detector + agsm(105), -- Distributed Denial of Service + -- Guard + aces(106), -- Application Control Engine + -- Service + e1000BaseUnknown(1000), + -- Unknown Giga Ethernet + e10GBaseUnknown(1001), -- Unknown 10G + e10GBaseUnapproved(1002), -- Unapproved 10G + + e1000BaseWdmRxOnly(1003), + -- WDM Rx ONLY Giga Ether + e1000BaseDwdm3033(1004), + -- DWDM 3033 Giga Ethernet + e1000BaseDwdm3112(1005), + -- DWDM 3112 Giga Ethernet + e1000BaseDwdm3190(1006), + -- DWDM 3190 Giga Ethernet + e1000BaseDwdm3268(1007), + -- DWDM 3268 Giga Ethernet + e1000BaseDwdm3425(1008), + -- DWDM 3425 Giga Ethernet + e1000BaseDwdm3504(1009), + -- DWDM 3504 Giga Ethernet + e1000BaseDwdm3582(1010), + -- DWDM 3582 Giga Ethernet + e1000BaseDwdm3661(1011), + -- DWDM 3661 Giga Ethernet + e1000BaseDwdm3819(1012), + -- DWDM 3819 Giga Ethernet + e1000BaseDwdm3898(1013), + -- DWDM 3898 Giga Ethernet + e1000BaseDwdm3977(1014), + -- DWDM 3977 Giga Ethernet + e1000BaseDwdm4056(1015), + -- DWDM 4056 Giga Ethernet + e1000BaseDwdm4214(1016), + -- DWDM 4214 Giga Ethernet + e1000BaseDwdm4294(1017), + -- DWDM 4294 Giga Ethernet + e1000BaseDwdm4373(1018), + -- DWDM 4373 Giga Ethernet + e1000BaseDwdm4453(1019), + -- DWDM 4453 Giga Ethernet + e1000BaseDwdm4612(1020), + -- DWDM 4612 Giga Ethernet + e1000BaseDwdm4692(1021), + -- DWDM 4692 Giga Ethernet + e1000BaseDwdm4772(1022), + -- DWDM 4772 Giga Ethernet + e1000BaseDwdm4851(1023), + -- DWDM 4851 Giga Ethernet + e1000BaseDwdm5012(1024), + -- DWDM 5012 Giga Ethernet + e1000BaseDwdm5092(1025), + -- DWDM 5092 Giga Ethernet + e1000BaseDwdm5172(1026), + -- DWDM 5172 Giga Ethernet + e1000BaseDwdm5252(1027), + -- DWDM 5252 Giga Ethernet + e1000BaseDwdm5413(1028), + -- DWDM 5413 Giga Ethernet + e1000BaseDwdm5494(1029), + -- DWDM 5494 Giga Ethernet + e1000BaseDwdm5575(1030), + -- DWDM 5575 Giga Ethernet + e1000BaseDwdm5655(1031), + -- DWDM 5655 Giga Ethernet + e1000BaseDwdm5817(1032), + -- DWDM 5817 Giga Ethernet + e1000BaseDwdm5898(1033), + -- DWDM 5898 Giga Ethernet + e1000BaseDwdm5979(1034), + -- DWDM 5979 Giga Ethernet + e1000BaseDwdm6061(1035), + -- DWDM 6061 Giga Ethernet + + e10GBaseWdmRxOnly(1036), + -- DWDM 10G WDM Rx ONLY + e10GBaseDwdm3033(1037), + -- DWDM 10G 3033 Laser + e10GBaseDwdm3112(1038), + -- DWDM 10G 3112 Laser + e10GBaseDwdm3190(1039), + -- DWDM 10G 3190 Laser + e10GBaseDwdm3268(1040), + -- DWDM 10G 3268 Laser + e10GBaseDwdm3425(1041), + -- DWDM 10G 3425 Laser + e10GBaseDwdm3504(1042), + -- DWDM 10G 3504 Laser + e10GBaseDwdm3582(1043), + -- DWDM 10G 3582 Laser + e10GBaseDwdm3661(1044), + -- DWDM 10G 3661 Laser + e10GBaseDwdm3819(1045), + -- DWDM 10G 3819 Laser + e10GBaseDwdm3898(1046), + -- DWDM 10G 3898 Laser + e10GBaseDwdm3977(1047), + -- DWDM 10G 3977 Laser + e10GBaseDwdm4056(1048), + -- DWDM 10G 4056 Laser + e10GBaseDwdm4214(1049), + -- DWDM 10G 4214 Laser + e10GBaseDwdm4294(1050), + -- DWDM 10G 4294 Laser + e10GBaseDwdm4373(1051), + -- DWDM 10G 4373 Laser + e10GBaseDwdm4453(1052), + -- DWDM 10G 4453 Laser + e10GBaseDwdm4612(1053), + -- DWDM 10G 4612 Laser + e10GBaseDwdm4692(1054), + -- DWDM 10G 4692 Laser + e10GBaseDwdm4772(1055), + -- DWDM 10G 4772 Laser + e10GBaseDwdm4851(1056), + -- DWDM 10G 4851 Laser + e10GBaseDwdm5012(1057), + -- DWDM 10G 5012 Laser + e10GBaseDwdm5092(1058), + -- DWDM 10G 5092 Laser + e10GBaseDwdm5172(1059), + -- DWDM 10G 5172 Laser + e10GBaseDwdm5252(1060), + -- DWDM 10G 5252 Laser + e10GBaseDwdm5413(1061), + -- DWDM 10G 5413 Laser + e10GBaseDwdm5494(1062), + -- DWDM 10G 5494 Laser + e10GBaseDwdm5575(1063), + -- DWDM 10G 5575 Laser + e10GBaseDwdm5655(1064), + -- DWDM 10G 5655 Laser + e10GBaseDwdm5817(1065), + -- DWDM 10G 5817 Laser + e10GBaseDwdm5898(1066), + -- DWDM 10G 5898 Laser + e10GBaseDwdm5979(1067), + -- DWDM 10G 5979 Laser + e10GBaseDwdm6061(1068), + -- DWDM 10G 6061 Laser + e1000BaseBX10D(1069), + -- Giga Ethernet bi-directional 10km + -- Downlink over SMF + e1000BaseBX10U(1070), + -- Giga Ethernet bi-directional 10km + -- Uplink over SMF + e100BaseUnknown(1071), + -- Unknown Fiber Fast Ethernet + e100BaseUnapproved(1072), + -- Unapproved Fiber Fast Ethernet + e100BaseSX(1073), + -- Short Wave Fiber Fast Ethernet + e100BaseBX10D(1074), + -- Fiber Fast Ethernet bi-directional + -- 10km Downlink over SMF + e100BaseBX10U(1075), + -- Fiber Fast Ethernet bi-directional + -- 10km Uplink over SMF + e10GBaseBad(1076), -- Bad 10G + e10GBaseZR(1077), -- 10GE Laser + e100BaseEX(1078), + -- Fiber Fast Ethernet + e100BaseZX(1079) + -- Extended Reach Fiber Fast Ethernet + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The type of physical layer medium dependent + interface on the port." + ::= { portEntry 5 } + +portOperStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + ok(2), -- status ok + minorFault(3), -- minor problem + majorFault(4) -- major problem + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The current operational status of the port." + ::= { portEntry 6 } + +portCrossGroupIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A cross-reference to another mib group for this + port. The value is dependent on the type of port. + For an FDDI port this corresponds to the + snmpFddiPORTSMTIndex." + ::= { portEntry 7 } + +portAdditionalStatus OBJECT-TYPE + SYNTAX INTEGER (0..7) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Additional status information for the port. The + value is a sum. It initially takes the value zero, + then for each state that is true, 2 raised to a + power is added to the sum. The powers are + according to the following table: + State Power + Transmit 0 + Receive 1 + Collision 2 + Transmit state indicates that at least one packet + was transmitted by the port in the last polling + period. Receive state indicates that at least one + packet was received by the port in the last + polling period. Collision state indicates that + at least one collision was detected on the port + in the last polling period. + Note that if a state is not applicable to a + particular port or additional status is not + supported on a particular port, its value is + always false for that port." + ::= { portEntry 8 } + +portAdminSpeed OBJECT-TYPE + SYNTAX INTEGER { + autoDetect(1), + autoDetect10100(2), + -- Auto Detect with, + -- only allowed values: 10 & 100 + s4000000(4000000), -- 4 Mbps + s10000000(10000000), -- 10 Mbps + s16000000(16000000), -- 16 Mbps + s45000000(45000000), -- 45 Mbps + s64000000(64000000), -- 64 Mbps + s100000000(100000000), -- 100 Mbps + s155000000(155000000), -- 155 Mbps + s400000000(400000000), -- 400 Mbps + s622000000(622000000), -- 622 Mbps + s1000000000(1000000000), -- 1 Gbps + s1544000(1544000), -- 1.544 Mbps + s2000000(2000000), -- 2 Mbps + s2048000(2048000), -- 2.048 Mbps + s64000(64000), -- 64 kps + s10G(10) -- 10 Gps + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The desired speed of the port. + The current operational speed of the port can be + determined from ifSpeed." + ::= { portEntry 9 } + +portDuplex OBJECT-TYPE + SYNTAX INTEGER { + half(1), + full(2), + disagree(3), -- read-only + auto(4) -- read-only + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the port is operating in half- + duplex, full-duplex, disagree or auto negotiation + mode. If the port could not agree with the far end + on port duplex, the port will be in disagree(3) + mode." + ::= { portEntry 10 } + +portIfIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The value of the instance of the ifIndex object, + defined in MIB-II, for the interface corresponding + to this port." + ::= { portEntry 11 } + +portSpantreeFastStart OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether the port is operating in + spantree fast start mode. A port with fast start + enabled is immediately put in spanning tree + forwarding state on link up, rather than starting + in blocking state which is the normal operation. + This is useful when the port is known to be + connected to a single station which has problems + waiting for the normal spanning tree operation to + put the port in forwarding state. + + This object is deprecated and replaced by + stpxFastStartPortTable in + CISCO-STP-EXTENSIONS-MIB." + DEFVAL { disabled } + ::= { portEntry 12 } + +portAdminRxFlowControl OBJECT-TYPE + SYNTAX INTEGER { on(1), off(2), desired(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the receive flow control administrative + status set on the port. If the status is set to + on(1), the port will require the far end to send + flow control. If the status is set to off(2), the + port will not allow far end to send flow control. + If the status is set to desired(3), the port will + allow the far end to send the flow control." + DEFVAL { off } + ::= { portEntry 13} + +portOperRxFlowControl OBJECT-TYPE + SYNTAX INTEGER { on(1), off(2), disagree(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the receive flow control operational + status of the port. If the port could not agree + with the far end on a link protocol, its + operational status will be disagree(3)." + ::= { portEntry 14} + +portAdminTxFlowControl OBJECT-TYPE + SYNTAX INTEGER { on(1), off(2), desired(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the transmit flow control + administrative status set on the port. + If the status is set to on(1), the port will send + flow control to the far end. + If the status is set to off(2), the port will not + send flow control to the far end. If the status is + set to desired(3), the port will send flow control + to the far end if the far end supports it." + ::= { portEntry 15} + +portOperTxFlowControl OBJECT-TYPE + SYNTAX INTEGER { on(1), off(2), disagree(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the transmit flow control operational + status of the port. If the port could not agree + with the far end on a link protocol, its + operational status will be disagree(3)." + ::= { portEntry 16} + +portMacControlTransmitFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of MAC control frames passed to + the MAC sublayer for transmission." + ::= { portEntry 17} + +portMacControlReceiveFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of MAC control frames passed by + the MAC sublayer to the MAC Control sublayer on + receive." + ::= { portEntry 18} + +portMacControlPauseTransmitFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of PAUSE frames passed to + the MAC sublayer for transmission." + ::= { portEntry 19} + +portMacControlPauseReceiveFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of PAUSE frames passed by + the MAC sublayer to the MAC Control sublayer + on receive." + ::= { portEntry 20} + +portMacControlUnknownProtocolFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of MAC Control frames received + with an opcode that is not supported by the + device." + ::= { portEntry 21} + +portLinkFaultStatus OBJECT-TYPE + SYNTAX INTEGER { + noFault(1), + nearEndFault(2), + nearEndConfigFail(3), + farEndDisable(4), + farEndFault(5), + farEndConfigFail(6), + notApplicable(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Specifies additional link fault status on a + gigabit link. + + noFault: + Link is up and operational. + nearEndFault: + The port is enabled but there is no GBIC + present or the local port cannot + synchronize with the remote end. + nearEndConfigFail: + The local port has detected a + configuration mismatch with the remote + end. + farEndDisable: + The far end is in the disabled state. + farEndFault: + The remote port is cannot synchronize. + farEndConfigFail: + The remote port has detected a + configuration mismatch with the local end. + notApplicable: + Link fault status is not applicable on + this port." + ::= { portEntry 22 } + +portAdditionalOperStatus OBJECT-TYPE + SYNTAX BITS { + other(0), -- none of the following + connected(1), + standby(2), + faulty(3), + notConnected(4), + inactive(5), + shutdown(6), + dripDis(7), + disabled(8), + monitor(9), + errdisable(10), + linkFaulty(11), + onHook(12), + offHook(13), + reflector(14) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The current operational status of the port which + is showing additional detailed information of the + port." + ::= { portEntry 23 } + +portInlinePowerDetect OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicate if the port detects an inline power capable + device connected to it." + ::= { portEntry 24 } + +portEntPhysicalIndex OBJECT-TYPE + SYNTAX PhysicalIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The value of the instance of the entPhysicalIndex + object, defined in ENTITY-MIB, for the + entity physical index corresponding to this port." + ::= { portEntry 25 } + +portErrDisableTimeOutEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether a port that is put into + errdisable state by a cause as specified by + sysErrDisableTimeoutEnable will be re-enabled + automatically during the timeout interval as + specified by sysErrDisableTimeoutInterval." + DEFVAL { enabled } + ::= { portEntry 26 } + + +-- the tftp group + +-- Implementation of the tftp group is current for all Cisco Workgroup +-- Stack products which implement tftp upload/download functions. + +tftpHost OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Name of source/destination host for the TFTP + transfer or storage device transfer. If the name + is for the TFTP transfer, it can be the IP + address or the host name. If the name for the + storage device transfer, it will be in the format + of deviceName: (e.g. slot0:, slot1:)." + ::= { tftpGrp 1 } + +tftpFile OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Name of file for the TFTP transfer or for storage + device transfer." + ::= { tftpGrp 2 } + +tftpModule OBJECT-TYPE + SYNTAX INTEGER (0..16) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Which module's code/configuration is being + transferred." + ::= { tftpGrp 3 } + +tftpAction OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + downloadConfig(2), + uploadConfig(3), + downloadSw(4), + uploadSw(5), + downloadFw(6), + uploadFw(7) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Setting this object to one of the acceptable + values initiates the requested action using the + information given in tftpHost, tftpFile, + tftpModule. + + downloadConfig(2): receive configuration from + host/file + uploadConfig(3) : send configuration to + host/file + downloadSw(4) : receive software image from + host/file + uploadSw(5) : send software image to + host/file + downloadFw(6) : receive firmware image from + host/file + uploadFw(7) : send firmware image to + host/file + Setting this object to any other value results in + an error." + ::= { tftpGrp 4 } + +tftpResult OBJECT-TYPE + SYNTAX INTEGER { + inProgress(1), + success(2), + noResponse(3), + tooManyRetries(4), + noBuffers(5), + noProcesses(6), + badChecksum(7), + badLength(8), + badFlash(9), + serverError(10), + userCanceled(11), + wrongCode(12), + fileNotFound(13), + invalidTftpHost(14), + invalidTftpModule(15), + accessViolation(16), + unknownStatus(17), + invalidStorageDevice(18), + insufficientSpaceOnStorageDevice(19), + insufficientDramSize(20), + incompatibleImage(21) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Contains result of the last tftp action request." + ::= { tftpGrp 5 } + + + +-- the brouter group + +--Implementation of the brouter group is current for all Cisco Workgroup +--Stack products which implement combined bridging/routing functions. + +brouterEnableRip OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the RIP protocol is enabled." + DEFVAL { enabled } + ::= { brouterGrp 1 } + +brouterEnableSpantree OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates if Spanning Tree protocol is enabled." + DEFVAL { disabled } + ::= { brouterGrp 2 } + +brouterEnableGiantCheck OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether special handling of giant + packets is enabled." + DEFVAL { disabled } + ::= { brouterGrp 3 } + +brouterEnableIpFragmentation OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether IP fragmentation is enabled." + DEFVAL { enabled } + ::= { brouterGrp 4 } + +brouterEnableUnreachables OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether ICMP unreachable messages are + sent by the system." + DEFVAL { enabled } + ::= { brouterGrp 5 } + +brouterCamAgingTime OBJECT-TYPE + SYNTAX INTEGER (0..1000000) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The aging time for the CAM table. This duplicate + item is the same value as dot1dTpAgingTime." + DEFVAL { 300 } + ::= { brouterGrp 6 } + +brouterCamMode OBJECT-TYPE + SYNTAX INTEGER { filtering(1), forwarding(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Mode in which the CAM module is operating." + DEFVAL { filtering } + ::= { brouterGrp 7 } + +brouterIpxSnapToEther OBJECT-TYPE + SYNTAX INTEGER { + snap(1), + ethernetII(2), + iso8023(3), + raw8023(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The default translation for IPX packets when + bridging from FDDI SNAP to Ethernet." + DEFVAL { raw8023 } + ::= { brouterGrp 8 } + +brouterIpx8023RawToFddi OBJECT-TYPE + SYNTAX INTEGER { + snap(1), + iso8022(5), + fddiRaw(6) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The default translation for IPX packets when + bridging from Ethernet 802.3 Raw to FDDI." + DEFVAL { snap } + ::= { brouterGrp 9 } + +brouterEthernetReceiveMax OBJECT-TYPE + SYNTAX INTEGER (1..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Maximum number of Ethernet receive buffers + processed at one time per port." + DEFVAL { 64 } + ::= { brouterGrp 10 } + +brouterEthernetTransmitMax OBJECT-TYPE + SYNTAX INTEGER (1..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Maximum number of Ethernet transmit buffers + processed at one time per port." + DEFVAL { 64 } + ::= { brouterGrp 11 } + +brouterFddiReceiveMax OBJECT-TYPE + SYNTAX INTEGER (1..512) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Maximum number of FDDI receive buffers processed + at one time per port." + DEFVAL { 256 } + ::= { brouterGrp 12 } + +brouterFddiTransmitMax OBJECT-TYPE + SYNTAX INTEGER (1..512) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Maximum number of FDDI transmit buffers processed + at one time per port." + DEFVAL { 256 } + ::= { brouterGrp 13 } + +-- the brouter port table + +brouterPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF BrouterPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of brouter port entries. The number of + entries is determined by the number of modules in + the chassis and the number of ports on each + module." + ::= { brouterGrp 14 } + +brouterPortEntry OBJECT-TYPE + SYNTAX BrouterPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing bridge/router information for a + particular port on a module." + INDEX { brouterPortModule, brouterPort } + ::= { brouterPortTable 1 } + +BrouterPortEntry ::= + SEQUENCE { + brouterPortModule + INTEGER, + brouterPort + INTEGER, + brouterPortIpVlan + VlanIndex, + brouterPortIpAddr + IpAddress, + brouterPortNetMask + IpAddress, + brouterPortBroadcast + IpAddress, + brouterPortBridgeVlan + INTEGER, + brouterPortIpHelpers + OCTET STRING + } + +brouterPortModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module index where this port is located." + ::= { brouterPortEntry 1 } + +brouterPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { brouterPortEntry 2 } + +brouterPortIpVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The IP Virtual LAN to which this port belongs." + ::= { brouterPortEntry 3 } + +brouterPortIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's IP address." + ::= { brouterPortEntry 4 } + +brouterPortNetMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's subnet mask." + ::= { brouterPortEntry 5 } + +brouterPortBroadcast OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's broadcast address." + ::= { brouterPortEntry 6 } + +brouterPortBridgeVlan OBJECT-TYPE + SYNTAX INTEGER (0..1023) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The bridge Virtual LAN to which this port + belongs." + ::= { brouterPortEntry 7 } + +brouterPortIpHelpers OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An indication of which other Virtual LANs UDP/IP + broadcasts received on this port will be forwarded + to. The normal situation is broadcasts NOT + forwarded beyond the originating VLAN, but it can + be useful in certain circumstances. This is an + octet string value with bits set to indicate + forwarded to VLANs. It can be interpreted as a sum + of f(x) as x goes from 0 to 1023, where f(x) = 0 + for no forwarding to VLAN x and f(x) = exp(2, x) + for VLAN x forwarded to. If all bits are 0 or the + octet string is zero length, then UDP/IP + broadcasts are not being forwarded to other + VLANs." + ::= { brouterPortEntry 8 } + +-- additional brouter group objects + +brouterIpx8022ToEther OBJECT-TYPE + SYNTAX INTEGER { + snap(1), + ethernetII(2), + iso8023(3), + raw8023(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The default translation for IPX packets when + bridging from FDDI 802.2 to Ethernet." + DEFVAL { iso8023 } + ::= { brouterGrp 15 } + +brouterEnableTransitEncapsulation OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether Ethernet packets are + encapsulated on FDDI via transit encapsulation + protocol. Normally this option would be disabled + to allow translational bridging between Ethernet + and FDDI to take place." + DEFVAL { disabled } + ::= { brouterGrp 16 } + +brouterEnableFddiCheck OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether MAC addresses learned one side + of a translational bridge should not be allowed to + be learned on the other side of the bridge. The + presence certain misbehaving devices on the + network may require this option to be enabled." + DEFVAL { disabled } + ::= { brouterGrp 17 } + +brouterEnableAPaRT OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the Automatic Packet + Recognition and Translation feature is enabled on + translational bridge(s) in the box. If APaRT is + disabled, the default translations as defined by + the objects brouterIpx8022ToEther, + brouterIpx8023RawToFddi, brouterIpxSnapToEther, + etc, are used on all packets and no automatic + learning of translation information is performed." + DEFVAL { enabled } + ::= { brouterGrp 18 } + + + +-- the filter group + +-- Implementation of the filter group is current for all Cisco Workgroup +-- Stack products which implement custom packet filtering functions. + +-- the filter mac table + +filterMacTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterMacEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of filter mac entries." + ::= { filterGrp 1 } + +filterMacEntry OBJECT-TYPE + SYNTAX FilterMacEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing MAC address filter information." + INDEX { filterMacModule, filterMacPort, + filterMacAddress } + ::= { filterMacTable 1 } + +FilterMacEntry ::= + SEQUENCE { + filterMacModule + INTEGER, + filterMacPort + INTEGER, + filterMacAddress + MacAddress, + filterMacType + INTEGER + } + +filterMacModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { filterMacEntry 1 } + +filterMacPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { filterMacEntry 2 } + +filterMacAddress OBJECT-TYPE + SYNTAX MacAddress -- OCTET STRING (SIZE (6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A MAC address. If the source or destination MAC + address equals this value, a match occurs. The + packet is dropped if a match occurs and deny(1) + was specified. The packet is dropped if a match + doesn't occur and at least one MAC address filter + was specified with permit(3)." + ::= { filterMacEntry 3 } + +filterMacType OBJECT-TYPE + SYNTAX INTEGER { + deny(1), -- add deny entry + invalid(2), -- remove this entry + permit(3), -- add permit entry + permitSrc(4), -- add permit source entry + permitDst(5), -- add permit dest entry + denySrc(6), -- add deny source entry + denyDst(7), -- add deny dest entry + denySrcLearn(8) -- add deny source learn entry + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Setting this object to invalid(2) removes the + corresponding entry from the filterMacTable. + To add a new entry to the filterMacTable, set this + object to deny(1) or any value from permit(3) to + denySrcLearn(8) for a module, port, and MAC + address not already in the table." + ::= { filterMacEntry 4 } + +-- the filter vendor table + +filterVendorTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterVendorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of filter vendor ID entries." + ::= { filterGrp 2 } + +filterVendorEntry OBJECT-TYPE + SYNTAX FilterVendorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing vendor ID filter information." + INDEX { filterVendorModule, filterVendorPort, + filterVendorId } + ::= { filterVendorTable 1 } + +FilterVendorEntry ::= + SEQUENCE { + filterVendorModule + INTEGER, + filterVendorPort + INTEGER, + filterVendorId + VendorIdType, + filterVendorType + INTEGER + } + +filterVendorModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { filterVendorEntry 1 } + +filterVendorPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { filterVendorEntry 2 } + +filterVendorId OBJECT-TYPE + SYNTAX VendorIdType -- OCTET STRING (SIZE (3)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The vendor ID portion of a MAC address. If the + source or destination MAC address has the same + vendor ID, a match occurs. The packet is dropped + if a match occurs and deny(1) was specified. The + packet is dropped if a match doesn't occur and at + least one Vendor ID filter was specified with + permit(3)." + ::= { filterVendorEntry 3 } + +filterVendorType OBJECT-TYPE + SYNTAX INTEGER { + deny(1), -- add deny entry + invalid(2), -- remove this entry + permit(3) -- add permit entry + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Setting this object to invalid(2) removes the + corresponding entry from the filterVendorTable. + To add a new entry to the filterVendorTable, set + this object to deny(1) or permit(3) for a module, + port, and vendor ID not already in the table." + ::= { filterVendorEntry 4 } + +-- the filter protocol table + +filterProtocolTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterProtocolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of filter protocol entries." + ::= { filterGrp 3 } + +filterProtocolEntry OBJECT-TYPE + SYNTAX FilterProtocolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing PROTOCOL address filter + information." + INDEX { filterProtocolModule, filterProtocolPort, + filterProtocolValue } + ::= { filterProtocolTable 1 } + +FilterProtocolEntry ::= + SEQUENCE { + filterProtocolModule + INTEGER, + filterProtocolPort + INTEGER, + filterProtocolValue + INTEGER, + filterProtocolType + INTEGER + } + +filterProtocolModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { filterProtocolEntry 1 } + +filterProtocolPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { filterProtocolEntry 2 } + +filterProtocolValue OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A 16-bit protocol value. If the packet's type + field or the packet's DSAP/SSAP field is equal to + this value, a match occurs. The packet is dropped + if a match occurs and deny(1) was specified. The + packet is dropped if a match doesn't occur and at + least one protocol type filter was specified with + permit(3)." + ::= { filterProtocolEntry 3 } + +filterProtocolType OBJECT-TYPE + SYNTAX INTEGER { + deny(1), -- add deny entry + invalid(2), -- remove this entry + permit(3) -- add permit entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Setting this object to invalid(2) removes the + corresponding entry from the filterProtocolTable. + To add a new entry to the filterProtocolTable, set + this object to deny(1) or permit(3) for a module, + port, and protocol value not already in the + table." + ::= { filterProtocolEntry 4 } + +-- the filter test table + +filterTestTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterTestEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of filter test entries." + ::= { filterGrp 4 } + +filterTestEntry OBJECT-TYPE + SYNTAX FilterTestEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing test filter information." + INDEX { filterTestModule, filterTestPort, + filterTestIndex } + ::= { filterTestTable 1 } + +FilterTestEntry ::= + SEQUENCE { + filterTestModule + INTEGER, + filterTestPort + INTEGER, + filterTestIndex + INTEGER, + filterTestType + INTEGER, + filterTestOffset + INTEGER, + filterTestValue + INTEGER, + filterTestMask + INTEGER + } + +filterTestModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { filterTestEntry 1 } + +filterTestPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { filterTestEntry 2 } + +filterTestIndex OBJECT-TYPE + SYNTAX INTEGER (1..8) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies a test + for a particular module/port." + ::= { filterTestEntry 3 } + +filterTestType OBJECT-TYPE + SYNTAX INTEGER { + valid(1), -- add this entry + invalid(2) -- remove this entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Setting this object to invalid(2) removes the + corresponding entry from the filterTestTable. To + add a new entry to the filterTestTable, set this + object to valid(1) for a module, port, and test + index not already in the table." + ::= { filterTestEntry 4 } + +filterTestOffset OBJECT-TYPE + SYNTAX INTEGER (0..4500) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "A byte offset into packet. Must be a 32-bit word + aligned offset, i.e. 0, 4, 8, etc." + ::= { filterTestEntry 5 } + +filterTestValue OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "A 32-bit value to be compared against the packet + location specified by filterTestOffset." + ::= { filterTestEntry 6 } + +filterTestMask OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "A 32-bit value to be bitwise ANDed with the + packet location specified by filterTestOffset + before being compared to filterTestValue." + ::= { filterTestEntry 7 } + +-- the filter port table + +filterPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of filter port entries. The number of + entries is determined by the number of modules in + the chassis and the number of ports on each + module." + ::= { filterGrp 5 } + +filterPortEntry OBJECT-TYPE + SYNTAX FilterPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing filter information for a + particular port on a module." + INDEX { filterPortModule, filterPort } + ::= { filterPortTable 1 } + +FilterPortEntry ::= + SEQUENCE { + filterPortModule + INTEGER, + filterPort + INTEGER, + filterPortComplex + DisplayString, + filterPortBroadcastThrottle + INTEGER, + filterPortBroadcastThreshold + INTEGER, + filterPortBroadcastDiscards + Counter32, + filterPortBroadcastThresholdFraction + INTEGER, + filterPortSuppressionOption + BITS, + filterPortSuppressionViolation + INTEGER + } + +filterPortModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { filterPortEntry 1 } + +filterPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { filterPortEntry 2 } + +filterPortComplex OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A complex expression made up of the numbers 1 + through 8 indicating test results from + filterTestIndex and using logical operators '&' + (and), '|' (or), '!' (not), and parenthesis. For + example: ((1 & 2) | !3). If this complex filter + matches a packet, it is dropped." + ::= { filterPortEntry 3 } + +filterPortBroadcastThrottle OBJECT-TYPE + SYNTAX INTEGER (0..150000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The maximum number of broadcast packets per + second allowed on this port. If the number of + incoming broadcast packets in a one second + interval exceeds this amount, packets are + dropped for the rest of the interval. If the + capability exists, only broadcast packets should + be dropped. Otherwise, all packets are dropped + during the suppression interval. + + A value of 0 indicates broadcast packets should + not be limited. + + The ability to suppress broadcast packets in this + manner exists only on certain ports. If it does + not exist on this port, attempts to write a value + other than 0 are rejected. + + This object also applies to multicast (and/or) + unicast suppression when + filterPortSuppressionOption is enabled." + DEFVAL { 0 } + ::= { filterPortEntry 4 } + +filterPortBroadcastThreshold OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the integer part of the maximum + percentage of available bandwidth allowed for + incoming traffic of the specific traffic types on + this port. The associated object + filterPortBroadcastThresholdFraction indicates the + fraction part of the maximum percentage of + available bandwidth allowed for incoming traffic + of the specific traffic types on this port. Either + packets of the specific traffic types are dropped + of the port is put into errdisable state depending + on the value of filterPortSuppressionViolation on + this port if the percentage of incoming traffic of + the specific traffic types would exceed this + limit. The traffic types that are enabled for + this traffic suppression feature is indicated by + filterPortBroadcastOption. + + The maximum percentage for the combination of this + object value and the object value of + filterPortBroadcastThresholdFraction is 100.00 + which indicates traffic of all traffic types + should not be limited. + + The ability to suppress traffic in this manner + exists only on certain ports. If it does not + exist on this port, attempts to write a value of + this object other than 100 are rejected. + + On platforms where filterPortSuppressionOption + object is not supported, this object only applies + to broadcast suppression." + DEFVAL { 100 } + ::= { filterPortEntry 5 } + +filterPortBroadcastDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of packets discarded due to traffic + suppression on this port." + ::= { filterPortEntry 6 } + +filterPortBroadcastThresholdFraction OBJECT-TYPE + SYNTAX INTEGER (0..99) + UNITS "one-hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the fraction part of the maximum + percentage of available bandwidth allowed for + incoming traffic of the specific traffic types on + this port. The associated object + filterPortBroadcastThreshold indicates the integer + part of the maximum percentage of available + bandwidth allowed for incoming traffic of the + specific traffic types on this port. Either + packets of the specific traffic types are dropped + or the port is put into errdisable state + depending on the value of + filterPortSuppressionViolation on this port if the + percentage of incoming traffic of the specific + traffic type would exceed this limit. The + traffic types that are enabled for this traffic + suppression feature is indicated by + filterPortBroadcastOption. + + The maximum percentage for the combination + of this object value and the object value of + filterPortBroadcastThreshold is 100.00 which + indicates traffic of all traffic types should not + be limited. + + The ability to suppress traffic in this manner + exists only on certain ports. If it does not exist + on this port, attempts to write a value of this + object other than 100 are rejected. + + On platforms where filterPortSuppressionOption + object is not supported, this object only applies + to broadcast suppression." + DEFVAL { 0 } + ::= { filterPortEntry 7 } + +filterPortSuppressionOption OBJECT-TYPE +-- SYNTAX OCTET STRING + SYNTAX BITS { + multicast(0), + unicast(1), + broadcast(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the traffic types that traffic + suppression feature is enabled for. + + multicast(0) is set when multicast suppression is + enabled. unicast(1) is set when unicast + suppression is enabled. broadcast(2) is set when + broadcast suppression is enabled." + ::= { filterPortEntry 8 } + +filterPortSuppressionViolation OBJECT-TYPE + SYNTAX INTEGER { + dropPackets(1), + errdisable(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the action that will be taken on this + port when the percentage of either broadcast, + multicast or unicast traffic exceeds the limit as + indicated by filterPortBroadcastThreshold and + filterPortBroadcastThresholdFraction. + + + dropPackets - the excessive packets will be + - dropped on this port. + + errdisable - the port will be put into errdisable + - state. + + The object is only supported on platforms that + support this suppression violation action + feature." + ::= { filterPortEntry 9 } + + +-- the monitor group + +-- Implementation of the monitor group is current for all Cisco +-- Workgroup Stack products which implement port monitoring functions. +-- +-- The monitorGrp is deprecated and replaced by +-- portCopyTable defined in SMON-MIB. + +monitorSourceModule OBJECT-TYPE + SYNTAX INTEGER (0..16) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "An index value that uniquely identifies the + module where the monitoring source port is + located. A value of 0 indicates that the + monitorSourcePort is really a source Virtual LAN + number. To monitor multiple source ports, this + object should be set to 0 and + monitorAdminSourcePorts should be configured." + ::= { monitorGrp 1 } + +monitorSourcePort OBJECT-TYPE + SYNTAX INTEGER (0..1023) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "An index value that uniquely identifies the + monitoring source port within a module or the + monitoring source Virtual LAN. To monitor multiple + source ports, this object should be set to 0 and + monitorAdminSourcePorts should be configured" + ::= { monitorGrp 2 } + +monitorDestinationModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "An index value that uniquely identifies the + module where the monitoring destination port is + located." + ::= { monitorGrp 3 } + +monitorDestinationPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "An index value that uniquely identifies the + monitoring destination port within a module." + ::= { monitorGrp 4 } + +monitorDirection OBJECT-TYPE + SYNTAX INTEGER { + transmit(1), + receive(2), + transmitAndReceive(3) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The type of packets to be monitored at the source + port." + DEFVAL { transmitAndReceive } + ::= { monitorGrp 5 } + +monitorEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether port monitoring is in + progress." + DEFVAL { disabled } + ::= { monitorGrp 6 } + +monitorAdminSourcePorts OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates the administrative status of which + ports are monitored. All the monitored ports have + to be non-trunking port and belong to the same + Virtual LAN. The octet string contains one bit + per port. Each bit within the octet string + represents one port of the device. The ordering + of ports represented within the octet string is + in the same order as in the RFC 1493 + dot1dStpPortTable. + + The bit value interpretation is as follows: + 1 = being monitored + 0 = not being monitored" + ::= { monitorGrp 7 } + + +monitorOperSourcePorts OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Indicates which ports are actually being + monitored. All the monitored ports have to be + non-trunking port and belong to the same Virtual + LAN. The octet string contains one bit per port. + Each bit within the octet string represents one + port of the device. The ordering of ports + represented within the octet string is in the same + order as in the RFC 1493 dot1dStpPortTable. + + The bit value interpretation is as follows: + 1 = being monitored + 0 = not being monitored" + ::= { monitorGrp 8 } + + + +-- the VLAN group + +-- the vlan table + +vlanTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "A list of Virtual LAN entries. The number of + entries is determined by the number of VLANs + supported by the system." + ::= { vlanGrp 2 } + +vlanEntry OBJECT-TYPE + SYNTAX VlanEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "Entry containing information for a particular + Virtual LAN." + INDEX { vlanIndex } + ::= { vlanTable 1 } + +VlanEntry ::= + SEQUENCE { + vlanIndex + VlanIndex, + vlanSpantreeEnable + INTEGER, + vlanIfIndex + INTEGER + } + +vlanIndex OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "An index value that uniquely identifies the + Virtual LAN associated with this information." + ::= { vlanEntry 1 } + +vlanSpantreeEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2), + notApplicable(3) } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether Spanning Tree protocol is + enabled for this Virtual LAN. + + If the device only supports a single global + Spanning Tree PVST+ Protocol enable/disable + for all the existing VLANs, then the object + value assigned to this VLAN will be applied + to the object values of all the instances + in this table which do not have the value + of notApplicable(3). + + This object is deprecated and replaced by + stpxPVSTVlanEnable in + CISCO-STP-EXTENSIONS-MIB." + DEFVAL { enabled } + ::= { vlanEntry 2 } + +vlanIfIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The value of the ifIndex object defined in + MIB-II, for the interface corresponding to this + VLAN. + + This object is deprecated and replaced by + vtpVlanIfIndex in CISCO-VTP-MIB." + ::= { vlanEntry 3 } + +-- the vlan port table + +vlanPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of Virtual LAN port entries. The number of + entries is determined by the number of modules in + the chassis and the number of ports on each + module." + ::= { vlanGrp 3 } + +vlanPortEntry OBJECT-TYPE + SYNTAX VlanPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing Virtual LAN information for a + particular port on a module." + INDEX { vlanPortModule, vlanPort } + ::= { vlanPortTable 1 } + +VlanPortEntry ::= + SEQUENCE { + vlanPortModule + INTEGER, + vlanPort + INTEGER, + vlanPortVlan + VlanIndex, + vlanPortIslVlansAllowed + OCTET STRING, + vlanPortSwitchLevel + INTEGER, + vlanPortIslAdminStatus + INTEGER, + vlanPortIslOperStatus + INTEGER, + vlanPortIslPriorityVlans + OCTET STRING, + vlanPortAdminStatus + INTEGER, + vlanPortOperStatus + INTEGER, + vlanPortAuxiliaryVlan + INTEGER + } + +vlanPortModule OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { vlanPortEntry 1 } + +vlanPort OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { vlanPortEntry 2 } + +vlanPortVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The Virtual LAN to which this port belongs." + ::= { vlanPortEntry 3 } + +-- vlanPortEntry 4 is not used + +vlanPortIslVlansAllowed OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An indication of which Virtual LANs are allowed + on this Inter-Switch Link. This is an octet string + value with bits set to indicate allowed VLANs. It + can be interpreted as a sum of f(x) as x goes from + 0 to 1023, where f(x) = 0 for VLAN x not allowed + and f(x) = exp(2, x) for VLAN x allowed." + ::= { vlanPortEntry 5 } + +vlanPortSwitchLevel OBJECT-TYPE + SYNTAX INTEGER { normal(1), high(2), notApplicable(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the priority level the port uses to + access the switching media. If vlanPortSwitchLevel + is not applicable to the port, notApplicable(3) + will be returned by the device." + DEFVAL { normal } + ::= { vlanPortEntry 6 } + +vlanPortIslAdminStatus OBJECT-TYPE + SYNTAX INTEGER { on(1), off(2), desirable(3), auto(4), + onNoNegotiate(5) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the administrative status set on the + trunk port while the operational status is the one + that indicates whether the port is actually + trunking or not. If the status is set to off(2), + the port is permanently set to be a non-trunk. If + the status is set to onNoNegotiate(5), the port is + permanently set to be a trunk and no negotiation + takes place with the far end to try to ensure + consistent operation. If the status is set to + on(1), the port initiates a request to become a + trunk and will become a trunk regardless of the + response from the far end. If the status is set to + desirable(3), the port initiates a request to + become a trunk and will become a trunk if the far + end agrees. If the status is set to auto(4), the + port does not initiate a request to become a trunk + but will do so if it receives a request to become + a trunk from the far end." + ::= { vlanPortEntry 7 } + +vlanPortIslOperStatus OBJECT-TYPE + SYNTAX INTEGER { trunking(1), notTrunking(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates if the port is actually trunking or + not. In the case of ISL capable ports, the status + depends on the success or failure of the + negotiation process initiated by the port to + become a trunk or non trunk. + In the case of 802.10 capable ports, it is + directly related to the on/off administrative + status." + ::= { vlanPortEntry 8 } + +vlanPortIslPriorityVlans OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An indication of which Virtual LANs have a better + dot1dStpPortPriority value. This object can be + used to perform load balancing on Inter-Switch + Links via spanning tree. An Inter-Switch Link has + two dot1dStpPortPriority values which are shared + by all the Virtual LANs on the link. The Virtual + LANs indicated by this object have priority + over the other Virtual LANs on the link. + + This is an octet string value with bits set to + indicate priority VLANs. It can be interpreted as + a sum of f(x) as x goes from 0 to 1023, where + f(x) = 0 for a VLAN x which does not have priority + and f(x) = exp(2, x) for a VLAN x which has + priority. + + Setting the dot1dStpPortPriority value for any of + the Virtual LANs indicated by this object causes + the dot1dStpPortPriority value for all the Virtual + LANs indicated by this object to be set to the + same value. + + Setting the dot1dStpPortPriority value for any + other Virtual LAN causes the dot1dStpPortPriority + value for all other Virtual LANs to be set to the + same value." + ::= { vlanPortEntry 9 } + +vlanPortAdminStatus OBJECT-TYPE + SYNTAX INTEGER { static(1), dynamic(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the port will get assigned to a + VLAN statically or dynamically. When it is set to + dynamic, the needed information will be accessed + from one of the Vlan Membership Policy Servers + specified in the vmpsTable. Default value is + static(1). + Note that vlanPortAdminStatus cannot be set to + dynamic(2) for a port which has + portSecurityAdminStatus set to enabled(1) or for a + port which currently has a vlanPortIslOperStatus + of trunking(1)." + DEFVAL { static } + ::= { vlanPortEntry 10 } + +vlanPortOperStatus OBJECT-TYPE + SYNTAX INTEGER { inactive(1), + active(2), + shutdown(3), + vlanActiveFault(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An indication of the current VLAN status of the + port. + A status of inactive(1) indicates that a dynamic + port does not yet have a VLAN assigned or that a + static or dynamic port has been assigned a VLAN + that is not currently active. A status of + active(2) indicates that the currently assigned + VLAN is active. A status of shutdown(3) indicates + that the port has been shutdown as a result of a + VMPS response on a dynamic port. + A status of vlanActiveFault(4) only applies to + tokenring ports and indicates that the port is + operationally disabled because the TR-CRF VLAN of + which the port is a member has active ports on + another device and only ports on that remote + device may participate in that TR-CRF VLAN." + ::= { vlanPortEntry 11 } + +vlanPortAuxiliaryVlan OBJECT-TYPE + SYNTAX INTEGER ( 0|1..1000|1025..4094|4095|4096 ) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The Voice Virtual Vlan ID (VVID) to which this + port belongs to. + If the VVID is not supported on the port, this MIB + object will not be configurable and will return + 4096. + + Setting this MIB object to 4096, the CDP packets + transmitting through this port would not include + Appliance VLAN-ID TLV. + + Setting this MIB object to 4095, the CDP packets + transmitting through this port would contain + Appliance VLAN-ID TLV with value of 4095 - VoIP + and related packets are expected to be sent and + received untagged without an 802.1p priority. + + Setting this MIB object to 0, the CDP packets + transmitting through this port would contain + Appliance VLAN-ID TLV with value of 0 - VoIP + and related packets are expected to be sent and + received with VLAN-id=0 and an 802.1p priority. + + Setting this MIB object to N (1..1000|1025..4094), + the CDP packets transmitting through this port + would contain Appliance VLAN-ID TLV with N - VoIP + and related packets are expected to be sent and + received with VLAN-id=N and an 802.1p priority. + + This object is deprecated and replaced by + vmVoiceVlanId in CISCO-VLAN-MEMBERSHIP-MIB." + ::= { vlanPortEntry 12 } + +-- the Vlan Membership Policy Server table + +vmpsTable OBJECT-TYPE + SYNTAX SEQUENCE OF VmpsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table lists a maximum of 3 IP addresses of + Vlan Membership Policy Servers." + ::= { vlanGrp 4 } + +vmpsEntry OBJECT-TYPE + SYNTAX VmpsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A VMPS table entry." + INDEX { vmpsAddr } + ::= { vmpsTable 1 } + +VmpsEntry ::= + SEQUENCE { + vmpsAddr + IpAddress, + vmpsType + INTEGER + } + +vmpsAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of a Vlan Membership Policy + Server. To configure the internal VMPS, use the + same IP address as specified in sysIpAddr." + ::= { vmpsEntry 1 } + +vmpsType OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), -- remove this entry + primary(2), -- the primary entry + other(3) -- a lower priority entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "To add a new entry to the vmpsTable, set this + object to primary(2) or other(3) for an IP address + which is not already in the table. The primary + entry will be used first, if it is reachable. + Otherwise one of the other entries will be used. + Setting one entry to primary(2) causes any + previous primary entry to change to other(3). + To remove an entry from the table, set this + object to invalid(1)." + ::= { vmpsEntry 2 } + +vmpsAction OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of following (read-only) + inProgress(2), -- (read-only) + success(3), -- (read-only) + noResponse(4), -- (read-only) + noPrimaryVmps(5), -- No VMPS configured (read-only) + noDynamicPort(6), -- No dynamic ports configured + -- (read-only) + noHostConnected(7), -- No hosts on dynamic ports + -- (read-only) + reconfirm(8) -- (write-only) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This object, when read, returns the result of the + last action requested: other(1), inProgress(2), + success(3), noResponse(3), noPrimaryVmps(5), + noDynamicPort(6), or noHostConnected(7). + + Setting this object to reconfirm(8) causes the + switch to contact the Vlan Membership Policy + Server immediately to reconfirm the current VLAN + assignments for all dynamic ports on the switch. + Normally VLAN assignments for dynamic ports are + reconfirmed once an hour." + ::= { vlanGrp 5 } + +vmpsAccessed OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of the last Vlan Membership Policy + Server accessed. If there was no response from the + last VMPS request, the value returned is 0." + ::= { vlanGrp 6 } + +-- trunk VLAN mapping table + +vlanTrunkMappingMax OBJECT-TYPE + SYNTAX Unsigned32 (0..65535) + UNITS "entries" + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Maximum number of active configurable trunk VLAN + mapping entries allowed. A value of zero indicates + no limitation on the number of active configurable + trunk VLAN mapping." + ::= { vlanGrp 7 } + +vlanTrunkMappingTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanTrunkMappingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table contains zero or more rows of trunk + VLAN to VLAN associations. The maximum number of + active entries is determined by + vlanTrunkMappingMax. + + VLAN above 1k can not be created if the value of + corresponding instance of vlanTrunkMappingType is + dot1qToisl(2)." + ::= { vlanGrp 8 } + +vlanTrunkMappingEntry OBJECT-TYPE + SYNTAX VlanTrunkMappingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Information about the VLAN mapping of a + particular trunk VLAN to another VLAN." + INDEX { vlanTrunkMappingFromVlan } + ::= { vlanTrunkMappingTable 1 } + +VlanTrunkMappingEntry ::= + SEQUENCE { + vlanTrunkMappingFromVlan VlanIndex, + vlanTrunkMappingToVlan VlanIndex, + vlanTrunkMappingType INTEGER, + vlanTrunkMappingOper TruthValue, + vlanTrunkMappingStatus RowStatus + } + +vlanTrunkMappingFromVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The VLAN with this VLAN ID will be mapped to the + VLAN in the corresponding instance of + vlanTrunkMappingToVlan in the device. + + Agent returns inconsistentValue if this VLAN + exists in the device. + + Agent returns inconsistentValue if this VLAN is + not a reserved VLAN and the value of corresponding + instance of vlanTrunkMappingType is + reservedToNonReserved(1). + + Agent returns wrongValue if this VLAN is not a + valid 802.1Q VLAN and the value of corresponding + instance of vlanTrunkMappingType is + dot1qToisl(2)." + ::= { vlanTrunkMappingEntry 1 } + +vlanTrunkMappingToVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The VLAN which the corresponding instance of + vlanTrunkMappingFromVlan will be mapped to. + + Agent returns inconsistentValue if this VLAN + exists in the device. + + Agent returns inconsistentValue if this VLAN is a + reserved VLAN and the value of corresponding + instance of vlanTrunkMappingType is + reservedToNonReserved(1). + + Agent returns inconsistentValue if this VLAN is + not a valid ISL VLAN and the value of + corresponding instance of vlanTrunkMappingType + is dot1qToisl(2)." + ::= { vlanTrunkMappingEntry 2 } + +vlanTrunkMappingType OBJECT-TYPE + SYNTAX INTEGER { + reservedToNonReserved(1), + dot1qToisl(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The type of this trunk VLAN mapping. + + reservedToNonReserved(1) + An user defined association which maps a + reserved VLAN to a non-reserved VLAN. + + dot1qToisl(2) + An user defined association which maps a VLAN + in 802.1q trunk to a VLAN in ISL trunk. + + Implementations are allowed to restrict the + available types for this object. + + For devices which support the range of VlanIndex + between 1024 and 4095, the default value is + reservedToNonReserved(1). The default value is + dot1qToisl(2) for devices which do not support the + range of VlanIndex between 1024 and 4095." + ::= { vlanTrunkMappingEntry 3 } + +vlanTrunkMappingOper OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether this VLAN mapping is effective + or not." + ::= { vlanTrunkMappingEntry 4 } + +vlanTrunkMappingStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The status of this trunk VLAN mapping. + + Once a row becomes active, value in any other + column within such row cannot be modified except + by setting vlanTrunkMappingStatus to + notInService(2) for such row." + ::= { vlanTrunkMappingEntry 5 } + + + +-- the security group + +-- Implementation of the security group is optional, but within the +-- group all the elements are current. If the Security feature is +-- implemented, the entire group should be implemented. + +-- the port security table + +portSecurityTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortSecurityEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of port security entries. The number of + entries is determined by the number of ports in + the system which support the Security feature." + ::= { securityGrp 1 } + +portSecurityEntry OBJECT-TYPE + SYNTAX PortSecurityEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing security information for a + particular port." + INDEX { portSecurityModuleIndex, portSecurityPortIndex } + ::= { portSecurityTable 1 } + +PortSecurityEntry ::= + SEQUENCE { + portSecurityModuleIndex + INTEGER, + portSecurityPortIndex + INTEGER, + portSecurityAdminStatus + INTEGER, + portSecurityOperStatus + INTEGER, + portSecurityLastSrcAddr + OCTET STRING, + portSecuritySecureSrcAddr + OCTET STRING, + portSecurityMaxSrcAddr + INTEGER, + portSecurityAgingTime + INTEGER, + portSecurityShutdownTimeOut + INTEGER, + portSecurityViolationPolicy + INTEGER + } + +portSecurityModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { portSecurityEntry 1 } + +portSecurityPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { portSecurityEntry 2 } + +portSecurityAdminStatus OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When security is enabled, source MAC addresses + are monitored for all packets received on the + port. If an address is detected that does not + match the portSecuritySecureSrcAddr and any + corresponding portSecurityExtSecureSrcAddr, of + which portSecurityExtModuleIndex and + portSecurityExtPortIndex in the + portSecurityExtTable is the same as the + portSecurityModuleIndex and portSecurityPortIndex, + and the number of MAC address learned or + configured for this port is equal to + portSecurityMaxSrcAddr, the port will shutdown or + drop packets. If the + portSecurityViolationPolicy is set to shutdown(2), + the port is shutdown and a linkDown trap is sent; + otherwise the port drops the invalid packets." + DEFVAL { disabled } + ::= { portSecurityEntry 3 } + +portSecurityOperStatus OBJECT-TYPE + SYNTAX INTEGER { notShutdown(1), shutdown(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An indication of whether the port has been shut + down as a result of an insecure address being + detected on a secure port." + ::= { portSecurityEntry 4 } + +portSecurityLastSrcAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The last source MAC address in a receive packet + seen on the port." + ::= { portSecurityEntry 5 } + +portSecuritySecureSrcAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The address to be compared with source MAC + addresses of received packets when the + portSecurityAdminStatus is enabled(1). Setting + this value to 0.0.0.0.0.0 puts the port in + learning mode so that the next source MAC + address received by the port becomes the + portSecuritySecureSrcAddr." + ::= { portSecurityEntry 6 } + +portSecurityMaxSrcAddr OBJECT-TYPE + SYNTAX INTEGER(1..1025) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The maximum number (N) of MAC address to be + secured on the port. The first N MAC addresses + learned or configured are made secured. If the + user wants to make the port secured for more than + one MAC address, the portSecurityExtTable is used + in addition to portSecuritySecureSrcAddr. If + changing the maximum number N of Mac address to M, + which is smaller than N, some MAC addresses are + removed. Setting this value to 1, + the portSecurityExtTable will not be used for this + port and the corresponding entries for this port + will also be removed from portSecurityExtTable." + DEFVAL { 1 } + ::= { portSecurityEntry 7 } + +portSecurityAgingTime OBJECT-TYPE + SYNTAX INTEGER(0|10..1440) + UNITS "minutes" + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The interval in which the port is secured. After + the expiration of the time, the corresponding + portSecuritySecureSrcAddr or + portSecurityExtSecureSrcAddr will be removed from + the secure address list. If the value of this + object is 0, the aging mechanism is disabled." + DEFVAL { 0 } + ::= {portSecurityEntry 8} + +portSecurityShutdownTimeOut OBJECT-TYPE + SYNTAX INTEGER(0|10..1440) + UNITS "minutes" + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The interval in which the port is shutdown due to + the violation of security. After the expiration + of the time all the security configuration of this + port is re-installed and the port is enabled. If + the value of this object is 0, the port is shut + down permanently." + DEFVAL { 0 } + ::= {portSecurityEntry 9} + +portSecurityViolationPolicy OBJECT-TYPE + SYNTAX INTEGER { restrict(1), shutdown(2)} + MAX-ACCESS read-write + STATUS current + DESCRIPTION "If the value of this object is + restrict(1) - the port drops all packets with + insecured addresses. + shutdown(2) - the port is forced to shut down + if there is a violation of + security." + DEFVAL { shutdown } + ::= {portSecurityEntry 10} + +-- the port security extension table. This table will be used if +-- the portSecurityMaxSrcAddr for any port is set to value that is +-- greater than 1. + +portSecurityExtTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortSecurityExtEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of port security entries. The number of + entries is determined by the number of ports in + the system which support the Security feature and + the number of MAC addresses learned/configured to + be secured per port." + ::= { securityGrp 2 } + +portSecurityExtEntry OBJECT-TYPE + SYNTAX PortSecurityExtEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing security information for a + particular port and a particular MAC address. The + entry can be configured by the user and can be + added by the agent when the device learns a new + secured MAC address." + INDEX { portSecurityExtModuleIndex, + portSecurityExtPortIndex, + portSecurityExtSecureSrcAddr } + ::= { portSecurityExtTable 1 } + +PortSecurityExtEntry ::= + SEQUENCE { + portSecurityExtModuleIndex + INTEGER, + portSecurityExtPortIndex + INTEGER, + portSecurityExtSecureSrcAddr + OCTET STRING, + portSecurityExtControlStatus + INTEGER + } +portSecurityExtModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { portSecurityExtEntry 1 } + +portSecurityExtPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { portSecurityExtEntry 2 } + +portSecurityExtSecureSrcAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the MAC + address, which is to be secured." + ::= { portSecurityExtEntry 3} + +portSecurityExtControlStatus OBJECT-TYPE + SYNTAX INTEGER { valid(1), invalid(2)} + MAX-ACCESS read-create + STATUS current + DESCRIPTION "This object used to add or remove a secured + MAC address of the corresponding port in + the row. If setting this object to valid(1), the + portSecurityExtSecureSrcAddr is made to be secured + for the port. If setting this object to + invalid(2), the portSecurityExtSecureSrcAddr is + no longer to be secured for the current port." + ::= {portSecurityExtEntry 4} + + + +-- the token ring group + +-- Implementation of the token ring group is current for all Cisco +-- Workgroup Stack products which implement token ring functions +-- (wsx5030 and wsx5031). + +-- Token Ring Port Configuration Table + +tokenRingPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF TokenRingPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Table containing token ring configuration + information." + ::= { tokenRingGrp 1 } + +tokenRingPortEntry OBJECT-TYPE + SYNTAX TokenRingPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing token ring configuration + information for a particular port." + INDEX { tokenRingModuleIndex, tokenRingPortIndex } + ::= { tokenRingPortTable 1 } + +TokenRingPortEntry ::= + SEQUENCE { + tokenRingModuleIndex + INTEGER, + tokenRingPortIndex + INTEGER, + tokenRingPortSetACbits + INTEGER, + tokenRingPortMode + INTEGER, + tokenRingPortEarlyTokenRel + INTEGER, + tokenRingPortPriorityThresh + INTEGER, + tokenRingPortPriorityMinXmit + INTEGER, + tokenRingPortCfgLossThresh + INTEGER, + tokenRingPortCfgLossInterval + INTEGER + } + +tokenRingModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { tokenRingPortEntry 1 } + +tokenRingPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { tokenRingPortEntry 2 } + +tokenRingPortSetACbits OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies if the AC bits shall be set + unconditionally when a port forwards certain LLC + frames." + DEFVAL { disabled } + ::= { tokenRingPortEntry 3 } + +tokenRingPortMode OBJECT-TYPE + SYNTAX INTEGER { auto(1), + fdxCport(2), + fdxStation(3), + hdxCport(4), + hdxStation(5), + riro(7) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the port's mode of operation. + + auto: Automatically detect the port mode + upon insertion. + + fdxCport: Transmit Immediate (full-duplex) + Concentrator Port + + fdxStation: Transmit Immediate (full-duplex) + Station emulation + + hdxCport: Token Passing Protocol (half-duplex) + Concentrator Port + + hdxStation: Token Passing Protocol (half-duplex) + Station emulation + + riro: RingIn/RingOut mode. (wsx5031 only)" + DEFVAL { auto } + ::= { tokenRingPortEntry 4 } + +-- tokenRingPortEntry 5 to 8 are not used + +tokenRingPortEarlyTokenRel OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This object provides the ability to enable or + disable early token release for a particular port. + + Early token release only applies to ports + operating at 16 Mbps. If ifSpeed reflects 4 Mbps + for a particular port, then the corresponding + instance of this object will have a value of + disabled(2) regardless of attempts to set the + object to enabled(1). + + Whenever a port is opened with a ring speed of + 16 Mbps, by default, early token release will be + enabled." + ::= { tokenRingPortEntry 9 } + +tokenRingPortPriorityThresh OBJECT-TYPE + SYNTAX INTEGER (0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The highest token ring frame priority that shall + go to the low-priority transmit queue." + DEFVAL { 3 } + ::= { tokenRingPortEntry 10 } + +tokenRingPortPriorityMinXmit OBJECT-TYPE + SYNTAX INTEGER (0..6) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The minimum token priority that will be used for + transmit." + DEFVAL { 4 } + ::= { tokenRingPortEntry 11 } + +tokenRingPortCfgLossThresh OBJECT-TYPE + SYNTAX INTEGER (1..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Number of configuration loss events during the + sample interval which, if exceeded, should cause + the port to be disabled. If the port is disabled + by this function the port must be administratively + re-enabled." + DEFVAL { 8 } + ::= { tokenRingPortEntry 12 } + +tokenRingPortCfgLossInterval OBJECT-TYPE + SYNTAX INTEGER (1..9999) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The sampling interval, in minutes, for which the + port monitors to see if the configuration loss + threshold has been exceeded." + DEFVAL { 10 } + ::= { tokenRingPortEntry 13 } + +-- DRiP related objects. +tokenRingDripDistCrfMode OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This object reflects whether TR-CRFs can be + distributed across ISL topologies. Setting + this object to enabled(1) allows TR-CRFs to be + distributed. Setting this object to disabled(2) + prevents TR-CRFs from being distributed across + ISL topologies. When this object is set to + disabled(2), the system will disable ports + involved in the distributed TR-CRF." + DEFVAL { disabled } + ::= { tokenRingGrp 2 } + +tokenRingDripAreReductionMode OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This object reflects whether or not All + Routes Explorer (ARE) reduction capabilities are + enabled or disabled on this system. Setting + this object to enabled(1) will permit DRiP to + participate in the configuration of Token Ring + ports ARE reduction capabilities on the system. + Setting this object to disabled(2) will prevent + DRiP from participating in the configuration + of Token Ring port ARE reduction capabilities." + DEFVAL { enabled } + ::= { tokenRingGrp 3 } + +tokenRingDripLocalNodeID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The unique system identifier that will be sent + in all advertisements generated by this system. + It uniquely identifies this system from other + DRiP capable systems." + ::= { tokenRingGrp 4 } + +tokenRingDripLastRevision OBJECT-TYPE + SYNTAX INTEGER (0..9999999) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The revision number transmitted in the most + recent advertisement. That advertisement may + or may not have contained changed data." + ::= { tokenRingGrp 5 } + +tokenRingDripLastChangedRevision OBJECT-TYPE + SYNTAX INTEGER (0..9999999) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The revision number transmitted in the most + recent advertisement containing changed data." + ::= { tokenRingGrp 6 } + +tokenRingDripAdvertsReceived OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of DRiP advertisements received + by this system." + ::= { tokenRingGrp 7 } + +tokenRingDripAdvertsTransmitted OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of DRiP advertisements transmitted + by this system." + ::= { tokenRingGrp 8 } + +tokenRingDripAdvertsProcessed OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of DRiP advertisements processed + by this system." + ::= { tokenRingGrp 9 } + +tokenRingDripInputQueueDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of DRiP advertisements dropped + from this system's input queue." + ::= { tokenRingGrp 10 } + +tokenRingDripOutputQueueDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of DRiP advertisements dropped + from this system's output queue." + ::= { tokenRingGrp 11 } + +tokenRingDripLocalVlanStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF TokenRingDripLocalVlanStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table containing DRiP VLAN status information + local to this system. The existence of an + entry indicates that at least one local port + is assigned to the associated TR-CRF VLAN." + ::= { tokenRingGrp 12 } + +tokenRingDripLocalVlanStatusEntry OBJECT-TYPE + SYNTAX TokenRingDripLocalVlanStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing DRiP related information for + a particular TR-CRF VLAN." + INDEX { tokenRingDripVlan } + ::= { tokenRingDripLocalVlanStatusTable 1 } + +TokenRingDripLocalVlanStatusEntry ::= + SEQUENCE { + tokenRingDripVlan + VlanIndex, + tokenRingDripLocalPortStatus + INTEGER, + tokenRingDripRemotePortStatus + INTEGER, + tokenRingDripRemotePortConfigured + INTEGER, + tokenRingDripDistributedCrf + INTEGER, + tokenRingDripBackupCrf + INTEGER, + tokenRingDripOwnerNodeID + OCTET STRING + } + +tokenRingDripVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A TR-CRF VLAN ID." + ::= { tokenRingDripLocalVlanStatusEntry 1 } + +tokenRingDripLocalPortStatus OBJECT-TYPE + SYNTAX INTEGER { active(1), inactive(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This object reflects DRiP's status regarding + the overall set of local ports assigned to + the TR-CRF VLAN associated with this entry. + A value of active(1) indicates that at least + one local port is inserted/connected (i.e., + active on the Token Ring). A value of inactive(2) + indicates that none of the local ports are + inserted/connected. All local ports are either + disabled or are simply not connected." + ::= { tokenRingDripLocalVlanStatusEntry 2 } + +tokenRingDripRemotePortStatus OBJECT-TYPE + SYNTAX INTEGER { active(1), inactive(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This object reflects DRiP's status regarding + any ports on remote systems. A value of + active(1) indicates that at least one remote + port is inserted/connected (i.e., active on + the Token Ring). A value of inactive(2) indicates + that none of the remote ports are + inserted/connected. All remote ports are either + disabled or are simply not connected." + ::= { tokenRingDripLocalVlanStatusEntry 3 } + +tokenRingDripRemotePortConfigured OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This object reflects whether or not DRiP has + detected remote ports assigned to the TR-CRF + VLAN associated with this entry. A value of + true(1) indicates there is at least one port + on a remote system assigned to this TR-CRF VLAN. + A value of false(2) indicates no remote ports + are assigned to this TR-CRF VLAN." + ::= { tokenRingDripLocalVlanStatusEntry 4 } + +tokenRingDripDistributedCrf OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This object reflects whether DRiP considers the + TR-CRF VLAN associated with this entry to be + distributed across systems. A value of true(1) + indicates the TR-CRF is distributed. A value + of false(2) indicates the TR-CRF is not + distributed." + ::= { tokenRingDripLocalVlanStatusEntry 5 } + +tokenRingDripBackupCrf OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This object reflects whether or not the TR-CRF + VLAN associated with this entry is configured + as a backup TR-CRF. A value of true(1) indicates + the TR-CRF is a configured as a backup. A value + of false(2) indicates the TR-CRF is not configured + as a backup." + ::= { tokenRingDripLocalVlanStatusEntry 6 } + +tokenRingDripOwnerNodeID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The unique identifier of the system that has + advertised that it has local ports assigned to the + TR-CRF VLAN associated with this entry." + ::= { tokenRingDripLocalVlanStatusEntry 7 } + +-- Token Ring Port Soft Error Monitoring Configuration Table +tokenRingPortSoftErrTable OBJECT-TYPE + SYNTAX SEQUENCE OF TokenRingPortSoftErrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Table containing token ring soft error monitoring + configuration information." + ::= { tokenRingGrp 14 } +tokenRingPortSoftErrEntry OBJECT-TYPE + SYNTAX TokenRingPortSoftErrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing token ring soft error monitoring + configuration information for a particular port." + AUGMENTS { tokenRingPortEntry } + ::= { tokenRingPortSoftErrTable 1 } + +TokenRingPortSoftErrEntry ::= SEQUENCE { + tokenRingPortSoftErrThresh + INTEGER, + tokenRingPortSoftErrReportInterval + INTEGER, + tokenRingPortSoftErrResetCounters + INTEGER, + tokenRingPortSoftErrLastCounterReset + TimeTicks, + tokenRingPortSoftErrEnable + INTEGER + } +tokenRingPortSoftErrThresh OBJECT-TYPE + SYNTAX INTEGER ( 1..255 ) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The number of soft errors reported from a station + connected to this port which, if exceeded, should + cause a soft error exceeded trap to be issued. + The error counters being monitored and compared to + this threshold value are all of the error counters + in the ringStationTable (see RFC 1513)." + DEFVAL { 100 } + ::= { tokenRingPortSoftErrEntry 1 } + +tokenRingPortSoftErrReportInterval OBJECT-TYPE + SYNTAX INTEGER ( 0..65535 ) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The sampling period, in seconds, in which each + station connected to this port will be monitored + for excessive soft error reports. If a station + reports more than tokenRingPortSoftErrThreshold + errors within the sampling period a trap will be + issued to the management station(s). Setting a + value of 0 will cause no traps to be sent for + this port." + DEFVAL { 60 } + ::= { tokenRingPortSoftErrEntry 2 } + +tokenRingPortSoftErrResetCounters OBJECT-TYPE + SYNTAX INTEGER { noop(1), reset(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When this object is set to reset(2), all Soft + Error Monitoring related counters on this port + will be set to 0." + ::= { tokenRingPortSoftErrEntry 3 } + +tokenRingPortSoftErrLastCounterReset OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The time (in hundredths of a second) since Soft + Error Monitoring counters for this port were last + cleared." + ::= { tokenRingPortSoftErrEntry 4 } + +tokenRingPortSoftErrEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the Token Ring Soft Error + Monitoring feature is enabled on this port or not. + The detailed soft error statistics are provided + by Token Ring RMON SNMP objects. Thus, if RMON + (sysEnableRmon) is disabled(2) then the soft error + statistics will only be available from the CLI." + DEFVAL { disabled } + ::= { tokenRingPortSoftErrEntry 5 } + + + +-- the multicast group + +-- Implementation of the multicast group is optional, but within the +-- group all the elements are current. If multicast features are +-- supported, the entire group should be implemented. + +-- the multicast router table + +mcastRouterTable OBJECT-TYPE + SYNTAX SEQUENCE OF McastRouterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of multicast router port entries. The + number of entries is determined by the number of + ports in the system." + ::= { multicastGrp 1 } + +mcastRouterEntry OBJECT-TYPE + SYNTAX McastRouterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing multicast router information for + a particular port." + INDEX { mcastRouterModuleIndex, mcastRouterPortIndex } + ::= { mcastRouterTable 1 } + +McastRouterEntry ::= + SEQUENCE { + mcastRouterModuleIndex + INTEGER, + mcastRouterPortIndex + INTEGER, + mcastRouterAdminStatus + INTEGER, + mcastRouterOperStatus + INTEGER + } + +mcastRouterModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located + (see portModuleIndex)." + ::= { mcastRouterEntry 1 } + +mcastRouterPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { mcastRouterEntry 2 } + +mcastRouterAdminStatus OBJECT-TYPE + SYNTAX INTEGER { routerPresent(1), + dynamic(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "And indication of whether the presence of an IP + multicast router on this port is to be determined + statically or dynamically. The value + routerPresent(1) indicates that the presence of a + router is statically configured to be present. + The value dynamic(3) indicates the presence is to + be learned dynamically." + DEFVAL { dynamic } + ::= { mcastRouterEntry 3 } + +mcastRouterOperStatus OBJECT-TYPE + SYNTAX INTEGER { routerPresent(1), noRouter(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An indication of whether an IP multicast router + is present on this port." + ::= { mcastRouterEntry 4 } + +mcastEnableCgmp OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether Cisco Group Management Protocol + is enabled on the device or not. When CGMP is + enabled in conjunction with Cisco routers running + CGMP, only the required ports will participate in + IP multicast groups." + DEFVAL { disabled } + ::= { multicastGrp 2 } + +mcastEnableIgmp OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether Internet Group Management + Protocol is enabled on the device or not. When + IGMP is enabled in conjunction with Cisco routers + running CGMP, only the required ports will + participate in IP multicast groups." + DEFVAL { disabled } + ::= { multicastGrp 3 } + +mcastEnableRgmp OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether Router Group Management + Protocol is enabled on the device or not. When + RGMP is enabled in conjunction with Cisco routers + running RGMP, multicast data traffic is forwarded + only to those multicast routers that are + interested to receive that data traffic. IGMP + snooping feature must be enabled on the system + to make RGMP feature operational." + DEFVAL { disabled } + ::= { multicastGrp 4 } + + + +-- the DNS group + +-- Implementation of the DNS group is optional, but within the group +-- all the elements are current. If DNS features are supported, +-- the entire group should be implemented. + +dnsEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates if the DNS feature is enabled or + disabled." + DEFVAL { disabled } + ::= { dnsGrp 1} + +dnsServerTable OBJECT-TYPE + SYNTAX SEQUENCE OF DnsServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table lists a maximum of 3 DNS servers." + ::= { dnsGrp 2 } + +dnsServerEntry OBJECT-TYPE + SYNTAX DnsServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A DNS server table entry." + INDEX { dnsServerAddr } + ::= { dnsServerTable 1 } + +DnsServerEntry ::= + SEQUENCE { + dnsServerAddr + IpAddress, + dnsServerType + INTEGER + } + +dnsServerAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of a DNS server." + ::= { dnsServerEntry 1 } + +dnsServerType OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), -- remove this entry + primary(2), -- the primary entry + other(3) -- a lower priority entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "To add a new entry to the dnsServerTable, set + this object to primary(2) or other(3) for an IP + address which is not already in the table. The + primary entry will be used first, if it is + reachable. Otherwise, one of the other entries + will be used. Setting one entry to primary(2) + causes any previous primary entry to change to + other(3). To remove an entry from the table, set + this object to invalid(1)." + ::= { dnsServerEntry 2 } + +dnsDomainName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..127)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "DNS domain name." + REFERENCE "RFC1035, section 2.3.1 Preferred name syntax." + ::= { dnsGrp 3 } + + + +-- the syslog (System Log Information) group + +-- Implementation of the syslog group is optional, but within the group +-- all the elements are current. If the syslog feature is supported, +-- the entire group should be implemented. + + +syslogServerTable OBJECT-TYPE + SYNTAX SEQUENCE OF SyslogServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table lists a maximum of 3 system log + servers." + ::= { syslogGrp 1 } + +syslogServerEntry OBJECT-TYPE + SYNTAX SyslogServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A system log server table entry." + INDEX { syslogServerAddr } + ::= { syslogServerTable 1 } + +SyslogServerEntry ::= + SEQUENCE { + syslogServerAddr + IpAddress, + syslogServerType + INTEGER + } + +syslogServerAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of a system log Server." + ::= { syslogServerEntry 1 } + +syslogServerType OBJECT-TYPE + SYNTAX INTEGER { + valid(1), -- add this entry + invalid(2) -- remove this entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "To add/remove a new entry to the + syslogServerTable, setting to invalid(2) removes + the corresponding entry from the + syslogServerTable. To add a new entry into + syslogServerTable, set this object to valid(1) + for an IP address which is not already in the + table." + ::= { syslogServerEntry 2 } + + +syslogConsoleEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicate whether the system log messages should + be sent to console." + DEFVAL { disabled } + ::= { syslogGrp 2 } + + +syslogHostEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicate whether the system log messages should + be sent to syslog servers." + DEFVAL { disabled } + ::= { syslogGrp 3 } + + +syslogMessageControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF SyslogMessageControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table contains the information about what + system log messages should be sent to syslog host, + console, login session, and/or logged into the + internal buffer." + ::= { syslogGrp 4 } + +syslogMessageControlEntry OBJECT-TYPE + SYNTAX SyslogMessageControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A system log message control table entry." + INDEX { syslogMessageFacility } + ::= { syslogMessageControlTable 1 } + +SyslogMessageControlEntry ::= + SEQUENCE { + syslogMessageFacility + INTEGER, + syslogMessageSeverity + INTEGER + } + +syslogMessageFacility OBJECT-TYPE + SYNTAX INTEGER { + cdp(1), + mcast(2), + dtp(3), + dvlan(4), + earl(5), + fddi(6), + ip(7), + pruning(8), + snmp(9), + spantree(10), + system(11), + tac(12), + tcp(13), + telnet(14), + tftp(15), + vtp(16), + vmps(17), + kernel(18), + filesys(19), + drip(20), + pagp(21), + mgmt(22), + mls(23), + protfilt(24), + security(25), + radius(26), + udld(27), + gvrp(28), + cops(29), + qos(30), + acl(31), + rsvp(32), + ld(33), + privatevlan(34), + ethc(35), + gl2pt(36), + callhome(37), + dhcpsnooping(38), + diags(40), + eou(42), + backup(43), + eoam(44), + webauth(45) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "System log message facility." + ::= { syslogMessageControlEntry 1 } + + +syslogMessageSeverity OBJECT-TYPE + SYNTAX INTEGER { + emergencies(1), + alerts(2), + critical(3), + errors(4), + warnings(5), + notification(6), + informational(7), + debugging(8) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "System log message severity." + ::= { syslogMessageControlEntry 2 } + +syslogTimeStampOption OBJECT-TYPE + SYNTAX INTEGER{ + enabled(1), + disabled(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether syslog Time Stamp Option is + enabled or not. If it is set to enabled(1), the + Time Stamp will be in the beginning of each + syslog message." + ::= { syslogGrp 5 } + + +syslogTelnetEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicate whether the system log messages should + be sent to telnet sessions." + DEFVAL { enabled } + ::= { syslogGrp 6 } + + +-- the NTP (Network Time Protocol) group + +-- Implementation of the NTP group is optional, but within the group +-- all the elements are current. If the NTP feature is supported, +-- the entire group should be implemented. + +-- the NTP table + + +ntpBcastClient OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Entry which tells if Cat5000 should act as a + Broadcast client or not." + DEFVAL { disabled } + ::= { ntpGrp 1 } + +ntpBcastDelay OBJECT-TYPE + SYNTAX INTEGER (1..999999) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Estimated Round trip time (in micro seconds) for + NTP broadcasts. The range is from 1 to 999999." + DEFVAL { 3000 } + ::= { ntpGrp 2 } + +ntpClient OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Entry which tells if the device can act as a NTP + client (in a client-server configuration type)." + DEFVAL { disabled } + ::= { ntpGrp 3 } + +ntpServerTable OBJECT-TYPE + SYNTAX SEQUENCE OF NtpServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of NTP Server entries. This table lists a + maximum of 10 Entries." + ::= { ntpGrp 4 } + +ntpServerEntry OBJECT-TYPE + SYNTAX NtpServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing NTP information for a particular + entry." + INDEX { ntpServerAddress } + ::= { ntpServerTable 1 } + +NtpServerEntry ::= SEQUENCE { + ntpServerAddress + IpAddress, + ntpServerType + INTEGER, + ntpServerPublicKey + Unsigned32 + } + +ntpServerAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Entry containing NTP Server's IP address." + ::= { ntpServerEntry 1 } + +ntpServerType OBJECT-TYPE + SYNTAX INTEGER{ + valid(1), -- add this entry + invalid(2) -- remove this entry + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "To add or remove an entry to ntpServerTable. + Setting to 1 adds the entry and setting to 2 + clears the entry." + ::= { ntpServerEntry 2 } + +ntpServerPublicKey OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The key to be used when communicating with this + server. + A key with a value of zero indicates an invalid + ntpServerPublicKey. When the authentication + feature is enabled the system will not sync with + this server when ntpAuthenticationPublicKey + doesn't match with NTP Packet's public key. + or + If the ntpAuthenticationTrustedMode is trusted but + encrypted message of ntpAuthenticationSecretKey + with NTP packet's data doesn't match with NTP + packet's crypto checksum in the message + authentication mode (MAC). + or + If the ntpAuthenticationTrustedMode is untrusted. + + In client mode NMP will not send request NTP + Packet to the server when ntpServerPublicKey + doesn't match with any of the + ntpAuthenticationPublicKey in + ntpAuthenticationTable. + or + If the ntpAuthenticationTrustedMode is untrusted." + ::= { ntpServerEntry 3 } + +ntpSummertimeStatus OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enabling or Disabling will set the clock ahead or + behind 1 hour respectively.(daylight savings time + in USA). This command gets active only in Summer + time." + DEFVAL { disabled } + ::= { ntpGrp 5 } + +ntpSummerTimezoneName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Summertime time zone name for display purposes." + ::= { ntpGrp 6 } + +ntpTimezoneName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Time zone name for display purposes." + ::= { ntpGrp 7 } + +ntpTimezoneOffsetHour OBJECT-TYPE + SYNTAX INTEGER (-12..12) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Time offset (Hour) from Greenwich Mean Time." + ::= { ntpGrp 8 } + +ntpTimezoneOffsetMinute OBJECT-TYPE + SYNTAX INTEGER (0..59) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Time offset (Minutes) from Greenwich Mean Time." + ::= { ntpGrp 9 } + + +ntpAuthenticationEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies if authentication feature is enabled or + disabled in the system." + DEFVAL { disabled } + ::= { ntpGrp 10 } + +ntpAuthenticationTable OBJECT-TYPE + SYNTAX SEQUENCE OF NtpAuthenticationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of NTP Authentication Key entries. + This table lists a maximum of 10 Entries" +::= { ntpGrp 11 } + +ntpAuthenticationEntry OBJECT-TYPE + SYNTAX NtpAuthenticationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An entry in the ntpAuthenticationTable, + containing values of an NTP authentication key + pair." + + INDEX { ntpAuthenticationPublicKey } + ::= { ntpAuthenticationTable 1 } + +NtpAuthenticationEntry ::= + SEQUENCE { + ntpAuthenticationPublicKey + Unsigned32, + ntpAuthenticationSecretKey + DisplayString, + ntpAuthenticationTrustedMode + INTEGER, + ntpAuthenticationType + INTEGER + } + +ntpAuthenticationPublicKey OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A unique value to identify the authentication + key. When the authentication feature is enabled + and the ntpAuthenticationPublicKey matches with + the NTP packet's public key then this entry is + used." +::= { ntpAuthenticationEntry 1} + +ntpAuthenticationSecretKey OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An arbitrary string known as the secret key used + for encrypting of the NTP packet. This key is + useful when the ntpAuthenticationTrustedMode is + set to trusted(1). + This key has to be specified when this + ntpAuthenticationEntry is created. When reading + this object, it will return empty string." +::= { ntpAuthenticationEntry 2} + +ntpAuthenticationTrustedMode OBJECT-TYPE + SYNTAX INTEGER { + trusted(1), + untrusted(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A flag indicates whether the + ntpAuthenticationSecretKey is trusted or + untrusted. Setting a ntpAuthenticationSecretKey + to trusted(1) allows authentication on NTP + packets containing this key, and setting a + ntpAuthenticationSecretKey to untrusted(2) drops + all NTP packets containing this key." +::= { ntpAuthenticationEntry 3} + +ntpAuthenticationType OBJECT-TYPE + SYNTAX INTEGER { + valid(1), -- add this entry + invalid(2) -- remove this entry + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "To add or remove an entry to + ntpAuthenticationTable. Setting to 1 adds the + entry and setting to 2 clears the entry." +::= { ntpAuthenticationEntry 4} + + + +-- the TACACS (Terminal Access Controller Access Control System) group + +-- Implementation of the TACACS group is optional, but within the group +-- all the elements are current. If the TACACS+ feature is +-- implemented, the entire group should be implemented. + +tacacsLoginAuthentication OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForTelnetOnly(3), + enabledForConsoleOnly(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether the login authentication using + the TACACS+ feature is enabled or disabled for + console sessions and/or telnet sessions. + + Setting this object to enabled(1), the login + authentication using the TACACS+ feature is + enabled for both telnet and console sessions. + + Setting this object to disabled(2), the login + authentication using the TACACS+ feature is + disabled for both telnet and console sessions. + + Setting this object to enabledForTelnetOnly(3), + the login authentication using the TACACS+ + feature is enabled only for telnet sessions, but + disabled for console sessions. + + Setting this object to enabledForConsoleOnly(4), + the login authentication using the TACACS+ + feature is enabled only for console sessions, + but disabled for telnet sessions. + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + DEFVAL { disabled } + ::= { tacacsGrp 1 } + +tacacsEnableAuthentication OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForTelnetOnly(3), + enabledForConsoleOnly(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether the enable authentication using + the TACACS+ feature is enabled or disabled for + console sessions and/or telnet sessions based on + the value. + + Setting this object to enabled(1), the enable + authentication using the TACACS+ feature is + enabled for both telnet and console sessions. + + Setting this object to disabled(2), the enable + authentication using the TACACS+ feature is + disabled for both telnet and console sessions. + + Setting this object to enabledForTelnetOnly(3), + the enable authentication using the TACACS+ + feature is enabled only for telnet sessions, but + disabled for console sessions. + + Setting this object to enabledForConsoleOnly(4), + the enable authentication using the TACACS+ + feature is enabled only for console sessions, + but disabled for telnet sessions. + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + DEFVAL { disabled } + ::= { tacacsGrp 2 } + +tacacsLocalLoginAuthentication OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForTelnetOnly(3), + enabledForConsoleOnly(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether the login authentication using + local password is enabled or disabled for Console + session and/or Telnet session based on the value. + + Setting this object to enabled(1),the login + authentication using local password is enabled for + both telnet and console sessions. + + Setting this object to disabled(2), the login + authentication using local password is disabled + for both telnet and console sessions. + + Setting this object to enabledForTelnetOnly(3), + the login authentication using local password is + enabled only for telnet sessions, but disabled for + console session. + + Setting this object to enabledForConsoleOnly(4), + the login authentication using local password is + enabled only for console session, but disabled for + telnet sessions. + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + DEFVAL { enabled } + ::= { tacacsGrp 3 } + +tacacsLocalEnableAuthentication OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForTelnetOnly(3), + enabledForConsoleOnly(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether the enable authentication using + local password is enabled or disabled for Console + session and/or Telnet sessions. + + Setting this object to enabled(1),the enable + authentication using local password is enabled for + both telnet and console sessions. + + Setting this object to disabled(2), the enable + authentication using local password is disabled + for both telnet and console sessions. + + Setting this object to enabledForTelnetOnly(3), + the enable authentication using local password is + enabled only for telnet sessions, but disabled for + console sessions. + + Setting this object to enabledForConsoleOnly(4), + the enable authentication using local password is + enabled only for console sessions, but disabled + for telnet sessions. + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + DEFVAL { enabled } + ::= { tacacsGrp 4 } + +tacacsNumLoginAttempts OBJECT-TYPE + SYNTAX INTEGER (1..10) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The number of login attempts allowed. + + This object is deprecated and replaced by + cacMaxLoginAttempt in CISCO-AAA-CLIENT-MIB." + DEFVAL { 3 } + ::= { tacacsGrp 5 } + +tacacsDirectedRequest OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether the directed-request feature of + TACACS+ is enabled or disabled." + DEFVAL { disabled } + ::= { tacacsGrp 6 } + +tacacsTimeout OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The duration in seconds to wait for a response + from the TACACS+ server host. + + This object is deprecated and replaced by + cacLockoutPeriodExt in CISCO-AAA-CLIENT-MIB." + DEFVAL { 5 } + ::= { tacacsGrp 7 } + +tacacsAuthKey OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..100)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The key used in encrypting the packets passed + between the TACACS+ server and the client. This + key must match the one configured on the server. + + Note that this item is only accessible when using + the community string defined in sysCommunityRwa." +-- DEFVAL { NULL } + ::= { tacacsGrp 8 } + +tacacsServerTable OBJECT-TYPE + SYNTAX SEQUENCE OF TacacsServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table lists a maximum of 3 TACACS+ servers." + ::= { tacacsGrp 9 } + +tacacsServerEntry OBJECT-TYPE + SYNTAX TacacsServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A TACACS+ server table entry." + INDEX { tacacsServerAddr } + ::= { tacacsServerTable 1 } + +TacacsServerEntry ::= + SEQUENCE { + tacacsServerAddr + IpAddress, + tacacsServerType + INTEGER + } + +tacacsServerAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of a TACACS+ Server." + ::= { tacacsServerEntry 1 } + +tacacsServerType OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), -- remove this entry + primary(2), -- the primary entry + other(3) -- a lower priority entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "To add a new entry to the tacacsServerTable, set + this object to primary(2) or other(3) for an IP + address which is not already in the table. The + primary entry will be used first, if it is + reachable. Otherwise, one of the other entries + will be used. Setting one entry to primary(2) + causes any previous primary entry to change to + other(3). To remove an entry from the table, set + this object to invalid(1)." + ::= { tacacsServerEntry 2 } + + + +-- the ip permit list group + +-- Implementation of the ip permit list group is optional, but within +-- the group all the elements are current. If the ip permit list +-- feature is supported, the entire group should be implemented. + +ipPermitEnable OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForTelnetOnly(3), + enabledForSnmpOnly(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "This is deprecated and replaced by + ipPermitAccessTypeEnable. + + Indicate whether the IP permit feature is enabled + or disabled for Telnet and/or SNMP. + + Setting this object to enabled(1), the IP permit + feature is enabled for both telnet and SNMP. + + Setting this object to disabled(2), the IP permit + feature is disabled for both telnet and SNMP. + + Setting this object to enabledForTelnetOnly(3), + the IP permit feature is enabled for Telnet, but + disabled for the rest. + + Setting this object to enabledForSnmpOnly(4), the + IP permit feature is enabled for SNMP, but + disabled for the rest." + DEFVAL { disabled } + ::= { ipPermitListGrp 1 } + +-- the ip permit list table + +ipPermitListTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpPermitListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table lists a maximum of 100 IP Addresses + with net masks of IP permit hosts. If + ipPermitEnable is set to enabled(1), the system + will only accept inbound accesses which come from + the configured hosts with their permit access + types in this table." + ::= { ipPermitListGrp 2 } + +ipPermitListEntry OBJECT-TYPE + SYNTAX IpPermitListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A IP permit list table entry." + INDEX { ipPermitAddress, ipPermitMask } + ::= { ipPermitListTable 1 } + +IpPermitListEntry ::= + SEQUENCE { + ipPermitAddress + IpAddress, + ipPermitMask + IpAddress, + ipPermitType + INTEGER, + ipPermitAccessType + BITS + } + +ipPermitAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of a IP permit host." + ::= { ipPermitListEntry 1 } + + +ipPermitMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP net mask of a IP permit host." + ::= { ipPermitListEntry 2 } + +ipPermitType OBJECT-TYPE + SYNTAX INTEGER { + valid(1), --add this entry + invalid(2) --remove this entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Setting this object to invalid(2), removes the + corresponding entry from the ipPermitListTable. To + add a new entry into ipPermitListTable, set this + object to valid(1), for an IP address and IP net + mask which are not already in the table." + ::= { ipPermitListEntry 3 } + +ipPermitAccessType OBJECT-TYPE + SYNTAX BITS { + telnet(0), + snmp(1), + ssh(2), + http(3) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The IP access type of a IP permit host. + At least one access type has to be set." + DEFVAL {{ telnet, snmp, ssh, http }} + ::= { ipPermitListEntry 4 } + +ipPermitDeniedListTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpPermitDeniedListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table lists up to 10 the most recently + denied IP addresses with the access type." + ::= { ipPermitListGrp 3 } + +ipPermitDeniedListEntry OBJECT-TYPE + SYNTAX IpPermitDeniedListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A IP permit denied list table entry." + INDEX {ipPermitDeniedAddress} + ::= { ipPermitDeniedListTable 1} + +IpPermitDeniedListEntry ::= + SEQUENCE { + ipPermitDeniedAddress + IpAddress, + ipPermitDeniedAccess + INTEGER, + ipPermitDeniedTime + TimeTicks + } + +ipPermitDeniedAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of a IP permit denied access." + ::= { ipPermitDeniedListEntry 1 } + +ipPermitDeniedAccess OBJECT-TYPE + SYNTAX INTEGER { telnet(1), snmp(2), ssh(3), http(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The denied access type." + ::= { ipPermitDeniedListEntry 2 } + +ipPermitDeniedTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The time (in hundredths of a second) since the IP + permit denied access happens." + ::= { ipPermitDeniedListEntry 3 } + + +ipPermitAccessTypeEnable OBJECT-TYPE + SYNTAX BITS { + telnet(0), + snmp(1), + ssh(2), + http(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This is to replace ipPermitEnable. + Indicates whether the IP permit feature is + enabled or disabled for Telnet, SNMP, ssh and + http. If a bit is set the coresponding feature is + enabled. If a bit is not set the coresponding + feature is disabled." + DEFVAL { { } } + ::= { ipPermitListGrp 4 } + + + +-- the portChannel group + +-- the port channel table + +portChannelTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortChannelEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "A list of port channel entries. The number of + entries is determined by the number of ports in + the system which support the Ethernet Channelling + feature. + + This table is deprecated and replaced by + pagpEtherChannelTable in CISCO-PAGP-MIB and + dot3adAggTable in IEEE8023-LAG-MIB." + ::= { portChannelGrp 1 } + +portChannelEntry OBJECT-TYPE + SYNTAX PortChannelEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "Entry containing information for a particular + port on a module." + INDEX { portChannelModuleIndex, portChannelPortIndex } + ::= { portChannelTable 1 } + +PortChannelEntry ::= + SEQUENCE { + portChannelModuleIndex + INTEGER, + portChannelPortIndex + INTEGER, + portChannelPorts + OCTET STRING, + portChannelAdminStatus + INTEGER, + portChannelOperStatus + INTEGER, + portChannelNeighbourDeviceId + OCTET STRING, + portChannelNeighbourPortId + INTEGER, + portChannelProtInPackets + Counter32, + portChannelProtOutPackets + Counter32, + portChannelIfIndex + INTEGER + } + +portChannelModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "An index value that uniquely identifies the + module where this port is located." + ::= { portChannelEntry 1 } + +portChannelPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { portChannelEntry 2 } + +portChannelPorts OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..8)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The set of ports on a module channelling + together. Each Octet within the value of this + object specifies a set of eight ports, with the + first octet specifying ports 1 through 8, the + second octet specifying ports 9 through 16, etc. + Within each octet, the most significant bit + represents the lowest numbered port, and the + least significant bit rep resents the highest + numbered port. Thus, each port is represented by + a single bit within the value of this object. If + that bit has a value of `1' then that port is + included in the set of channel ports. The default + value of this object is a string which only has a + value of `1' on its own port." + ::= { portChannelEntry 3 } + +portChannelAdminStatus OBJECT-TYPE + SYNTAX INTEGER { on(1), + off(2), + desirable(3), + auto(4), + desirableSilent(5), + autoSilent(6) } + + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates the administrative status set on the + channel ports. If the status is set to on(1), the + channelling is enabled. If the status is set to + off(2), the channelling is disabled. If the status + is set to desirable(3), the port initiates a pagp + negotiation request to become a channel and will + become a channel if the far end agrees. If the + status is set to auto(4), the port does not + initiate a request to become a channel but will do + so if it receives a request to become a channel + from the far end. If the status is set to + desirableSilent(5), the port initiates a pagp + negotiation request to become a channel and will + become a channel if the far end agrees. If the + port doesn't receive any packets from far end, + then after some timeout period the port forms a + channel by itself. If the status is set to + autoSilent(6), the port does not initiate a + request to become a channel, but will do so if it + receives a request to become a channel from the + far end. If the port doesn't receive any request, + then after some timeout period the port forms a + channel by itself." + DEFVAL { auto } + ::= { portChannelEntry 4 } + +portChannelOperStatus OBJECT-TYPE + SYNTAX INTEGER { channelling(1), notChannelling(2) } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Indicates whether the ports current channelling + operational status is channel or not." + ::= { portChannelEntry 5 } + +portChannelNeighbourDeviceId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Indicates the neighbors device id." + ::= { portChannelEntry 6 } + +portChannelNeighbourPortId OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Indicates the neighbor ports' Id." + ::= { portChannelEntry 7 } + +portChannelProtInPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Indicates the number of protocol packets received + on the ports." + ::= { portChannelEntry 8 } + +portChannelProtOutPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Indicates the number of protocol packets + transmitted on the ports." + ::= { portChannelEntry 9 } + +portChannelIfIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The value of the instance of the ifIndex object + defined in MIB-II, for the interface corresponding + to the channel which the port belongs to. This + object will have a non zero value if its + portChannelOperStatus is channelling and the link + of this port is up." + ::= { portChannelEntry 10 } + + + +-- the port capability +-- Implementation of the port capability group is optional, but within +-- the group all the elements are current. + +portCpbTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortCpbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of port capability entries. The number of + entries is determined by the number of modules in + the chassis and the number of ports on each + module." + ::= { portCpbGrp 1 } + +portCpbEntry OBJECT-TYPE + SYNTAX PortCpbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing port capability information for + a particular port on a module." + INDEX { portCpbModuleIndex, portCpbPortIndex } + ::= { portCpbTable 1 } + +PortCpbEntry ::= + SEQUENCE { + portCpbModuleIndex + INTEGER, + portCpbPortIndex + INTEGER, + portCpbSpeed + BITS, + portCpbDuplex + BITS, + portCpbTrunkEncapsulationType + BITS, + portCpbTrunkMode + BITS, + portCpbChannel + DisplayString, + portCpbBroadcastSuppression + BITS, + portCpbFlowControl + BITS, + portCpbSecurity + INTEGER, + portCpbVlanMembership + BITS, + portCpbPortfast + INTEGER, + portCpbUdld + INTEGER, + portCpbInlinePower + BITS, + portCpbAuxiliaryVlan + BITS, + portCpbSpan + BITS, + portCpbCosRewrite + INTEGER, + portCpbTosRewrite + BITS, + portCpbCopsGrouping + OCTET STRING, + portCpbDot1x + INTEGER, + portCpbIgmpFilter + INTEGER + } + +portCpbModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located (see + portModuleIndex)." + ::= { portCpbEntry 1 } + +portCpbPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module (see portIndex)." + ::= { portCpbEntry 2 } + +portCpbSpeed OBJECT-TYPE + SYNTAX BITS { auto(0), + mbps4(1), + mbps10(2), + mbps16(3), + mbps45(4), + mbps100(5), + mbps155(6), + mbps400(7), + mbps622(8), + mbps1000(9), + mbps1dot544(10), -- 1.544 mbps + mbps2(11), -- 2 mbps + mbps2dot048(12), -- 2.048 mbps + kps64(13), -- 64 kps + mbps10000(14) } -- 10 Gbps + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the port speed capability of a port." + ::= { portCpbEntry 3 } + +portCpbDuplex OBJECT-TYPE + SYNTAX BITS { half(0), + full(1), + auto(2), + hdx(3), + fdx(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the duplex capability of a port. + The fdx(4) is specially for tokenring full-duplex + and hdx(3) is specially for tokenring + half-duplex." + ::= { portCpbEntry 4 } + +portCpbTrunkEncapsulationType OBJECT-TYPE + SYNTAX BITS { lane(0), + dot10(1), + dot1Q(2), + isl(3), + negotiate(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the VLAN encapsulation capability of a + port, The dot10(1) is for 801.10 and dot1q(2) is + for 801.1Q." + ::= { portCpbEntry 5 } + +portCpbTrunkMode OBJECT-TYPE + SYNTAX BITS { on(0), + off(1), + desirable(2), + auto(3), + onNoNegotiate(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the trunk capability of a port." + ::= { portCpbEntry 6 } + +portCpbChannel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the channelling capability of a port." + ::= { portCpbEntry 7 } + +portCpbBroadcastSuppression OBJECT-TYPE + SYNTAX BITS { pps(0), + percentage(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the broadcast suppression capability of + a port. The pps(0) is for ports capable of + specifying suppression in packets per second and + percentage(1) is for ports capable of specifying + suppression in terms of percentage of bandwidth." + ::= { portCpbEntry 8 } + +portCpbFlowControl OBJECT-TYPE + SYNTAX BITS { receiveOff(0), + receiveOn(1), + receiveDesired(2), + sendOff(3), + sendOn(4), + sendDesired(5) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the flow control capability of a port." + ::= { portCpbEntry 9 } + +portCpbSecurity OBJECT-TYPE + SYNTAX INTEGER { yes(1), no(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether a port supports security." + ::= { portCpbEntry 10 } + +portCpbVlanMembership OBJECT-TYPE + SYNTAX BITS { static(0), + dynamic(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the vlan membership capability of a + port." + ::= { portCpbEntry 11 } + +portCpbPortfast OBJECT-TYPE + SYNTAX INTEGER { yes(1), no(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether a port supports portfast." + ::= { portCpbEntry 12 } + +portCpbUdld OBJECT-TYPE + SYNTAX INTEGER { + yes(1), + no(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether the port is capable of UDLD + (UniDirectional Link Detection) or not." + ::= { portCpbEntry 13 } + +portCpbInlinePower OBJECT-TYPE + SYNTAX BITS { + auto(0), + on(1), + off(2), + static(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicate the inline power capability of a port. + 'auto' denotes the ability that the switch + automatically determines whether or not power + should be provided. 'on' denotes the ability to + manually turn on inline power. + 'off' denotes the ability to manually turn off + inline power. 'static' denotes the ability to + preallocate power for a port." + ::= { portCpbEntry 14 } + +portCpbAuxiliaryVlan OBJECT-TYPE + SYNTAX BITS { + vlanNo (0), + untagged (1), + dot1p (2), + none (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicate the voice vlan capability of a port." + ::= { portCpbEntry 15 } + +portCpbSpan OBJECT-TYPE + SYNTAX BITS { + source(0), + destination(1), + reflector(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates port span capabilities. + source(0) denotes the capability of being SPAN + source destination(1) denotes the capability of + being SPAN destination, reflector(2) denotes the + capability of being SPAN reflector." + ::= { portCpbEntry 16 } + +portCpbCosRewrite OBJECT-TYPE + SYNTAX INTEGER { yes(1), no(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether a port supports CoS rewrite." + ::= { portCpbEntry 17 } + +portCpbTosRewrite OBJECT-TYPE + SYNTAX BITS { dscp(0), + ipPrecedence(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates the ToS rewrite capability of a port. + dscp(0) denotes the port capability to classify + packets according to the DSCP. + ipPrecedence(1) denotes the port capability to + classify packets according to the IP Precedence." + ::= { portCpbEntry 18 } + +portCpbCopsGrouping OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The set of ports on a module that are configured + together as far as the Differentiated Services + Cops feature is concerned. Each Octet within the + value of this object specifies a set of eight + ports, with the first octet specifying ports 1 + through 8, the second octet specifying ports 9 + through 16, etc. Within each octet, the most + significant bit represents the lowest numbered + port, and the least significant bit represents + the highest numbered port. Thus, each port is + represented by a single bit within the value of + this object. If that bit has a value of `1' then + that port is included in the set of Cops + grouping." + ::= { portCpbEntry 19 } + +portCpbDot1x OBJECT-TYPE + SYNTAX INTEGER { yes(1), no(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether a port supports 802.1x." + ::= { portCpbEntry 20 } + +portCpbIgmpFilter OBJECT-TYPE + SYNTAX INTEGER { yes(1), no(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether a port supports IGMP filter." + ::= { portCpbEntry 21 } + +-- The PORT Top "N" Group +-- +-- The Port Top N group is used to prepare reports that +-- describe the ports that top a list ordered by one of +-- their statistics. Therefore, the sampling base is on +-- the ports in this monitored device system. The data +-- source is from all the ports in this monitored device +-- system so it is not necessary to specify the data +-- source in the control table. +-- The available statistics are samples of one of their +-- base statistics, over an interval specified by the +-- management station. Thus, these statistics are rate +-- based. The management station also selects how many such +-- ports are reported. +-- The portTopNControlTable is used to initiate the +-- generation of such a report. The management station +-- may select the parameters of such a report, such as +-- which statistic, how many ports, port types, and the start +-- and stop times of the sampling. + +-- When the report is prepared, entries are created in the +-- portTopNTable associated with the relevant +-- portTopNControlEntry. These entries are static for +-- each report after it has been prepared. + + +portTopNControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortTopNControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of top N port control entries." + ::= { portTopNGrp 1 } + +portTopNControlEntry OBJECT-TYPE + SYNTAX PortTopNControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A set of parameters that control the creation of + a report of the top N ports according to several + metrics. + For example, an instance of the portTopNDuration + object might be named portTopNDuration.3" + INDEX { portTopNControlIndex } + ::= { portTopNControlTable 1 } + +PortTopNControlEntry ::= + SEQUENCE { + portTopNControlIndex + INTEGER, + portTopNRateBase + INTEGER, + portTopNType + INTEGER, + portTopNMode + INTEGER, + portTopNReportStatus + INTEGER, + portTopNDuration + INTEGER, + portTopNTimeRemaining + INTEGER, + portTopNStartTime + TimeTicks, + portTopNRequestedSize + INTEGER, + portTopNGrantedSize + INTEGER, + portTopNOwner + OwnerString, + portTopNStatus + RowStatus + } + +portTopNControlIndex OBJECT-TYPE + SYNTAX INTEGER (1..5) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index that uniquely identifies an entry + in the portTopNControl table. Each such + entry defines one top N report." + ::= { portTopNControlEntry 1 } + +portTopNRateBase OBJECT-TYPE + SYNTAX INTEGER { + portTopNUtilization(1), + portTopNIOOctets(2), + portTopNIOPkts(3), + portTopNIOBroadcastPkts(4), + portTopNIOMulticastPkts(5), + portTopNInErrors(6), + portTopNBufferOverflow(7) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The variable for all ports in this system + based on which portTopNTable/report is ordered. + + This object may not be modified if the associated + portTopNStatus object is equal to active(1)." + DEFVAL { portTopNUtilization } + ::= { portTopNControlEntry 2 } + +portTopNType OBJECT-TYPE + SYNTAX INTEGER { + portTopNAllPorts(1), + portTopNEthernet(2), + portTopNFastEthernet(3), + portTopNGigaEthernet(4), + portTopNTokenRing(5), + portTopNFDDI(6), + portTopNAllEthernetPorts(7), + portTopN10GigaEthernet(8) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The sampling port type. + + This object may not be modified if the associated + portTopNStatus object is equal to active(1)." + DEFVAL { portTopNAllPorts } + ::= { portTopNControlEntry 3 } + +portTopNMode OBJECT-TYPE + SYNTAX INTEGER { + portTopNForeground(1), + portTopNBackground(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The running mode of this portTopN control entry. + portTopNForeground (1) means when + portTopNTimeRemaining reaches to 0, the report + will show on the CLI at once and it won't be kept + in the portTopNTable. portTopNBackground (2) means + the report will not show on the CLI it will be + kept in the portTopNTable. + + This object may not be modified if the associated + portTopNStatus object is equal to active(1)." + DEFVAL { portTopNBackground } + ::= { portTopNControlEntry 4 } + +portTopNReportStatus OBJECT-TYPE + SYNTAX INTEGER { + progressing(1), + ready(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The report status of this portTopN control entry. + Progressing (1) means that the report of this + portTopN control entry is still in progress. The + management station can poll this mib object to + check the report data is available or not. + Ready (2) means the report is available." + ::= { portTopNControlEntry 5 } + +portTopNDuration OBJECT-TYPE + SYNTAX INTEGER (0|10..999) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The sampling interval in seconds during which + statistics are collected for this report. + + When this is set a value and the corresponding + portTopNControlEntry is valid, the + portTopNTimeRemaining object shall be set to the + same value. + portTopNTimeRemaining starts at the same value as + portTopNDuration and counts down as the collection + goes on. + + If this object is set to be zero, it will do the + collection immediately. And the collecting report + value should be the absolute counter value." + DEFVAL { 30 } + ::= { portTopNControlEntry 6 } + +portTopNTimeRemaining OBJECT-TYPE + SYNTAX INTEGER(1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of seconds left in the report + currently being collected. When portTopNDuration + object is modified by the management station, a + new collection is started, possibly aborting a + currently running report. The new value is used as + the requested duration of this report, which is + loaded from the associated portTopNDuration + object. + + When this object is a non-zero value, any + associated portTopNEntries shall be made + inaccessible by the monitor. + + While the value of this object is non-zero and the + corresponding portTopNControlENtry is valid, it + decrements by one per second until it reaches + zero. During this time, all associated + portTopNEntries shall remain inaccessible. At + the time that this object decrements to zero, the + report is made accessible in the portTopNTable. + Thus, the portTopN table is to be created only at + the end of the collection interval." + ::= { portTopNControlEntry 7 } + +portTopNStartTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The value of sysUpTime when this top N report was + last started. In other words, this is the time + that the associated portTopNTimeRemaining object + was modified to start the requested report." + ::= { portTopNControlEntry 8 } + +portTopNRequestedSize OBJECT-TYPE + SYNTAX INTEGER(1..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The maximum number of ports requested for the top + N entry. + + When this object is created or modified, the value + of portTopNGrantedSize is set as closely to this + object as is possible for the particular + implementation and available resources. + Valid value for this object is 1 to maximum number + of physical ports. The default value is 20 ports." + DEFVAL { 20 } + ::= { portTopNControlEntry 9 } + +portTopNGrantedSize OBJECT-TYPE + SYNTAX INTEGER(1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The maximum number of ports in the top N table. + When the associated portTopNRequestedSize object + is created or modified, the value of this object + should be set as closely to the requested value as + is possible for the particular implementation and + available resources. The value must not be lowered + except as a result of a set to the associated + portTopNRequestedSize object. + Ports with the highest value of portTopNRateBase + shall be placed in this table in decreasing order + of this rate until there is no more room or until + there are no more ports." + ::= { portTopNControlEntry 10 } + +portTopNOwner OBJECT-TYPE + SYNTAX OwnerString + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The entity that configured this entry and is + therefore using the resources assigned to it." + ::= { portTopNControlEntry 11 } + +portTopNStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The status of this portTopNControl entry. + The Management station sends the user set values + with a portTopNStatus value of createAndGo(4). + When the agent receives it the collection of the + report starts. + When the portTopNReportStatus is ready(2) the user + can get the reports (portTopNTable). + For the current implementation createAndWait(5) + will not be supported. + There can be only 5 rows in the control table." + ::= { portTopNControlEntry 12 } + +portTopNTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortTopNEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of top N port entries." + ::= { portTopNGrp 2 } + +portTopNEntry OBJECT-TYPE + SYNTAX PortTopNEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A set of statistics for a port that is part of a + top N report. For example, an instance of the + portTopNRateBase object might be named + portTopNUtilization.3.10" + INDEX { portTopNControlIndex, portTopNIndex } + ::= { portTopNTable 1 } + +PortTopNEntry ::= + SEQUENCE { + portTopNIndex + INTEGER, + portTopNModuleNumber + INTEGER, + portTopNPortNumber + INTEGER, + portTopNUtilization + INTEGER, + portTopNIOOctets + Counter64, + portTopNIOPkts + Counter64, + portTopNIOBroadcast + Counter64, + portTopNIOMulticast + Counter64, + portTopNInErrors + Counter32, + portTopNBufferOverFlow + Counter32 + } + +portTopNIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index that uniquely identifies an entry in + the portTopN table among those in the same report. + This index is between 1 and N, where N is the + portTopNGrantedSize of ports with the highest + portTopNRateBase. Increasing values of + portTopNIndex shall be assigned to entries with + decreasing values of portTopNRateBase until index + N is assigned to the entry with the lowest value + of portTopNRateBase or there are no more + portTopNEntries." + ::= { portTopNEntry 1 } + +portTopNModuleNumber OBJECT-TYPE + SYNTAX INTEGER (1..20) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The module number of the port counter data + entry." + ::= { portTopNEntry 2 } + +portTopNPortNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The port number of the port counter data entry." + ::= { portTopNEntry 3 } + +portTopNUtilization OBJECT-TYPE + SYNTAX INTEGER(1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The utilization of the port in the system. + The utilization is computed in the following + methods: + + Ethernet Utilization: (If Full Duplex, multiply by 2) + + 10 Mbps I/O-pkts * (9.6 + 6.4) + (0.8 * I/O-Bytes) + Ethernet Util = ----------------------------------------- + Interval * 10,000 + + where 9.6 is interframe gap of Ethernet + 6.4 is preamble of Ethernet + 10,000 is 10Mbps + + 100 Mbps I/O-pkts * (96 + 64) + (8 * I/O-Bytes) + Ethernet Util = -------------------------------------- + Interval * 1,000,000 + + 1000 Mbps I/O-pkts * (96 + 64) + (8 * I/O-Bytes) + Ethernet Util = -------------------------------------- + Interval * 10,000,000 + + All other I/O-pkts * (9.6 + 6.4) + (0.8 * I/O-Bytes) + Ethernet Util = ------------------------------------------ + Interval * N * 1,000 + (where N is N Mbps) + + Token Ring Utilization: + (Assuming that Octets is from AC byte through FCS) + + + 4 Mbps Pkts * 32 + (8 * Octets) + Token Ring Util = 100 * ------------------------ + Interval * 4,000,000 + where 32 is bits in SD, ED, FS and IFG + + 16 Mbps Pkts * 64 + (8 * Octets) + Token Ring Util = 100 * ------------------------ + Interval * 16,000,000 + where 64 is bits in SD, ED, FS and IFG + + FDDI Utilization: + + I/O-Pkts * (64 + 8 + 32 + 16) + (8 * I/O-Bytes) + FDDI Util = ---------------------------------------------- + Interval * 100,000,000 + + where 64 is Preamble of FDDI, + 8 is the Start Delimiter (SD) of FDDI, + 32 is the CRC, and + 16 is the End of Frame Sequence (EFS) of FDDI." + + ::= { portTopNEntry 4 } + +portTopNIOOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The Input and Output octets of the port in the + system." + ::= { portTopNEntry 5 } + +portTopNIOPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The Input and Output packets of the port in the + system." + ::= { portTopNEntry 6 } + +portTopNIOBroadcast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The Input and Output broadcast packets of the + port in the system." + ::= { portTopNEntry 7 } + +portTopNIOMulticast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The Input and Output multicast packets of the + port in the system." + ::= { portTopNEntry 8 } + +portTopNInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The Input error packets of the port in the + system." + ::= { portTopNEntry 9 } + +portTopNBufferOverFlow OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of buffer overflow of the port in + the system." + ::= { portTopNEntry 10 } + + + +-- the multiple default gateway group + +-- Implementation of the multiple default gateway group is optional, +-- but within the group all the elements are current. If the multiple +-- default gateway feature is supported, the entire group should be +-- implemented. + +mdgGatewayTable OBJECT-TYPE + SYNTAX SEQUENCE OF MdgGatewayEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table lists a maximum of 3 MDG gateways." + ::= { mdgGrp 1 } + +mdgGatewayEntry OBJECT-TYPE + SYNTAX MdgGatewayEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A MDG gateway table entry." + INDEX { mdgGatewayAddr } + ::= { mdgGatewayTable 1 } + +MdgGatewayEntry ::= + SEQUENCE { + mdgGatewayAddr + IpAddress, + mdgGatewayType + INTEGER + } + +mdgGatewayAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The IP address of a default gateway." + ::= { mdgGatewayEntry 1 } + +mdgGatewayType OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), -- remove this entry + primary(2), -- the primary entry + other(3) -- a lower priority entry + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "To add a new entry to the mdgGatewayTable, set + this object to primary(2) or other(3) for an IP + address which is not already in the table. The + primary entry will be used first, if it is + reachable. Otherwise, one of the other entries + will be used. Setting one entry to primary(2) + causes any previous primary entry to change to + other(3). To remove an entry from the table, set + this object to invalid(1). Changing an existing + entry from primary(2) to other(3) is not allowed. + If the value of this object is updated, the + corresponding entry of the ipRouteTable (mibII) + will be updated and vice versa." + ::= { mdgGatewayEntry 2 } + + + +-- the RADIUS group + +-- Implementation of the RADIUS group is optional, but within the group +-- all the elements are current. If the RADIUS feature is implemented, +-- the entire group should be implemented. + +radiusLoginAuthentication OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForTelnetOnly(3), + enabledForConsoleOnly(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether the login authentication using + RADIUS feature is enabled or disabled for console + and/or telnet sessions. + + Setting this object to enabled(1), the login + authentication using RADIUS feature is enabled for + both console and telnet sessions. + + Setting this object to disabled(2), the login + authentication using RADIUS feature is disabled + for both console and telnet sessions. + + Setting this object to enabledForTelnetOnly(3),the + login authentication using RADIUS feature is + enabled only for telnet sessions, but disabled + for console session. + + Setting this object to enabledForConsoleOnly(4), + the login authentication using RADIUS feature is + enabled only for console sessions, but disabled + for telnet sessions. + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + DEFVAL { disabled } + ::= { radiusGrp 1 } + +radiusEnableAuthentication OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2), + enabledForTelnetOnly(3), + enabledForConsoleOnly(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Indicates whether the enable authentication using + the RADIUS feature is enabled or disabled for + Console and telnet sessions. + + Setting this object to enabled(1), the enable + authentication using RADIUS feature is enabled for + both console and telnet sessions. + + Setting this object to disabled(2), the enable + authentication using RADIUS feature is disabled + for both console and telnet sessions. + + Setting this object to enabledForTelnetOnly(3), + the enable authentication using RADIUS feature is + enabled only for telnet sessions, but disabled for + console sessions. + + Setting this object to enabledForConsoleOnly(4), + the enable authentication using RADIUS feature is + enabled only for console sessions, but disabled + for telnet sessions. + + This object is deprecated and replaced by + cacPriorityTable in CISCO-AAA-CLIENT-MIB." + DEFVAL { disabled } + ::= { radiusGrp 2 } + +radiusDeadtime OBJECT-TYPE + SYNTAX INTEGER (0..1440) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the length of time in minutes that + the system will mark the server dead when a RADIUS + server does not respond to an authentication + request. During the interval of the dead time, any + authentication request that comes up would not be + sent to that RADIUS server that was marked as + dead. The default value of 0 means that the + RADIUS servers will not be marked dead if they + do not respond." + DEFVAL { 0 } + ::= { radiusGrp 3 } + +radiusAuthKey OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The key used in encrypting the packets passed + between the RADIUS server and the client. This key + must match the one configured on the server. + + Note that this item is only accessible when using + the community string defined in sysCommunityRwa." +-- DEFVAL { NULL } + ::= { radiusGrp 4 } + +radiusTimeout OBJECT-TYPE + SYNTAX INTEGER (1..1000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This is the time in seconds between + retransmissions to the RADIUS server." + DEFVAL { 5 } + ::= { radiusGrp 5 } + + +radiusRetransmits OBJECT-TYPE + SYNTAX INTEGER (1..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates number of times the RADIUS server + should be tried before giving up on the server." + DEFVAL { 2 } + ::= { radiusGrp 6 } + + +radiusServerTable OBJECT-TYPE + SYNTAX SEQUENCE OF RadiusServerEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "This table lists a maximum of 3 RADIUS servers. + + This object is deprecated and replaced by + crRadiusServerTable in CISCO-RADIUS-MIB." + ::= { radiusGrp 7 } + +radiusServerEntry OBJECT-TYPE + SYNTAX RadiusServerEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "A RADIUS server table entry." + INDEX { radiusServerAddr } + ::= { radiusServerTable 1 } + +RadiusServerEntry ::= + SEQUENCE { + radiusServerAddr + IpAddress, + radiusServerAuthPort + INTEGER, + radiusServerType + INTEGER + } + +radiusServerAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP address of a RADIUS Server." + ::= { radiusServerEntry 1 } + +radiusServerAuthPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION "This is the destination UDP port number to which + RADIUS messages should be sent. The RADIUS server + will not be used for authentication if this port + number is 0." + REFERENCE "RFC2138, Implementation Note." + DEFVAL { 1812 } + ::= { radiusServerEntry 2 } + +radiusServerType OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), -- remove this entry + primary(2), -- the primary entry + other(3) -- a lower priority entry + } + MAX-ACCESS read-create + STATUS deprecated + DESCRIPTION "To add a new entry to the radiusServerTable, set + this object to primary(2) or other(3) for an IP + address which is not already in the table. The + primary entry will be used first, if it is + reachable. Otherwise, one of the other entries + will be used. Setting one entry to primary(2) + causes any previous primary entry to change to + other(3). To remove an entry from the table, + set this object to invalid(1)." + ::= { radiusServerEntry 3 } + +-- the traceRoute group + +-- Implementation of the traceRoute group is optional, but within the +-- group all the elements are current. If the trace route feature is +-- supported, the entire group should be implemented. + +traceRouteMaxQueries OBJECT-TYPE + SYNTAX INTEGER (1..20) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Maximum number of query entries allowed to be + outstanding at any time, in the + traceRouteQueryTable. + The typical value for this object is 5." + ::= { traceRouteGrp 1} + +traceRouteQueryTable OBJECT-TYPE + SYNTAX SEQUENCE OF TraceRouteQueryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A control table used to query the information + about each gateway along the path to a host by + specifying retrieval criteria for the host. The + resulting data for each instance of a query in + this table is returned in the traceRouteDataTable. + The maximum number of entries (rows) in this table + cannot exceed the value returned by + traceRouteMaxQueries." + ::= { traceRouteGrp 2 } + +traceRouteQueryEntry OBJECT-TYPE + SYNTAX TraceRouteQueryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A conceptual row of the traceRouteQueryTable used + to setup retrieval criteria to search for gateways + belongs to the path to a particular host + identified by its IP address. The actual search + is started by setting the value of + traceRouteQueryStatus to valid(1)." + INDEX { traceRouteQueryIndex } + ::= { traceRouteQueryTable 1 } + +TraceRouteQueryEntry ::= + SEQUENCE { + traceRouteQueryIndex + INTEGER, + traceRouteHost + DisplayString, + traceRouteQueryDNSEnable + INTEGER, + traceRouteQueryWaitingTime + INTEGER, + traceRouteQueryInitTTL + INTEGER, + traceRouteQueryMaxTTL + INTEGER, + traceRouteQueryUDPPort + INTEGER, + traceRouteQueryPacketCount + INTEGER, + traceRouteQueryPacketSize + INTEGER, + traceRouteQueryTOS + INTEGER, + traceRouteQueryResult + INTEGER, + traceRouteQueryTime + TimeTicks, + traceRouteQueryOwner + DisplayString, + traceRouteQueryStatus + INTEGER + } + + +traceRouteQueryIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Object which specifies an unique entry in the + traceRouteQueryTable." + ::= { traceRouteQueryEntry 1 } + +traceRouteHost OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Network(IP) address in dotted decimal format or + the DNS hostname of the host which is tracerouted." + ::= { traceRouteQueryEntry 2 } + +traceRouteQueryDNSEnable OBJECT-TYPE + SYNTAX INTEGER{ enabled(1), + disabled(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "If this value of this object is true, the + traceroute operation will do a DNS lookup for each + hop on the path, so the corresponding instance of + the traceRouteDataTable will contain the host name + and the ip address; otherwise, that instance only + contains the ip address." + DEFVAL { enabled } + ::= { traceRouteQueryEntry 3 } + +traceRouteQueryWaitingTime OBJECT-TYPE + SYNTAX INTEGER (1..300) + UNITS "seconds" + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The trace route waiting time in seconds for an + ICMP response message." + DEFVAL { 5 } + ::= { traceRouteQueryEntry 4 } + +traceRouteQueryInitTTL OBJECT-TYPE + SYNTAX INTEGER(1..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "If this value of this object is set, it allows + users skip processing for gateways that are less + than traceRouteQueryInitTTL away by sending + datagram with the value of this object instead of + the default value of one." + DEFVAL { 1 } + ::= { traceRouteQueryEntry 5 } + +traceRouteQueryMaxTTL OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The maximum TTL value used in outgoing packets." + DEFVAL { 30 } + ::= { traceRouteQueryEntry 6} + +traceRouteQueryUDPPort OBJECT-TYPE + SYNTAX INTEGER(1..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The base UDP destination port is used in the + traceroute datagrams. This value of this object is + often larger than 30,000 to make it improbable + that this port is used (this causes the + destination host's UDP module to generate an ICMP + port unreachable so the traceroute operation + knows when the operation is accomplished). + The traceroute operation will increment this value + of this object each time it sends a datagram. This + object should be used in the unlikely event that + the destination port is listening to a port in the + default traceroute port range." + DEFVAL { 33434 } + ::= { traceRouteQueryEntry 7 } + +traceRouteQueryPacketCount OBJECT-TYPE + SYNTAX INTEGER(1..1000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Specifies the number of traceroute packets to + send to the target host in this sequence." + DEFVAL { 3 } + ::= { traceRouteQueryEntry 8 } + +traceRouteQueryPacketSize OBJECT-TYPE + SYNTAX INTEGER(0..1420) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Specifies the size of traceroute packets to send + to the target host in this sequence. " + DEFVAL { 0 } + ::= { traceRouteQueryEntry 9 } + +traceRouteQueryTOS OBJECT-TYPE + SYNTAX INTEGER(0..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The type of service to be set in the IP header of + the outgoing packets.This value can set to see if + different types-of-service result in different + paths. Not all values of TOS are legal or + meaningful (see the IP spec for definitions. + Useful values are probably 16 (low delay) and 8 + (high throughput)." + DEFVAL { 0 } + ::= { traceRouteQueryEntry 10 } + +traceRouteQueryResult OBJECT-TYPE + SYNTAX INTEGER(-1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The result status of the query. Possible values + are: + + -1 -Either the query has not been initiated or the + agent is busy processing this query instance. Time + to completion of the query processing depends on + the complexity of the query and the number of + matches that satisfy this query. + + 0..2147483647 - The search has ended and this is + the number of rows in the traceRouteDataTable, + resulting from this query." + ::= { traceRouteQueryEntry 21} + +traceRouteQueryTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The value of sysUpTime at the time when the query + is configured." + ::= { traceRouteQueryEntry 22 } + +traceRouteQueryOwner OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..50)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The manager entity that configured this entry and + is therefore using the resources assigned to it." + ::= { traceRouteQueryEntry 23 } + +traceRouteQueryStatus OBJECT-TYPE + SYNTAX INTEGER {valid(1), invalid(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The status object used to manage rows in this + table. + When set this object to valid(1), the query is + initiated. Once initiated, all the read-write + objects of this table can't be modified. To remove + an entry from the table, set this object to + invalid(2)." + ::= { traceRouteQueryEntry 24 } + +-- The Trace Route result table. + +traceRouteDataTable OBJECT-TYPE + SYNTAX SEQUENCE OF TraceRouteDataEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table containing information about the gateway + belongs to the path to the host corresponding to + all the completed queries setup in the + traceRouteQueryTable." + ::= { traceRouteGrp 3 } + +traceRouteDataEntry OBJECT-TYPE + SYNTAX TraceRouteDataEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A conceptual row of the traceRouteDataTable used + to return information about all the gateway + belongs to the host of which search criteria is + corresponding instance of the + traceRouteQueryTable." + INDEX { traceRouteQueryIndex, traceRouteDataIndex } + ::= { traceRouteDataTable 1 } + +TraceRouteDataEntry ::= + SEQUENCE { + traceRouteDataIndex + INTEGER, + traceRouteDataGatewayName + DisplayString, + traceRouteDataGatewayIp + IpAddress, + traceRouteDataRtt + INTEGER, + traceRouteDataHopCount + INTEGER, + traceRouteDataErrors + INTEGER + } + +traceRouteDataIndex OBJECT-TYPE + SYNTAX INTEGER(1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Object which specifies an unique entry in the + traceRouteDataTable." + ::= { traceRouteDataEntry 1 } + +traceRouteDataGatewayName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The DNS name of the gateway if available." + ::= { traceRouteDataEntry 2 } + +traceRouteDataGatewayIp OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The ip address of the gateway. If the traceroute + packet was sent and timed-out, the ip address is + set to 0.0.0.0." + ::= { traceRouteDataEntry 3 } + +traceRouteDataRtt OBJECT-TYPE + SYNTAX INTEGER(1..65535) + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The round trip time of the current packet that + have been sent in this sequence." + ::= { traceRouteDataEntry 4 } + +traceRouteDataHopCount OBJECT-TYPE + SYNTAX INTEGER(1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of hop starting from the place where + the traceroute operation is initialized to the + gateway which has the traceRouteDataGatewayIp." + ::= { traceRouteDataEntry 5 } + +traceRouteDataErrors OBJECT-TYPE + SYNTAX INTEGER { + icmpUnreachNet(1), -- bad net + icmpUnreachHost(2), -- bad host + icmpUnreachProtocol(3), -- bad protocol + icmpUnreachPort(4), -- bad port + icmpUnreachNeedFrag(5), -- IP defragment caused + -- drop + icmpUnreachSrcFail(6), -- src route failed + icmpUnreachNoNet(7), -- no such network + icmpUnreachNoHost(8), -- no such host + icmpUnreachHostIsolated(9), -- host isolated + icmpUnreachNetProhib(10), + -- dod net admin prohibited + icmpUnreachProhib(11), + -- dod host admin prohibit + icmpUnreachNetTos(12), + -- net and tos unreachable + icmpUnreachHostTos(13), + -- host and tos unreachable + icmpUnreachAdmin(14), + -- administratively prohibited + icmpUnreachHostPrec(15), -- host precedence + icmpUnreachPrecedence(16), -- precedence cutoff + icmpUnknown(17), -- unknown error + icmpTimeOut(18), -- time out + icmpTTLExpired(19) -- ttl expired + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The error of the traceroute operation." + ::= { traceRouteDataEntry 6 } + + + +-- the fileCopy group + +-- Implementation of the file group is current for all Cisco Workgroup +-- Stack products which implement tftp/rcp upload/download functions +-- or local file copy. + +fileCopyProtocol OBJECT-TYPE + SYNTAX INTEGER { tftp (1), + rcp (2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The protocol to be used for any remote copy. + If the config file transfer is to occur locally on + the SNMP agent, the method of transfer is left up + to the implementation, and is not restricted to + the protocols above. + + The value of this object can not be changed when + the fileCopyResult object has the value of + inProgress(1)." + DEFVAL { tftp } + ::= { fileCopyGrp 1 } + +fileCopyRemoteServer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The IP address or the host name of the tftp/rcp + remote server from (or to) which to copy the file. + If the copy operation is local on the SNMP agent, + this object is not applicable. + + The value of this object can not be changed when + the fileCopyResult object has the value of + inProgress(1)." + ::= { fileCopyGrp 2 } + +fileCopySrcFileName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The source file name (including the path, if + applicable) of the file. The accepted value of + this object is 'cfg1' or 'cfg2' when the requested + action is one of the following: + + copyConfigFromFlashToRuntime(8), and + copyConfigFileFromFlashToHost(11). + + The value of this object can not be changed when + the fileCopyResult object has the value of + inProgress(1)." + ::= { fileCopyGrp 3 } + +fileCopyDstFileName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The destination file name (including the path, if + applicable) of the file. The accepted value of + this object is 'cfg1' or 'cfg2' when the requested + action is one of the following: + + copyConfigFromRuntimeToFlash(9), + copyConfigFileFromHostToFlash(10). + + The value of this object can not be changed when + the fileCopyResult object has the value of + inProgress(1)." + ::= { fileCopyGrp 4 } + +fileCopyModuleNumber OBJECT-TYPE + SYNTAX INTEGER(0..16) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The module number specified in the copy + operation. + + If the value of this object is 0 and the + fileCopyAction object has the value of + copyImageFromHostToFlash(4), the switch will do + multiple download to the modules with matching + image type. It is left to the SNMP agent to allow + the individual modules to be reset with the + downloaded images or not. + + The value of this object can not be changed when + the fileCopyResult object has the value of + inProgress(1)." + ::= { fileCopyGrp 5 } + +fileCopyUserName OBJECT-TYPE + SYNTAX DisplayString(SIZE (1..40)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Remote user name for copy via rcp protocol. This + object must be specified when the + fileCopyProtocol is rcp." + ::= { fileCopyGrp 6 } + +fileCopyAction OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + copyConfigFromHostToRuntime(2), + copyConfigFromRuntimeToHost(3), + copyImageFromHostToFlash(4), + copyImageFromFlashToHost(5), + copyConfigFromFlashToRuntime(8), + copyConfigFromRuntimeToFlash(9), + copyConfigFileFromHostToFlash(10), + copyConfigFileFromFlashToHost(11), + copyTechReportFromRuntimeToHost(12) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Setting this object to one of the acceptable + values will initiate the requested action using + the information provided by fileCopyProtocol, + fileCopyRemoteServer, fileCopySrcFileName, + fileCopyDstFileName,fileCopyModuleNumber and + fileCopyUserName. + + copyConfigFromHostToRuntime(2): + Copy the configuration file from host to + runtime configuration over the network through + tftp/rcp. This action will use + fileCopyProtocol, fileCopyRemoteServer, + fileCopySrcFileName, fileCopyModuleNumber, + and fileCopyUserName (if applicable). + + copyConfigFromRuntimeToHost(3): + Copy the runtime configuration to host over the + network through tftp/rcp. This action will use + fileCopyProtocol, fileCopyRemoteServer, + fileCopyModuleNumber, fileCopyDstFileName, + fileCopyUserName (if applicable), and + fileCopyRuntimeConfigPart. + + copyImageFromHostToFlash(4): + Copy the image from host to the flash over the + network through tftp/rcp. It is up to the + SNMP agent to reset and run the downloaded + image after copying. This action will use + fileCopyProtocol, fileCopyRemoteServer, + fileCopySrcFileName, fileCopyModuleNumber, + and fileCopyUserName (if applicable). + + copyImageFromFlashToHost(5): + Copy the image from flash to host over the + switch through tftp/rcp. This action will use + fileCopyProtocol, fileCopyRemoteServer, + fileCopyDstFileName, fileCopyModuleNumber, + and fileCopyUserName (if applicable). + + copyConfigFromFlashToRuntime(8): + Copy the configuration file to the runtime + configuration locally. This action can perform + only on the SUPG supervisor model and will + use fileCopySrcFileName ('cfg1' or 'cfg2'). + + copyConfigFromRuntimeToFlash(9): + Copy the runtime configuration to a + configuration file on the flash locally. This + action can perform only on the SUPG supervisor + model and will use fileCopyDstFileName ('cfg1' + or 'cfg2'), and fileCopyRuntimeConfigPart. + + copyConfigFileFromHostToFlash(10): + Copy the configuration file from host to the + runtime configuration over the network through + tftp/rcp. This action can perform only on the + SUPG supervisor model and will use + fileCopyProtocol, fileCopyRemoteServer, + fileCopySrcFileName, fileCopyDstFileName, + fileCopyModuleNumber and fileCopyUserName + (if applicable). + + copyConfigFileFromFlashToHost(11): + Copy the configuration file on the flash to + host over the network through tftp/rcp. + This action can perform only on the + SUPG supervisor model and will use + fileCopyProtocol, fileCopyRemoteServer, + fileCopySrcFileName, fileCopyDstFileName, + fileCopyModuleNumber and fileCopyUserName + (if applicable). + + copyTechReportFromRuntimeToHost(12): + Copy the technical report of the system to + host over the network through tftp only. This + action will use fileCopyProtocol, + fileCopyRemoteServer, fileCopyModuleNumber, + and fileCopyDstFileName. + + Setting this object to any other value results in + an error. + + The value of this object can not be changed when + the fileCopyResult object has the value of + inProgress(1)." + ::= { fileCopyGrp 7 } + +fileCopyResult OBJECT-TYPE + SYNTAX INTEGER { + inProgress(1), + success(2), + noResponse(3), + tooManyRetries(4), + noBuffers(5), + noProcesses(6), + badChecksum(7), + badLength(8), + badFlash(9), + serverError(10), + userCanceled(11), + wrongCode(12), + fileNotFound(13), + invalidHost(14), + invalidModule(15), + accessViolation(16), + unknownStatus(17), + invalidStorageDevice(18), + insufficientSpaceOnStorageDevice(19), + insufficientDramSize(20), + incompatibleImage(21), + rcpError(22) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Contains the result of the last copy action + request. + If the value of fileCopyResult is rcpError(22), + then the detailed rcp error messages are contained + in fileCopyResultRcpErrorMessage." + ::= { fileCopyGrp 8 } + +fileCopyResultRcpErrorMessage OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Contains the detailed rcp error messages if the + value of fileCopyResult is rcpError(22) for the + last copy action request; otherwise, this MIB + object contains the empty string." + ::= { fileCopyGrp 9 } + +fileCopyRuntimeConfigPart OBJECT-TYPE + SYNTAX INTEGER { + all(1), + nonDefault(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the part of runtime configuration to be + copied. This object will only take effect when the + object value of fileCopyAction is one of the + following: + + copyConfigFromRuntimeToHost(3), + copyConfigFromRuntimeToFlash(9). + + all -- copy all the runtime configuration. + + nonDefault --copy only the part of the runtime + configuration which is different from + the default configuration." + DEFVAL { all } + ::= { fileCopyGrp 10 } + + +-- The voice Group +-- Voice Port Interface Configuration Table + +voicePortIfConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF VoicePortIfConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of port entries. The number of entries is + determined by the number of modules in the chassis + and the number of ports with the voice port + interface configuration capability in the system." + ::= { voiceGrp 1 } + +voicePortIfConfigEntry OBJECT-TYPE + SYNTAX VoicePortIfConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing voice interface configuration + for a particular port." + INDEX { voicePortIfConfigModuleIndex, + voicePortIfConfigPortIndex } + ::= { voicePortIfConfigTable 1 } + +VoicePortIfConfigEntry ::= + SEQUENCE { + voicePortIfConfigModuleIndex INTEGER, + voicePortIfConfigPortIndex INTEGER, + voicePortIfDHCPEnabled TruthValue, + voicePortIfIpAddress IpAddress, + voicePortIfIpNetMask IpAddress, + voicePortIfTftpServerAddress IpAddress, + voicePortIfGatewayAddress IpAddress, + voicePortIfDnsServerAddress IpAddress, + voicePortIfDnsDomain DisplayString, + voicePortIfOperDnsDomain DisplayString + } + +voicePortIfConfigModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located." + ::= { voicePortIfConfigEntry 1 } + +voicePortIfConfigPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module. The value is determined by the + location of the port on the module." + ::= { voicePortIfConfigEntry 2 } + +voicePortIfDHCPEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicate whether DHCP service is enabled." + DEFVAL { true } + ::= { voicePortIfConfigEntry 3 } + +voicePortIfIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's IP address. This object + is configurable only if voicePortIfDHCPEnabled + is false. When the value of voicePortIfDHCPEnabled + is false, this object should be configured." + ::= { voicePortIfConfigEntry 4 } + +voicePortIfIpNetMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's subnet mask. This object + is configurable only if voicePortIfDHCPEnabled + is false. When the value of voicePortIfDHCPEnabled + is false, this object should be configured." + ::= { voicePortIfConfigEntry 5 } + +voicePortIfTftpServerAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's TFTP Server address. This object + is configurable only if voicePortIfDHCPEnabled + is false. When the value of voicePortIfDHCPEnabled + is false, this object should be configured." + ::= { voicePortIfConfigEntry 6 } + +voicePortIfGatewayAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's router address. This object + is configurable only if voicePortIfDHCPEnabled + is false." + ::= { voicePortIfConfigEntry 7 } + +voicePortIfDnsServerAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's DNS Server address. This object + is configurable only if voicePortIfDHCPEnabled + is false." + ::= { voicePortIfConfigEntry 8 } + +voicePortIfDnsDomain OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This port's DNS domain name. This object + is configurable only if voicePortIfDHCPEnabled + is false." + ::= { voicePortIfConfigEntry 9 } + +voicePortIfOperDnsDomain OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This port's operational DNS domain name. If + voicePortIfDHCPEnabled is true, this object + indicates the domain name taken from the + DHCP server. If voicePortIfDHCPEnabled is false, + this object indicates the domain name configured + by users for this voice port or the domain name + taken from DNS configuration for the system + otherwise." + ::= { voicePortIfConfigEntry 10 } + + +-- Voice Port Call Manager Table +voicePortCallManagerTable OBJECT-TYPE + SYNTAX SEQUENCE OF VoicePortCallManagerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of call manager entries. The number of + entries is determined by the number of modules in + the chassis and the number of ports with the + voice port interface configuration capability + in the system." + ::= { voiceGrp 2 } + +voicePortCallManagerEntry OBJECT-TYPE + SYNTAX VoicePortCallManagerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing voice interface configuration + for a particular port." + INDEX { voicePortModuleIndex, voicePortIndex, + voicePortCallManagerIndex } + ::= { voicePortCallManagerTable 1 } + +VoicePortCallManagerEntry ::= + SEQUENCE { + voicePortModuleIndex + INTEGER, + voicePortIndex + INTEGER, + voicePortCallManagerIndex + INTEGER, + voicePortCallManagerIpAddr + IpAddress + } + +voicePortModuleIndex OBJECT-TYPE + SYNTAX INTEGER(1..16) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located." + ::= { voicePortCallManagerEntry 1 } + +voicePortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module." + ::= { voicePortCallManagerEntry 2 } + +voicePortCallManagerIndex OBJECT-TYPE + SYNTAX INTEGER (1..5) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies this + CallManager within a module/port. A port can + register up to 5 CallManager." + ::= { voicePortCallManagerEntry 3 } + +voicePortCallManagerIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The Call Manager IP Address of this port. A port + can register up to 5 call managers." + ::= { voicePortCallManagerEntry 4 } + +-- Voice Port Operational Dns Server Table + +voicePortOperDnsServerTable OBJECT-TYPE + SYNTAX SEQUENCE OF VoicePortOperDnsServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of operational DNS entries used by the + voice ports." + ::= { voiceGrp 3 } + +voicePortOperDnsServerEntry OBJECT-TYPE + SYNTAX VoicePortOperDnsServerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing infomation on DNS servers may be + used for a particular voice port. + + If DHCP is enabled on a port, the DNS server IP + address will come from the DHCP server. If DHCP + is disabled, the DNS server IP address can be + configured by users through the mib object + voicePortIfDnsServerAddress for a port, otherwise + it will be taken from DNS configuration in the + system." + INDEX { voicePortDnsModuleIndex, voicePortDnsPortIndex, + voicePortOperDnsServerIndex } + ::= { voicePortOperDnsServerTable 1 } + +VoicePortOperDnsServerEntry ::= + SEQUENCE { + voicePortDnsModuleIndex + INTEGER, + voicePortDnsPortIndex + INTEGER, + voicePortOperDnsServerIndex + Unsigned32, + voicePortOperDnsServerIpAddr + IpAddress, + voicePortOperDnsServerSource + INTEGER + } + +voicePortDnsModuleIndex OBJECT-TYPE + SYNTAX INTEGER(1..16) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located." + ::= { voicePortOperDnsServerEntry 1 } + +voicePortDnsPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module." + ::= { voicePortOperDnsServerEntry 2 } + +voicePortOperDnsServerIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An index value that uniquely identifies this DNS + server within a module/port. This value indicates + the priority order among these DNS servers." + ::= { voicePortOperDnsServerEntry 3 } + +voicePortOperDnsServerIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The operational DNS Server IP Address of this + port. " + ::= { voicePortOperDnsServerEntry 4 } + +voicePortOperDnsServerSource OBJECT-TYPE + SYNTAX INTEGER { + fromDhcp (1), + fromPortConfig (2), + fromSystemConfig (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The source of the Dns Server IP Address of this + port. + + fromDhcp(1) indicates that the DNS server IP + address comes from the DHCP server. + + fromPortConfig(2) indicates that the DNS server IP + address comes from the object + voicePorfIfDnsServerAdress. + + fromSystemConfig(3) indicates that the DNS server + IP address comes from DNS configuration for the + system." + ::= { voicePortOperDnsServerEntry 5 } + + + +-- the port jumbo frame group +-- If the port jumbo frame feature is supported, this +-- portJumboFrameTable +-- should be implemented. + +portJumboFrameTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortJumboFrameEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of port jumbo frame entries. The number of + entries is determined by the number of ports in + the system which support the Jumbo frame feature." + ::= { portJumboFrameGrp 1} + + +portJumboFrameEntry OBJECT-TYPE + SYNTAX PortJumboFrameEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing the jumbo frame configuration + for a particular port." + INDEX { portJumboFrameModuleIndex, + portJumboFramePortIndex } + ::= { portJumboFrameTable 1 } + +PortJumboFrameEntry ::= + SEQUENCE { + portJumboFrameModuleIndex + INTEGER, + portJumboFramePortIndex + INTEGER, + portJumboFrameEnable + INTEGER + } + +portJumboFrameModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies the + module where this port is located." + ::= { portJumboFrameEntry 1 } + +portJumboFramePortIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies this port + within a module. The value is determined by the + location of the port on the module. Valid entries + are 1 to the value of moduleNumPorts for this + module." + ::= { portJumboFrameEntry 2 } + +portJumboFrameEnable OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the jumbo frame status of the port. If + enabled, the port supports frame size greater than + the standard ethernet frame size of 1518 bytes." + ::= { portJumboFrameEntry 3 } + + + +-- the switch acceleration group + +-- If the module switch acceleration feature is supported, the +-- switchAccelerationModuleTable should be implemented. + +switchAccelerationModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF SwitchAccelerationModuleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table contains a list of the modules for + which the switch acceleration capability can be + configured." + ::= { switchAccelerationGrp 1 } + +switchAccelerationModuleEntry OBJECT-TYPE + SYNTAX SwitchAccelerationModuleEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A module for which switch acceleration can be + configured." + INDEX { switchAccelerationModuleIndex } + ::= { switchAccelerationModuleTable 1 } + +SwitchAccelerationModuleEntry ::= + SEQUENCE { + switchAccelerationModuleIndex + INTEGER, + switchAccelerationModuleEnable + TruthValue + } + +switchAccelerationModuleIndex OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The value of moduleIndex for the module where + switch acceleration feature can be configured." + ::= {switchAccelerationModuleEntry 1 } + +switchAccelerationModuleEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates whether switch acceleration is enabled + on this module or not. + + When this feature is enabled, the system will + increase the switching bandwidth, but the + ifAdminStatus of any port on this module can not + be set to 'up'. + + If the ifAdminStatus of any port on this module is + 'up', this feature can not be enabled until + ifAdminStatus of all ports on the module is set + to 'down'." + DEFVAL { false } + ::= {switchAccelerationModuleEntry 2 } + +-- The configuration Group + +configMode OBJECT-TYPE + SYNTAX INTEGER { + binary(1), -- binary mode + text(2) -- text mode + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Configuration mode to store the configuration + information." + DEFVAL { binary } + ::= { configGrp 1 } + +configTextFileLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The location of the text configuration file + which can be either NVRAM or a file in the + FLASH file system. If the location is NVRAM, + this object is a zero length octet string. + Otherwise, the FLASH file should be specified + in : format. This object + is only instantiated when configMode has + the value of of text(2). " + DEFVAL {''H } + ::= { configGrp 2 } + +configWriteMem OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When this object is set to true(1), the current + configuration is saved in text format in the + location specified by configTextFileLocation. + This object is only instantiated when configMode + has the value of text(2). When read, + this object always returns false(2). " + ::= { configGrp 3 } + +configWriteMemStatus OBJECT-TYPE + SYNTAX INTEGER { + inProgress(1), + succeeded(2), + resourceUnavailable(3), + badFileName(4), + someOtherError(5) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The status of the current or the most recently + completed 'write memory' operation. The possible + values are: + + inProgress - 'write' operation in progress; + + succeeded - the 'write' was successful (this + value is also used when no write has been + invoked since the last time the local system + restarted); + + resourceUnavailable, -the 'write' failed because + insufficeient resource was available. + + badFileName - the 'write' failed because the + specified destination file was not found. + This might be due to invalid FLASH device + name or invalid file name. + + someOtherError - the 'write' failed for some + other reason. + + This object is only instantiated when configMode + has the value of text(2). " + ::= { configGrp 4 } + +-- traps + +ciscoStackNotificationsPrefix OBJECT IDENTIFIER ::= { workgroup 0 } + +lerAlarmOn NOTIFICATION-TYPE + OBJECTS { fddimibPORTSMTIndex, fddimibPORTIndex } + STATUS current + DESCRIPTION "A lerAlarmOn trap signifies that the agent entity + has detected that the fddimibPORTLerFlag object in + the FDDI-SMT73-MIB (RFC 1512) has transitioned to + the true(1) state for one of its ports. + The generation of this trap can be controlled by + the fddimibPORTLerAlarm object in the + FDDI-SMT73-MIB for each port." + ::= { ciscoStackNotificationsPrefix 1} + +lerAlarmOff NOTIFICATION-TYPE + OBJECTS { fddimibPORTSMTIndex, fddimibPORTIndex } + STATUS current + DESCRIPTION "A lerAlarmOff trap signifies that the agent + entity has detected that the fddimibPORTLerFlag + object in the FDDI-SMT73-MIB (RFC 1512) has + transitioned to the false(2) state for one of + its ports. The generation of this trap can be + controlled by the fddimibPORTLerAlarm object in + the FDDI-SMT73-MIB for each port." + ::= { ciscoStackNotificationsPrefix 2} + +moduleUp NOTIFICATION-TYPE + OBJECTS { moduleIndex, moduleType } + STATUS current + DESCRIPTION "A moduleUp trap signifies that the agent entity + has detected that the moduleStatus object in this + MIB has transitioned to the ok(2) state for one of + its modules. + The generation of this trap can be controlled by + the sysEnableModuleTraps object in this MIB." + ::= { ciscoStackNotificationsPrefix 3} + +moduleDown NOTIFICATION-TYPE + OBJECTS { moduleIndex, moduleType } + STATUS current + DESCRIPTION "A moduleDown trap signifies that the agent entity + has detected that the moduleStatus object in this + MIB has transitioned out of the ok(2) state for + one of its modules. + The generation of this trap can be controlled by + the sysEnableModuleTraps object in this MIB." + ::= { ciscoStackNotificationsPrefix 4} + +chassisAlarmOn NOTIFICATION-TYPE + OBJECTS { chassisTempAlarm, chassisMinorAlarm, + chassisMajorAlarm } + STATUS current + DESCRIPTION "A chassisAlarmOn trap signifies that the agent + entity has detected the chassisTempAlarm, + chassisMinorAlarm, or chassisMajorAlarm object in + this MIB has transitioned to the on(2) state. + The generation of this trap can be controlled by + the sysEnableChassisTraps object in this MIB." + ::= { ciscoStackNotificationsPrefix 5} + +chassisAlarmOff NOTIFICATION-TYPE + OBJECTS { chassisTempAlarm, chassisMinorAlarm, + chassisMajorAlarm } + STATUS current + DESCRIPTION "A chassisAlarmOff trap signifies that the agent + entity has detected the chassisTempAlarm, + chassisMinorAlarm, or chassisMajorAlarm object in + this MIB has transitioned to the off(1) state. + The generation of this trap can be controlled by + the sysEnableChassisTraps object in this MIB." + ::= { ciscoStackNotificationsPrefix 6} + +ipPermitDeniedTrap NOTIFICATION-TYPE + OBJECTS { ipPermitDeniedAddress, ipPermitDeniedAccess } + STATUS current + DESCRIPTION "ipPermitDeniedTrap indicates that IP permit + denied access happens. The generation of this + trap can be controlled by the + sysEnableIpPermitTraps object in this MIB." + ::= { ciscoStackNotificationsPrefix 7} + +sysConfigChangeTrap NOTIFICATION-TYPE + OBJECTS { sysConfigChangeTime, sysConfigChangeInfo } + STATUS current + DESCRIPTION "A sysConfigChange trap signifies that the system + configuration in NVRAM is changed. The generation + of this trap can be controlled by the + sysEnableConfigTraps object in this MIB." + ::= { ciscoStackNotificationsPrefix 9 } + +tokenRingSoftErrExceededTrap NOTIFICATION-TYPE + OBJECTS { ringStationMacAddress, ifIndex, ifName } + STATUS current + DESCRIPTION "This trap is generated when a station local to a + token ring port exceeds its Soft Error Threshold + within the configured interval." + ::= { ciscoStackNotificationsPrefix 10 } + + +-- conformance information + +ciscoStackMIBConformance OBJECT IDENTIFIER ::= { ciscoStackMIB 31 } +ciscoStackMIBCompliances OBJECT IDENTIFIER ::= + { ciscoStackMIBConformance 1 } +ciscoStackMIBGroups OBJECT IDENTIFIER ::= + { ciscoStackMIBConformance 2 } + +-- compliance statements + +ciscoStackgMIBCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "The compliance statement for entities which + implement the Cisco stack MIB." + MODULE -- this module + MANDATORY-GROUPS { + systemMiscGroup, + systemTrapGroup, + chassisGroup, + moduleGroup, + portGroup + } + GROUP optionalSystemMiscGroup + DESCRIPTION "The OptionalSystemMiscGroup is an optional group + containing objects providing information about + the miscellaneous system features." + GROUP optionalSystemTrapGroup + DESCRIPTION "The OptionalSystemTrapGroup is an optional group + containing objects providing information about + the SNMP traps feature." + GROUP optionalChassisGroup + DESCRIPTION "The OptionalChassisGroup is an optional group + containing objects providing information about the + chassis of the device." + GROUP optionalModuleGroup + DESCRIPTION "The OptionalMooduleGroup is an optional group + containing objects providing information about the + modules on the device." + GROUP optionalPortGroup + DESCRIPTION "The OptionalPortGroup is an optional group + containing objects providing information about the + ports on the device." + GROUP systemTrafficGroup + DESCRIPTION "The systemTrafficGroup is an optional group + containing objects providing information about the + traffic meter feature." + GROUP systemFddiGroup + DESCRIPTION "The systemFddiGroup is an optional group + containing objects providing information about the + FDDI ring feature." + GROUP systemRmonGroup + DESCRIPTION "The systemRmonGroup is an optional group + containing objects providing information about the + extended RMON feature." + GROUP authenticationGroup + DESCRIPTION "The authenticationGroup is an optional group + containing objects providing information about + the authentication features." + GROUP tftpGroup + DESCRIPTION "The tftpGroup is an optional group containing + objects providing information about the tftp + upload/download features." + GROUP brouteEnableGroup + DESCRIPTION "The brouteEnableGroup is an optional group + containing objects providing information about the + combined bridging/routing feature." + GROUP filterGroup + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP monitorGroup + DESCRIPTION "The monitorGroup is an optional group containing + objects providing information about the port + monitoring feature, also known as the Switched + Port ANalyzer (SPAN) feature." + GROUP vlanGroup + DESCRIPTION "The vlanGroup is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP vmpsGroup + DESCRIPTION "The vmps is an optional group containing objects + providing information about the Vlan Membership + Policy Server feature." + GROUP tokenRingGroup + DESCRIPTION "The tokenRingGroup is an optional group + containing objects providing information about + the tokenring features." + GROUP mcastGroup + DESCRIPTION "The mcastGroup is an optional group containing + objects providing information about the multicast + features." + GROUP dnsGroup + DESCRIPTION "The dnsGroup is an optional group containing + objects providing information about the DNS + feature." + GROUP syslogGroup + DESCRIPTION "The syslogGroup is an optional group containing + objects providing information about the system log + feature." + GROUP ntpGroup + DESCRIPTION "The ntpGroup is an optional group containing + objects providing information about the network + time protocol feature." + GROUP ipPermitGroup + DESCRIPTION "The ipPermitGroup is an optional group containing + objects providing information about the ip permit + list feature." + GROUP mdgGatewayGroup + DESCRIPTION "The mdgGatewayGroup is an optional group + containing objects providing information about + the multiple default gateway feature." + GROUP traceRouteGroup + DESCRIPTION "The traceRouteGroup is an optional group + containing objects providing information about + the trace route feature." + GROUP ntpAuthenticationGroup + DESCRIPTION "The ntpAuthenticationGroup is an optional group + containing objects providing information about the + network time protocol authentication feature." + GROUP tokenRingSoftErrorMonitorGroup + DESCRIPTION "The tokenRingSoftErrorMonitorGroup is an optional + group containing objects providing information + about the token ring port soft error monitoring + feature." + GROUP portCpbGroup1 + DESCRIPTION "The portCpbGroup1 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portSecurityGroup1 + DESCRIPTION "The portSecurityGroup1 is an optional group + containing objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses." + GROUP fileCopyGroup + DESCRIPTION "The fileCopyGroup is an optional group containing + objects providing information about the tftp/rcp + or local file upload/download features." + GROUP optionalSystemMiscGroup1 + DESCRIPTION "The optionalSystemMiscGroup1 is an optional group + containing objects providing information about the + miscellaneous system features." + ::= { ciscoStackMIBCompliances 1 } + +ciscoStackgMIBCompliance2 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "The compliance statement for entities which + implement the Cisco stack MIB." + MODULE -- this module + MANDATORY-GROUPS { + systemMiscGroup, + systemTrapGroup, + chassisGroup, + moduleGroup, + portGroup + } + GROUP optionalSystemMiscGroup + DESCRIPTION "The OptionalSystemMiscGroup is an optional group + containing objects providing information about + the miscellaneous system features." + GROUP optionalSystemTrapGroup + DESCRIPTION "The OptionalSystemTrapGroup is an optional group + containing objects providing information about the + SNMP traps feature." + GROUP optionalChassisGroup + DESCRIPTION "The OptionalChassisGroup is an optional group + containing objects providing information about the + chassis of the device." + GROUP optionalModuleGroup + DESCRIPTION "The OptionalMooduleGroup is an optional group + containing objects providing information about the + modules on the device." + GROUP optionalPortGroup + DESCRIPTION "The OptionalPortGroup is an optional group + containing objects providing information about the + ports on the device." + GROUP systemTrafficGroup + DESCRIPTION "The systemTrafficGroup is an optional group + containing objects providing information about the + traffic meter feature." + GROUP systemFddiGroup + DESCRIPTION "The systemFddiGroup is an optional group + containing objects providing information about the + FDDI ring feature." + GROUP systemRmonGroup + DESCRIPTION "The systemRmonGroup is an optional group + containing objects providing information about + the extended RMON feature." + GROUP authenticationGroup + DESCRIPTION "The authenticationGroup is an optional group + containing objects providing information about + the authentication features." + GROUP tftpGroup + DESCRIPTION "The tftpGroup is an optional group containing + objects providing information about the tftp + upload/download features." + GROUP brouteEnableGroup + DESCRIPTION "The brouteEnableGroup is an optional group + containing objects providing information about + the combined bridging/routing feature." + GROUP filterGroup + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP monitorGroup + DESCRIPTION "The monitorGroup is an optional group containing + objects providing information about the port + monitoring feature, also known as the Switched + Port ANalyzer (SPAN) feature." + GROUP vlanGroup + DESCRIPTION "The vlanGroup is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP vmpsGroup + DESCRIPTION "The vmps is an optional group containing objects + providing information about the Vlan Membership + Policy Server feature." + GROUP tokenRingGroup + DESCRIPTION "The tokenRingGroup is an optional group + containing objects providing information about + the tokenring features." + GROUP mcastGroup + DESCRIPTION "The mcastGroup is an optional group containing + objects providing information about the multicast + features." + GROUP dnsGroup + DESCRIPTION "The dnsGroup is an optional group containing + objects providing information about the DNS + feature." + GROUP syslogGroup + DESCRIPTION "The syslogGroup is an optional group containing + objects providing information about the system log + feature." + GROUP ntpGroup + DESCRIPTION "The ntpGroup is an optional group containing + objects providing information about the network + time protocol feature." + GROUP ipPermitGroup + DESCRIPTION "The ipPermitGroup is an optional group containing + objects providing information about the ip permit + list feature." + GROUP mdgGatewayGroup + DESCRIPTION "The mdgGatewayGroup is an optional group + containing objects providing information about + the multiple default gateway feature." + GROUP traceRouteGroup + DESCRIPTION "The traceRouteGroup is an optional group + containing objects providing information about + the trace route feature." + GROUP ntpAuthenticationGroup + DESCRIPTION "The ntpAuthenticationGroup is an optional group + containing objects providing information about the + network time protocol authentication feature." + GROUP tokenRingSoftErrorMonitorGroup + DESCRIPTION "The tokenRingSoftErrorMonitorGroup is an optional + group containing objects providing information + about the token ring port soft error monitoring + feature." + GROUP portCpbGroup1 + DESCRIPTION "The portCpbGroup1 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portSecurityGroup1 + DESCRIPTION "The portSecurityGroup1 is an optional group + containing objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses." + GROUP fileCopyGroup + DESCRIPTION "The fileCopyGroup is an optional group containing + objects providing information about the tftp/rcp + or local file upload/download features." + GROUP optionalSystemMiscGroup1 + DESCRIPTION "The optionalSystemMiscGroup1 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP ipPermitGroup1 + DESCRIPTION "The ipPermitGroup1 is an optional group + containing objects providing information about + the ip permit list feature." + GROUP optionalSystemMiscGroup2 + DESCRIPTION "The optionalSystemMiscGroup2 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP filterGroup1 + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP mcastGroup1 + DESCRIPTION "The mcastGroup1 is an optional group containing + objects providing information about the + multicast features." + GROUP portGroup1 + DESCRIPTION "The portGroup1 is an optional group containing + objects providing information about the ports on + the device." + GROUP chassisGroup1 + DESCRIPTION "The chassisGroup1 is a group containing objects + providing information about the chassis of the + device. This group must be implemented by systems + that can have 3 or more power supplies." + GROUP moduleGroup1 + DESCRIPTION "The moduleGroup1 is an optional group containing + objects providing information about the modules + on the device." + GROUP portCpbGroup2 + DESCRIPTION "The portCpbGroup2 is an optional group containing + objects providing additional information about the + port capabilities on the device." + ::= { ciscoStackMIBCompliances 2 } + +ciscoStackgMIBCompliance3 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "The compliance statement for entities which + implement the Cisco stack MIB." + MODULE -- this module + MANDATORY-GROUPS { + systemMiscGroup, + systemTrapGroup, + chassisGroup, + moduleGroup, + portGroup + } + GROUP optionalSystemMiscGroup + DESCRIPTION "The OptionalSystemMiscGroup is an optional group + containing objects providing information about + the miscellaneous system features." + GROUP optionalSystemTrapGroup + DESCRIPTION "The OptionalSystemTrapGroup is an optional group + containing objects providing information about the + SNMP traps feature." + GROUP optionalChassisGroup + DESCRIPTION "The OptionalChassisGroup is an optional group + containing objects providing information about the + chassis of the device." + GROUP optionalModuleGroup + DESCRIPTION "The OptionalMooduleGroup is an optional group + containing objects providing information about the + modules on the device." + GROUP optionalPortGroup + DESCRIPTION "The OptionalPortGroup is an optional group + containing objects providing information about the + ports on the device." + GROUP systemTrafficGroup + DESCRIPTION "The systemTrafficGroup is an optional group + containing objects providing information about + the traffic meter feature." + GROUP systemFddiGroup + DESCRIPTION "The systemFddiGroup is an optional group + containing objects providing information about + the FDDI ring feature." + GROUP systemRmonGroup + DESCRIPTION "The systemRmonGroup is an optional group + containing objects providing information about the + extended RMON feature." + GROUP authenticationGroup + DESCRIPTION "The authenticationGroup is an optional group + containing objects providing information about the + authentication features." + GROUP tftpGroup + DESCRIPTION "The tftpGroup is an optional group containing + objects providing information about the tftp + upload/download features." + GROUP brouteEnableGroup + DESCRIPTION "The brouteEnableGroup is an optional group + containing objects providing information about the + combined bridging/routing feature." + GROUP filterGroup + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP monitorGroup + DESCRIPTION "The monitorGroup is an optional group containing + objects providing information about the port + monitoring feature, also known as the Switched + Port ANalyzer (SPAN) feature." + GROUP vlanGroup + DESCRIPTION "The vlanGroup is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP vmpsGroup + DESCRIPTION "The vmps is an optional group containing objects + providing information about the Vlan Membership + Policy Server feature." + GROUP tokenRingGroup + DESCRIPTION "The tokenRingGroup is an optional group + containing objects providing information about + the tokenring features." + GROUP mcastGroup + DESCRIPTION "The mcastGroup is an optional group containing + objects providing information about the multicast + features." + GROUP dnsGroup + DESCRIPTION "The dnsGroup is an optional group containing + objects providing information about the DNS + feature." + GROUP syslogGroup + DESCRIPTION "The syslogGroup is an optional group containing + objects providing information about the system log + feature." + GROUP ntpGroup + DESCRIPTION "The ntpGroup is an optional group containing + objects providing information about the network + time protocol feature." + GROUP ipPermitGroup + DESCRIPTION "The ipPermitGroup is an optional group containing + objects providing information about the ip permit + list feature." + GROUP mdgGatewayGroup + DESCRIPTION "The mdgGatewayGroup is an optional group + containing objects providing information about + the multiple default gateway feature." + GROUP traceRouteGroup + DESCRIPTION "The traceRouteGroup is an optional group + containing objects providing information about + the trace route feature." + GROUP ntpAuthenticationGroup + DESCRIPTION "The ntpAuthenticationGroup is an optional group + containing objects providing information about the + network time protocol authentication feature." + GROUP tokenRingSoftErrorMonitorGroup + DESCRIPTION "The tokenRingSoftErrorMonitorGroup is an optional + group containing objects providing information + about the token ring port soft error monitoring + feature." + GROUP portCpbGroup1 + DESCRIPTION "The portCpbGroup1 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portSecurityGroup1 + DESCRIPTION "The portSecurityGroup1 is an optional group + containing objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses." + GROUP fileCopyGroup + DESCRIPTION "The fileCopyGroup is an optional group containing + objects providing information about the tftp/rcp + or local file upload/download features." + GROUP optionalSystemMiscGroup1 + DESCRIPTION "The optionalSystemMiscGroup1 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP ipPermitGroup1 + DESCRIPTION "The ipPermitGroup1 is an optional group + containing objects providing information about + the ip permit list feature." + GROUP optionalSystemMiscGroup2 + DESCRIPTION "The optionalSystemMiscGroup2 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP filterGroup1 + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP mcastGroup1 + DESCRIPTION "The mcastGroup1 is an optional group containing + objects providing information about the + multicast features." + GROUP portGroup1 + DESCRIPTION "The portGroup1 is an optional group containing + objects providing information about the ports on + the device." + GROUP chassisGroup1 + DESCRIPTION "The chassisGroup1 is a group containing objects + providing information about the chassis of the + device. This group must be implemented by systems + that can have 3 or more power supplies." + GROUP moduleGroup1 + DESCRIPTION "The moduleGroup1 is an optional group containing + objects providing information about the modules + on the device." + GROUP portCpbGroup2 + DESCRIPTION "The portCpbGroup2 is an optional group containing + objects providing additional information about the + port capabilities on the device." + + GROUP voiceGroup + DESCRIPTION "The voiceGroup is an optional group containing + objects providing information about the voice port + on the device." + GROUP moduleGroup2 + DESCRIPTION "The moduleGroup2 is an mandatory group + containing objects providing information about + the modules on the device." + GROUP portCpbGroup3 + DESCRIPTION "The portCpbGroup3 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP vlanGroup1 + DESCRIPTION "The vlanGroup1 is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP portGroup2 + DESCRIPTION "The portGroup2 is an optional group containing + objects providing information about the ports on + the device." + GROUP switchAccelerationModuleGroup + DESCRIPTION "This group is mandatory for implementations of + switch acceleration capability." + GROUP optionalSystemMiscGroup3 + DESCRIPTION "The optionalSystemMiscGroup3 is an optional group + containing objects providing information about the + miscellaneous system features." + ::= { ciscoStackMIBCompliances 3 } + +ciscoStackgMIBCompliance4 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "The compliance statement for entities which + implement the Cisco stack MIB." + MODULE -- this module + MANDATORY-GROUPS { + systemMiscGroup, + systemTrapGroup, + chassisGroup, + moduleGroup, + portGroup + } + GROUP optionalSystemMiscGroup + DESCRIPTION "The OptionalSystemMiscGroup is an optional group + containing objects providing information about + the miscellaneous system features." + GROUP optionalSystemTrapGroup + DESCRIPTION "The OptionalSystemTrapGroup is an optional group + containing objects providing information about the + SNMP traps feature." + GROUP optionalChassisGroup + DESCRIPTION "The OptionalChassisGroup is an optional group + containing objects providing information about the + chassis of the device." + GROUP optionalModuleGroup + DESCRIPTION "The OptionalMooduleGroup is an optional group + containing objects providing information about the + modules on the device." + GROUP optionalPortGroup + DESCRIPTION "The OptionalPortGroup is an optional group + containing objects providing information about the + ports on the device." + GROUP systemTrafficGroup + DESCRIPTION "The systemTrafficGroup is an optional group + containing objects providing information about the + traffic meter feature." + GROUP systemFddiGroup + DESCRIPTION "The systemFddiGroup is an optional group + containing objects providing information about the + FDDI ring feature." + GROUP systemRmonGroup + DESCRIPTION "The systemRmonGroup is an optional group + containing objects providing information about the + extended RMON feature." + GROUP authenticationGroup + DESCRIPTION "The authenticationGroup is an optional group + containing objects providing information about the + authentication features." + GROUP tftpGroup + DESCRIPTION "The tftpGroup is an optional group containing + objects providing information about the tftp + upload/download features." + GROUP brouteEnableGroup + DESCRIPTION "The brouteEnableGroup is an optional group + containing objects providing information about the + combined bridging/routing feature." + GROUP filterGroup + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP monitorGroup + DESCRIPTION "The monitorGroup is an optional group containing + objects providing information about the port + monitoring feature, also known as the Switched + Port ANalyzer (SPAN) feature." + GROUP vlanGroup + DESCRIPTION "The vlanGroup is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP vmpsGroup + DESCRIPTION "The vmps is an optional group containing objects + providing information about the Vlan Membership + Policy Server feature." + GROUP tokenRingGroup + DESCRIPTION "The tokenRingGroup is an optional group + containing objects providing information about + the tokenring features." + GROUP mcastGroup + DESCRIPTION "The mcastGroup is an optional group containing + objects providing information about the multicast + features." + GROUP dnsGroup + DESCRIPTION "The dnsGroup is an optional group containing + objects providing information about the DNS + feature." + GROUP syslogGroup + DESCRIPTION "The syslogGroup is an optional group containing + objects providing information about the system log + feature." + GROUP ntpGroup + DESCRIPTION "The ntpGroup is an optional group containing + objects providing information about the network + time protocol feature." + GROUP ipPermitGroup + DESCRIPTION "The ipPermitGroup is an optional group + containing objects providing information about + the ip permit list feature." + GROUP mdgGatewayGroup + DESCRIPTION "The mdgGatewayGroup is an optional group + containing objects providing information about + the multiple default gateway feature." + GROUP traceRouteGroup + DESCRIPTION "The traceRouteGroup is an optional group + containing objects providing information about + the trace route feature." + GROUP ntpAuthenticationGroup + DESCRIPTION "The ntpAuthenticationGroup is an optional group + containing objects providing information about the + network time protocol authentication feature." + GROUP tokenRingSoftErrorMonitorGroup + DESCRIPTION "The tokenRingSoftErrorMonitorGroup is an optional + group containing objects providing information + about the token ring port soft error monitoring + feature." + GROUP portCpbGroup1 + DESCRIPTION "The portCpbGroup1 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portSecurityGroup1 + DESCRIPTION "The portSecurityGroup1 is an optional group + containing objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses." + GROUP fileCopyGroup + DESCRIPTION "The fileCopyGroup is an optional group containing + objects providing information about the tftp/rcp + or local file upload/download features." + GROUP optionalSystemMiscGroup1 + DESCRIPTION "The optionalSystemMiscGroup1 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP ipPermitGroup1 + DESCRIPTION "The ipPermitGroup1 is an optional group + containing objects providing information about + the ip permit list feature." + GROUP optionalSystemMiscGroup2 + DESCRIPTION "The optionalSystemMiscGroup2 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP filterGroup1 + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP mcastGroup1 + DESCRIPTION "The mcastGroup1 is an optional group containing + objects providing information about the + multicast features." + GROUP portGroup1 + DESCRIPTION "The portGroup1 is an optional group containing + objects providing information about the ports on + the device." + GROUP chassisGroup1 + DESCRIPTION "The chassisGroup1 is a group containing objects + providing information about the chassis of the + device. This group must be implemented by systems + that can have 3 or more power supplies." + GROUP moduleGroup1 + DESCRIPTION "The moduleGroup1 is an optional group containing + objects providing information about the modules + on the device." + GROUP portCpbGroup2 + DESCRIPTION "The portCpbGroup2 is an optional group containing + objects providing additional information about the + port capabilities on the device." + + GROUP voiceGroup + DESCRIPTION "The voiceGroup is an optional group containing + objects providing information about the voice port + on the device." + GROUP moduleGroup2 + DESCRIPTION "The moduleGroup2 is an mandatory group containing + objects providing information about the modules + on the device." + GROUP portCpbGroup3 + DESCRIPTION "The portCpbGroup3 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP vlanGroup1 + DESCRIPTION "The vlanGroup1 is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP portGroup2 + DESCRIPTION "The portGroup2 is an optional group containing + objects providing information about the ports on + the device." + GROUP switchAccelerationModuleGroup + DESCRIPTION "This group is mandatory for implementations of + switch acceleration capability." + GROUP optionalSystemMiscGroup3 + DESCRIPTION "The optionalSystemMiscGroup3 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP optionalSystemMiscGroup4 + DESCRIPTION "This group is an optional group containing + objects providing information about the + miscellaneous system features." + GROUP vlanTrunkMappingGroup + DESCRIPTION "This group is mandatory for implementations of + trunk VLAN to VLAN association feature on the + device." + GROUP portJumboFrameGroup + DESCRIPTION "This group is mandatory for implementations of + port jumbo frame feature on the device." + GROUP portCpbGroup4 + DESCRIPTION "The portCpbGroup4 is an optional group containing + objects providing additional information about the + port capabilities on the device." + + ::= { ciscoStackMIBCompliances 4 } + +ciscoStackgMIBCompliance5 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "The compliance statement for entities which + implement the Cisco stack MIB." + MODULE -- this module + MANDATORY-GROUPS { + systemMiscGroup, + systemTrapGroup, + chassisGroup, + moduleGroup, + portGroup + } + GROUP optionalSystemMiscGroup + DESCRIPTION "The OptionalSystemMiscGroup is an optional group + containing objects providing information about + the miscellaneous system features." + GROUP optionalSystemTrapGroup + DESCRIPTION "The OptionalSystemTrapGroup is an optional group + containing objects providing information about the + SNMP traps feature." + GROUP optionalChassisGroup + DESCRIPTION "The OptionalChassisGroup is an optional group + containing objects providing information about the + chassis of the device." + GROUP optionalModuleGroup + DESCRIPTION "The OptionalMooduleGroup is an optional group + containing objects providing information about the + modules on the device." + GROUP optionalPortGroup + DESCRIPTION "The OptionalPortGroup is an optional group + containing objects providing information about the + ports on the device." + GROUP systemTrafficGroup + DESCRIPTION "The systemTrafficGroup is an optional group + containing objects providing information about the + traffic meter feature." + GROUP systemFddiGroup + DESCRIPTION "The systemFddiGroup is an optional group + containing objects providing information about the + FDDI ring feature." + GROUP systemRmonGroup + DESCRIPTION "The systemRmonGroup is an optional group + containing objects providing information about the + extended RMON feature." + GROUP tftpGroup + DESCRIPTION "The tftpGroup is an optional group containing + objects providing information about the tftp + upload/download features." + GROUP brouteEnableGroup + DESCRIPTION "The brouteEnableGroup is an optional group + containing objects providing information about the + combined bridging/routing feature." + GROUP filterGroup + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP vlanGroup + DESCRIPTION "The vlanGroup is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP vmpsGroup + DESCRIPTION "The vmps is an optional group containing objects + providing information about the Vlan Membership + Policy Server feature." + GROUP tokenRingGroup + DESCRIPTION "The tokenRingGroup is an optional group + containing objects providing information about + the tokenring features." + GROUP mcastGroup + DESCRIPTION "The mcastGroup is an optional group containing + objects providing information about the multicast + features." + GROUP dnsGroup + DESCRIPTION "The dnsGroup is an optional group containing + objects providing information about the DNS + feature." + GROUP syslogGroup + DESCRIPTION "The syslogGroup is an optional group containing + objects providing information about the system log + feature." + GROUP ntpGroup + DESCRIPTION "The ntpGroup is an optional group containing + objects providing information about the network + time protocol feature." + GROUP ipPermitGroup + DESCRIPTION "The ipPermitGroup is an optional group containing + objects providing information about the ip permit + list feature." + GROUP mdgGatewayGroup + DESCRIPTION "The mdgGatewayGroup is an optional group + containing objects providing information about + the multiple default gateway feature." + GROUP traceRouteGroup + DESCRIPTION "The traceRouteGroup is an optional group + containing objects providing information about + the trace route feature." + GROUP ntpAuthenticationGroup + DESCRIPTION "The ntpAuthenticationGroup is an optional group + containing objects providing information about the + network time protocol authentication feature." + GROUP tokenRingSoftErrorMonitorGroup + DESCRIPTION "The tokenRingSoftErrorMonitorGroup is an optional + group containing objects providing information + about the token ring port soft error monitoring + feature." + GROUP portCpbGroup1 + DESCRIPTION "The portCpbGroup1 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portSecurityGroup1 + DESCRIPTION "The portSecurityGroup1 is an optional group + containing objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses." + GROUP fileCopyGroup + DESCRIPTION "The fileCopyGroup is an optional group containing + objects providing information about the tftp/rcp + or local file upload/download features." + GROUP optionalSystemMiscGroup1 + DESCRIPTION "The optionalSystemMiscGroup1 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP ipPermitGroup1 + DESCRIPTION "The ipPermitGroup1 is an optional group + containing objects providing information about + the ip permit list feature." + GROUP optionalSystemMiscGroup2 + DESCRIPTION "The optionalSystemMiscGroup2 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP filterGroup1 + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP mcastGroup1 + DESCRIPTION "The mcastGroup1 is an optional group containing + objects providing information about the + multicast features." + GROUP portGroup1 + DESCRIPTION "The portGroup1 is an optional group containing + objects providing information about the ports on + the device." + GROUP chassisGroup1 + DESCRIPTION "The chassisGroup1 is a group containing objects + providing information about the chassis of the + device. This group must be implemented by systems + that can have 3 or more power supplies." + GROUP moduleGroup1 + DESCRIPTION "The moduleGroup1 is an optional group containing + objects providing information about the modules + on the device." + GROUP portCpbGroup2 + DESCRIPTION "The portCpbGroup2 is an optional group containing + objects providing additional information about the + port capabilities on the device." + + GROUP voiceGroup + DESCRIPTION "The voiceGroup is an optional group containing + objects providing information about the voice port + on the device." + GROUP moduleGroup2 + DESCRIPTION "The moduleGroup2 is an mandatory group + containing objects providing information about + the modules on the device." + GROUP portCpbGroup3 + DESCRIPTION "The portCpbGroup3 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portGroup2 + DESCRIPTION "The portGroup2 is an optional group containing + objects providing information about the ports on + the device." + GROUP switchAccelerationModuleGroup + DESCRIPTION "This group is mandatory for implementations of + switch acceleration capability." + GROUP optionalSystemMiscGroup3 + DESCRIPTION "The optionalSystemMiscGroup3 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP optionalSystemMiscGroup4 + DESCRIPTION "This group is an optional group containing + objects providing information about the + miscellaneous system features." + GROUP vlanTrunkMappingGroup + DESCRIPTION "This group is mandatory for implementations of + trunk VLAN to VLAN association feature on the + device." + GROUP portJumboFrameGroup + DESCRIPTION "This group is mandatory for implementations of + port jumbo frame feature on the device." + GROUP portCpbGroup4 + DESCRIPTION "The portCpbGroup4 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP fileCopyGroup2 + DESCRIPTION "The fileCopyGroup2 is an optional group + containing objects providing additional + information about tftp/rcp or local file + upload/download features." + GROUP systemRmonGroup2 + DESCRIPTION "The systemRmonGroup2 is an optional group + containing objects providing information about + RMON max memory usage control." + GROUP filterGroup2 + DESCRIPTION "The filterGroup2 is an optional group containing + objects providing information about the + unicast/multicast port filtering feature." + GROUP optionalSystemMiscGroup5 + DESCRIPTION "The optionalSystemMiscGroup5 is an optional group + containing objects providing information about + miscellaneous system features." + GROUP syslogGroup2 + DESCRIPTION "The syslogGroup2 is an optional group containing + objects providing information about whether the + syslog messages should be sent to telnet + sessions." + GROUP systemStatusGroup + DESCRIPTION "The systemStatusGroup is an optional group + containing objects providing information about + system LED status." + GROUP configurationGroup + DESCRIPTION "The configurationGroup is an optional group + containing objects providing information about + the configuration mode to store the configuration + information." + GROUP filterGroup3 + DESCRIPTION "The filterGroup3 is an optional group containing + objects providing information about Broadcast + Suppression Violation for port filtering + feature." + GROUP portGroup3 + DESCRIPTION "The portGroup3 is an optional group containing + objects providing information about additional + information about the ports on the device." + GROUP portCpbGroup5 + DESCRIPTION "The portCpbGroup5 is an optional group containing + objects providing additional information about + the port capabilities on the device." + GROUP authenticationGroup1 + DESCRIPTION "The authenticationGroup1 is an optional group + containing objects providing information about the + authentication features." + + ::= { ciscoStackMIBCompliances 5 } + +ciscoStackgMIBCompliance6 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "The compliance statement for entities which + implement the Cisco stack MIB." + MODULE -- this module + MANDATORY-GROUPS { + systemMiscGroup1, + systemTrapGroup1, + chassisGroup, + moduleGroup, + portGroup4 + } + GROUP optionalSystemMiscGroup + DESCRIPTION "The OptionalSystemMiscGroup is an optional group + containing objects providing information about + the miscellaneous system features." + GROUP optionalSystemTrapGroup + DESCRIPTION "The OptionalSystemTrapGroup is an optional group + containing objects providing information about the + SNMP traps feature." + GROUP optionalChassisGroup1 + DESCRIPTION "The OptionalChassisGroup1 is an optional group + containing objects providing information about the + chassis of the device." + GROUP optionalModuleGroup + DESCRIPTION "The OptionalMooduleGroup is an optional group + containing objects providing information about the + modules on the device." + GROUP optionalPortGroup1 + DESCRIPTION "The OptionalPortGroup1 is an optional group + containing objects providing information about the + ports on the device." + GROUP systemTrafficGroup + DESCRIPTION "The systemTrafficGroup is an optional group + containing objects providing information about the + traffic meter feature." + GROUP systemFddiGroup + DESCRIPTION "The systemFddiGroup is an optional group + containing objects providing information about the + FDDI ring feature." + GROUP systemRmonGroup + DESCRIPTION "The systemRmonGroup is an optional group + containing objects providing information about the + extended RMON feature." + GROUP tftpGroup + DESCRIPTION "The tftpGroup is an optional group containing + objects providing information about the tftp + upload/download features." + GROUP brouteEnableGroup + DESCRIPTION "The brouteEnableGroup is an optional group + containing objects providing information about the + combined bridging/routing feature." + GROUP filterGroup + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP vlanGroup2 + DESCRIPTION "The vlanGroup2 is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP vmpsGroup + DESCRIPTION "The vmps is an optional group containing objects + providing information about the Vlan Membership + Policy Server feature." + GROUP tokenRingGroup + DESCRIPTION "The tokenRingGroup is an optional group + containing objects providing information about + the tokenring features." + GROUP mcastGroup + DESCRIPTION "The mcastGroup is an optional group containing + objects providing information about the multicast + features." + GROUP dnsGroup + DESCRIPTION "The dnsGroup is an optional group containing + objects providing information about the DNS + feature." + GROUP syslogGroup + DESCRIPTION "The syslogGroup is an optional group containing + objects providing information about the system log + feature." + GROUP ntpGroup + DESCRIPTION "The ntpGroup is an optional group containing + objects providing information about the network + time protocol feature." + GROUP ipPermitGroup2 + DESCRIPTION "The ipPermitGroup2 is an optional group + containing objects providing information + about the ip permit list feature." + GROUP mdgGatewayGroup + DESCRIPTION "The mdgGatewayGroup is an optional group + containing objects providing information about + the multiple default gateway feature." + GROUP traceRouteGroup + DESCRIPTION "The traceRouteGroup is an optional group + containing objects providing information about + the trace route feature." + GROUP ntpAuthenticationGroup + DESCRIPTION "The ntpAuthenticationGroup is an optional group + containing objects providing information about the + network time protocol authentication feature." + GROUP tokenRingSoftErrorMonitorGroup + DESCRIPTION "The tokenRingSoftErrorMonitorGroup is an optional + group containing objects providing information + about the token ring port soft error monitoring + feature." + GROUP portCpbGroup1 + DESCRIPTION "The portCpbGroup1 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portSecurityGroup1 + DESCRIPTION "The portSecurityGroup1 is an optional group + containing objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses." + GROUP fileCopyGroup + DESCRIPTION "The fileCopyGroup is an optional group containing + objects providing information about the tftp/rcp + or local file upload/download features." + GROUP optionalSystemMiscGroup1 + DESCRIPTION "The optionalSystemMiscGroup1 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP ipPermitGroup1 + DESCRIPTION "The ipPermitGroup1 is an optional group + containing objects providing information about + the ip permit list feature." + GROUP optionalSystemMiscGroup6 + DESCRIPTION "The optionalSystemMiscGroup6 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP filterGroup1 + DESCRIPTION "The filterGroup1 is an optional group containing + objects providing information about the port + filtering feature." + GROUP mcastGroup1 + DESCRIPTION "The mcastGroup1 is an optional group containing + objects providing information about the + multicast features." + GROUP portGroup1 + DESCRIPTION "The portGroup1 is an optional group containing + objects providing information about the ports on + the device." + GROUP chassisGroup1 + DESCRIPTION "The chassisGroup1 is a group containing objects + providing information about the chassis of the + device. This group must be implemented by systems + that can have 3 or more power supplies." + GROUP moduleGroup1 + DESCRIPTION "The moduleGroup1 is an optional group containing + objects providing information about the modules + on the device." + GROUP portCpbGroup2 + DESCRIPTION "The portCpbGroup2 is an optional group containing + objects providing additional information about the + port capabilities on the device." + + GROUP voiceGroup + DESCRIPTION "The voiceGroup is an optional group containing + objects providing information about the voice port + on the device." + GROUP moduleGroup2 + DESCRIPTION "The moduleGroup2 is an mandatory group + containing objects providing information about + the modules on the device." + GROUP portCpbGroup3 + DESCRIPTION "The portCpbGroup3 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portGroup2 + DESCRIPTION "The portGroup2 is an optional group containing + objects providing information about the ports on + the device." + GROUP switchAccelerationModuleGroup + DESCRIPTION "This group is mandatory for implementations of + switch acceleration capability." + GROUP optionalSystemMiscGroup3 + DESCRIPTION "The optionalSystemMiscGroup3 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP optionalSystemMiscGroup4 + DESCRIPTION "This group is an optional group containing + objects providing information about the + miscellaneous system features." + GROUP vlanTrunkMappingGroup + DESCRIPTION "This group is mandatory for implementations of + trunk VLAN to VLAN association feature on the + device." + GROUP portJumboFrameGroup + DESCRIPTION "This group is mandatory for implementations of + port jumbo frame feature on the device." + GROUP portCpbGroup4 + DESCRIPTION "The portCpbGroup4 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP fileCopyGroup2 + DESCRIPTION "The fileCopyGroup2 is an optional group + containing objects providing additional + information about tftp/rcp or local file + upload/download features." + GROUP systemRmonGroup2 + DESCRIPTION "The systemRmonGroup2 is an optional group + containing objects providing information about + RMON max memory usage control." + GROUP filterGroup2 + DESCRIPTION "The filterGroup2 is an optional group containing + objects providing information about the + unicast/multicast port filtering feature." + GROUP optionalSystemMiscGroup5 + DESCRIPTION "The optionalSystemMiscGroup5 is an optional group + containing objects providing information about + miscellaneous system features." + GROUP syslogGroup2 + DESCRIPTION "The syslogGroup2 is an optional group containing + objects providing information about whether the + syslog messages should be sent to telnet + sessions." + GROUP systemStatusGroup + DESCRIPTION "The systemStatusGroup is an optional group + containing objects providing information about + system LED status." + GROUP configurationGroup + DESCRIPTION "The configurationGroup is an optional group + containing objects providing information about + the configuration mode to store the configuration + information." + GROUP filterGroup3 + DESCRIPTION "The filterGroup3 is an optional group containing + objects providing information about Broadcast + Suppression Violation for port filtering + feature." + GROUP portGroup3 + DESCRIPTION "The portGroup3 is an optional group containing + objects providing information about additional + information about the ports on the device." + GROUP portCpbGroup5 + DESCRIPTION "The portCpbGroup5 is an optional group containing + objects providing additional information about + the port capabilities on the device." + GROUP authenticationGroup1 + DESCRIPTION "The authenticationGroup1 is an optional group + containing objects providing information about the + authentication features." + + ::= { ciscoStackMIBCompliances 6 } + +ciscoStackgMIBCompliance7 MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement for entities which + implement the Cisco stack MIB." + MODULE -- this module + MANDATORY-GROUPS { + systemMiscGroup1, + systemTrapGroup2, + chassisGroup, + moduleGroup, + portGroup4 + } + GROUP optionalSystemMiscGroup + DESCRIPTION "The OptionalSystemMiscGroup is an optional group + containing objects providing information about + the miscellaneous system features." + GROUP optionalChassisGroup1 + DESCRIPTION "The OptionalChassisGroup1 is an optional group + containing objects providing information about the + chassis of the device." + GROUP optionalModuleGroup + DESCRIPTION "The OptionalMooduleGroup is an optional group + containing objects providing information about the + modules on the device." + GROUP optionalPortGroup1 + DESCRIPTION "The OptionalPortGroup1 is an optional group + containing objects providing information about the + ports on the device." + GROUP systemTrafficGroup + DESCRIPTION "The systemTrafficGroup is an optional group + containing objects providing information about the + traffic meter feature." + GROUP systemFddiGroup + DESCRIPTION "The systemFddiGroup is an optional group + containing objects providing information about the + FDDI ring feature." + GROUP systemRmonGroup + DESCRIPTION "The systemRmonGroup is an optional group + containing objects providing information about the + extended RMON feature." + GROUP tftpGroup + DESCRIPTION "The tftpGroup is an optional group containing + objects providing information about the tftp + upload/download features." + GROUP brouteEnableGroup + DESCRIPTION "The brouteEnableGroup is an optional group + containing objects providing information about the + combined bridging/routing feature." + GROUP filterGroup + DESCRIPTION "The filterGroup is an optional group containing + objects providing information about the port + filtering feature." + GROUP vlanGroup2 + DESCRIPTION "The vlanGroup2 is an optional group containing + objects providing information about the Virtual + LAN features." + GROUP vmpsGroup + DESCRIPTION "The vmps is an optional group containing objects + providing information about the Vlan Membership + Policy Server feature." + GROUP tokenRingGroup + DESCRIPTION "The tokenRingGroup is an optional group + containing objects providing information about + the tokenring features." + GROUP mcastGroup + DESCRIPTION "The mcastGroup is an optional group containing + objects providing information about the multicast + features." + GROUP dnsGroup + DESCRIPTION "The dnsGroup is an optional group containing + objects providing information about the DNS + feature." + GROUP syslogGroup + DESCRIPTION "The syslogGroup is an optional group containing + objects providing information about the system log + feature." + GROUP ntpGroup + DESCRIPTION "The ntpGroup is an optional group containing + objects providing information about the network + time protocol feature." + GROUP ipPermitGroup2 + DESCRIPTION "The ipPermitGroup2 is an optional group + containing objects providing information + about the ip permit list feature." + GROUP mdgGatewayGroup + DESCRIPTION "The mdgGatewayGroup is an optional group + containing objects providing information about + the multiple default gateway feature." + GROUP traceRouteGroup + DESCRIPTION "The traceRouteGroup is an optional group + containing objects providing information about + the trace route feature." + GROUP ntpAuthenticationGroup + DESCRIPTION "The ntpAuthenticationGroup is an optional group + containing objects providing information about the + network time protocol authentication feature." + GROUP tokenRingSoftErrorMonitorGroup + DESCRIPTION "The tokenRingSoftErrorMonitorGroup is an optional + group containing objects providing information + about the token ring port soft error monitoring + feature." + GROUP portCpbGroup1 + DESCRIPTION "The portCpbGroup1 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portSecurityGroup1 + DESCRIPTION "The portSecurityGroup1 is an optional group + containing objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses." + GROUP fileCopyGroup + DESCRIPTION "The fileCopyGroup is an optional group containing + objects providing information about the tftp/rcp + or local file upload/download features." + GROUP optionalSystemMiscGroup1 + DESCRIPTION "The optionalSystemMiscGroup1 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP ipPermitGroup1 + DESCRIPTION "The ipPermitGroup1 is an optional group + containing objects providing information about + the ip permit list feature." + GROUP optionalSystemMiscGroup6 + DESCRIPTION "The optionalSystemMiscGroup6 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP filterGroup1 + DESCRIPTION "The filterGroup1 is an optional group containing + objects providing information about the port + filtering feature." + GROUP mcastGroup1 + DESCRIPTION "The mcastGroup1 is an optional group containing + objects providing information about the + multicast features." + GROUP portGroup1 + DESCRIPTION "The portGroup1 is an optional group containing + objects providing information about the ports on + the device." + GROUP chassisGroup1 + DESCRIPTION "The chassisGroup1 is a group containing objects + providing information about the chassis of the + device. This group must be implemented by systems + that can have 3 or more power supplies." + GROUP moduleGroup1 + DESCRIPTION "The moduleGroup1 is an optional group containing + objects providing information about the modules + on the device." + GROUP portCpbGroup2 + DESCRIPTION "The portCpbGroup2 is an optional group containing + objects providing additional information about the + port capabilities on the device." + + GROUP voiceGroup + DESCRIPTION "The voiceGroup is an optional group containing + objects providing information about the voice port + on the device." + GROUP moduleGroup2 + DESCRIPTION "The moduleGroup2 is an mandatory group + containing objects providing information about + the modules on the device." + GROUP portCpbGroup3 + DESCRIPTION "The portCpbGroup3 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP portGroup2 + DESCRIPTION "The portGroup2 is an optional group containing + objects providing information about the ports on + the device." + GROUP switchAccelerationModuleGroup + DESCRIPTION "This group is mandatory for implementations of + switch acceleration capability." + GROUP optionalSystemMiscGroup3 + DESCRIPTION "The optionalSystemMiscGroup3 is an optional group + containing objects providing information about the + miscellaneous system features." + GROUP optionalSystemMiscGroup4 + DESCRIPTION "This group is an optional group containing + objects providing information about the + miscellaneous system features." + GROUP vlanTrunkMappingGroup + DESCRIPTION "This group is mandatory for implementations of + trunk VLAN to VLAN association feature on the + device." + GROUP portJumboFrameGroup + DESCRIPTION "This group is mandatory for implementations of + port jumbo frame feature on the device." + GROUP portCpbGroup4 + DESCRIPTION "The portCpbGroup4 is an optional group containing + objects providing additional information about the + port capabilities on the device." + GROUP fileCopyGroup2 + DESCRIPTION "The fileCopyGroup2 is an optional group + containing objects providing additional + information about tftp/rcp or local file + upload/download features." + GROUP systemRmonGroup2 + DESCRIPTION "The systemRmonGroup2 is an optional group + containing objects providing information about + RMON max memory usage control." + GROUP filterGroup2 + DESCRIPTION "The filterGroup2 is an optional group containing + objects providing information about the + unicast/multicast port filtering feature." + GROUP optionalSystemMiscGroup5 + DESCRIPTION "The optionalSystemMiscGroup5 is an optional group + containing objects providing information about + miscellaneous system features." + GROUP syslogGroup2 + DESCRIPTION "The syslogGroup2 is an optional group containing + objects providing information about whether the + syslog messages should be sent to telnet + sessions." + GROUP systemStatusGroup + DESCRIPTION "The systemStatusGroup is an optional group + containing objects providing information about + system LED status." + GROUP configurationGroup + DESCRIPTION "The configurationGroup is an optional group + containing objects providing information about + the configuration mode to store the configuration + information." + GROUP filterGroup3 + DESCRIPTION "The filterGroup3 is an optional group containing + objects providing information about Broadcast + Suppression Violation for port filtering + feature." + GROUP portGroup3 + DESCRIPTION "The portGroup3 is an optional group containing + objects providing information about additional + information about the ports on the device." + GROUP portCpbGroup5 + DESCRIPTION "The portCpbGroup5 is an optional group containing + objects providing additional information about + the port capabilities on the device." + GROUP optionalSystemTrapGroup1 + DESCRIPTION "The OptionalSystemTrapGroup1 is an optional group + containing objects providing information about the + SNMP traps feature." + GROUP authenticationGroup2 + DESCRIPTION "The authenticationGroup2 is an optional group + containing objects providing information about the + authentication features." + + GROUP notificationGroup + DESCRIPTION "The notificationGroup is an optional group + containing notifications supported on the device." + + ::= { ciscoStackMIBCompliances 7 } + + +-- units of conformance + +systemMiscGroup OBJECT-GROUP + OBJECTS { + sysMgmtType, + sysIpAddr, -- deprecated + sysNetMask, -- deprecated + sysBroadcast, -- deprecated + sysAttachType, + sysReset, -- deprecated + sysBaudRate, + sysInsertMode, + sysClearMacTime, -- deprecated + sysClearPortTime, -- deprecated + sysEnableModem, + sysEnableRedirects, + sysArpAgingTime, + sysCommunityRwa, + sysCommunityRw, + sysCommunityRo, + sysIpVlan + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features." + ::= { ciscoStackMIBGroups 1 } +systemTrapGroup OBJECT-GROUP + OBJECTS { + sysTrapReceiverAddr, -- deprecated + sysTrapReceiverType, -- deprecated + sysTrapReceiverComm, -- deprecated + sysEnableChassisTraps, + sysEnableModuleTraps, + sysEnableBridgeTraps, + sysEnableRepeaterTraps + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the SNMP traps feature." + ::= { ciscoStackMIBGroups 2 } +chassisGroup OBJECT-GROUP + OBJECTS { + chassisSysType, + chassisBkplType, + chassisPs1Type, + chassisPs1Status, + chassisPs1TestResult, + chassisPs2Type, + chassisPs2Status, + chassisPs2TestResult, + chassisFanStatus, + chassisFanTestResult, + chassisMinorAlarm, + chassisMajorAlarm, + chassisTempAlarm, + chassisNumSlots + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the chassis of the device. + + Implementation of this group is mandatory." + ::= { ciscoStackMIBGroups 3 } + +moduleGroup OBJECT-GROUP + OBJECTS { + moduleIndex, + moduleType, + moduleStatus, + moduleTestResult, + moduleAction, + moduleName, + moduleNumPorts, + modulePortStatus, + moduleSubType, + moduleSerialNumberString + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the modules on the device. + + Implementation of this group is mandatory." + ::= { ciscoStackMIBGroups 4 } +portGroup OBJECT-GROUP + OBJECTS { + portModuleIndex, + portIndex, + portCrossIndex, + portName, + portType, + portOperStatus, + portCrossGroupIndex, + portAdditionalStatus, + portAdminSpeed, + portDuplex, + portIfIndex, + portSpantreeFastStart, -- deprecated + portAdminRxFlowControl, + portOperRxFlowControl, + portAdminTxFlowControl, + portOperTxFlowControl, + portMacControlTransmitFrames, + portMacControlReceiveFrames, + portMacControlPauseTransmitFrames, + portMacControlPauseReceiveFrames, + portMacControlUnknownProtocolFrames, + portLinkFaultStatus + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the ports on the device." + ::= { ciscoStackMIBGroups 5 } +optionalSystemMiscGroup OBJECT-GROUP + OBJECTS { + sysConfigChangeTime, + sysBannerMotd, + sysConfigChangeInfo, + sysConfigRegister, + sysBootVariable, + sysBootedImage + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 6 } +optionalSystemTrapGroup OBJECT-GROUP + OBJECTS { + sysEnableIpPermitTraps, + sysEnableVmpsTraps, + sysEnableConfigTraps, + sysEnableEntityTrap, + sysEnableStpxTrap + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the SNMP traps feature. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 7 } + +optionalChassisGroup OBJECT-GROUP + OBJECTS { + chassisPs1TestResult, + chassisPs2TestResult, + chassisFanTestResult, + chassisSlotConfig, + chassisModel, + chassisComponentIndex, -- deprecated + chassisComponentType, -- deprecated + chassisComponentSerialNumber, -- deprecated + chassisComponentHwVersion, -- deprecated + chassisComponentModel, -- deprecated + chassisSerialNumberString -- deprecated + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the chassis of the device." + ::= { ciscoStackMIBGroups 8 } +optionalModuleGroup OBJECT-GROUP + OBJECTS { + moduleTestResult, + moduleModel, + moduleHwVersion, + moduleFwVersion, + moduleSwVersion, + moduleStandbyStatus, + moduleIPAddress, + moduleIPAddressVlan, + moduleSubType2, + moduleSlotNum + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the modules on the device. + + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 9 } +optionalPortGroup OBJECT-GROUP + OBJECTS { + portSecurityModuleIndex, + portSecurityPortIndex, + portSecurityAdminStatus, + portSecurityOperStatus, + portSecurityLastSrcAddr, + portSecuritySecureSrcAddr, + portChannelModuleIndex, -- deprecated + portChannelPortIndex, -- deprecated + portChannelPorts, -- deprecated + portChannelAdminStatus, -- deprecated + portChannelOperStatus, -- deprecated + portChannelNeighbourDeviceId, -- deprecated + portChannelNeighbourPortId, -- deprecated + portChannelProtInPackets, -- deprecated + portChannelProtOutPackets, -- deprecated + portChannelIfIndex, -- deprecated + portCpbModuleIndex, + portCpbPortIndex, + portCpbSpeed, + portCpbDuplex, + portCpbTrunkEncapsulationType, + portCpbTrunkMode, + portCpbChannel, + portCpbBroadcastSuppression, + portCpbFlowControl, + portCpbSecurity, + portCpbVlanMembership, + portCpbPortfast, + portTopNControlIndex, + portTopNRateBase, + portTopNType, + portTopNMode, + portTopNReportStatus, + portTopNDuration, + portTopNTimeRemaining, + portTopNStartTime, + portTopNRequestedSize, + portTopNGrantedSize, + portTopNOwner, + portTopNStatus, + portTopNIndex, + portTopNModuleNumber, + portTopNPortNumber, + portTopNUtilization, + portTopNIOOctets, + portTopNIOPkts, + portTopNIOBroadcast, + portTopNIOMulticast, + portTopNInErrors, + portTopNBufferOverFlow + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the ports on the device. + + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 10 } +systemTrafficGroup OBJECT-GROUP + OBJECTS { + sysTrafficMeterType, + sysTraffic, + sysTrafficPeak, + sysTrafficPeakTime, + sysTrafficMeter, + sysTrafficMeterPeak, + sysTrafficMeterPeakTime + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the traffic meter feature. + + Implementation of this group is optional. If the + traffic meter feature is supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 11 } +systemFddiGroup OBJECT-GROUP + OBJECTS { + sysFddiRingSMTIndex, + sysFddiRingAddress, + sysFddiRingNext + + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the FDDI ring feature. + + Implementation of this group is optional. If the + FDDI ring feature is supported, the entire group + should be implemented." + ::= { ciscoStackMIBGroups 12 } +systemRmonGroup OBJECT-GROUP + OBJECTS { + sysEnableRmon, + sysExtendedRmonVlanModeEnable, + sysExtendedRmonNetflowPassword, + sysExtendedRmonNetflowEnable, + sysExtendedRmonVlanAgentEnable, + sysExtendedRmonEnable + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the extended RMON feature. + + Implementation of this group is optional. If the + extended RMON feature is supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 13 } +authenticationGroup OBJECT-GROUP + OBJECTS { + sysConsolePrimaryLoginAuthentication, -- deprecated + sysConsolePrimaryEnableAuthentication, -- deprecated + sysTelnetPrimaryLoginAuthentication, -- deprecated + sysTelnetPrimaryEnableAuthentication, -- deprecated + tacacsLoginAuthentication, -- deprecated + tacacsEnableAuthentication, -- deprecated + tacacsLocalLoginAuthentication, -- deprecated + tacacsLocalEnableAuthentication, -- deprecated + tacacsNumLoginAttempts, -- deprecated + tacacsDirectedRequest, + tacacsTimeout, -- deprecated + tacacsAuthKey, + tacacsServerAddr, + tacacsServerType, + radiusLoginAuthentication, -- deprecated + radiusEnableAuthentication, -- deprecated + radiusDeadtime, + radiusAuthKey, + radiusTimeout, + radiusRetransmits, + radiusServerAddr, + radiusServerAuthPort, + radiusServerType + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the authentication features. + + Implementation of this group is optional. If the + authentication features are supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 14 } +tftpGroup OBJECT-GROUP + OBJECTS { + tftpHost, + tftpFile, + tftpModule, + tftpAction, + tftpResult + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the tftp upload/download features. + + Implementation of this group is optional. If the + tftp upload/download features are supported, the + entire group should be implemented." + ::= { ciscoStackMIBGroups 15 } +brouteEnableGroup OBJECT-GROUP + OBJECTS { + brouterPortModule, + brouterPort, + brouterEnableRip, + brouterEnableSpantree, + brouterEnableGiantCheck, + brouterEnableIpFragmentation, + brouterEnableUnreachables, + brouterCamMode, + brouterIpxSnapToEther, + brouterIpx8023RawToFddi, + brouterEthernetReceiveMax, + brouterEthernetTransmitMax, + brouterFddiReceiveMax, + brouterFddiTransmitMax, + brouterPortIpVlan, + brouterPortIpAddr, + brouterPortNetMask, + brouterPortBroadcast, + brouterPortBridgeVlan, + brouterPortIpHelpers, + brouterIpx8022ToEther, + brouterEnableTransitEncapsulation, + brouterEnableFddiCheck, + brouterEnableAPaRT + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the combined bridging/routing feature. + + Implementation of this group is optional. If the + combined bridging/routing feature is supported, + the group should be implemented." + ::= { ciscoStackMIBGroups 16 } +filterGroup OBJECT-GROUP + OBJECTS { + filterMacModule, + filterMacPort, + filterMacAddress, + filterMacType, + filterVendorModule, + filterVendorPort, + filterVendorId, + filterVendorType, + filterProtocolModule, + filterProtocolPort, + filterProtocolValue, + filterProtocolType, + filterTestModule, + filterTestPort, + filterTestIndex, + filterTestType, + filterTestOffset, + filterTestValue, + filterTestMask, + filterPortModule, + filterPort, + filterPortComplex, + filterPortBroadcastThrottle, + filterPortBroadcastThreshold, + filterPortBroadcastDiscards + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the port filtering feature. + + Implementation of this group is optional. If the + port filtering feature is supported, parts or all + of this group should be implemented." + ::= { ciscoStackMIBGroups 17 } +monitorGroup OBJECT-GROUP + OBJECTS { + monitorSourceModule, + monitorSourcePort, + monitorDestinationModule, + monitorDestinationPort, + monitorDirection, + monitorEnable, + monitorAdminSourcePorts, + monitorOperSourcePorts + } + STATUS deprecated + DESCRIPTION "The collection of deprecated objects for + managing the Switched Port Analyzer (SPAN) + features." + ::= { ciscoStackMIBGroups 18 } +vlanGroup OBJECT-GROUP + OBJECTS { + vlanIndex, -- deprecated + vlanSpantreeEnable, -- deprecated + vlanIfIndex, -- deprecated + vlanPortModule, + vlanPort, + vlanPortVlan, + vlanPortIslVlansAllowed, + vlanPortSwitchLevel, + vlanPortIslAdminStatus, + vlanPortIslOperStatus, + vlanPortIslPriorityVlans, + vlanPortAdminStatus, + vlanPortOperStatus + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the Virtual LAN features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 19 } +vmpsGroup OBJECT-GROUP + OBJECTS { + vmpsAddr, + vmpsType, + vmpsAction, + vmpsAccessed + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the Vlan Membership Policy Server feature. + + Implementation of this group is optional. If the + Vlan Membership Policy Server feature is + supported, the entire group should be + implemented." + ::= { ciscoStackMIBGroups 20 } +tokenRingGroup OBJECT-GROUP + OBJECTS { + tokenRingModuleIndex, + tokenRingPortIndex, + tokenRingPortSetACbits , + tokenRingPortMode , + tokenRingPortEarlyTokenRel, + tokenRingPortPriorityThresh, + tokenRingPortPriorityMinXmit, + tokenRingPortCfgLossThresh, + tokenRingPortCfgLossInterval, + tokenRingDripDistCrfMode, + tokenRingDripAreReductionMode, + tokenRingDripLocalNodeID, + tokenRingDripLastRevision, + tokenRingDripLastChangedRevision, + tokenRingDripAdvertsReceived, + tokenRingDripAdvertsTransmitted, + tokenRingDripAdvertsProcessed, + tokenRingDripInputQueueDrops, + tokenRingDripOutputQueueDrops, + tokenRingDripVlan, + tokenRingDripLocalPortStatus, + tokenRingDripRemotePortStatus, + tokenRingDripRemotePortConfigured, + tokenRingDripDistributedCrf, + tokenRingDripBackupCrf, + tokenRingDripOwnerNodeID + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the token ring features. + + Implementation of this group is optional. If the + token ring features are supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 21 } +mcastGroup OBJECT-GROUP + OBJECTS { + mcastRouterModuleIndex, + mcastRouterPortIndex, + mcastRouterAdminStatus, + mcastRouterOperStatus, + mcastEnableCgmp, + mcastEnableIgmp + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the multicast features. + + Implementation of this group is optional. If the + multicast features are supported, the entire group + should be implemented." + ::= { ciscoStackMIBGroups 22 } +dnsGroup OBJECT-GROUP + OBJECTS { + dnsEnable, + dnsServerAddr, + dnsServerType, + dnsDomainName + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the DNS feature. + + Implementation of this group is optional. If the + DNS feature is supported, the entire group + should be implemented." + ::= { ciscoStackMIBGroups 23 } +syslogGroup OBJECT-GROUP + OBJECTS { + syslogServerAddr, + syslogServerType, + syslogConsoleEnable, + syslogHostEnable, + syslogMessageFacility, + syslogMessageSeverity, + syslogTimeStampOption + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the system log feature. + + Implementation of this group is optional. If the + system log feature is supported, the entire group + should be implemented." + ::= { ciscoStackMIBGroups 24 } +ntpGroup OBJECT-GROUP + OBJECTS { + ntpBcastClient, + ntpBcastDelay, + ntpClient, + ntpServerAddress, + ntpServerType, + ntpSummertimeStatus, + ntpSummerTimezoneName, + ntpTimezoneName, + ntpTimezoneOffsetHour, + ntpTimezoneOffsetMinute + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the network time protocol feature. + + Implementation of this group is optional. If the + network time protocol feature is supported, the + entire group should be implemented." + ::= { ciscoStackMIBGroups 25 } +ipPermitGroup OBJECT-GROUP + OBJECTS { + ipPermitAddress, + ipPermitMask, + ipPermitEnable, -- deprecated + ipPermitType, + ipPermitDeniedAddress, + ipPermitDeniedAccess, + ipPermitDeniedTime + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the ip permit list feature. + + Implementation of this group is optional. If the + ip permit list feature is supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 26 } +mdgGatewayGroup OBJECT-GROUP + OBJECTS { + mdgGatewayAddr, + mdgGatewayType + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the multiple default gateway feature. + + Implementation of this group is optional. If the + multiple default gateway feature is supported, + the entire group should be implemented." + ::= { ciscoStackMIBGroups 27 } +traceRouteGroup OBJECT-GROUP + OBJECTS { + traceRouteMaxQueries, + traceRouteQueryIndex, + traceRouteHost, + traceRouteQueryDNSEnable, + traceRouteQueryWaitingTime, + traceRouteQueryInitTTL, + traceRouteQueryMaxTTL, + traceRouteQueryUDPPort, + traceRouteQueryPacketCount, + traceRouteQueryPacketSize, + traceRouteQueryTOS, + traceRouteQueryResult, + traceRouteQueryTime, + traceRouteQueryOwner, + traceRouteQueryStatus, + traceRouteDataIndex, + traceRouteDataGatewayName, + traceRouteDataGatewayIp, + traceRouteDataRtt, + traceRouteDataHopCount, + traceRouteDataErrors + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the trace route feature. + + Implementation of this group is optional. If the + trace route feature is supported, the entire group + should be implemented." + ::= { ciscoStackMIBGroups 28 } +deprecatedObjectGroup OBJECT-GROUP + OBJECTS { + sysCommunityAccess, + sysCommunityString, + moduleHwHiVersion, + moduleHwLoVersion, + moduleFwHiVersion, + moduleFwLoVersion, + moduleSwHiVersion, + moduleSwLoVersion, + brouterCamAgingTime, + chassisSerialNumber, + moduleSerialNumber + } + STATUS deprecated + DESCRIPTION "A collection of objects that have been + deprecated." + ::= { ciscoStackMIBGroups 29 } + +ntpAuthenticationGroup OBJECT-GROUP + OBJECTS { + ntpServerPublicKey, + ntpAuthenticationEnable, + ntpAuthenticationPublicKey, + ntpAuthenticationSecretKey, + ntpAuthenticationTrustedMode, + ntpAuthenticationType + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the network time protocol authentication + feature. + + Implementation of this group is optional. If the + network time protocol authentication feature is + supported, the entire group should be + implemented." + ::= { ciscoStackMIBGroups 30 } + +tokenRingSoftErrorMonitorGroup OBJECT-GROUP + OBJECTS { + tokenRingPortSoftErrThresh, + tokenRingPortSoftErrReportInterval, + tokenRingPortSoftErrResetCounters, + tokenRingPortSoftErrLastCounterReset, + tokenRingPortSoftErrEnable + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the token ring port soft error monitoring + feature. + + Implementation of this group is optional. If the + token ring features are supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 31 } + +portCpbGroup1 OBJECT-GROUP + OBJECTS { + portCpbUdld + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about the port capabilities on the + device. + + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 32 } + +portSecurityGroup1 OBJECT-GROUP + OBJECTS { + portSecurityMaxSrcAddr, + portSecurityAgingTime, + portSecurityShutdownTimeOut, + portSecurityViolationPolicy, + portSecurityExtModuleIndex, + portSecurityExtPortIndex, + portSecurityExtSecureSrcAddr, + portSecurityExtControlStatus + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information for supporting port security feature + with the multiple secured source MAC addresses. + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 33} + +fileCopyGroup OBJECT-GROUP + OBJECTS { + fileCopyProtocol, + fileCopyRemoteServer, + fileCopySrcFileName, + fileCopyDstFileName, + fileCopyModuleNumber, + fileCopyUserName, + fileCopyAction, + fileCopyResult, + fileCopyResultRcpErrorMessage + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the tftp/rcp or local file upload/download + features. + + Implementation of this group is optional. If the + tftp upload/download features are supported, the + entire group should be implemented." + ::= { ciscoStackMIBGroups 34 } + +optionalSystemMiscGroup1 OBJECT-GROUP + OBJECTS { + sysStartupConfigSource, + sysStartupConfigSourceFile, + sysConfigSupervisorModuleNo, + sysStandbyPortEnable + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 35 } + +ipPermitGroup1 OBJECT-GROUP + OBJECTS { + ipPermitAccessType + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information for allowing the ip permit host with + the specified access type. + + Implementation of this group is optional. If the + ip permit list enhancement feature is supported, + this group should be implemented." + ::= { ciscoStackMIBGroups 36 } + +optionalSystemMiscGroup2 OBJECT-GROUP + OBJECTS { + sysPortFastBpduGuard, -- deprecated + sysErrDisableTimeoutEnable, + sysErrDisableTimeoutInterval, + sysTrafficMonitorHighWaterMark, + sysHighAvailabilityEnable, + sysHighAvailabilityVersioningEnable, + sysHighAvailabilityOperStatus, + sysHighAvailabilityNotRunningReason + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 37 } + +filterGroup1 OBJECT-GROUP + OBJECTS { + filterPortBroadcastThresholdFraction + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the port filtering feature. + + Implementation of this group is optional. If the + port filtering feature is supported, parts or all + of this group should be implemented." + ::= { ciscoStackMIBGroups 38 } + + +mcastGroup1 OBJECT-GROUP + OBJECTS { + mcastEnableRgmp + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the multicast features. + + Implementation of this group is optional. If the + multicast features are supported, the entire group + should be implemented." + ::= { ciscoStackMIBGroups 39 } + +portGroup1 OBJECT-GROUP + OBJECTS { + portAdditionalOperStatus, + portEntPhysicalIndex + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the ports on the device. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 40 } + +chassisGroup1 OBJECT-GROUP + OBJECTS { + chassisPs3Type, + chassisPs3Status, + chassisPs3TestResult, + chassisPEMInstalled + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the chassis of the device. + + This group must be implemented by systems that can + have 3 or more power supplies." + ::= { ciscoStackMIBGroups 41 } + +moduleGroup1 OBJECT-GROUP + OBJECTS { + moduleEntPhysicalIndex + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the modules on the device. + + Implementation of this group is mandatory." + ::= { ciscoStackMIBGroups 42 } + +portCpbGroup2 OBJECT-GROUP + OBJECTS { + portCpbSpan + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about the port capabilities on the + device. + + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 43 } + +voiceGroup OBJECT-GROUP + OBJECTS { + voicePortIfDHCPEnabled, + voicePortIfIpAddress, + voicePortIfIpNetMask, + voicePortIfTftpServerAddress, + voicePortIfGatewayAddress, + voicePortIfDnsServerAddress, + voicePortIfDnsDomain, + voicePortIfOperDnsDomain, + voicePortCallManagerIpAddr, + voicePortOperDnsServerIpAddr, + voicePortOperDnsServerSource + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the voice ports on the device. + + Implemetation of this group is Optional" + ::= { ciscoStackMIBGroups 44 } + +portGroup2 OBJECT-GROUP + OBJECTS { + portInlinePowerDetect + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the ports on the device. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 45 } + +vlanGroup1 OBJECT-GROUP + OBJECTS { + vlanPortAuxiliaryVlan + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the Virtual LAN features. + + Implementation of this group is optional. If the + Virtual LAN features are supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 46 } + +portCpbGroup3 OBJECT-GROUP + OBJECTS { + portCpbInlinePower, + portCpbAuxiliaryVlan + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about the port capabilities on the + device. + + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 47 } + +moduleGroup2 OBJECT-GROUP + OBJECTS { + moduleAdditionalStatus + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the modules on the device. + + Implementation of this group is mandatory." + ::= { ciscoStackMIBGroups 48 } + +switchAccelerationModuleGroup OBJECT-GROUP + OBJECTS { + switchAccelerationModuleIndex, + switchAccelerationModuleEnable + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the modules switch acceleration + configuration. + + Implementation of this group is mandatory if the + module switch acceleration feature is supported." + ::= { ciscoStackMIBGroups 49 } + +optionalSystemMiscGroup3 OBJECT-GROUP + OBJECTS { + sysExtendedRmonNetflowModuleMask + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features. + The sysExtendedRmonNetflowModuleMask object is + optional object and it will only be supported in + the platform supporting multiple NAM (Network + Analysis Module) cards. + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 50 } + +optionalSystemMiscGroup4 OBJECT-GROUP + OBJECTS { + sshPublicKeySize + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features." + ::= { ciscoStackMIBGroups 51 } + +vlanTrunkMappingGroup OBJECT-GROUP + OBJECTS { + vlanTrunkMappingMax, + vlanTrunkMappingToVlan, + vlanTrunkMappingType, + vlanTrunkMappingOper, + vlanTrunkMappingStatus + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the trunk VLAN to VLAN associations. + + Implementation of this group is mandatory if the + trunk VLAN to VLAN association feature is + supported on the device." + ::= { ciscoStackMIBGroups 52 } + +portJumboFrameGroup OBJECT-GROUP + OBJECTS { + portJumboFrameModuleIndex, + portJumboFramePortIndex, + portJumboFrameEnable + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the port jumbo frame feature on the device. + + Implementation of this group is mandatory if the + port jumbo frame feature is supported on the + device." + ::= { ciscoStackMIBGroups 53 } + +portCpbGroup4 OBJECT-GROUP + OBJECTS { + portCpbCosRewrite, + portCpbTosRewrite, + portCpbCopsGrouping + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about the port capabilities on the + device. + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 54 } + +fileCopyGroup2 OBJECT-GROUP + OBJECTS { fileCopyRuntimeConfigPart } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about tftp/rcp or local file + upload/download features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 55 } + +systemRmonGroup2 OBJECT-GROUP + OBJECTS { sysMaxRmonMemory } + STATUS current + DESCRIPTION "A collection of object providing RMON max memory + usage control." + ::= { ciscoStackMIBGroups 56 } + +filterGroup2 OBJECT-GROUP + OBJECTS { + filterPortSuppressionOption + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the unicast/multicast port filtering + feature." + ::= { ciscoStackMIBGroups 57 } + +optionalSystemMiscGroup5 OBJECT-GROUP + OBJECTS { sysMacReductionAdminEnable, + sysMacReductionOperEnable + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features." + ::= { ciscoStackMIBGroups 58 } + +syslogGroup2 OBJECT-GROUP + OBJECTS { + syslogTelnetEnable + } + STATUS current + DESCRIPTION "A collection of object providing control about + whether the syslog messages should be sent to + telnet sessions. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 59 } + +systemStatusGroup OBJECT-GROUP + OBJECTS { sysStatus } + STATUS current + DESCRIPTION "A collection of object providing the system + LED status. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 60 } + +configurationGroup OBJECT-GROUP + OBJECTS { configMode, + configTextFileLocation, + configWriteMem, + configWriteMemStatus + } + STATUS current + DESCRIPTION "A collection of object providing the information + about the configuration mode to store the + configuration information. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 61 } + +filterGroup3 OBJECT-GROUP + OBJECTS { + filterPortSuppressionViolation + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about about the Broadcast + Suppression Violation for port filtering feature. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 62 } + +portGroup3 OBJECT-GROUP + OBJECTS { + portErrDisableTimeOutEnable + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about the ports on the device. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 63 } + +portCpbGroup5 OBJECT-GROUP + OBJECTS { + portCpbDot1x, + portCpbIgmpFilter + } + STATUS current + DESCRIPTION "A collection of objects providing additional + information about the port capabilities on the + device. + + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 64 } + +authenticationGroup1 OBJECT-GROUP + OBJECTS { + tacacsDirectedRequest, + tacacsAuthKey, + tacacsServerAddr, + tacacsServerType, + radiusDeadtime, + radiusAuthKey, + radiusTimeout, + radiusRetransmits, + radiusServerAddr, + radiusServerAuthPort, + radiusServerType + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the authentication features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 65 } + +systemMiscGroup1 OBJECT-GROUP + OBJECTS { + sysMgmtType, + sysAttachType, + sysBaudRate, + sysInsertMode, + sysEnableModem, + sysEnableRedirects, + sysArpAgingTime, + sysCommunityRwa, + sysCommunityRw, + sysCommunityRo, + sysIpVlan + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features." + ::= { ciscoStackMIBGroups 66 } + +systemTrapGroup1 OBJECT-GROUP + OBJECTS { + sysEnableChassisTraps, + sysEnableModuleTraps, + sysEnableBridgeTraps, + sysEnableRepeaterTraps + } + STATUS deprecated + DESCRIPTION "A collection of objects providing information + about the SNMP traps feature." + ::= { ciscoStackMIBGroups 67 } + +optionalSystemMiscGroup6 OBJECT-GROUP + OBJECTS { + sysErrDisableTimeoutEnable, + sysErrDisableTimeoutInterval, + sysTrafficMonitorHighWaterMark, + sysHighAvailabilityEnable, + sysHighAvailabilityVersioningEnable, + sysHighAvailabilityOperStatus, + sysHighAvailabilityNotRunningReason + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the miscellaneous system features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 68 } + +optionalChassisGroup1 OBJECT-GROUP + OBJECTS { + chassisPs1TestResult, + chassisPs2TestResult, + chassisFanTestResult, + chassisSlotConfig, + chassisModel + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the chassis of the device." + ::= { ciscoStackMIBGroups 69 } + +portGroup4 OBJECT-GROUP + OBJECTS { + portModuleIndex, + portIndex, + portCrossIndex, + portName, + portType, + portOperStatus, + portCrossGroupIndex, + portAdditionalStatus, + portAdminSpeed, + portDuplex, + portIfIndex, + portAdminRxFlowControl, + portOperRxFlowControl, + portAdminTxFlowControl, + portOperTxFlowControl, + portMacControlTransmitFrames, + portMacControlReceiveFrames, + portMacControlPauseTransmitFrames, + portMacControlPauseReceiveFrames, + portMacControlUnknownProtocolFrames, + portLinkFaultStatus + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the ports on the device." + ::= { ciscoStackMIBGroups 70 } + +vlanGroup2 OBJECT-GROUP + OBJECTS { + vlanPortModule, + vlanPort, + vlanPortVlan, + vlanPortIslVlansAllowed, + vlanPortSwitchLevel, + vlanPortIslAdminStatus, + vlanPortIslOperStatus, + vlanPortIslPriorityVlans, + vlanPortAdminStatus, + vlanPortOperStatus + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the Virtual LAN features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 71 } + +ipPermitGroup2 OBJECT-GROUP + OBJECTS { + ipPermitAddress, + ipPermitMask, + ipPermitType, + ipPermitDeniedAddress, + ipPermitDeniedAccess, + ipPermitDeniedTime, + ipPermitAccessTypeEnable + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the ip permit list feature. + + Implementation of this group is optional. If the + ip permit list feature is supported, the entire + group should be implemented." + ::= { ciscoStackMIBGroups 72 } + +optionalPortGroup1 OBJECT-GROUP + OBJECTS { + portSecurityModuleIndex, + portSecurityPortIndex, + portSecurityAdminStatus, + portSecurityOperStatus, + portSecurityLastSrcAddr, + portSecuritySecureSrcAddr, + portCpbModuleIndex, + portCpbPortIndex, + portCpbSpeed, + portCpbDuplex, + portCpbTrunkEncapsulationType, + portCpbTrunkMode, + portCpbChannel, + portCpbBroadcastSuppression, + portCpbFlowControl, + portCpbSecurity, + portCpbVlanMembership, + portCpbPortfast, + portTopNControlIndex, + portTopNRateBase, + portTopNType, + portTopNMode, + portTopNReportStatus, + portTopNDuration, + portTopNTimeRemaining, + portTopNStartTime, + portTopNRequestedSize, + portTopNGrantedSize, + portTopNOwner, + portTopNStatus, + portTopNIndex, + portTopNModuleNumber, + portTopNPortNumber, + portTopNUtilization, + portTopNIOOctets, + portTopNIOPkts, + portTopNIOBroadcast, + portTopNIOMulticast, + portTopNInErrors, + portTopNBufferOverFlow + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the ports on the device. + + Implementation of this group is Optional." + ::= { ciscoStackMIBGroups 73 } + +optionalSystemTrapGroup1 OBJECT-GROUP + OBJECTS { + sysEnableIpPermitTraps, + sysEnableVmpsTraps, + sysEnableConfigTraps, + sysEnableEntityTrap + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the SNMP traps feature. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 74 } + +authenticationGroup2 OBJECT-GROUP + OBJECTS { + tacacsDirectedRequest, + tacacsAuthKey, + tacacsServerAddr, + tacacsServerType, + radiusDeadtime, + radiusAuthKey, + radiusTimeout, + radiusRetransmits + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the authentication features. + + Implementation of this group is optional." + ::= { ciscoStackMIBGroups 75 } + +systemTrapGroup2 OBJECT-GROUP + OBJECTS { + sysEnableChassisTraps, + sysEnableModuleTraps, + sysEnableRepeaterTraps + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the SNMP traps feature." + ::= { ciscoStackMIBGroups 76 } + +notificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { + lerAlarmOn, + lerAlarmOff, + moduleUp, + moduleDown, + chassisAlarmOn, + chassisAlarmOff, + ipPermitDeniedTrap, + sysConfigChangeTrap, + tokenRingSoftErrExceededTrap + } + STATUS current + DESCRIPTION + "A collection of notifications supported on the device." + ::= { ciscoStackMIBGroups 77 } +END diff --git a/pandora_console/attachment/mibs/CISCO-TC b/pandora_console/attachment/mibs/CISCO-TC new file mode 100644 index 0000000000..d9cc918849 --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-TC @@ -0,0 +1,770 @@ +-- ***************************************************************** +-- CISCO-TC.my: Cisco MIB Textual Conventions +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-2002 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- + +CISCO-TC DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, + Gauge32, + Integer32, + Counter64 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION + FROM SNMPv2-TC + ciscoModules + FROM CISCO-SMI; + + +ciscoTextualConventions MODULE-IDENTITY + LAST-UPDATED "200212180000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + " Cisco Systems + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-snmp@cisco.com" + DESCRIPTION + "This module defines textual conventions used throughout + cisco enterprise mibs." + REVISION "200212180000Z" + DESCRIPTION + "Changed MilliSeconds TC to CiscoMilliSeconds as it was + overlapping with the one in a standard MIB." + REVISION "200212121600Z" + DESCRIPTION + "Added the 'http' enumeration to CiscoNetworkProtocol." + REVISION "200212020000Z" + DESCRIPTION + "Added Unsigned64 textual convention." + REVISION "200209220000Z" + DESCRIPTION + "Added ListIndex, ListIndexOrZero, TimeIntervalSec, + TimeintervalMin, MicroSeconds and MicroSeconds TC from Andiamo's + TC MIB ." + REVISION "200209170000Z" + DESCRIPTION + "Added ConfigIterator & BulkConfigResult textual + convention for bulk provisioning. + Added CountryCodeITU textual convention for ITU-T defined + country codes for non-standard facilities." + REVISION "200204160000Z" + DESCRIPTION + "Added PerfHighIntervalCount TEXTUAL-CONVENTION." + REVISION "200107070000Z" + DESCRIPTION + "Added enumerations to CiscoNetworkProtocol" + REVISION "200101180000Z" + DESCRIPTION + "Added CiscoAlarmSeverity textual convention. + Changed SAPType display hint to d. Changed + INTEGER to Integer32 in CiscoPort and + CiscoIpProtocol TCs. Changed SnmpAdminString + to OCTET STRING in CiscoLocationSpecifier. + Removed IMPORTs for ciscoProducts and + SnmpAdminString." + REVISION "200011210000Z" + DESCRIPTION + "Added CiscoLocationClass, CiscoLocationSpecifier + CiscoInetAddressMask, CiscoAbsZeroBasedCounter32, + CiscoSnapShotAbsCounter32 textual conventions." + REVISION "9810280000Z" + DESCRIPTION + "Added CiscoRowOperStatus, EntPhysicalIndexOrZero, + Port and IpProtocol textual conventions." + REVISION "9703130000Z" + DESCRIPTION + "Added SAPType, CountryCode textual convention." + REVISION "9608140000Z" + DESCRIPTION + "Added InterfaceIndexOrZero textual convention." + REVISION "9607080000Z" + DESCRIPTION + "Added new CiscoNetworkProtocol enumerations." + REVISION "9602220000Z" + DESCRIPTION + "Added Unsigned32 textual conventions." + REVISION "9506070000Z" + DESCRIPTION + "Miscellaneous updates/corrections, including making + CiscoNetworkProtocol enumerations contiguous." + ::= { ciscoModules 1 } + + +CiscoNetworkProtocol ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the different types of network layer protocols." + -- internal note: enumerations must match those in address.h + SYNTAX INTEGER { + ip (1), + decnet (2), + pup (3), + chaos (4), + xns (5), + x121 (6), + appletalk (7), + clns (8), + lat (9), + vines (10), + cons (11), + apollo (12), + stun (13), + novell (14), + qllc (15), + snapshot (16), + atmIlmi (17), + bstun (18), + x25pvc (19), + ipv6 (20), -- IP version 6 + cdm (21), -- Cable Data Modem + nbf (22), -- NetBIOS + bpxIgx (23), -- BGP/IGX + clnsPfx(24), -- ISO 8473 CLNS NSAP + http(25), + unknown (65535) + } + +CiscoNetworkAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1x:" + STATUS current + DESCRIPTION + "Represents a network layer address. The length and format of + the address is protocol dependent as follows: + ip 4 octets + decnet 2 octets + pup obsolete + chaos 2 octets + xns 10 octets + first 4 octets are the net number + last 6 octets are the host number + x121 + appletalk 3 octets + first 2 octets are the net number + last octet is the host number + clns + lat + vines 6 octets + first 4 octets are the net number + last 2 octets are the host number + cons + apollo 10 octets + first 4 octets are the net number + last 6 octets are the host number + stun 8 octets + novell 10 octets + first 4 octets are the net number + last 6 octets are the host number + qllc 6 octets + bstun 1 octet - bi-sync serial tunnel + snapshot 1 octet + atmIlmi 4 octets + x25 pvc 2 octets (12 bits) + ipv6 16 octets + cdm + nbf + bgpIgx + clnsPfx upto 20 octets + http upto 70 octets + first 4 octets are the IPv4 host + address + next 2 octets are the TCP port + number + remaining(1 upto 64) octets are + the URI + " + SYNTAX OCTET STRING + +SMI Unsigned32 +--Unsigned32 ::= TEXTUAL-CONVENTION +-- STATUS current +-- DESCRIPTION +-- "An unsigned 32-bit quantity indistinguishable from Gauge32." +-- SYNTAX Gauge32 + +Unsigned64 ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An unsigned 64 bit integer. We use SYNTAX Counter64 for the + encoding rules." + SYNTAX Counter64 + +InterfaceIndexOrZero ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "Either the value 0, or the ifIndex value of an + interface in the ifTable." + SYNTAX Integer32 (0..2147483647) + +SAPType ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "Service Access Point - is a term that denotes the means + by which a user entity in layer n+1 accesses a service + of a provider entity in layer n." + SYNTAX Integer32 (0..254) + +CountryCode ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2a" + STATUS current + DESCRIPTION + "Represents a case-insensitive 2-letter country code taken + from ISO-3166. Unrecognized countries are represented as + empty string." + SYNTAX OCTET STRING (SIZE (0 | 2)) + +CountryCodeITU ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "This textual convention represents a country or area code for + non-standard facilities in telematic services." + REFERENCE + "ITU-T T.35 - Section 3.1 Country Code" + SYNTAX Unsigned32 (0..255) + +EntPhysicalIndexOrZero ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This textual convention is an extension of entPhysicalIndex. + If non-zero, the object is an entPhysicalIndex. If zero, no + appropriate entPhysicalIndex exists. Any additional semantics + are object specific." + SYNTAX Integer32 (0..2147483647) + +CiscoRowOperStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the operational status of an table entry. + This textual convention allows explicitly representing + the states of rows dependent on rows in other tables. + + active(1) - + Indicates this entry's RowStatus is active + and the RowStatus for each dependency is active. + + activeDependencies(2) - + Indicates that the RowStatus for each dependency + is active, but the entry's RowStatus is not active. + + inactiveDependency(3) - + Indicates that the RowStatus for at least one + dependency is not active. + + missingDependency(4) - + Indicates that at least one dependency does + not exist in it's table. + " + SYNTAX INTEGER { + active(1), + activeDependencies(2), + inactiveDependency(3), + missingDependency(4) + } + +CiscoPort ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The TCP or UDP port number range." + REFERENCE + "Transmission Control Protocol. J. Postel. RFC793, + User Datagram Protocol. J. Postel. RFC768" + SYNTAX Integer32 ( 0..65535 ) + +CiscoIpProtocol ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "IP protocol number range." + REFERENCE + "Internet Protocol. J. Postel. RFC791" + SYNTAX Integer32 ( 0..255 ) + + + +CiscoLocationClass ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An enumerated value which provides an indication of + the general location type of a particular physical and/or + logical interface. + chassis - a system framework for mounting one or more + shelves/slots/cards. + shelf - a cabinet that holds one or more slots. + slot - card or subSlot holder. + subSlot - daughter-card holder. + port - a physical port (e.g., a DS1 or DS3 physical port). + subPort - a logical port on a physical port (e.g., a DS1 + subPort on a DS3 physical port). + channel - a logical interface (e.g., a DS0 channel, signalling + channel, ATM port, other virtual interfaces). + subChannel - a sub-channel on a logical interface. + " + SYNTAX INTEGER { + chassis(1), + shelf(2), + slot(3), + subSlot(4), + port(5), + subPort(6), + channel(7), + subChannel(8) + } + +CiscoLocationSpecifier ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Use this TC to define objects that indicate the + physical entity and/or logical interface location + of a managed entity on a managed device. In SNMP, a + standard mechanism for indicating the physical location + of entities is via the ENTITY-MIB. However, that approach + is not satisfactory in some cases because: + + 1. The entity requiring a location-based naming may be + associated with an entity which can not be represented + as a physical entity in the ENTITY-MIB, + 2. NMS applications may desire a more direct + name/representation of a physical entity than is + available via the ENTITY-MIB, e.g., a physical entity + which is named via a hierarchy of levels in the ENTITY-MIB. + + The value of an object defined using this TC is an ASCII + string consisting of zero or more elements separated by + commas. Each element is of the form = . + + An example of this syntax is 'slot=5,port=3'. + + The syntax of the string is formally specified using + ABNF notation (with one exception, noted below), as + follows: + + location-specifier = elem *(',' elem) + ; subject to + ; size restriction specified in the SYNTAX + ; clause below + + elem = loctype '=' number + + number = %x00-FFFFFFFF / %d0-4294967295 + + loctype = 1*32VCHAR + + It is recommended that loctype use one of the enumerated + labels defined for CiscoLocationClass. + + (NOTE: To conform to ABNF notation as defined in RFC2234, + substitute the single-quote symbol with a double-quote + symbol in the above rules.) + + A zero length of CiscoLocationSpecifier is object-specific + and must be defined as part of the description of any object + which uses this syntax. + " + REFERENCE + "RFC2234, Augmented BNF for syntax specifications: ABNF" + + SYNTAX OCTET STRING (SIZE (0..255)) + +CiscoInetAddressMask ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Denotes a generic Internet subnet address mask. + The Internet subnet address mask is represented as the + number of contiguous 1-bit from MSB (most significant bit) + of the Internet subnet address mask. + A CiscoInetAddressMask value is always interpreted within + the context of an InetAddressType value. The + InetAddressType only object or InetAddressType with + InetAddress objects which define the context must be + registered immediately before the object which uses the + CiscoInetAddressMask textual convention. In other words, + the object identifiers for the InetAddressType object and + the CiscoInetAddressMask object MUST have the same length + and the last sub-identifier of the InetAddressType object + MUST be 1 less than the last sub-identifier of the + CiscoInetAddressMask object and MUST be 2 less than the + last sub-identifier of the CiscoInetAddressMask object if + an InetAddress object is defined between InetAddressType + and CiscoInetAddressMask objects. + The maximum value of the CiscoInetAddressMask TC is 32 for + the value 'ipv4(1)' in InetAddressType object and 128 for + the value 'ipv6(2)' in InetAddressType object. + The value zero is object-specific and must therefore be + defined as part of the description of any object which + uses this syntax. Examples of the usage of zero might + include situations where Internet subnet mask was unknown, + or when none subnet masks need to be referenced." + + REFERENCE + "RFC2851, Textual Conventions for Internet Network Addresses." + + SYNTAX Unsigned32 (0..128) + +CiscoAbsZeroBasedCounter32 ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes an object which counts events with the + following semantics: objects of this type will be set to + zero(0) on creation and will thereafter count appropriate + events, it locks at the maximum value of 4,294,967,295 if + the counter overflows. + This TC may be used only in situations where wrapping is + not possible or extremely unlikely situation." + SYNTAX Gauge32 + +CiscoSnapShotAbsCounter32 ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This TC describes an object which stores a snap-shot value + with the following semantics: objects of this type will + take a snap-shot value from their associated + CiscoAbsZeroBasedCounter32 type objects on creation." + SYNTAX Unsigned32 + +CiscoAlarmSeverity ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents the perceived alarm severity associated + with a service or safety affecting condition and/or + event. These are based on ITU severities, except + that info(7) is added. + + cleared(1) - + Indicates a previous alarm condition has been + cleared. It is not required (unless specifically + stated elsewhere on a case by case basis) that an + alarm condition that has been cleared will produce + a notification or other event containing an + alarm severity with this value. + + indeterminate(2) - + Indicates that the severity level cannot be + determined. + + critical(3) - + Indicates that a service or safety affecting + condition has occurred and an immediate + corrective action is required. + + major(4) - + Indicates that a service affecting condition has + occurred and an urgent corrective action is + required. + + minor(5) - + Indicates the existence of a non-service affecting + condition and that corrective action should be + taken in order to prevent a more serious (for + example, service or safety affecting) condition. + + warning(6) - + Indicates the detection of a potential or impending + service or safety affecting condition, before any + significant effects have been felt. + + info(7) - + Indicates an alarm condition that does not + meet any other severity definition. This can + include important, but non-urgent, notices or + informational events. + " + REFERENCE + "ITU-X.733" + SYNTAX INTEGER { + cleared(1), + indeterminate(2), + critical(3), + major(4), + minor(5), + warning(6), + info(7) + } + + +PerfHighIntervalCount ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A 64 bit counter associated with a + performance measurement in a previous + 15 minute measurement interval. In the + case where the agent has no valid data + available for a particular interval the + corresponding object instance is not + available and upon a retrieval request + a corresponding error message shall be + returned to indicate that this instance + does not exist (for example, a noSuchName + error for SNMPv1 and a noSuchInstance for + SNMPv2 GET operation). + In a system supporting + a history of n intervals with + IntervalCount(1) and IntervalCount(n) the + most and least recent intervals + respectively, the following applies at + the end of a 15 minute interval: + - discard the value of IntervalCount(n) + - the value of IntervalCount(i) becomes that + of IntervalCount(i-1) for n >= i > 1 + - the value of IntervalCount(1) becomes that + of CurrentCount + - the TotalCount, if supported, is adjusted. + + This definition is based on CounterBasedGauge64 TEXTUAL + CONVENTION defined in RFC2856. The PerfHighIntervalCount + type represents a non-negative + integer, which may increase or decrease, but shall never + exceed a maximum value, nor fall below a minimum value. The + maximum value can not be greater than 2^64-1 + (18446744073709551615 decimal), and the minimum value can + not be smaller than 0. The value of a PerfHighIntervalCount, + has its maximum value whenever the information being modeled + is greater than or equal to its maximum value, and has its + minimum value whenever the information being modeled is + smaller than or equal to its minimum value. If the + information being modeled subsequently decreases below + (increases above) the maximum (minimum) value, the + PerfHighIntervalCount also decreases (increases). + + Note that this TC is not strictly supported in SMIv2, + because the 'always increasing' and 'counter wrap' semantics + associated with the Counter64 base type are not preserved. + It is possible that management applications which rely + solely upon the (Counter64) ASN.1 tag to determine object + semantics will mistakenly operate upon objects of this type + as they would for Counter64 objects. + + This textual convention represents a limited and short-term + solution, and may be deprecated as a long term solution is + defined and deployed to replace it." + REFERENCE + "RFC 2856(HCNUM-TC MIB). + RFC 2493(PerfHist-TC-MIB)." + SYNTAX Counter64 + +ConfigIterator ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This object type is a control object type which applies to + writable objects in the same SNMP PDU related to the + same table containing those objects. It controls an + operation which repeatedly applies the specified + configuration data to more than one rows in a table. + The operation starts from the row specified by the index + of the instance and repeats for the number of rows as + the value of the object. + + ConfigIterator object needs to be accompanied by one set of + writable objects which are of the same instance to apply to. + + For example, a SNMP PDU contains + { objectA.10 = 1, + objectB.10 = 'E1', + objectC.10 = 44, + objectRepetition.10 = 100 } + + The SYNTAX of objectRepetition is ConfigIterator. + This will apply value 1 to objectA, value 'E1' to objectB, + value 44 to objectC in the table starting from row 10 + repeatedly for 100 rows. + + The iteration is based on the number of rows, not based on + the value of the index. For sparse tables, the index 10, + 20, 30, 110, and 120 counts for 5 rows, the operation will + go beyond index 100 in the previous SNMP PDU example. + + The iteration will stop prematurely when it comes to the + following situations: + (1) When the number of the rows in the table is less than + the designated row indicated by the ConfigIterator + object. + (2) When it encounters the first error in any row, the + operation won't continue to next row. + + The operation of ConfigIterator object applies only to + the writable objects having the same index as the + ConfigIterator object in one SNMP PDU. + + For example, a SNMP PDU contains + { objectD.5 = 38, + objectE.6 = 'T1', + objectF.5 = 'false', + objectIterator.5 = 10 } + + The SYNTAX of objectIterator is ConfigIterator. + This will apply value 38 to objectD, value 'false' to + objectF in the table starting from row 5 repeatedly + for 10 rows. Since the object objectE.6 has different + index (6) from the index of objectIterator, the + repetition won't be applied to it. However the value + of objectE in the row 6 will be set to 'T1' according + to regular SNMP SET orperation. + + If there is row overlapping of the iteration in a SNMP PDU, + it will be operated as they are in two different SNMP PDUs. + + For example, a SNMP PDU contains + { objectD.5 = 38, + objectD.6 = 40, + objectE.6 = 'T1', + objectF.5 = 'false', + objectIterator.5 = 10 + objectIterator.6 = 10 } + + This will apply value 38 to objectD, value 'false' to + objectF starting from row 5 repeatedly for 10 rows, and + apply value 40 to objectD, value 'T1' to objectE starting + from row 6 repeatedly for 10 rows. The final value of + objectD.6 can be 38 or 40, it depends on the SNMP stack of + the system starts SNMP SET for the row 5 before the row 6 + or the other way around. + + The object defined as ConfigIterator will be set to value 1 + after the iteration operation is kick-off regardless the + system has completed the operation to the designated rows + or not. Therefore retrieving the value of this object + is meaningless. It acts as the one time operation for + bulk configuration. + + The object defined as ConfigIterator has no meaning by itself, + it has to be combined with one or more than one writable + objects from the same table and within the same SNMP PDU + for the repetition operation. + + For example, a SNMP PDU contains + { objectG.2 = 49, + objectH.2 = 'AE'h + objectIterator.4 = 20 } + + The SYNTAX of objectIterator is ConfigIterator. Since + there are no objects having the same index as the index + of objectIterator in the PDU, the result of this SNMP + operation will set value 49 to objectG and value 0xAE + to objectH of the row 2 only as regular SNMP SET operation. + + The index of the instance indicates the starting row for the + iteration. + The order of the iteration depends, for instance, on: + (1) physical hardware position, or + (2) logical index. + + It depends on the characters of the table which contains + the ConfigIterator object. + + Iteration can be done through some or all the components + of the index for a table. The description of the iterator + object in that table should describe which part of the + index the iteration is applied to. + + The operation for this object type is based on the best + effort. When the agent receives a SNMP PDU containing this + data type, the return status of the SNMP request reflects + only the result of the SET operation has applied to the + starting row. It may return a SNMP response with SUCCESS + status regardless the number of rows for the data actually + been deployed later on. Therefore it is possible the data + might not be completely deployed to the number of rows + designated by the ConfigIterator and the operation stops + prematurely due to an error it first encounters after + n rows (n < the value of ConfigIterator object). + + Usually the error report mechanism for this type of operation + is accomplished by combining this type of object with the + other two objects in the same table: + + (1) An OwnerString object + (2) An object indicates the result of the operation. + + When issuing this bulk configuration request, the SNMP + manager should provide its identifier in (1) object. + After issuing the request, it should check the value of (1) + object if it is the same with it own name. + If they are the same, then the value of the object presents + in (2) is the result from the previous operation from this + manager. Otherwise, another SNMP manager might issue + the bulk configuration to the same table before the previous + bulk operation has been completed. These two objects will + represent the last bulk operation in the table. + " + SYNTAX Unsigned32 (1..4294967295) + +BulkConfigResult ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This textual convention defines the format of the + displayable textual result from the bulk configuration + operation specified as ConfigIterator type. + + The format should be: + 'COMPLETION=/, + ERROR=/: + ' + + For example: + 'COMPLETION=22/100,ERROR=38/44:Invalid Ds1 line coding + for the line type' + " + SYNTAX OCTET STRING (SIZE(0..255)) + +ListIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A unique value greater than zero, for each of the + list that is defined. The object using this + convention should give all the object specific + details including the list type." + SYNTAX Integer32 (1..2147483647) + +ListIndexOrZero ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "This textual convention is an extension of the + ListIndex. In addition to the ListIndex range, + this also includes 0 in its range of values. + This value could be object specific and + should be given the description of that object. + In most cases, a value 0 means that the it does + not represent any lists." + SYNTAX Integer32 (0..2147483647) + +TimeIntervalSec ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A period of time, measured in units of 1 second." + SYNTAX Unsigned32 + +TimeIntervalMin ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A period of time, measured in units of 1 minute." + SYNTAX Unsigned32 + +CiscoMilliSeconds ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents time unit value in milliseconds." + SYNTAX Unsigned32 + +MicroSeconds ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents time unit value in microseconds." + SYNTAX Unsigned32 +END diff --git a/pandora_console/attachment/mibs/CISCO-VTP-MIB b/pandora_console/attachment/mibs/CISCO-VTP-MIB new file mode 100644 index 0000000000..bad246678d --- /dev/null +++ b/pandora_console/attachment/mibs/CISCO-VTP-MIB @@ -0,0 +1,2811 @@ +-- ***************************************************************** +-- Cisco VTP MIB +-- +-- February, 1997 Chris Young +-- +-- Copyright (c) 1996-2001 by cisco Systems, Inc. +-- All rights reserved. +-- ***************************************************************** + + +CISCO-VTP-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + Counter32, IpAddress, Gauge32, Integer32 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, + RowStatus, DisplayString, DateAndTime, TruthValue, TestAndIncr + FROM SNMPv2-TC + InterfaceIndex, ifIndex, InterfaceIndexOrZero + FROM IF-MIB + ciscoMgmt + FROM CISCO-SMI + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF; + +ciscoVtpMIB MODULE-IDENTITY + LAST-UPDATED "200102260000Z" + ORGANIZATION "Cisco Systems, Inc." + CONTACT-INFO + "Cisco Systems + Customer Service + + Postal: 170 W Tasman Drive + San Jose, CA 95134 + USA + + Tel: +1 800 553-NETS + + E-mail: cs-wbu@cisco.com" + DESCRIPTION + "The MIB module for entities implementing the VTP + protocol and Vlan management." + REVISION "200102260000Z" + DESCRIPTION + "Deprecate read-only object vtpVlanEditTypeExt and + add a new read-create object vtpVlanEditTypeExt2. + Enable Notification groups." + REVISION "200102120000Z" + DESCRIPTION + "Added Remote SPAN (RSPAN) VLAN feature, VLAN + management features without supporting VTP protocol + and a new object to handle one-VLAN-editing." + REVISION "200009190000Z" + DESCRIPTION + "Added the mapping from VLAN ID to its corresponding + ifIndex" + REVISION "200004100000Z" + DESCRIPTION + "Added 4k VLAN editing and Dot1qTunnel support" + REVISION "200001060000Z" + DESCRIPTION + "Added 4k VLAN support" + REVISION "9902251130Z" + DESCRIPTION + "Added import of NOTIFICATION-GROUP" + REVISION "9901051130Z" + DESCRIPTION + "Added support for encapsulation type notApplicable" + REVISION "9805191130Z" + DESCRIPTION + "Added support for encapsulation type negotiation" + REVISION "9708081138Z" + DESCRIPTION + "Added Backup CRF object" + REVISION "9705091130Z" + DESCRIPTION + "Added ARE and STE hop counts." + REVISION "9702241115Z" + DESCRIPTION + "Added support for turning on VTP for Trunk cards." + REVISION "9701271730Z" + DESCRIPTION + "Added support for version 2 features." + REVISION "9609161230Z" + DESCRIPTION + "Updated the Token-Ring support." + REVISION "9607171230Z" + DESCRIPTION + "Updated to include objects in support of VTP pruning." + REVISION "9601181820Z" + DESCRIPTION + "Initial version of this MIB module." + ::= { ciscoMgmt 46 } + +vtpMIBObjects OBJECT IDENTIFIER ::= { ciscoVtpMIB 1 } + +-- Textual Conventions + +VlanIndex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The VLAN-id of a VLAN on ISL trunks. + + Modification of default parameters is allowed. + Implementations are allowed to restrict + the range of VLANs. + + For entities support up to 1024 VLANS. + VLANs above 1000 are reserved for default VLANs and + future use. Modification of default parameters is + allowed. Creation or deletion of VLANs above 1000 is not + allowed." + SYNTAX Integer32 (0..4095) + +ManagementDomainIndex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An arbitrary integer-value to uniquely identify a + management domain on the local system." + SYNTAX Integer32 (1..255) + +OwnerString ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This data type is used to model an administratively + assigned name of the owner of a resource. This information + is taken from the NVT ASCII character set. It is suggested + that this name contain one or more of the following: IP + address, management station name, network manager's name, + location, or phone number. In some cases the agent itself + will be the owner of an entry. In these cases, this string + shall be set to a string starting with 'monitor'. + + This definition is identical to that contained in RFC 1271." + SYNTAX OCTET STRING + +VlanType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The type of a VLAN. + + Note that the 'ethernet' type, is used for any ethernet or + 802.3 VLAN, including an ATM Ethernet ELAN; and the + 'tokenRing' ('trCrf') type is used for each VLAN + representing a single logical 802.5 ring including an ATM + Token-Ring ELAN. + + The 'trCrf' type is used for token ring VLANs made up of + (at most) one transparently bridged LAN segment. + + The 'trBrf' type is used for VLANs which represent the + scope of many 'trCrf' VLANs all connected together via + source route bridging. The token ring 'trBrf' can be said + to represent the bridged broadcast domain." + SYNTAX INTEGER { + ethernet(1), + fddi(2), + tokenRing(3), -- also known as trCrf + fddiNet(4), + trNet(5), -- also known as trBrf + deprecated(6) + } + +VlanTypeExt ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The additional type information of VLAN. + vtpmanageable(0) An user defined VLAN which is + manageable through VTP protocol. + The value of this bit cannot be + changed. + internal(1) An internal VLAN created by the device. + Internal VLANs cannot be created or + deleted. The value of this bit cannot + be changed. + reserved(2) A VLAN reserved by the device. + Reserved VLANs cannot be created or + deleted. The value of this bit cannot + be changed. + rspan(3) A VLAN created to exclusively carry + the traffic for a Remote Switched + Port Analyzer (RSPAN). This bit can + only be set or cleared during the + VLAN creation. Once the VLAN is + created, the value of this bit cannot + be modified. + " + SYNTAX BITS { + vtpmanageable(0), + internal(1), + reserved(2), + rspan(3) + } + +-- +-- VTP status +-- + +vtpStatus OBJECT IDENTIFIER ::= { vtpMIBObjects 1 } + +vtpVersion OBJECT-TYPE + SYNTAX INTEGER { one(1), two(2), none(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of VTP in use on the local system. A device + will report its version capability and not any particular + version in use on the device. If the device does not support + vtp, the version is none(3)." + ::= { vtpStatus 1 } + +vtpMaxVlanStorage OBJECT-TYPE + SYNTAX Integer32 (-1..1023) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An estimate of the maximum number of VLANs about which the + local system can recover complete VTP information after a + reboot. If the number of defined VLANs is greater than this + value, then the system can not act as a VTP Server. For a + device which has no means to calculate the estimated number, + this value is -1." + ::= { vtpStatus 2 } + +vtpNotificationsEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An indication of whether the notifications/traps defined by + the vtpConfigNotificationsGroup are enabled." + ::= { vtpStatus 3 } + +-- +-- VTP Management Domains +-- + +vlanManagementDomains OBJECT IDENTIFIER ::= { vtpMIBObjects 2 } + +managementDomainTable OBJECT-TYPE + SYNTAX SEQUENCE OF ManagementDomainEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table containing information on the management domains + in which the local system is participating. Devices which + support only one management domain will support just one row + in this table, and will not let it be deleted nor let other + rows be created. Devices which support multiple management + domains will allow rows to be created and deleted, but will + not allow the last row to be deleted. If the device does + not support VTP, the table is read-only." + ::= { vlanManagementDomains 1 } + +managementDomainEntry OBJECT-TYPE + SYNTAX ManagementDomainEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about the status of one management domain." + INDEX { managementDomainIndex } + ::= { managementDomainTable 1 } + +ManagementDomainEntry ::= SEQUENCE { + managementDomainIndex ManagementDomainIndex, + managementDomainName DisplayString, + managementDomainLocalMode INTEGER, + managementDomainConfigRevNumber Gauge32, + managementDomainLastUpdater IpAddress, + managementDomainLastChange DateAndTime, + managementDomainRowStatus RowStatus, + managementDomainTftpServer IpAddress, + managementDomainTftpPathname DisplayString, + managementDomainPruningState INTEGER, + managementDomainVersionInUse INTEGER +} + +managementDomainIndex OBJECT-TYPE + SYNTAX ManagementDomainIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An arbitrary value to uniquely identify the management + domain on the local system." + ::= { managementDomainEntry 1 } + +managementDomainName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The management name of a domain in which the local system + is participating. The zero-length name corresponds to the + 'no management-domain' state which is the initial value at + installation-time if not configured otherwise. Note that + the zero-length name does not correspond to an operational + management domain, and a device does not send VTP + advertisements while in the 'no management-domain' state. A + device leaves the 'no management-domain' state when it + obtains a management-domain name, either through + configuration or through inheriting the management-domain + name from a received VTP advertisement. + + When the value of an existing instance of this object is + modified by network management, the local system should re- + initialize its VLAN information (for the given management + domain) as if it had just been configured with a management + domain name at installation time." + ::= { managementDomainEntry 2 } + +managementDomainLocalMode OBJECT-TYPE + SYNTAX INTEGER { client(1), server(2), transparent(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "An indication of whether the local system is acting as a + VTP Client or as a VTP Server in this management domain. + The value 'transparent' is a read-only indication that a + device is not supporting VTP for this VTP management domain, + e.g., because the amount of VLAN information is too large + for it to hold in DRAM." + ::= { managementDomainEntry 3 } + +managementDomainConfigRevNumber OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current Configuration Revision Number as known by the + local device for this management domain. This value is + updated (if necessary) whenever a VTP advertisement is + received or generated. When in the 'no management-domain' + state, this value is 0." + ::= { managementDomainEntry 4 } + +managementDomainLastUpdater OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP-address (or one of them) of the VTP Server which + last updated the Configuration Revision Number, as indicated + in the most recently received VTP advertisement for this + management domain. Before an advertisement has been + received, this value is 0.0.0.0." + ::= { managementDomainEntry 5 } + +managementDomainLastChange OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time at which the Configuration Revision Number was + (last) increased to its current value, as indicated in the + most recently received VTP advertisement for this management + domain. + + The value 0x0000010100000000 indicates that the device which + last increased the Configuration Revision Number had no idea + of the date/time, or that no advertisement has been + received." + ::= { managementDomainEntry 6 } + +managementDomainRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this conceptual row." + ::= { managementDomainEntry 7 } + +managementDomainTftpServer OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The IP address of a TFTP Server in/from which VTP VLAN + information for this management domain is to be + stored/retrieved. If the information is being locally + stored in NVRAM, this object should take the value 0.0.0.0." + ::= { managementDomainEntry 8 } + +managementDomainTftpPathname OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The complete pathname of the file at the TFTP Server + identified by the value of managementDomainTftpServer + in/from which VTP VLAN information for this management + domain is to be stored/retrieved. If the value of + corresponding instance of managementDomainTftpServer is + 0.0.0.0, the value of this object is ignored." + ::= { managementDomainEntry 9 } + +managementDomainPruningState OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "An indication of whether VTP pruning is enabled or disabled + in this managament domain. This value can only be modified + by local/network management when the value of the + corresponding instance of managementDomainLocalMode is + 'server'." + ::= { managementDomainEntry 10 } + +managementDomainVersionInUse OBJECT-TYPE + SYNTAX INTEGER { version1 (1), version2 (2), none(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The current version of the VTP that is in use by the + designated management domain. This value can only be + modified by local/network managment when the value of the + corresponding instance of managementDomainLocalMode is + 'server'. If managementDomainLocalMode is 'server', + this object can only be changed to version1(1) or + version(2)." + ::= { managementDomainEntry 11 } + +-- +-- VLAN information +-- + +vlanInfo OBJECT IDENTIFIER ::= { vtpMIBObjects 3 } + +-- Global information on current VLANs +-- +-- This information is maintained by VTP Clients and VTP Servers + +vtpVlanTable OBJECT-TYPE + SYNTAX SEQUENCE OF VtpVlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains information on the VLANs which + currently exist. The creation, deletion or modification of + entries occurs through: a) the receipt of VTP messages in + VTP Clients and in VTP Servers, or, b) in VTP Servers (or in + VTP transparent mode), through management operations acting + upon entries in the vtpVlanEditTable and then issuing an + 'apply' command via the vtpVlanEditOperation object." + ::= { vlanInfo 1 } + +vtpVlanEntry OBJECT-TYPE + SYNTAX VtpVlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about one current VLAN. The + managementDomainIndex value in the INDEX clause indicates + which management domain the VLAN is in." + INDEX { managementDomainIndex, vtpVlanIndex } + ::= { vtpVlanTable 1 } + +VtpVlanEntry ::= SEQUENCE { + vtpVlanIndex VlanIndex, + vtpVlanState INTEGER, + vtpVlanType VlanType, + vtpVlanName DisplayString, + vtpVlanMtu Integer32, + vtpVlanDot10Said OCTET STRING, + vtpVlanRingNumber Integer32, + vtpVlanBridgeNumber Integer32, + vtpVlanStpType INTEGER, + vtpVlanParentVlan VlanIndex, + vtpVlanTranslationalVlan1 VlanIndex, + vtpVlanTranslationalVlan2 VlanIndex, + vtpVlanBridgeType INTEGER, + vtpVlanAreHopCount Integer32, + vtpVlanSteHopCount Integer32, + vtpVlanIsCRFBackup TruthValue, + vtpVlanTypeExt VlanTypeExt, + vtpVlanIfIndex InterfaceIndexOrZero +} + +vtpVlanIndex OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The VLAN-id of this VLAN on ISL trunks." + ::= { vtpVlanEntry 1 } + +vtpVlanState OBJECT-TYPE + SYNTAX INTEGER { operational(1), + suspended(2), + mtuTooBigForDevice(3), + mtuTooBigForTrunk(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of this VLAN. + + The state 'mtuTooBigForDevice' indicates that this device + cannot participate in this VLAN because the VLAN's MTU is + larger than the device can support. + + The state 'mtuTooBigForTrunk' indicates that while this + VLAN's MTU is supported by this device, it is too large for + one or more of the device's trunk ports." + ::= { vtpVlanEntry 2 } + +vtpVlanType OBJECT-TYPE + SYNTAX VlanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of this VLAN." + ::= { vtpVlanEntry 3 } + +vtpVlanName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of this VLAN. This name is used as the ELAN-name + for an ATM LAN-Emulation segment of this VLAN." + ::= { vtpVlanEntry 4 } + +vtpVlanMtu OBJECT-TYPE + SYNTAX Integer32 (1500..18190) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The MTU size on this VLAN, defined as the size of largest + MAC-layer (information field portion of the) data frame + which can be transmitted on the VLAN." + ::= { vtpVlanEntry 5 } + +vtpVlanDot10Said OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (4)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the 802.10 SAID field for this VLAN." + ::= { vtpVlanEntry 6 } + +vtpVlanRingNumber OBJECT-TYPE + SYNTAX Integer32 (0..4095) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ring number of this VLAN. This object is only + instantiated when the value of the corresponding instance of + vtpVlanType has a value of 'fddi' or 'tokenRing' and Source + Routing is in use on this VLAN." + ::= { vtpVlanEntry 7 } + +vtpVlanBridgeNumber OBJECT-TYPE + SYNTAX Integer32 (0..15) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The bridge number of the VTP-capable switches for this + VLAN. This object is only instantiated for VLANs that are + involved with emulating token ring segments." + ::= { vtpVlanEntry 8 } + +vtpVlanStpType OBJECT-TYPE + SYNTAX INTEGER { ieee(1), ibm(2), hybrid(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The type of the Spanning Tree Protocol (STP) running on + this VLAN. This object is only instanciated when the + value of the corresponding instance of vtpVlanType has a + value of 'fddiNet' or 'trNet'. + + The value returned by this object depends upon the value + of the corresponding instance of vtpVlanEditStpType. + + - 'ieee' indicates IEEE STP is running exclusively. + + - 'ibm' indicates IBM STP is running exclusively. + + - 'hybrid' indicates a STP that allows a combination of + IEEE and IBM is running. + + The 'hybrid' STP type results from tokenRing/fddi VLANs + that are children of this trNet/fddiNet parent VLAN being + configured in a combination of SRT and SRB + vtpVlanBridgeTypes while the instance of + vtpVlanEditStpType that corresponds to this object is set + to 'auto'." + ::= { vtpVlanEntry 9 } + +vtpVlanParentVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The parent VLAN for this VLAN. This object is only + instantiated when the value of the corresponding instance of + vtpVlanType has a value of 'fddi' or 'tokenRing' and Source + Routing is in use on this VLAN. The parent VLAN must have + a vtpVlanType value of fddiNet(4) or trNet(5), + respectively." + ::= { vtpVlanEntry 10 } + +vtpVlanTranslationalVlan1 OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A VLAN to which this VLAN is being translational-bridged. + If this value and the corresponding instance of + vtpVlanTranslationalVlan2 are both zero, then this VLAN is + not being translational-bridged." + ::= { vtpVlanEntry 11 } + +vtpVlanTranslationalVlan2 OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Another VLAN, i.e., other than that indicated by + vtpVlanTranslationalVlan1, to which this VLAN is being + translational-bridged. If this value and the corresponding + instance of vtpVlanTranslationalVlan1 are both zero, then + this VLAN is not being translational-bridged." + ::= { vtpVlanEntry 12 } + +vtpVlanBridgeType OBJECT-TYPE + SYNTAX INTEGER { srt(1), srb(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the Source Route bridging mode in use on this + VLAN. This object is only instantiated when the value of + the corresponding instance of vtpVlanType has a value of + fddi(2) or tokenRing(3) and Source Routing is in use on + this VLAN." + ::= { vtpVlanEntry 13 } + +vtpVlanAreHopCount OBJECT-TYPE + SYNTAX Integer32 (1..13) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of bridge hops allowed in + All Routes Explorer frames on this VLAN. This + object is only instantiated when the value of the + corresponding instance of vtpVlanType has a value of fddi(2) + or tokenRing(3) and Source Routing is in use on this VLAN." + ::= { vtpVlanEntry 14 } + +vtpVlanSteHopCount OBJECT-TYPE + SYNTAX Integer32 (1..13) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of bridge hops allowed in + Spanning Tree Explorer frames on this VLAN. This + object is only instantiated when the value of the + corresponding instance of vtpVlanType has a value of fddi(2) + or tokenRing(3) and Source Routing is in use on this VLAN." + ::= { vtpVlanEntry 15 } + +vtpVlanIsCRFBackup OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " True if this VLAN is of type trCrf and also is acting as + a backup trCrf for the ISL distributed BRF" + ::= { vtpVlanEntry 16 } + +vtpVlanTypeExt OBJECT-TYPE + SYNTAX VlanTypeExt + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The additional type information of this VLAN." + ::= { vtpVlanEntry 17 } + +vtpVlanIfIndex OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the ifIndex corresponding to this VLAN ID. + If the VLAN ID does not have its corresponding interface, + this object has the value of zero." + ::= { vtpVlanEntry 18 } + +-- Modification of Global VLAN Information +-- +-- To change the global information on current VLANs, including +-- creating, modifying or deleting them, +-- . the current VLAN information is copied to the "Edit buffer", +-- . the information in the Edit buffer is modified as appropriate, +-- . an 'apply' is invoked to attempt to instanciate the modified +-- contents of the Edit Buffer as the new global VLAN information. +-- +-- Only one manager can edit the Edit Buffer at a time. So, a +-- request to copy the current VLAN information into the Edit Buffer +-- must fail if the Edit Buffer is already in use (i.e., is not empty). +-- Thus, concurrent attempts by multiple managers to gain use of the +-- Edit Buffer are resolved according to whichever of them succeeds +-- in performing a successful copy. An OwnerString object provides +-- information on which manager currently has access. +-- +-- Ownership of the Edit Buffer terminates when a NMS explicitly +-- releases it, or when a deadman-timer expires. The deadman-timer +-- has a fixed expiry interval of 5 minutes. The deadman-timer is +-- automatically started on a successful copy operation. The +-- restartTimer operation allows an NMS to restart the deadman-timer +-- if it wishes to retain ownership of the Edit Buffer for longer +-- than 5 minutes. The deadman-timer ceases when the apply operation +-- is invoked, and is restarted when the apply operation terminates. +-- Restarting the deadman-timer after termination of the apply +-- operation allows the results of the apply operation to be retained +-- until the requesting manager has retrieved them, but for only a +-- limited amount of time. + +vlanEdit OBJECT IDENTIFIER ::= { vtpMIBObjects 4 } + +vtpEditControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF VtpEditControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table provides the means to control the editing of the + VLANs for a particular management domain. Each and every + entry in this table augments its corresponding entry in the + managementDomainTable; thus, an entry in this table is + created/deleted only as a by-product of creating/deleting an + entry in the managementDomainTable." + ::= { vlanEdit 1 } + +vtpEditControlEntry OBJECT-TYPE + SYNTAX VtpEditControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Control information for editing the VLANs in one management + domain." + AUGMENTS { managementDomainEntry } + ::= { vtpEditControlTable 1 } + +VtpEditControlEntry ::= SEQUENCE { + vtpVlanEditOperation INTEGER, + vtpVlanApplyStatus INTEGER, + vtpVlanEditBufferOwner OwnerString, + vtpVlanEditConfigRevNumber Gauge32, + vtpVlanEditModifiedVlan VlanIndex +} + +vtpVlanEditOperation OBJECT-TYPE + SYNTAX INTEGER { none(1), + copy(2), + apply(3), + release(4), + restartTimer(5) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object always has the value 'none' when read. When + written, each value causes the appropriate action: + + 'copy' - causes the creation of rows in the + vtpVlanEditTable exactly corresponding to the current global + VLAN information for this management domain. If the Edit + Buffer (for this management domain) is not currently empty, + a copy operation fails. A successful copy operation starts + the deadman-timer. + + 'apply' - first performs a consistent check on the the + modified information contained in the Edit Buffer, and if + consistent, then tries to instanciate the modified + information as the new global VLAN information. Note that + an empty Edit Buffer (for the management domain) would + always result in an inconsistency since the default VLANs + are required to be present. + + 'release' - flushes the Edit Buffer (for this management + domain), clears the Owner information, and aborts the + deadman-timer. A release is generated automatically if the + deadman-timer ever expires. + + 'restartTimer' - restarts the deadman-timer. + + 'none' - no operation is performed." + ::= { vtpEditControlEntry 1 } + +vtpVlanApplyStatus OBJECT-TYPE + SYNTAX INTEGER { inProgress(1), + succeeded(2), + configNumberError(3), + inconsistentEdit(4), + tooBig(5), + localNVStoreFail(6), + remoteNVStoreFail(7), + editBufferEmpty(8), + someOtherError(9) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of an 'apply' operation to instanciate + the Edit Buffer as the new global VLAN information (for this + management domain). If no apply is currently active, the + status represented is that of the most recently completed + apply. The possible values are: + + inProgress - 'apply' operation in progress; + + succeeded - the 'apply' was successful (this value is + also used when no apply has been invoked since the + last time the local system restarted); + + configNumberError - the apply failed because the value of + vtpVlanEditConfigRevNumber was less or equal to + the value of current value of + managementDomainConfigRevNumber; + + inconsistentEdit - the apply failed because the modified + information was not self-consistent; + + tooBig - the apply failed because the modified + information was too large to fit in this VTP + Server's non-volatile storage location; + + localNVStoreFail - the apply failed in trying to store + the new information in a local non-volatile + storage location; + + remoteNVStoreFail - the apply failed in trying to store + the new information in a remote non-volatile + storage location; + + editBufferEmpty - the apply failed because the Edit + Buffer was empty (for this management domain). + + someOtherError - the apply failed for some other reason + (e.g., insufficient memory)." + ::= { vtpEditControlEntry 2 } + +vtpVlanEditBufferOwner OBJECT-TYPE + SYNTAX OwnerString + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The management station which is currently using the Edit + Buffer for this management domain. When the Edit Buffer for + a management domain is not currently in use, the value of + this object is the zero-length string. Note that it is also + the zero-length string if a manager fails to set this object + when invoking a copy operation." + ::= { vtpEditControlEntry 3 } + +vtpVlanEditConfigRevNumber OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The Configuration Revision Number to be used for the next + apply operation. This value is initialized (by the agent) + on a copy operation to be one greater than the value of + managementDomainConfigRevNumber. On an apply, if the + number is less or equal to the value of + managementDomainConfigRevNumber, then the apply fails. + The value can be modified (increased) by network management + before an apply to ensure that an apply does not fail for + this reason. + + This object is used to allow management control over whether + a configuration revision received via a VTP advertisement + after a copy operation but before the succeeding apply + operation is lost by being overwritten by the (local) edit + operation. By default, the apply operation will fail in + this situation. By increasing this object's value after the + copy but before the apply, management can control whether + the apply is to succeed (with the update via VTP + advertisement being lost)." + ::= { vtpEditControlEntry 4 } + +vtpVlanEditModifiedVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The VLAN-id of the modified VLAN in the Edit Buffer. + If the object has the value of zero, any VLAN can + be edited. If the value of the object is not zero, + only this VLAN can be edited. + + The object's value is reset to zero after a successful + 'apply' operation or a 'release' operation. + + This object is only supported for devices which allow + only one VLAN editing for each 'apply' operation. For + devices which allow multiple VLAN editing for each + 'apply' operation, this object is not supported." + + ::= { vtpEditControlEntry 5 } + +vtpVlanEditTable OBJECT-TYPE + SYNTAX SEQUENCE OF VtpVlanEditEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table which contains the information in the Edit + Buffers, one Edit Buffer per management domain. The + information for a particular management domain is + initialized, by a 'copy' operation, to be the current global + VLAN information for that management domain. After + initialization, editing can be performed to add VLANs, + delete VLANs, or modify their global parameters. The + information as modified through editing is local to this + Edit Buffer. An apply operation using the + vtpVlanEditOperation object is necessary to instanciate the + modified information as the new global VLAN information for + that management domain. + + To use the Edit Buffer, a manager acts as follows: + + 1. ensures the Edit Buffer for a management domain is empty, + i.e., there are no rows in this table for this management + domain. + + 2. issues a SNMP set operation which sets + vtpVlanEditOperation to 'copy', and vtpVlanEditBufferOwner + to its own identifier (e.g., its own IP address). + + 3. if this set operation is successful, proceeds to edit the + information in the vtpVlanEditTable. + + 4. if and when the edited information is to be instantiated, + issues a SNMP set operation which sets vtpVlanEditOperation + to 'apply'. + + 5. issues retrieval requests to obtain the value of + vtpVlanApplyStatus, until the result of the apply is + determined. + + 6. releases the Edit Buffer by issuing a SNMP set operation + which sets vtpVlanEditOperation to 'release'. + + Note that the information contained in this table is not + saved across agent reboots." + ::= { vlanEdit 2 } + +vtpVlanEditEntry OBJECT-TYPE + SYNTAX VtpVlanEditEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about one VLAN in the Edit Buffer for a + particular management domain." + INDEX { managementDomainIndex, vtpVlanEditIndex } + ::= { vtpVlanEditTable 1 } + +VtpVlanEditEntry ::= SEQUENCE { + vtpVlanEditIndex VlanIndex, + vtpVlanEditState INTEGER, + vtpVlanEditType VlanType, + vtpVlanEditName DisplayString, + vtpVlanEditMtu Integer32, + vtpVlanEditDot10Said OCTET STRING, + vtpVlanEditRingNumber Integer32, + vtpVlanEditBridgeNumber Integer32, + vtpVlanEditStpType INTEGER, + vtpVlanEditParentVlan VlanIndex, + vtpVlanEditRowStatus RowStatus, + vtpVlanEditTranslationalVlan1 VlanIndex, + vtpVlanEditTranslationalVlan2 VlanIndex, + vtpVlanEditBridgeType INTEGER, + vtpVlanEditAreHopCount Integer32, + vtpVlanEditSteHopCount Integer32, + vtpVlanEditIsCRFBackup TruthValue, + vtpVlanEditTypeExt VlanTypeExt, + vtpVlanEditTypeExt2 VlanTypeExt +} + +vtpVlanEditIndex OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The VLAN-id which this VLAN would have on ISL trunks." + ::= { vtpVlanEditEntry 1 } + +vtpVlanEditState OBJECT-TYPE + SYNTAX INTEGER { + operational(1), + suspended(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The state which this VLAN would have." + DEFVAL { operational } + ::= { vtpVlanEditEntry 2 } + +vtpVlanEditType OBJECT-TYPE + SYNTAX VlanType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The type which this VLAN would have. + An implementation may restrict access to this object." + DEFVAL { ethernet } + ::= { vtpVlanEditEntry 3 } + +vtpVlanEditName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The name which this VLAN would have. This name would be + used as the ELAN-name for an ATM LAN-Emulation segment of + this VLAN. + + An implementation may restrict access to this object." + ::= { vtpVlanEditEntry 4 } + +vtpVlanEditMtu OBJECT-TYPE + SYNTAX Integer32 (1500..18190) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The MTU size which this VLAN would have, defined as the + size of largest MAC-layer (information field portion of the) + data frame which can be transmitted on the VLAN. + + An implementation may restrict access to this object." + DEFVAL { 1500 } + ::= { vtpVlanEditEntry 5 } + +vtpVlanEditDot10Said OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (4)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of the 802.10 SAID field which would be used for + this VLAN. + + An implementation may restrict access to this object." + ::= { vtpVlanEditEntry 6 } + +vtpVlanEditRingNumber OBJECT-TYPE + SYNTAX Integer32 (0..4095) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The ring number which would be used for this VLAN. This + object is only instantiated when the value of the + corresponding instance of vtpVlanEditType has a value of + 'fddi' or 'tokenRing' and Source Routing is in use on + this VLAN." + ::= { vtpVlanEditEntry 7 } + +vtpVlanEditBridgeNumber OBJECT-TYPE + SYNTAX Integer32 (0..15) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The bridge number of the VTP-capable switches which would + be used for this VLAN. This object is only instantiated + when the value of the corresponding instance of + vtpVlanEditType has a value of fddiNet(4) or trNet(5)." + ::= { vtpVlanEditEntry 8 } + +vtpVlanEditStpType OBJECT-TYPE + SYNTAX INTEGER { ieee(1), ibm(2), auto(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The type of the Spanning Tree Protocol which would be + running on this VLAN. This object is only instantiated when + the value of the corresponding instance of vtpVlanEditType + has a value of fddiNet(4) or trNet(5). + + If 'ieee' is selected, the STP that runs will be IEEE. + + If 'ibm' is selected, the STP that runs will be IBM. + + If 'auto' is selected, the STP that runs will be + dependant on the values of vtpVlanEditBridgeType for all + children tokenRing/fddi type VLANs. This will result in + a 'hybrid' STP (see vtpVlanStpType)." + ::= { vtpVlanEditEntry 9 } + +vtpVlanEditParentVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The VLAN index of the VLAN which would be the parent for + this VLAN. This object is only instantiated when the value + of the corresponding instance of vtpVlanEditType has a value + of 'fddi' or 'tokenRing' and Source Routing is in use on + this VLAN. The parent VLAN must have a vtpVlanEditType + value of fddiNet(4) or trNet(5), respectively." + ::= { vtpVlanEditEntry 10 } + +vtpVlanEditRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this row. Any and all columnar objects in an + existing row can be modified irrespective of the status of + the row. + + A row is not qualified for activation until instances of at + least its vtpVlanEditType, vtpVlanEditName and + vtpVlanEditDot10Said columns have appropriate values. + + The management station should endeavor to make all rows + consistent in the table before 'apply'ing the buffer. An + inconsistent entry in the table will cause the entire + buffer to be rejected with the vtpVlanApplyStatus object + set to the appropriate error value." + ::= { vtpVlanEditEntry 11 } + +vtpVlanEditTranslationalVlan1 OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A VLAN to which this VLAN would be translational-bridged. + If this value and the corresponding instance of + vtpVlanTranslationalVlan2 are both zero, then this VLAN + would not be translational-bridged. + + An implementation may restrict access to this object." + DEFVAL { 0 } + ::= { vtpVlanEditEntry 12 } + +vtpVlanEditTranslationalVlan2 OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Another VLAN, i.e., other than that indicated by + vtpVlanEditTranslationalVlan1, to which this VLAN would be + translational-bridged. If this value and the corresponding + instance of vtpVlanTranslationalVlan1 are both zero, then + this VLAN would not be translational-bridged. + + An implementation may restrict access to this object." + DEFVAL { 0 } + ::= { vtpVlanEditEntry 13 } + +vtpVlanEditBridgeType OBJECT-TYPE + SYNTAX INTEGER { srt(1), srb(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The type of Source Route bridging mode which would be in + use on this VLAN. This object is only instantiated when + the value of the corresponding instance of vtpVlanEditType + has a value of fddi(2) or tokenRing(3) and Source Routing + is in use on this VLAN." + ::= { vtpVlanEditEntry 14 } + +vtpVlanEditAreHopCount OBJECT-TYPE + SYNTAX Integer32 (1..13) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of bridge hops allowed in + All Routes Explorer frames on this VLAN. This + object is only instantiated when the value of the + corresponding instance of vtpVlanType has a value of fddi(2) + or tokenRing(3) and Source Routing is in use on this VLAN." + ::= { vtpVlanEditEntry 15 } + +vtpVlanEditSteHopCount OBJECT-TYPE + SYNTAX Integer32 (1..13) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of bridge hops allowed in + Spanning Tree Explorer frames on this VLAN. This + object is only instantiated when the value of the + corresponding instance of vtpVlanType has a value of fddi(2) + or tokenRing(3) and Source Routing is in use on this VLAN." + ::= { vtpVlanEditEntry 16} + +vtpVlanEditIsCRFBackup OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + " True if this VLAN is of type trCrf and also is acting as + a backup trCrf for the ISL distributed BRF. This object is + only instantiated when the value of the corresponding + instance of vtpVlanEditType has a value of tokenRing(3)." + ::= { vtpVlanEditEntry 17 } + +vtpVlanEditTypeExt OBJECT-TYPE + SYNTAX VlanTypeExt + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The additional type information of this VLAN." + ::= { vtpVlanEditEntry 18 } + +vtpVlanEditTypeExt2 OBJECT-TYPE + SYNTAX VlanTypeExt + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The additional type information of this VLAN. + The VlanTypeExt TC specifies which bits may + be written by a management application. + The agent should provide a default value." + ::= { vtpVlanEditEntry 19 } + +-- +-- VTP Statistics +-- + +vtpStats OBJECT IDENTIFIER ::= { vtpMIBObjects 5 } + +vtpStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF VtpStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of VTP statistics." + ::= { vtpStats 1 } + +vtpStatsEntry OBJECT-TYPE + SYNTAX VtpStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VTP statistics for one management domain." + AUGMENTS { managementDomainEntry } + ::= { vtpStatsTable 1 } + +VtpStatsEntry ::= SEQUENCE { + vtpInSummaryAdverts Counter32, + vtpInSubsetAdverts Counter32, + vtpInAdvertRequests Counter32, + vtpOutSummaryAdverts Counter32, + vtpOutSubsetAdverts Counter32, + vtpOutAdvertRequests Counter32, + vtpConfigRevNumberErrors Counter32, + vtpConfigDigestErrors Counter32 +} + +vtpInSummaryAdverts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of VTP Summary Adverts received for this + management domain." + ::= { vtpStatsEntry 1 } + +vtpInSubsetAdverts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of VTP Subset Adverts received for this + management domain." + ::= { vtpStatsEntry 2 } + +vtpInAdvertRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of VTP Advert Requests received for this + management domain." + ::= { vtpStatsEntry 3 } + +vtpOutSummaryAdverts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of VTP Summary Adverts sent for this + management domain." + ::= { vtpStatsEntry 4 } + +vtpOutSubsetAdverts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of VTP Subset Adverts sent for this + management domain." + ::= { vtpStatsEntry 5 } + +vtpOutAdvertRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of VTP Advert Requests sent for this + management domain." + ::= { vtpStatsEntry 6 } + +vtpConfigRevNumberErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occurrences of configuration revision number + errors for this management domain. A configuration revision + number error occurs when a device receives a VTP + advertisement for which: + + - the advertisement's Configuration Revision Number is the + same as the current locally-held value, and + + - the advertisement's digest value is different from the + current locally-held value." + ::= { vtpStatsEntry 7 } + +vtpConfigDigestErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of occurrences of configuration digest errors + for this management domain. A configuration digest error + occurs when a device receives a VTP advertisement for which: + + - the advertisement's Configuration Revision Number is + greater than the current locally-held value, and + + - the advertisement's digest value does not match the VLAN + information assumed by the receiver of the advertisement, + where the infomation assumed is the combination of the + information explicitly contained in the advertisement plus + any omitted information as currently known by the + receiving device." + ::= { vtpStatsEntry 8 } + +-- Trunk Ports + +vlanTrunkPorts OBJECT IDENTIFIER ::= { vtpMIBObjects 6 } + +vlanTrunkPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanTrunkPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table containing information on the local system's VLAN + trunk ports." + ::= { vlanTrunkPorts 1 } + +vlanTrunkPortEntry OBJECT-TYPE + SYNTAX VlanTrunkPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about one trunk port." + INDEX { vlanTrunkPortIfIndex } + ::= { vlanTrunkPortTable 1 } + +VlanTrunkPortEntry ::= SEQUENCE { + vlanTrunkPortIfIndex InterfaceIndex, + vlanTrunkPortManagementDomain ManagementDomainIndex, + vlanTrunkPortEncapsulationType INTEGER, + vlanTrunkPortVlansEnabled OCTET STRING, + vlanTrunkPortNativeVlan VlanIndex, + vlanTrunkPortRowStatus RowStatus, + vlanTrunkPortInJoins Counter32, + vlanTrunkPortOutJoins Counter32, + vlanTrunkPortOldAdverts Counter32, + vlanTrunkPortVlansPruningEligible OCTET STRING, + vlanTrunkPortVlansXmitJoined OCTET STRING, + vlanTrunkPortVlansRcvJoined OCTET STRING, + vlanTrunkPortDynamicState INTEGER, + vlanTrunkPortDynamicStatus INTEGER, + vlanTrunkPortVtpEnabled TruthValue, + vlanTrunkPortEncapsulationOperType INTEGER, + vlanTrunkPortVlansEnabled2k OCTET STRING, + vlanTrunkPortVlansEnabled3k OCTET STRING, + vlanTrunkPortVlansEnabled4k OCTET STRING, + vtpVlansPruningEligible2k OCTET STRING, + vtpVlansPruningEligible3k OCTET STRING, + vtpVlansPruningEligible4k OCTET STRING, + vlanTrunkPortVlansXmitJoined2k OCTET STRING, + vlanTrunkPortVlansXmitJoined3k OCTET STRING, + vlanTrunkPortVlansXmitJoined4k OCTET STRING, + vlanTrunkPortVlansRcvJoined2k OCTET STRING, + vlanTrunkPortVlansRcvJoined3k OCTET STRING, + vlanTrunkPortVlansRcvJoined4k OCTET STRING, + vlanTrunkPortDot1qTunnel INTEGER +} + +vlanTrunkPortIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of ifIndex for the interface corresponding to + this trunk port." + ::= { vlanTrunkPortEntry 1 } + +vlanTrunkPortManagementDomain OBJECT-TYPE + SYNTAX ManagementDomainIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of managementDomainIndex for the management + domain on this trunk port. Devices which support only one + management domain will support this object read-only." + ::= { vlanTrunkPortEntry 2 } + +vlanTrunkPortEncapsulationType OBJECT-TYPE + SYNTAX INTEGER { isl(1), dot10(2), lane(3), dot1Q(4), negotiate(5) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The type of VLAN encapsulation desired to be used on this trunk + port. It is either a particular type, or 'negotiate' meaning + whatever type results from the negotiation. negotiate(5) is not + allowed if the port does not support negotiation or if its + vlanTrunkPortDynamicState is set to on(1) or onNoNegotiate(5). + Whether writing to this object in order to modify the encapsulation + is supported is both device and interface specific." + ::= { vlanTrunkPortEntry 3 } + +vlanTrunkPortVlansEnabled OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN in the + management domain on this trunk port. The first octet + corresponds to VLANs with VlanIndex values of 0 through 7; + the second octet to VLANs 8 through 15; etc. The most + significant bit of each octet corresponds to the lowest + value VlanIndex in that octet. If the bit corresponding to + a VLAN is set to '1', then the local system is enabled for + sending and receiving frames on that VLAN; if the bit is set + to '0', then the system is disabled from sending and + receiving frames on that VLAN. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 4 } + +vlanTrunkPortNativeVlan OBJECT-TYPE + SYNTAX VlanIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The VlanIndex of the VLAN which is represented by native + frames on this trunk port. For trunk ports not supporting + the sending and receiving of native frames, this value + should be set to zero." + ::= { vlanTrunkPortEntry 5 } + +vlanTrunkPortRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of this row. In some circumstances, the + creation of a row in this table is needed to enable the + appropriate trunking/tagging protocol on the port, to enable + the use of VTP on the port, and to assign the port to the + appropriate management domain. In other circumstances, rows + in this table will be created as a by-product of other + operations." + ::= { vlanTrunkPortEntry 6 } + +vlanTrunkPortInJoins OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VTP Join messages received on this trunk + port." + ::= { vlanTrunkPortEntry 7 } + +vlanTrunkPortOutJoins OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VTP Join messages sent on this trunk port." + ::= { vlanTrunkPortEntry 8 } + +vlanTrunkPortOldAdverts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VTP Advertisement messages which indicated + the sender does not support VLAN-pruning received on this + trunk port." + ::= { vlanTrunkPortEntry 9 } + +vlanTrunkPortVlansPruningEligible OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN in the + management domain on this trunk port. The first octet + corresponds to VLANs with VlanIndex values of 0 through 7; + the second octet to VLANs 8 through 15; etc. The most + significant bit of each octet corresponds to the lowest + value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local system is permitted to prune that VLAN on this trunk + port; if the bit is set to '0', then the system must not + prune that VLAN on this trunk port. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 10 } + +vlanTrunkPortVlansXmitJoined OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN in the + management domain on this trunk port. The first octet + corresponds to VLANs with VlanIndex values of 0 through 7; + the second octet to VLANs 8 through 15; etc. The most + significant bit of each octet corresponds to the lowest + value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then this + VLAN is presently being forwarded on this trunk port, i.e., + it is not pruned; if the bit is set to '0', then this VLAN + is presently not being forwarded on this trunk port, either + because it is pruned or for some other reason." + ::= { vlanTrunkPortEntry 11 } + +vlanTrunkPortVlansRcvJoined OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN in the + management domain on this trunk port. The first octet + corresponds to VLANs with VlanIndex values of 0 through 7; + the second octet to VLANs 8 through 15; etc. The most + significant bit of each octet corresponds to the lowest + value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local switch is currently sending joins for this VLAN on + this trunk port, i.e., it is asking to receive frames for + this VLAN; if the bit is set to '0', then the local switch + is not currently sending joins for this VLAN on this trunk + port." + ::= { vlanTrunkPortEntry 12 } + +vlanTrunkPortDynamicState OBJECT-TYPE + SYNTAX INTEGER { on(1), off(2), desirable(3), auto(4), onNoNegotiate(5) +} + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "For devices that allows dynamic determination of whether + a link between two switches should be a trunk or not, this object + allows the operator to mandate the behavior of that dynamic + mechanism. + + on(1) dictates that the interface will always be a + trunk. This is the value for static entries (those that + show no dynamic behavior). If the negotiation is supported on this + port, negotiation will take place with the far end to attempt + to bring the far end into trunking state. + + off(2) allows an operator to specify that the specified + interface is never to be trunk, regardless of any dynamic + mechanisms to the contrary. This value is useful for + overriding the default behavior of some switches. If the + negotiation is supported on this port, negotiation will take place + with the far end to attempt on the link to bring the far end into + non-trunking state. + + desirable(3) is used to indicate that it is desirable for + the interface to become a trunk. The device will initiate + any negotiation necessary to become a trunk but will not + become a trunk unless it receives confirmation from the far + end on the link. + + auto(4) is used to indicate that the interface is capable + and willing to become a trunk but will not initiate + trunking negotiations. The far end on the link are + required to either start negotiations or start sending + encapsulated packets, on which event the specified + interface will become a trunk. + + onNoNegotiate(5) is used to indicate that the interface is permanently + set to be a trunk, and no negotiation takes place with the + far end on the link to ensure consistent operation. This is similar + to on(1) except no negotiation takes place with the far end. + + If the port does not support negotiation or its + vlanTrunkPortEncapsulationType is set to negotiate(5), + onNoNegotiate(5) is not allowed. + + Devices that do no support dynamic determination (for just + a particular interface, encapsulation or for the whole + device) need only support the 'on', and 'off' values." + ::= { vlanTrunkPortEntry 13 } + +vlanTrunkPortDynamicStatus OBJECT-TYPE + SYNTAX INTEGER { trunking(1), notTrunking(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Indicates whether the specified interface is either + acting as a trunk or not. This is a result of the + vlanTrunkPortDynamicState and the ifOperStatus of the + trunk port itself." + ::= { vlanTrunkPortEntry 14 } + +vlanTrunkPortVtpEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + " Some trunk interface modules allow VTP to be + enabled/disabled seperately from that of the central + device. In such a case this object provides management a + way to remotely enable VTP on that module. If a module + does not support a seperate VTP enabled state then this + object shall always return 'true' and will accept no other + value during a SET operation." + ::= { vlanTrunkPortEntry 15 } + +vlanTrunkPortEncapsulationOperType OBJECT-TYPE + SYNTAX INTEGER { isl(1), dot10(2), lane(3), dot1Q(4), negotiating(5), + notApplicable(6) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of VLAN encapsulation in use on this trunk port. + For intefaces with vlanTrunkPortDynamicStatus of + notTrunking(2) the vlanTrunkPortEncapsulationOperType shall + be notApplicable(6). " + ::= { vlanTrunkPortEntry 16 } + +vlanTrunkPortVlansEnabled2k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 1024 through 2047 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 1024 through 1031; the second octet to + VLANs 1032 through 1039; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + If the bit corresponding to a VLAN is set to '1', then the + local system is enabled for sending and receiving frames on + that VLAN; if the bit is set to '0', then the system is disabled + from sending and receiving frames on that VLAN. + The default value is zero length string. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 17 } + +vlanTrunkPortVlansEnabled3k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 2048 through 3071 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 2048 through 2055; the second octet to + VLANs 2056 through 2063; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + If the bit corresponding to a VLAN is set to '1', then the + local system is enabled for sending and receiving frames on + that VLAN; if the bit is set to '0', then the system is disabled + from sending and receiving frames on that VLAN. + The default value is zero length string. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 18 } + +vlanTrunkPortVlansEnabled4k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 3072 through 4095 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 3072 through 3079; the second octet to + VLANs 3080 through 3087; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + If the bit corresponding to a VLAN is set to '1', then the + local system is enabled for sending and receiving frames on + that VLAN; if the bit is set to '0', then the system is disabled + from sending and receiving frames on that VLAN. + The default value is zero length string. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 19 } + +vtpVlansPruningEligible2k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 1024 through 2047 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 1024 through 1031; the second octet to + VLANs 1032 through 1039; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local system is permitted to prune that VLAN on this trunk + port; if the bit is set to '0', then the system must not + prune that VLAN on this trunk port. + The default value is zero length string. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 20 } + +vtpVlansPruningEligible3k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 2048 through 3071 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 2048 through 2055; the second octet to + VLANs 2056 through 2063; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local system is permitted to prune that VLAN on this trunk + port; if the bit is set to '0', then the system must not + prune that VLAN on this trunk port. + The default value is zero length string. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 21 } + +vtpVlansPruningEligible4k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 3072 through 4095 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 3072 through 3079; the second octet to + VLANs 3080 through 3087; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local system is permitted to prune that VLAN on this trunk + port; if the bit is set to '0', then the system must not + prune that VLAN on this trunk port. + The default value is zero length string. + + To avoid conflicts between overlapping partial updates by + multiple managers, i.e., updates which modify only a portion + of an instance of this object (e.g., enable/disable a single + VLAN on the trunk port), any SNMP Set operation accessing an + instance of this object should also write the value of + vlanTrunkPortSetSerialNo." + ::= { vlanTrunkPortEntry 22 } + +vlanTrunkPortVlansXmitJoined2k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 1024 through 2047 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 1024 through 1031; the second octet to + VLANs 1032 through 1039; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then this + VLAN is presently being forwarded on this trunk port, i.e., + it is not pruned; if the bit is set to '0', then this VLAN + is presently not being forwarded on this trunk port, either + because it is pruned or for some other reason." + ::= { vlanTrunkPortEntry 23 } + +vlanTrunkPortVlansXmitJoined3k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 2048 through 3071 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 2048 through 2055; the second octet to + VLANs 2056 through 2063; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then this + VLAN is presently being forwarded on this trunk port, i.e., + it is not pruned; if the bit is set to '0', then this VLAN + is presently not being forwarded on this trunk port, either + because it is pruned or for some other reason." + ::= { vlanTrunkPortEntry 24 } + +vlanTrunkPortVlansXmitJoined4k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 3072 through 4095 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 3072 through 3079; the second octet to + VLANs 3080 through 3087; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then this + VLAN is presently being forwarded on this trunk port, i.e., + it is not pruned; if the bit is set to '0', then this VLAN + is presently not being forwarded on this trunk port, either + because it is pruned or for some other reason." + ::= { vlanTrunkPortEntry 25 } + +vlanTrunkPortVlansRcvJoined2k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 1024 through 2047 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 1024 through 1031; the second octet to + VLANs 1032 through 1039; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local switch is currently sending joins for this VLAN on + this trunk port, i.e., it is asking to receive frames for + this VLAN; if the bit is set to '0', then the local switch + is not currently sending joins for this VLAN on this trunk + port." + ::= { vlanTrunkPortEntry 26 } + +vlanTrunkPortVlansRcvJoined3k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 2048 through 3071 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 2048 through 2055; the second octet to + VLANs 2056 through 2063; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local switch is currently sending joins for this VLAN on + this trunk port, i.e., it is asking to receive frames for + this VLAN; if the bit is set to '0', then the local switch + is not currently sending joins for this VLAN on this trunk + port." + ::= { vlanTrunkPortEntry 27 } + +vlanTrunkPortVlansRcvJoined4k OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string of octets containing one bit per VLAN for VLANS + with VlanIndex values of 3072 through 4095 in the management + domain on this trunk port. The first octet corresponds to VLANs + with VlanIndex values of 3072 through 3079; the second octet to + VLANs 3080 through 3087; etc. The most significant bit of + each octet corresponds to the lowest value VlanIndex in that octet. + + If the bit corresponding to a VLAN is set to '1', then the + local switch is currently sending joins for this VLAN on + this trunk port, i.e., it is asking to receive frames for + this VLAN; if the bit is set to '0', then the local switch + is not currently sending joins for this VLAN on this trunk + port." + ::= { vlanTrunkPortEntry 28 } + +vlanTrunkPortDot1qTunnel OBJECT-TYPE + SYNTAX INTEGER { trunk(1), access(2), disabled(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Indicates dot1qtunnel mode of the port. + + If the portDot1qTunnel is set to 'trunk' mode, the port's + vlanTrunkPortDynamicState will be changed to 'onNoNegotiate' + and the vlanTrunkPortEncapsulationType will be set to 'dot1Q'. + These values cannot be changed unless dot1q tunnel is + disabled on this port. + + If the portDot1qTunnel mode is set to 'access' mode, the port's + vlanTrunkPortDynamicState will be set to 'off'.And the value of + vlanTrunkPortDynamicState cannot be changed unless dot1q tunnel + is disabled on this port. 1Q packets received on this access + port will remain. + + Setting the port to dot1q tunnel 'disabled' mode causes the + dot1q tunnel feature to be disabled on this port. This object + can't be set to 'trunk' or 'access' mode, when + vlanTrunkPortsDot1qTag object is set to 'false'." + DEFVAL { disabled } + ::= { vlanTrunkPortEntry 29 } + +vlanTrunkPortSetSerialNo OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An advisory lock used to allow several cooperating SNMPv2 + managers to coordinate their use of the SNMPv2 set operation + acting upon any instance of vlanTrunkPortVlansEnabled." + ::= { vlanTrunkPorts 2 } + +vlanTrunkPortsDot1qTag OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An indication of whether the tagging on all VLANs including + native VLAN for all 802.1q trunks is enabled. + + If this object has a value of true(1) then all VLANs including + native VLAN are tagged. If the value is false(2) then all VLANs + excluding native VLAN are tagged." + DEFVAL { false } + ::= { vlanTrunkPorts 3 } + +-- VTP notifications + +vtpNotifications OBJECT IDENTIFIER ::= { ciscoVtpMIB 2 } +vtpNotificationsPrefix + OBJECT IDENTIFIER ::= { vtpNotifications 0 } +vtpNotificationsObjects + OBJECT IDENTIFIER ::= { vtpNotifications 1 } + +vtpConfigRevNumberError NOTIFICATION-TYPE + OBJECTS { managementDomainConfigRevNumber } + STATUS current + DESCRIPTION + "A configuration revision number error notification + signifies that a device has incremented its + vtpConfigRevNumberErrors counter. + + Generation of this notification is suppressed if the + vtpNotificationsEnabled has the value 'false'. + + The device must throttle the generation of consecutive + vtpConfigRevNumberError notifications so that there is at + least a five-second gap between notification of this type. + When notification are throttled, they are dropped, not + queued for sending at a future time. (Note that + 'generating' a notification means sending to all configured + recipients.)" + ::= { vtpNotificationsPrefix 1 } + +vtpConfigDigestError NOTIFICATION-TYPE + OBJECTS { managementDomainConfigRevNumber } + STATUS current + DESCRIPTION + "A configuration digest error notification signifies that a + device has incremented its vtpConfigDigestErrors counter. + + Generation of this notification is suppressed if the + vtpNotificationsEnabled has the value 'false'. + + The device must throttle the generation of consecutive + vtpConfigDigestError notifications so that there is at least + a five-second gap between notification of this type. When + notification are throttled, they are dropped, not queued for + sending at a future time. (Note that 'generating' a + notification means sending to all configured recipients.)" + ::= { vtpNotificationsPrefix 2 } + +vtpServerDisabled NOTIFICATION-TYPE + OBJECTS { managementDomainConfigRevNumber, vtpMaxVlanStorage } + STATUS current + DESCRIPTION + "A VTP Server disabled notification is generated when the + local system is no longer able to function as a VTP Server + because the number of defined VLANs is greater than + vtpMaxVlanStorage. + + Generation of this notification is suppressed if the + vtpNotificationsEnabled has the value 'false'." + ::= { vtpNotificationsPrefix 3 } + +vtpMtuTooBig NOTIFICATION-TYPE + OBJECTS { vlanTrunkPortManagementDomain, vtpVlanState } + STATUS current + DESCRIPTION + "A VTP MTU tooBig notification is generated when a VLAN's + MTU size is larger than can be supported either: + + - by one or more of its trunk ports: + the included vtpVlanState has the value + 'mtuTooBigForTrunk' and the included + vlanTrunkPortManagementDomain is for the first (or only) + trunk port, + or + + - by the device itself: + vtpVlanState has the value 'mtuTooBigForDevice' and any + instance of vlanTrunkPortManagementDomain is included. + + Devices which have no trunk ports do not send vtpMtuTooBig + notifications. + + Generation of this notification is suppressed if the + vtpNotificationsEnabled has the value 'false'." + ::= { vtpNotificationsPrefix 4 } + +vtpVlanRingNumberConfigConflict NOTIFICATION-TYPE + OBJECTS { vtpVlanIndex, vtpVlanRingNumber, + ifIndex, vtpVlanPortLocalSegment } + STATUS current + DESCRIPTION + "A VTP ring number configuration conflict notification is + generated if, and only at the time when, a device learns of + a conflict between: + + a) the ring number (vtpVlanPortLocalSegment) being used on a + token ring segment attached to the port identified by + ifIndex, and + + b) the VTP-obtained ring number (vtpVlanRingNumber) for the + VLAN identified by vtpVlanIndex. + + When such a conflict occurs, the bridge port is put into an + administrative down position until the conflict is resolved + through local/network management intervention. + + This notification is only applicable to VLANs of type + 'tokenRing'." + ::= { vtpNotificationsPrefix 5 } + +vtpVersionOneDeviceDetected NOTIFICATION-TYPE + OBJECTS { vlanTrunkPortManagementDomain } + STATUS current + DESCRIPTION + "A VTP version one device detected notification is + generated by a device when: + + a) a management domain has been put into version 2 mode + (as accessed by managementDomainVersionInUse). + b) 15 minutes has passed since a). + c) a version 1 PDU is detected on a trunk on the device + that is in that management domain which has a lower + revision number than the current configuration." + ::= { vtpNotificationsPrefix 6 } + +vlanTrunkPortDynamicStatusChange NOTIFICATION-TYPE + OBJECTS {vlanTrunkPortDynamicStatus} + STATUS current + DESCRIPTION + "A vlanTrunkPortDynamicStatusChange notification is + generated by a device when the value of + vlanTrunkPortDynamicStatus object has been changed." + ::= { vtpNotificationsPrefix 7 } + +vtpVlanPortLocalSegment OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ring (segment) number in use on a 802.5 ring. For + bridges supporting RFC 1525, this value is the same as given + by dot1dSrPortLocalSegment for the bridge port attached to + that ring. When tokenRing VLANs are in use, each 'trNet' + VLAN can/does have a different instance of + dot1dSrPortLocalSegment for each physical port. Note that + access to the particuler instance of dot1dSrPortLocalSegment + requires knowledge of how the agent supports the multiple + 'contexts' required to implement RFC 1525 for multiple + VLANs; also note that the assignment of ifIndex values may + be different in different 'contexts'." + ::= { vtpNotificationsObjects 1 } + +-- Conformance Information + +vtpMIBConformance + OBJECT IDENTIFIER ::= { ciscoVtpMIB 3 } + +vtpMIBCompliances + OBJECT IDENTIFIER ::= { vtpMIBConformance 1 } +vtpMIBGroups OBJECT IDENTIFIER ::= { vtpMIBConformance 2 } + +-- compliance statements + +vtpMIBCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for VTP implementations." + MODULE -- this module + MANDATORY-GROUPS { vtpBasicGroup, + vtpVlanInfoGroup, +-- vtpConfigNotificationsGroup, + vtpStatsGroup, + vtpTrunkPortGroup + } + + OBJECT managementDomainRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortManagementDomain + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortEncapsulationType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortNativeVlan + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + GROUP vtpVlanInfoEditGroup + DESCRIPTION + "This group must be implemented by VTP Servers. + VTP Clients need not implement these objects, and + must not allow VLANs to be created, modified, or + destroyed using these objects." + + ::= { vtpMIBCompliances 1 } + +vtpMIBCompliance2 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for VTP implementations." + MODULE -- this module + MANDATORY-GROUPS { vtpBasicGroup, + vtpVlanInfoGroup, +-- vtpConfigNotificationsGroup, + vtpStatsGroup, + vtpTrunkPortGroup + } + + OBJECT managementDomainRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortManagementDomain + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortEncapsulationType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortNativeVlan + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + GROUP vtpVlanInfoEditGroup + DESCRIPTION + "This group must be implemented by VTP Servers. + VTP Clients need not implement these objects, and + must not allow VLANs to be created, modified, or + destroyed using these objects." + + GROUP vtp4kVlanGroup + DESCRIPTION + "This group must be implemented by the VTP Servers + which support the range of VlanIndex between 1024 + and 4095." + ::= { vtpMIBCompliances 2 } + +vtpMIBCompliance3 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for VTP implementations." + MODULE -- this module + MANDATORY-GROUPS { vtpBasicGroup, + vtpVlanInfoGroup, +-- vtpConfigNotificationsGroup, + vtpStatsGroup, + vtpTrunkPortGroup + } + + OBJECT managementDomainRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortManagementDomain + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortEncapsulationType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortNativeVlan + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + GROUP vtpVlanInfoEditGroup + DESCRIPTION + "This group must be implemented by VTP Servers. + VTP Clients need not implement these objects, and + must not allow VLANs to be created, modified, or + destroyed using these objects." + + GROUP vtp4kVlanGroup + DESCRIPTION + "This group must be implemented by the VTP Servers + which support the range of VlanIndex between 1024 + and 4095." + + GROUP vtpDot1qTunnelGroup + DESCRIPTION + "This group is mandatory for all the ports which + implement dot1qtunnel feature." + + OBJECT vlanTrunkPortDot1qTunnel + MIN-ACCESS read-only + DESCRIPTION + "This object is read-only for interface which doesn't + support dot1q tunnel feature." + + ::= { vtpMIBCompliances 3 } + +vtpMIBCompliance4 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for VTP implementations." + MODULE -- this module + MANDATORY-GROUPS { vtpBasicGroup, + vtpVlanInfoGroup, +-- vtpConfigNotificationsGroup, + vtpStatsGroup, + vtpTrunkPortGroup + } + + OBJECT managementDomainRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortManagementDomain + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortEncapsulationType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortNativeVlan + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + GROUP vtpVlanInfoEditGroup + DESCRIPTION + "This group must be implemented by VTP Servers. + VTP Clients need not implement these objects, and + must not allow VLANs to be created, modified, or + destroyed using these objects." + + GROUP vtp4kVlanGroup + DESCRIPTION + "This group must be implemented by the VTP Servers + which support the range of VlanIndex between 1024 + and 4095." + + GROUP vtpDot1qTunnelGroup + DESCRIPTION + "This group is mandatory for all the ports which + implement dot1qtunnel feature." + + OBJECT vlanTrunkPortDot1qTunnel + MIN-ACCESS read-only + DESCRIPTION + "This object is read-only for interface which doesn't + support dot1q tunnel feature." + + GROUP vtpVlanIfIndexGroup + DESCRIPTION + "This group is an optional group containing + objects providing information about the mapping + of VLAN ID to its corresponding IfIndex." + + ::= { vtpMIBCompliances 4 } + +vtpMIBCompliance5 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "The compliance statement for VTP implementations." + MODULE -- this module + MANDATORY-GROUPS { vtpBasicGroup, + vtpVlanInfoGroup, +-- vtpConfigNotificationsGroup, + vtpStatsGroup, + vtpTrunkPortGroup, + vtpVersion2BasicGroup + } + + OBJECT managementDomainRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT managementDomainName + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainLocalMode + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainTftpServer + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainTftpPathname + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainVersionInUse + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT vlanTrunkPortManagementDomain + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortEncapsulationType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortNativeVlan + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + GROUP vtpVlanInfoEditGroup + DESCRIPTION + "This group must be implemented by VTP Servers. + VTP Clients need not implement these objects, and + must not allow VLANs to be created, modified, or + destroyed using these objects." + + GROUP vtp4kVlanGroup + DESCRIPTION + "This group must be implemented by the VTP Servers + which support the range of VlanIndex between 1024 + and 4095." + + GROUP vtpDot1qTunnelGroup + DESCRIPTION + "This group is mandatory for all the ports which + implement dot1qtunnel feature." + + OBJECT vlanTrunkPortDot1qTunnel + MIN-ACCESS read-only + DESCRIPTION + "This object is read-only for interface which doesn't + support dot1q tunnel feature." + + GROUP vtpVlanIfIndexGroup + DESCRIPTION + "This group is an optional group containing + objects providing information about the mapping + of VLAN ID to its corresponding IfIndex." + + GROUP vtpVlanInfoEditGroup2 + DESCRIPTION + "This group is mandatory for devices which only support + one VLAN editing for each 'apply' operation." + + ::= { vtpMIBCompliances 5 } + +vtpMIBCompliance6 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for VTP implementations." + MODULE -- this module + MANDATORY-GROUPS { vtpBasicGroup, + vtpVlanInfoGroup, + vtpConfigNotificationsGroup, + vtpStatsGroup, + vtpTrunkPortGroup, + vtpVersion2BasicGroup, + vtpNotificationObjectsGroup + } + + OBJECT managementDomainRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT vlanTrunkPortRowStatus + SYNTAX INTEGER { active(1)} -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one + of the six enumerated values for the + RowStatus textual convention need be + supported, specifically: active(1)." + + OBJECT managementDomainName + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainLocalMode + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainTftpServer + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainTftpPathname + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT managementDomainVersionInUse + MIN-ACCESS read-only + DESCRIPTION "This object is read-only if vtpVersion + is none(3)." + + OBJECT vlanTrunkPortManagementDomain + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortEncapsulationType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vlanTrunkPortNativeVlan + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + GROUP vtpVlanInfoEditGroup + DESCRIPTION + "This group must be implemented by VTP Servers. + VTP Clients need not implement these objects, and + must not allow VLANs to be created, modified, or + destroyed using these objects." + + GROUP vtp4kVlanGroupRev1 + DESCRIPTION + "This group must be implemented by the VTP Servers + which support the range of VlanIndex between 1024 + and 4095." + + OBJECT vtpVlanEditTypeExt2 + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + GROUP vtpDot1qTunnelGroup + DESCRIPTION + "This group is mandatory for all the ports which + implement dot1qtunnel feature." + + OBJECT vlanTrunkPortDot1qTunnel + MIN-ACCESS read-only + DESCRIPTION + "This object is read-only for interface which doesn't + support dot1q tunnel feature." + + GROUP vtpVlanIfIndexGroup + DESCRIPTION + "This group is an optional group containing + objects providing information about the mapping + of VLAN ID to its corresponding IfIndex." + + GROUP vtpVlanInfoEditGroup2 + DESCRIPTION + "This group is mandatory for devices which only support + one VLAN editing for each 'apply' operation." + + ::= { vtpMIBCompliances 6 } + +-- units of conformance + +vtpBasicGroup OBJECT-GROUP + OBJECTS { vtpVersion, vtpMaxVlanStorage, + vtpNotificationsEnabled, + managementDomainName, managementDomainLocalMode, + managementDomainConfigRevNumber, + managementDomainLastUpdater, + managementDomainLastChange, + managementDomainTftpServer, + managementDomainTftpPathname, + managementDomainRowStatus } + STATUS current + DESCRIPTION + "A collection of objects providing basic status and control + of a VTP implementation." + ::= { vtpMIBGroups 1 } + +vtpVlanInfoGroup OBJECT-GROUP + OBJECTS { vtpVlanState, vtpVlanType, vtpVlanName, + vtpVlanMtu, vtpVlanDot10Said, + vtpVlanRingNumber, vtpVlanBridgeNumber, + vtpVlanStpType, vtpVlanParentVlan, + vtpVlanTranslationalVlan1, + vtpVlanTranslationalVlan2, + vtpVlanBridgeType, vtpVlanAreHopCount, + vtpVlanSteHopCount, vtpVlanIsCRFBackup } + STATUS current + DESCRIPTION + "A collection of objects for monitoring VLAN information." + ::= { vtpMIBGroups 13 } + +vtpVlanInfoEditGroup OBJECT-GROUP + OBJECTS { vtpVlanEditOperation, vtpVlanApplyStatus, + vtpVlanEditBufferOwner, vtpVlanEditConfigRevNumber, + vtpVlanEditState, vtpVlanEditType, vtpVlanEditName, + vtpVlanEditMtu, vtpVlanEditDot10Said, + vtpVlanEditRingNumber, vtpVlanEditBridgeNumber, + vtpVlanEditStpType, vtpVlanEditParentVlan, + vtpVlanEditRowStatus, + vtpVlanEditTranslationalVlan1, + vtpVlanEditTranslationalVlan2, + vtpVlanEditBridgeType, vtpVlanEditAreHopCount, + vtpVlanEditSteHopCount, vtpVlanEditIsCRFBackup } + STATUS current + DESCRIPTION + "A collection of objects for editing VLAN information in VTP + Servers." + ::= { vtpMIBGroups 14 } + +vtpStatsGroup OBJECT-GROUP + OBJECTS { vtpInSummaryAdverts, vtpInSubsetAdverts, + vtpInAdvertRequests, vtpOutSummaryAdverts, + vtpOutSubsetAdverts, vtpOutAdvertRequests, + vtpConfigRevNumberErrors, vtpConfigDigestErrors } + STATUS current + DESCRIPTION + "A collection of objects providing VTP statistics." + ::= { vtpMIBGroups 4 } + +vtpTrunkPortGroup OBJECT-GROUP + OBJECTS { vlanTrunkPortManagementDomain, + vlanTrunkPortEncapsulationType, + vlanTrunkPortVlansEnabled, + vlanTrunkPortNativeVlan, + vlanTrunkPortRowStatus, + vlanTrunkPortSetSerialNo } + STATUS current + DESCRIPTION + "A collection of objects providing information on trunk + ports." + ::= { vtpMIBGroups 5 } + +vtpTrunkPortGroup2 OBJECT-GROUP + OBJECTS { vlanTrunkPortDynamicState, vlanTrunkPortDynamicStatus, + vlanTrunkPortVtpEnabled } + STATUS current + DESCRIPTION + " Additional functionality added to the + vlanTrunkPortTable. " + ::= { vtpMIBGroups 11 } + +vtpTrunkPortGroup3 OBJECT-GROUP + OBJECTS { vlanTrunkPortEncapsulationOperType } + STATUS current + DESCRIPTION + " Additional functionality added to the + vlanTrunkPortTable. " + ::= { vtpMIBGroups 15 } + +vtpTrunkPruningGroup OBJECT-GROUP + OBJECTS { vlanTrunkPortInJoins, vlanTrunkPortOutJoins, + vlanTrunkPortOldAdverts, + vlanTrunkPortVlansPruningEligible, + vlanTrunkPortVlansXmitJoined, + vlanTrunkPortVlansRcvJoined } + STATUS current + DESCRIPTION + "A collection of objects providing information on VLAN + pruning." + ::= { vtpMIBGroups 7 } + +vtpTrunkPruningGroup2 OBJECT-GROUP + OBJECTS { managementDomainPruningState } + STATUS current + DESCRIPTION + "A collection of object providing information on whether + VLAN pruning is enabled." + ::= { vtpMIBGroups 10 } + +vtpVersion2BasicGroup OBJECT-GROUP + OBJECTS { managementDomainVersionInUse } + STATUS current + DESCRIPTION + " The object required to indicate the version of VTP in + use by a management domain." + ::= { vtpMIBGroups 12 } + + vtpConfigNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { vtpConfigDigestError, + vtpConfigRevNumberError, + vtpServerDisabled, + vtpMtuTooBig, + vtpVlanRingNumberConfigConflict, + vtpVersionOneDeviceDetected, + vlanTrunkPortDynamicStatusChange } + STATUS current + DESCRIPTION + "The notifications which a VTP implementation is + required to implement." + ::= { vtpMIBGroups 6 } + +vtp4kVlanGroup OBJECT-GROUP + OBJECTS { vtpVlanTypeExt, + vtpVlanEditTypeExt, + vlanTrunkPortVlansEnabled2k, + vlanTrunkPortVlansEnabled3k, + vlanTrunkPortVlansEnabled4k, + vtpVlansPruningEligible2k, + vtpVlansPruningEligible3k, + vtpVlansPruningEligible4k, + vlanTrunkPortVlansXmitJoined2k, + vlanTrunkPortVlansXmitJoined3k, + vlanTrunkPortVlansXmitJoined4k, + vlanTrunkPortVlansRcvJoined2k, + vlanTrunkPortVlansRcvJoined3k, + vlanTrunkPortVlansRcvJoined4k } + STATUS deprecated + DESCRIPTION + "A collection of objects providing information + for VLANS with VlanIndex from 1024 to 4095." + ::= { vtpMIBGroups 16 } + +vtpDot1qTunnelGroup OBJECT-GROUP + OBJECTS { vlanTrunkPortsDot1qTag, + vlanTrunkPortDot1qTunnel} + STATUS current + DESCRIPTION + "A collection of objects providing information + for dot1qtunnel feature." + ::= { vtpMIBGroups 17 } + +vtpVlanIfIndexGroup OBJECT-GROUP + OBJECTS { vtpVlanIfIndex } + STATUS current + DESCRIPTION + "A collection of objects providing information + for mapping of VLAN ID to its corresponding + ifIndex." + ::= { vtpMIBGroups 18 } + +vtpVlanInfoEditGroup2 OBJECT-GROUP + OBJECTS { vtpVlanEditModifiedVlan } + STATUS current + DESCRIPTION + "A collection of objects for editing VLAN information when + only one VLAN is allowed to be edited for each 'apply' + operation." + ::= { vtpMIBGroups 19 } + +vtp4kVlanGroupRev1 OBJECT-GROUP + OBJECTS { vtpVlanTypeExt, + vtpVlanEditTypeExt2, + vlanTrunkPortVlansEnabled2k, + vlanTrunkPortVlansEnabled3k, + vlanTrunkPortVlansEnabled4k, + vtpVlansPruningEligible2k, + vtpVlansPruningEligible3k, + vtpVlansPruningEligible4k, + vlanTrunkPortVlansXmitJoined2k, + vlanTrunkPortVlansXmitJoined3k, + vlanTrunkPortVlansXmitJoined4k, + vlanTrunkPortVlansRcvJoined2k, + vlanTrunkPortVlansRcvJoined3k, + vlanTrunkPortVlansRcvJoined4k } + STATUS current + DESCRIPTION + "A collection of objects providing information + for VLANS with VlanIndex from 1024 to 4095." + ::= { vtpMIBGroups 20 } + +vtpNotificationObjectsGroup OBJECT-GROUP + OBJECTS { vtpVlanPortLocalSegment } + STATUS current + DESCRIPTION + "A collection of objects included in VTP notifications." + ::= { vtpMIBGroups 21 } + +END diff --git a/pandora_console/attachment/mibs/CLNS-MIB b/pandora_console/attachment/mibs/CLNS-MIB new file mode 100644 index 0000000000..9b1c686cce --- /dev/null +++ b/pandora_console/attachment/mibs/CLNS-MIB @@ -0,0 +1,1309 @@ +-- Changes to rfc1238 (CLNS MIB): +-- Changed RFC-1213 to RFC1213-MIB +-- Changed clnpMediaToNetNetAddress in definition of sequence +-- ClnpMediaToNetEntry to clnpMediaToNetAddress +-- Changed definitions and references of clnpRoutingTable +-- to clnpRouteTable +-- dperkins@scruznet.com + + CLNS-MIB DEFINITIONS ::= BEGIN + + -- RFC 1238 + -- June 91 + + IMPORTS + experimental, Counter + FROM RFC1155-SMI + PhysAddress + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- This MIB module uses the extended OBJECT-TYPE macro as + -- defined in [9] + + + -- the CLNS MIB module + + clns OBJECT IDENTIFIER ::= { experimental 1 } + + + -- textual conventions + + ClnpAddress ::= + OCTET STRING (SIZE (1..21)) + -- This data type is used to model NSAP addresses. + + + -- groups in the CLNS MIB + + clnp OBJECT IDENTIFIER ::= { clns 1 } + + error OBJECT IDENTIFIER ::= { clns 2 } + + echo OBJECT IDENTIFIER ::= { clns 3 } + + es-is OBJECT IDENTIFIER ::= { clns 4 } + + + -- the CLNP group + + -- Implementation of this group is recommended for all + -- systems which implement the CLNP. + + clnpForwarding OBJECT-TYPE + SYNTAX INTEGER { + is(1), -- entity is an intermediate system + + -- entity is an end system and does + es(2) -- not forward PDUs + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The indication of whether this entity is active + as an intermediate or end system. Only + intermediate systems will forward PDUs onward that + are not addressed to them." + ::= { clnp 1 } + + clnpDefaultLifeTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default value inserted into the Lifetime + field of the CLNP PDU header of PDUs sourced by + this entity." + ::= { clnp 2 } + + clnpInReceives OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of input PDUs received from all + connected network interfaces running CLNP, + including errors." + ::= { clnp 3 } + + clnpInHdrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input PDUs discarded due to errors + in the CLNP header, including bad checksums, + version mismatch, lifetime exceeded, errors + discovered in processing options, etc." + ::= { clnp 4 } + + clnpInAddrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input PDUs discarded because the + NSAP address in the CLNP header's destination + field was not a valid NSAP to be received at this + entity. This count includes addresses not + understood. For end systems, this is a count of + PDUs which arrived with a destination NSAP which + was not local." + ::= { clnp 5 } + + clnpForwPDUs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input PDUs for which this entity + was not the final destination and which an attempt + was made to forward them onward." + ::= { clnp 6 } + + clnpInUnknownNLPs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally-addressed PDUs successfully + received but discarded because the network layer + protocol was unknown or unsupported (e.g., not + CLNP or ES-IS)." + ::= { clnp 7 } + + clnpInUnknownULPs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally-addressed PDUs successfully + received but discarded because the upper layer + protocol was unknown or unsupported (e.g., not + TP4)." + ::= { clnp 8 } + + clnpInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input CLNP PDUs for which no + problems were encountered to prevent their + continued processing, but were discarded (e.g., + for lack of buffer space). Note that this counter + does not include any PDUs discarded while awaiting + re-assembly." + ::= { clnp 9 } + + clnpInDelivers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of input PDUs successfully + delivered to the CLNS transport user." + ::= { clnp 10 } + + clnpOutRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of CLNP PDUs which local CLNS + user protocols supplied to CLNP for transmission + requests. This counter does not include any PDUs + counted in clnpForwPDUs." + ::= { clnp 11 } + + clnpOutDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of output CLNP PDUs for which no other + problem was encountered to prevent their + transmission but were discarded (e.g., for lack of + buffer space). Note this counter includes PDUs + counted in clnpForwPDUs." + ::= { clnp 12 } + + clnpOutNoRoutes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP PDUs discarded because no + route could be found to transmit them to their + destination. This counter includes any PDUs + counted in clnpForwPDUs." + ::= { clnp 13 } + + clnpReasmTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum number of seconds which received + segments are held while they are awaiting + reassembly at this entity." + ::= { clnp 14 } + + clnpReasmReqds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP segments received which needed + to be reassembled at this entity." + ::= { clnp 15 } + + clnpReasmOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP PDUs successfully re-assembled + at this entity." + ::= { clnp 16 } + + clnpReasmFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of failures detected by the CLNP + reassembly algorithm (for any reason: timed out, + buffer size, etc)." + ::= { clnp 17 } + + clnpSegOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP PDUs that have been + successfully segmented at this entity." + ::= { clnp 18 } + + clnpSegFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP PDUs that have been discarded + because they needed to be fragmented at this + entity but could not." + ::= { clnp 19 } + + clnpSegCreates OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP PDU segments that have been + generated as a result of segmentation at this + entity." + ::= { clnp 20 } + + clnpInOpts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP PDU segments that have been + input with options at this entity." + ::= { clnp 25 } + + clnpOutOpts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP PDU segments that have been + generated with options by this entity." + ::= { clnp 26 } + + clnpRoutingDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of routing entries which were chosen + to be discarded even though they are valid. One + possible reason for discarding such an entry could + be to free-up buffer space for other routing + entries." + ::= { clnp 27 } + + + -- the CLNP Interfaces table + + -- The CLNP interfaces table contains information on the + -- entity's interfaces which are running the CLNP. + + clnpAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF ClnpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of addressing information relevant to + this entity's CLNP addresses. " + ::= { clnp 21 } + + clnpAddrEntry OBJECT-TYPE + SYNTAX ClnpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The addressing information for one of this + entity's CLNP addresses." + INDEX { clnpAdEntAddr } + ::= { clnpAddrTable 1 } + + ClnpAddrEntry ::= + SEQUENCE { + clnpAdEntAddr + ClnpAddress, + clnpAdEntIfIndex + INTEGER, + clnpAdEntReasmMaxSize + INTEGER (0..65535) + } + + clnpAdEntAddr OBJECT-TYPE + SYNTAX ClnpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The CLNP address to which this entry's addressing + information pertains." + ::= { clnpAddrEntry 1 } + + clnpAdEntIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + interface to which this entry is applicable. The + interface identified by a particular value of this + index is the same interface as identified by the + same value of ifIndex." + ::= { clnpAddrEntry 2 } + + clnpAdEntReasmMaxSize OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the largest CLNP PDU which this + entity can re-assemble from incoming CLNP + segmented PDUs received on this interface." + ::= { clnpAddrEntry 3 } + + + -- The CLNP Routing table + + -- The CLNP routing table contains an entry for each route + -- known to the entity. + + clnpRouteTable OBJECT-TYPE + SYNTAX SEQUENCE OF ClnpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This entity's CLNP routing table." + ::= { clnp 22 } + + clnpRouteEntry OBJECT-TYPE + SYNTAX ClnpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A route to a particular destination." + INDEX { clnpRouteDest } + ::= { clnpRouteTable 1 } + + ClnpRouteEntry ::= + SEQUENCE { + clnpRouteDest + ClnpAddress, + clnpRouteIfIndex + INTEGER, + clnpRouteMetric1 + INTEGER, + clnpRouteMetric2 + INTEGER, + clnpRouteMetric3 + INTEGER, + clnpRouteMetric4 + INTEGER, + clnpRouteNextHop + ClnpAddress, + clnpRouteType + INTEGER, + clnpRouteProto + INTEGER, + clnpRouteAge + INTEGER, + clnpRouteMetric5 + INTEGER, + clnpRouteInfo + OBJECT IDENTIFIER + } + + clnpRouteDest OBJECT-TYPE + SYNTAX ClnpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The destination CLNP address of this route." + ::= { clnpRouteEntry 1 } + + clnpRouteIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + local interface through which the next hop of this + route should be reached. The interface identified + by a particular value of this index is the same as + identified by the same value of ifIndex." + ::= { clnpRouteEntry 2 } + + clnpRouteMetric1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The primary routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + clnpRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { clnpRouteEntry 3 } + + clnpRouteMetric2 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + clnpRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { clnpRouteEntry 4 } + + clnpRouteMetric3 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + clnpRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { clnpRouteEntry 5 } + + clnpRouteMetric4 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + clnpRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { clnpRouteEntry 6 } + + clnpRouteNextHop OBJECT-TYPE + SYNTAX ClnpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The CLNP address of the next hop of this route." + ::= { clnpRouteEntry 7 } + + clnpRouteType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + invalid(2), -- an invalidated route + + -- route to directly + direct(3), -- connected (sub-)network + + -- route to a non-local + remote(4) -- host/network/sub-network + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of route. + + Setting this object to the value invalid(2) has + the effect of invaliding the corresponding entry + in the clnpRoutingTable. That is, it effectively + dissasociates the destination identified with said + entry from the route identified with said entry. + It is an implementation-specific matter as to + whether the agent removes an invalidated entry + from the table. Accordingly, management stations + must be prepared to receive tabular information + from agents that corresponds to entries not + currently in use. Proper interpretation of such + entries requires examination of the relevant + clnpRouteType object." + ::= { clnpRouteEntry 8 } + + clnpRouteProto OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + -- non-protocol information + -- e.g., manually + local(2), -- configured entries + + -- set via a network + netmgmt(3), -- management protocol + + -- similar to ipRouteProto but + -- omits several IP-specific + -- protocols + + is-is(9), + ciscoIgrp(11), + bbnSpfIgp(12), + ospf(13), + bgp(14) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The routing mechanism via which this route was + learned. Inclusion of values for gateway routing + protocols is not intended to imply that hosts + should support those protocols." + ::= { clnpRouteEntry 9 } + + clnpRouteAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds since this route was last + updated or otherwise determined to be correct. + Note that no semantics of `too old' can be implied + except through knowledge of the routing protocol + by which the route was learned." + ::= { clnpRouteEntry 10 } + + clnpRouteMetric5 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + clnpRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { clnpRouteEntry 11 } + + clnpRouteInfo OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A reference to MIB definitions specific to the + particular routing protocol which is responsible + for this route, as determined by the value + specified in the route's clnpRouteProto value. If + this information is not present, its value should + be set to the OBJECT IDENTIFIER { 0 0 }, which is + a syntatically valid object identifier, and any + conformant implementation of ASN.1 and BER must be + able to generate and recognize this value." + ::= { clnpRouteEntry 12 } + + + -- the CLNP Address Translation table + + -- The Address Translation tables contain the CLNP address + -- to physical address equivalences. Some interfaces do not + -- use translation tables for determining address + -- equivalences; if all interfaces are of this type, then the + -- Address Translation table is empty, i.e., has zero + -- entries. + + clnpNetToMediaTable OBJECT-TYPE + SYNTAX SEQUENCE OF ClnpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The CLNP Address Translation table used for + mapping from CLNP addresses to physical + addresses." + ::= { clnp 23 } + + clnpNetToMediaEntry OBJECT-TYPE + SYNTAX ClnpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Each entry contains one CLNP address to + `physical' address equivalence." + INDEX { clnpNetToMediaIfIndex, clnpNetToMediaNetAddress } + ::= { clnpNetToMediaTable 1 } + + ClnpNetToMediaEntry ::= + SEQUENCE { + clnpNetToMediaIfIndex + INTEGER, + clnpNetToMediaPhysAddress + PhysAddress, + clnpNetToMediaNetAddress + ClnpAddress, + clnpNetToMediaType + INTEGER, + clnpNetToMediaAge + INTEGER, + clnpNetToMediaHoldTime + INTEGER + } + + clnpNetToMediaIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The interface on which this entry's equivalence + is effective. The interface identified by a + particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { clnpNetToMediaEntry 1 } + + clnpNetToMediaPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The media-dependent `physical' address." + ::= { clnpNetToMediaEntry 2 } + + clnpNetToMediaNetAddress OBJECT-TYPE + SYNTAX ClnpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The CLNP address corresponding to the media- + dependent `physical' address." + ::= { clnpNetToMediaEntry 3 } + + clnpNetToMediaType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + invalid(2), -- an invalidated mapping + dynamic(3), + static(4) + } + + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of mapping. + + Setting this object to the value invalid(2) has + the effect of invalidating the corresponding entry + in the clnpNetToMediaTable. That is, it + effectively dissassociates the interface + identified with said entry from the mapping + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant clnpNetToMediaType + object." + ::= { clnpNetToMediaEntry 4 } + + clnpNetToMediaAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds since this entry was last + updated or otherwise determined to be correct. + Note that no semantics of `too old' can be implied + except through knowledge of the type of entry." + ::= { clnpNetToMediaEntry 5 } + + clnpNetToMediaHoldTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The time in seconds this entry will be valid. + Static entries should always report this field as + -1." + ::= { clnpNetToMediaEntry 6 } + + clnpMediaToNetTable OBJECT-TYPE + SYNTAX SEQUENCE OF ClnpMediaToNetEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The CLNP Address Translation table used for + mapping from physical addresses to CLNP + addresses." + ::= { clnp 24 } + + clnpMediaToNetEntry OBJECT-TYPE + SYNTAX ClnpMediaToNetEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Each entry contains on ClnpAddress to `physical' + address equivalence." + INDEX { clnpMediaToNetIfIndex, clnpMediaToNetPhysAddress } + ::= { clnpMediaToNetTable 1 } + + ClnpMediaToNetEntry ::= + SEQUENCE { + clnpMediaToNetIfIndex + INTEGER, + clnpMediaToNetAddress + ClnpAddress, + clnpMediaToNetPhysAddress + PhysAddress, + clnpMediaToNetType + INTEGER, + clnpMediaToNetAge + INTEGER, + clnpMediaToNetHoldTime + INTEGER + } + + clnpMediaToNetIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The interface on which this entry's equivalence + is effective. The interface identified by a + particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { clnpMediaToNetEntry 1 } + + clnpMediaToNetAddress OBJECT-TYPE + SYNTAX ClnpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The ClnpAddress corresponding to the media- + dependent `physical' address." + ::= { clnpMediaToNetEntry 2 } + + clnpMediaToNetPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The media-dependent `physical' address." + ::= { clnpMediaToNetEntry 3 } + + clnpMediaToNetType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + invalid(2), -- an invalidated mapping + dynamic(3), + static(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of mapping. + + Setting this object to the value invalid(2) has + the effect of invalidating the corresponding entry + in the clnpMediaToNetTable. That is, it + effectively dissassociates the interface + identified with said entry from the mapping + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant clnpMediaToNetType + object." + ::= { clnpMediaToNetEntry 4 } + + clnpMediaToNetAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds since this entry was last + updated or otherwise determined to be correct. + Note that no semantics of `too old' can be implied + except through knowledge of the type of entry." + ::= { clnpMediaToNetEntry 5 } + + clnpMediaToNetHoldTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The time in seconds this entry will be valid. + Static entries should always report this field as + -1." + ::= { clnpMediaToNetEntry 6 } + + + -- the CLNP Error group + + -- Implementation of this group is recommended for all + -- systems which implement the CLNP Error protocol. + + clnpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP Error PDUs received by this + entity." + ::= { error 1 } + + clnpOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of CLNP Error PDUs sent by this + entity." + ::= { error 2 } + + clnpInErrUnspecs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unspecified CLNP Error PDUs + received by this entity." + ::= { error 3 } + + clnpInErrProcs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of protocol procedure CLNP Error PDUs + received by this entity." + ::= { error 4 } + + clnpInErrCksums OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of checksum CLNP Error PDUs received + by this entity." + ::= { error 5 } + + clnpInErrCongests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of congestion drop CLNP Error PDUs + received by this entity." + ::= { error 6 } + + clnpInErrHdrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of header syntax CLNP Error PDUs + received by this entity." + ::= { error 7 } + + clnpInErrSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of segmentation disallowed CLNP Error + PDUs received by this entity." + ::= { error 8 } + + clnpInErrIncomps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of incomplete PDU CLNP Error PDUs + received by this entity." + ::= { error 9 } + + clnpInErrDups OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of duplicate option CLNP Error PDUs + received by this entity." + ::= { error 10 } + + clnpInErrUnreachDsts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unreachable destination CLNP Error + PDUs received by this entity." + ::= { error 11 } + + clnpInErrUnknownDsts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unknown destination CLNP Error PDUs + received by this entity." + ::= { error 12 } + + clnpInErrSRUnspecs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unspecified source route CLNP Error + PDUs received by this entity." + ::= { error 13 } + + clnpInErrSRSyntaxes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of source route syntax CLNP Error PDUs + received by this entity." + ::= { error 14 } + + clnpInErrSRUnkAddrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of source route unknown address CLNP + Error PDUs received by this entity." + ::= { error 15 } + + clnpInErrSRBadPaths OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of source route bad path CLNP Error + PDUs received by this entity." + ::= { error 16 } + + clnpInErrHops OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of hop count exceeded CLNP Error PDUs + received by this entity." + ::= { error 17 } + + clnpInErrHopReassms OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of hop count exceeded while + reassembling CLNP Error PDUs received by this + entity." + ::= { error 18 } + + clnpInErrUnsOptions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported option CLNP Error PDUs + received by this entity." + ::= { error 19 } + + clnpInErrUnsVersions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of version mismatch CLNP Error PDUs + received by this entity." + ::= { error 20 } + + clnpInErrUnsSecurities OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported security option CLNP + Error PDUs received by this entity." + ::= { error 21 } + + clnpInErrUnsSRs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported source route option + CLNP Error PDUs received by this entity." + ::= { error 22 } + + clnpInErrUnsRRs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported record route option + CLNP Error PDUs received by this entity." + ::= { error 23 } + + clnpInErrInterferences OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of reassembly interference CLNP Error + PDUs received by this entity." + ::= { error 24 } + + clnpOutErrUnspecs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unspecified CLNP Error PDUs sent by + this entity." + ::= { error 25 } + + clnpOutErrProcs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of protocol procedure CLNP Error PDUs + sent by this entity." + ::= { error 26 } + + clnpOutErrCksums OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of checksum CLNP Error PDUs sent by + this entity." + ::= { error 27 } + + clnpOutErrCongests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of congestion drop CLNP Error PDUs + sent by this entity." + ::= { error 28 } + + clnpOutErrHdrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of header syntax CLNP Error PDUs sent + by this entity." + ::= { error 29 } + + clnpOutErrSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of segmentation disallowed CLNP Error + PDUs sent by this entity." + ::= { error 30 } + + clnpOutErrIncomps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of incomplete PDU CLNP Error PDUs sent + by this entity." + ::= { error 31 } + + clnpOutErrDups OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of duplicate option CLNP Error PDUs + sent by this entity." + ::= { error 32 } + + clnpOutErrUnreachDsts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unreachable destination CLNP Error + PDUs sent by this entity." + ::= { error 33 } + + clnpOutErrUnknownDsts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unknown destination CLNP Error PDUs + sent by this entity." + ::= { error 34 } + + clnpOutErrSRUnspecs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unspecified source route CLNP Error + PDUs sent by this entity." + ::= { error 35 } + + clnpOutErrSRSyntaxes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of source route syntax CLNP Error PDUs + sent by this entity." + ::= { error 36 } + + clnpOutErrSRUnkAddrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of source route unknown address CLNP + Error PDUs sent by this entity." + ::= { error 37 } + + clnpOutErrSRBadPaths OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of source route bad path CLNP Error + PDUs sent by this entity." + ::= { error 38 } + + clnpOutErrHops OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of hop count exceeded CLNP Error PDUs + sent by this entity." + ::= { error 39 } + + clnpOutErrHopReassms OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of hop count exceeded while + reassembling CLNP Error PDUs sent by this entity." + ::= { error 40 } + + clnpOutErrUnsOptions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported option CLNP Error PDUs + sent by this entity." + ::= { error 41 } + + clnpOutErrUnsVersions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of version mismatch CLNP Error PDUs + sent by this entity." + ::= { error 42 } + + clnpOutErrUnsSecurities OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported security option CLNP + Error PDUs sent by this entity." + ::= { error 43 } + + clnpOutErrUnsSRs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported source route option + CLNP Error PDUs sent by this entity." + ::= { error 44 } + + clnpOutErrUnsRRs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of unsupported record route option + CLNP Error PDUs sent by this entity." + ::= { error 45 } + + clnpOutErrInterferences OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of reassembly interference CLNP Error + PDUs sent by this entity." + ::= { error 46 } + + -- the ES-IS group + + -- Implementation of this group is recommended for all + -- systems which implement the End-System to Intermediate + -- System protocol. + + esisESHins OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ESH PDUs received by this entity." + ::= { es-is 1 } + + esisESHouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ESH PDUs sent by this entity." + ::= { es-is 2 } + + esisISHins OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ISH PDUs received by this entity." + ::= { es-is 3 } + + esisISHouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ISH PDUs sent by this entity." + ::= { es-is 4 } + + esisRDUins OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of RDU PDUs received by this entity." + ::= { es-is 5 } + + esisRDUouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of RDU PDUs sent by this entity." + ::= { es-is 6 } + + END diff --git a/pandora_console/attachment/mibs/CPQHLTH-MIB b/pandora_console/attachment/mibs/CPQHLTH-MIB new file mode 100644 index 0000000000..14e815efa5 --- /dev/null +++ b/pandora_console/attachment/mibs/CPQHLTH-MIB @@ -0,0 +1,5781 @@ +-- **************************************************************************** +-- +-- Server Health Features +-- Management Information Base for SNMP Network Management +-- +-- +-- Copyright 1992,2008 Hewlett-Packard Development Company, L.P. +-- +-- Hewlett-Packard Company shall not be liable for technical or +-- editorial errors or omissions contained herein. The information in +-- this document is provided "as is" without warranty of any kind and +-- is subject to change without notice. The warranties for HP products +-- are set forth in the express limited warranty statements +-- accompanying such products. Nothing herein should be construed as +-- constituting an additional warranty. +-- +-- Confidential computer software. Valid license from HP required for +-- possession, use or copying. Consistent with FAR 12.211 and 12.212, +-- Commercial Computer Software, Computer Software Documentation, and +-- Technical Data for Commercial Items are licensed to the U.S. +-- Government under vendor's standard commercial license. +-- +-- Refer to the READMIB.RDM file for more information about the +-- organization of the information in the Compaq Enterprise. +-- +-- The Compaq Enterprise number is 232. +-- The ASN.1 prefix to, and including the Compaq Enterprise is: +-- 1.3.6.1.4.1.232 +-- +-- **************************************************************************** + +CPQHLTH-MIB DEFINITIONS ::= BEGIN + + IMPORTS + compaq FROM CPQHOST-MIB + enterprises FROM RFC1155-SMI + Counter FROM RFC1155-SMI + DisplayString FROM RFC1213-MIB + OBJECT-TYPE FROM RFC-1212 + TRAP-TYPE FROM RFC-1215 + sysName FROM RFC1213-MIB + cpqHoTrapFlags FROM CPQHOST-MIB + cpqSiServerSystemId FROM CPQSINFO-MIB + cpqSiMemModuleSize FROM CPQSINFO-MIB; + +-- compaq OBJECT IDENTIFIER ::= { enterprises 232 } + cpqHealth OBJECT IDENTIFIER ::= { compaq 6 } + cpqHeMibRev OBJECT IDENTIFIER ::= { cpqHealth 1 } + cpqHeComponent OBJECT IDENTIFIER ::= { cpqHealth 2 } + cpqHeTrap OBJECT IDENTIFIER ::= { cpqHealth 3 } + + cpqHeInterface OBJECT IDENTIFIER ::= { cpqHeComponent 1 } + cpqHeCriticalError OBJECT IDENTIFIER ::= { cpqHeComponent 2 } + cpqHeCorrectableMemory OBJECT IDENTIFIER ::= { cpqHeComponent 3 } + cpqHeAsr OBJECT IDENTIFIER ::= { cpqHeComponent 5 } + cpqHeThermal OBJECT IDENTIFIER ::= { cpqHeComponent 6 } + cpqHePostMsg OBJECT IDENTIFIER ::= { cpqHeComponent 7 } + cpqHeSysUtil OBJECT IDENTIFIER ::= { cpqHeComponent 8 } + cpqHeFltTolPwrSupply OBJECT IDENTIFIER ::= { cpqHeComponent 9 } + cpqHeIRC OBJECT IDENTIFIER ::= { cpqHeComponent 10 } + cpqHeEventLog OBJECT IDENTIFIER ::= { cpqHeComponent 11 } + cpqHeMgmtDisplay OBJECT IDENTIFIER ::= { cpqHeComponent 12 } + cpqHePowerConverter OBJECT IDENTIFIER ::= { cpqHeComponent 13 } + cpqHeResilientMemory OBJECT IDENTIFIER ::= { cpqHeComponent 14 } + cpqHePowerMeter OBJECT IDENTIFIER ::= { cpqHeComponent 15 } + + cpqHeOsNetWare3x OBJECT IDENTIFIER ::= { cpqHeInterface 1 } + cpqHeOsCommon OBJECT IDENTIFIER ::= { cpqHeInterface 4 } + +-- **************************************************************************** +-- Health MIB Revision +-- =================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeMibRev Group (1.3.6.1.4.1.232.6.1) +-- +-- An Insight Agent conforming to this document will return a +-- cpqHeMibRevMajor of one (1) and a cpqHeMibRevMinor of twenty-five (25). +-- +-- +-- Implementation of the MibRev group is mandatory for all agents +-- supporting the Server Health MIB. +-- +-- **************************************************************************** + + cpqHeMibRevMajor OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Major Revision level of the MIB. + + A change in the major revision level represents a major change + in the architecture of the MIB. A change in the major revision + level may indicate a significant change in the information + supported and/or the meaning of the supported information, + correct interpretation of data may require a MIB document with + the same major revision level." + ::= { cpqHeMibRev 1 } + + cpqHeMibRevMinor OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minor revision level of the MIB. + + A change in the minor revision level may represent some minor + additional support, no changes to any pre-existing information + has occurred." + ::= { cpqHeMibRev 2 } + + cpqHeMibCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), -- default + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The overall condition. + + This object represents the overall status of the server health + system represented by this MIB." + ::= { cpqHeMibRev 3 } + +-- **************************************************************************** +-- Health MIB NetWare OS Group +-- =========================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeInterface Group (1.3.6.1.4.1.232.6.2.1) +-- cpqHeOsNetWare3x Group (1.3.6.1.4.1.232.6.2.1.1) +-- +-- Implementation of the cpqHeOsNetWare3x group is mandatory for all +-- agents that support the Server Health MIB in a NetWare host +-- operating environment. +-- +-- **************************************************************************** + + cpqHeNw3xDriverName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Driver Name. + + This value identifies the NetWare Loadable Module providing the + operating system access to the Server Health information." + ::= { cpqHeOsNetWare3x 1 } + + cpqHeNw3xDriverDate OBJECT-TYPE + SYNTAX DisplayString (SIZE (8)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Driver Date. + + The date of the NetWare Loadable Module providing the operating + system access to the Server Health logs. The date is + provided in mm/dd/yy format." + ::= { cpqHeOsNetWare3x 2 } + + cpqHeNw3xDriverVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..5)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Driver Version. + + This is the version of the NetWare Loadable Module (NLM) + providing the operating system access to the Server + Health logs." + ::= { cpqHeOsNetWare3x 3 } + +-- **************************************************************************** +-- Health MIB OS Common Group +-- ========================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeInterface Group (1.3.6.1.4.1.232.6.2.1) +-- cpqHeOsCommon Group (1.3.6.1.4.1.232.6.2.1.4) +-- +-- The cpqHeOsCommon group describes the interface to the Server +-- health components. This information describes the interface modules +-- and general OS interface architectural information. +-- +-- Implementation of the cpqHeOsCommon group is mandatory for all +-- agents that support the Server Health MIB. +-- +-- **************************************************************************** + + cpqHeOsCommonPollFreq OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Insight Agent's polling frequency. + + The frequency, in seconds, at which the Insight Agent requests + information from the device driver. A frequency of zero + indicates that the Insight Agent retrieves the information upon + request of a management station, it does not poll the device + driver at a specific interval. + + If the poll frequency is 0 all attempts to write to this + object will fail. If the poll frequency is non-zero, + setting this value will change the polling frequency of the + Insight Agent. Setting the poll frequency to zero will always + fail, an agent may also choose to fail any request to change + the poll frequency to a value that would severely impact system + performance." + ::= { cpqHeOsCommon 1 } + +-- **************************************************************************** +-- Health MIB OS Common Module Table +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeInterface Group (1.3.6.1.4.1.232.6.2.1) +-- cpqHeOsCommon Group (1.3.6.1.4.1.232.6.2.1.4) +-- cpqHeOsCommonModuleTable (1.3.6.1.4.1.232.6.2.1.4.2) deprecated +-- +-- **************************************************************************** + + cpqHeOsCommonModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Supporting software table. + + This is a table of software modules that provide an interface + to the device this server health MIB describes." + ::= { cpqHeOsCommon 2 } + + cpqHeOsCommonModuleEntry OBJECT-TYPE + SYNTAX CpqHeOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A description of a software modules that provide an interface + to the device this MIB describes." + INDEX { cpqHeOsCommonModuleIndex } + ::= { cpqHeOsCommonModuleTable 1 } + + CpqHeOsCommonModuleEntry ::= SEQUENCE { + cpqHeOsCommonModuleIndex INTEGER, + cpqHeOsCommonModuleName DisplayString, + cpqHeOsCommonModuleVersion DisplayString, + cpqHeOsCommonModuleDate OCTET STRING, + cpqHeOsCommonModulePurpose DisplayString + } + + cpqHeOsCommonModuleIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "A unique index for this module description." + ::= { cpqHeOsCommonModuleEntry 1 } + + cpqHeOsCommonModuleName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module name." + ::= { cpqHeOsCommonModuleEntry 2 } + + cpqHeOsCommonModuleVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..5)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module version in XX.YY format. + + Where XX is the major version number and YY is the minor version + number. This field will be null (size 0) string if the agent + cannot provide the module version." + ::= { cpqHeOsCommonModuleEntry 3 } + + cpqHeOsCommonModuleDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module date. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to year = 0 if the agent cannot provide + the module date. The hour, minute, and second field will be set + to zero (0) if they are not relevant. The year field is set + with the most significant octet first." + ::= { cpqHeOsCommonModuleEntry 4 } + + cpqHeOsCommonModulePurpose OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The purpose of the module described in this entry." + ::= { cpqHeOsCommonModuleEntry 5 } + +-- **************************************************************************** +-- Health MIB Critical Error Group +-- =============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeCriticalError Group (1.3.6.1.4.1.232.6.2.2) +-- +-- The cpqHeCriticalError group describes the health critical error log. +-- +-- Implementation of the cpqHeCriticalError group is mandatory for all +-- agents that support the Server Health MIB. +-- +-- **************************************************************************** + + cpqHeCritLogSupported OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notSupported(2), + supported(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies if this system supports the critical + error logging feature." + ::= { cpqHeCriticalError 1 } + + cpqHeCritLogCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the critical + error log feature." + ::= { cpqHeCriticalError 2 } + + cpqHeLastCritErrorAbendMsg OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Last Critical Termination message. + + The message associated with the last critical error of + type criticalException(14) or abend(27)." + ::= { cpqHeCriticalError 3 } + +-- **************************************************************************** +-- Health MIB Critical Error Table +-- =============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeCriticalError Group (1.3.6.1.4.1.232.6.2.2) +-- cpqHeCriticalErrorTable (1.3.6.1.4.1.232.6.2.2.4) +-- +-- **************************************************************************** + + cpqHeCriticalErrorTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeCriticalErrorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of critical error descriptions." + ::= { cpqHeCriticalError 4 } + + cpqHeCriticalErrorEntry OBJECT-TYPE + SYNTAX CpqHeCriticalErrorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A critical error description." + INDEX { cpqHeCriticalErrorIndex } + ::= { cpqHeCriticalErrorTable 1 } + + CpqHeCriticalErrorEntry ::= SEQUENCE { + cpqHeCriticalErrorIndex INTEGER, + cpqHeCriticalErrorStatus INTEGER, + cpqHeCriticalErrorType INTEGER, + cpqHeCriticalErrorTime OCTET STRING, + cpqHeCriticalErrorInfo OCTET STRING, + cpqHeCriticalErrorDesc DisplayString + } + + cpqHeCriticalErrorIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies this critical error + description. The entries will be in order of occurrence + with the most recent entry first." + ::= { cpqHeCriticalErrorEntry 1 } + + cpqHeCriticalErrorStatus OBJECT-TYPE + SYNTAX INTEGER { + uncorrected(1), + corrected(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value specifies if the user has marked this error as + corrected. Marking errors as corrected may be performed with + the Diagnostics or by a set operation on this variable. + Attempting to set this variable to uncorrected(1) will fail." + ::= { cpqHeCriticalErrorEntry 2 } + + cpqHeCriticalErrorType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + empty(2), + nonCorrectableMemErr(3), + busMasterTimeoutNmi(4), + commandBusTimeoutNmi(5), + ioCheckNmi(6), + refreshOverflowNmi(7), + cacheParityNmi(8), + processorParityNmi(9), + eisaHostMemReadHit(10), + processorFailure(11), + cautionTemperature(12), + postCriticalError(13), + criticalException(14), + serverManagerIfFail(15), + pentiumIperr(16), + pentiumAperr(17), + pentiumIeerr(18), + pentiumApcheck(19), + cpuLocalError(20), + failsafeTimer(21), + softwareNmi(22), + asrBaseMemoryParity(23), + asrExtendedMemParity(24), + asrResetLimit(25), + asrMemoryParity(26), + abend(27), + asrTestEvent(28), + asrTimeoutNmi(29), + fanFailure(30), + upsDetectedLineFail(31), + asrDetectedAtBoot(32), + redunPowerSupplyFailure(33), + pciBusParityError(34), + diagnosticError(35), + rtcChipBatteryFailure(36), + pentiumBerr(37), + dcConverterFailure(38), + cpuInternalThreshPassed(39) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the type of error." + ::= { cpqHeCriticalErrorEntry 3 } + + cpqHeCriticalErrorTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..3)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time of the error: hour (first five bits), day of month + (next 5 bits), month (next 4 bits), year of the current century + (next 7 bits). The last 3 bits are reserved." + ::= { cpqHeCriticalErrorEntry 4 } + + cpqHeCriticalErrorInfo OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Information about the error." + ::= { cpqHeCriticalErrorEntry 5 } + + cpqHeCriticalErrorDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A text description of the critical error." + ::= { cpqHeCriticalErrorEntry 6 } + +-- **************************************************************************** +-- Health MIB Correctable Memory Error Group +-- ========================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeCorrectableMemory Group (1.3.6.1.4.1.232.6.2.3) +-- +-- The cpqHeCorrectableMemory group describes the health correctable memory +-- error log. +-- +-- Implementation of the cpqHeCorrectableMemory group is mandatory for all +-- agents that support the Server Health MIB on a system that has the +-- correctable memory feature. +-- +-- **************************************************************************** + + cpqHeCorrMemLogStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notSupported(2), + disabled(3), + enabled(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies whether this system is currently tracking + correctable memory errors." + ::= { cpqHeCorrectableMemory 1 } + + cpqHeCorrMemLogCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the correctable + memory error log feature." + ::= { cpqHeCorrectableMemory 2 } + + cpqHeCorrMemTotalErrs OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of correctable memory errors that have occurred." + ::= { cpqHeCorrectableMemory 3 } + +-- **************************************************************************** +-- Health MIB Correctable Memory Error Table +-- ========================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeCorrectableMemory Group (1.3.6.1.4.1.232.6.2.3) +-- cpqHeCorrMemErrTable (1.3.6.1.4.1.232.6.2.3.4) +-- +-- **************************************************************************** + + cpqHeCorrMemErrTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeCorrMemErrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of correctable memory error descriptions." + ::= { cpqHeCorrectableMemory 4 } + + cpqHeCorrMemErrEntry OBJECT-TYPE + SYNTAX CpqHeCorrMemErrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A correctable memory error description." + INDEX { cpqHeCorrMemErrIndex } + ::= { cpqHeCorrMemErrTable 1 } + + CpqHeCorrMemErrEntry ::= SEQUENCE { + cpqHeCorrMemErrIndex INTEGER, + cpqHeCorrMemErrCount INTEGER, + cpqHeCorrMemErrTime OCTET STRING, + cpqHeCorrMemErrDdr OCTET STRING, + cpqHeCorrMemErrSyndrome OCTET STRING, + cpqHeCorrMemErrDesc DisplayString, + cpqHeCorrMemErrHwLocation DisplayString + } + + cpqHeCorrMemErrIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies this correctable memory error + description. The entries will be in order of occurrence with the + most recent new entry first." + ::= { cpqHeCorrMemErrEntry 1 } + + cpqHeCorrMemErrCount OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of times this memory location has had a correctable + memory error. The value zero (0) indicates that the user has + marked this error as corrected. Marking errors as corrected may + be performed with the Diagnostics or with a set operation + of 0 on this variable. Any non-zero valued set operation will + fail." + ::= { cpqHeCorrMemErrEntry 2 } + + cpqHeCorrMemErrTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..3)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time of the error: hour (first five bits), day of month + (next 5 bits), month (next 4 bits), year of the current century + (next 7 bits). The last 3 bits are reserved." + ::= { cpqHeCorrMemErrEntry 3 } + + cpqHeCorrMemErrDdr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The data destination register value. + + This contains information about the memory bank in which the + error occurred. The interpretation of this value is dependent + on the machine type." + ::= { cpqHeCorrMemErrEntry 4 } + + cpqHeCorrMemErrSyndrome OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory syndrome value. + + This contains information about the memory module in which the + error occurred. The interpretation of this value is dependant + on the machine type." + ::= { cpqHeCorrMemErrEntry 5 } + + cpqHeCorrMemErrDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A text description of the correctable memory error." + ::= { cpqHeCorrMemErrEntry 6 } + + cpqHeCorrMemErrHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the correctable memory error. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHeCorrMemErrEntry 7 } + + cpqHeCorrMemErrorCntThresh OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The error threshold for Correctable memory errors. When + cpqHeCorrMemErrCount is greater than or equal to this value + user action is required to replace the failing memory module." + ::= { cpqHeCorrectableMemory 5 } + +-- **************************************************************************** +-- Health MIB Automatic Server Recovery (ASR) Group +-- ================================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeAsr Group (1.3.6.1.4.1.232.6.2.5) +-- +-- The cpqHeAsr group describes the Automatic Server Recovery Health +-- feature. +-- +-- Implementation of the cpqHeAsr group is mandatory for all agents that +-- support the Server Health MIB on a system that supports the ASR feature. +-- +-- **************************************************************************** + + cpqHeAsrStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notAvailable(2), + disabled(3), + enabled(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Automatic Server Recovery feature status. + + If this object is currently other(1) or notAvailable(2) all + set operations will fail. Any attempt to set this object to + other(1) or notAvailable(2) by a management station will fail. + + Setting this object to disabled(3) or enabled(4) will disable + or enable the ASR feature. + + Setting this object to disabled(3) will disable the following + objects: + cpqHeAsrPagerStatus + cpqHeAsrDialInStatus + cpqHeAsrDialOutStatus" + ::= { cpqHeAsr 1 } + + cpqHeAsrMajorVersion OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The major version number of the Automatic Server Recovery + feature hardware." + ::= { cpqHeAsr 2 } + + cpqHeAsrMinorVersion OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minor version number of the Automatic Server Recovery + feature hardware." + ::= { cpqHeAsr 3 } + + cpqHeAsrTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The time-out in minutes for the Automatic Server Recovery + feature hardware. If the variable is not supported, a value + of -1 will be returned." + ::= { cpqHeAsr 4 } + + cpqHeAsrBaseIo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Automatic Server Recovery feature Base I/O address." + ::= { cpqHeAsr 5 } + + cpqHeAsrPost OBJECT-TYPE + SYNTAX INTEGER { + other(1), + failed(2), + ok(3) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Indicates if the Automatic Server Recovery timer passed + the server power-on self test." + ::= { cpqHeAsr 6 } + + cpqHeAsrReset OBJECT-TYPE + SYNTAX INTEGER { + other(1), + manualReset(2), + asrReset(3), + viewed-asrReset(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates if the previous reset was caused by the ASR + timer. An asrReset(3) condition may be changed with a + viewed-asrReset(4) set operation. This is only valid + if this variable's current value is asrReset(3). Setting + this variable to any other value than viewed-asrReset(4) + will fail." + ::= { cpqHeAsr 7 } + + cpqHeAsrReboot OBJECT-TYPE + SYNTAX INTEGER { + other(1), + bootOs(2), + bootUtilities(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates what software should be started when the server is + rebooted by the ASR feature. + + If this object is currently set to other(1), set operations + will fail. This object may not be set to other(1) by a + management station. + + Setting this object to bootOs(2) or bootUtilities(3) + will select the software to be started after an ASR reboot." + ::= { cpqHeAsr 8 } + + cpqHeAsrRebootLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of ASR timer reboots that should cause the server to + boot the firmware console and override the standard reboot + setting (cpqHeAsrReboot). If this value is 0 then no limit is + defined and the standard reboot option will always be used. If + the variable is not supported, a value of -1 will be returned." + ::= { cpqHeAsr 9 } + + cpqHeAsrRebootCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of ASR reboots that have occurred on this server + since the last manual reboot. Reboot count may be reset with + a zero valued set operation on this variable. Setting this + value to a non-zero value will fail. If the variable is not + supported, a value of -1 will be returned." + ::= { cpqHeAsr 10 } + + cpqHeAsrPagerStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The status of the ASR pager feature. + + If the current value of this object is not other(1), it may + be set to disabled(2) or enabled(3). Attempting a set operation + while the value is other(1) will fail. Attempting to set the + value to other(1) will fail. + + Setting this object to enabled(3) will enable the + cpqHeAsrStatus object." + ::= { cpqHeAsr 11 } + + cpqHeAsrPagerNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..60)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The pager number to be dialed after an ASR reboot." + ::= { cpqHeAsr 12 } + + cpqHeAsrCommPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The communication port to be used by the firmware pager and + console. The value zero (0) indicates this setting is undefined. + + If the current value of this object is zero (0) any + attempt to set this object from a management station + will fail. Any attempt to set this object to zero (0) + by a management station will fail. If the variable is not + supported, a value of -1 will be returned." + ::= { cpqHeAsr 13 } + + cpqHeAsrBaudRate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The baud rate to be used by the firmware pager and console. + The value zero (0) indicates this setting is undefined. If the + variable is not supported, a value of -1 will be returned." + ::= { cpqHeAsr 14 } + + cpqHeAsrPagerMessage OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The 8 character pager message entered by the user." + ::= { cpqHeAsr 15 } + + cpqHeAsrBootFail OBJECT-TYPE + SYNTAX INTEGER { + other(1), + interrupt18(2) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The action to be taken if an ASR reboot failure occurs." + ::= { cpqHeAsr 16 } + + cpqHeAsrCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the ASR feature." + ::= { cpqHeAsr 17 } + + cpqHeAsrDialInStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The status of the ASR dial in feature. + + If the current value of this object is other(1) any attempt to + set this object from a management station will fail. Any + attempt to set this object to other(1) by a management station + will fail. + + Setting this object to enabled(3) will enable the + cpqHeAsrStatus object." + ::= { cpqHeAsr 18 } + + cpqHeAsrDialOutStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The status of the ASR dial out feature. + + If the current value of this object is other(1) any attempt to + set this object from a management station will fail. Any + attempt to set this object to other(1) by a management station + will fail. + + Setting this object to enabled(3) will enable the + cpqHeAsrStatus and the cpqHeAsrDialInStatus objects." + ::= { cpqHeAsr 19 } + + cpqHeAsrDialOutNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..60)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The phone number to be dialed for remote diagnostics if an ASR + reset occurs." + ::= { cpqHeAsr 20 } + + cpqHeAsrNetworkAccessStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The status of the ASR network access feature. + + If the current value of this object is other(1) any attempt to + set this object from a management station will fail. Any + attempt to set this object to other(1) by a management station + will fail." + ::= { cpqHeAsr 21 } + + cpqHeAsrPollTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS optional + DESCRIPTION + "The poll time in seconds the ASR watchdog timer is being + refreshed periodically." + ::= { cpqHeAsr 22 } + + +-- **************************************************************************** +-- Health MIB Thermal Group +-- ======================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeThermal Group (1.3.6.1.4.1.232.6.2.6) +-- +-- The cpqHeThermal group describes the status of the temperature and the +-- fans that regulate the temperature. +-- +-- Implementation of the cpqHeThermal group is mandatory for all agents +-- that support the Server Health MIB on a system that supports the thermal +-- sensing features. +-- +-- **************************************************************************** + + cpqHeThermalCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the system's + thermal environment." + ::= { cpqHeThermal 1 } + + cpqHeThermalDegradedAction OBJECT-TYPE + SYNTAX INTEGER { + other(1), + continue(2), + shutdown(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The action to perform when the thermal condition is degraded. + + This value will be one of the following: + other(1) + This feature is not supported by this system or driver. + + continue(2) + The system should be allowed to continue. + + shutdown(3) + The system should be shutdown." + ::= { cpqHeThermal 2 } + + cpqHeThermalTempStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the system's temperature sensors: + + This value will be one of the following: + other(1) + Temp sensing is not supported by this system or driver. + + ok(2) + All temp sensors are within normal operating range. + + degraded(3) + A temp sensor is outside of normal operating range. + + failed(4) + A temp sensor detects a condition that could permanently + damage the system. + + The system will automatically shutdown if the failed(4) condition + results, so it is unlikely that this value will ever be returned + by the agent. If the cpqHeThermalDegradedAction is set to + shutdown(3) the system will be shutdown if the degraded(3) + condition occurs." + ::= { cpqHeThermal 3 } + + cpqHeThermalSystemFanStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the fan(s) in the system. + + This value will be one of the following: + other(1) + Fan status detection is not supported by this system or driver. + + ok(2) + All fans are operating properly. + + degraded(3) + A non-required fan is not operating properly. + + failed(4) + A required fan is not operating properly. + + If the cpqHeThermalDegradedAction is set to shutdown(3) the + system will be shutdown if the failed(4) condition occurs." + ::= { cpqHeThermal 4 } + + cpqHeThermalCpuFanStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the processor fan(s) in the system. + + This value will be one of the following: + other(1) + Fan status detection is not supported by this system or driver. + + ok(2) + All fans are operating properly. + + failed(4) + A fan is not operating properly. + + The system will be shutdown if the failed(4) condition occurs." + ::= { cpqHeThermal 5 } + +-- **************************************************************************** +-- Health MIB Thermal Fan Table +-- ============================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeThermal Group (1.3.6.1.4.1.232.6.2.6) +-- cpqHeThermalFanTable (1.3.6.1.4.1.232.6.2.6.6) +-- +-- **************************************************************************** + + cpqHeThermalFanTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeThermalFanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of fan descriptions." + ::= { cpqHeThermal 6 } + + cpqHeThermalFanEntry OBJECT-TYPE + SYNTAX CpqHeThermalFanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A fan description." + INDEX { cpqHeThermalFanIndex } + ::= { cpqHeThermalFanTable 1 } + + CpqHeThermalFanEntry ::= SEQUENCE { + cpqHeThermalFanIndex INTEGER, + cpqHeThermalFanRequired INTEGER, + cpqHeThermalFanPresent INTEGER, + cpqHeThermalFanCpuFan INTEGER, + cpqHeThermalFanStatus INTEGER, + cpqHeThermalFanHwLocation DisplayString, + cpqHeThermalFanCurrentSpeed INTEGER + } + + cpqHeThermalFanIndex OBJECT-TYPE + SYNTAX INTEGER (0..8) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies this fan description." + ::= { cpqHeThermalFanEntry 1 } + + cpqHeThermalFanRequired OBJECT-TYPE + SYNTAX INTEGER { + other(1), + nonRequired(2), + required(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the fan described is required for proper + operation of the system." + ::= { cpqHeThermalFanEntry 2 } + + cpqHeThermalFanPresent OBJECT-TYPE + SYNTAX INTEGER { + other(1), + absent(2), + present(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the fan described is present in the system." + ::= { cpqHeThermalFanEntry 3 } + + cpqHeThermalFanCpuFan OBJECT-TYPE + SYNTAX INTEGER { + other(1), + systemFan(2), + cpuFan(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the described fan is intended specifically + to cool the CPU(s)." + ::= { cpqHeThermalFanEntry 4 } + + cpqHeThermalFanStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the fan described is operating properly. + + This value will be one of the following: + other(1) + Fan status detection is not supported by this system or driver. + + ok(2) + The fan is operating properly. + + failed(4) + The fan is not operating properly." + ::= { cpqHeThermalFanEntry 5 } + + cpqHeThermalFanHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the fan. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHeThermalFanEntry 6 } + + cpqHeThermalFanCurrentSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The current speed of a fan in rpm - revolutions per minute." + ::= { cpqHeThermalFanEntry 7 } + + +-- **************************************************************************** +-- Health MIB Fault Tolerant Fan Table +-- =================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeThermal Group (1.3.6.1.4.1.232.6.2.6) +-- cpqHeFltTolFanTable (1.3.6.1.4.1.232.6.2.6.7) +-- +-- **************************************************************************** + + cpqHeFltTolFanTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeFltTolFanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of Fault Tolerant Fan Entries." + ::= { cpqHeThermal 7 } + + cpqHeFltTolFanEntry OBJECT-TYPE + SYNTAX CpqHeFltTolFanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A Fault Tolerant Fan Entry." + INDEX { cpqHeFltTolFanChassis, cpqHeFltTolFanIndex } + ::= { cpqHeFltTolFanTable 1 } + + CpqHeFltTolFanEntry ::= SEQUENCE { + cpqHeFltTolFanChassis INTEGER, + cpqHeFltTolFanIndex INTEGER, + cpqHeFltTolFanLocale INTEGER, + cpqHeFltTolFanPresent INTEGER, + cpqHeFltTolFanType INTEGER, + cpqHeFltTolFanSpeed INTEGER, + cpqHeFltTolFanRedundant INTEGER, + cpqHeFltTolFanRedundantPartner INTEGER, + cpqHeFltTolFanCondition INTEGER, + cpqHeFltTolFanHotPlug INTEGER, + cpqHeFltTolFanHwLocation DisplayString, + cpqHeFltTolFanCurrentSpeed INTEGER + } + + cpqHeFltTolFanChassis OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The System Chassis number." + ::= { cpqHeFltTolFanEntry 1 } + + cpqHeFltTolFanIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies this fan description." + ::= { cpqHeFltTolFanEntry 2 } + + cpqHeFltTolFanLocale OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + system(3), + systemBoard(4), + ioBoard(5), + cpu(6), + memory(7), + storage(8), + removableMedia(9), + powerSupply(10), + ambient(11), + chassis(12), + bridgeCard(13), + managementBoard(14), + backplane(15), + networkSlot(16), + bladeSlot(17), + virtual(18) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies the location of the fan in the system." + ::= { cpqHeFltTolFanEntry 3 } + + cpqHeFltTolFanPresent OBJECT-TYPE + SYNTAX INTEGER { + other(1), + absent(2), + present(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the fan described is present in the system." + ::= { cpqHeFltTolFanEntry 4 } + + cpqHeFltTolFanType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + tachOutput(2), + spinDetect(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies the type of fan. + + other(1) + The type of fan could not be determined. + + tachOutput(2) + The fan can increase speed for greater cooling. Implies + spin detect. + + spinDetect(3) + The fan can detect when the fan stops spinning." + ::= { cpqHeFltTolFanEntry 5 } + + cpqHeFltTolFanSpeed OBJECT-TYPE + SYNTAX INTEGER { + other(1), + normal(2), + high(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies the speed of the fan. This value will be set + if the fan type is tachOutput." + ::= { cpqHeFltTolFanEntry 6 } + + cpqHeFltTolFanRedundant OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notRedundant(2), + redundant(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the fan is in a redundant configuration." + ::= { cpqHeFltTolFanEntry 7 } + + cpqHeFltTolFanRedundantPartner OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies the index of the redundant partner. A value + of zero will be used if there is no redundant partner." + ::= { cpqHeFltTolFanEntry 8 } + + cpqHeFltTolFanCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The condition of the fan. + + This value will be one of the following: + other(1) + Fan status detection is not supported by this system or driver. + + ok(2) + The fan is operating properly. + + degraded(2) + A redundant fan is not operating properly. + + failed(4) + A non-redundant fan is not operating properly." + ::= { cpqHeFltTolFanEntry 9 } + + cpqHeFltTolFanHotPlug OBJECT-TYPE + SYNTAX INTEGER { + other(1), + nonHotPluggable(2), + hotPluggable(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This indicates if the fan is capable of being removed and/or + inserted while the system is in an operational state. + + If the value is hotPluggable(3), the fan can be safely + removed if and only if the cpqHeFltTolFanRedundant + field is in a redundant(3) state. + + This value will be one of the following: + other(1) + The state could not be determined. + + nonHotPluggable(2) + The fan is not hot plug capable. + + hotPluggable(3) + The fan is hot plug capable and can be removed if + the system is operating in a redundant state. A fan + may be added to an empty fan bay." + ::= { cpqHeFltTolFanEntry 10 } + + cpqHeFltTolFanHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the fan. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHeFltTolFanEntry 11 } + + cpqHeFltTolFanCurrentSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The current speed of a fan in rpm - revolutions per minute." + ::= { cpqHeFltTolFanEntry 12 } + + +-- **************************************************************************** +-- Health MIB Temperature Sensor Table +-- =================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeThermal Group (1.3.6.1.4.1.232.6.2.6) +-- cpqHeTemperatureTable (1.3.6.1.4.1.232.6.2.6.8) +-- +-- **************************************************************************** + + cpqHeTemperatureTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeTemperatureEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of Temperature Sensor Entries." + ::= { cpqHeThermal 8 } + + cpqHeTemperatureEntry OBJECT-TYPE + SYNTAX CpqHeTemperatureEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A Temperature Sensor Entry." + INDEX { cpqHeTemperatureChassis, cpqHeTemperatureIndex } + ::= { cpqHeTemperatureTable 1 } + + CpqHeTemperatureEntry ::= SEQUENCE { + cpqHeTemperatureChassis INTEGER, + cpqHeTemperatureIndex INTEGER, + cpqHeTemperatureLocale INTEGER, + cpqHeTemperatureCelsius INTEGER, + cpqHeTemperatureThreshold INTEGER, + cpqHeTemperatureCondition INTEGER, + cpqHeTemperatureThresholdType INTEGER, + cpqHeTemperatureHwLocation DisplayString + } + + cpqHeTemperatureChassis OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The System Chassis number." + ::= { cpqHeTemperatureEntry 1 } + + cpqHeTemperatureIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies this temperature sensor + description." + ::= { cpqHeTemperatureEntry 2 } + + cpqHeTemperatureLocale OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + system(3), + systemBoard(4), + ioBoard(5), + cpu(6), + memory(7), + storage(8), + removableMedia(9), + powerSupply(10), + ambient(11), + chassis(12), + bridgeCard(13) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies the location of the temperature sensor + present in the system." + ::= { cpqHeTemperatureEntry 3 } + + cpqHeTemperatureCelsius OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the current temperature sensor reading in degrees + celsius. + + If this value cannot be determined by software, then a value + of -1 will be returned." + ::= { cpqHeTemperatureEntry 4 } + + cpqHeTemperatureThreshold OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the shutdown threshold temperature sensor setting + in degrees celsius. This is the temperature in which the + sensor will be considered to be in a failed state thus + causing the system to be shutdown. + + If this value cannot be determined by software, then a value + of -1 will be returned. + + Only the Ambient zone type allows setting of the threshold + temperature." + ::= { cpqHeTemperatureEntry 5 } + + cpqHeTemperatureCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Temperature sensor condition. + + This value will be one of the following: + other(1) + Temperature could not be determined. + + ok(2) + The temperature sensor is within normal operating range. + + degraded(3) + The temperature sensor is outside of normal operating range. + + failed(4) + The temperature sensor detects a condition that could + permanently damage the system. + + The system will automatically shutdown if the failed(4) condition + results, so it is unlikely that this value will ever be returned + by the agent. If the cpqHeThermalDegradedAction is set to + shutdown(3) the system will be shutdown if the degraded(3) + condition occurs." + ::= { cpqHeTemperatureEntry 6 } + + cpqHeTemperatureThresholdType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + blowout(5), + caution(9), + critical(15) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies the type of this instance of temperature + sensor. + + This value will be one of the following: + other(1) + Temperature threshold type could not be determined. + + blowout(5) + If a blowout(5) temperature sensor reaches its threshold, + the fan or fans in the area of the temperature sensor will + increase in speed in an attempt to reduce the temperature + before a caution or critical threshold is reached. + + caution(9) + If a caution(9) temperature sensor reaches its threshold, + the cpqHeTemperatureCondition will be set to degraded(3) + and the system will either continue or shutdown depending + on the setting of cpqHeThermalDegradedAction. + + critical(15) + If a critical(15) temperature sensor reaches its threshold, + the cpqHeTemperatureCondition will be set to failed(4) + and the system will shutdown." + ::= { cpqHeTemperatureEntry 7 } + + cpqHeTemperatureHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the temperature sensor. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHeTemperatureEntry 8 } + +-- **************************************************************************** +-- Health MIB Post Message Group +-- ============================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHePostMsg Group (1.3.6.1.4.1.232.6.2.7) +-- +-- The cpqHePostMsg group contains a table of the non-critical POST +-- errors that occurred during the last reboot. +-- +-- Implementation of the cpqHePostMsg group is mandatory for all agents +-- that support the Server Health MIB on a system that supports the POST +-- error recording feature. +-- +-- **************************************************************************** + + cpqHePostMsgCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the POST + error recording feature." + ::= { cpqHePostMsg 1 } + +-- **************************************************************************** +-- Health MIB Post Message Table +-- ============================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHePostMsg Group (1.3.6.1.4.1.232.6.2.7) +-- cpqHePostMsgTable (1.3.6.1.4.1.232.6.2.7.2) +-- +-- This table may be empty if no errors occurred during POST. +-- +-- **************************************************************************** + + cpqHePostMsgTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHePostMsgEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of POST error message numbers." + ::= { cpqHePostMsg 2 } + + cpqHePostMsgEntry OBJECT-TYPE + SYNTAX CpqHePostMsgEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A POST error message number." + INDEX { cpqHePostMsgIndex } + ::= { cpqHePostMsgTable 1 } + + CpqHePostMsgEntry ::= SEQUENCE { + cpqHePostMsgIndex INTEGER, + cpqHePostMsgCode INTEGER, + cpqHePostMsgDesc DisplayString + } + + + cpqHePostMsgIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies this POST error description." + ::= { cpqHePostMsgEntry 1 } + + cpqHePostMsgCode OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies POST message number for this error." + ::= { cpqHePostMsgEntry 2 } + + cpqHePostMsgDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This contains a text description of the POST error. + A string of length zero (0) will be returned if no description + is available." + ::= { cpqHePostMsgEntry 3 } + + cpqHePostMsgEv OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..8)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The EV used to store 8 non-critical POST error codes + for use with Quicktest, Utilities, and CIM. Setting + this variable with a zero length octet string will + clear this variable. All other set operations will + fail." + ::= { cpqHePostMsg 3 } + + +-- **************************************************************************** +-- Health MIB System Utilization Group +-- =================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeSysUtil Group (1.3.6.1.4.1.232.6.2.8) +-- +-- The cpqHeSysUtil group contains measures of system utilization. +-- This group includes long term utilization information like the total +-- server up time since originally configured. This group also contains +-- current operating utilization information such as the current EISA bus +-- utilization. +-- +-- Implementation of the cpqHeSysUtil group is mandatory for all agents +-- that support the Server Health MIB on a system that supports any system +-- utilization features. +-- +-- **************************************************************************** + + cpqHeSysUtilLifeTime OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total time (in minutes) the system has been in full + operation (while the server health supporting software was + running)." + ::= { cpqHeSysUtil 1 } + + cpqHeSysUtilEisaBusMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA bus utilization as a percentage of the theoretical + maximum during the last minute. A value of -1 indicates that + this feature is not supported on this machine or is not + available." + ::= { cpqHeSysUtil 2 } + + cpqHeSysUtilEisaBusFiveMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA bus utilization as a percentage of the theoretical + maximum during the last five minutes. A value of -1 indicates + that this feature is not supported on this machine or is not + available." + ::= { cpqHeSysUtil 3 } + + cpqHeSysUtilEisaBusThirtyMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA bus utilization as a percentage of the theoretical + maximum during the last thirty minutes. A value of -1 + indicates that this feature is not supported on this machine + or is not available." + ::= { cpqHeSysUtil 4 } + + cpqHeSysUtilEisaBusHour OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA bus utilization as a percentage of the theoretical + maximum during the last hour. A value of -1 indicates that + this feature is not supported on this machine or is not + available." + ::= { cpqHeSysUtil 5 } + +-- **************************************************************************** +-- Health MIB PCI Utilization Table +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeSysUtil Group (1.3.6.1.4.1.232.6.2.8) +-- cpqHeSysUtilPciTable (1.3.6.1.4.1.232.6.2.8.6) +-- +-- +-- **************************************************************************** + + cpqHeSysUtilPciTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeSysUtilPciEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of PCI utilization numbers for a whole aggregate + PCI bus or a specific device on that bus." + ::= { cpqHeSysUtil 6 } + + cpqHeSysUtilPciEntry OBJECT-TYPE + SYNTAX CpqHeSysUtilPciEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "PCI utilization entry" + INDEX { cpqHeSysUtilPciIndex } + ::= { cpqHeSysUtilPciTable 1 } + + CpqHeSysUtilPciEntry ::= SEQUENCE { + cpqHeSysUtilPciIndex INTEGER, + cpqHeSysUtilPciBus INTEGER, + cpqHeSysUtilPciDevice INTEGER, + cpqHeSysUtilPciMin INTEGER, + cpqHeSysUtilPciFiveMin INTEGER, + cpqHeSysUtilPciThirtyMin INTEGER, + cpqHeSysUtilPciHour INTEGER, + cpqHeSysUtilPciHwLocation DisplayString + } + + cpqHeSysUtilPciIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index into each PCI utilization table entry. " + ::= { cpqHeSysUtilPciEntry 1 } + + cpqHeSysUtilPciBus OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The PCI bus number for this set of utilization numbers. " + ::= { cpqHeSysUtilPciEntry 2 } + + cpqHeSysUtilPciDevice OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The PCI device number for this set of utilization numbers. + If this value is -1, the utilization reported is for the + aggregate of all devices on this PCI bus. " + ::= { cpqHeSysUtilPciEntry 3 } + + cpqHeSysUtilPciMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The utilization as a percentage of the theoretical + maximum during the last minute. A value of -1 indicates + that the utilization number is not available." + ::= { cpqHeSysUtilPciEntry 4 } + + cpqHeSysUtilPciFiveMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The utilization as a percentage of the theoretical + maximum during the last five minutes. A value of -1 + indicates that the utilization number is not available." + ::= { cpqHeSysUtilPciEntry 5 } + + cpqHeSysUtilPciThirtyMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The utilization as a percentage of the theoretical + maximum during the last thirty minutes. A value of -1 + indicates that the utilization number is not available." + ::= { cpqHeSysUtilPciEntry 6 } + + cpqHeSysUtilPciHour OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The utilization as a percentage of the theoretical + maximum during the last hour. A value of -1 indicates + that the utilization number is not available." + ::= { cpqHeSysUtilPciEntry 7 } + + cpqHeSysUtilPciHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the PCI drawer. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHeSysUtilPciEntry 8 } + +-- **************************************************************************** +-- Health MIB Fault Tolerant Power Supply Group +-- ============================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeFltTolPwrSupply Group (1.3.6.1.4.1.232.6.2.9) +-- +-- The cpqHeFltTolPwrSupply group contains management information about fault +-- tolerant power supplies. +-- +-- Implementation of the cpqHeFltTolPwrSupply group is mandatory for all +-- agents that support the Server Health MIB. +-- +-- **************************************************************************** + cpqHeFltTolPwrSupplyCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the fault tolerant + power supply sub-system." + ::= { cpqHeFltTolPwrSupply 1 } + + cpqHeFltTolPwrSupplyStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notSupported(2), + notInstalled(3), + installed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the status of the fault tolerant power + supply." + ::= { cpqHeFltTolPwrSupply 2 } + +-- **************************************************************************** +-- Health MIB Fault Tolerant Power Supply Table +-- ============================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeFltTolPowerSupply Group (1.3.6.1.4.1.232.6.2.9) +-- cpqHeFltTolPowerSupplyTable (1.3.6.1.4.1.232.6.2.9.3) +-- +-- **************************************************************************** + + cpqHeFltTolPowerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeFltTolPowerSupplyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of Power Supply Entries." + ::= { cpqHeFltTolPwrSupply 3 } + + cpqHeFltTolPowerSupplyEntry OBJECT-TYPE + SYNTAX CpqHeFltTolPowerSupplyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A Fault Tolerant Power Supply Entry." + INDEX { cpqHeFltTolPowerSupplyChassis, cpqHeFltTolPowerSupplyBay } + ::= { cpqHeFltTolPowerSupplyTable 1 } + + CpqHeFltTolPowerSupplyEntry ::= SEQUENCE { + cpqHeFltTolPowerSupplyChassis INTEGER, + cpqHeFltTolPowerSupplyBay INTEGER, + cpqHeFltTolPowerSupplyPresent INTEGER, + cpqHeFltTolPowerSupplyCondition INTEGER, + cpqHeFltTolPowerSupplyStatus INTEGER, + cpqHeFltTolPowerSupplyMainVoltage INTEGER, + cpqHeFltTolPowerSupplyCapacityUsed INTEGER, + cpqHeFltTolPowerSupplyCapacityMaximum INTEGER, + cpqHeFltTolPowerSupplyRedundant INTEGER, + cpqHeFltTolPowerSupplyModel DisplayString, + cpqHeFltTolPowerSupplySerialNumber DisplayString, + cpqHeFltTolPowerSupplyAutoRev OCTET STRING, + cpqHeFltTolPowerSupplyHotPlug INTEGER, + cpqHeFltTolPowerSupplyFirmwareRev DisplayString, + cpqHeFltTolPowerSupplyHwLocation DisplayString, + cpqHeFltTolPowerSupplySparePartNum DisplayString, + cpqHeFltTolPowerSupplyRedundantPartner INTEGER + } + + cpqHeFltTolPowerSupplyChassis OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The system chassis number." + ::= { cpqHeFltTolPowerSupplyEntry 1 } + + cpqHeFltTolPowerSupplyBay OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The bay number to index within this chassis." + ::= { cpqHeFltTolPowerSupplyEntry 2 } + + cpqHeFltTolPowerSupplyPresent OBJECT-TYPE + SYNTAX INTEGER { + other(1), + absent(2), + present(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the power supply is present in the chassis." + ::= { cpqHeFltTolPowerSupplyEntry 3 } + + cpqHeFltTolPowerSupplyCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The condition of the power supply. + + This value will be one of the following: + + other(1) + The status could not be determined or not present. + + ok(2) + The power supply is operating normally. + + degraded(3) + A temperature sensor, fan or other power supply component is + outside of normal operating range. + + failed(4) + A power supply component detects a condition that could + permanently damage the system." + ::= { cpqHeFltTolPowerSupplyEntry 4 } + + cpqHeFltTolPowerSupplyStatus OBJECT-TYPE + SYNTAX INTEGER { + noError(1), + generalFailure(2), + bistFailure(3), + fanFailure(4), + tempFailure(5), + interlockOpen(6), + epromFailed(7), + vrefFailed(8), + dacFailed(9), + ramTestFailed(10), + voltageChannelFailed(11), + orringdiodeFailed(12), + brownOut(13), + giveupOnStartup(14), + nvramInvalid(15), + calibrationTableInvalid(16) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the power supply." + ::= { cpqHeFltTolPowerSupplyEntry 5 } + + cpqHeFltTolPowerSupplyMainVoltage OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The input main voltage of the power supply in volts." + ::= { cpqHeFltTolPowerSupplyEntry 6 } + + cpqHeFltTolPowerSupplyCapacityUsed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The currently used capacity of the power supply in watts." + ::= { cpqHeFltTolPowerSupplyEntry 7 } + + cpqHeFltTolPowerSupplyCapacityMaximum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum capacity of the power supply in watts." + ::= { cpqHeFltTolPowerSupplyEntry 8 } + + cpqHeFltTolPowerSupplyRedundant OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notRedundant(2), + redundant(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The redundancy state of the power supply. + + This value will be one of the following: + other(1) + The redundancy state could not be determined. + + notRedundant(2) + The power supply is not operating in a redundant state. + + redundant(3) + The power supply is operating in a redundant state." + ::= { cpqHeFltTolPowerSupplyEntry 9 } + + cpqHeFltTolPowerSupplyModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The power supply model name." + ::= { cpqHeFltTolPowerSupplyEntry 10 } + + cpqHeFltTolPowerSupplySerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The power supply serial number." + ::= { cpqHeFltTolPowerSupplyEntry 11 } + + cpqHeFltTolPowerSupplyAutoRev OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The power supply auto revision number." + ::= { cpqHeFltTolPowerSupplyEntry 12 } + + cpqHeFltTolPowerSupplyHotPlug OBJECT-TYPE + SYNTAX INTEGER { + other(1), + nonHotPluggable(2), + hotPluggable(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This indicates if the power supply is capable of being + removed and/or inserted while the system is in an operational + state. + + If the value is hotPluggable(3), the power supply can be safely + removed if and only if the cpqHeFltTolPowerSupplyRedundant + field is in a redundant(3) state. + + This value will be one of the following: + other(1) + The state could not be determined. + + nonHotPluggable(2) + The power supply is not hot plug capable. + + hotPluggable(3) + The power supply is hot plug capable and can be removed if + the system is operating in a redundant state. A power + supply may be added to an empty power supply bay." + ::= { cpqHeFltTolPowerSupplyEntry 13 } + + cpqHeFltTolPowerSupplyFirmwareRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The power supply firmware revision. This field will be left + blank if the firmware revision is unknown." + ::= { cpqHeFltTolPowerSupplyEntry 14 } + + cpqHeFltTolPowerSupplyHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the power supply. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHeFltTolPowerSupplyEntry 15 } + + cpqHeFltTolPowerSupplySparePartNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..80)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The power supply spare part number." + ::= { cpqHeFltTolPowerSupplyEntry 16 } + + cpqHeFltTolPowerSupplyRedundantPartner OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies the index of the redundant partner. A value + of zero will be used if there is no redundant partner." + ::= { cpqHeFltTolPowerSupplyEntry 17 } + + + +-- **************************************************************************** +-- Health MIB Integrated Remote Console (IRC) Group +-- ================================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeIRC Group (1.3.6.1.4.1.232.6.2.10) +-- +-- The cpqHeIRC group contains management information about the Integrated +-- Remote Console ASIC. +-- +-- Implementation of the cpqHeIRC group is mandatory for all agents that +-- support the Server Health MIB. +-- +-- **************************************************************************** + + cpqHeIRCStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + notavailable(2), + disabled(3), + enabled(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the Integrated Remote Console. A value of notavailable + will be returned if this system does not contain IRC." + + ::= { cpqHeIRC 1 } + +-- **************************************************************************** +-- Health MIB System Event Log Group +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeEventLog Group (1.3.6.1.4.1.232.6.2.11) +-- +-- The cpqHeEventLog group describes the health system event log. +-- +-- Implementation of the cpqHeEventLog group is mandatory for all +-- agents that support the Server Health MIB. +-- +-- **************************************************************************** + + cpqHeEventLogSupported OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notSupported(2), + supported(3), + clear(4) -- Settable value to clear the log + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value specifies if this system supports the Integrated + Management Log feature. + + An SNMP set of the value clear(4) will clear the System Event + Log of all entries." + ::= { cpqHeEventLog 1 } + + cpqHeEventLogCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the Integrated + Management Log feature." + ::= { cpqHeEventLog 2 } + +-- **************************************************************************** +-- Health MIB System Event Log Table +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeEventLog Group (1.3.6.1.4.1.232.6.2.11) +-- cpqHeEventLogTable (1.3.6.1.4.1.232.6.2.11.3) +-- +-- **************************************************************************** + + cpqHeEventLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeEventLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of System Event Log Entries." + ::= { cpqHeEventLog 3 } + + cpqHeEventLogEntry OBJECT-TYPE + SYNTAX CpqHeEventLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A System Event Log Entry." + INDEX { cpqHeEventLogEntryNumber } + ::= { cpqHeEventLogTable 1 } + + CpqHeEventLogEntry ::= SEQUENCE { + cpqHeEventLogEntryNumber INTEGER, + cpqHeEventLogEntrySeverity INTEGER, + cpqHeEventLogEntryClass INTEGER, + cpqHeEventLogEntryCode INTEGER, + cpqHeEventLogEntryCount INTEGER, + cpqHeEventLogInitialTime OCTET STRING, + cpqHeEventLogUpdateTime OCTET STRING, + cpqHeEventLogErrorDesc DisplayString, + cpqHeEventLogFreeFormData OCTET STRING + } + + cpqHeEventLogEntryNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies this system event log + entry." + ::= { cpqHeEventLogEntry 1 } + + cpqHeEventLogEntrySeverity OBJECT-TYPE + SYNTAX INTEGER { + informational(2), -- informational with no action required + infoWithAlert(3), -- informational but with LCD alert message + repaired(6), -- corrective action taken + caution(9), -- non-fatal error condition + critical(15) -- component failure + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value specifies the severity of the event log entry. + A caution or critical entry can have it's severity + lowered by setting this variable to the repaired state." + ::= { cpqHeEventLogEntry 2 } + + cpqHeEventLogEntryClass OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the event log entry class designation." + ::= { cpqHeEventLogEntry 3 } + + cpqHeEventLogEntryCode OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the event log entry code designation. + The meaning of this changes depending on the class." + ::= { cpqHeEventLogEntry 4 } + + cpqHeEventLogEntryCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the event log entry occurrence count. + This represents the number of times this event has occurred + starting from the initial time until the last modified time." + ::= { cpqHeEventLogEntry 5 } + + cpqHeEventLogInitialTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time stamp when the event log entry was first created. + + field octets contents range + ===== ====== ======== ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + + The year field is set with the most significant octet first. + A value of 0 in the year indicates an unknown time stamp." + ::= { cpqHeEventLogEntry 6 } + + cpqHeEventLogUpdateTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time stamp when the event log entry was last modified. + + field octets contents range + ===== ====== ======== ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + + The year field is set with the most significant octet first. + A value of 0 in the year indicates an unknown time stamp." + ::= { cpqHeEventLogEntry 7 } + + cpqHeEventLogErrorDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A text description of the event log entry." + ::= { cpqHeEventLogEntry 8 } + + cpqHeEventLogFreeFormData OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the free form data associated with a particular + event." + ::= { cpqHeEventLogEntry 9 } + +-- **************************************************************************** +-- Health MIB Management Display Group +-- =================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeMgmtDisplay Group (1.3.6.1.4.1.232.6.2.12) +-- +-- **************************************************************************** + +-- The cpqHeMgmtDisplay group maintains information about the Management +-- Display device. +-- +-- Implementation of the cpqHeTrap group is mandatory for agents that +-- support the Server Health MIB. + + cpqHeMgmtDisplayType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- Unknown device or could not be determined + none(2), -- No Management display device + imd4x16(3), -- IMD display (4 lines by 16 chars) + ocp1x16(4) -- Digital OCP display (1 line by 16 chars) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the type of Management Display device. + If a display device is available on the server, the type + will be set accordingly. If no device is present, the value + will be set to none(2)." + ::= { cpqHeMgmtDisplay 1 } + + cpqHeMgmtDisplayText OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The text to be written to the Management display device. + + If this item is read, it may not accurately reflect what + is currently displayed." + ::= { cpqHeMgmtDisplay 2 } + + cpqHeMgmtUID OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- Unknown device or could not be determined + none(2), -- No unit identifier device + ledOn(3), -- Unit identifier LED is On + ledOff(4), -- Unit identifier LED is Off + ledBlinking(5) -- Unit identifier LED is Blinking + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Unit Identifier LED. + + This value will be one of the following: + + other(1) + The state of the LED could not be determined. Setting the + LED state is not allowed. + + none(2) + The LED is not present. Setting LED state is not allowed. + + ledOn(3) + The LED is present and ON. The LED can be turned Off or Blinking + by setting the cpqHeMgmtUID to ledOff(4) or ledBlinking(5) respectively. + + ledOff(4) + The LED is present and OFF. The LED can be turned On or Blinking + by setting the cpqHeMgmtUID to ledOn(3) or ledBlinking(5) respectively. + + ledBlinking(5) + The LED is present and is Blinking. The LED can be turned On or Off + by setting the cpqHeMgmtUID to ledOn(3) or ledOff(4) respectively" + ::= { cpqHeMgmtDisplay 3 } + +-- **************************************************************************** +-- Health MIB Power Converter Group +-- ================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHePowerConverter Group (1.3.6.1.4.1.232.6.2.13) +-- +-- The cpqHePowerConverter group describes the power converter modules +-- in the system. +-- +-- Implementation of the cpqHePowerConverter group is mandatory for all +-- agents that support the Server Health MIB. +-- +-- **************************************************************************** + + cpqHePowerConverterSupported OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notSupported(2), + supported(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies if this system supports reporting + power converter module information." + ::= { cpqHePowerConverter 1 } + + cpqHePowerConverterCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the power + converters modules in the system." + ::= { cpqHePowerConverter 2 } + +-- **************************************************************************** +-- Health MIB Power Converter Table +-- ================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHePowerConverter Group (1.3.6.1.4.1.232.6.2.13) +-- cpqHePowerConverterTable (1.3.6.1.4.1.232.6.2.13.3) +-- +-- **************************************************************************** + + cpqHePowerConverterTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHePowerConverterEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of Power Converter Module Entries." + ::= { cpqHePowerConverter 3 } + + cpqHePowerConverterEntry OBJECT-TYPE + SYNTAX CpqHePowerConverterEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A Power Converter Module Entry." + INDEX { cpqHePwrConvChassis, cpqHePwrConvIndex } + ::= { cpqHePowerConverterTable 1 } + + CpqHePowerConverterEntry ::= SEQUENCE { + cpqHePwrConvChassis INTEGER, + cpqHePwrConvIndex INTEGER, + cpqHePwrConvPresent INTEGER, + cpqHePwrConvSlot INTEGER, + cpqHePwrConvSocket INTEGER, + cpqHePwrConvRedundant INTEGER, + cpqHePwrConvRedundantGroupId INTEGER, + cpqHePwrConvCondition INTEGER, + cpqHePwrConvHwLocation DisplayString + } + + cpqHePwrConvChassis OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The system chassis number containing the power converter + modules." + ::= { cpqHePowerConverterEntry 1 } + + cpqHePwrConvIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Power Converter Module number to index within the chassis." + ::= { cpqHePowerConverterEntry 2 } + + cpqHePwrConvPresent OBJECT-TYPE + SYNTAX INTEGER { + other(1), + absent(2), + present(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the Power Converter Module described is + present in the system." + ::= { cpqHePowerConverterEntry 3 } + + cpqHePwrConvSlot OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Power Converter Module slot number within the chassis." + ::= { cpqHePowerConverterEntry 4 } + + cpqHePwrConvSocket OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Power Converter Module socket number within the slot." + ::= { cpqHePowerConverterEntry 5 } + + cpqHePwrConvRedundant OBJECT-TYPE + SYNTAX INTEGER { + other(1), + nonRedundant(2), + redundant(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This specifies if the Power Converter Module is redundant." + ::= { cpqHePowerConverterEntry 6 } + + cpqHePwrConvRedundantGroupId OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Power Converter Module group id. A redundant set of + power converters will have the same group id." + ::= { cpqHePowerConverterEntry 7 } + + cpqHePwrConvCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Power Converter Module condition." + ::= { cpqHePowerConverterEntry 8 } + + cpqHePwrConvHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the power converter. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHePowerConverterEntry 9 } + +-- **************************************************************************** +-- Health MIB Advanced Memory Protection Group (formerly Resilient Memory) +-- ======================================================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeResilientMemory Group (1.3.6.1.4.1.232.6.2.14) +-- +-- The cpqHeResilientMemory group describes the Advanced Memory Protection +-- sub-system in the server. +-- +-- Implementation of the cpqHeResilientMemory group is mandatory for all +-- Server Agents that support the Server Health MIB. +-- +-- **************************************************************************** + + cpqHeResilientMemTypeActive OBJECT-TYPE + SYNTAX INTEGER { + other(1), + none(2), + onLineSpare(3), + mirrored(4), -- deprecated + advancedEcc(5), + mirroredSingleBoard(6), + mirroredDualBoard(7), + xor(8), + lockStep(9) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the type of Advanced Memory Protection fault + tolerance currently active on the system. + + The following connection states are supported: + + other(1) + The Advanced Memory Protection fault tolerance cannot be + determined by the Management Agent. You may need to upgrade + your software. + + none(2) + This system is not configured for Advanced Memory Protection + fault tolerance or Advanced Memory Protection is not available + on this system. + + onLineSpare(3) + This system is configured for Online Spare Advanced Memory + Protection. + + mirrored(4) + This system is configured for Mirrored Advanced Memory + Protection. + + advancedECC(5) + This system is configured for the Advanced ECC type of + Advanced Memory Protection. + + mirroredSingleBoard(6) + This system is configured for Mirrored Advanced Memory + Protection within a single memory board. + + mirroredDualBoard(7) + This system is configured for Mirrored Advanced Memory + Protection within a dual memory board configuration. The + mirrored memory may be swapped with memory on the same + memory board or with memory on the second memory board. + + xor(8) + This system is configured for Advanced Memory Protection + using the XOR engine. + + lockStep(9) + This system is configured for LockStep type of + Advanced Memory Protection." + ::= { cpqHeResilientMemory 1 } + + cpqHeResilientMemTypeAvailable OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the type of Advanced Memory Protection + Fault Tolerance available on the system. + + This is a collection of flags used to indicate the fault + Advanced Memory Protection options available. This integer + is a bitmap, with each bit indicating the availability of an + option. If the bit is set to 1, the option is available; + otherwise it is not. Multiple options are allowed. + + NOTE: bit 31 is the most significant bit, bit 0 is the least + significant. + + Bit 31-7: RESERVED (0) + Bit 6: LockStep + Bit 5: XOR + Bit 4: Mirrored Memory with dual memory boards + Bit 3: Mirrored Memory within a single memory board + Bit 2: Advanced ECC + Bit 1: Mirrored (deprecated) + Bit 0: Online Spare" + ::= { cpqHeResilientMemory 2 } + + cpqHeResilientMemStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notProtected(2), + protected(3), + degraded(4), + dimmEcc(5), + mirrorNoFaults(6), + mirrorWithFaults(7), + hotSpareNoFaults(8), + hotSpareWithFaults(9), + xorNoFaults(10), + xorWithFaults(11), + advancedEcc(12), + advancedEccWithFaults(13), + lockStep(14), + lockStepWithFaults(15) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the current state of the Advanced + Memory Protection subsystem. + + The following states are supported: + + other(1) + The system does not support Advanced Memory Protection or the + status cannot be determined by the Management Agent. + + notProtected(2) + This system supports Advanced Memory Protection but the + feature is disabled. + + protected(3) + The system is protected by Advanced Memory Protection. + + degraded(4) + The system was protected, but the Advanced Memory + Protection feature has been engaged. + + dimmEcc(5) + The system is protected via DIMM ECC only. + + mirrorNoFaults(6) + The system is protected by Advanced Memory Protection in the + mirrored mode. No DIMM faults have been detected. + + mirrorWithFaults(7) + The system is protected by Advanced Memory Protection in the + mirrored mode. One or more DIMM faults have been detected. + + hotSpareNoFaults(8) + The system is protected by Advanced Memory Protection in the + hot spare mode. No DIMM faults have been detected. + + hotSpareWithFaults(9) + The system is protected by Advanced Memory Protection in the + hot spare mode. One or more DIMM faults have been detected. + + xorNoFaults(10) + The system is protected by Advanced Memory Protection in the + XOR memory mode. No DIMM faults have been detected. + + xorWithFaults(11) + The system is protected by Advanced Memory Protection in the + XOR memory mode. One or more DIMM faults have been detected. + + advancedEcc(12) + The system is protected by Advanced Memory Protection in the + Advanced ECC mode. + + advancedEccWithFaults(13) + The system is protected by Advanced Memory Protection in the + Advanced ECC mode. One or more DIMM faults have been detected. + + lockStep(14) + The system is protected by Advanced Memory Protection in the + Lock Step mode. + + localStepWithFaults(15) + The system is protected by Advanced Memory Protection in the + Lock Step mode. One or more DIMM faults have been detected." + ::= { cpqHeResilientMemory 3 } + + cpqHeResilientMemCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the current condition of the Advanced + Memory Protection subsystem. + + The following states are supported: + + other(1) + The system does not support fault tolerant memory or the + state cannot be determined by the Management Agent. + + ok(2) + This system is operating normally. + + degraded(3) + The system is running in a degraded state because the + Advanced Memory Protection subsystem has been engaged." + ::= { cpqHeResilientMemory 4 } + + cpqHeResilientMemHotPlug OBJECT-TYPE + SYNTAX INTEGER { + other(1), + nonHotPluggable(2), + hotPluggable(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the current condition of the Advanced + Memory Protection subsystem. + + The following states are supported: + + other(1) + The state could not be determined or the system does not + support Advanced Memory Protection. + + nonHotPluggable(2) + The memory board or cartridge is not hot plug capable. + + hotPluggable(3) + The memory board or cartridge is hot plug capable and can be + removed if the system is operating in a redundant state. A + memory board or cartridge may be added to an empty bay." + ::= { cpqHeResilientMemory 5 } + + cpqHeResilientMemOperatingSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the current operating speed of the Advanced + Memory Protection subsystem in MHz. + + If this system does not support Advanced Memory Protection or this + value cannot be determined, then a value of 0 will be returned." + ::= { cpqHeResilientMemory 6 } + + cpqHeResilientMemOsMemSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the size of memory as seen by the Operating + System in MB (1 MB = 1048576 bytes). + + If this system does not support Advanced Memory Protection or this + value cannot be determined, then a value of 0 will be returned." + ::= { cpqHeResilientMemory 7 } + + cpqHeResilientMemTotalMemSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the total size of memory including memory seen + by the Operating System and the memory used for spare, mirrored, or + RAID configurations in MB (1 MB = 1048576 bytes). + + If this system does not support Advanced Memory Protection or this + value cannot be determined, then a value of 0 will be returned." + ::= { cpqHeResilientMemory 8 } + + cpqHeResilientMemRivState OBJECT-TYPE + SYNTAX INTEGER { + other(1), + inactive(2), + rebuilding(3), + initializing(4), + verifying(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the state of the Rebuild/Initialize/Verify + (RIV) engine of the Advanced Memory Protection sub-system. + + The following states are supported: + + other(1) + The system does not support Advanced Memory Protection or this + value cannot be determined, + + inactive(2) + The RIV engine is idle. + + rebuilding(3) + The RIV engine is rebuilding the XOR data. + + initializing(4) + The RIV engine is initializing memory. + + verifying(5) + The RIV engine is verifying memory integrity." + ::= { cpqHeResilientMemory 9 } + +-- **************************************************************************** +-- Health MIB Advanced Memory Protection Board Group +-- ================================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeResilientMemory Group (1.3.6.1.4.1.232.6.2.14) +-- cpqHeResMemBoardTable (1.3.6.1.4.1.232.6.2.14.10) +-- cpqHeResMemBoardEntry (1.3.6.1.4.1.232.6.2.14.10.1) +-- +-- **************************************************************************** + + cpqHeResMemBoardTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeResMemBoardEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of memory board or cartridge descriptions in Advanced + Memory Protection systems." + ::= { cpqHeResilientMemory 10 } + + cpqHeResMemBoardEntry OBJECT-TYPE + SYNTAX CpqHeResMemBoardEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A memory board or cartridge description." + INDEX { cpqHeResMemBoardSlotIndex } + ::= { cpqHeResMemBoardTable 1 } + + CpqHeResMemBoardEntry ::= SEQUENCE { + cpqHeResMemBoardSlotIndex INTEGER, + cpqHeResMemBoardOnlineStatus INTEGER, + cpqHeResMemBoardErrorStatus INTEGER, + cpqHeResMemBoardLocked INTEGER, + cpqHeResMemBoardNumSockets INTEGER, + cpqHeResMemBoardOsMemSize INTEGER, + cpqHeResMemBoardTotalMemSize INTEGER, + cpqHeResMemBoardCondition INTEGER, + cpqHeResMemBoardHotPlug INTEGER + } + + cpqHeResMemBoardSlotIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The slot in which the memory board or cartridge is installed." + ::= { cpqHeResMemBoardEntry 1 } + + cpqHeResMemBoardOnlineStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + present(2), + absent(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The online status of the Advanced Memory Protection board or + cartridge. + + The following status values are supported: + + other(1) + The value is unsupported or could not be determined. + + present(2) + The board or cartridge has memory and is currently online. + + absent(3) + The board or cartridge is missing or offline." + ::= { cpqHeResMemBoardEntry 2 } + + cpqHeResMemBoardErrorStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + noError(2), + dimmEccError(3), + unlockError(4), + configError(5), + busError(6), + powerError(7), + advancedEcc(8), + onlineSpare(9), + mirrored(10), + mirroredDimmError(11), + memoryRaid(12), + raidDimmError(13), + lockstep(14), + lockstepDimmError(15) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The error status of the Advanced Memory Protection board or + cartridge. + + The following status values are supported: + + other(1) + The value is unsupported or could not be determined. + + noError(2) + The board or cartridge is configured and operating correctly. + + dimmEccError(3) + The board or cartridge has at least one DIMM ECC error. + + unlockError(4) + The board or cartridge is unlocked when it should not be. + Please insure the board of cartridge is locked. + + configError(5) + The board or cartridge has a bad memory configuration. + Please insure all memory modules are of the correct type, + speed, latency, etc. + + busError(6) + The board or cartridge has a memory bus error. + Please insure all memory modules are of the correct type, + speed, latency, etc. Also insure the cartridge is inserted + properly. + + powerError(7) + The board or cartridge has power error. + Please insure all memory modules are of the correct type, + speed, latency, etc. Also insure the cartridge is inserted + properly. + + advancedEcc(8), + The board or cartridge is configured for advanced Ecc mode. + + onlineSpare(9), + The board or cartridge is configured for Online Spare mode. + + mirrored(10), + The board or cartridge is configured for mirrored mode. + + mirroredDimmError(11), + The board or cartridge has a mirrored Dimm error. + + memoryRaid(12), + The board or cartridge is configured for memory raid mode. + + raidDimmError(13) + The board or cartridge has a raid Dimm error. + + lockstep(14) + The board or cartridge is configured for LockStep. + + lockstepDimmError(15) + The board or cartridge has a lockStep Dimm error." + ::= { cpqHeResMemBoardEntry 3 } + + cpqHeResMemBoardLocked OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unlocked(2), + locked(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The locked state of the Advanced Memory Protection board or + cartridge. + + The following status values are supported: + + other(1) + The value is unsupported or could not be determined. If the + system does not support hot plugging of the board or + cartridge, then this value will be returned. + + unlocked(2) + The board or cartridge is currently unlocked and may be + removed. + + locked(3) + The board or cartridge is currently locked and may not be + removed." + ::= { cpqHeResMemBoardEntry 4 } + + cpqHeResMemBoardNumSockets OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of memory sockets for this memory board or + cartridge. + + If this value could not be determined, or if the board or + cartridge has been removed, this value will be -1." + ::= { cpqHeResMemBoardEntry 5 } + + cpqHeResMemBoardOsMemSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the size of memory for this board or + cartridge as seen by the Operating System in MB (1 MB = + 1048576 bytes). + + If this system does not support Advanced Memory Protection or this + value cannot be determined, then a value of 0 will be returned." + ::= { cpqHeResMemBoardEntry 6 } + + cpqHeResMemBoardTotalMemSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the size of memory for this board or + cartridge including memory seen by the Operating System and + the memory used for spare, mirrored, or XOR configurations + in MB (1 MB = 1048576 bytes). + + If this system does not support Advanced Memory Protection or this + value cannot be determined, then a value of 0 will be returned." + ::= { cpqHeResMemBoardEntry 7 } + + cpqHeResMemBoardCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the Advanced Memory + Protection memory board or cartridge. + + The following status values are supported: + + other(1): + The condition of this memory board or cartridge + could not be determined. + + ok(2): + The memory board or cartridge is operating normally. + + degraded(3): + The memory board or cartridge is in an error state. + Check for correct memory installation and that the + board has been inserted properly." + ::= { cpqHeResMemBoardEntry 8 } + + cpqHeResMemBoardHotPlug OBJECT-TYPE + SYNTAX INTEGER { + other(1), + nonHotPluggable(2), + hotPluggable(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This indicates if the memory board is capable of being + removed and/or inserted while the system is in an + operational state. + + The following states are supported: + + other(1) + The state could not be determined or the system does not + support Advanced Memory Protection. + + nonHotPluggable(2) + The memory board or cartridge is not hot plug capable. + + hotPluggable(3) + The memory board or cartridge is hot plug capable and can be + removed if the system is operating in a redundant state. A + memory board or cartridge may be added to an empty bay." + ::= { cpqHeResMemBoardEntry 9 } + +-- **************************************************************************** +-- Health MIB Advanced Memory Protection Memory Module Group +-- ========================================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeResilientMemory Group (1.3.6.1.4.1.232.6.2.14) +-- cpqHeResMemModuleTable (1.3.6.1.4.1.232.6.2.14.11) +-- cpqHeResMemModuleEntry (1.3.6.1.4.1.232.6.2.14.11.1) +-- +-- **************************************************************************** + + cpqHeResMemModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeResMemModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of memory module descriptions." + ::= { cpqHeResilientMemory 11 } + + cpqHeResMemModuleEntry OBJECT-TYPE + SYNTAX CpqHeResMemModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A memory module description." + INDEX { cpqHeResMemBoardIndex, cpqHeResMemModuleIndex } + ::= { cpqHeResMemModuleTable 1 } + + CpqHeResMemModuleEntry ::= SEQUENCE { + cpqHeResMemBoardIndex INTEGER, + cpqHeResMemModuleIndex INTEGER, + cpqHeResMemModuleSparePartNo DisplayString, + cpqHeResMemModuleStatus INTEGER, + cpqHeResMemModuleCondition INTEGER, + cpqHeResMemModuleSpd OCTET STRING + } + + cpqHeResMemBoardIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The slot in which the memory board or cartridge is installed. + + A value of 0 indicates memory installed directly on the + system board." + ::= { cpqHeResMemModuleEntry 1 } + + cpqHeResMemModuleIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module number." + ::= { cpqHeResMemModuleEntry 2 } + + cpqHeResMemModuleSparePartNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module's manufacturer part number. + + This field will be a null (size 0) string if the manufacturer + part number is not available." + ::= { cpqHeResMemModuleEntry 3 } + + cpqHeResMemModuleStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notPresent(2), + present(3), + good(4), + add(5), + upgrade(6), + missing(7), + doesNotMatch(8), + notSupported(9), + badConfig(10), + degraded(11) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the correctable memory + errors for this memory module. + + The following status values are supported: + + other(1): + The status is unknown or could not be determined. + + notPresent(2): + The memory module is not present or is un-initialized. + + present(3): + The memory module is present but not in use. + + good(4): + The memory module is present and in use. The corrected + error threshold has not been exceeded. + + add(5): + The memory module has been added, but is not yet in use. + + upgraded(6): + The memory module has been upgraded, but the memory is not + yet in use. + + missing(7): + An expected memory module is missing. + + doesNotMatch(8): + The memory module does not match the other memory modules + within the bank. + + notSupported(9): + The memory module is not supported. + + badConfig(10): + The memory module violates the add/upgrade configuration + rules. + + degraded(11): + The memory module's correctable error count has exceeded + threshold." + ::= { cpqHeResMemModuleEntry 4 } + + cpqHeResMemModuleCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the correctable memory + errors for this memory module. + + The following status values are supported: + + other(1): + ECC is not supported on this memory module or the + condition could not be determined. + + ok(2): + The memory module is operating normally. + + degraded(3): + The memory module is correctable error count has exceeded + threshold or a configuration error has been detected." + ::= { cpqHeResMemModuleEntry 5 } + + cpqHeResMemModuleSpd OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..256)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the raw Serial Presence Detect information contained + in the memory module. + + If the SPD information is not available, this item will be empty." + ::= { cpqHeResMemModuleEntry 6 } + +-- **************************************************************************** +-- Health MIB Advanced Memory Protection Board Group +-- ================================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeResilientMemory Group (1.3.6.1.4.1.232.6.2.14) +-- cpqHeResMem2BoardTable (1.3.6.1.4.1.232.6.2.14.12) +-- cpqHeResMem2BoardEntry (1.3.6.1.4.1.232.6.2.14.12.1) +-- +-- **************************************************************************** + + cpqHeResMem2BoardTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeResMem2BoardEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of memory board or cartridge descriptions in Advanced + Memory Protection systems." + ::= { cpqHeResilientMemory 12 } + + cpqHeResMem2BoardEntry OBJECT-TYPE + SYNTAX CpqHeResMem2BoardEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A memory board or cartridge or CPU based Memory Board description." + INDEX { cpqHeResMem2BoardIndex } + ::= { cpqHeResMem2BoardTable 1 } + + CpqHeResMem2BoardEntry ::= SEQUENCE { + cpqHeResMem2BoardIndex INTEGER, + cpqHeResMem2BoardSlotNum INTEGER, + cpqHeResMem2BoardCpuNum INTEGER, + cpqHeResMem2BoardRiserNum INTEGER, + cpqHeResMem2BoardOnlineStatus INTEGER, + cpqHeResMem2BoardErrorStatus INTEGER, + cpqHeResMem2BoardLocked INTEGER, + cpqHeResMem2BoardNumSockets INTEGER, + cpqHeResMem2BoardOsMemSize INTEGER, + cpqHeResMem2BoardTotalMemSize INTEGER, + cpqHeResMem2BoardCondition INTEGER, + cpqHeResMem2BoardHotPlug INTEGER + } + + cpqHeResMem2BoardIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This will represent the unique memory board or cartridge or riser." + ::= { cpqHeResMem2BoardEntry 1 } + + + cpqHeResMem2BoardSlotNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The slot in which the memory board or cartridge is installed." + ::= { cpqHeResMem2BoardEntry 2 } + + cpqHeResMem2BoardCpuNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Processor Number to which the memory Riser belongs. Value 0 means memory is not CPU based." + ::= { cpqHeResMem2BoardEntry 3 } + + cpqHeResMem2BoardRiserNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Riser Number on the Processor." + ::= { cpqHeResMem2BoardEntry 4 } + + cpqHeResMem2BoardOnlineStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + present(2), + absent(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The online status of the Advanced Memory Protection board or + cartridge or riser. + + The following status values are supported: + + other(1) + The value is unsupported or could not be determined. + + present(2) + The board or cartridge or riser has memory and is currently online. + + absent(3) + The board or cartridge or riser is missing or offline." + ::= { cpqHeResMem2BoardEntry 5 } + + cpqHeResMem2BoardErrorStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + noError(2), + dimmEccError(3), + unlockError(4), + configError(5), + busError(6), + powerError(7), + advancedEcc(8), + onlineSpare(9), + mirrored(10), + mirroredDimmError(11), + memoryRaid(12), + raidDimmError(13), + lockStep(14), + lockStepError(15) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The error status of the Advanced Memory Protection board or + Cartridge or riser. + + The following status values are supported: + + other(1) + The value is unsupported or could not be determined. + + noError(2) + The board or cartridge or riser is configured and operating correctly. + + dimmEccError(3) + The board or cartridge or riser has at least one DIMM ECC error. + + unlockError(4) + The board or cartridge or riser is unlocked when it should not be. + Please insure the board of cartridge is locked. + + configError(5) + The board or cartridge or riser has a bad memory configuration. + Please insure all memory modules are of the correct type, + speed, latency, etc. + + busError(6) + The board or cartridge or riser has a memory bus error. + Please insure all memory modules are of the correct type, + speed, latency, etc. Also insure the cartridge is inserted + properly. + + powerError(7) + The board or cartridge or riser has power error. + Please insure all memory modules are of the correct type, + speed, latency, etc. Also insure the cartridge is inserted + properly. + + advancedEcc(8), + The board or cartridge or riser is configured for advanced Ecc mode. + + onlineSpare(9), + The board or cartridge or riser is configured for Online Spare mode. + + mirrored(10), + The board or cartridge or riser is configured for mirrored mode. + + mirroredDimmError(11), + The board or cartridge or riser has a mirrored Dimm error. + + memoryRaid(12), + The board or cartridge or riser is configured for memory raid mode. + + raidDimmError(13) + The board or cartridge or riser has a raid Dimm error. + + lockStep(14), + The board or cartridge or riser is configured for lockStep mode. + + lockStepError(15) + The board or cartridge or riser has a lockStep Dimm error." + ::= { cpqHeResMem2BoardEntry 6 } + + cpqHeResMem2BoardLocked OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unlocked(2), + locked(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The locked state of the Advanced Memory Protection board or + Cartridge or riser. + + The following status values are supported: + + other(1) + The value is unsupported or could not be determined. If the + system does not support hot plugging of the board or + cartridge or riser, then this value will be returned. + + unlocked(2) + The board or cartridge or riser is currently unlocked and may be + removed. + + locked(3) + The board or cartridge or riser is currently locked and may not be + removed." + ::= { cpqHeResMem2BoardEntry 7 } + + cpqHeResMem2BoardNumSockets OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of memory sockets for this memory board or + Cartridge or riser. + + If this value could not be determined, or if the board or + Cartridge or riser has been removed, this value will be -1." + ::= { cpqHeResMem2BoardEntry 8 } + + cpqHeResMem2BoardOsMemSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the size of memory for this board or + cartridge or riser as seen by the Operating System in MB (1 MB = + 1048576 bytes). + + If this system does not support Advanced Memory Protection or this + value cannot be determined, then a value of 0 will be returned." + ::= { cpqHeResMem2BoardEntry 9 } + + cpqHeResMem2BoardTotalMemSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the size of memory for this board or + Cartridge or riser including memory seen by the Operating System and + the memory used for spare, mirrored, or XOR configurations + in MB (1 MB = 1048576 bytes). + + If this system does not support Advanced Memory Protection or this + value cannot be determined, then a value of 0 will be returned." + ::= { cpqHeResMem2BoardEntry 10 } + + cpqHeResMem2BoardCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the Advanced Memory + Protection memory board or cartridge or riser. + + The following status values are supported: + + other(1): + The condition of this memory board or cartridge or riser + could not be determined. + + ok(2): + The memory board or cartridge or riser is operating normally. + + degraded(3): + The memory board or cartridge or riser is in an error state. + Check for correct memory installation and that the + board has been inserted properly." + ::= { cpqHeResMem2BoardEntry 11 } + + cpqHeResMem2BoardHotPlug OBJECT-TYPE + SYNTAX INTEGER { + other(1), + nonHotPluggable(2), + hotPluggable(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This indicates if the memory board is capable of being + removed and/or inserted while the system is in an + operational state. + + The following states are supported: + + other(1) + The state could not be determined or the system does not + support Advanced Memory Protection. + + nonHotPluggable(2) + The memory board or cartridge or riser is not hot plug capable. + + hotPluggable(3) + The memory board or cartridge or riser is hot plug capable and can be + removed if the system is operating in a redundant state. A + memory board or cartridge or riser may be added to an empty bay." + ::= { cpqHeResMem2BoardEntry 12} + +-- **************************************************************************** +-- Health MIB Advanced Memory Protection Memory Module Group +-- ========================================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHeResilientMemory Group (1.3.6.1.4.1.232.6.2.14) +-- cpqHeResMem2ModuleTable (1.3.6.1.4.1.232.6.2.14.13) +-- cpqHeResMem2ModuleEntry (1.3.6.1.4.1.232.6.2.14.13.1) +-- +-- **************************************************************************** + + cpqHeResMem2ModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeResMem2ModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of memory module descriptions." + ::= { cpqHeResilientMemory 13 } + + cpqHeResMem2ModuleEntry OBJECT-TYPE + SYNTAX CpqHeResMem2ModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A memory module description." + INDEX { cpqHeResMem2Module } + ::= { cpqHeResMem2ModuleTable 1 } + + CpqHeResMem2ModuleEntry ::= SEQUENCE { + cpqHeResMem2Module INTEGER, + cpqHeResMem2BoardNum INTEGER, + cpqHeResMem2CpuNum INTEGER, + cpqHeResMem2RiserNum INTEGER, + cpqHeResMem2ModuleNum INTEGER, + cpqHeResMem2ModuleSize INTEGER, + cpqHeResMem2ModuleType INTEGER, + cpqHeResMem2ModuleTechnology INTEGER, + cpqHeResMem2ModuleManufacturer DisplayString, + cpqHeResMem2ModulePartNo DisplayString, + cpqHeResMem2ModuleDate OCTET STRING, + cpqHeResMem2ModuleSerialNo DisplayString, + cpqHeResMem2ModuleHwLocation DisplayString, + cpqHeResMem2ModuleFrequency INTEGER, + cpqHeResMem2ModuleCellTablePtr INTEGER, + cpqHeResMem2ModuleCellStatus INTEGER, + cpqHeResMem2ModulePartNoMfgr DisplayString, + cpqHeResMem2ModuleSerialNoMfgr DisplayString, + cpqHeResMem2ModuleStatus INTEGER, + cpqHeResMem2ModuleCondition INTEGER, + cpqHeResMem2ModuleSpd OCTET STRING + } + + cpqHeResMem2Module OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This will represent the unique memory DIMM on + memory board or cartridge or riser. " + ::= { cpqHeResMem2ModuleEntry 1 } + + cpqHeResMem2BoardNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The slot in which the memory board or cartridge is installed. + + A value of 0 indicates memory installed directly on the + system board." + ::= { cpqHeResMem2ModuleEntry 2 } + + cpqHeResMem2CpuNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module CPU number. Value 0 means memory is not Processor based." + ::= { cpqHeResMem2ModuleEntry 3 } + + cpqHeResMem2RiserNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module rasier number." + ::= { cpqHeResMem2ModuleEntry 4 } + + cpqHeResMem2ModuleNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module number." + ::= { cpqHeResMem2ModuleEntry 5 } + + cpqHeResMem2ModuleSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Module memory size in kilobytes. A kilobyte of memory is + defined as 1024 bytes. + + A size of 0 indicates the module is not present." + ::= { cpqHeResMem2ModuleEntry 6 } + + cpqHeResMem2ModuleType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + board(2), + cpqSingleWidthModule(3), + cpqDoubleWidthModule(4), + simm(5), + pcmcia(6), + compaq-specific(7), + dimm(8), + smallOutlineDimm(9), + rimm(10), + srimm(11), + fb-dimm(12) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Type of memory module installed. The value other(1) will be + given if the type is not known. The value board(2) will be + given if the memory module is permanently mounted (not modular) + on a system board or memory expansion board." + ::= { cpqHeResMem2ModuleEntry 7 } + + cpqHeResMem2ModuleTechnology OBJECT-TYPE + SYNTAX INTEGER { + other(1), + fastPageMode(2), + edoPageMode(3), + burstEdoPageMode(4), + synchronous(5), + rdram(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Technology type of memory module installed. The value other(1) + will be given if the technology is not known." + ::= { cpqHeResMem2ModuleEntry 8 } + + cpqHeResMem2ModuleManufacturer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module's manufacturer name. + + This field will be a null (size 0) string if the manufacturer + name is not available." + ::= { cpqHeResMem2ModuleEntry 9 } + + cpqHeResMem2ModulePartNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module's manufacturer part number. + + This field will be a null (size 0) string if the manufacturer + part number is not available." + ::= { cpqHeResMem2ModuleEntry 10 } + + cpqHeResMem2ModuleDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module date of manufacture. + + field octets contents range + ===== ====== ====================== ======== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + This field will be set to year = 0 if the date of manufacture + is not available. The hour, minute, and second fields will + always be set to 0." + ::= { cpqHeResMem2ModuleEntry 11 } + + cpqHeResMem2ModuleSerialNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The memory module's serial number. + + This field will be a null (size 0) string if the serial number + is not available." + ::= { cpqHeResMem2ModuleEntry 12 } + + cpqHeResMem2ModuleHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the memory module. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHeResMem2ModuleEntry 13 } + + + cpqHeResMem2ModuleFrequency OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module frequency in MHz. The value zero (0) will + be given if the module frequency cannot be determined." + ::= { cpqHeResMem2ModuleEntry 14 } + + cpqHeResMem2ModuleCellTablePtr OBJECT-TYPE + SYNTAX INTEGER (0..15) + ACCESS read-only + STATUS optional + DESCRIPTION + "Index for the cell in cpqSeCellTable where the memory board is + installed." + ::= { cpqHeResMem2ModuleEntry 15 } + + cpqHeResMem2ModuleCellStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + deconfigured(3) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "This provides the current status for this memory module. + + The following status values are supported: + + other(1): + The memory module status is not available + + ok(2): + The memory module is active + + deconfigured(3): + The memory module is not ready" + ::= { cpqHeResMem2ModuleEntry 16 } + + + cpqHeResMem2ModulePartNoMfgr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The memory module's manufacturer's part number. + + This field will be a null (size 0) string if the manufacturer + part number is not available." + ::= { cpqHeResMem2ModuleEntry 17 } + + cpqHeResMem2ModuleSerialNoMfgr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The memory module's manufacturer's serial number. + + This field will be a null (size 0) string if the manufacturer + serial number is not available." + ::= { cpqHeResMem2ModuleEntry 18 } + + + cpqHeResMem2ModuleStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notPresent(2), + present(3), + good(4), + add(5), + upgrade(6), + missing(7), + doesNotMatch(8), + notSupported(9), + badConfig(10), + degraded(11) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the correctable memory + errors for this memory module. + + The following status values are supported: + + other(1): + The status is unknown or could not be determined. + + notPresent(2): + The memory module is not present or is un-initialized. + + present(3): + The memory module is present but not in use. + + good(4): + The memory module is present and in use. The corrected + error threshold has not been exceeded. + + add(5): + The memory module has been added, but is not yet in use. + + upgraded(6): + The memory module has been upgraded, but the memory is not + yet in use. + + missing(7): + An expected memory module is missing. + + doesNotMatch(8): + The memory module does not match the other memory modules + within the bank. + + notSupported(9): + The memory module is not supported. + + badConfig(10): + The memory module violates the add/upgrade configuration + rules. + + degraded(11): + The memory module's correctable error count has exceeded + threshold." + ::= { cpqHeResMem2ModuleEntry 19 } + + cpqHeResMem2ModuleCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + degradedModuleIndexUnknown(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the correctable memory + errors for this memory module. + + The following status values are supported: + + other(1): + ECC is not supported on this memory module or the + condition could not be determined. + + ok(2): + The memory module is operating normally. + + degraded(3): + The memory module is correctable error count has exceeded + threshold or a configuration error has been detected. + + degradedModuleIndexUnknown(4): + The correctable error count has exceeded threshold. + The module number not available." + ::= { cpqHeResMem2ModuleEntry 20 } + + cpqHeResMem2ModuleSpd OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..256)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the raw Serial Presence Detect information contained + in the memory module. + + If the SPD information is not available, this item will be empty." + ::= { cpqHeResMem2ModuleEntry 21 } + + +-- **************************************************************************** +-- Health MIB Power Meter Group +-- ======================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeComponent Group (1.3.6.1.4.1.232.6.2) +-- cpqHePowerMeter Group (1.3.6.1.4.1.232.6.2.15) +-- +-- The cpqHePowerMeter group describes the Server's power consumption read +-- +-- +-- Implementation of the cpqHePowerMeter group is mandatory for all +-- platform that support Power Meter. +-- +-- **************************************************************************** + + cpqHePowerMeterSupport OBJECT-TYPE + SYNTAX INTEGER { + other(1), + supported(2), + unsupported(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies whether Power Meter is supported + by this Server . + + The following values are supported: + + other(1) + Could not read the Power Meter status. + + supported(2) + This system support Power Meter. + + unsupported(3) + This system does not support Power Meter." + ::= { cpqHePowerMeter 1} + + + cpqHePowerMeterStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + present(2), + absent(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies whether Power Meter reading is supported + by this Server . + + The following values are supported: + + other(1) + Could not read the Power Meter status. + + present(2) + The Power Meter data is available. + + absent(3) + The Power Meter data is not available at this time." + ::= { cpqHePowerMeter 2} + + + cpqHePowerMeterCurrReading OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + " This is the current Power Meter reading in Watts. + This value shows the most recent power reading if available. + On systems without Power Meter support, this value will be -1." + ::= { cpqHePowerMeter 3 } + + cpqHePowerMeterPrevReading OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + " This is the previous Power Meter reading in Watts. + This value shows previous power reading if available. + On systems without Power Meter support, this value will be -1." + ::= { cpqHePowerMeter 4 } + + + +-- **************************************************************************** +-- HealthMIB Trap Group +-- ===================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeTrap Group (1.3.6.1.4.1.232.6.3) (deprecated) +-- +-- The cpqHeTrap group maintains information about the number of traps +-- issued from the health enterprise. The trap group also maintains a table +-- of the last several traps issued. This table is intended to give a +-- management application some recent status information immediately upon +-- accessing the agent. +-- +-- Implementation of the cpqHeTrap group is optional for agents that +-- support the Server Health MIB. +-- +-- **************************************************************************** + + cpqHeTrapPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of SNMP trap packets issued by the + Server Health agent." + ::= { cpqHeTrap 1 } + + cpqHeTrapLogMaxSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The maximum number of entries that will currently be kept in + the trap log. If the maximum size has been reached and a new + trap occurs the oldest trap will be removed." + ::= { cpqHeTrap 2 } + +-- **************************************************************************** +-- Health MIB Trap Log Table +-- ========================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHealth Group (1.3.6.1.4.1.232.6) +-- cpqHeTrap Group (1.3.6.1.4.1.232.6.3) +-- cpqHeTrapLogTable (1.3.6.1.4.1.232.6.3.3) (deprecated) +-- +-- **************************************************************************** + + cpqHeTrapLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHeTrapLogEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "An ordered list of trap log entries (conceptually a queue). The + trap log entries will be kept in the order in which they were + generated with the most recent trap at index 1 and the oldest + trap entry at index trapLogMaxSize. If the maximum number of + entries has been reached and a new trap occurs the oldest trap + will be removed when the new trap is added so the trapMaxLogSize + is not exceeded." + ::= { cpqHeTrap 3 } + + cpqHeTrapLogEntry OBJECT-TYPE + SYNTAX CpqHeTrapLogEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A description of a trap event." + INDEX { cpqHeTrapLogIndex } + ::= { cpqHeTrapLogTable 1 } + + CpqHeTrapLogEntry ::= SEQUENCE { + cpqHeTrapLogIndex INTEGER, + cpqHeTrapType INTEGER, + cpqHeTrapTime OCTET STRING + } + + cpqHeTrapLogIndex OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The value of this object uniquely identifies this trapLogEntry + at this time. The most recent trap will have an index of 1 and + the oldest trap will have an index of trapLogMaxSize. Because of + the queue-like nature of the trapLog this particular trap event's + index will change as new traps are issued." + ::= { cpqHeTrapLogEntry 1 } + + cpqHeTrapType OBJECT-TYPE + SYNTAX INTEGER { + cpqHeCorrectableMemoryError(1), + cpqHeCorrectableMemoryLogDisabled(2), + cpqHe2CorrectableMemoryError(6001), + cpqHe2CorrectableMemoryLogDisabled(6002), + cpqHeThermalTempFailed(6003), + cpqHeThermalTempDegraded(6004), + cpqHeThermalTempOk(6005), + cpqHeThermalSystemFanFailed(6006), + cpqHeThermalSystemFanDegraded(6007), + cpqHeThermalSystemFanOk(6008), + cpqHeThermalCpuFanFailed(6009), + cpqHeThermalCpuFanOk(6010), + cpqHeAsrConfirmation(6011), + cpqHeThermalConfirmation(6012), + cpqHePostError(6013) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The type of the trap event this entry describes. This + number refers to an entry in a list of traps enumerating the + possible traps the Server Health agent may issue." + ::= { cpqHeTrapLogEntry 2 } + + cpqHeTrapTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..6)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The time of the trap event that this entry describes. The time + is given in year (first octet), month, day of month, hour, + minute, second (last octet) order. The octets are in Binary + Coded Decimal (BCD)." + ::= { cpqHeTrapLogEntry 3 } + +-- **************************************************************************** +-- Health MIB Trap Definitions +-- =========================== +-- +-- The SNMP trap messages must not be bigger than 484 octets (bytes). +-- +-- Trap support in an SNMP agent implementation is optional. An SNMP +-- agent implementation may support all, some, or none of the traps. +-- If traps are supported, The user should be provided with the option of +-- disabling traps. +-- ************************************************************************** + + cpqHeCorrectableMemoryError TRAP-TYPE + ENTERPRISE cpqHealth + VARIABLES { cpqHeCorrMemTotalErrs } + DESCRIPTION + "A correctable memory error occurred. + + The error has been corrected. The current number of correctable + memory errors is reported in the variable cpqHeCorrMemTotalErrs." + + --#TYPE "Correctable Memory Error Occurred (1)" + --#SUMMARY "Total correctable errors = %d." + --#ARGUMENTS {0} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1 + + cpqHeCorrectableMemoryLogDisabled TRAP-TYPE + ENTERPRISE cpqHealth + VARIABLES { cpqHeCorrMemLogStatus } + DESCRIPTION + "Correctable memory error tracking disabled. + + The frequency of errors is so high that the error tracking + logic has been temporarily disabled. The cpqHeCorrMemLogStatus + variable indicated the current tracking status." + + --#TYPE "Memory Error Tracking Disabled (2)" + --#SUMMARY "Too many memory errors - tracking now disabled." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 2 + +-- Trap definitions for Insight Manager version 2.00 and greater +-- use the Compaq Enterprise (232) and have unique trap numbers between all +-- of the MIBs. + + cpqHe2CorrectableMemoryError TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqHeCorrMemTotalErrs } + DESCRIPTION + "A correctable memory error occurred. + + The error has been corrected. The current number of correctable + memory errors is reported in the variable cpqHeCorrMemTotalErrs." + + --#TYPE "Correctable Memory Error Occurred (6001)" + --#SUMMARY "Total correctable errors = %d." + --#ARGUMENTS {0} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6001 + + cpqHe2CorrectableMemoryLogDisabled TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqHeCorrMemLogStatus } + DESCRIPTION + "Correctable memory error tracking disabled. + + The frequency of errors is so high that the error tracking + logic has been temporarily disabled. The cpqHeCorrMemLogStatus + variable indicated the current tracking status." + + --#TYPE "Memory Error Tracking Disabled (6002)" + --#SUMMARY "Too many memory errors - tracking now disabled." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6002 + + cpqHeThermalTempFailed TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The temperature status has been set to failed. + + The system will be shutdown due to this thermal condition." + + --#TYPE "Thermal Failure (6003)" + --#SUMMARY "System will be shutdown due to this thermal condition." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6003 + + cpqHeThermalTempDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqHeThermalDegradedAction } + DESCRIPTION + "The temperature status has been set to degraded. + + The server's temperature is outside of the normal operating + range. The server will be shutdown if the + cpqHeThermalDegradedAction variable is set to shutdown(3)." + + --#TYPE "Thermal Status Degraded (6004)" + --#SUMMARY "Temperature out of range. Shutdown may occur." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6004 + + cpqHeThermalTempOk TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The temperature status has been set to ok. + + The server's temperature has returned to the normal operating + range." + + --#TYPE "Temperature OK (6005)" + --#SUMMARY "Temperature has returned to normal range." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6005 + + cpqHeThermalSystemFanFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqHeThermalDegradedAction } + DESCRIPTION + "The system fan status has been set to failed. + + A required system fan is not operating normally. The system + will be shutdown if the cpqHeThermalDegradedAction variable + is set to shutdown(3)." + + --#TYPE "System Fan Failure (6006)" + --#SUMMARY "Required fan not operating normally. Shutdown may occur." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6006 + + cpqHeThermalSystemFanDegraded TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The system fan status has been set to degraded. + + An optional system fan is not operating normally." + + --#TYPE "System Fan Degraded (6007)" + --#SUMMARY "An optional fan is not operating normally." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6007 + + cpqHeThermalSystemFanOk TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The system fan status has been set to ok. + + Any previously non-operational system fans have returned to + normal operation." + + --#TYPE "System Fan OK (6008)" + --#SUMMARY "System fan has returned to normal operation." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6008 + + cpqHeThermalCpuFanFailed TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The CPU fan status has been set to failed. + + A processor fan is not operating normally. The server will be + shutdown." + + --#TYPE "CPU Fan Failure (6009)" + --#SUMMARY "CPU fan has failed. Server will be shutdown." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 6009 + + cpqHeThermalCpuFanOk TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The CPU fan status has been set to ok. + + Any previously non-operational processor fans have returned + to normal operation." + + --#TYPE "CPU Fan OK (6010)" + --#SUMMARY "CPU fan is now OK." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6010 + + cpqHeAsrConfirmation TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The server is operational again. + + The server has previously been shutdown by the + Automatic Server Recovery (ASR) feature and has just + become operational again." + + --#TYPE "Server Operational (6011)" + --#SUMMARY "Server is operational again after ASR shutdown." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6011 + + cpqHeThermalConfirmation TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The server is operational again. + + The server has previously been shutdown due to a thermal + anomaly on the server and has just become operational again." + + --#TYPE "Server Operational (6012)" + --#SUMMARY "Server is operational again after thermal shutdown." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6012 + + cpqHePostError TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "One or more POST errors occurred. + + Power On Self-Test (POST) errors occur during the server + restart process. " + + --#TYPE "POST Errors Occurred (6013)" + --#SUMMARY "Errors occurred during server restart." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6013 + + cpqHeFltTolPwrSupplyDegraded TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "The fault tolerant power supply sub-system condition has been + set to degraded." + + --#TYPE "Server Power Supply Degraded (6014)" + --#SUMMARY "The server power supply status has become degraded." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6014 + + + cpqHe3CorrectableMemoryError TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeCorrMemTotalErrs } + DESCRIPTION + "A correctable memory error occurred. + + The error has been corrected. The current number of correctable + memory errors is reported in the variable cpqHeCorrMemTotalErrs." + + --#TYPE "Correctable Memory Error Occurred (6015)" + --#SUMMARY "Total correctable errors = %d." + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + + ::= 6015 + + cpqHe3CorrectableMemoryLogDisabled TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeCorrMemLogStatus } + DESCRIPTION + "Correctable memory error tracking disabled. + + The frequency of errors is so high that the error tracking + logic has been temporarily disabled. The cpqHeCorrMemLogStatus + variable indicated the current tracking status." + + --#TYPE "Memory Error Tracking Disabled (6016)" + --#SUMMARY "Too many memory errors - tracking now disabled." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6016 + + cpqHe3ThermalTempFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The temperature status has been set to failed. + + The system will be shutdown due to this thermal condition." + + --#TYPE "Thermal Failure (6017)" + --#SUMMARY "System will be shutdown due to this thermal condition." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6017 + + cpqHe3ThermalTempDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeThermalDegradedAction } + DESCRIPTION + "The temperature status has been set to degraded. + + The server's temperature is outside of the normal operating + range. The server will be shutdown if the + cpqHeThermalDegradedAction variable is set to shutdown(3)." + + --#TYPE "Thermal Status Degraded (6018)" + --#SUMMARY "Temperature out of range. Shutdown may occur." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6018 + + cpqHe3ThermalTempOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The temperature status has been set to ok. + + The server's temperature has returned to the normal operating + range." + + --#TYPE "Temperature OK (6019)" + --#SUMMARY "Temperature has returned to normal range." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6019 + + cpqHe3ThermalSystemFanFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeThermalDegradedAction } + DESCRIPTION + "The system fan status has been set to failed. + + A required system fan is not operating normally. The system + will be shutdown if the cpqHeThermalDegradedAction variable + is set to shutdown(3)." + + --#TYPE "System Fan Failure (6020)" + --#SUMMARY "Required fan not operating normally. Shutdown may occur." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6020 + + cpqHe3ThermalSystemFanDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The system fan status has been set to degraded. + + An optional system fan is not operating normally." + + --#TYPE "System Fan Degraded (6021)" + --#SUMMARY "An optional fan is not operating normally." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6021 + + cpqHe3ThermalSystemFanOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The system fan status has been set to ok. + + Any previously non-operational system fans have returned to + normal operation." + + --#TYPE "System Fan OK (6022)" + --#SUMMARY "System fan has returned to normal operation." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6022 + + cpqHe3ThermalCpuFanFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The CPU fan status has been set to failed. + + A processor fan is not operating normally. The server will be + shutdown." + + --#TYPE "CPU Fan Failure (6023)" + --#SUMMARY "CPU fan has failed. Server will be shutdown." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 6023 + + cpqHe3ThermalCpuFanOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The CPU fan status has been set to ok. + + Any previously non-operational processor fans have returned + to normal operation." + + --#TYPE "CPU Fan OK (6024)" + --#SUMMARY "CPU fan is now OK." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6024 + + cpqHe3AsrConfirmation TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The server is operational again. + + The server has previously been shutdown by the + Automatic Server Recovery (ASR) feature and has just + become operational again." + + --#TYPE "Server Operational (6025)" + --#SUMMARY "Server is operational again after ASR shutdown." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6025 + + cpqHe3ThermalConfirmation TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The server is operational again. + + The server has previously been shutdown due to a thermal + anomaly on the server and has just become operational again." + + --#TYPE "Server Operational (6026)" + --#SUMMARY "Server is operational again after thermal shutdown." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6026 + + cpqHe3PostError TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "One or more POST errors occurred. + + Power On Self-Test (POST) errors occur during the server + restart process. Details of the POST error messages can + be found in Integrated Management Log " + + --#TYPE "POST Errors Occurred (6027)" + --#SUMMARY "Errors occurred during server restart." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6027 + + cpqHe3FltTolPwrSupplyDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The fault tolerant power supply sub-system condition has been + set to degraded." + + --#TYPE "Server Power Supply Degraded (6028)" + --#SUMMARY "The server power supply status has become degraded." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6028 + +-- Deprecated in 6.20 trap 6056 is the replacement + cpqHe3CorrMemReplaceMemModule TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "A correctable memory log entry indicates a memory module needs + to be replaced. + + The errors have been corrected, but the memory module should be + replaced. The error information is reported in the variable + cpqHeCorrMemErrDesc." + + --#TYPE "Corr Mem Errors Require a Replacement Memory Module. (6029)" + --#SUMMARY "Correctable memory errs require a replacement memory module." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + + ::= 6029 + + +-- Deprecated in 5.10 + cpqHe3FltTolPowerSupplyDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis, + cpqHeFltTolPowerSupplyBay } + DESCRIPTION + "The fault tolerant power supply condition has been set + to degraded for the specified chassis and bay location." + + --#TYPE "Power Supply Degraded (6030)" + --#SUMMARY "The Power Supply Degraded on Chassis %d, Bay %d." + --#ARGUMENTS {2, 3} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6030 + +-- Deprecated in 5.10 + cpqHe3FltTolPowerSupplyFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis, + cpqHeFltTolPowerSupplyBay } + DESCRIPTION + "The fault tolerant power supply condition has been set + to failed for the specified chassis and bay location." + + --#TYPE "Power Supply Failed (6031)" + --#SUMMARY "The Power Supply Failed on Chassis %d, Bay %d." + --#ARGUMENTS {2, 3} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 6031 + + cpqHe3FltTolPowerRedundancyLost TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis } + DESCRIPTION + "The Fault Tolerant Power Supplies have lost redundancy for + the specified chassis." + + --#TYPE "Power Redundancy Lost (6032)" + --#SUMMARY "The Power Supplies are no longer redundant on Chassis %d." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6032 + + cpqHe3FltTolPowerSupplyInserted TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis, + cpqHeFltTolPowerSupplyBay } + DESCRIPTION + "A Fault Tolerant Power Supply has been inserted into the + specified chassis and bay location." + + --#TYPE "Power Supply Inserted (6033)" + --#SUMMARY "The Power Supply Inserted on Chassis %d, Bay %d." + --#ARGUMENTS {2, 3} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6033 + + cpqHe3FltTolPowerSupplyRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis, + cpqHeFltTolPowerSupplyBay } + DESCRIPTION + "A Fault Tolerant Power Supply has been removed from the + specified chassis and bay location." + + --#TYPE "Power Supply Removed (6034)" + --#SUMMARY "The Power Supply Removed on Chassis %d, Bay %d." + --#ARGUMENTS {2, 3} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6034 + + cpqHe3FltTolFanDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolFanChassis, + cpqHeFltTolFanIndex } + DESCRIPTION + "The Fault Tolerant Fan condition has been set to degraded + for the specified chassis and fan." + + --#TYPE "Fan Degraded (6035)" + --#SUMMARY "The Fan Degraded on Chassis %d, Fan %d." + --#ARGUMENTS {2, 3} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6035 + + cpqHe3FltTolFanFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolFanChassis, + cpqHeFltTolFanIndex } + DESCRIPTION + "The Fault Tolerant Fan condition has been set to failed + for the specified chassis and fan." + + --#TYPE "Fan Failed (6036)" + --#SUMMARY "The Fan Failed on Chassis %d, Fan %d." + --#ARGUMENTS {2, 3} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 6036 + + cpqHe3FltTolFanRedundancyLost TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolFanChassis } + DESCRIPTION + "The Fault Tolerant Fans have lost redundancy for the + specified chassis." + + --#TYPE "Fan Redundancy Lost (6037)" + --#SUMMARY "The Fans are no longer redundant on Chassis %d." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6037 + + cpqHe3FltTolFanInserted TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolFanChassis, + cpqHeFltTolFanIndex } + DESCRIPTION + "A Fault Tolerant Fan has been inserted into the specified + chassis and fan location." + + --#TYPE "Fan Inserted (6038)" + --#SUMMARY "The Fan Inserted on Chassis %d, Fan %d." + --#ARGUMENTS {2, 3} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6038 + + cpqHe3FltTolFanRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolFanChassis, + cpqHeFltTolFanIndex } + DESCRIPTION + "A Fault Tolerant Fan has been removed from the specified + chassis and fan location." + + --#TYPE "Fan Removed (6039)" + --#SUMMARY "The Fan Removed on Chassis %d, Fan %d." + --#ARGUMENTS {2, 3} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6039 + + cpqHe3TemperatureFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeTemperatureChassis, + cpqHeTemperatureLocale } + DESCRIPTION + "The temperature status has been set to failed in the + specified chassis and location. + + The system will be shutdown due to this condition." + + --#TYPE "Thermal Failure (6040)" + --#SUMMARY "Temperature Exceeded on Chassis %d, Location %d." + --#ARGUMENTS {2, 3} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6040 + + cpqHe3TemperatureDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeThermalDegradedAction, + cpqHeTemperatureChassis, cpqHeTemperatureLocale } + DESCRIPTION + "The temperature status has been set to degraded in the + specified chassis and location. + + The server's temperature is outside of the normal operating + range. The server will be shutdown if the + cpqHeThermalDegradedAction variable is set to shutdown(3)." + + --#TYPE "Thermal Status Degraded (6041)" + --#SUMMARY "Temperature out of range on Chassis %d, Location %d. Shutdown may occur." + --#ARGUMENTS {3, 4} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6041 + + cpqHe3TemperatureOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeTemperatureChassis, + cpqHeTemperatureLocale } + DESCRIPTION + "The temperature status has been set to ok in the + specified chassis and location. + + The server's temperature has returned to the normal operating + range." + + --#TYPE "Thermal Status OK (6042)" + --#SUMMARY "Temperature Normal on Chassis %d, Location %d." + --#ARGUMENTS {2, 3} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6042 + + cpqHe3PowerConverterDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHePwrConvChassis, + cpqHePwrConvSlot, cpqHePwrConvSocket } + DESCRIPTION + "The DC-DC Power Converter condition has been set to degraded + for the specified chassis, slot and socket." + + --#TYPE "Power Converter Degraded (6043)" + --#SUMMARY "The Power Converter Degraded on Chassis %d, Slot %d, Socket %d." + --#ARGUMENTS {2, 3, 4} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + + ::= 6043 + + cpqHe3PowerConverterFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHePwrConvChassis, + cpqHePwrConvSlot, cpqHePwrConvSocket } + DESCRIPTION + "The DC-DC Power Converter condition has been set to failed + for the specified chassis, slot and socket." + + --#TYPE "Power Converter Failed (6044)" + --#SUMMARY "The Power Converter Failed on Chassis %d, Slot %d, Socket %d." + --#ARGUMENTS {2, 3, 4} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 6044 + + cpqHe3PowerConverterRedundancyLost TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHePwrConvChassis } + DESCRIPTION + "The DC-DC Power Converters have lost redundancy for the + specified chassis." + + --#TYPE "Power Converter Redundancy Lost (6045)" + --#SUMMARY "The Power Converters are no longer redundant on Chassis %d." + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + + ::= 6045 + + cpqHe3CacheAccelParityError TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "A cache accelerator parity error indicates a cache module + needs to be replaced. + + The error information is reported in the variable + cpqHeEventLogErrorDesc." + + --#TYPE "Cache Accel Parity Errors may require a module. (6046)" + --#SUMMARY "Cache Accelerator errors may require a replacement module." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + + ::= 6046 + + cpqHeResilientMemOnlineSpareEngaged TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "Advanced Memory Protection Online Spare Engaged. + + The Advanced Memory Protection subsystem has detected a memory + fault. The Online Spare Memory has been activated. + + User Action: Schedule server down-time to replace the faulty + memory." + + --#TYPE "Online Spare Memory Engaged (6047)" + --#SUMMARY "The Advanced Memory Protection subsystem has engaged the online spare memory." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6047 + +-- New for rev 5.10. + cpqHe4FltTolPowerSupplyOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis, + cpqHeFltTolPowerSupplyBay, cpqHeFltTolPowerSupplyStatus, + cpqHeFltTolPowerSupplyModel, cpqHeFltTolPowerSupplySerialNumber, + cpqHeFltTolPowerSupplyAutoRev, cpqHeFltTolPowerSupplyFirmwareRev, + cpqHeFltTolPowerSupplySparePartNum, cpqSiServerSystemId } + DESCRIPTION + "The fault tolerant power supply condition has been set back + to the OK state for the specified chassis and bay location." + + --#TYPE "Power Supply OK (6048)" + --#SUMMARY "The Power Supply is OK on Chassis %d, Bay %d, Status %d, Model %s, Serial Num %s, Firmware %s." + --#ARGUMENTS {2, 3, 4, 5, 6, 8} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6048 + +-- New for rev 5.10. Deprecated cpqHe3FltTolPowerSupplyDegraded + cpqHe4FltTolPowerSupplyDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis, + cpqHeFltTolPowerSupplyBay, cpqHeFltTolPowerSupplyStatus, + cpqHeFltTolPowerSupplyModel, cpqHeFltTolPowerSupplySerialNumber, + cpqHeFltTolPowerSupplyAutoRev, cpqHeFltTolPowerSupplyFirmwareRev, + cpqHeFltTolPowerSupplySparePartNum, cpqSiServerSystemId } + DESCRIPTION + "The fault tolerant power supply condition has been set + to degraded for the specified chassis and bay location." + + --#TYPE "Power Supply Degraded (6049)" + --#SUMMARY "The Power Supply is Degraded on Chassis %d, Bay %d, Status %d, Model %s, Serial Num %s, Firmware %s." + --#ARGUMENTS {2, 3, 4, 5, 6, 8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6049 + +-- New for rev 5.10. Deprecated cpqHe3FltTolPowerSupplyFailed + cpqHe4FltTolPowerSupplyFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis, + cpqHeFltTolPowerSupplyBay, cpqHeFltTolPowerSupplyStatus, + cpqHeFltTolPowerSupplyModel, cpqHeFltTolPowerSupplySerialNumber, + cpqHeFltTolPowerSupplyAutoRev, cpqHeFltTolPowerSupplyFirmwareRev, + cpqHeFltTolPowerSupplySparePartNum, cpqSiServerSystemId } + DESCRIPTION + "The fault tolerant power supply condition has been set + to failed for the specified chassis and bay location." + + --#TYPE "Power Supply Failed (6050)" + --#SUMMARY "The Power Supply is Failed on Chassis %d, Bay %d, Status %d, Model %s, Serial Num %s, Firmware %s." + --#ARGUMENTS {2, 3, 4, 5, 6, 8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 6050 + +-- New for rev 5.40. + cpqHeResilientMemMirroredMemoryEngaged TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "Advanced Memory Protection Mirrored Memory Engaged. + + The Advanced Memory Protection subsystem has detected a memory + fault. Mirrored Memory has been activated. + + User Action: Replace the faulty memory." + + --#TYPE "Mirrored Memory Engaged (6051)" + --#SUMMARY "The Advanced Memory Protection subsystem has engaged the online spare memory." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6051 + +-- New for rev 5.50. + cpqHeResilientAdvancedECCMemoryEngaged TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "Advanced Memory Protection Advanced ECC Memory Engaged. + + The Advanced Memory Protection subsystem has detected a memory + fault. Advanced ECC has been activated. + + User Action: Replace the faulty memory." + + --#TYPE "Advanced ECC Memory Engaged (6052)" + --#SUMMARY "The Advanced Memory Protection subsystem has engaged the advanced ECC memory." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6052 + +-- New traps added for 6.20. + + cpqHeResilientMemXorMemoryEngaged TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "Advanced Memory Protection XOR Engine Memory Engaged. + + The Advanced Memory Protection subsystem has detected a memory + fault. The XOR engine has been activated. + + User Action: Replace the faulty memory." + + --#TYPE "Advanced XOR Memory Engaged (6053)" + --#SUMMARY "The Advanced Memory Protection subsystem has engaged the XOR memory." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6053 + + cpqHe3FltTolPowerRedundancyRestored TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolPowerSupplyChassis } + DESCRIPTION + "The Fault Tolerant Power Supplies have returned to a redundant + state for the specified chassis." + + --#TYPE "Power Redundancy Restored (6054)" + --#SUMMARY "The Power Supplies are now redundant on Chassis %d." + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6054 + + cpqHe3FltTolFanRedundancyRestored TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeFltTolFanChassis } + DESCRIPTION + "The Fault Tolerant Fans have returned to a redundant state for + the specified chassis." + + --#TYPE "Fan Redundancy Restored (6055)" + --#SUMMARY "The Fans are now redundant on Chassis %d." + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6055 + +-- Updated for 6.20 trap replaced 6029 +-- deprecateed in 8.20 replaced with 6064 + cpqHe4CorrMemReplaceMemModule TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMemBoardIndex, + cpqHeResMemModuleIndex, cpqHeResMemModuleSparePartNo, + cpqSiMemModuleSize, cpqSiServerSystemId } + DESCRIPTION + "Corrected Memory Errors Detected + + The errors have been corrected, but the memory module should be + replaced." + + --#TYPE "Corrected Memory Errors - Replace Memory Module. (6056)" + --#SUMMARY "Correctable memory errors require a replacement of the memory module in slot %d, socket %d." + --#ARGUMENTS {2, 3} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6056 + +-- deprecateed in 8.20 replaced with 6065 + cpqHeResMemBoardRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMemBoardSlotIndex } + DESCRIPTION + "Memory board or cartridge removed. + + An Advanced Memory Protection sub-system board or cartridge has + been removed from the system. + + User Action: Insure the board or cartridge has memory correctly + installed and re-insert the memory board or cartridge back into + the system." + + --#TYPE "Memory Board or Cartridge Removed (6057)" + --#SUMMARY "Memory Board or Cartridge Removed from Slot %d." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 6057 + +-- deprecateed in 8.20 replaced with 6066 + cpqHeResMemBoardInserted TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMemBoardSlotIndex } + DESCRIPTION + "Memory board or cartridge inserted. + + An Advanced Memory Protection sub-system board or cartridge has + been inserted into the system. + + User Action: None." + + --#TYPE "Memory Board or Cartridge Inserted (6058)" + --#SUMMARY "Memory Board or Cartridge Inserted into Slot %d." + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 6058 + +-- deprecateed in 8.20 replaced with 6067 + cpqHeResMemBoardBusError TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMemBoardSlotIndex } + DESCRIPTION + "Memory board or cartridge bus error detected. + + An Advanced Memory Protection sub-system board or cartridge + bus error has been detected. + + User Action: Replace the indicated board or cartridge." + + --#TYPE "Memory Board or Cartridge Bus Error Detected (6059)" + --#SUMMARY "Memory Board or Cartridge Bus Error Detected in Slot %d." + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + ::= 6059 + +-- The follow trap 6060 is supported only in Tru64 at this time. +-- This trap is not currently supported for ProLiants. + cpqHeEventOccurred TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeEventLogEntryNumber, + cpqHeEventLogEntrySeverity, cpqHeEventLogUpdateTime, + cpqHeEventLogErrorDesc } + DESCRIPTION + "An event has occurred. + User Action: None." + + --#TYPE "Event has occurred (6060)" + --#SUMMARY "Event %s has occurred, Severity %d " + --#ARGUMENTS {5,3} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 6060 + +cpqHeManagementProcInReset TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The Management processor is currently in reset + + The management processor is currently in the process of being reset + because of a firmware update or some other event. + + User action: None" + + --#TYPE "Management processor is currently in reset. (6061)" + --#SUMMARY "The Management processor is in the process of being reset." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6061 + + cpqHeManagementProcReady TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The Management processor is ready + + The management processor has successfully reset and is now available + again. + + User action: None" + + --#TYPE "Management processor is ready. (6062)" + --#SUMMARY "The Management processor is ready after a successfull reset." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 6062 + + cpqHeManagementProcFailedReset TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "The Management processor failed reset + + The management processor was not successfully reset and is not + operational. + + User action: Reset the management procesessor again or re-flash + the management processor firmware." + + --#TYPE "Management processor failed reset. (6063)" + --#SUMMARY "The Management processor failed reset." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 6063 + +-- Updated for 8.20 trap replaced 6056 + cpqHe5CorrMemReplaceMemModule TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMem2BoardNum, + cpqHeResMem2CpuNum, cpqHeResMem2RiserNum, + cpqHeResMem2ModuleNum, cpqHeResMem2ModulePartNo, + cpqHeResMem2ModuleSize, cpqSiServerSystemId } + DESCRIPTION + "Corrected Memory Errors Detected + + The errors have been corrected, but the memory module should be + replaced. Value 0 for CPU means memory is not Processor based" + + --#TYPE "Corrected Memory Errors - Replace Memory Module. (6064)" + --#SUMMARY "Correctable memory errors require a replacement of the memory module in slot %d, cpu %d, riser %d, socket %d." + --#ARGUMENTS {2, 3, 4} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6064 + +-- Updated for 8.20 trap replaced 6057 + cpqHe5ResMemBoardRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMem2BoardSlotNum, cpqHeResMem2BoardCpuNum, cpqHeResMem2BoardRiserNum } + DESCRIPTION + "Memory board or cartridge or riser removed. + + An Advanced Memory Protection sub-system board or cartridge or riser has + been removed from the system. Value 0 for CPU means memory is not processor based. + + User Action: Insure the board or cartridge or riser has memory correctly + installed and re-insert the memory board or cartridge or CPU back into + the system." + + --#TYPE "Memory Board or Cartridge or Riser Removed (6065)" + --#SUMMARY "Memory Board or Cartridge or riser Removed from Slot %d, Cpu %d Riser %d." + --#ARGUMENTS {2,3,4} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 6065 + +-- Updated for 8.20 trap replaced 6058 + cpqHe5ResMemBoardInserted TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMem2BoardSlotNum, cpqHeResMem2BoardCpuNum, cpqHeResMem2BoardRiserNum } + DESCRIPTION + "Memory board or cartridge or riser inserted. + + An Advanced Memory Protection sub-system board or cartridge or riser + Has been inserted into the system. Value 0 for CPU means memory is not processor based. + + User Action: None." + + --#TYPE "Memory Board or Cartridge Inserted (6066)" + --#SUMMARY "Memory Board or Cartridge Inserted into Slot %d, Cpu %d, Riser %d." + --#ARGUMENTS {2,3,4} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 6066 + +-- Updated for 8.20 trap replaced 6059 + cpqHe5ResMemBoardBusError TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHeResMem2BoardSlotNum, cpqHeResMem2BoardCpuNum, cpqHeResMem2BoardRiserNum } + DESCRIPTION + "Memory board or cartridge or Riser bus error detected. + + An Advanced Memory Protection sub-system board or cartridge or Riser + bus error has been detected. Value 0 for CPU means memory is not processor based. + + User Action: Replace the indicated board or cartridge or Riser." + + --#TYPE "Memory Board or Cartridge or Riser Bus Error Detected (6067)" + --#SUMMARY "Memory Board or Cartridge Bus Error Detected in Slot %d, Cpu %d, Riser %d." + --#ARGUMENTS {2,3,4} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + ::= 6067 + +-- Added for 8.20 + cpqHeResilientMemLockStepMemoryEngaged TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "Advanced Memory Protection LockStep Engine Memory Engaged. + + The Advanced Memory Protection subsystem has detected a memory + fault. The LockStep engine has been activated. + + User Action: Replace the faulty memory." + + --#TYPE "Advanced LockStep Memory Engaged (6068)" + --#SUMMARY "The Advanced Memory Protection subsystem has engaged the LockStep memory." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 6068 + +END diff --git a/pandora_console/attachment/mibs/CPQHOST-MIB b/pandora_console/attachment/mibs/CPQHOST-MIB new file mode 100644 index 0000000000..a7cf3fd7fa --- /dev/null +++ b/pandora_console/attachment/mibs/CPQHOST-MIB @@ -0,0 +1,2413 @@ +-- **************************************************************************** +-- +-- Host Operating System Information +-- Management Information Base for SNMP Network Management +-- +-- +-- Copyright 1993,2008 Hewlett-Packard Development Company, L.P. +-- +-- Hewlett-Packard Company shall not be liable for technical or +-- editorial errors or omissions contained herein. The information in +-- this document is provided "as is" without warranty of any kind and +-- is subject to change without notice. The warranties for HP products +-- are set forth in the express limited warranty statements +-- accompanying such products. Nothing herein should be construed as +-- constituting an additional warranty. +-- +-- Confidential computer software. Valid license from HP required for +-- possession, use or copying. Consistent with FAR 12.211 and 12.212, +-- Commercial Computer Software, Computer Software Documentation, and +-- Technical Data for Commercial Items are licensed to the U.S. +-- Government under vendor's standard commercial license. +-- +-- Refer to the READMIB.RDM file for more information about the +-- organization of the information in the Compaq Enterprise. +-- +-- The Compaq Enterprise number is 232. +-- The ASN.1 prefix to, and including the Compaq Enterprise is: +-- 1.3.6.1.4.1.232 +-- +-- **************************************************************************** + + +CPQHOST-MIB DEFINITIONS ::= BEGIN + + IMPORTS + enterprises FROM RFC1155-SMI + IpAddress FROM RFC1155-SMI + DisplayString FROM RFC1213-MIB + OBJECT-TYPE FROM RFC-1212 + TRAP-TYPE FROM RFC-1215 + sysName FROM RFC1213-MIB; + + compaq OBJECT IDENTIFIER ::= { enterprises 232 } + cpqHostOs OBJECT IDENTIFIER ::= { compaq 11 } + cpqHoMibRev OBJECT IDENTIFIER ::= { cpqHostOs 1 } + cpqHoComponent OBJECT IDENTIFIER ::= { cpqHostOs 2 } + + cpqHoInterface OBJECT IDENTIFIER ::= { cpqHoComponent 1 } + cpqHoInfo OBJECT IDENTIFIER ::= { cpqHoComponent 2 } + cpqHoUtil OBJECT IDENTIFIER ::= { cpqHoComponent 3 } + cpqHoFileSys OBJECT IDENTIFIER ::= { cpqHoComponent 4 } +-- The cpqHoIfPhysMap group has been deprecated. + cpqHoIfPhysMap OBJECT IDENTIFIER ::= { cpqHoComponent 5 } + cpqHoSWRunning OBJECT IDENTIFIER ::= { cpqHoComponent 6 } + cpqHoSwVer OBJECT IDENTIFIER ::= { cpqHoComponent 7 } + cpqHoGeneric OBJECT IDENTIFIER ::= { cpqHoComponent 8 } + cpqHoSwPerf OBJECT IDENTIFIER ::= { cpqHoComponent 9 } + cpqHoSystemStatus OBJECT IDENTIFIER ::= { cpqHoComponent 10 } + cpqHoTrapInfo OBJECT IDENTIFIER ::= { cpqHoComponent 11 } + cpqHoClients OBJECT IDENTIFIER ::= { cpqHoComponent 12 } + cpqHoMemory OBJECT IDENTIFIER ::= { cpqHoComponent 13 } + cpqHoFwVer OBJECT IDENTIFIER ::= { cpqHoComponent 14 } + cpqHoHWInfo OBJECT IDENTIFIER ::= { cpqHoComponent 15 } + cpqPwrThreshold OBJECT IDENTIFIER ::= { cpqHoComponent 16 } + + cpqHoOsCommon OBJECT IDENTIFIER ::= { cpqHoInterface 4 } + +-- **************************************************************************** +-- Host OS Information MIB Revision +-- ================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoMibRev Group (1.3.6.1.4.1.232.11.1) +-- +-- Implementation of the cpqHoMibRev group is mandatory for all agents +-- supporting the Host OS MIB. +-- +-- A Management Agent conforming to this document will return a +-- cpqHoMibRevMajor of one (1) and a cpqHoMibRevMinor of thirty-three (33). +-- +-- **************************************************************************** + + cpqHoMibRevMajor OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Major Revision level of the MIB. + + A change in the major revision level represents a major change + in the architecture of the MIB. A change in the major revision + level may indicate a significant change in the information + supported and/or the meaning of the supported information. + Correct interpretation of data may require a MIB document with + the same major revision level." + ::= { cpqHoMibRev 1 } + + cpqHoMibRevMinor OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Minor Revision level of the MIB. + + A change in the minor revision level may represent some minor + additional support, no changes to any pre-existing information + has occurred." + ::= { cpqHoMibRev 2 } + + cpqHoMibCondition OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), -- default state + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The overall condition. + + This object represents the overall status of the server's host + system represented by this MIB." + ::= { cpqHoMibRev 3 } + +-- **************************************************************************** +-- Host OS Common +-- ============== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoInterface Group (1.3.6.1.4.1.232.11.2.1) +-- cpqHoOsCommon Group (1.3.6.1.4.1.232.11.2.1.4) +-- +-- +-- Implementation of the cpqHoOsCommon group is mandatory for all +-- agents that support the Host OS MIB. +-- +-- **************************************************************************** + + cpqHoOsCommonPollFreq OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Insight Agent's polling frequency. + + The frequency, in seconds, at which the Insight Agent requests + information from the device driver. A frequency of zero (0) + indicates that the Insight Agent retrieves the information upon + request of a management station, it does not poll the device + driver at a specific interval. + + If the poll frequency is zero (0) all attempts to write to this + object will fail. If the poll frequency is non-zero, + setting this value will change the polling frequency of the + Insight Agent. Setting the poll frequency to zero (0) will + always fail. An agent may choose to fail any request to change + the poll frequency to a value that would severely impact system + performance." + ::= { cpqHoOsCommon 1 } + +-- **************************************************************************** +-- Host OS Common Module Table +-- =========================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoInterface Group (1.3.6.1.4.1.232.11.2.1) +-- cpqHoOsCommon Group (1.3.6.1.4.1.232.11.2.1.4) +-- cpqHoOsCommonModuleTable (1.3.6.1.4.1.232.11.2.1.4.2) deprecated +-- +-- **************************************************************************** + + cpqHoOsCommonModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A table of software modules that provide an interface to the + device this MIB describes." + ::= { cpqHoOsCommon 2 } + + cpqHoOsCommonModuleEntry OBJECT-TYPE + SYNTAX CpqHoOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A description of a software module that provides an interface + to the device this MIB describes." + INDEX { cpqHoOsCommonModuleIndex } + ::= { cpqHoOsCommonModuleTable 1 } + + CpqHoOsCommonModuleEntry ::= SEQUENCE { + cpqHoOsCommonModuleIndex INTEGER, + cpqHoOsCommonModuleName DisplayString, + cpqHoOsCommonModuleVersion DisplayString, + cpqHoOsCommonModuleDate OCTET STRING, + cpqHoOsCommonModulePurpose DisplayString + } + + cpqHoOsCommonModuleIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "A unique index for this module description." + ::= { cpqHoOsCommonModuleEntry 1 } + + cpqHoOsCommonModuleName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module name." + ::= { cpqHoOsCommonModuleEntry 2 } + + cpqHoOsCommonModuleVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..5)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module version in XX.YY format. + + Where XX is the major version number and YY is the minor version + number. This field will be null (size 0) string if the agent + cannot provide the module version." + ::= { cpqHoOsCommonModuleEntry 3 } + + cpqHoOsCommonModuleDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module date. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to year = 0 if the agent cannot provide + the module date. The hour, minute, and second field will be set + to zero (0) if they are not relevant. The year field is set + with the most significant octet first." + ::= { cpqHoOsCommonModuleEntry 4 } + + cpqHoOsCommonModulePurpose OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The purpose of the module described in this entry." + ::= { cpqHoOsCommonModuleEntry 5 } + +-- **************************************************************************** +-- Host OS Information Group +-- ========================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoInfo Group (1.3.6.1.4.1.232.11.2.2) +-- +-- +-- The cpqHoInfo group describes some general information about the +-- host OS. +-- +-- Implementation of the cpqHoInfo group is mandatory for all +-- agents supporting the Host OS MIB. +-- +-- **************************************************************************** + + + cpqHoName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the host operating system (OS)." + ::= { cpqHoInfo 1 } + + cpqHoVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The version of the host OS." + ::= { cpqHoInfo 2 } + + cpqHoDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A further description of the host OS." + ::= { cpqHoInfo 3 } + + cpqHoOsType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + netware(2), -- Novell NetWare + windowsnt(3), -- Microsoft Windows NT + sco-unix(4), -- SCO OpenServer + unixware(5), -- SCO UnixWare + os-2(6), -- IBM OS/2 + ms-dos(7), -- Microsoft DOS + dos-windows(8), -- Microsoft DOS + Microsoft Windows + windows95(9), -- Microsoft Windows 95 + windows98(10), -- Microsoft Windows 98 + open-vms(11), -- Open VMS + nsk(12), -- Non Stop Kernel + windowsCE(13), -- Microsoft Windows CE + linux(14), -- Linux + windows2000(15), -- Microsoft Windows 2000 + tru64UNIX(16), -- Tru64 UNIX + windows2003(17), -- Microsoft Windows Server 2003 + windows2003-x64(18), -- Microsoft Windows Server 2003 x64 Edition + solaris(19), -- Sun Solaris + windows2003-ia64(20), -- Microsoft Windows Server 2003 for Itanium-based Systems + windows2008(21), -- Microsoft Windows Server 2008 + windows2008-x64(22), -- Microsoft Windows Server 2008 x64 Edition + windows2008-ia64(23) -- Microsoft Windows Server 2008 for Itanium-based Systems + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Host Operating system enumeration." + ::= { cpqHoInfo 4 } + + cpqHoTelnet OBJECT-TYPE + SYNTAX INTEGER { + other(1), + available(2), + notavailable(3) -- default + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Telnet on socket 23 is available." +-- +-- This variable specifies the availability of telnet. Only socket 23 is +-- checked for telnet services. +-- + ::= { cpqHoInfo 5 } + + cpqHoSystemRole OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The system role. + + This is a settable free form text field intended to be assigned + by a remote console briefly describing the system's function." + ::= { cpqHoInfo 6 } + + cpqHoSystemRoleDetail OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..512)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The system detailed description. + + This is a settable free form text field intended to be assigned + by a remote console describing the system function in detail." + ::= { cpqHoInfo 7 } + + cpqHoCrashDumpState OBJECT-TYPE + SYNTAX INTEGER { + completememorydump(1), + kernelmemorydump(2), + smallmemorydump(3), + none(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Crash dump state. + Value of 'Unknown (-1)' is returned when crash dump state could + not be determined." + ::= { cpqHoInfo 8 } + + cpqHoCrashDumpCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- (Crash Dump settings unknown) or (Crash dump monitoring is disabled) + ok(2), -- (Crash dump settings OK) and (paging file size >= minimum) and (free disk space >= minimum) + degraded(3), -- (Crash dump settings none) or (paging file size < minimum) or (free disk space < minimum) + failed(4) -- N/A + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The condition of the Crash dump configuration." + ::= { cpqHoInfo 9 } + + cpqHoCrashDumpMonitoring OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), -- Enable crash dump monitoring. + disabled(2) -- Disable crash dump monitoring. + } + ACCESS read-write + STATUS optional + DESCRIPTION + "Enable/disable crash dump monitoring. + If crash dump monitoring is enabled both crash dump TRAP's + are generated and crash dump condition is updated. + If crash dump monitoring is disabled, no crash dump TRAP + is generated and the crash dump condition is set to + other" + ::= { cpqHoInfo 10 } + + cpqHoMaxLogicalCPUSupported OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "Maximum number of logical CPUs supported by Operating System." + ::= { cpqHoInfo 11 } + + +-- **************************************************************************** +-- Host OS CPU Utilization Table +-- ============================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoUtil Group (1.3.6.1.4.1.232.11.2.3) +-- cpqHoCpuUtilTable (1.3.6.1.4.1.232.11.2.3.1) +-- +-- +-- The cpqHoUtil group contains measures of system utilization. +-- +-- Implementation of the cpqHoUtil group is mandatory for all agents +-- that support the Host OS MIB. +-- +-- **************************************************************************** + + + + cpqHoCpuUtilTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoCpuUtilEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of CPU utilization entries." + ::= { cpqHoUtil 1 } + + cpqHoCpuUtilEntry OBJECT-TYPE + SYNTAX CpqHoCpuUtilEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a CPU's utilization." + INDEX { cpqHoCpuUtilUnitIndex } + ::= { cpqHoCpuUtilTable 1 } + + CpqHoCpuUtilEntry ::= SEQUENCE { + cpqHoCpuUtilUnitIndex INTEGER, + cpqHoCpuUtilMin INTEGER, + cpqHoCpuUtilFiveMin INTEGER, + cpqHoCpuUtilThirtyMin INTEGER, + cpqHoCpuUtilHour INTEGER, + cpqHoCpuUtilHwLocation DisplayString + } + + cpqHoCpuUtilUnitIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This number uniquely specifies a processor unit. + + A processing unit may be a set of processing chips that are + on the same board or for other reasons work together as a unit. + The main processor unit (if such a concept is valid for this + machine) will always have the lowest (first) index." + ::= { cpqHoCpuUtilEntry 1 } + + cpqHoCpuUtilMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The CPU utilization as a percentage of the theoretical + maximum during the last minute. A value of -1 indicates + that no CPU utilization information is available for this + processor." + ::= { cpqHoCpuUtilEntry 2 } + + cpqHoCpuUtilFiveMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The CPU utilization as a percentage of the theoretical + maximum during the last five minutes. A value of -1 indicates + that no CPU utilization information is available for this + processor." + ::= { cpqHoCpuUtilEntry 3 } + + cpqHoCpuUtilThirtyMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The CPU utilization as a percentage of the theoretical + maximum during the last thirty minutes. A value of -1 indicates + that no CPU utilization information is available for this + processor." + ::= { cpqHoCpuUtilEntry 4 } + + cpqHoCpuUtilHour OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The CPU utilization as a percentage of the theoretical + maximum during the last hour. A value of -1 indicates + that no CPU utilization information is available for this + processor." + ::= { cpqHoCpuUtilEntry 5 } + + cpqHoCpuUtilHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the CPU. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqHoCpuUtilEntry 6 } + + +-- **************************************************************************** +-- Host OS File System Table +-- ========================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoFileSys Group (1.3.6.1.4.1.232.11.2.4) +-- cpqHoFileSysTable (1.3.6.1.4.1.232.11.2.4.1) +-- +-- The cpqHoFileSys group contains configuration and status information +-- about the file system. +-- +-- **************************************************************************** + + + + cpqHoFileSysTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoFileSysEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of file system descriptions." + ::= { cpqHoFileSys 1 } + + cpqHoFileSysEntry OBJECT-TYPE + SYNTAX CpqHoFileSysEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A file system description." + INDEX { cpqHoFileSysIndex } + ::= { cpqHoFileSysTable 1 } + + CpqHoFileSysEntry ::= SEQUENCE { + cpqHoFileSysIndex INTEGER, + cpqHoFileSysDesc DisplayString, + cpqHoFileSysSpaceTotal INTEGER, + cpqHoFileSysSpaceUsed INTEGER, + cpqHoFileSysPercentSpaceUsed INTEGER, + cpqHoFileSysAllocUnitsTotal INTEGER, + cpqHoFileSysAllocUnitsUsed INTEGER, + cpqHoFileSysStatus INTEGER + } + + cpqHoFileSysIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry." + ::= { cpqHoFileSysEntry 1 } + + cpqHoFileSysDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the file system." + ::= { cpqHoFileSysEntry 2 } + + cpqHoFileSysSpaceTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The file system size in megabytes. + + This item will be set to -1 if the agent is unable to determine + this information." + ::= { cpqHoFileSysEntry 3 } + + cpqHoFileSysSpaceUsed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The megabytes of file system space currently in use. + + This item will be set to -1 if the agent is unable to determine + this information." + ::= { cpqHoFileSysEntry 4 } + + + cpqHoFileSysPercentSpaceUsed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The percent of file system space currently in use. + This item will be set to -1 if this information is not + available." + + ::= { cpqHoFileSysEntry 5 } + + cpqHoFileSysAllocUnitsTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of files (directory entries) that can be + stored on the file system if a limit exists other than + total space used. This item will be set to -1 if no such + limit exists." + ::= { cpqHoFileSysEntry 6 } + + cpqHoFileSysAllocUnitsUsed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of files (directory entries) on this file system. + This item will be set to -1 if the agent does not determine this + information." + ::= { cpqHoFileSysEntry 7 } + + cpqHoFileSysStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), -- default state + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Threshold Status. + + This object represent the status of the Filesystem threshold." + ::= { cpqHoFileSysEntry 8 } + +-- **************************************************************************** +-- Host OS File System Table +-- ========================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoFileSys Group (1.3.6.1.4.1.232.11.2.4) +-- cpqHoFileSysCondition (1.3.6.1.4.1.232.11.2.4.2) +-- +-- The cpqHoFileSys group contains overall condition of Filesystem Threshold +-- +-- **************************************************************************** + cpqHoFileSysCondition OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), -- default state + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The overall condition of File System Threshold. + + This object represents the overall status of the server's + File System Threshold." + ::= { cpqHoFileSys 2 } + +-- **************************************************************************** +-- Host OS Interface Physical Map Table +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoIfPhysMap Group (1.3.6.1.4.1.232.11.2.5) deprecated +-- cpqHoIfPhysMapTable (1.3.6.1.4.1.232.11.2.5.1) deprecated +-- +-- +-- The cpqHoIfPhysMap group contains information to map interface numbers +-- in the MIB-II interface group to the physical interface cards that +-- implement the interface. +-- +-- Implementation of the cpqHoIfPhysMap group is mandatory for all agents +-- that support the Host OS MIB. +-- +-- **************************************************************************** + + cpqHoIfPhysMapTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoIfPhysMapEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A table of interface to physical hardware mappings." + ::= { cpqHoIfPhysMap 1 } + + cpqHoIfPhysMapEntry OBJECT-TYPE + SYNTAX CpqHoIfPhysMapEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A mapping of an interface table entry to physical hardware." + INDEX { cpqHoIfPhysMapIndex } + ::= { cpqHoIfPhysMapTable 1 } + + CpqHoIfPhysMapEntry ::= SEQUENCE { + cpqHoIfPhysMapIndex INTEGER, + cpqHoIfPhysMapSlot INTEGER, + cpqHoIfPhysMapIoBaseAddr INTEGER, + cpqHoIfPhysMapIrq INTEGER, + cpqHoIfPhysMapDma INTEGER, + cpqHoIfPhysMapMemBaseAddr INTEGER, + cpqHoIfPhysMapPort INTEGER, + cpqHoIfPhysMapDuplexState INTEGER, + cpqHoIfPhysMapCondition INTEGER + } + + cpqHoIfPhysMapIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "An index that uniquely specifies this entry. This value is + equal to the index of the entry in the MIB-II interface table + to which this entry corresponds." + ::= { cpqHoIfPhysMapEntry 1 } + + cpqHoIfPhysMapSlot OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of the slot containing the physical hardware that + implements this interface. The number zero (0) indicates an + embedded interface (on the system board) or an interface whose + slot is unknown. Values may be unknown if the physical + hardware has not been configured using the EISA Configuration + Utility." + ::= { cpqHoIfPhysMapEntry 2 } + + cpqHoIfPhysMapIoBaseAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The base I/O address of the physical hardware that implements + this interface." + ::= { cpqHoIfPhysMapEntry 3 } + + cpqHoIfPhysMapIrq OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of the IRQ (interrupt) used for this physical + hardware interface. The number zero (0) indicates that this + device does not use an IRQ or this information is unavailable." + ::= { cpqHoIfPhysMapEntry 4 } + + cpqHoIfPhysMapDma OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of the DMA channel used for this physical hardware + interface. The number -1 indicates that this device does not + use a DMA channel or this information is unavailable." + ::= { cpqHoIfPhysMapEntry 5 } + + cpqHoIfPhysMapMemBaseAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The base memory address used by this physical hardware + interface. The number zero (0) indicates that this device does + not use system memory or this information is unavailable." + ::= { cpqHoIfPhysMapEntry 6 } + + cpqHoIfPhysMapPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The port number of the interface for multi-port NICs. + A port number of -1 indicates that the port could not + be determined." + ::= { cpqHoIfPhysMapEntry 7 } + + cpqHoIfPhysMapDuplexState OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- default + half(2), + full(3) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "This variable describes the configured duplex state of the NIC." + + ::= { cpqHoIfPhysMapEntry 8 } + + cpqHoIfPhysMapCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), -- default + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The condition of this interface." + ::= { cpqHoIfPhysMapEntry 9 } + + cpqHoIfPhysMapOverallCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), -- default + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The overall condition of all interfaces." + ::= { cpqHoIfPhysMap 2 } + +-- **************************************************************************** +-- Host OS Software Running Table +-- ============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoSWRunning Group (1.3.6.1.4.1.232.11.2.6) +-- cpqHoSWRunningTable (1.3.6.1.4.1.232.11.2.6.1) +-- cpqHoSwRunningTrapDesc (1.3.6.1.4.1.232.11.2.6.2) +-- +-- +-- The cpqHoSWRunning group contains configuration and status information +-- about the software running on the host OS. +-- +-- Implementation of the cpqHoSWRunning group is optional for agents +-- that support the Host OS MIB. +-- +-- **************************************************************************** + + cpqHoSWRunningTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoSWRunningEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of descriptions of software running on the system." + ::= { cpqHoSWRunning 1 } + + cpqHoSWRunningEntry OBJECT-TYPE + SYNTAX CpqHoSWRunningEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a software program running on the system." + INDEX { cpqHoSWRunningIndex } + ::= { cpqHoSWRunningTable 1 } + + CpqHoSWRunningEntry ::= SEQUENCE { + cpqHoSWRunningIndex INTEGER, + cpqHoSWRunningName DisplayString, + cpqHoSWRunningDesc DisplayString, + cpqHoSWRunningVersion DisplayString, + cpqHoSWRunningDate OCTET STRING, + cpqHoSWRunningMonitor INTEGER, + cpqHoSWRunningState INTEGER, + cpqHoSWRunningCount INTEGER, + cpqHoSWRunningCountMin INTEGER, + cpqHoSWRunningCountMax INTEGER, + cpqHoSWRunningEventTime OCTET STRING, + cpqHoSWRunningStatus INTEGER, + cpqHoSWRunningConfigStatus INTEGER, + cpqHoSWRunningIdentifier DisplayString, + cpqHoSWRunningRedundancyMode INTEGER + } + + cpqHoSWRunningIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry." + ::= { cpqHoSWRunningEntry 1 } + + cpqHoSWRunningName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the software." + ::= { cpqHoSWRunningEntry 2 } + + cpqHoSWRunningDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the software." + ::= { cpqHoSWRunningEntry 3 } + + cpqHoSWRunningVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The version of the software. + + This field will be a null (size 0) string if the agent cannot + provide the software version." + ::= { cpqHoSWRunningEntry 4 } + + cpqHoSWRunningDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The software date. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to year = 0 if the agent cannot provide + the software date. The hour, minute, and second field will be + set to zero (0) if they are not relevant." + ::= { cpqHoSWRunningEntry 5 } + + cpqHoSWRunningMonitor OBJECT-TYPE + SYNTAX INTEGER + { + other(1), -- default + start(2), + stop(3), + startAndStop(4), + count(5), + startAndCount(6), + countAndStop(7), + startCountAndStop(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The user specified monitor option for a process." + ::= { cpqHoSWRunningEntry 6 } + + cpqHoSWRunningState OBJECT-TYPE + SYNTAX INTEGER + { + other(1), -- default + started(2), + stopped(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current state of monitored process." + ::= { cpqHoSWRunningEntry 7 } + + cpqHoSWRunningCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "For each process name, the number of instances of the process running on the system is + kept count of, in this variable." + ::= { cpqHoSWRunningEntry 8 } + + cpqHoSWRunningCountMin OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS optional + DESCRIPTION + "This is the lower threshold on cpqHoSWRunningCount to be set by the user." + ::= { cpqHoSWRunningEntry 9 } + + cpqHoSWRunningCountMax OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS optional + DESCRIPTION + "This is the upper threshold on cpqHoSWRunningCount to be set by the user." + ::= { cpqHoSWRunningEntry 10 } + + cpqHoSWRunningEventTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The system time at which the monitored event, as per cpqHoSWRunningMonitor, last occurred. + + field octets contents range + ===== ====== ======== ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + The hour, minute, and second field will be set to zero (0) if they are not relevant." + ::= { cpqHoSWRunningEntry 11 } + + cpqHoSWRunningStatus OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + normal(2), + warning(3), + minor(4), + major(5), + critical(6), + disabled(7) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The overall alarm state of the resources managed by the software, or the software itself." + ::= { cpqHoSWRunningEntry 12 } + + cpqHoSWRunningConfigStatus OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + starting(2), + initialized(3), + configured(4), + operational(5) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The configuration state of the software. The level of initialization the software has performed." + ::= { cpqHoSWRunningEntry 13 } + + cpqHoSWRunningIdentifier OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The unique identifier of the sofware. This identifier should be unique for all instances of the sofware running in the environment." + ::= { cpqHoSWRunningEntry 14 } + + cpqHoSWRunningRedundancyMode OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + master(2), + backup(3), + slave(4) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "When the software is running in a high availability mode, the failover mode of this instance of the software." + ::= { cpqHoSWRunningEntry 15 } + + cpqHoSwRunningTrapDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The error message for a process monitor event." + ::= { cpqHoSWRunning 2 } + + +-- **************************************************************************** +-- Config Software Version Instrumentation Group +-- =============================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoSwVer Group (1.3.6.1.4.1.232.11.2.7) +-- cpqHoSwVerTable (1.3.6.1.4.1.232.11.2.7.2) +-- cpqHoSwVerAgentsVer (1.3.6.1.4.1.232.11.2.7.3) +-- +-- The cpqSwVer group describes the software version table. +-- +-- Implementation of the cpqSwVer group is mandatory for all +-- agents that support the Host MIB. +-- +-- The read-write elements of this table should be saved from instance to +-- instance of the agent. +-- +-- This table can be added to by writing to the cpqHoSwVerName (using the +-- cpqHoSwVerNextIndex index) field with a new driver name. Writing to +-- this field causes the creation of a new table row (and any data that can +-- be obtained will be filled in, the remainder will be set to the defaults.) +-- +-- A row may be deleted by writing to the cpqHoSwVerName field with a null +-- entry. +-- **************************************************************************** + + cpqHoSwVerNextIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index of the next available entry in the cpqHoSwVer + table. If the maximum number of entries to the cpqHoSwVer + table has been reached, this index will contain -1." +-- +-- Writing to the cpqHoSwVerName variable using this index will cause a new +-- entry in the table to be created. +-- + ::= { cpqHoSwVer 1 } + + cpqHoSwVerTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoSwVerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of software item entries." + ::= { cpqHoSwVer 2 } + + cpqHoSwVerEntry OBJECT-TYPE + SYNTAX CpqHoSwVerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of software items that are on the machine." + INDEX { cpqHoSwVerIndex } + ::= { cpqHoSwVerTable 1 } + + CpqHoSwVerEntry ::= SEQUENCE { + cpqHoSwVerIndex INTEGER, + cpqHoSwVerStatus INTEGER, + cpqHoSwVerType INTEGER, + cpqHoSwVerName DisplayString, + cpqHoSwVerDescription DisplayString, + cpqHoSwVerDate OCTET STRING, + cpqHoSwVerLocation DisplayString, + cpqHoSwVerVersion DisplayString, + cpqHoSwVerVersionBinary DisplayString + } + + cpqHoSwVerIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely identifies an entry in the + cpqHoSwVer table." + ::= { cpqHoSwVerEntry 1 } + + cpqHoSwVerStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- undefined (default) + loaded(2), -- and running + notloaded(3) -- found but not loaded + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Status for the software item." +-- +-- Items of type 'other' are those items which the agent could +-- not locate. +-- + ::= { cpqHoSwVerEntry 2 } + + cpqHoSwVerType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + driver(2), -- (default) + agent(3), + sysutil(4), + application(5), + keyfile(6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Type of software item." + ::= { cpqHoSwVerEntry 3 } + + cpqHoSwVerName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..127)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The name of this software item." +-- +-- Writing to this entry with an index equal to cpqHoSwVerNextIndex +-- causes a table row to be created, and all entries to be filled in. +-- +-- Writing to this entry with a NULL name deletes the current row. +-- + ::= { cpqHoSwVerEntry 4 } + + cpqHoSwVerDescription OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..127)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The description of this software item." +-- +-- A length of 0 indicates that the description of this item is +-- not available. +-- +-- Writing to this entry can cause the entire row to be updated. +-- + ::= { cpqHoSwVerEntry 5 } + + cpqHoSwVerDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date of the software item, if any. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65535 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + The year field is set with the most significant octet first. + + An entry of zero (0) means that there is no date associated with + this software item. Zero is the default." + ::= { cpqHoSwVerEntry 6 } + + cpqHoSwVerLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The location of this software item on the server." + ::= { cpqHoSwVerEntry 7 } + + cpqHoSwVerVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..50)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An string that specifies the version of this item." + ::= { cpqHoSwVerEntry 8 } + + cpqHoSwVerVersionBinary OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..50)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An string that specifies the version of this item based on + the binary version resource." + ::= { cpqHoSwVerEntry 9 } + +-- +-- New for release 7.10: cpqHoSwVerAgentsVer +-- + cpqHoSwVerAgentsVer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..50)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A string that specifies the version of the Insight + Management Agents running on the system." + ::= { cpqHoSwVer 3 } + + +-- **************************************************************************** +-- The cpqHoGeneric group holds only the generic trap +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOS Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoGeneric Group (1.3.6.1.4.1.232.11.2.8) +-- +-- Implementation of this group is optional. +-- +-- **************************************************************************** + cpqHoGenericData OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Data for the generic trap." +-- +-- This is the data variable that is sent with the generic trap below. +-- +-- Writing to this variable will cause the generic trap to be sent with +-- the newly written data. +-- + ::= { cpqHoGeneric 1 } + + cpqHoCriticalSoftwareUpdateData OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..512)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Data for the Critical Software Update trap." +-- +-- This is the data variable that is sent with the Critical Software +-- update Notification Trap below. +-- Writing to this variable will cause the Critical Software update Notification Trap +-- to be sent with the newly written data. +-- + ::= { cpqHoGeneric 2 } + +-- **************************************************************************** +-- Software Performance Group +-- =========================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOS Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoSwPerf Group (1.3.6.1.4.1.232.11.2.9) +-- +-- Implementation of this group is optional. +-- +-- **************************************************************************** + cpqHoSwPerfAppErrorDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..254)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + " This string holds error information about the last application + error that occurred in the system. " + + ::= { cpqHoSwPerf 1 } + +-- **************************************************************************** +-- System Status Group +-- =================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOS Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoSystemStatus Group (1.3.6.1.4.1.232.11.2.10) +-- +-- Implementation of this group is mandatory. +-- +-- **************************************************************************** + + cpqHoMibStatusArray OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (4..256)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MIB Status Array is an array of MIB status structures. Each + structure is made up of 4 octets. The first octet is the MIB + presence. The second octet is MIB condition. The third octet is + MIB major revision. The fourth octet is MIB minor revision. These + blocks of 4 octets each are index by the mib identifier just after + the compaq enterprise (eg in 1.3.6.1.232.11 mib, the index is 11). + The 4 octets in the first block (block 0) are reserved for systems + management and serve as an aggregate of the other mibs. + + Array element 0 is the status for all MIBs in the Compaq + Enterprise. Array element n, where n > 0, is the status for the + nth MIB in the Compaq Enterprise (.1.3.6.1.4.1.232.n). + + Octet Element Field + ======== ======= ========= + 0 0 Status of any Compaq MIBs + 1 Condition of all Compaq MIBs + 2 System Flags (see below) + 3 Detailed type (see below) + 4 1 Status of Compaq MIB 1 + 5 Condition of Compaq MIB 1 + 6 Major Revision of Compaq MIB 1 + 7 Minor Revision of Compaq MIB 1 + 8 2 Status of Compaq MIB 2 + 9 Condition of Compaq MIB 2 + 10 Major Revision of Compaq MIB 2 + 11 Minor Revision of Compaq MIB 2 + . . + . + . + n*4 n Status of Compaq MIB n + (n*4)+1 Condition of Compaq MIB n + (n*4)+2 Major Revision of Compaq MIB n + (n*4)+3 Minor Revision of Compaq MIB n + + System Flags (octet 2) + Bit Meaning + ===== ========= + 0 Equals 1 if the device is not a server, see detailed type below + Equals 0 if the device is a server + 1 This system contains enabled remote console + functionality. + 2 This system is configured to be an Integration Server. + 3 Web Based Management is enabled. + 4-7 Reserved (reserved Bits should be zero) + + Detailed Type (octet 3) + Bits 0-4 Detailed Type, only used if bit 0 in octet 2 is 1. + Bits 5-7 Reserved for expansion. note, use these last in case we + need more then 32 types someday. + + Type Values for Bits 0-4 (maps to CIM7 types) + Unknown = 0 + Server = 1 (yes a duplicate of the server flag) + Desktop = 2 + Workstation = 3 + Portable = 4 + Router = 5 + Cluster = 6 + Printer = 7 + Switch = 8 (network switch) + Repeater = 9 + Remote Access Device = 10 + Other = 11 + Management Processor = 12 (rib, RILOE, iLo) + Rack = 13 + Enclosure = 14 + KVM Switch = 15 (IP enabled keyboard video mouse switch). + UPS = 16 + Power Distribution Unit = 17 + Environmental Monitor = 18 (eg CMC) + Power Distribution Rack = 19 (PDR) + Storage Device = 20 + + For all other blocks, they are defined as: + Status This is a collection of flags. Each bit has the + following meaning when it is on (1): + + Bit 2-7: RESERVED: Always 0 + Bit 1: MIB is from offline data (only applies + to global system status) + Bit 0: MIB is available + + NOTE: bit 7 is the most significant bit, bit 0 + is the least significant. + + Condition 0 - Not available + 1 - Other + 2 - OK + 3 - Degraded + 4 - Failed + + Major Revision 0..255, where 0 is not available + Minor Revision 0..255, where 0 is not available" + + + + ::= { cpqHoSystemStatus 1 } + + cpqHoConfigChangedDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date/time when the agents were last loaded. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to year = 0 if the agent cannot provide + the date/time. The year field is set with the most significant + octet first." + ::= { cpqHoSystemStatus 2 } + + cpqHoGUID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (16..17)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The globally unique identifier of this physical server. + If the OS cannot determine a unique ID, it will default the + variable to contain all 0's. The management station can then + perform a SET to this variable to provide the unique ID. + When the system is cellular, it will have its partition number + appended at the end." + ::= { cpqHoSystemStatus 3 } + + cpqHoCodeServer OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This item indicates how many code server shares are currently + configured on the system. If the value of this attribute is + 0, this server has not been configured with code server shares." + ::= { cpqHoSystemStatus 4 } + + cpqHoWebMgmtPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This item indicates the port used by the Insight Web Agent. + If the port cannot be determined or the Web Management agent + is not enabled, this value will be -1." + ::= { cpqHoSystemStatus 5 } + + cpqHoGUIDCanonical OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (32..36)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The globally unique identifier in canonical format of this + physical server. If the OS cannot determine a unique ID, it will + default the variable to blank." + ::= { cpqHoSystemStatus 6 } +-- **************************************************************************** +-- Trap Info Group +-- ================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOS Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoTrapInfo Group (1.3.6.1.4.1.232.11.2.11) +-- +-- Implementation of this group is mandatory. +-- +-- **************************************************************************** + + cpqHoTrapFlags OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Trap Flags. + + + This is a collection of flags used during trap delivery. + Each bit has the following meaning: + + Bit 5-31: RESERVED: Always 0. + Bit 2-4: Trap Condition + 0 = Not used (for backward compatibility) + 1 = Condition unknown or N/A + 2 = Condition ok + 3 = Condition degraded + 4 = Condition failed + 5-7 = reserved + Bit 1: Client IP address type + 0 = static entry + 1 = DHCP entry + Bit 0: Agent Type + 0 = Server + 1 = Client + + NOTE: bit 31 is the most significant bit, bit 0 is the least + significant." + + ::= { cpqHoTrapInfo 1 } + + +-- **************************************************************************** +-- OS Client Table +-- ==================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOS Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +--- cpqHoClient Group (1.3.6.1.4.1.232.11.2.12) +-- +-- The cpqHoClient table contains entries describing identification, +-- address, and status information about each unit that is using +-- services provided by this unit. +-- +-- **************************************************************************** + + + + cpqHoClientLastModified OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date/time of the last modification to the client table. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to all 0's if there are no entries to the + client table. + + The year field will be set to 0xFFFF if the agent does not support + the client table. + + The year field is set with the most significant octet first." + ::= { cpqHoClients 1 } + + cpqHoClientDelete OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..15)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Setting this variable to the name of a client in the client table + will cause that row in the table to be deleted. Any other set + will fail. + + Note that the indices of the table will (most likely) be renumbered + following a deletion." + ::= { cpqHoClients 2 } + + + cpqHoClientTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoClientEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of client descriptions." + ::= { cpqHoClients 3 } + + cpqHoClientEntry OBJECT-TYPE + SYNTAX CpqHoClientEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A client description." + INDEX { cpqHoClientIndex } + ::= { cpqHoClientTable 1 } + + CpqHoClientEntry ::= SEQUENCE { + cpqHoClientIndex INTEGER, + cpqHoClientName DisplayString, + cpqHoClientIpxAddress OCTET STRING, + cpqHoClientIpAddress IpAddress, + cpqHoClientCommunity DisplayString, + cpqHoClientID OCTET STRING + } + + cpqHoClientIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry." + ::= { cpqHoClientEntry 1 } + + cpqHoClientName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..15)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Win95 machine name of this client." + +-- Note that Win95 limits the machine name to a maximum of 15 characters. + + ::= { cpqHoClientEntry 2 } + + cpqHoClientIpxAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (20)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IPX address for this client, all octets should be set to + 0xff if this machine does not support IPX. + + The format is NetAddr:NodeNumber and sent in MSB order: + + 1111111111 + 01234567:890123456789" + +-- Note, this item is still in definition and probably will change. + + ::= { cpqHoClientEntry 3 } + + cpqHoClientIpAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address for this client, all octets should be set to + 0xff if this machine does not support IP. The order will be + in network byte order (ie MSB first.)" + + ::= { cpqHoClientEntry 4 } + + cpqHoClientCommunity OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..48)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A community name that can be used to query the client with SNMP. + This community name should have, but is not required to have, + the greatest possible access to client information." + ::= { cpqHoClientEntry 5 } + + cpqHoClientID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unique identifier of this client." + ::= { cpqHoClientEntry 6 } + +-- **************************************************************************** +-- OS Memory Group +-- =============== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOS Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +--- cpqHoMemory Group (1.3.6.1.4.1.232.11.2.13) +-- +-- The cpqHoMemory group contains entries describing memory +-- as seen by the OS. +-- +-- **************************************************************************** + + cpqHoPhysicalMemorySize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total amount of physical memory as seen by the OS (in megabytes). + + A -1 will be returned if this value could not be determined." + ::= { cpqHoMemory 1 } + + cpqHoPhysicalMemoryFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of free physical memory (in megabytes). + + A -1 will be returned if this value could not be determined." + ::= { cpqHoMemory 2 } + + cpqHoPagingMemorySize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total virtual memory available from the OS (in megabytes). + + A -1 will be returned if this value could not be determined." + ::= { cpqHoMemory 3 } + + cpqHoPagingMemoryFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Available paging memory (in megabytes). + + A -1 will be returned if this value could not be determined." + ::= { cpqHoMemory 4 } + + cpqHoBootPagingFileSize OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..10)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The paging file size of the boot volume in the format xxxMB or + xxxGB, where xxx is the paging file size in that unit shown right + after it. + + NULL value will be returned if this value could not be determined." + ::= { cpqHoMemory 5 } + + cpqHoBootPagingFileMinimumSize OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..10)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Minimum paging file size of the boot volume required to save the + memory dump in the event of a system crash. The format is xxxMB or + xxxGB, where xxx is the minimum paging file size in that unit shown + right after it." + ::= { cpqHoMemory 6 } + + cpqHoBootPagingFileVolumeFreeSpace OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..10)) + ACCESS read-only + STATUS optional + DESCRIPTION + "Free space of the boot volume required to save the memory dump in the + event of a system crash. The format is xxxMB or xxxGB, where xxx is + the minimum paging file size in that unit shown right after it." + ::= { cpqHoMemory 7 } + +-- **************************************************************************** +-- Firmware Version Instrumentation Group +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoFwVer Group (1.3.6.1.4.1.232.11.2.14) +-- cpqHoFwVerTable (1.3.6.1.4.1.232.11.2.14.1) +-- +-- The cpqHoFwVer group describes the firmware version table. +-- +-- Implementation of the cpqHoFwVer group is mandatory for all +-- agents that support the Host MIB. +-- +-- **************************************************************************** + + cpqHoFwVerTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqHoFwVerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of firmware item entries." + ::= { cpqHoFwVer 1 } + + cpqHoFwVerEntry OBJECT-TYPE + SYNTAX CpqHoFwVerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of firmware items that are on the machine." + INDEX { cpqHoFwVerIndex } + ::= { cpqHoFwVerTable 1 } + + CpqHoFwVerEntry ::= SEQUENCE { + cpqHoFwVerIndex INTEGER, + cpqHoFwVerCategory INTEGER, + cpqHoFwVerDeviceType INTEGER, + cpqHoFwVerDisplayName DisplayString, + cpqHoFwVerVersion DisplayString, + cpqHoFwVerLocation DisplayString, + cpqHoFwVerXmlString DisplayString, + cpqHoFwVerKeyString DisplayString, + cpqHoFwVerUpdateMethod INTEGER + } + + cpqHoFwVerIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version Index. + + The firmware version index uniquely identifies an entry in the + cpqHoFwVer table." + ::= { cpqHoFwVerEntry 1 } + + cpqHoFwVerCategory OBJECT-TYPE + SYNTAX INTEGER { + other(1), + storage(2), + nic(3), + rib(4), + system(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version Category." + ::= { cpqHoFwVerEntry 2 } + + cpqHoFwVerDeviceType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + internalArrayController(2), + fibreArrayController(3), + scsiController(4), + fibreChannelTapeController(5), + modularDataRouter(6), + ideCdRomDrive(7), + ideDiskDrive(8), + scsiCdRom-ScsiAttached(9), + scsiDiskDrive-ScsiAttached(10), + scsiTapeDrive-ScsiAttached(11), + scsiTapeLibrary-ScsiAttached(12), + scsiDiskDrive-ArrayAttached(13), + scsiTapeDrive-ArrayAttached(14), + scsiTapeLibrary-ArrayAttached(15), + scsiDiskDrive-FibreAttached(16), + scsiTapeDrive-FibreAttached(17), + scsiTapeLibrary-FibreAttached(18), + scsiEnclosureBackplaneRom-ScsiAttached(19), + scsiEnclosureBackplaneRom-ArrayAttached(20), + scsiEnclosureBackplaneRom-FibreAttached(21), + scsiEnclosureBackplaneRom-ra4x00(22), + systemRom(23), + networkInterfaceController(24), + remoteInsightBoard(25) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version Device Type." + ::= { cpqHoFwVerEntry 3 } + + cpqHoFwVerDisplayName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..127)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version Device Display Name. + + This is the display name of the device containing the firmware." + ::= { cpqHoFwVerEntry 4 } + + cpqHoFwVerVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version. + + This is the version of the device firmware." + ::= { cpqHoFwVerEntry 5 } + + cpqHoFwVerLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version Device Location. + + This is a printable string that specifies the location of the + device that contains the firmware." + ::= { cpqHoFwVerEntry 6 } + + cpqHoFwVerXmlString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version Xml String. + + This is an XML string that specifies the location of the device + that contains the firmware. + This will be NULL string (size 0) if this information could not + be provided." + ::= { cpqHoFwVerEntry 7 } + + cpqHoFwVerKeyString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..127)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version Key String. + + This field is differentiate devices of the same type." + ::= { cpqHoFwVerEntry 8 } + + + cpqHoFwVerUpdateMethod OBJECT-TYPE + SYNTAX INTEGER { + other(1), + noUpdate(2), + softwareflash(3), + replacePhysicalRom(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware Version update method." + ::= { cpqHoFwVerEntry 9 } + + +-- **************************************************************************** +-- Hardware Information Group +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOs Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqHoHWInfo Group (1.3.6.1.4.1.232.11.2.15) +-- cpqHoHWInfoPlatform (1.3.6.1.4.1.232.11.2.15.1) +-- +-- The cpqHoHWInfo group describes some hw information necessary to other agents. +-- +-- Implementation of the cpqHoHWInfo group is optional for +-- agents that support the Host MIB. +-- +-- **************************************************************************** + cpqHoHWInfoPlatform OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + cellular(2), + foundation(3), + virtualMachine(4), + serverBlade(5) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "Hardware platform type. + + This object represents the platform type of the server's host + system represented by this MIB." + ::= { cpqHoHWInfo 1 } + +-- **************************************************************************** +-- The cpqPwrThreshold group holds data for the +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqHostOS Group (1.3.6.1.4.1.232.11) +-- cpqHoComponent Group (1.3.6.1.4.1.232.11.2) +-- cpqPwrThreshold Group (1.3.6.1.4.1.232.11.2.16) +-- +-- Implementation of this group is mandatory. +-- +-- **************************************************************************** + cpqPwrWarnType OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Type of power reading on which the warning is based." + + ::= { cpqPwrThreshold 1 } + + cpqPwrWarnThreshold OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The threshold the power usage must exceed (in Watts)." + + ::= { cpqPwrThreshold 2 } + + cpqPwrWarnDuration OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Duration that power usage must be exceeded before warning (in minutes)." + + ::= { cpqPwrThreshold 3 } + + cpqSerialNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Serial number of the server." + + ::= { cpqPwrThreshold 4 } + + cpqServerUUID OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Server UUID" + + ::= { cpqPwrThreshold 5 } + + +-- **************************************************************************** +-- Host MIB Trap Definitions +-- ========================= +-- +-- The SNMP trap messages must not be bigger than 484 octets (bytes). +-- +-- Trap support in an SNMP agent implementation is optional. An SNMP +-- agent implementation may support all, some, or none of the traps. +-- If traps are supported, The user should be provided with the option of +-- disabling traps. +-- +-- Implementation of cpqHoGenericTrap is a mandatory part of the Generic +-- group. +-- +-- ************************************************************************** + + cpqHoGenericTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqHoGenericData } + DESCRIPTION + -- This trap is a generic trap, and left undefined. + "Generic trap." + + --#TYPE "Generic trap (11001)" + --#SUMMARY "%s" + --#ARGUMENTS {0} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + + ::= 11001 + + cpqHoAppErrorTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqHoSwPerfAppErrorDesc } + DESCRIPTION + "An application has generated an exception. Specific + error information is contained in the variable + cpqHoSwPerfAppErrorDesc." + + --#TYPE "Application Error Trap (11002)" + --#SUMMARY "%s" + --#ARGUMENTS {0} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + + ::= 11002 + + + cpqHo2GenericTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoGenericData } + DESCRIPTION + -- This trap is a generic trap, and left undefined. + "Generic trap." + + --#TYPE "Generic trap (11003)" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + + ::= 11003 + + cpqHo2AppErrorTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoSwPerfAppErrorDesc } + DESCRIPTION + "An application has generated an exception. Specific + error information is contained in the variable + cpqHoSwPerfAppErrorDesc." + + --#TYPE "Application Error Trap (11004)" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + + ::= 11004 + + cpqHo2NicStatusOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoIfPhysMapSlot } + DESCRIPTION + "This trap will be sent any time the status of a NIC changes to + the OK condition." + + --#TYPE "Status Trap (11005)" + --#SUMMARY "NIC Status is OK for slot %s." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + ::= 11005 + + cpqHo2NicStatusFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoIfPhysMapSlot } + DESCRIPTION + "This trap will be sent any time the status of a NIC changes to + the Failed condition." + + --#TYPE "Status Trap (11006)" + --#SUMMARY "NIC Status is Failed for slot %s." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + ::= 11006 + + cpqHo2NicSwitchoverOccurred TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoIfPhysMapSlot, cpqHoIfPhysMapSlot } + DESCRIPTION + "This trap will be sent any time the configured redundant NIC + becomes the active NIC." + + --#TYPE "Status Trap (11007)" + --#SUMMARY "NIC switchover to slot %s from slot %s." + --#ARGUMENTS {2, 3} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + ::= 11007 + + + cpqHo2NicStatusOk2 TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoIfPhysMapSlot, + cpqHoIfPhysMapPort } + DESCRIPTION + "This trap will be sent any time the status of a NIC changes to + the OK condition." + + --#TYPE "Status Trap (11008)" + --#SUMMARY "NIC Status is OK for slot %s, port %s." + --#ARGUMENTS {2, 3} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + ::= 11008 + + cpqHo2NicStatusFailed2 TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoIfPhysMapSlot, + cpqHoIfPhysMapPort } + DESCRIPTION + "This trap will be sent any time the status of a NIC changes to + the Failed condition." + + --#TYPE "Status Trap (11009)" + --#SUMMARY "NIC Status is Failed for slot %s, port %s." + --#ARGUMENTS {2, 3} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + ::= 11009 + + cpqHo2NicSwitchoverOccurred2 TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoIfPhysMapSlot, + cpqHoIfPhysMapPort, cpqHoIfPhysMapSlot, + cpqHoIfPhysMapPort } + DESCRIPTION + "This trap will be sent any time the configured redundant NIC + becomes the active NIC." + + --#TYPE "Status Trap (11010)" + --#SUMMARY "NIC switchover to slot %s, port %s from slot %s, port %s." + --#ARGUMENTS {2, 3, 4, 5} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + ::= 11010 + + cpqHoProcessEventTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoSwRunningTrapDesc } + DESCRIPTION + "A monitored process has either started or stopped running." + + --#TYPE "Process Monitor Event Trap (11011)" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + + ::= 11011 + + cpqHoProcessCountWarning TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoSWRunningName, cpqHoSWRunningCount, + cpqHoSWRunningCountMin, cpqHoSWRunningCountMax, + cpqHoSWRunningEventTime } + DESCRIPTION + "A monitored process count has violated the thresholds set on cpqHoSWRunningCount" + + --#TYPE "Process Count Event Trap (11012)" + --#SUMMARY "Process %s has count %s which violates the thresholds %s to %s." + --#ARGUMENTS {2, 3, 4, 5} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 11012 + + cpqHoProcessCountNormal TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoSWRunningName, cpqHoSWRunningCount, + cpqHoSWRunningCountMin, cpqHoSWRunningCountMax, + cpqHoSWRunningEventTime } + DESCRIPTION + "A monitored process count has returned back to normal." + + --#TYPE "Process Monitor Event Trap (11013)" + --#SUMMARY "Process %s has count %s which respects the thresholds %s to %s." + --#ARGUMENTS {2, 3, 4, 5} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 11013 + + cpqHoCriticalSoftwareUpdateTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoCriticalSoftwareUpdateData } + DESCRIPTION + "This trap is a send to the user to notify him of a Critical Software Update." + + --#TYPE "Critical Software update Notification Trap (11014)" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 11014 + + cpqHoCrashDumpNotEnabledTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoCrashDumpState } + DESCRIPTION + "This trap is sent to the user to notify him that the Crash Dump is not enabled. + This trap is not sent if cpqHoCrashDumpMonitoring is disabled." + + --#TYPE "Crash Dump not enabled Notification Trap (11015)" + --#SUMMARY "Crash Dump is not enabled." + --#ARGUMENTS {} + --#SEVERITY WARNING + --#TIMEINDEX 99 + + ::= 11015 + + + cpqHoBootPagingFileTooSmallTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoCrashDumpState, cpqHoBootPagingFileSize, cpqHoBootPagingFileMinimumSize } + DESCRIPTION + "This trap is sent when the paging file size of the boot volume or the target volume of the memory dump file is too small to hold a crash dump. + This trap is not sent if cpqHoCrashDumpMonitoring is disabled." + + --#TYPE "Boot Paging File Or Memory Dump Target Volume Too Small Notification Trap (11016)" + --#SUMMARY "The paging file size of the boot volume (%s) or the target volume of the memory dump file is not large enough to hold a crash dump in the event of a system crash (%s)." + --#ARGUMENTS {3, 4} + --#SEVERITY WARNING + --#TIMEINDEX 99 + + ::= 11016 + + cpqHoSWRunningStatusChangeTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoSWRunningName, cpqHoSWRunningDesc,cpqHoSwRunningTrapDesc, cpqHoSWRunningVersion,cpqHoSWRunningStatus, cpqHoSWRunningConfigStatus, cpqHoSWRunningIdentifier, cpqHoSWRunningRedundancyMode } + DESCRIPTION + "This trap notifies the user that the running software has changed status, configuration status, or redundancy mode." + + --#TYPE "Software status change Notification Trap (11017)" + --#SUMMARY "Software status change for %s, description = %s, id = %s" + --#ARGUMENTS {2, 4, 8} + --#SEVERITY WARNING + --#TIMEINDEX 99 + + ::= 11017 + + cpqHo2PowerThresholdTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqPwrWarnType, cpqPwrWarnThreshold, cpqPwrWarnDuration, cpqSerialNum, cpqServerUUID } + DESCRIPTION + -- This trap notifies user of a power threshold breach. + "Power threshold exceeded." + + --#TYPE "Power Threshold Exceeded (11018)" + --#SUMMARY "%s" + --#ARGUMENTS {6} + --#SEVERITY MINOR + --#TIMEINDEX 99 + + ::= 11018 + + cpqHoBootPagingFileOrFreeSpaceTooSmallTrap TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqHoCrashDumpState, cpqHoBootPagingFileSize, cpqHoBootPagingFileVolumeFreeSpace, cpqHoBootPagingFileMinimumSize } + DESCRIPTION + "This trap is sent when the paging file size of the boot volume or the free space of memory dump target volume is too small to hold a crash dump." + --#TYPE "Boot Paging File Or Memory Dump Target Volume Too Small Notification Trap (11016)" + --#SUMMARY "The paging file size of the boot volume (%s) or the free space of the memory dump target volume (%s) is not large enough to hold a crash dump in the event of a system crash (%s)." + --#ARGUMENTS {3, 4, 5} + --#SEVERITY WARNING + --#TIMEINDEX 99 + + ::= 11019 + + + END + diff --git a/pandora_console/attachment/mibs/CPQSINFO-MIB b/pandora_console/attachment/mibs/CPQSINFO-MIB new file mode 100644 index 0000000000..a4239721d0 --- /dev/null +++ b/pandora_console/attachment/mibs/CPQSINFO-MIB @@ -0,0 +1,3867 @@ +-- **************************************************************************** +-- +-- System Information +-- Management Information Base for SNMP Network Management +-- +-- +-- Copyright 1992,2008 Hewlett-Packard Development Company, L.P. +-- +-- Hewlett-Packard Company shall not be liable for technical or +-- editorial errors or omissions contained herein. The information in +-- this document is provided "as is" without warranty of any kind and +-- is subject to change without notice. The warranties for HP products +-- are set forth in the express limited warranty statements +-- accompanying such products. Nothing herein should be construed as +-- constituting an additional warranty. +-- +-- Confidential computer software. Valid license from HP required for +-- possession, use or copying. Consistent with FAR 12.211 and 12.212, +-- Commercial Computer Software, Computer Software Documentation, and +-- Technical Data for Commercial Items are licensed to the U.S. +-- Government under vendor's standard commercial license. +-- +-- Refer to the READMIB.RDM file for more information about the +-- organization of the information in the Compaq Enterprise. +-- +-- The Compaq Enterprise number is 232. +-- The ASN.1 prefix to, and including the Compaq Enterprise is: +-- 1.3.6.1.4.1.232 +-- +-- **************************************************************************** + +CPQSINFO-MIB DEFINITIONS ::= BEGIN + + IMPORTS + compaq FROM CPQHOST-MIB + DisplayString FROM RFC1213-MIB + OBJECT-TYPE FROM RFC-1212 + sysName FROM RFC1213-MIB + cpqHoTrapFlags FROM CPQHOST-MIB + TRAP-TYPE FROM RFC-1215; + + +-- compaq OBJECT IDENTIFIER ::= { enterprises 232 } + cpqSystemInfo OBJECT IDENTIFIER ::= { compaq 2 } + cpqSiMibRev OBJECT IDENTIFIER ::= { cpqSystemInfo 1 } + cpqSiComponent OBJECT IDENTIFIER ::= { cpqSystemInfo 2 } + + cpqSiInterface OBJECT IDENTIFIER ::= { cpqSiComponent 1 } + cpqSiAsset OBJECT IDENTIFIER ::= { cpqSiComponent 2 } + cpqSiSecurity OBJECT IDENTIFIER ::= { cpqSiComponent 3 } + cpqSiSystemBoard OBJECT IDENTIFIER ::= { cpqSiComponent 4 } + cpqSiBoardRev OBJECT IDENTIFIER ::= { cpqSiComponent 5 } + cpqSiRackServer OBJECT IDENTIFIER ::= { cpqSiComponent 6 } + cpqSiVideo OBJECT IDENTIFIER ::= { cpqSiComponent 7 } + cpqSiMonitor OBJECT IDENTIFIER ::= { cpqSiComponent 8 } + cpqSiHotPlugSlot OBJECT IDENTIFIER ::= { cpqSiComponent 9 } + cpqSiSystemBattery OBJECT IDENTIFIER ::= { cpqSiComponent 10 } + cpqSiDockingStation OBJECT IDENTIFIER ::= { cpqSiComponent 11 } + cpqSiFru OBJECT IDENTIFIER ::= { cpqSiComponent 12 } + cpqSiRackEnclosure OBJECT IDENTIFIER ::= { cpqSiComponent 13 } + cpqSiServerBlade OBJECT IDENTIFIER ::= { cpqSiComponent 14 } + cpqSiRack OBJECT IDENTIFIER ::= { cpqSiComponent 15 } + cpqSiMP OBJECT IDENTIFIER ::= { cpqSiComponent 16 } + + cpqSiOsCommon OBJECT IDENTIFIER ::= { cpqSiInterface 4 } + +-- **************************************************************************** +-- System Information MIB Revision +-- =============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiMibRev Group (1.3.6.1.4.1.232.2.1) +-- +-- Implementation of the MibRev group is mandatory for all Insight Agents +-- supporting the System Information MIB. +-- +-- An Agent conforming to this document will return a +-- cpqSiMibRevMajor of one (1) and a cpqSiMibRevMinor of thirty-four (34). +-- +-- +-- **************************************************************************** + + cpqSiMibRevMajor OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The major revision level of the MIB. + + A change in the major revision level represents a major change + in the architecture of the MIB. A change in the major revision + level may indicate a significant change in the information + supported and/or the meaning of the supported information, + correct interpretation of data may require a MIB document with + the same major revision level." + ::= { cpqSiMibRev 1 } + + cpqSiMibRevMinor OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minor revision level of the MIB. + + A change in the minor revision level may represent some minor + additional support, no changes to any pre-existing information + has occurred." + ::= { cpqSiMibRev 2 } + + cpqSiMibCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), -- default + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The overall condition. + + This object represents the overall status of the server + information represented by this MIB." + ::= { cpqSiMibRev 3 } + +-- **************************************************************************** +-- System Information Common +-- ========================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiInterface Group (1.3.6.1.4.1.232.2.2.1) +-- cpqSiOsCommon Group (1.3.6.1.4.1.232.2.2.1.4) +-- +-- +-- Implementation of the cpqSiOsCommon group is mandatory for all +-- Insight Agents that support the System Information MIB. +-- +-- **************************************************************************** + + cpqSiOsCommonPollFreq OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Insight Agent's polling frequency. + + The frequency, in seconds, at which the Insight Agent requests + information from the device driver. A frequency of zero (0) + indicates that the Insight Agent retrieves the information upon + request of a management station, it does not poll the device + driver at a specific interval. + + If the poll frequency is zero (0) all attempts to write to this + object will fail. If the poll frequency is non-zero, + setting this value will change the polling frequency of the + Insight Agent. Setting the poll frequency to zero (0) will + always fail, an agent may also choose to fail any request to + change the poll frequency to a value that would severely impact + system performance." + ::= { cpqSiOsCommon 1 } + + +-- **************************************************************************** +-- System Information Common Module Table +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiInterface Group (1.3.6.1.4.1.232.2.2.1) +-- cpqSiOsCommon Group (1.3.6.1.4.1.232.2.2.1.4) +-- cpqSiOsCommonModuleTable (1.3.6.1.4.1.232.2.2.1.4.2) deprecated +-- +-- **************************************************************************** + + cpqSiOsCommonModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A table of software modules that provide an interface to the + device this MIB describes." + ::= { cpqSiOsCommon 2 } + + cpqSiOsCommonModuleEntry OBJECT-TYPE + SYNTAX CpqSiOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A description of a software module that provides an interface + to the device this MIB describes." + INDEX { cpqSiOsCommonModuleIndex } + ::= { cpqSiOsCommonModuleTable 1 } + + CpqSiOsCommonModuleEntry ::= SEQUENCE { + cpqSiOsCommonModuleIndex INTEGER, + cpqSiOsCommonModuleName DisplayString, + cpqSiOsCommonModuleVersion DisplayString, + cpqSiOsCommonModuleDate OCTET STRING, + cpqSiOsCommonModulePurpose DisplayString + } + + cpqSiOsCommonModuleIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "A unique index for this module description." + ::= { cpqSiOsCommonModuleEntry 1 } + + cpqSiOsCommonModuleName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module name." + ::= { cpqSiOsCommonModuleEntry 2 } + + cpqSiOsCommonModuleVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..5)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module version in XX.YY format. + + Where XX is the major version number and YY is the minor version + number. This field will be a null (size 0) string if the agent + cannot provide the module version." + ::= { cpqSiOsCommonModuleEntry 3 } + + cpqSiOsCommonModuleDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module date. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to year = 0 if the agent cannot provide + the module date. The hour, minute, and second field will be set + to zero (0) if they are not relevant. The year field is set + with the most significant octet first." + ::= { cpqSiOsCommonModuleEntry 4 } + + cpqSiOsCommonModulePurpose OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The purpose of the module described in this entry." + ::= { cpqSiOsCommonModuleEntry 5 } + +-- **************************************************************************** +-- System Information Asset Group +-- ============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiAsset Group (1.3.6.1.4.1.232.2.2.2) +-- +-- The cpqSiAsset group contains the serial numbers of any hardware +-- that supports asset management. +-- +-- Implementation of the cpqSiAsset group is mandatory for all Insight +-- Agents that support the System Information MIB. +-- +-- **************************************************************************** + + cpqSiSysSerialNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The serial number of the physical system unit. + + The string will be empty if the system does not report the + serial number function." + ::= { cpqSiAsset 1 } + + cpqSiFormFactor OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + portable(2), + laptop(3), + desktop(4), + tower(5), + mini-tower(6), + rack-mount(7) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The form factor of the system. Setting this variable to + unknown will fail." + ::= { cpqSiAsset 2 } + + cpqSiAssetTag OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The customer changeable identifier that is set to the system + serial number at the time of manufacture. + + The string will be empty if the system does not report this + function." + ::= { cpqSiAsset 3 } + + cpqSiOwnershipTag OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..79)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is a customer changeable identifier that will be + displayed by ROM at POST. This is an 80 byte standard + ASCII character string and is Administrator Password + protected. + + An example could be: + Property of Hewlett-Packard Company + + The string should be NULL terminated. This item will be + empty if the system does not report this function." + ::= { cpqSiAsset 4 } + + cpqSiSysServiceNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The service number of the system unit. + + The string will be empty if the system does not report the + system service number." + ::= { cpqSiAsset 5 } + + cpqSiSysProductId OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product id string of the system unit. + + The string will be empty if the system does not report the + product id." + ::= { cpqSiAsset 6 } + + cpqSiAssetTagMaxLength OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + " Maximum allowed size in bytes of the asset tag." + + ::= { cpqSiAsset 7 } + +-- **************************************************************************** +-- Virtual System Information Table +-- ================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiAsset Group (1.3.6.1.4.1.232.2.2.2) +-- cpqSiVirtualSystemTable (1.3.6.1.4.1.232.2.2.2.8) +-- cpqSiVirtualSystemEntry (1.3.6.1.4.1.232.2.2.2.8.1) +-- +-- **************************************************************************** + + cpqSiVirtualSystemTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiVirtualSystemEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A table of virtual system information entries." + ::= { cpqSiAsset 8 } + + cpqSiVirtualSystemEntry OBJECT-TYPE + SYNTAX CpqSiVirtualSystemEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A virtual system information table entry." + INDEX { cpqSiVirtualSystemIndex } + ::= { cpqSiVirtualSystemTable 1 } + + CpqSiVirtualSystemEntry ::= SEQUENCE { + cpqSiVirtualSystemIndex INTEGER, + cpqSiVirtualSystemSerialNumber DisplayString, + cpqSiVirtualSystemUUID DisplayString + } + + cpqSiVirtualSystemIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS optional + DESCRIPTION + "The unique index of the virtual system information entry." + ::= { cpqSiVirtualSystemEntry 1 } + + cpqSiVirtualSystemSerialNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The HP Virtual Serial Number for the computer system package. The Virtual + Serial Number is the system serial number exposed to the operating + system when running in an HP Virtual Connect environment. The Virtual + Serial Number presented here will correspond to the Virtual UUID at the + same index location." + ::= { cpqSiVirtualSystemEntry 2 } + + cpqSiVirtualSystemUUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The HP Virtual UUID for the computer system package. The Virtual + UUID is the UUID number exposed to the operating system when running + in an HP Virtual Connect environment. The Virtual UUID presented + here will correspond to the Virtual serial number at the same index + location." + ::= { cpqSiVirtualSystemEntry 3 } + + +-- **************************************************************************** +-- System Information Security Group +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSecurity Group (1.3.6.1.4.1.232.2.2.3) +-- +-- The Security group describes how the security features on your +-- computer are currently configured. +-- +-- Implementation of the security group is mandatory for all agents that +-- support the System Information MIB. +-- +-- **************************************************************************** + + cpqSiPowerOnPassword OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the power on password feature." + ::= { cpqSiSecurity 1 } + + cpqSiNetServerMode OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the network server mode feature." + ::= { cpqSiSecurity 2 } + + cpqSiQuickLockPassword OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the quicklock password feature." + ::= { cpqSiSecurity 3 } + + cpqSiQuickBlank OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the quick blank screen feature." + ::= { cpqSiSecurity 4 } + + cpqSiDisketteBootControl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the diskette boot control feature." + ::= { cpqSiSecurity 5 } + + cpqSiSerialPortAControl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the access control for the primary serial port + interface embedded in the system board." + ::= { cpqSiSecurity 6 } + + cpqSiSerialPortBControl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the access control for the secondary serial port + interface embedded in the system board." + ::= { cpqSiSecurity 7 } + + cpqSiParallelPortControl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the access control for the parallel port interface + embedded in the system board." + ::= { cpqSiSecurity 8 } + + cpqSiFloppyDiskControl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the access control for the floppy diskette + interface embedded in the system board." + ::= { cpqSiSecurity 9 } + + cpqSiFixedDiskControl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the access control for the fixed disk interface + embedded in the system board." + ::= { cpqSiSecurity 10 } + + cpqSiHoodRemovedTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Last detection of hood removed by Smart Hood Sensor." + + ::= { cpqSiSecurity 11 } + + cpqSiHoodSensorConfiguration OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + notifyUser(3), + adminPasswordProtected(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the current configuration of the Smart Cover + sensor. + + The following values are currently defined: + + other(1) + Smart Cover sensor is not supported on this system or cannot + be determined by the Insight Agent. You may need to upgrade + your software. + + disabled(2) + Smart Cover sensor will not detect a hood removal and + cpqSiHoodRemovedTime will not be updated. + + notifyUser(3) + Smart Cover sensor will detect a hood removal and will display + a message at POST for the user. + + adminPasswordProtected(4) + Smart Cover sensor will detect a hood removal and will display + a message at POST for the user to enter the Admin Password. + The system will not boot until proper password is entered." + ::= { cpqSiSecurity 12 } + + + cpqSiSmartCoverLockStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unlocked(2), + locked(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the current status of the Smart Cover + Lock. The following values are currently defined: + + other(1) + Smart Cover Lock is not supported on this system or cannot + be determined by the Insight Agent. You may need to upgrade + your software. + + unlocked(2) + Smart Cover Lock is not locked. The status will be set to + unlocked due to one of the following: + 1. The system hood is removed, or + 2. There is no administrator password set, or + 3. The administrator manually sets status to unlock. + + locked(3) + Smart Cover Lock is locked. The administrator password is + required to unlock the hood." + ::= { cpqSiSecurity 13 } + + cpqSiUSBPortControl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3), + legacydisabled(4), + externalportdisabled(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the access control for the Universal + Serial Bus interface(s) embedded in the system + board. + + other(1) + If Status could not be determined. + + disabled(2) + USB interface is disable. + + enabled(3) + USB interface is enable. + + legacydisabled(4) + Legacy USB interface is disabled. + + externalportdisabled(5) + External USB Ports are disabled." + ::= { cpqSiSecurity 14 } + +-- **************************************************************************** +-- System Information System Board Group +-- ===================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBoard Group (1.3.6.1.4.1.232.2.2.4) +-- +-- The cpqSiSystemBoard group describe features of your computer +-- system board. +-- +-- Implementation of the cpqSiSystemBoard group is mandatory for all agents +-- that support the System Information MIB. +-- +-- **************************************************************************** + + cpqSiProductId OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The machine product ID. + + This value indicates the product type of the system board + in this system. The value 127 will be given if the machine ID + cannot be determined. A value of 127 will also be used for the + special case of a machine containing neither EISA nor ISA slots." + ::= { cpqSiSystemBoard 1 } + + cpqSiProductName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The machine product name. + + The name of the machine used in this system." + ::= { cpqSiSystemBoard 2 } + + cpqSiAuxiliaryInput OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the auxiliary input (pointing) device." + ::= { cpqSiSystemBoard 4 } + +-- **************************************************************************** +-- System Information Memory Module Table +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBoard Group (1.3.6.1.4.1.232.2.2.4) +-- cpqSiMemModuleTable (1.3.6.1.4.1.232.2.2.4.5) +-- cpqSiMemModuleEntry (1.3.6.1.4.1.232.2.2.4.5.1) +-- +-- **************************************************************************** +-- Deprecated this table in 8.20 time frame please use the +-- cpqHeResMem2ModuleTable tables to get value + + cpqSiMemModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiMemModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of memory module descriptions." + ::= { cpqSiSystemBoard 5 } + + cpqSiMemModuleEntry OBJECT-TYPE + SYNTAX CpqSiMemModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A memory module description." + INDEX { cpqSiMemBoardIndex , cpqSiMemModuleIndex } + ::= { cpqSiMemModuleTable 1 } + + CpqSiMemModuleEntry ::= SEQUENCE { + cpqSiMemBoardIndex INTEGER, + cpqSiMemModuleIndex INTEGER, + cpqSiMemModuleSize INTEGER, + cpqSiMemModuleType INTEGER, + cpqSiMemModuleSpeed INTEGER, -- deprecated + cpqSiMemModuleTechnology INTEGER, + cpqSiMemModuleManufacturer DisplayString, + cpqSiMemModulePartNo DisplayString, + cpqSiMemModuleDate OCTET STRING, + cpqSiMemModuleSerialNo DisplayString, + cpqSiMemModuleECCStatus INTEGER, + cpqSiMemModuleHwLocation DisplayString, + cpqSiMemModuleFrequency INTEGER, + cpqSiMemModuleCellTablePtr INTEGER, + cpqSiMemModuleCellStatus INTEGER, + cpqSiMemModulePartNoMfgr DisplayString, + cpqSiMemModuleSerialNoMfgr DisplayString + } + + cpqSiMemBoardIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The slot in which the memory board or cartridge is installed. + + A value of 0 indicates memory installed directly on the + system board." + ::= { cpqSiMemModuleEntry 1 } + + cpqSiMemModuleIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module number." + ::= { cpqSiMemModuleEntry 2 } + + cpqSiMemModuleSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Module memory size in kilobytes. A kilobyte of memory is + defined as 1024 bytes. + + A size of 0 indicates the module is not present." + ::= { cpqSiMemModuleEntry 3 } + + cpqSiMemModuleType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + board(2), + cpqSingleWidthModule(3), + cpqDoubleWidthModule(4), + simm(5), + pcmcia(6), + compaq-specific(7), + dimm(8), + smallOutlineDimm(9), + rimm(10), + srimm(11), + fb-dimm(12) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Type of memory module installed. The value other(1) will be + given if the type is not known. The value board(2) will be + given if the memory module is permanently mounted (not modular) + on a system board or memory expansion board." + ::= { cpqSiMemModuleEntry 4 } + + cpqSiMemModuleSpeed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Module memory speed in nanoseconds. The value zero (0) will + be given if the module speed cannot be determined." + ::= { cpqSiMemModuleEntry 5 } + + cpqSiMemModuleTechnology OBJECT-TYPE + SYNTAX INTEGER { + other(1), + fastPageMode(2), + edoPageMode(3), + burstEdoPageMode(4), + synchronous(5), + rdram(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Technology type of memory module installed. The value other(1) + will be given if the technology is not known." + ::= { cpqSiMemModuleEntry 6 } + + cpqSiMemModuleManufacturer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module's manufacturer name. + + This field will be a null (size 0) string if the manufacturer + name is not available." + ::= { cpqSiMemModuleEntry 7 } + + cpqSiMemModulePartNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module's manufacturer part number. + + This field will be a null (size 0) string if the manufacturer + part number is not available." + ::= { cpqSiMemModuleEntry 8 } + + cpqSiMemModuleDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module date of manufacture. + + field octets contents range + ===== ====== ====================== ======== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + This field will be set to year = 0 if the date of manufacture + is not available. The hour, minute, and second fields will + always be set to 0." + ::= { cpqSiMemModuleEntry 9 } + + cpqSiMemModuleSerialNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The memory module's serial number. + + This field will be a null (size 0) string if the serial number + is not available." + ::= { cpqSiMemModuleEntry 10 } + + cpqSiMemModuleECCStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + degradedModuleIndexUnknown(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the correctable memory + errors for this memory module. + + The following status values are supported: + + other(1): + ECC is not supported on this memory module. + + ok(2): + The correctable error count is below threshold. + + degraded(3): + The correctable error count has exceeded threshold. + + degradedModuleIndexUnknown(4): + The correctable error count has exceeded threshold. + The module index not available." + ::= { cpqSiMemModuleEntry 11 } + + cpqSiMemModuleHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the memory module. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSiMemModuleEntry 12 } + + + cpqSiMemModuleFrequency OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory module frequency in MHz. The value zero (0) will + be given if the module frequency cannot be determined." + ::= { cpqSiMemModuleEntry 13 } + + cpqSiMemModuleCellTablePtr OBJECT-TYPE + SYNTAX INTEGER (0..15) + ACCESS read-only + STATUS optional + DESCRIPTION + "Index for the cell in cpqSeCellTable where the memory board is + installed." + ::= { cpqSiMemModuleEntry 14 } + + cpqSiMemModuleCellStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + deconfigured(3) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "This provides the current status for this memory module. + + The following status values are supported: + + other(1): + The memory module status is not available + + ok(2): + The memory module is active + + deconfigured(3): + The memory module is not ready" + ::= { cpqSiMemModuleEntry 15 } + + + cpqSiMemModulePartNoMfgr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The memory module's manufacturer's part number. + + This field will be a null (size 0) string if the manufacturer + part number is not available." + ::= { cpqSiMemModuleEntry 16 } + + cpqSiMemModuleSerialNoMfgr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The memory module's manufacturer's serial number. + + This field will be a null (size 0) string if the manufacturer + serial number is not available." + ::= { cpqSiMemModuleEntry 17 } + +-- **************************************************************************** +-- System Information System Board Group +-- ===================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBoard Group (1.3.6.1.4.1.232.2.2.4) +-- +-- +-- **************************************************************************** + + cpqSiSystemId OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The System ID. + + This value indicates the system ID of the system board + in this system. This ID replaces the product ID used in + older machines (cpqSiProductId). A value of 7Eh for the + cpqSiProductId indicates that the cpqSiSystemId should be + used to identify the system. A value of zero (0) + indicates that the system ID function is not supported on this + machine. In this case, the cpqSiProductId should be used to + identify the system." + ::= { cpqSiSystemBoard 6 } + + cpqSiSystemCpuId OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The System ID : CPU Component. + + This value indicates the CPU type of the system board + in this system. A value of zero (0) indicates that the CPU + type cannot be determined." + ::= { cpqSiSystemBoard 7 } + + cpqSiFlashRomSupport OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notSupported(2), + supported(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if this system supports flash upgradable + system ROM." + ::= { cpqSiSystemBoard 8 } + + cpqSiQuickTestRomDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the date of the current quick test ROM + image. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to year = 0 if quick test ROM is not + present. The hour, minute, and second field will be set + to zero (0) if they are not relevant. The year field is set + with the most significant octet first." + ::= { cpqSiSystemBoard 9 } + + cpqSiReboot OBJECT-TYPE + SYNTAX INTEGER { + notAvailable(1), + available(2), + defaultOnlyAvailable(3), + rebootToCpqUtils(2693), + rebootToDefault(8115), + autoShutdown(9037) + } + ACCESS read-write + STATUS deprecated + DESCRIPTION + "This object may contain the following values: + notAvailable(1) + the system does not support the reboot functionality. + Setting this object to notAvailable(1) has no effect. + + available(2) + the system supports the both reboot to functionalities. + Setting this object to available(2) has no effect. + + defaultOnlyAvailable(3) + the system supports the only the default reboot functionality. + Setting this object to available(3) has no effect. + + rebootToCpqUtils(2693) + the system will reboot to the System Utilities if + the reboot functionality is available. If possible, + the agent will attempt to gracefully shutdown the + operating system before performing the reboot. + If this functionality is unavailable on this system + then all sets will have no effect. + + rebootToDefault(8115) + the system will reboot and allow the default boot + process to occur if the reboot functionality is + available. If possible, the agent will attempt to + gracefully shutdown the operating system before + performing the reboot. If this functionality is + unavailable on this system then all sets will have + no effect. + + autoShutdown(9037) + If possible, the agent will attempt to gracefully + shutdown the operating system. The agent will not + preform a reboot. + + " + + ::= { cpqSiSystemBoard 10 } + + +-- **************************************************************************** +-- System Information Processor Microcode Patch Table +-- ================================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBoard Group (1.3.6.1.4.1.232.2.2.4) +-- cpqSiProcMicroPatchTable (1.3.6.1.4.1.232.2.2.4.11) +-- cpqSiProcMicroPatchEntry (1.3.6.1.4.1.232.2.2.4.11.1) +-- +-- **************************************************************************** + + cpqSiProcMicroPatchTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiProcMicroPatchEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table lists the set of processor microcode patches that + the system ROM contains. During post, the ROM will apply the + appropriate patches to the CPU microcode. Scan this table to + ensure that a patch is being applied to a processor." + ::= { cpqSiSystemBoard 11 } + + cpqSiProcMicroPatchEntry OBJECT-TYPE + SYNTAX CpqSiProcMicroPatchEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry describing one microcode patch contained in the system + ROM." + INDEX { cpqSiProcMicroPatchIndex } + ::= { cpqSiProcMicroPatchTable 1 } + + CpqSiProcMicroPatchEntry ::= SEQUENCE { + cpqSiProcMicroPatchIndex INTEGER, + cpqSiProcMicroPatchId INTEGER, + cpqSiProcMicroPatchDate OCTET STRING, + cpqSiProcMicroPatchFamily OCTET STRING } + + cpqSiProcMicroPatchIndex OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index into the microcode patch table." + ::= { cpqSiProcMicroPatchEntry 1 } + + cpqSiProcMicroPatchId OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of this particular CPU microcode patch." + ::= { cpqSiProcMicroPatchEntry 2 } + + cpqSiProcMicroPatchDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the date of this CPU microcode patch. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + NOTE: Year is stored in packed BCD. The most significant + part is in the second octet. For example: + 1995 would be stored as 0x95 0x19. + + The hour, minute, and second field will be set to zero (0) + if they are not relevant. The year field is set with the + most significant octet first." + ::= { cpqSiProcMicroPatchEntry 3 } + + cpqSiProcMicroPatchFamily OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (3)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The valid family/model/step of the processor that this CPU + microcode patch applies to. + + field octets contents range + ===== ====== ======= ===== + 1 1 CPU Step 0..255 + 2 2 CPU Model 0..255 + 3 3 CPU Family 0..255 " + ::= { cpqSiProcMicroPatchEntry 4 } + + +-- **************************************************************************** +-- System Information System Board Group +-- ===================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBoard Group (1.3.6.1.4.1.232.2.2.4) +-- +-- +-- **************************************************************************** + + cpqSiPowerMgmtStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of power management." + ::= { cpqSiSystemBoard 12 } + + + cpqSiRebootFlags OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Reboot Flags. + + This is a collection of flags used to indicate the re-boot + options available. This integer is a bitmap, with each bit + indicating the availability of an option. If the bit is set + to 1, the option is available; otherwise it is not. Multiple + options are allowed. + + NOTE: bit 31 is the most significant bit, bit 0 is the least + significant. + + + Status This is a collection of flags. Each bit has the + following meaning when it is on (1): + + Bit 31: Execute Set + Bit 30-6: RESERVED + Bit 5: Boot to ROM Based Setup + Bit 4: RESERVED + Bit 3: Boot to OS + Bit 2: Boot to Utils + Bit 1: Warm Boot + Bit 0: Cold Boot" + + + + ::= { cpqSiSystemBoard 13 } + + cpqSiMemErrorIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Placeholder for memory module number for ECC traps. + Represents the number of the memory module for which an ECC status + change has occurred. Set to 65535 if module number not available." + ::= { cpqSiSystemBoard 14 } + + cpqSiMemECCCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current condition of the correctable memory + errors for the entire memory. + + The following status values are supported: + + other(1) : + ECC is not supported. + + ok(2) : + The correctable error count is below threshold. + + degraded(3) : + The correctable error count has exceeded threshold." + + ::= { cpqSiSystemBoard 15 } + + cpqSiMemConfigChangeData OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..383)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Text string for the memory configuration change trap." + ::= { cpqSiSystemBoard 16 } + + cpqSiServerSystemId OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A Server System ID. + + This value is used to uniquely identify systems via a unique + ID on systems that do not support the EISA bus." + ::= { cpqSiSystemBoard 17 } + + cpqSiPowerScheme OBJECT-TYPE + SYNTAX INTEGER { + unsupported(1), + other(2), + power-saver(3), + balanced(4), + high-performance(5), + user-defined(6) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The current active power plan or power scheme of the system." + ::= { cpqSiSystemBoard 18 } + + cpqSiPowerSchemeName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The name of current active power plan or power scheme of the + system. When cpqSiPowerScheme has a value of user-defined(6), the + user defined name can be populated here." + ::= { cpqSiSystemBoard 19 } + + cpqSiCurrentPerformanceStatePointer OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "Pointer to cpqSiPerfStateIndex in cpqSiPerfStateTable to indicate the current performance state of the system." + ::= { cpqSiSystemBoard 20 } + + cpqSiMinPerformanceState OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "The slowest performance state by the selected power state policy." + ::= { cpqSiSystemBoard 21 } + + cpqSiMaxPerformanceState OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "The fastest performance state supported by the selected power state policy." + ::= { cpqSiSystemBoard 22 } + +-- **************************************************************************** +-- Performance State Table +-- ================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBoard Group (1.3.6.1.4.1.232.2.2.4) +-- cpqSiPerfStateTable (1.3.6.1.4.1.232.2.2.4.23) +-- cpqSiPerfStateEntry (1.3.6.1.4.1.232.2.2.4.23.1) +-- +-- **************************************************************************** + + cpqSiPerfStateTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiPerfStateEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A table of supported performance states of the system." + ::= { cpqSiSystemBoard 23 } + + cpqSiPerfStateEntry OBJECT-TYPE + SYNTAX CpqSiPerfStateEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "An entry describing a supported performance state of the system." + INDEX { cpqSiPerfStateIndex } + ::= { cpqSiPerfStateTable 1 } + + CpqSiPerfStateEntry ::= SEQUENCE { + cpqSiPerfStateIndex INTEGER, + cpqSiPerfState INTEGER, + cpqSiPerfStateCpuFrequency INTEGER, + cpqSiPerfStateCpuPower INTEGER + } + + cpqSiPerfStateIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "Index into the performance state table. cpqSiCurrentPerformanceStatePointer should point to one of these values." + ::= { cpqSiPerfStateEntry 1 } + + cpqSiPerfState OBJECT-TYPE + SYNTAX INTEGER (0.. 65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "Performance state number. A unique number assigned to a performance state instance." + ::= { cpqSiPerfStateEntry 2 } + + cpqSiPerfStateCpuFrequency OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS optional + DESCRIPTION + "The processor frequency in megahertz for this performance state instance." + ::= { cpqSiPerfStateEntry 3 } + + cpqSiPerfStateCpuPower OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS optional + DESCRIPTION + "The processor power setting in milliwatts for this performance state instance." + ::= { cpqSiPerfStateEntry 4 } + + cpqSiTPMmodule OBJECT-TYPE + SYNTAX INTEGER { + other(1), + absent(2), + presentEnabled (3), + presentDisabled (4) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "This field will be populated if TPM module is present in the system board. + other(1) + No record of TPM exist. + absent(2) + TPM module is not present in the system. + presentEnabled(3) + TPM module is present in the system and currently enabled. + presentDisabled(4) + TPM module is present in the system and currently not enabled." + ::= { cpqSiSystemBoard 24 } + +-- **************************************************************************** +-- System Information Board Revision Group +-- ======================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiBoardRev Group (1.3.6.1.4.1.232.2.2.5) +-- +-- The cpqSiBoardRev group describes the board revision information. +-- +-- Implementation of the cpqSiBoardRev group is mandatory for all +-- agents that support the System Information MIB in a system that +-- supports the board revision feature. +-- +-- **************************************************************************** + + cpqSiCurRevDate OBJECT-TYPE + SYNTAX DisplayString (SIZE (8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current board revision configuration date in MM/DD/YY + format. This is the date that the EISA Configuration Utility + was used to define the current configuration. This value will + contain 'N/A' if this system does not support this feature." + ::= { cpqSiBoardRev 1 } + + cpqSiPrevRevDate OBJECT-TYPE + SYNTAX DisplayString (SIZE (8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The previous board revision configuration date in MM/DD/YY + format. This is the date that the EISA Configuration Utility + was used to define the previous configuration. This value will + contain 'N/A' if this system does not support this feature." + ::= { cpqSiBoardRev 2 } + +-- **************************************************************************** +-- System Information Board Revision Table +-- ======================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiBoardRev Group (1.3.6.1.4.1.232.2.2.5) +-- cpqSiBoardRevTable (1.3.6.1.4.1.232.2.2.5.3) +-- +-- **************************************************************************** + + cpqSiBoardRevTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiBoardRevEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of board revision descriptions." + ::= { cpqSiBoardRev 3 } + + cpqSiBoardRevEntry OBJECT-TYPE + SYNTAX CpqSiBoardRevEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A board revision description." + INDEX { cpqSiBoardRevSlotIndex, cpqSiBoardRevIndex } + ::= { cpqSiBoardRevTable 1 } + + CpqSiBoardRevEntry ::= SEQUENCE { + cpqSiBoardRevSlotIndex INTEGER, + cpqSiBoardRevIndex INTEGER, + cpqSiBoardRevId DisplayString, + cpqSiBoardRevCur DisplayString, + cpqSiBoardRevPrev DisplayString, + cpqSiBoardRevHwLocation DisplayString + } + + cpqSiBoardRevSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The slot in which the board described in this entry resides. + Zero (0) indicates the system board." + ::= { cpqSiBoardRevEntry 1 } + + cpqSiBoardRevIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely specifies which board in a specific slot + is described in this entry. Zero (0) indicates the main board + in this slot. Any other number indicates a daughter board or a + component of the main board." + ::= { cpqSiBoardRevEntry 2 } + + cpqSiBoardRevId OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the board type. The defined types are: + + Type + ============== + System Board + Processor n (n = the processor number) + Memory n (n = the memory board number) + Slot n (n = the slot the board occupies) + + Other types may be defined at a later date." + ::= { cpqSiBoardRevEntry 3 } + + cpqSiBoardRevCur OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current revision for the board described in this entry. + This value will be N/A if there is no current revision + information." + ::= { cpqSiBoardRevEntry 4 } + + cpqSiBoardRevPrev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The revision for the board described in this entry prior to the + current configuration. This value will be N/A if there is no + previous revision information." + ::= { cpqSiBoardRevEntry 5 } + + cpqSiBoardRevHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the board. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSiBoardRevEntry 6 } + +-- **************************************************************************** +-- System Information Firmware Revision Table +-- ========================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiBoardRev Group (1.3.6.1.4.1.232.2.2.5) +-- cpqSiFirmwareRevTable (1.3.6.1.4.1.232.2.2.5.4) +-- +-- **************************************************************************** + + cpqSiFirmwareRevTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiFirmwareRevEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of firmware revision descriptions." + ::= { cpqSiBoardRev 4 } + + cpqSiFirmwareRevEntry OBJECT-TYPE + SYNTAX CpqSiFirmwareRevEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A firmware revision description." + INDEX { cpqSiFirmwareRevIndex } + ::= { cpqSiFirmwareRevTable 1 } + + CpqSiFirmwareRevEntry ::= SEQUENCE { + cpqSiFirmwareRevIndex INTEGER, + cpqSiFirmwareRevDesc DisplayString, + cpqSiFirmwareRevString DisplayString, + cpqSiFirmwareRevCellTablePtr INTEGER, + cpqSiFirmwareLocation DisplayString, + cpqSiFirmwareStatus INTEGER + } + + cpqSiFirmwareRevIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Locally-unique index for this entry." + ::= { cpqSiFirmwareRevEntry 1 } + + cpqSiFirmwareRevDesc OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description, e.g. SRM console, ARC console, System BIOS, etc." + ::= { cpqSiFirmwareRevEntry 2 } + + cpqSiFirmwareRevString OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Version number, possibly of the form Vx.y or Vx.y-z." + ::= { cpqSiFirmwareRevEntry 3 } + + cpqSiFirmwareRevCellTablePtr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Index for the cell in cpqSeCellTable where this firmware is located" + ::= { cpqSiFirmwareRevEntry 4 } + + cpqSiFirmwareLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "Description of which board the firmware is located in." + ::= { cpqSiFirmwareRevEntry 5 } + + cpqSiFirmwareStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + active(2), + inactive(3) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The current status for this firmware." + ::= { cpqSiFirmwareRevEntry 6 } + +-- **************************************************************************** +-- System Information Firmware Configuration Table +-- =============================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiBoardRev Group (1.3.6.1.4.1.232.2.2.5) +-- cpqSiFirmwareCfgTable (1.3.6.1.4.1.232.2.2.5.5) +-- +-- **************************************************************************** + + cpqSiFirmwareCfgTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiFirmwareCfgEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of soft switches and symbols maintained by the + firmware. May be operating system and/or option-specific + and will certainly be system-specific. This list is + intended to be easily extensible and support arbitrary + datatypes. It includes such switches as powerup options, + default dump device, etc. + Note - the string comparison for svrFwSymbolName is case + insensitive." + ::= { cpqSiBoardRev 5 } + + cpqSiFirmwareCfgEntry OBJECT-TYPE + SYNTAX CpqSiFirmwareCfgEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Each entry represents one variable or symbol maintained by + or stored by some instance of firmware in the system." + INDEX { cpqSiFirmwareCfgName } + ::= { cpqSiFirmwareCfgTable 1 } + + CpqSiFirmwareCfgEntry ::= SEQUENCE { + cpqSiFirmwareCfgName DisplayString, + cpqSiFirmwareCfgValue DisplayString + } + + cpqSiFirmwareCfgName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The firmware configuration symbol name as visible from the + console." + ::= { cpqSiFirmwareCfgEntry 1 } + + cpqSiFirmwareCfgValue OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The firmware configuration symbol value. Null if none + or unknown." + ::= { cpqSiFirmwareCfgEntry 2 } + + +-- **************************************************************************** +-- System Information Ups Shutdown Group +-- ===================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiRackServer Group (1.3.6.1.4.1.232.2.2.6) +-- +-- The cpqSiRackServer group describes this system's role in a rack +-- family. +-- +-- Implementation of the cpqSiRackServer group is mandatory for all +-- agents that support the System Information MIB in a system that +-- supports Rack Server features. +-- +-- **************************************************************************** + + cpqSiRackServerShutdownRole OBJECT-TYPE + SYNTAX INTEGER { + other(1), + master(2), + slave(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This entry describes this system's role in a rack-mounted + uninterruptible power supply family. The master both + communicates with the UPS and derives its power from the + UPS. The slave derives its power from the UPS, but does + not communicate with it." + ::= { cpqSiRackServer 1 } + + cpqSiRackServerMasterName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..48)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This entry describes the name of the master server in a + rack-mounted uninterruptible power supply family. A slave + system would communicate with this server to derive UPS + status." + ::= { cpqSiRackServer 2 } + + +-- **************************************************************************** +-- System Information Video Group +-- ============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiVideo Group (1.3.6.1.4.1.232.2.2.7) +-- +-- The Video group describes the manageable video displays that are +-- attached to the system. +-- +-- Implementation of the video group is mandatory for all agents that +-- support the System Information MIB when a manageable video display +-- is in the system. +-- +-- **************************************************************************** + + cpqSiVideoEdidRaw OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (128)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The raw value returned from the video EDID function." + ::= { cpqSiVideo 1 } + + cpqSiVideoDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The manufacturer and model description of the video display." + ::= { cpqSiVideo 2 } + + cpqSiVideoSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The serial number of the video display." + ::= { cpqSiVideo 3 } + + cpqSiVideoManufactureDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The date of manufacture of the video display in the following + format: + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + This field will be set to year = 0 if the agent cannot provide + the date. The date information that is given resolves to a year + and week, so the hour, minute, and second field will be set to 0, + the month and day fields will give the monday of the week of + manufacture." + ::= { cpqSiVideo 4 } + + cpqSiVideoHeight OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The maximum image height of the video display in centimeters" + ::= { cpqSiVideo 5 } + + cpqSiVideoWidth OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The maximum image width of the video display in centimeters" + ::= { cpqSiVideo 6 } + + + cpqSiVideoMaxHorPixel OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of horizontal pixels in the highest resolution video + mode supported." + ::= { cpqSiVideo 7 } + + + cpqSiVideoMaxVertPixel OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of vertical pixels in the highest resolution video + mode supported." + ::= { cpqSiVideo 8 } + + + cpqSiVideoMaxRefreshRate OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The video refresh rate in Hz of the highest resolution video + mode supported." + ::= { cpqSiVideo 9 } + +-- **************************************************************************** +-- System Information Monitor Group +-- ================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiMonitor Group (1.3.6.1.4.1.232.2.2.8) +-- +-- The Monitor group describes all manageable video displays +-- that are attached to the system. +-- +-- Implementation of the monitor group is mandatory for all agents that +-- support the Compaq System Information MIB when a manageable +-- video display is in the system. +-- +-- **************************************************************************** + + cpqSiMonitorOverallCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the system's + monitor(s). + + The following conditions are supported: + + other(1) + The monitor does not support fault reporting or condition is + unknown. + + ok(2) + The monitor is operating OK. + + degraded(3) + The monitor has detected a fault. The monitor is still useable + but action should be taken to return the monitor to ok. + + failed(4) + The monitor has detected a fault. The monitor will not + be useable. Action should be taken to replace the monitor." + ::= { cpqSiMonitor 1 } + + +-- **************************************************************************** +-- System Information Monitor Group +-- ================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiMonitor Group (1.3.6.1.4.1.232.2.2.8) +-- cpqSiMonitorTable (1.3.6.1.4.1.232.2.2.8.2) +-- cpqSiMonitorEntry (1.3.6.1.4.1.232.2.2.8.2.1) +-- +-- The Monitor Table describes all manageable video displays +-- that are attached to the system. +-- +-- **************************************************************************** + + cpqSiMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiMonitorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of all video monitor descriptions connected to this + system." + ::= { cpqSiMonitor 2 } + + cpqSiMonitorEntry OBJECT-TYPE + SYNTAX CpqSiMonitorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A video monitor description." + INDEX { cpqSiMonitorIndex } + ::= { cpqSiMonitorTable 1 } + + CpqSiMonitorEntry ::= SEQUENCE { + cpqSiMonitorIndex INTEGER, + cpqSiMonitorEdidRaw OCTET STRING, + cpqSiMonitorDesc DisplayString, + cpqSiMonitorSerialNumber DisplayString, + cpqSiMonitorManufactureDate OCTET STRING, + cpqSiMonitorHeight INTEGER, + cpqSiMonitorWidth INTEGER, + cpqSiMonitorMaxHorPixel INTEGER, + cpqSiMonitorMaxVertPixel INTEGER, + cpqSiMonitorMaxRefreshRate INTEGER, + cpqSiMonitorManufacturer DisplayString, + cpqSiMonitorThermalCondition INTEGER, + cpqSiMonitorOperationalCondition INTEGER, + cpqSiMonitorStatus INTEGER + } + + cpqSiMonitorIndex OBJECT-TYPE + SYNTAX INTEGER (0..15) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index for each video display connected to the system." + + ::= { cpqSiMonitorEntry 1 } + + cpqSiMonitorEdidRaw OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The raw value returned from the video EDID function." + ::= { cpqSiMonitorEntry 2 } + + cpqSiMonitorDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The manufacturer and model description of the video display." + ::= { cpqSiMonitorEntry 3 } + + cpqSiMonitorSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The serial number of the video display." + ::= { cpqSiMonitorEntry 4 } + + cpqSiMonitorManufactureDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date of manufacture of the video display in the following + format: + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + This field will be set to year = 0 if the agent cannot provide + the date. The date information that is given resolves to a year + and week, so the hour, minute, and second field will be set to 0, + the month and day fields will give the monday of the week of + manufacture." + ::= { cpqSiMonitorEntry 5 } + + cpqSiMonitorHeight OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum image height of the video display in centimeters" + ::= { cpqSiMonitorEntry 6} + + cpqSiMonitorWidth OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum image width of the video display in centimeters" + ::= { cpqSiMonitorEntry 7 } + + + cpqSiMonitorMaxHorPixel OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of horizontal pixels in the highest resolution video + mode supported." + ::= { cpqSiMonitorEntry 8 } + + cpqSiMonitorMaxVertPixel OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of vertical pixels in the highest resolution video mode + supported." + ::= { cpqSiMonitorEntry 9 } + + cpqSiMonitorMaxRefreshRate OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The video refresh rate in Hz of the highest resolution video mode + supported." + ::= { cpqSiMonitorEntry 10 } + + cpqSiMonitorManufacturer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The manufacturer of the video display." + ::= { cpqSiMonitorEntry 11 } + + cpqSiMonitorThermalCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the condition of the monitor's internal temperature. + + This value will be one of the following: + + other(1) + Monitor thermal fault reporting is not supported by this monitor + or the Insight Agent does not recognize the status. You may + need to upgrade your software. + + ok(2) + The internal temperature is within normal limits. + + degraded(3) + The internal temperature is outside normal operating range." + ::= { cpqSiMonitorEntry 12 } + + cpqSiMonitorOperationalCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the condition of the monitor's operational features. + + This condition value will be one of the following: + + other(1) + Monitor operational fault reporting is not supported by this + monitor or the Insight Agent does not recognize the status. + You may need to upgrade your software. + + ok(2) + The monitor is operating within normal limits. + + degraded(3) + The monitor is not functioning within normal operating limits. + At least one of the operational features has become degraded. + + failed(4) + The monitor is not functioning within normal operating limits. + At least one of the operational features has failed causing the + monitor to not be usable. The monitor should be replaced." + ::= { cpqSiMonitorEntry 13 } + + cpqSiMonitorStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + ok(3), + thermalDegraded(4), + operationalFailure(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the status of the monitor's fault reporting features. + + This status value will be one of the following: + + other(1) + Monitor fault reporting is not supported by this monitor or the + Insight Agent does not recognize the status. You may need to + upgrade your software. + + unknown(2) + The monitor status is unknown because the monitor is + either in power saving mode or it has been turned off. + + ok(3) + The monitor is operating within normal limits. + + thermalDegraded(4) + The monitor's internal temperature is not functioning within + normal operating limits. + + operationalFailure(5) + The monitor is not functioning within normal operating limits. + At least one of the operational features has failed. + The monitor should be replaced." + + ::= { cpqSiMonitorEntry 14 } + + +-- **************************************************************************** +-- System Information Hot Plug Slot Group +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiHotPlugSlot Group (1.3.6.1.4.1.232.2.2.9) +-- +-- The cpqSiHotPlugSlot group describes the System Information Hot Plug +-- slot information. +-- +-- Implementation of the cpqSiHotPlugSlot group is mandatory for all +-- agents that support the System Information MIB. +-- +-- **************************************************************************** + + cpqSiHotPlugSlotSupported OBJECT-TYPE + SYNTAX INTEGER { + other(1), + notSupported(2), + supported(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies if this system supports the Hot + Pluggable Slot feature." + ::= { cpqSiHotPlugSlot 1 } + + cpqSiHotPlugSlotCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of the Hot Plug + Slot feature. + + The Hot Plug condition is set as follows: + + other(1) + When Hot Plug Slots are not supported or condition is unknown. + + ok(2) + If there are no hot plug slots with a condition of degraded + or failed. + + degraded(3) + If there are degraded slot entries but none failed. + + failed(4) + If there are failed slot entries." + ::= { cpqSiHotPlugSlot 2 } + + cpqSiHotPlugSlotChangeCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value will be incremented each time a hot plug event + occurs resulting in a change in the hot plug slot table." + ::= { cpqSiHotPlugSlot 3 } + + +-- **************************************************************************** +-- System Information Hot Plug Slot Table +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiHotPlugSlot Group (1.3.6.1.4.1.232.2.2.9) +-- cpqSiHotPlugSlotTable (1.3.6.1.4.1.232.2.2.9.4) +-- +-- The cpqSiHotPlugSlot group describes the manageable Hot Plug +-- Slots in the system. This table will be missing if the system does +-- not support hot plug slots. +-- +-- **************************************************************************** + + cpqSiHotPlugSlotTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiHotPlugSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of Hot Plug Slot information entries." + ::= { cpqSiHotPlugSlot 4 } + + cpqSiHotPlugSlotEntry OBJECT-TYPE + SYNTAX CpqSiHotPlugSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a Hot Plug Slot." + INDEX { cpqSiHotPlugSlotChassis, cpqSiHotPlugSlotIndex } + ::= { cpqSiHotPlugSlotTable 1 } + + CpqSiHotPlugSlotEntry ::= SEQUENCE { + cpqSiHotPlugSlotChassis INTEGER, + cpqSiHotPlugSlotIndex INTEGER, + cpqSiHotPlugSlotBoardPresent INTEGER, + cpqSiHotPlugSlotPowerState INTEGER, + cpqSiHotPlugSlotBoardCondition INTEGER, + cpqSiHotPlugSlotErrorStatus INTEGER, + cpqSiHotPlugSlotHwLocation DisplayString + } + + cpqSiHotPlugSlotChassis OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Chassis where this hot plug slot resides." + ::= { cpqSiHotPlugSlotEntry 1 } + + cpqSiHotPlugSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The slot within the chassis for this hot plug slot." + ::= { cpqSiHotPlugSlotEntry 2 } + + cpqSiHotPlugSlotBoardPresent OBJECT-TYPE + SYNTAX INTEGER { + other(1), + present(2), + absent(3), + presentButSuspended(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates whether a board is present(2) in or + absent(3) from the slot. A value of other(1) indicates + the information could not be obtained." + ::= { cpqSiHotPlugSlotEntry 3 } + + cpqSiHotPlugSlotPowerState OBJECT-TYPE + SYNTAX INTEGER { + other(1), + powerOn(2), + powerOff(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value is set to powerOn(2) when power is being supplied + to the slot and powerOff(3) when power is not being supplied. + A value of other(1) indicates the information could not be + obtained." + ::= { cpqSiHotPlugSlotEntry 4 } + + cpqSiHotPlugSlotBoardCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the condition of the hot plug slot. + + The hot plug condition is set as follows: + + other(1) + When the condition could not be determined. + + ok(2) + The slot is powered up and operating normally. + + degraded(3) + If the board in the slot is not fully functioning. + + failed(4) + If the slot is failed for any reason. See the status code + for more information on the failure." + ::= { cpqSiHotPlugSlotEntry 5 } + + cpqSiHotPlugSlotErrorStatus OBJECT-TYPE + SYNTAX INTEGER { + noError(1), + generalError(2), + wrongRevision(3), + wrongBoard(4), + cannotConfig(5), + powerFault(6), + unexpectedPowerLoss(7), + wrongSpeed(8), + functionalFailure(9) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the status of the hot plug slot. + + The hot plug slot status is set as follows: + + noError(1) + The slot is operating normally. + + generalError(2) + A general error occurred. + + wrongRevision(3) + The revision of the replacement adapter was different from + the original adapter. + + wrongBoard(4) + The model of the replacement adapter was different from the + original adapter. + + cannotConfig(5) + The adapter could not be configured. + + powerFault(6) + A power fault occurred for the slot. + + unexpectedPowerLoss(7) + Power was unexpectedly lost from the slot. + + wrongSpeed(8) + The adapter cannot be run at the current bus speed. + + functionlFailure(9) + The adapter is not functioning correctly. This may + be caused by a cabling problem." + ::= { cpqSiHotPlugSlotEntry 6 } + + cpqSiHotPlugSlotHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the hot plug slot. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSiHotPlugSlotEntry 7 } + +-- **************************************************************************** +-- System Information System Battery Group +-- ======================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBattery Group (1.3.6.1.4.1.232.2.2.10) +-- +-- The cpqSiSystemBattery group describes information about the system +-- (portable) batteries that are used to power your system. These +-- are the rechargeable batteries. +-- +-- +-- Implementation of the cpqSiBattery group is mandatory for all +-- agents that support the System Information MIB. +-- +-- **************************************************************************** + + + cpqSiSystemBatteryOverallCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall condition of all of the + system batteries. + + The following conditions are supported: + + other(1) + The system does not use system batteries or the battery + condition is unknown. + + ok(2) + All System Batteries are operating OK. + + degraded(3) + One or more of the System Batteries has degraded. The + degraded battery will continue to function but should be + replaced. + + failed(4) + One of more of the System Batteries has failed. The failed + battery is no longer usable. Action should be taken to replace + the battery." + ::= { cpqSiSystemBattery 1 } + + +-- **************************************************************************** +-- System Information System Battery Group +-- ======================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiSystemBattery Group (1.3.6.1.4.1.232.2.2.10) +-- cpqSiSystemBatteryTable (1.3.6.1.4.1.232.2.2.10.2) +-- cpqSiSystemBatteryEntry (1.3.6.1.4.1.232.2.2.10.2.1) +-- +-- The System Battery Table describes asset, physical, and status +-- information about the portable batteries powering your system. +-- +-- **************************************************************************** + + cpqSiSysBatteryTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiSysBatteryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of System Batteries." + ::= { cpqSiSystemBattery 2 } + + cpqSiSysBatteryEntry OBJECT-TYPE + SYNTAX CpqSiSysBatteryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A system battery description." + INDEX { cpqSiSysBatteryIndex } + ::= { cpqSiSysBatteryTable 1 } + + CpqSiSysBatteryEntry ::= SEQUENCE { + cpqSiSysBatteryIndex INTEGER, + cpqSiSysBatteryModel DisplayString, + cpqSiSysBatterySerialNum DisplayString, + cpqSiSysBatteryAssetTag DisplayString, + cpqSiSysBatteryManufacturer DisplayString, + cpqSiSysBatteryDate OCTET STRING, + cpqSiSysBatterySmartVersion DisplayString, + cpqSiSysBatteryCondition INTEGER, + cpqSiSysBatteryStatus INTEGER, + cpqSiSysBatteryChemistry INTEGER, + cpqSiSysBatteryRemainingCap INTEGER, + cpqSiSysBatteryFirmwareRevision INTEGER, + cpqSiSysBatteryHardwareRevision INTEGER, + cpqSiSysBatteryFullCap INTEGER, + cpqSiSysBatteryDesignCap INTEGER, + cpqSiSysBatteryHwLocation DisplayString + } + + cpqSiSysBatteryIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index for this battery entry." + ::= { cpqSiSysBatteryEntry 1 } + + + cpqSiSysBatteryModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The model name for this battery." + ::= { cpqSiSysBatteryEntry 2 } + + cpqSiSysBatterySerialNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The serial number for this battery." + ::= { cpqSiSysBatteryEntry 3 } + + cpqSiSysBatteryAssetTag OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the customer changeable battery identifier that is set + to this system battery's serial number at the time of + manufacture. + + The string will be empty if the battery does support + this function." + ::= { cpqSiSysBatteryEntry 4 } + + cpqSiSysBatteryManufacturer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The battery's manufacturer's name. + + The string will be empty if the battery does support + this function." + ::= { cpqSiSysBatteryEntry 5 } + + + cpqSiSysBatteryDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The battery's manufacture date. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + This field will be set to year = 0 if the agent cannot provide + the module date. The hour, minute, and second field will be set + to zero (0) if they are not relevant. The year field is set + with the most significant octet first. + + The string will be empty if the battery does support + this function." + ::= { cpqSiSysBatteryEntry 6 } + + cpqSiSysBatterySmartVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Smart Battery Data Specification version number supported by this + battery. + + The string will be empty if the system battery does support + this function." + ::= { cpqSiSysBatteryEntry 7 } + + cpqSiSysBatteryCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current condition of this system battery. + + The following status values are supported: + + other(1) + The battery does not support condition monitoring or + the Insight Agent cannot determine condition. + + ok(2) + The battery is operating normally. No user action is + required. + + degraded(3) + The battery is degraded. The battery is still usable + but should be replaced. + + failed(4) + The battery has failed. The battery is no longer + usable and should be replaced soon." + ::= { cpqSiSysBatteryEntry 8 } + + cpqSiSysBatteryStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + capacityDegraded(3), + chargeFault(4), + batteryFailure(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This provides the current status of the battery. + + The following status values are supported: + + other(1): + This battery does not support status reporting. + + ok(2): + The battery is operating ok. + + User Action: No action required. + + capacityDegraded(3): + Significant battery degradation has occurred. + The battery can no longer be fully recharged. + + User Action: + If using multiple batteries, run the Power + Conservation Utility to identify the battery + location. Contact your System Administrator or + Authorized Reseller to order a replacement + battery. + + chargeFault(4): + One or more batteries are not functioning properly. + + User Action: + Make sure all batteries are operating in the + recommended temperature range. Check for foreign + objects in the battery slots. Remove and reinsert all + batteries to resume normal battery operation. + Contact your System Administrator or Authorized + Reseller if you are still experiencing problems. + + batteryFailure(5): + The battery has failed and must be replaced. + + User Action: + Contact your System Administrator or Authorized + Reseller to order a replacement battery. Recycle your + old battery. For proper disposal information, refer + to the documentation that came with your computer." + + ::= { cpqSiSysBatteryEntry 9 } + + cpqSiSysBatteryChemistry OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + lead-Acid(3), + nickel-Cadmium(4), + nickel-Metal-Hydride(5), + lithium-Ion(6), + zinc-Air(7), + lithium-Polymer(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The chemistry of the battery." + + ::= { cpqSiSysBatteryEntry 10 } + + cpqSiSysBatteryRemainingCap OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is a percentage of the battery's remaining capacity + from its design capacity. + + If this attribute is not supported, 65535 is returned." + ::= { cpqSiSysBatteryEntry 11 } + + cpqSiSysBatteryFirmwareRevision OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the revision level of the firmware on the battery. + + If this attribute is not supported, 255 is returned." + ::= { cpqSiSysBatteryEntry 12 } + + cpqSiSysBatteryHardwareRevision OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the revision level of the hardware on the battery. + + If this attribute is not supported, 255 is returned." + ::= { cpqSiSysBatteryEntry 13 } + + cpqSiSysBatteryFullCap OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the mWatt-Hours of the battery's Full capacity on + the current charge. + + If this attribute is not supported, 65535 is returned." + ::= { cpqSiSysBatteryEntry 14 } + + cpqSiSysBatteryDesignCap OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the mWatt-Hours of the battery's design capacity as + specified by the manufacturer. + + If this attribute is not supported, 65535 is returned." + ::= { cpqSiSysBatteryEntry 15 } + + cpqSiSysBatteryHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the battery. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSiSysBatteryEntry 16 } + + +-- **************************************************************************** +-- System Information Docking Station Group +-- ======================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiDockingStation Group (1.3.6.1.4.1.232.2.2.11) +-- +-- The cpqsiDockingStation group describes the asset information +-- about portable docking stations. +-- +-- +-- Implementation of the cpqSiDockingStation group is mandatory for all +-- agents that support the System Information MIB. +-- +-- **************************************************************************** + + cpqSiDockingStationStatus OBJECT-TYPE + SYNTAX INTEGER { + notSupported(1), + docked(2), + undocked(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the connection of the computer + system to a docking station. + + The following connection states are supported: + + notSupported(1) + This system does not interface to a docking station. + + docked(2) + This system is connected to a docking station. + + undocked(3) + This system is not connect to a docking station." + ::= { cpqSiDockingStation 1} + + cpqSiDockingStationSerialNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The serial number of the docking station. + + The string will be empty if the docking station does not support a + serial or the system does not interface to a docking station." + ::= { cpqSiDockingStation 2 } + + cpqSiDockingStationModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The model name of the docking station. + + The string will be empty if the docking station does not report the + model name or the system does not interface to a docking station." + ::= { cpqSiDockingStation 3 } + + cpqSiDockingStationAssetTag OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is a customer changeable identifier that is set to the docking + station serial number at the time of manufacture. + + The string will be empty if the docking station does not report an + asset tag or the system does not interface to a docking station." + ::= { cpqSiDockingStation 4} + +-- **************************************************************************** +-- System Information FRU Group +-- ============================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiFru Group (1.3.6.1.4.1.232.2.2.12) +-- +-- The cpqsiFru group describes the Field Replaceable Units in the +-- server system. +-- +-- +-- Implementation of the cpqSiFru group is mandatory for all +-- Server Agents that support the System Information MIB. +-- +-- **************************************************************************** + + cpqSiFruTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiFruEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Field Replaceable Units of system, providing + inventory and asset control information. This table is + referenced from logical hardware descriptions elsewhere in + the MIB." + ::= { cpqSiFru 1 } + + cpqSiFruEntry OBJECT-TYPE + SYNTAX CpqSiFruEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Each entry represents a Field Replaceable Unit (FRU) of hardware." + INDEX { cpqSiFruIndex } + ::= { cpqSiFruTable 1 } + + CpqSiFruEntry ::= + SEQUENCE { + cpqSiFruIndex INTEGER, + cpqSiFruType INTEGER, + cpqSiFruDescr DisplayString, + cpqSiFruVendor DisplayString, + cpqSiFruPartNumber DisplayString, + cpqSiFruRevision DisplayString, + cpqSiFruFirmwareRevision DisplayString, + cpqSiFruSerialNumber DisplayString, + cpqSiFruAssetNo DisplayString, + cpqSiFruClass INTEGER, + cpqSiFruSlotNumber DisplayString, + cpqSiFruSubAssemblyNumber INTEGER, + cpqSiFruAssemblyNumber INTEGER, + cpqSiFruChassisNumber INTEGER, + cpqSiFruPositionNumber INTEGER, + cpqSiFruCabinetIDNumber INTEGER, + cpqSiFruSiteLocation INTEGER, + cpqSiFruDiagStatus INTEGER, + cpqSiFruExtendedDiagStatus INTEGER, + cpqSiFruCellTablePtr INTEGER, + cpqSiFruIOCTablePtr INTEGER, + cpqSiFruFileId DisplayString, + cpqSiFruScanRev DisplayString + } + + cpqSiFruIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A locally-unique index value." + ::= { cpqSiFruEntry 1 } + + cpqSiFruType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1) , + other(2) , + motherBoard(3) , + processor(4) , + memoryCard(5) , + memoryModule(6) , + peripheralDevice(7) , + systemBusBridge(8) , + powerSupply(9) , + chassis(10) , + fan(11) , + ioCard(12) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "General category of the type of FRU that this is." + ::= { cpqSiFruEntry 2 } + + cpqSiFruDescr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "More detailed description of FRU type, if known." + ::= { cpqSiFruEntry 3 } + + cpqSiFruVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Manufacturer name or ID." + ::= { cpqSiFruEntry 4 } + + cpqSiFruPartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number by which this unit is orderable." + ::= { cpqSiFruEntry 5 } + + cpqSiFruRevision OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Version number of this unit. If artwork level is available, it will + appear as 'Artwork: XXX' following FRU version portion." + ::= { cpqSiFruEntry 6 } + + cpqSiFruFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The revision of the firmware, if any. Otherwise null." + ::= { cpqSiFruEntry 7 } + + cpqSiFruSerialNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The serial number of this unit's instance." + ::= { cpqSiFruEntry 8 } + + cpqSiFruAssetNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The asset number for this unit. This string may be limited." + ::= { cpqSiFruEntry 9 } + + cpqSiFruClass OBJECT-TYPE + SYNTAX INTEGER { + unknown(1) , + other(2) , + currentBoardInSlot(3) , + priorBoardInSlot(4) , + parentBoard(5) , + priorParentBoard(6) , + priorParentSystem(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Represents the status category of the unit." + ::= { cpqSiFruEntry 10 } + + cpqSiFruSlotNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Physical slot number of FRU." + ::= { cpqSiFruEntry 11 } + + cpqSiFruSubAssemblyNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Subassembly containing this FRU. From FRU V5.0." + ::= { cpqSiFruEntry 12 } + + cpqSiFruAssemblyNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Assembly containing this FRU. From FRU V5.0." + ::= { cpqSiFruEntry 13 } + + cpqSiFruChassisNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Chassis containing this FRU. From FRU V5.0." + ::= { cpqSiFruEntry 14 } + + cpqSiFruPositionNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Position in Chassis to help locate FRU. From FRU V5.0." + ::= { cpqSiFruEntry 15 } + + cpqSiFruCabinetIDNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Cabinet number containing this FRU. From FRU V5.0." + ::= { cpqSiFruEntry 16 } + + cpqSiFruSiteLocation OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Site code for system containing this FRU. From FRU V5.0." + ::= { cpqSiFruEntry 17 } + + cpqSiFruDiagStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), + degraded(3), + failed(4), + disabled(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Use system status values to describe current state of the + FRU." + ::= { cpqSiFruEntry 18 } + + cpqSiFruExtendedDiagStatus OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Diagnostic Status value returned by Device Specific + diagnostics. Usually through a diagnostic status register + on the device. See product manual for bit descriptions." + ::= { cpqSiFruEntry 19 } + + cpqSiFruCellTablePtr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "Index for the cell in cpqSeCellTable where this FRU is physically located." + ::= { cpqSiFruEntry 20 } + + cpqSiFruIOCTablePtr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "Index for the I/O Chassis in cpqSeIOCTablePtr where this FRU is physically located" + ::= { cpqSiFruEntry 21 } + + cpqSiFruFileId OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This represents the FRU file identifier" + ::= { cpqSiFruEntry 22 } + + cpqSiFruScanRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This represents FRU scan revision" + ::= { cpqSiFruEntry 23 } + +-- **************************************************************************** +-- System Information Rack and Enclosure Group +-- =========================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiRackEnclosure Group (1.3.6.1.4.1.232.2.2.13) +-- +-- The cpqSiRackEnclosure group indicates the availability of rack and/or +-- enclosure based systems. +-- +-- **************************************************************************** + + cpqSiRackEnclosureMgrTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSiRackEnclosureMgrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of possible rack and/or enclosure based systems." + ::= { cpqSiRackEnclosure 1 } + + cpqSiRackEnclosureMgrEntry OBJECT-TYPE + SYNTAX CpqSiRackEnclosureMgrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A entry for a rack and/or enclosure based system." + INDEX { cpqSiRackEnclosureMgrIndex } + ::= { cpqSiRackEnclosureMgrTable 1 } + + CpqSiRackEnclosureMgrEntry ::= + SEQUENCE { + cpqSiRackEnclosureMgrIndex INTEGER, + cpqSiRackEnclosureMgrType INTEGER, + cpqSiRackEnclosureMgrIpAddr DisplayString, + cpqSiRackEnclosureMgrWebLink DisplayString, + cpqSiRackEnclosureMgrCondition INTEGER, + cpqSiRackEnclosureMgrSerialNumber DisplayString, + cpqSiRackEnclosureMgrModel DisplayString, + cpqSiRackEnclosureMgrName DisplayString, + cpqSiRackEnclosureMgrFwRev DisplayString, + cpqSiRackEnclosureMgrProductID DisplayString, + cpqSiRackEnclosureMgrUUID DisplayString + } + + cpqSiRackEnclosureMgrIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A locally-unique index value." + ::= { cpqSiRackEnclosureMgrEntry 1 } + + cpqSiRackEnclosureMgrType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + noEnclosureManagement(2), + enclosureManagement(3), + onboardAdminManagement(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the type of enclosure management. + + other(1) + When the type not be determined. + + noEnclosureManagement(2) + The server is part of a rack/enclosure managed system, but there + is no dedicated enclosure manager. + + enclosureManagement(3) + The server is part of a rack/enclosure managed system with a + dedicated enclosure manager. + + onboardAdminManagement(4) + The server is part of a rack/enclosure managed system with a + onboard Administrator." + ::= { cpqSiRackEnclosureMgrEntry 2 } + + cpqSiRackEnclosureMgrIpAddr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address of the rack enclosure manager. + + The string will be empty if the enclosure does not report the + information or it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 3 } + + cpqSiRackEnclosureMgrWebLink OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The web link to the enclosure managers web based management + information for the enclosure. + + The string will be empty if the enclosure does not report the + information or it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 4 } + + cpqSiRackEnclosureMgrCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The overall condition of the Enclosure. For more detailed + status information, follow the cpqSiEnclosureMgrWebLink through + the Web Management Agent interface. + + other(1) + This is the default condition for systems when + cpqSiRackEnclosureMgrType has a value of + noEnclosureManagement(2). + + When cpqSiRackEnclosureMgrType has a value of + enclosureManagement(3), this indicates the status of the + enclosure manager could not be determined. + + ok(2) + The enclosure manager is in an ok state. Follow the + cpqSiRackEnclosureMgrWebLink link in the Web Management Agents + to manage the enclosure. + + degraded(3) + The enclosure manager is in a degraded state. Follow the + cpqSiRackEnclosureMgrWebLink link in the Web Management Agents + to manage the enclosure. + + failed(4) + The enclosure manager is in a failed state. Follow the + cpqSiRackEnclosureMgrWebLink link in the Web Management Agents + to manage the enclosure." + ::= { cpqSiRackEnclosureMgrEntry 5 } + + cpqSiRackEnclosureMgrSerialNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The serial number of the enclosure. + + The string will be empty if the enclosure does not report the + information or it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 6 } + + cpqSiRackEnclosureMgrModel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The model name of the enclosure. + The string will be empty if it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 7 } + + cpqSiRackEnclosureMgrName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The name of the enclosure. This name logically groups together the + Blade servers installed in the same enclosure and it is shared + with the other servers in the enclosure. + The string will be empty if it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 8 } + + cpqSiRackEnclosureMgrFwRev OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The Firmware revision of the Enclosure Manager/Onboard Administrator. + The string will be empty if it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 9 } + + cpqSiRackEnclosureMgrProductID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The Enclosure product identifier. The string will be empty + if it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 10 } + + cpqSiRackEnclosureMgrUUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The Enclosure unique identifier. The string will be empty + if it could not be determined." + ::= { cpqSiRackEnclosureMgrEntry 11 } + +-- **************************************************************************** +-- System Information Server Blade Group +-- =========================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiServerBlade Group (1.3.6.1.4.1.232.2.2.14) +-- +-- The cpqsiServerBlade group describes the server Blade system. +-- +-- **************************************************************************** + + cpqSiServerBladeEnclosureBayNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This value specifies the enclosure bay number occupied by the blade. + In case of a blade occupying multiple bays, this will be the lowest + enclosure bay number of all the bay numbers occupied by this balde" + ::= { cpqSiServerBlade 1 } + + cpqSiServerBladeHeight OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + halfHeightBlade(2), + fullHeightBlade(3) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "Blade height is the Blade length. + + unknown(1) + This indicates it could not be determined. + + halfHeightBlade(2) + This indicates a half-height server Blade. + + fullHeightBlade(3) + This indicates a full-height server Blade." + + ::= { cpqSiServerBlade 2 } + + cpqSiServerBladeWidth OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + singleWide(2), + doubleWide(3) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "Width of the Blade in terms of Enclosure Bays. This pertain to the + Blade side that connects to the enclosure backplane." + ::= { cpqSiServerBlade 3 } + +-- **************************************************************************** +-- System Information Rack Group +-- =========================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiRack Group (1.3.6.1.4.1.232.2.2.15) +-- +-- The cpqSiRack group describes the rack details. +-- +-- **************************************************************************** + + cpqSiRackName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The rack name. This name is used to logically group together + enclosures in a rack and it is shared with other enclosures + in the rack. + The string will be empty if it could not be determined." + ::= { cpqSiRack 1 } + + cpqSiRackUUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The rack unique identifier. The string will be empty + if it could be determined." + ::= { cpqSiRack 2 } + +-- **************************************************************************** +-- System Information MP Group +-- ============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSystemInfo Group (1.3.6.1.4.1.232.2) +-- cpqSiComponent Group (1.3.6.1.4.1.232.2.2) +-- cpqSiMP Group (1.3.6.1.4.1.232.2.2.16) +-- +-- The cpqSiMP group contains information about the Management Processor. +-- +-- **************************************************************************** + + cpqSiMPHostName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The host name of the Management Processor. + The string will be empty if it could not be determined." + ::= { cpqSiMP 1 } + + cpqSiMPHealthStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The health status of the Management Processor." + ::= { cpqSiMP 2 } + +-- **************************************************************************** +-- System Info MIB Trap Definitions +-- ================================ +-- +-- The SNMP trap messages must not be bigger than 484 octets (bytes). +-- +-- Trap support in an SNMP agent implementation is optional. An SNMP +-- agent implementation may support all, some, or none of the traps. +-- If traps are supported, The user should be provided with the option of +-- disabling traps. +-- ************************************************************************** + + cpqSiHoodRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "System hood is removed. + + The hood status has been set to removed. The + system's hood is not in a properly installed state. This + situation may result in improper cooling of the system due + to air flow changes caused by the missing hood. + + User Action: Replace the cover (hood), ensure the system's cover + is properly installed. Verify the system is in working order." + + --#TYPE "System hood is removed (2001)" + --#SUMMARY "Hood is removed from unit." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 2001 + + cpqSiMonitorConditionOK TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiMonitorIndex } + DESCRIPTION + "Fault reporting features have returned to within their normal + operating range for the monitor indicated by cpqSiMonitorIndex. + The monitor's condition has been set to OK. + + User Action: None." + + --#TYPE "Monitor Condition OK (2002)" + --#SUMMARY "The monitor's condition has been set to OK." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 2002 + + + cpqSiMonitorConditionDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiMonitorIndex } + DESCRIPTION + "A fault reporting feature has exceeded normal limits for + the monitor indicated by the cpqSiMonitorIndex. The monitor's + condition is degraded due to the internal temperature exceeding + normal operating limits. The monitor is still useable, but + action should be taken to return the condition to OK. + + User Action: Physically check for obstructions to air flow around + the monitor. Check the thermostat in the room that the system + occupies. Allow the monitor to cool by turning off the monitor + for 5 minutes then turn the monitor back on. After the monitor + cools, another alarm indicating an improving condition, such as + Monitor OK, will be issued." + + --#TYPE "Monitor Condition Degraded (2003)" + --#SUMMARY "The monitor's condition has been set to degraded." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 2003 + + cpqSiMonitorConditionFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiMonitorIndex } + DESCRIPTION + "A fault reporting feature has exceeded normal limits in the + monitor indicated by the cpqSiMonitorIndex. The monitor's + condition has been set to failed due to an operational feature + exceeding normal operating limits. The monitor will not be + useable and should be replaced. + + User Action: Make a note of the monitor model number and serial + number. Replace the monitor. + + Refer to the appropriate Maintenance and Service Guide for + detailed information on a component replacement." + + --#TYPE "Monitor Condition Failed (2004)" + --#SUMMARY "The monitor's condition has been set to failed." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 2004 + + cpqSiCorrMemErrStatusDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiMemErrorIndex } + DESCRIPTION + "Correctable memory error count has exceeded the threshold for the + memory module indicated by the 'cpqSiMemErrorIndex' variable. + The appropriate cpqSiMemModuleECCStatus has been set to degraded. + + User Action: For Desktops, the System Administrator should run + the F10 Diagnostics on this system and select RAM LONG TEST. If + it is determined that a module needs replacing, schedule + maintenance for the system and replace the failed memory module. + + Refer to the appropriate Maintenance and Service Guide for detailed + information on a component replacement." + + --#TYPE "Excessive Correctable Memory Errors (2005)" + --#SUMMARY "The Memory Module %d ECC status has been set to degraded." + --#ARGUMENTS {3} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 2005 + + cpqSiCorrMemErrStatusOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiMemErrorIndex } + DESCRIPTION + "Correctable memory error count is now below the threshold for the + memory module indicated by the 'cpqSiMemErrorIndex' variable. The + appropriate cpqSiMemModuleECCStatus has been set to ok. + + User Action: None." + + --#TYPE "Correctable Memory Errors Count OK (2006)" + --#SUMMARY "The Memory Module %d ECC status has been set to OK." + --#ARGUMENTS {3} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 2006 + + cpqSiMemConfigChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiMemConfigChangeData } + DESCRIPTION + "A memory configuration change has occurred. CpqSiMemConfigChangeData + will indicate which memory modules slots have changed. + + User Action: You may want to verify a valid reason for a memory + configuration to have occurred. If system issuing the alert is + a Desktop running NT, the memory configuration change information + is also logged in the NT System Log." + + --#TYPE "Memory modules have changed (2007)" + --#SUMMARY "The system's memory configuration has changed." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 2007 + + cpqSiHotPlugSlotBoardRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiHotPlugSlotChassis, + cpqSiHotPlugSlotIndex } + DESCRIPTION + "Hot Plug Slot Board Removed. + + A Hot Plug Slot Board has been removed from the specified + chassis and slot. + + User Action: None." + + --#TYPE "Hot Plug Slot Board Removed (2008)" + --#SUMMARY "Hot Plug Slot Board Removed from Chassis %d, Slot %d." + --#ARGUMENTS {2, 3} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 2008 + + cpqSiHotPlugSlotBoardInserted TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiHotPlugSlotChassis, + cpqSiHotPlugSlotIndex } + DESCRIPTION + "Hot Plug Slot Board Inserted. + + A Hot Plug Slot Board has been inserted into the specified + chassis and slot. + + User Action: None." + + --#TYPE "Hot Plug Slot Board Inserted (2009)" + --#SUMMARY "Hot Plug Slot Board Inserted into Chassis %d, Slot %d." + --#ARGUMENTS {2, 3} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 2009 + + cpqSiHotPlugSlotPowerUpFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiHotPlugSlotChassis, + cpqSiHotPlugSlotIndex, cpqSiHotPlugSlotErrorStatus } + DESCRIPTION + "Hot Plug Slot Board Failed Power-Up. + + A Hot Plug Slot Board has failed to power-up in the specified + chassis and slot. + + User Action: Insure the board and all cables are installed + correctly and the board type and revision are the same as + the replaced board." + + --#TYPE "Hot Plug Slot Board Failed (2010)" + --#SUMMARY "Hot Plug Slot Board Failed in Chassis %d, Slot %d, Error %d." + --#ARGUMENTS {2, 3, 4} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE FAILED + + ::= 2010 + + cpqSiSysBatteryFailure TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiSysBatteryIndex, + cpqSiSysBatterySerialNum } + DESCRIPTION + "The battery indicated by cpqSiSysBatteryIndex has failed + and must be replaced. + + User Action: Contact your System Administrator or + Authorized Reseller to order a replacement battery. + Recycle your old battery. For proper disposal information, + refer to the documentation that came with your computer." + + --#TYPE "Battery Failure (2011)" + --#SUMMARY "Battery %d has failed." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 2011 + + cpqSiSysBatteryChargingDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiSysBatteryIndex, + cpqSiSysBatterySerialNum } + DESCRIPTION + "Significant battery degradation has occurred with battery + indicated by cpqSiSysBatteryIndex. The battery can + no longer be fully recharged. + + User Action: If using multiple batteries, run + the Power Conservation Utility to identify the + battery location. Contact your System Administrator + or Authorized Reseller to order a replacement + battery." + + --#TYPE "Battery Charging Degradation (2012)" + --#SUMMARY "Battery %d has degraded charging capacity." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + ::= 2012 + + + cpqSiSysBatteryCalibrationError TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSiSysBatteryIndex, + cpqSiSysBatterySerialNum } + DESCRIPTION + "Calibration is needed with battery + indicated by cpqSiSysBatteryIndex. The battery can + not correctly indicate capacity. + + User Action: Run the Power Conservation Utility. Contact + your System Administrator or Authorized Reseller to + order a replacement battery." + + --#TYPE "Battery Calibration Error (2013)" + --#SUMMARY "Battery %d has calibration error." + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + ::= 2013 + +END diff --git a/pandora_console/attachment/mibs/CPQSTDEQ-MIB b/pandora_console/attachment/mibs/CPQSTDEQ-MIB new file mode 100644 index 0000000000..8f106ed5d3 --- /dev/null +++ b/pandora_console/attachment/mibs/CPQSTDEQ-MIB @@ -0,0 +1,4980 @@ +-- **************************************************************************** +-- +-- Standard PC equipment configuration +-- Management Information Base for SNMP Network Management +-- +-- +-- Copyright 1992,2003 Hewlett-Packard Development Company, L.P. +-- +-- Hewlett-Packard Company shall not be liable for technical or +-- editorial errors or omissions contained herein. The information in +-- this document is provided "as is" without warranty of any kind and +-- is subject to change without notice. The warranties for HP products +-- are set forth in the express limited warranty statements +-- accompanying such products. Nothing herein should be construed as +-- constituting an additional warranty. +-- +-- Confidential computer software. Valid license from HP required for +-- possession, use or copying. Consistent with FAR 12.211 and 12.212, +-- Commercial Computer Software, Computer Software Documentation, and +-- Technical Data for Commercial Items are licensed to the U.S. +-- Government under vendor's standard commercial license. +-- +-- Refer to the READMIB.RDM file for more information about the +-- organization of the information in the Compaq Enterprise. +-- +-- The Compaq Enterprise number is 232. +-- The ASN.1 prefix to, and including the Compaq Enterprise is: +-- 1.3.6.1.4.1.232 +-- +-- **************************************************************************** + +CPQSTDEQ-MIB DEFINITIONS ::= BEGIN + + IMPORTS + compaq FROM CPQHOST-MIB +-- enterprises FROM RFC1155-SMI + DisplayString FROM RFC1213-MIB + OBJECT-TYPE FROM RFC-1212 + TRAP-TYPE FROM RFC-1215 + sysName FROM RFC1213-MIB + cpqHoTrapFlags FROM CPQHOST-MIB; + + +-- compaq OBJECT IDENTIFIER ::= { enterprises 232 } + cpqStdEquipment OBJECT IDENTIFIER ::= { compaq 1 } + cpqSeMibRev OBJECT IDENTIFIER ::= { cpqStdEquipment 1 } + cpqSeComponent OBJECT IDENTIFIER ::= { cpqStdEquipment 2 } + + cpqSeInterface OBJECT IDENTIFIER ::= { cpqSeComponent 1 } + cpqSeProcessor OBJECT IDENTIFIER ::= { cpqSeComponent 2 } + cpqSeMemory OBJECT IDENTIFIER ::= { cpqSeComponent 3 } + cpqSeIsaCmos OBJECT IDENTIFIER ::= { cpqSeComponent 4 } + cpqSeEisaNvram OBJECT IDENTIFIER ::= { cpqSeComponent 5 } + cpqSeRom OBJECT IDENTIFIER ::= { cpqSeComponent 6 } + cpqSeKeyboard OBJECT IDENTIFIER ::= { cpqSeComponent 7 } + cpqSeVideo OBJECT IDENTIFIER ::= { cpqSeComponent 8 } + cpqSeSerialPort OBJECT IDENTIFIER ::= { cpqSeComponent 9 } + cpqSeParallelPort OBJECT IDENTIFIER ::= { cpqSeComponent 10 } + cpqSeFloppyDisk OBJECT IDENTIFIER ::= { cpqSeComponent 11 } + cpqSeFixedDisk OBJECT IDENTIFIER ::= { cpqSeComponent 12 } + cpqSePci OBJECT IDENTIFIER ::= { cpqSeComponent 13 } + cpqSePCCard OBJECT IDENTIFIER ::= { cpqSeComponent 14 } + cpqSeUSBPort OBJECT IDENTIFIER ::= { cpqSeComponent 15 } + cpqSeCell OBJECT IDENTIFIER ::= { cpqSeComponent 16 } + cpqSeIOC OBJECT IDENTIFIER ::= { cpqSeComponent 17 } + cpqSePartition OBJECT IDENTIFIER ::= { cpqSeComponent 18 } + cpqSeCabinet OBJECT IDENTIFIER ::= { cpqSeComponent 19 } + cpqSeComplex OBJECT IDENTIFIER ::= { cpqSeComponent 20 } + cpqSeLED OBJECT IDENTIFIER ::= { cpqSeComponent 21 } + cpqSeUSBDevice OBJECT IDENTIFIER ::= { cpqSeComponent 22 } + + cpqSeOsCommon OBJECT IDENTIFIER ::= { cpqSeInterface 4 } + + TruthValue ::= INTEGER { + false(1), + true(2) + } + +-- **************************************************************************** +-- Standard Equipment MIB Revision +-- =============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeMibRev Group (1.3.6.1.4.1.232.1.1) +-- +-- Implementation of the cpqSeMibRev group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- An Insight Agent conforming to this document will return a +-- cpqSeMibRevMajor of one (1) and a cpqSeMibRevMinor of thirty (30). +-- +-- **************************************************************************** + + cpqSeMibRevMajor OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Major Revision level of the MIB. + + A change in the major revision level represents a major change + in the architecture of the MIB. A change in the major revision + level may indicate a significant change in the information + supported and/or the meaning of the supported information, + correct interpretation of data may require a MIB document with + the same major revision level." + ::= { cpqSeMibRev 1 } + + cpqSeMibRevMinor OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Minor Revision level of the MIB. + + A change in the minor revision level may represent some minor + additional support, no changes to any pre-existing information + has occurred." + ::= { cpqSeMibRev 2 } + + cpqSeMibCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The overall condition. + + This object represents the overall status of the server + represented by this MIB." + ::= { cpqSeMibRev 3 } + +-- **************************************************************************** +-- Standard Equipment OS Common Group +-- ================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeInterface Group (1.3.6.1.4.1.232.1.2.1) +-- cpqSeOsCommon Group (1.3.6.1.4.1.232.1.2.1.4) +-- +-- Implementation of the cpqSeOsCommon group is mandatory for all +-- agents that support the Standard Equipment MIB. +-- +-- **************************************************************************** + + cpqSeOsCommonPollFreq OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Insight Agent's polling frequency. + + The frequency, in seconds, at which the Insight Agent requests + information from the device driver. A frequency of zero (0) + indicates that the Insight Agent retrieves the information upon + request of a management station, it does not poll the device + driver at a specific interval. + + If the poll frequency is zero (0) all attempts to write to this + object will fail. If the poll frequency is non-zero, + setting this value will change the polling frequency of the + Insight Agent. Setting the poll frequency to zero (0) will + always fail, an agent may also choose to fail any request to + change the poll frequency to a value that would severely impact + system performance." + ::= { cpqSeOsCommon 1 } + +-- **************************************************************************** +-- Standard Equipment OS Common Module Table +-- ========================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeInterface Group (1.3.6.1.4.1.232.1.2.1) +-- cpqSeOsCommon Group (1.3.6.1.4.1.232.1.2.1.4) +-- cpqSeOsCommonModuleTable (1.3.6.1.4.1.232.1.2.1.4.2) deprecated +-- +-- *************************************************************************** + + cpqSeOsCommonModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A table of software modules that provide an interface to the + device this MIB describes." + ::= { cpqSeOsCommon 2 } + + cpqSeOsCommonModuleEntry OBJECT-TYPE + SYNTAX CpqSeOsCommonModuleEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A description of a software module that provides an interface + to the device this MIB describes." + INDEX { cpqSeOsCommonModuleIndex } + ::= { cpqSeOsCommonModuleTable 1 } + + CpqSeOsCommonModuleEntry ::= SEQUENCE { + cpqSeOsCommonModuleIndex INTEGER, + cpqSeOsCommonModuleName DisplayString, + cpqSeOsCommonModuleVersion DisplayString, + cpqSeOsCommonModuleDate OCTET STRING, + cpqSeOsCommonModulePurpose DisplayString + } + + cpqSeOsCommonModuleIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "A unique index for this module description." + ::= { cpqSeOsCommonModuleEntry 1 } + + cpqSeOsCommonModuleName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module name." + ::= { cpqSeOsCommonModuleEntry 2 } + + cpqSeOsCommonModuleVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..5)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module version in XX.YY format. + + Where XX is the major version number and YY is the minor version + number. This field will be a null (size 0) string if the agent + cannot provide the module version." + ::= { cpqSeOsCommonModuleEntry 3 } + + cpqSeOsCommonModuleDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (7)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The module date. + + field octets contents range + ===== ====== ======= ===== + 1 1-2 year 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minute 0..59 + 6 7 second 0..60 + (use 60 for leap-second) + + + This field will be set to year = 0 if the agent cannot provide + the module date. The hour, minute, and second field will be set + to zero (0) if they are not relevant. The year field is set + with the most significant octet first." + ::= { cpqSeOsCommonModuleEntry 4 } + + cpqSeOsCommonModulePurpose OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The purpose of the module described in this entry." + ::= { cpqSeOsCommonModuleEntry 5 } + +-- **************************************************************************** +-- Standard Equipment Processor Group +-- ================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeProcessor Group (1.3.6.1.4.1.232.1.2.2) +-- cpqSeCpuTable (1.3.6.1.4.1.232.1.2.2.1) +-- cpqSeFpuTable (1.3.6.1.4.1.232.1.2.2.2) +-- +-- The cpqSeProcessor group describes the CPUs (central processor +-- units) and FPUs (floating point coprocessor units) in the system. +-- +-- A CPU is a chip that performs general purpose processing. A CPU may +-- be used with or without an FPU. +-- +-- A FPU is a chip that performs special purpose processing, an FPU is +-- used by a CPU to handle special computations. A FPU is always used +-- with a CPU. +-- +-- The cpqSeProcessor group contains two tables, the cpqSeCpu table +-- and the cpqSeFpu table. The cpqSeCpu table has an entry for +-- each CPU in the system. The cpqSeFpu table has an entry for each +-- FPU in the system. The two tables are indexed in a way that enables +-- an application to determine the relationship between CPUs and FPUs. +-- Each CPU and FPU entry provides identification, description, and +-- speed information. +-- +-- +-- **************************************************************************** + + + + cpqSeCpuTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeCpuEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of the CPUs (processors) in the system. + + The main processor (if such a concept is valid for this machine) + should be the first entry in the table." + ::= { cpqSeProcessor 1 } + + cpqSeCpuEntry OBJECT-TYPE + SYNTAX CpqSeCpuEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a CPU (processor) in the system." + INDEX { cpqSeCpuUnitIndex } + ::= { cpqSeCpuTable 1 } + + CpqSeCpuEntry ::= SEQUENCE { + cpqSeCpuUnitIndex INTEGER, + cpqSeCpuSlot INTEGER, + cpqSeCpuName DisplayString, + cpqSeCpuSpeed INTEGER, + cpqSeCpuStep INTEGER, + cpqSeCpuStatus INTEGER, + cpqSeCpuExtSpeed INTEGER, + cpqSeCpuDesigner INTEGER, + cpqSeCpuSocketNumber INTEGER, + cpqSeCpuThreshPassed INTEGER, + cpqSeCpuHwLocation DisplayString, + cpqSeCpuCellTablePtr INTEGER, + cpqSeCpuPowerpodStatus INTEGER, + cpqSeCpuArchitectureRevision DisplayString, + cpqSeCpuCore INTEGER, + cpqSeCPUSerialNumber DisplayString, + cpqSeCPUPartNumber DisplayString, + cpqSeCPUSerialNumberMfgr DisplayString, + cpqSeCPUPartNumberMfgr DisplayString, + cpqSeCPUCoreIndex INTEGER, + cpqSeCPUMaxSpeed INTEGER, + cpqSeCPUCoreThreadIndex INTEGER, + cpqSeCPUChipGenerationName DisplayString, + cpqSeCPUMultiThreadStatus INTEGER, + cpqSeCPUCoreMaxThreads INTEGER, + cpqSeCpuLowPowerStatus INTEGER, + cpqSeCpuPrimary INTEGER, + cpqSeCpuCoreSteppingText DisplayString, + cpqSeCpuCurrentPerformanceState INTEGER, + cpqSeCpuMinPerformanceState INTEGER, + cpqSeCpuMaxPerformanceState INTEGER + } + + cpqSeCpuUnitIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is a number that uniquely specifies a processor unit. + A processing unit may be a set of processing chips that are + on the same board or for other reasons work together as a unit. + The main processor unit (if such a concept is valid for this + machine) will always have the lowest (first) index." + ::= { cpqSeCpuEntry 1 } + + cpqSeCpuSlot OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents this processor's slot. + If the slot cannot be determined the value of zero (0) will be + returned." + ::= { cpqSeCpuEntry 2 } + + cpqSeCpuName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of this processor. + For example: + 80386" + ::= { cpqSeCpuEntry 3 } + + cpqSeCpuSpeed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current internal speed of this processor in megahertz. + This changes as per the processor performance state + Zero will be returned if this value is not available." + ::= { cpqSeCpuEntry 4 } + + cpqSeCpuStep OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This step of the processor. + This will be zero (0) if the step cannot be determined." + ::= { cpqSeCpuEntry 5 } + + cpqSeCpuStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), + degraded(3), + failed(4), + disabled(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the processor. + + The following values are valid for CPU status: + + Unknown (1) + The status of the CPU could not be determined. + + OK (2) + The CPU is functioning normally. + + Degraded (3) + The CPU is in a pre-failure warrantee state. + + Failed (4) + The CPU is in a failed state. + + Disabled (5) + The CPU has been disabled during power-on-self-test." + + ::= { cpqSeCpuEntry 6 } + + cpqSeCpuExtSpeed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the external frequency in megahertz of the processor bus. + Zero will be returned if this value is not available." + ::= { cpqSeCpuEntry 7 } + + cpqSeCpuDesigner OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + intel(2), + amd(3), + cyrix(4), + ti(5), + nexgen(6), + compaq(7), + samsung(8), + mitsubishi(9), + mips(10) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This attribute specifies the manufacturer which designs + this CPU." + ::= { cpqSeCpuEntry 8 } + + cpqSeCpuSocketNumber OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The physical socket number of the CPU chip. This number + helps to identify CPUs on processor boards that contain + multiple CPU chips. In most cases the CPU Socket number + should be specified on the board silkscreen or in product + documentation." + ::= { cpqSeCpuEntry 9 } + + cpqSeCpuThreshPassed OBJECT-TYPE + SYNTAX INTEGER + { + unsupported(1), + false(2), + true(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CPU threshold passed (Exceeded). When this attribute is set + to true, it identifies a pre-failure error condition. Processors + like the Intel Pentium Pro have the capability built into them + to correct internal error conditions. Excessive corrected internal + errors can predict future hard processor failures. Agent + instrumentation will set this attribute to true if an internal + processor error threshold is passed. It is recommended that the + user replace the CPU in this case. If the processor does not + support monitoring internal corrected errors, this value will + be set to unsupported. " + ::= { cpqSeCpuEntry 10 } + + cpqSeCpuHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the CPU. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeCpuEntry 11 } + + cpqSeCpuCellTablePtr OBJECT-TYPE + SYNTAX INTEGER (0..15) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the index for the cell in cpqSeCellTable where this CPU is physically located." + ::= { cpqSeCpuEntry 12 } + + cpqSeCpuPowerpodStatus OBJECT-TYPE + SYNTAX INTEGER + { + notfailed(1), + failed(2) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the status of CPU power pod. Potential values in the future could be present/not present." + ::= { cpqSeCpuEntry 13 } + + cpqSeCpuArchitectureRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the CPU architecture revision." + ::= { cpqSeCpuEntry 14 } + + cpqSeCpuCore OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The number of cores in this CPU module. Zero will be returned if can not be determined." + ::= { cpqSeCpuEntry 15 } + + cpqSeCPUSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The OEM serial number of the CPU." + ::= { cpqSeCpuEntry 16 } + + cpqSeCPUPartNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The OEM part number of the CPU." + ::= { cpqSeCpuEntry 17 } + + cpqSeCPUSerialNumberMfgr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The manufacturer serial number of the CPU." + ::= { cpqSeCpuEntry 18 } + + cpqSeCPUPartNumberMfgr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The manufacturer part number of the CPU." + ::= { cpqSeCpuEntry 19 } + + cpqSeCPUCoreIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is a number that uniquely identifies a core in a CPU unit." + ::= { cpqSeCpuEntry 20 } + + cpqSeCPUMaxSpeed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the maximum internal speed in megahertz this processor can support. + Zero will be returned if this value is not available." + ::= { cpqSeCpuEntry 21 } + + cpqSeCPUCoreThreadIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is an unique number to identify the running threads in a CPU core." + ::= { cpqSeCpuEntry 22 } + + cpqSeCPUChipGenerationName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "CPU chip generation name e.g. Hondo, Montecito, Madison, Opteron." + ::= { cpqSeCpuEntry 23 } + + cpqSeCPUMultiThreadStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + enabled(2), + disabled(3) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "This OID identifies whether the CPU threading is enabled or not." + ::= { cpqSeCpuEntry 24 } + + cpqSeCPUCoreMaxThreads OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "This OID indicates the maximum number of threads that a cpu core is capable of." + ::= { cpqSeCpuEntry 25 } + + cpqSeCpuLowPowerStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown (1), + lowpowered (2), + normalpowered (3), + highpowered (4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Servers like Itanium has capability to lower power supply + to CPU if it is idle for specified period of time. Proliant + servers can set to high/low/Dynamic mode of power through + ILO. + + The following values are valid for CPU Low Powered state: + + Unknown (1) + The Low Powered status could not be determined. + + Low Powered (2) + The CPU is Low Power state. + + Normal Powered (3) + The CPU is normal Power state. + + High Powered (4) + The CPU is High Power state." + + ::= { cpqSeCpuEntry 26 } + + cpqSeCpuPrimary OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + false(2), + true (3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "On SMP systems one of the CPU is set to Primary and the + other CPUs as secondary. A value of true is set if the + CPU is primary. + + The following values are valid for CPU availability status: + + Unknown (1) + The CPU Primary/Secondary could not be determined. + + false (2) + The CPU is not primary CPU. + + True (3) + The CUR is primary CPU." + + ::= { cpqSeCpuEntry 27 } + + cpqSeCpuCoreSteppingText OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS optional + DESCRIPTION + "The processor stepping version string. A NULL string + indicates that the stepping could not be determined." + ::= { cpqSeCpuEntry 28 } + + cpqSeCpuCurrentPerformanceState OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This OID returns the current performance state of this processor. + Processor performance states are denoted as Pn states. The value + of n is cpqSeCpuPerformanceState. The higher the value n is, the + lower the performance state is being used. Value 0 describes the + highest performance state, in which the processor uses its maximum + performance capability and may consume maximum power. + The performance state number should not exceed 16 on Itanium servers. + (-1) will be returned if this value is not available." + ::= { cpqSeCpuEntry 29 } + + cpqSeCpuMinPerformanceState OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This OID returns the minimum performance state set for this processor. + (-1) will be returned if this value is not available." + ::= { cpqSeCpuEntry 30 } + + cpqSeCpuMaxPerformanceState OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This OID returns the maximum performance state set for this processor. + (-1) will be returned if this value is not available." + ::= { cpqSeCpuEntry 31 } + + +-- **************************************************************************** +-- The FPU Table +-- **************************************************************************** + + cpqSeFpuTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeFpuEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of the FPUs (floating point coprocessors) in the system." + ::= { cpqSeProcessor 2 } + + cpqSeFpuEntry OBJECT-TYPE + SYNTAX CpqSeFpuEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a FPU in the system. + + The fpuUnitIndex of any entry in this table will equal the + cpuUnitIndex of the corresponding CPU in the cpqSeCpu table." + INDEX { cpqSeFpuUnitIndex , cpqSeFpuChipIndex } + ::= { cpqSeFpuTable 1 } + + CpqSeFpuEntry ::= SEQUENCE { + cpqSeFpuUnitIndex INTEGER, + cpqSeFpuChipIndex INTEGER, + cpqSeFpuSlot INTEGER, + cpqSeFpuName DisplayString, + cpqSeFpuSpeed INTEGER, + cpqSeFpuType INTEGER, + cpqSeFpuHwLocation DisplayString + } + + cpqSeFpuUnitIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is a number that uniquely specifies a processor unit. + + A processing unit may be a set of processing chips that are + on the same board or for other reasons work together as a unit. + The main processor unit (if there is one) will always have the + lowest (first) index. This field can be used to associate + CPUs with their corresponding FPUs." + ::= { cpqSeFpuEntry 1 } + + cpqSeFpuChipIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is a number that uniquely specifies the FPU chip. + + This field is used to distinguish between multiple FPUs that are + part of the same processor unit. For example, If a processor + board contained a Intel 80386 processor with both a Intel 80387 + and a Weitek 3167, both the 80387 and the 3167 would have the + same fpuUnitIndex (which would match the 80386's cpuUnitIndex) + but the 80387 and the 3167 would have different fpuChipIndex + field values." + ::= { cpqSeFpuEntry 2 } + + cpqSeFpuSlot OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the FPU's slot. + + If the slot cannot be determined the value of zero (0) will + be returned." + ::= { cpqSeFpuEntry 3 } + + cpqSeFpuName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the name of the FPU. + + For example: + 80387 + Weitek 3167" + ::= { cpqSeFpuEntry 4 } + + cpqSeFpuSpeed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is speed in megahertz of the FPU. + + Zero will be returned if this value is not available." + ::= { cpqSeFpuEntry 5 } + + cpqSeFpuType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + embedded(2), + external(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if the FPU this entry is describing + is embedded in the CPU or external to the CPU chip." + ::= { cpqSeFpuEntry 6 } + + cpqSeFpuHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the FPU. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeFpuEntry 7 } + +-- **************************************************************************** +-- Standard Equipment CPU Cache Table +-- ================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeProcessor Group (1.3.6.1.4.1.232.1.2.2) +-- cpqSeCpuCacheTable (1.3.6.1.4.1.232.1.2.2.3) +-- +-- **************************************************************************** + + cpqSeCpuCacheTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeCpuCacheEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of the CPU caches in the system." + ::= { cpqSeProcessor 3 } + + cpqSeCpuCacheEntry OBJECT-TYPE + SYNTAX CpqSeCpuCacheEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a CPU Caches in the system." + INDEX { cpqSeCpuCacheUnitIndex, cpqSeCpuCacheLevelIndex } + ::= { cpqSeCpuCacheTable 1 } + + CpqSeCpuCacheEntry ::= SEQUENCE { + cpqSeCpuCacheUnitIndex INTEGER, + cpqSeCpuCacheLevelIndex INTEGER, + cpqSeCpuCacheSize INTEGER, + cpqSeCpuCacheSpeed INTEGER, + cpqSeCpuCacheStatus INTEGER, + cpqSeCpuCacheWritePolicy INTEGER, + cpqSeCpuCacheHwLocation DisplayString, + cpqSeCpuCacheCpuSlot INTEGER, + cpqSeCpuCacheCpuCoreIndex INTEGER + } + + cpqSeCpuCacheUnitIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is a number that uniquely specifies a processor unit. + + A processing unit may be a set of processing chips that are + on the same board or for other reasons work together as a unit. + The main processor unit (if such a concept is valid for this + machine) will always have the lowest (first) index." + ::= { cpqSeCpuCacheEntry 1 } + + cpqSeCpuCacheLevelIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the processor cache level. + + The lower the processor cache level, the closer the cache is to + the processor." + ::= { cpqSeCpuCacheEntry 2 } + + cpqSeCpuCacheSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the cache in kilobytes." + ::= { cpqSeCpuCacheEntry 3 } + + cpqSeCpuCacheSpeed OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is speed in cache memory in nanoseconds (ns). A value of + zero (0) means that the cache speed is unknown or unobtainable." + ::= { cpqSeCpuCacheEntry 4 } + + cpqSeCpuCacheStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the cache unit. If the cache is optional and not + installed, unknown(1) will be returned." + ::= { cpqSeCpuCacheEntry 5 } + + cpqSeCpuCacheWritePolicy OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + write-through(2), + write-back(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Specifies write policy of this cache entry." + ::= { cpqSeCpuCacheEntry 6 } + + cpqSeCpuCacheHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the CPU cache. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeCpuCacheEntry 7 } + + cpqSeCpuCacheCpuSlot OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the CPU Slot associated with this CPU cache." + ::= { cpqSeCpuCacheEntry 8 } + + cpqSeCpuCacheCpuCoreIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is a unique number that identifies the core in the CPU + slot to which this cache is associated. If the cache is not + associated with any core on a multi-core CPU, the value should be -1." + ::= { cpqSeCpuCacheEntry 9 } + +-- **************************************************************************** +-- Standard Equipment Memory Group +-- =============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeMemory Group (1.3.6.1.4.1.232.1.2.3) +-- +-- The cpqSeMemory group provides the base memory in the system and the +-- total memory in the system. +-- +-- Implementation of the cpqSeMemory group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- **************************************************************************** + + cpqSeBaseMem OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of base memory in kilobytes. + + A kilobyte is 1024 bytes." + ::= { cpqSeMemory 1 } + + cpqSeTotalMem OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total amount of memory in kilobytes. + + A kilobyte is 1024 bytes." + ::= { cpqSeMemory 2 } + + cpqSeTotalMemMB OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total amount of memory in megabytes. + + A megabyte is 1024 kilobytes." + ::= { cpqSeMemory 3 } + +-- **************************************************************************** +-- Standard Equipment ISA CMOS Group +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeIsaCmos Group (1.3.6.1.4.1.232.1.2.4) +-- +-- +-- The ISA CMOS group provides an image of the ISA CMOS real time clock, +-- security, and configuration in a raw form. This group is provided for +-- completeness, most of the important information stored in ISA CMOS can +-- also be found elsewhere in the MIB. +-- +-- Implementation of the ISA CMOS group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- **************************************************************************** + + + cpqSeIsaCmosRaw OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The contents of the ISA CMOS." + ::= { cpqSeIsaCmos 1 } + +-- **************************************************************************** +-- Standard Equipment EISA NVRAM Slot Table +-- ======================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- +-- +-- The EISA NVRAM group provides a set of tables that detail the +-- configuration information stored in an EISA bus architecture system. +-- The EISA slot table contains entries providing information about each +-- slot that currently contains a configured card. +-- The EISA function table contains entries providing information about +-- each function performed by a configured card. Each card may have +-- one or more defined functions. +-- The rest of the tables: the EISA memory table, the EISA Interrupt +-- table, the EISA DMA table, and the EISA port table, detail the +-- resources used by each function of each configured card. +-- +-- Implementation of the eisaNvram group is optional. +-- The eisaNvram group should be included on any system with an EISA bus +-- architecture. +-- +-- **************************************************************************** + + cpqSeEisaSlotTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of EISA slot information entries." + ::= { cpqSeEisaNvram 1 } + + cpqSeEisaSlotEntry OBJECT-TYPE + SYNTAX CpqSeEisaSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA slot." + INDEX { cpqSeEisaSlotIndex } + ::= { cpqSeEisaSlotTable 1 } + + CpqSeEisaSlotEntry ::= SEQUENCE { + cpqSeEisaSlotIndex INTEGER, + cpqSeEisaSlotRaw OCTET STRING, + cpqSeEisaSlotBoardId DisplayString, + cpqSeEisaSlotBoardName DisplayString, + cpqSeEisaSlotCfRev DisplayString, + cpqSeEisaSlotType INTEGER + } + + cpqSeEisaSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot number for this entry describes." + ::= { cpqSeEisaSlotEntry 1 } + + cpqSeEisaSlotRaw OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (12)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot data for the board in this slot. + + This octet string contains the following EISA slot information: + + The first octet will be zero (0) if this slot contains a + properly configured board. Any other value indicates that the + EISA configuration information for this board is invalid or an + error occurred when trying to retrieve the information. + + The second octet contains several bit flags about the product ID + and slot type. + + Bit 7: 0 = No duplicate ID + 1 = Duplicate IDs + + Bit 6: 0 = Product ID readable + 1 = Product ID not readable + + Bit 5,4: 00 = Expansion slot + 01 = Embedded device + 10 = Virtual device + 11 = Reserved + + Bit 3..0: This nibble indicates which CFG file is loaded + when duplicate file names are present. + 0000 = No duplicate ID + 0001 = First duplicate ID + 0010 = Second duplicate ID + 0011 = Third duplicate ID + . + . + . + 1111 = Fifteenth duplicate ID + + NOTE: Bit 7 is the most significant bit, bit 0 is the least + significant. + + The third octet contains the major revision level of the + configuration utility. + + The fourth octet contains the minor revision level of the + configuration utility. + + The fifth octet contains the most significant byte of the + configuration file checksum. + + The sixth octet contains the least significant byte of the + configuration file checksum. + + The seventh octet contains the number of device functions defined + for the board in this slot. + + The eighth octet contains the combined function information. + This is a set of flags. Each bit has the following meaning when + set (1): + Bit 7: reserved (0) + Bit 6: slot has one or more free form data entries + Bit 5: slot has one or more port initialization entries. + Bit 4: slot has one or more port range entries. + Bit 3: slot has one or more DMA entries. + Bit 2: slot has one or more interrupt (IRQ) entries. + Bit 1: slot has one or more memory entries. + Bit 0: slot has one or more function type definitions. + + NOTE: bit 7 is the most significant bit, bit 0 is the least + significant. + + The ninth, tenth, eleventh, and twelfth octets contain the four + byte compressed EISA ID. + + For more information about the meaning of this information + consult the EISA Technical Reference Guide." + ::= { cpqSeEisaSlotEntry 2 } + + cpqSeEisaSlotBoardId OBJECT-TYPE + SYNTAX DisplayString (SIZE (7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A seven character board ID. + + The first three characters are the manufacturers ID followed by + three character product ID followed by a one character revision + level." + ::= { cpqSeEisaSlotEntry 3 } + + cpqSeEisaSlotBoardName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product name (or other suitable description) of this board. + + This field may be empty if no descriptive information is known + about the board." + ::= { cpqSeEisaSlotEntry 4 } + + cpqSeEisaSlotCfRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..5)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The revision level of the EISA configuration utility that was + used to configure the system. + + This should be the same version information displayed by the EISA + configuration utility." + ::= { cpqSeEisaSlotEntry 5 } + + cpqSeEisaSlotType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + isa8Bit(2), + isa16Bit(3), + eisa32Bit(4), + eisaBusMaster32Bit(5), + other(6), + reserved(7), + reserved2(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of slot described by this entry." + ::= { cpqSeEisaSlotEntry 6 } + + +-- **************************************************************************** +-- Standard Equipment EISA NVRAM Function Table +-- ============================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- cpqSeEisaFunctTable (1.3.6.1.4.1.232.1.2.5.2) +-- +-- **************************************************************************** + + cpqSeEisaFunctTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaFunctEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list EISA function information entries." + ::= { cpqSeEisaNvram 2 } + + cpqSeEisaFunctEntry OBJECT-TYPE + SYNTAX CpqSeEisaFunctEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA function." + INDEX { cpqSeEisaFunctSlotIndex , cpqSeEisaFunctIndex } + ::= { cpqSeEisaFunctTable 1 } + + CpqSeEisaFunctEntry ::= SEQUENCE { + cpqSeEisaFunctSlotIndex INTEGER, + cpqSeEisaFunctIndex INTEGER, + cpqSeEisaFunctStatus INTEGER, + cpqSeEisaFunctType DisplayString, + cpqSeEisaFunctCfgRev DisplayString, + cpqSeEisaFunctSels OCTET STRING, + cpqSeEisaFunctInfo INTEGER + } + + cpqSeEisaFunctSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot of the board that registered this function" + ::= { cpqSeEisaFunctEntry 1 } + + cpqSeEisaFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of the function this entry describes." + ::= { cpqSeEisaFunctEntry 2 } + + cpqSeEisaFunctStatus OBJECT-TYPE + SYNTAX INTEGER { + disabled(2), + enabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the function described by this entry." + ::= { cpqSeEisaFunctEntry 3 } + + cpqSeEisaFunctType OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of the function. + + The type may be followed by one or more subtype description + fields. Some currently defined types are: + + Type Meaning + ============== ================================================== + COM Communication device + COM,ASY ISA compatible 8250 based serial port + COM,ASY,FIFO ISA compatible 16550 based serial port (with fifo) + COM,SYN ISA compatible SDLC port + CPU Microprocessor + CPU,8086 8086 compatible microprocessor + CPU,80286 80286 compatible microprocessor + CPU,80386SX 80386SX compatible microprocessor + CPU,80386 80386 compatible microprocessor + CPU,80486 80486 compatible microprocessor + JOY ISA compatible joystick adapter + KEY Keyboard + KEY,nnn,KBD=xx Standard keyboard with nnn keys for country xx + MEM Memory board + MFC Multifunction board + MSD Mass storage device + MSD,DSKCTL ISA compatible fixed disk controller + MSD,FPYCTL ISA compatible floppy disk controller + MSD,TAPCTL Primary tape controller + NET Network board + NPX Numeric coprocessor + NPX,287 Intel 287 numeric coprocessor + NPX,387 Intel 387 numeric coprocessor + NPX,387SX Intel 387SX numeric coprocessor + NPX,W1167 Weitek 1167 numeric coprocessor + NPX,W3167 Weitek 3167 numeric coprocessor + OSE Operating system/environment + OTH Other + PAR ISA compatible parallel port + PAR,BID Bidirectional parallel port + PTR Pointing device + PTR,8042 8042 pointing device (mouse) interface + SYS System board + VID Video board + VID,MDA ISA compatible monochrome adapter + VID,MDA,MGA Hercules monochrome adapter + VID,CGA CGA, no write sync during retrace required + VID,CGA,RTR CGA, write sync during retrace required + VID,EGA ISA compatible EGA adapter + VID,VGA ISA compatible VGA adapter + + This list is not intended to be complete. Other types may be + found in this field. This list describes some of the more + common types found, other types should be similarly recognizable + to someone sufficiently knowledgeable about computer hardware." + ::= { cpqSeEisaFunctEntry 4 } + + cpqSeEisaFunctCfgRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..5)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The revision of the EISA configuration .OVL file used to + configure this board." + ::= { cpqSeEisaFunctEntry 5 } + + cpqSeEisaFunctSels OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..26)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The selections that were chosen with the EISA CONFIGURATION + UTILITY to create this function." + ::= { cpqSeEisaFunctEntry 6 } + + cpqSeEisaFunctInfo OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA function information block. + + This is a set of flags indicating the resources that are + configured in this EISA function. Each bit has the following + meaning when it is set (1): + + Bit 7: Function is disabled + Bit 6: This function contains free-form information. + Bit 5: This function contains port initialization entries. + Bit 4: This function contains port range entries. + Bit 3: This function contains DMA entries. + Bit 2: This function contains interrupt (IRQ) entries. + Bit 1: This function contains memory entries. + Bit 0: This function contains function type definitions. + + NOTE: bit 7 is the most significant bit, bit 0 is the least + significant." + ::= { cpqSeEisaFunctEntry 7 } + +-- **************************************************************************** +-- Standard Equipment EISA Memory Table +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- cpqSeEisaFunctTable (1.3.6.1.4.1.232.1.2.5.2) +-- cpqSeEisaMemTable (1.3.6.1.4.1.232.1.2.5.3) +-- +-- **************************************************************************** + + cpqSeEisaMemTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaMemEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of EISA function memory configuration entries." + ::= { cpqSeEisaNvram 3 } + + cpqSeEisaMemEntry OBJECT-TYPE + SYNTAX CpqSeEisaMemEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA function memory configuration." + INDEX { cpqSeEisaMemSlotIndex , cpqSeEisaMemFunctIndex , + cpqSeEisaMemAllocIndex } + ::= { cpqSeEisaMemTable 1 } + + CpqSeEisaMemEntry ::= SEQUENCE { + cpqSeEisaMemSlotIndex INTEGER, + cpqSeEisaMemFunctIndex INTEGER, + cpqSeEisaMemAllocIndex INTEGER, + cpqSeEisaMemStartAddr INTEGER, + cpqSeEisaMemSize INTEGER, + cpqSeEisaMemShare INTEGER, + cpqSeEisaMemType INTEGER, + cpqSeEisaMemCache INTEGER, + cpqSeEisaMemAccess INTEGER, + cpqSeEisaMemDecode INTEGER, + cpqSeEisaMemDataSize INTEGER + } + + cpqSeEisaMemSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot number of the board that registered the memory + configuration this entry describes." + ::= { cpqSeEisaMemEntry 1 } + + cpqSeEisaMemFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The function in which this memory configuration was registered." + ::= { cpqSeEisaMemEntry 2 } + + cpqSeEisaMemAllocIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index for this memory allocation entry in the EISA function + block." + ::= { cpqSeEisaMemEntry 3 } + + cpqSeEisaMemStartAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The starting address of the memory configuration." + ::= { cpqSeEisaMemEntry 4 } + + cpqSeEisaMemSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in bytes of the memory configuration." + ::= { cpqSeEisaMemEntry 5 } + + cpqSeEisaMemShare OBJECT-TYPE + SYNTAX INTEGER { + nonshareable(1), + shareable(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if the memory is shareable." + ::= { cpqSeEisaMemEntry 6 } + + cpqSeEisaMemType OBJECT-TYPE + SYNTAX INTEGER { + systemBaseOrExtended(1), + expanded(2), + virtual(3), + other(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of memory." + ::= { cpqSeEisaMemEntry 7 } + + cpqSeEisaMemCache OBJECT-TYPE + SYNTAX INTEGER { + notCached(1), + writeThroughCached(2), + writeBackCached(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if the memory is cached." + ::= { cpqSeEisaMemEntry 8 } + + cpqSeEisaMemAccess OBJECT-TYPE + SYNTAX INTEGER { + readOnly(1), + readWrite(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of access permitted for this memory." + ::= { cpqSeEisaMemEntry 9 } + + cpqSeEisaMemDecode OBJECT-TYPE + SYNTAX INTEGER (0..65536) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The memory decode size (the number of address lines supported)." + ::= { cpqSeEisaMemEntry 10 } + + cpqSeEisaMemDataSize OBJECT-TYPE + SYNTAX INTEGER (0..65536) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The data access size for the memory in bits." + ::= { cpqSeEisaMemEntry 11 } + +-- **************************************************************************** +-- Standard Equipment EISA Interrupt Table +-- ======================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- cpqSeEisaFunctTable (1.3.6.1.4.1.232.1.2.5.2) +-- cpqSeEisaMemTable (1.3.6.1.4.1.232.1.2.5.3) +-- cpqSeEisaIntTable (1.3.6.1.4.1.232.1.2.5.4) +-- +-- **************************************************************************** + + cpqSeEisaIntTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaIntEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of EISA function interrupt configuration entries." + ::= { cpqSeEisaNvram 4 } + + cpqSeEisaIntEntry OBJECT-TYPE + SYNTAX CpqSeEisaIntEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA function interrupt configuration." + INDEX { cpqSeEisaIntSlotIndex , cpqSeEisaIntFunctIndex , + cpqSeEisaIntAllocIndex } + ::= { cpqSeEisaIntTable 1 } + + CpqSeEisaIntEntry ::= SEQUENCE { + cpqSeEisaIntSlotIndex INTEGER, + cpqSeEisaIntFunctIndex INTEGER, + cpqSeEisaIntAllocIndex INTEGER, + cpqSeEisaIntNum INTEGER, + cpqSeEisaIntShare INTEGER, + cpqSeEisaIntTrigger INTEGER + } + + cpqSeEisaIntSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot number of the board that registered the interrupt + configuration this entry describes." + ::= { cpqSeEisaIntEntry 1 } + + cpqSeEisaIntFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The function in which this interrupt configuration was + registered." + ::= { cpqSeEisaIntEntry 2 } + + cpqSeEisaIntAllocIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index for this interrupt allocation entry in the EISA + function block." + ::= { cpqSeEisaIntEntry 3 } + + cpqSeEisaIntNum OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interrupt described in this entry." + ::= { cpqSeEisaIntEntry 4 } + + cpqSeEisaIntShare OBJECT-TYPE + SYNTAX INTEGER { + nonshareable(1), + shareable(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if the interrupt is shareable." + ::= { cpqSeEisaIntEntry 5 } + + cpqSeEisaIntTrigger OBJECT-TYPE + SYNTAX INTEGER { + edge(1), + level(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if the interrupt is edge or level + triggered." + ::= { cpqSeEisaIntEntry 6 } + +-- **************************************************************************** +-- Standard Equipment EISA DMA Table +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- cpqSeEisaFunctTable (1.3.6.1.4.1.232.1.2.5.2) +-- cpqSeEisaMemTable (1.3.6.1.4.1.232.1.2.5.3) +-- cpqSeEisaIntTable (1.3.6.1.4.1.232.1.2.5.4) +-- cpqSeEisaDmaTable (1.3.6.1.4.1.232.1.2.5.5) +-- +-- **************************************************************************** + + cpqSeEisaDmaTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaDmaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of EISA function DMA configuration entries." + ::= { cpqSeEisaNvram 5 } + + cpqSeEisaDmaEntry OBJECT-TYPE + SYNTAX CpqSeEisaDmaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA function DMA configuration." + INDEX { cpqSeEisaDmaSlotIndex , cpqSeEisaDmaFunctIndex , + cpqSeEisaDmaAllocIndex } + ::= { cpqSeEisaDmaTable 1 } + + CpqSeEisaDmaEntry ::= SEQUENCE { + cpqSeEisaDmaSlotIndex INTEGER, + cpqSeEisaDmaFunctIndex INTEGER, + cpqSeEisaDmaAllocIndex INTEGER, + cpqSeEisaDmaChannel INTEGER, + cpqSeEisaDmaShare INTEGER, + cpqSeEisaDmaTiming INTEGER, + cpqSeEisaDmaXfer INTEGER, + cpqSeEisaDmaXferCount INTEGER + } + + cpqSeEisaDmaSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot number of the board that registered the DMA + configuration this entry describes." + ::= { cpqSeEisaDmaEntry 1 } + + cpqSeEisaDmaFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The function in which this DMA configuration was registered." + ::= { cpqSeEisaDmaEntry 2 } + + cpqSeEisaDmaAllocIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index for this DMA channel allocation entry in the EISA + function block." + ::= { cpqSeEisaDmaEntry 3 } + + cpqSeEisaDmaChannel OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DMA channel described in this entry." + ::= { cpqSeEisaDmaEntry 4 } + + cpqSeEisaDmaShare OBJECT-TYPE + SYNTAX INTEGER { + nonshareable(1), + shareable(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if the DMA channel is shareable." + ::= { cpqSeEisaDmaEntry 5 } + + cpqSeEisaDmaTiming OBJECT-TYPE + SYNTAX INTEGER { + isaTiming(1), + typeA(2), + typeB(3), + burstTypeC(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the timing (transfer rate) associated with + this configuration of the DMA channel." + ::= { cpqSeEisaDmaEntry 6 } + + cpqSeEisaDmaXfer OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the transfer size in bits used over this + DMA channel." + ::= { cpqSeEisaDmaEntry 7 } + + cpqSeEisaDmaXferCount OBJECT-TYPE + SYNTAX INTEGER { + byte(1), + word(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the addressing scheme for the DMA channel." + ::= { cpqSeEisaDmaEntry 8 } + + +-- **************************************************************************** +-- Standard Equipment EISA Port Table +-- ================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- cpqSeEisaFunctTable (1.3.6.1.4.1.232.1.2.5.2) +-- cpqSeEisaMemTable (1.3.6.1.4.1.232.1.2.5.3) +-- cpqSeEisaIntTable (1.3.6.1.4.1.232.1.2.5.4) +-- cpqSeEisaDmaTable (1.3.6.1.4.1.232.1.2.5.5) +-- cpqSeEisaPortTable (1.3.6.1.4.1.232.1.2.5.6) +-- +-- **************************************************************************** + + cpqSeEisaPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of EISA function port I/O configuration entries." + ::= { cpqSeEisaNvram 6 } + + cpqSeEisaPortEntry OBJECT-TYPE + SYNTAX CpqSeEisaPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA function port I/O configuration." + INDEX { cpqSeEisaPortSlotIndex , cpqSeEisaPortFunctIndex , + cpqSeEisaPortAllocIndex } + ::= { cpqSeEisaPortTable 1 } + + CpqSeEisaPortEntry ::= SEQUENCE { + cpqSeEisaPortSlotIndex INTEGER, + cpqSeEisaPortFunctIndex INTEGER, + cpqSeEisaPortAllocIndex INTEGER, + cpqSeEisaPortAddr INTEGER, + cpqSeEisaPortShare INTEGER, + cpqSeEisaPortSize INTEGER + } + + cpqSeEisaPortSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot number of the board that registered the I/O port + configuration this entry describes." + ::= { cpqSeEisaPortEntry 1 } + + cpqSeEisaPortFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The function in which this port I/O configuration was + registered." + ::= { cpqSeEisaPortEntry 2 } + + cpqSeEisaPortAllocIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index for this I/O port range allocation entry in the EISA + function block." + ::= { cpqSeEisaPortEntry 3 } + + cpqSeEisaPortAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The I/O port address being described in this entry." + ::= { cpqSeEisaPortEntry 4 } + + cpqSeEisaPortShare OBJECT-TYPE + SYNTAX INTEGER { + nonshareable(1), + shareable(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates if the port is shareable." + ::= { cpqSeEisaPortEntry 5 } + + cpqSeEisaPortSize OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of sequential ports starting at the + eisaPortAddrIndex that are be configured." + ::= { cpqSeEisaPortEntry 6 } + +-- **************************************************************************** +-- Standard Equipment EISA Free Form Table +-- ======================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- cpqSeEisaFunctTable (1.3.6.1.4.1.232.1.2.5.2) +-- cpqSeEisaMemTable (1.3.6.1.4.1.232.1.2.5.3) +-- cpqSeEisaIntTable (1.3.6.1.4.1.232.1.2.5.4) +-- cpqSeEisaDmaTable (1.3.6.1.4.1.232.1.2.5.5) +-- cpqSeEisaPortTable (1.3.6.1.4.1.232.1.2.5.6) +-- cpqSeEisaFreeFormTable (1.3.6.1.4.1.232.1.2.5.7) +-- +-- **************************************************************************** + + cpqSeEisaFreeFormTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaFreeFormEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of EISA function free form entries." + ::= { cpqSeEisaNvram 7 } + + cpqSeEisaFreeFormEntry OBJECT-TYPE + SYNTAX CpqSeEisaFreeFormEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA function free form." + INDEX { cpqSeEisaFreeFormSlotIndex , + cpqSeEisaFreeFormFunctIndex } + ::= { cpqSeEisaFreeFormTable 1 } + + CpqSeEisaFreeFormEntry ::= SEQUENCE { + cpqSeEisaFreeFormSlotIndex INTEGER, + cpqSeEisaFreeFormFunctIndex INTEGER, + cpqSeEisaFreeFormValue OCTET STRING + } + + cpqSeEisaFreeFormSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot number of the board that registered the free form + information this entry describes." + ::= { cpqSeEisaFreeFormEntry 1 } + + cpqSeEisaFreeFormFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The function in which this free form was registered." + ::= { cpqSeEisaFreeFormEntry 2 } + + cpqSeEisaFreeFormValue OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..205)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The free form value." + ::= { cpqSeEisaFreeFormEntry 3 } + +-- **************************************************************************** +-- Standard Equipment EISA Function Port Initialization Table +-- ========================================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeEisaNvram Group (1.3.6.1.4.1.232.1.2.5) +-- cpqSeEisaSlotTable (1.3.6.1.4.1.232.1.2.5.1) +-- cpqSeEisaFunctTable (1.3.6.1.4.1.232.1.2.5.2) +-- cpqSeEisaMemTable (1.3.6.1.4.1.232.1.2.5.3) +-- cpqSeEisaIntTable (1.3.6.1.4.1.232.1.2.5.4) +-- cpqSeEisaDmaTable (1.3.6.1.4.1.232.1.2.5.5) +-- cpqSeEisaPortTable (1.3.6.1.4.1.232.1.2.5.6) +-- cpqSeEisaFreeFormTable (1.3.6.1.4.1.232.1.2.5.7) +-- cpqSeEisaInitTable (1.3.6.1.4.1.232.1.2.5.8) +-- +-- **************************************************************************** + + cpqSeEisaInitTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeEisaInitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of EISA function port initialization entries." + ::= { cpqSeEisaNvram 8 } + + cpqSeEisaInitEntry OBJECT-TYPE + SYNTAX CpqSeEisaInitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of an EISA function port initialization." + INDEX { cpqSeEisaInitSlotIndex , cpqSeEisaInitFunctIndex , + cpqSeEisaInitAllocIndex } + ::= { cpqSeEisaInitTable 1 } + + CpqSeEisaInitEntry ::= SEQUENCE { + cpqSeEisaInitSlotIndex INTEGER, + cpqSeEisaInitFunctIndex INTEGER, + cpqSeEisaInitAllocIndex INTEGER, + cpqSeEisaInitUseMask INTEGER, + cpqSeEisaInitAccess INTEGER, + cpqSeEisaInitAddr INTEGER, + cpqSeEisaInitValue INTEGER, + cpqSeEisaInitMask INTEGER + } + + cpqSeEisaInitSlotIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EISA slot number of the board that registered the port + initialization this entry describes." + ::= { cpqSeEisaInitEntry 1 } + + cpqSeEisaInitFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The function in which this port initialization was registered." + ::= { cpqSeEisaInitEntry 2 } + + cpqSeEisaInitAllocIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index for this port initialization entry in the EISA + function block." + ::= { cpqSeEisaInitEntry 3 } + + cpqSeEisaInitUseMask OBJECT-TYPE + SYNTAX INTEGER { + useValueOnly(1), + useValueAndMask(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This indicates if a mask will be used when performing + initialization." + ::= { cpqSeEisaInitEntry 4 } + + cpqSeEisaInitAccess OBJECT-TYPE + SYNTAX INTEGER { + other(1), + eightBitAddress(2), + sixteenBitAddress(3), + thirtyTwoBitAddress(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the number of bits this entry initializes." + ::= { cpqSeEisaInitEntry 5 } + + cpqSeEisaInitAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the port address this entry initializes." + ::= { cpqSeEisaInitEntry 6 } + + cpqSeEisaInitValue OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This indicates the value to which this port is initialized." + ::= { cpqSeEisaInitEntry 7 } + + cpqSeEisaInitMask OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the mask to use when performing + initialization." + ::= { cpqSeEisaInitEntry 8 } + + +-- **************************************************************************** +-- Standard Equipment ROM Description Table +-- ======================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeRom Group (1.3.6.1.4.1.232.1.2.6) +-- cpqSeSysRomVer (1.3.6.1.4.1.232.1.2.6.1) +-- cpqSeOptRomTable (1.3.6.1.4.1.232.1.2.6.2) +-- +-- The ROM group contains a description of the system ROM and a table +-- providing option ROM information. The option ROM table contains +-- entries specifying the starting address and size of the each option +-- ROM in the system. +-- +-- Implementation of the ROM group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- **************************************************************************** + + + cpqSeSysRomVer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System ROM version information." + ::= { cpqSeRom 1 } + + + cpqSeOptRomTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeOptRomEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of option ROM descriptions." + ::= { cpqSeRom 2 } + + cpqSeOptRomEntry OBJECT-TYPE + SYNTAX CpqSeOptRomEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An option ROM description." + INDEX { cpqSeOptRomAddrIndex } + ::= { cpqSeOptRomTable 1 } + + CpqSeOptRomEntry ::= SEQUENCE { + cpqSeOptRomAddrIndex INTEGER, + cpqSeOptRomSize INTEGER + } + + cpqSeOptRomAddrIndex OBJECT-TYPE + SYNTAX INTEGER (0..4294967295) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The starting address of the option ROM. + + This value indicates the number of bytes from the start of + physical memory to the beginning of this option ROM." + ::= { cpqSeOptRomEntry 1 } + + cpqSeOptRomSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in bytes of the option ROM." + ::= { cpqSeOptRomEntry 2 } + + cpqSeBiosRomDataRaw OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (256)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The BIOS ROM data area. This may be the current contents or + a copy of the BIOS ROM data area from when the Insight Agent was + initialized." + ::= { cpqSeRom 3 } + + cpqSeRedundantSysRomVer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System ROM version information for the redundant ROM + image. This will be left blank if the system does not + support a redundant ROM." + ::= { cpqSeRom 4 } + + cpqSeSmbiosVer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "SMBIOS version information." + ::= { cpqSeRom 5 } + + cpqSeMPFwVer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The version of Management Processor Firmware." + ::= { cpqSeRom 6 } + + cpqSeBMCFwVer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The version of the manageability firmware." + ::= { cpqSeRom 7 } + + cpqSeHPVMFwVer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The version of the virtual machine firmware." + ::= { cpqSeRom 8 } + +-- **************************************************************************** +-- Standard Equipment Keyboard Group +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeKeyboard Group (1.3.6.1.4.1.232.1.2.7) +-- +-- The keyboard group describes the keyboard attached to the system. +-- +-- Implementation of the Keyboard group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- **************************************************************************** + + cpqSeKeyboardDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the keyboard." + ::= { cpqSeKeyboard 1 } + +-- **************************************************************************** +-- Standard Equipment Video Group +-- ============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeVideo Group (1.3.6.1.4.1.232.1.2.8) +-- +-- The video group describes the video adapter and display. +-- +-- Implementation of the video group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- **************************************************************************** + + cpqSeVideoDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the video system in the computer. This may + include the manufacturer, board name, modes supported, etc.." + ::= { cpqSeVideo 1 } + +-- **************************************************************************** +-- Standard Equipment Serial Port Table +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeSerialPort Group (1.3.6.1.4.1.232.1.2.9) +-- cpqSeSerialPortTable (1.3.6.1.4.1.232.1.2.9.1) +-- +-- The serial port group describes the serial ports in the system. +-- +-- Implementation of the Serial Port group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- +-- **************************************************************************** + + cpqSeSerialPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeSerialPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of serial port descriptions." + ::= { cpqSeSerialPort 1 } + + cpqSeSerialPortEntry OBJECT-TYPE + SYNTAX CpqSeSerialPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a serial port." + INDEX { cpqSeSerialPortIndex } + ::= { cpqSeSerialPortTable 1 } + + CpqSeSerialPortEntry ::= SEQUENCE { + cpqSeSerialPortIndex INTEGER, + cpqSeSerialPortAddr INTEGER, + cpqSeSerialPortDesc DisplayString, + cpqSeSerialPortHwLocation DisplayString + } + + cpqSeSerialPortIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry." + ::= { cpqSeSerialPortEntry 1 } + + cpqSeSerialPortAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The I/O port address used by this serial port." + ::= { cpqSeSerialPortEntry 2 } + + cpqSeSerialPortDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A text description of further information known about the serial + port. This may be an empty string if no further information is + known." + ::= { cpqSeSerialPortEntry 3 } + + cpqSeSerialPortHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the serial port. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeSerialPortEntry 4 } + +-- **************************************************************************** +-- Standard Equipment Parallel Port Table +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeParallel Group (1.3.6.1.4.1.232.1.2.10) +-- cpqSeParallelPortTable (1.3.6.1.4.1.232.1.2.10.1) +-- +-- +-- The parallel port group describes the parallel ports in the system. +-- +-- Implementation of the Parallel Port group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- +-- **************************************************************************** + + + cpqSeParallelPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeParallelPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of parallel port descriptions." + ::= { cpqSeParallelPort 1 } + + cpqSeParallelPortEntry OBJECT-TYPE + SYNTAX CpqSeParallelPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a parallel port." + INDEX { cpqSeParallelPortIndex } + ::= { cpqSeParallelPortTable 1 } + + CpqSeParallelPortEntry ::= SEQUENCE { + cpqSeParallelPortIndex INTEGER, + cpqSeParallelPortAddr INTEGER, + cpqSeParallelPortDesc DisplayString, + cpqSeParrallelPortHwLocation DisplayString + } + + cpqSeParallelPortIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry." + ::= { cpqSeParallelPortEntry 1 } + + cpqSeParallelPortAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The I/O port address used by this parallel port." + ::= { cpqSeParallelPortEntry 2 } + + cpqSeParallelPortDesc OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A text description of further information known about the + parallel port. This may be an empty string if no further + information is known." + ::= { cpqSeParallelPortEntry 3 } + + cpqSeParrallelPortHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the parallel port. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeParallelPortEntry 4 } + +-- **************************************************************************** +-- Standard Equipment Floppy Disk Table +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeFloppyDisk Group (1.3.6.1.4.1.232.1.2.11) +-- cpqSeFloppyDiskTable (1.3.6.1.4.1.232.1.2.11.1) +-- +-- The floppy disk group describes the floppy disk drives in the system. +-- +-- Implementation of the Floppy Disk group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- **************************************************************************** + + cpqSeFloppyDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeFloppyDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of floppy drive descriptions." + ::= { cpqSeFloppyDisk 1 } + + cpqSeFloppyDiskEntry OBJECT-TYPE + SYNTAX CpqSeFloppyDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A floppy drive description." + INDEX { cpqSeFloppyDiskIndex } + ::= { cpqSeFloppyDiskTable 1 } + + CpqSeFloppyDiskEntry ::= SEQUENCE { + cpqSeFloppyDiskIndex INTEGER, + cpqSeFloppyDiskType INTEGER, + cpqSeFloppyDiskHwLocation DisplayString + } + + cpqSeFloppyDiskIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry. If possible, this + field will map directly to the drive letter (0 for A:, 1 for B:)." + ::= { cpqSeFloppyDiskEntry 1 } + + cpqSeFloppyDiskType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + drive360k(2), + drive1200k(3), + drive720k(4), + drive1440k(5), + drive120mb(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type (capacity) of the floppy drive. The following values + are valid: + + other (1) This floppy drive could not be identified. + drive360k (2) This is a 360 kilobyte, 5.25 inch floppy drive. + drive1200k (3) This is a 1.2 megabyte, 5.25 inch floppy drive. + drive720k (4) This is a 720 kilobyte, 3.5 inch floppy drive. + drive1440k (5) This is a 1.44 megabyte, 3.5 inch floppy drive. + drive120mb(6) This is a 120 megabyte, 3.5 inch floptical + drive." + ::= { cpqSeFloppyDiskEntry 2 } + + cpqSeFloppyDiskHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the floppy disk. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeFloppyDiskEntry 3 } + +-- **************************************************************************** +-- Standard Equipment Fixed Disk Table +-- =================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeFixedDisk Group (1.3.6.1.4.1.232.1.2.12) +-- cpqSeFixedDiskTable (1.3.6.1.4.1.232.1.2.12.1) +-- +-- The fixed disk group describes the fixed disk drives in the system +-- that are accessible through a ST506 compatible interface. +-- +-- Implementation of the Fixed Disk group is mandatory for all agents +-- supporting the Standard Equipment MIB. +-- +-- **************************************************************************** + + cpqSeFixedDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeFixedDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of ST-506 interface accessible fixed disk descriptions." + ::= { cpqSeFixedDisk 1 } + + cpqSeFixedDiskEntry OBJECT-TYPE + SYNTAX CpqSeFixedDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A fixed disk description." + INDEX { cpqSeFixedDiskIndex } + ::= { cpqSeFixedDiskTable 1 } + + CpqSeFixedDiskEntry ::= SEQUENCE { + cpqSeFixedDiskIndex INTEGER, + cpqSeFixedDiskType INTEGER, + cpqSeFixedDiskCyls INTEGER, + cpqSeFixedDiskHeads INTEGER, + cpqSeFixedDiskSectors INTEGER, + cpqSeFixedDiskCapacity INTEGER, + cpqSeFixedDiskHwLocation DisplayString + } + + cpqSeFixedDiskIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry. Each possible + index value indicates a specific drive as shown in the table + below: + + fixedDiskIndex IDE/ESDI Controller Drive Unit + ============= =================== ========== + 0 Primary 1 + 1 Primary 2 + 2 Secondary 1 + 3 Secondary 2 + + Any other index value would be implementation specific." + ::= { cpqSeFixedDiskEntry 1 } + + cpqSeFixedDiskType OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The drive type." + ::= { cpqSeFixedDiskEntry 2 } + + cpqSeFixedDiskCyls OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of cylinders on the drive." + ::= { cpqSeFixedDiskEntry 3 } + + cpqSeFixedDiskHeads OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of heads on the drive." + ::= { cpqSeFixedDiskEntry 4 } + + cpqSeFixedDiskSectors OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of sectors per track on the drive." + ::= { cpqSeFixedDiskEntry 5 } + + cpqSeFixedDiskCapacity OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The capacity of the drive in megabytes." + ::= { cpqSeFixedDiskEntry 6 } + + cpqSeFixedDiskHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the fixed disk. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeFixedDiskEntry 7 } + +-- **************************************************************************** +-- Standard Equipment PCI Group +-- ============================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSePci Group (1.3.6.1.4.1.232.1.2.13) +-- +-- +-- The PCI group provides a set of tables and variables that detail the +-- configuration information about the PCI bus architecture. The +-- Peripheral Component Interconnect (PCI) local bus is a 32 or 64-bit +-- high performance bus intended to be used to interconnect highly +-- integrated peripheral controller components, peripheral add-in boards, +-- and processor/memory sub-systems. +-- +-- Implementation of the cpqSePci group is optional. +-- Support for the cpqSePci group is MANDATORY for all systems that +-- contain a PCI bus. +-- **************************************************************************** + + + +-- **************************************************************************** +-- Standard Equipment PCI Slot Table +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSePci Group (1.3.6.1.4.1.232.1.2.13) +-- cpqSePciSlotTable (1.3.6.1.4.1.232.1.2.13.1) +-- +-- **************************************************************************** + + cpqSePciSlotTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSePciSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of PCI slot information entries." + ::= { cpqSePci 1} + + cpqSePciSlotEntry OBJECT-TYPE + SYNTAX CpqSePciSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a PCI slot." + INDEX { cpqSePciSlotBusNumberIndex , cpqSePciSlotDeviceNumberIndex} + ::= { cpqSePciSlotTable 1 } + + CpqSePciSlotEntry ::= SEQUENCE { + cpqSePciSlotBusNumberIndex INTEGER, + cpqSePciSlotDeviceNumberIndex INTEGER, + cpqSePciPhysSlot INTEGER, + cpqSePciSlotSubSystemID OCTET STRING, + cpqSePciSlotBoardName DisplayString, + cpqSePciSlotWidth INTEGER, + cpqSePciSlotSpeed INTEGER, + cpqSePciSlotExtendedInfo INTEGER, + cpqSePciSlotType INTEGER, + cpqSePciSlotCurrentMode INTEGER, + cpqSePciMaxSlotSpeed INTEGER, + cpqSePciXMaxSlotSpeed INTEGER, + cpqSePciCurrentSlotSpeed INTEGER, + cpqSePciHwLocation DisplayString, + cpqSePciSlotIOCTablePtr INTEGER, + cpqSePciSlotHeaderType INTEGER, + cpqSePciIsSlot0Embedded INTEGER, + cpqSePcieSlotMaxLinkSpeed INTEGER, + cpqSePcieSlotMaxLinkWidth INTEGER + } + + cpqSePciSlotBusNumberIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely identifies this device on its PCI bus. + Values greater than 255 are considered dummy bus numbers for empty PCI slots. + For systems supporting multiple PCI segments, the segment number will be encoded into the middle + word of this value (Bit8 to Bit23). If PCI segment is not supported, Bit8 to Bit23 will be 0." + ::= { cpqSePciSlotEntry 1 } + + cpqSePciSlotDeviceNumberIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number that uniquely identifies this device on its PCI bus." + ::= { cpqSePciSlotEntry 2 } + + cpqSePciPhysSlot OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The physical PCI slot number of this device. Embedded devices + will return 0 for this variable." + ::= { cpqSePciSlotEntry 3 } + + cpqSePciSlotSubSystemID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Uniquely identifies the board configured in this slot. A zero + length ID indicates the Subsystem ID is not supported and the + (Device ID/Vendor ID) should be used for identification purposes. + An ID of all 0xFFh indicates an empty slot." + ::= { cpqSePciSlotEntry 4 } + + cpqSePciSlotBoardName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product name (or other suitable description) of this PCI + board. This field may be empty if no descriptive information + is known about the board." + ::= { cpqSePciSlotEntry 5 } + + cpqSePciSlotWidth OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + thirtyTwoBit(3), + sixtyFourBit(4), + oneTwentyEightBit(5), + x1(6), + x2(7), + x4(8), + x8(9), + x12(10), + x16(11), + x32(12) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum data width supported by this PCI slot." + ::= { cpqSePciSlotEntry 6 } + + cpqSePciSlotSpeed OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + thirtyThreeMHz(3), + sixtySixMHz(4) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The maximum speed supported by this PCI slot." + ::= { cpqSePciSlotEntry 7 } + + cpqSePciSlotExtendedInfo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The PCI Extended Slot Information. + + This is a set of flags indicating extended features for the + PCI slot. Each bit has the following meaning when it is + set (1): + + Bit 0: Extended SCSI PCI Slot + Bit 1: PCI-X capable + Bits 2-31: reserved (set to 0) + + NOTE: bit 31 is the most significant bit, bit 0 is the least + significant." + ::= { cpqSePciSlotEntry 8 } + + cpqSePciSlotType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + pci(3), + pci66(4), + pcix(5), + pciexpress(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of PCI the slot. + + This indicates the capability of the slot, not the currently + operating mode." + ::= { cpqSePciSlotEntry 9 } + + cpqSePciSlotCurrentMode OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + pci(3), + pci66(4), + pcix(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operating mode of PCI/PCI-X slot. + + This indicates the current operating mode of the device in the + slot. If the slot is empty, this value would be unknown." + ::= { cpqSePciSlotEntry 10 } + + cpqSePciMaxSlotSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum speed in megahertz supported by this PCI slot. If + the slot also supports PCI-X, this value indicates the maximum + speed of the slot when a non-PCI-X adapter is used. + + An entry of 0 indicates the speed is unknown." + ::= { cpqSePciSlotEntry 11 } + + cpqSePciXMaxSlotSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum speed in megahertz supported by this PCI-X slot. + + An entry of 0 indicates the speed is unknown. An entry + of -1 indicates the slot does not support PCI-X." + ::= { cpqSePciSlotEntry 12 } + + cpqSePciCurrentSlotSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current speed in megahertz of the adapter in this PCI + or PCI-X slot. + + An entry of 0 indicates the speed is could not be determined or + the slot is empty." + ::= { cpqSePciSlotEntry 13 } + + cpqSePciHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the Peripheral Component + Interconnect (PCI) bus. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSePciSlotEntry 14 } + + cpqSePciSlotIOCTablePtr OBJECT-TYPE + SYNTAX INTEGER(0..19) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for the I/O Chassis in cpqSePCISlotIOCTablePtr where this PCI slot is physically located." + ::= { cpqSePciSlotEntry 15 } + + cpqSePciSlotHeaderType OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This represents header type byte of a PCI device" + ::= { cpqSePciSlotEntry 16 } + + cpqSePciIsSlot0Embedded OBJECT-TYPE + SYNTAX INTEGER { + true(1), + false(2) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "This OID indicates whether PCI slot 0 is embedded in the machine or not." + ::= { cpqSePciSlotEntry 17 } + + cpqSePcieSlotMaxLinkSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the maximum link speed for the PCIe slot. An entry of 0 indicates + the maximum link speed could not be determined or the slot is not PCIe. + The unit is Mb/s." + ::= { cpqSePciSlotEntry 18 } + + cpqSePcieSlotMaxLinkWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the maximum link for the PCIe slot. Value N means N lanes. + An entry of 0 indicates the maximum link width could not be determined + or the slot is not PCIe." + ::= { cpqSePciSlotEntry 19 } + +-- **************************************************************************** +-- Standard Equipment PCI Function Table +-- ===================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSePci Group (1.3.6.1.4.1.232.1.2.13) +-- cpqSePciFunctTable (1.3.6.1.4.1.232.1.2.13.2) +-- +-- **************************************************************************** + + cpqSePciFunctTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSePciFunctEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of PCI function information entries." + ::= { cpqSePci 2} + + cpqSePciFunctEntry OBJECT-TYPE + SYNTAX CpqSePciFunctEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of the functions in each PCI slot." + INDEX { cpqSePciFunctBusNumberIndex, cpqSePciFunctDeviceNumberIndex, + cpqSePciFunctIndex } + ::= { cpqSePciFunctTable 1 } + + CpqSePciFunctEntry ::= SEQUENCE { + cpqSePciFunctBusNumberIndex INTEGER, + cpqSePciFunctDeviceNumberIndex INTEGER, + cpqSePciFunctIndex INTEGER, + cpqSePciFunctClassCode OCTET STRING, + cpqSePciFunctClassDescription DisplayString, + cpqSePciFunctDeviceID INTEGER, + cpqSePciFunctVendorID INTEGER, + cpqSePciFunctRevID INTEGER, + cpqSePciFunctIntLine INTEGER, + cpqSePciFunctDevStatus INTEGER, + cpqSePciFunctHwLocation DisplayString, + cpqSePcieFunctNegotiatedLinkSpeed INTEGER, + cpqSePcieFunctNegotiatedLinkWidth INTEGER, + cpqSePcieFunctMaxLinkSpeed INTEGER, + cpqSePcieFunctMaxLinkWidth INTEGER + } + + cpqSePciFunctBusNumberIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The PCI bus number for this device function. + For systems supporting multiple PCI segments, the segment number will be encoded into the middle + word of this value (Bit8 to Bit23). If PCI segment is not supported, Bit8 to Bit23 will be 0." + ::= { cpqSePciFunctEntry 1 } + + cpqSePciFunctDeviceNumberIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The device index for this function." + ::= { cpqSePciFunctEntry 2 } + + cpqSePciFunctIndex OBJECT-TYPE + SYNTAX INTEGER (0..7) + ACCESS read-only + STATUS mandatory + DESCRIPTION + " The unique index that specifies this function." + ::= { cpqSePciFunctEntry 3 } + + + cpqSePciFunctClassCode OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..3)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The class code register as defined in the PCI Local + Bus Specification in the following format: + Octet Register + ----- -------- + 1 Programming Interface + 2 Sub-class code + 3 Base class code" + ::= { cpqSePciFunctEntry 4 } + + cpqSePciFunctClassDescription OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A text string which describes the PCI Base Class and + Sub Class to which this device belongs. This field + may empty if no descriptive information is known about + this function's class." + ::= { cpqSePciFunctEntry 5 } + + cpqSePciFunctDeviceID OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable identifies this particular device. This + identifier is allocated by the component manufacturer." + ::= { cpqSePciFunctEntry 6 } + + cpqSePciFunctVendorID OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable identifies the component manufacturer. Valid + identifiers are assigned by the PCI SIG." + ::= { cpqSePciFunctEntry 7 } + + cpqSePciFunctRevID OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable is a vendor defined extension to the device ID and + specifies a device specific revision identifier." + ::= { cpqSePciFunctEntry 8} + + cpqSePciFunctIntLine OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable specifies which input of the system interrupt + controller(s) the device's interrupt pin is connected to. + A value of 0ffh means unknown or no connection." + ::= { cpqSePciFunctEntry 9} + + cpqSePciFunctDevStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + enabled(2), + disabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the device described by this function. + Some PCI devices, such as embedded devices, have the + potential of being present but disabled. " + ::= { cpqSePciFunctEntry 10 } + + cpqSePciFunctHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the Peripheral Component + Interconnect (PCI) bus. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSePciFunctEntry 11 } + + cpqSePcieFunctNegotiatedLinkSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the negotiated link speed for the PCIe link of the PCI device. + An entry of 0 indicates the negotiated link speed could not be determined + or the device is not PCIe. The unit is Mb/s." + ::= { cpqSePciFunctEntry 12 } + + cpqSePcieFunctNegotiatedLinkWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the negotiated link width for the PCIe link of the device. + Value N means N lanes. An entry of 0 indicates the negotiated link width + could not be determined or the device is not PCIe." + ::= { cpqSePciFunctEntry 13 } + + cpqSePcieFunctMaxLinkSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the maximum link speed for the PCIe device. An entry of 0 indicates + the maximum link speed could not be determined or the device is not PCIe. + The unit is Mb/s." + ::= { cpqSePciFunctEntry 14 } + + cpqSePcieFunctMaxLinkWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the maximum link width for the PCIe device. Value N means N lanes. + An entry of 0 indicates the maximum link width could not be determined + or the device is not PCIe." + ::= { cpqSePciFunctEntry 15 } + +-- **************************************************************************** +-- Standard Equipment PCI Base Memory Table +-- ============================================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSePci Group (1.3.6.1.4.1.232.1.2.13) +-- cpqSePciMemoryTable (1.3.6.1.4.1.232.1.2.13.3) +-- +-- **************************************************************************** + cpqSePciMemoryTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSePciMemoryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of PCI base memory entries" + ::= { cpqSePci 3} + + cpqSePciMemoryEntry OBJECT-TYPE + SYNTAX CpqSePciMemoryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of the base memory usage in each function" + INDEX { cpqSePciMemoryBusNumberIndex, cpqSePciMemoryDeviceNumberIndex, + cpqSePciMemoryFunctionIndex, cpqSePciMemoryIndex } + ::= { cpqSePciMemoryTable 1 } + + CpqSePciMemoryEntry ::= SEQUENCE { + cpqSePciMemoryBusNumberIndex INTEGER, + cpqSePciMemoryDeviceNumberIndex INTEGER, + cpqSePciMemoryFunctionIndex INTEGER, + cpqSePciMemoryIndex INTEGER, + cpqSePciMemoryBaseAddr INTEGER, + cpqSePciMemoryType INTEGER, + cpqSePciMemorySize INTEGER, + cpqSePciMemoryHwLocation DisplayString + } + + cpqSePciMemoryBusNumberIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The PCI bus number for this memory entry. + For systems supporting multiple PCI segments, the segment number will be encoded into the middle + word of this value (Bit8 to Bit23). If PCI segment is not supported, Bit8 to Bit23 will be 0." + ::= { cpqSePciMemoryEntry 1 } + + cpqSePciMemoryDeviceNumberIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The device index for this memory entry" + ::= { cpqSePciMemoryEntry 2 } + + cpqSePciMemoryFunctionIndex OBJECT-TYPE + SYNTAX INTEGER (0..7) + ACCESS read-only + STATUS mandatory + DESCRIPTION + " The unique index that specifies the function associated + with this memory entry." + ::= { cpqSePciMemoryEntry 3 } + + cpqSePciMemoryIndex OBJECT-TYPE + SYNTAX INTEGER (0..6) + ACCESS read-only + STATUS mandatory + DESCRIPTION + " The unique index that specifies this memory entry. " + ::= { cpqSePciMemoryEntry 4 } + + cpqSePciMemoryBaseAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Base address of this memory usage entry." + ::= { cpqSePciMemoryEntry 5 } + + cpqSePciMemoryType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + io(2), + memory-mapped(3), + exp-rom(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of memory this entry describes. This variable + is used to determine if this memory entry maps into + memory, expansion rom or I/O space." + ::= { cpqSePciMemoryEntry 6 } + + cpqSePciMemorySize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable specifies how much address space this function + requires. A value of 0 will be returned if the agent cannot + obtain this information." + ::= { cpqSePciMemoryEntry 7 } + + cpqSePciMemoryHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the Peripheral Component + Interconnect (PCI) bus. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSePciMemoryEntry 8 } + + cpqSePciSegmentMode OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + single-segment(2), + multi-segment(3), + auto-segment(4) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The PCI segment mode of the system, if supported." + ::= { cpqSePci 4 } + +-- **************************************************************************** +-- Standard Equipment PC Card Group +-- ======================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSePCCard Group (1.3.6.1.4.1.232.1.2.14) +-- cpqSePCCardSlotTable (1.3.6.1.4.1.232.1.2.14.1) +-- +-- The PC Card Group provides a set of tables and variables that detail the +-- configuration information about the PC Card slot architecture. The PC +-- Card Slots are connected via a dedicated bridge off the PCI local bus +-- which allows 16-bit and/or 32-bit expansion slots. +-- +-- Implementation of the cpqSePCCard group is optional for desktop and +-- server platforms but mandatory for portables. +-- **************************************************************************** + + cpqSePCCardSlotTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSePCCardSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of PC Card slot information entries." + ::= { cpqSePCCard 1} + + cpqSePCCardSlotEntry OBJECT-TYPE + SYNTAX CpqSePCCardSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A PC Card slot description table entry. + A table entry is defined for each PC Card Slot in the + current system configuration." + INDEX { cpqSePCCardSlotIndex} + ::= { cpqSePCCardSlotTable 1 } + + CpqSePCCardSlotEntry ::= SEQUENCE { + cpqSePCCardSlotIndex INTEGER, + cpqSePCCardCondition INTEGER, + cpqSePCCardPhysLocation DisplayString, + cpqSePCCardSlotType INTEGER, + cpqSePCCardSlotWidth INTEGER, + cpqSePCCardSlotThermalCapacity INTEGER, + cpqSePCCardSlotThermalSensor INTEGER, + cpqSePCCardSlotPowerState INTEGER, + cpqSePCCardStatus INTEGER, + cpqSePCCardDeviceInfo DisplayString, + cpqSePCCardProductInfo DisplayString, + cpqSePCCardSerialNumber DisplayString, + cpqSePCCardAssetTag DisplayString + } + + cpqSePCCardSlotIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the logical PC Card slot number for this PC Card Slot. + In addition, the slot number serves as the index into the + PC Card data table. Typical index ranges will be either 1 to + 4 (for 4 slots) or 1 to 2 (for 2 slots). (Un)Docking may + cause the supported index range to change dynamically." + ::= { cpqSePCCardSlotEntry 1 } + + cpqSePCCardCondition OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the overall condition of the PC Card. + The supported values are defined as follows: + + unknown(1) + The current condition is unknown for the PC Card or PC Card Slot. + + ok(2) + PC Card operations are normal. + No user action required. + + degraded (3) + PC Card operations have degraded. + Consult the cpqSePCCardStatus field for recommended actions. + + failed (4) + PC Card operations have failed. + Consult the cpqSePCCardStatus field for recommended actions." + ::= { cpqSePCCardSlotEntry 2 } + + + cpqSePCCardPhysLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..40)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the user level PC Card Slot location description. + Text strings supported are: + - System Unit Top Slot, + - System Unit Bottom Slot, + - Docking Station Top Slot, + - Docking Station Bottom Slot." + ::= { cpqSePCCardSlotEntry 3 } + + cpqSePCCardSlotType OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the PC Card Slot capabilities. + This is a bit mapped value defined by DMI Mobile Supplement for the System Slots Group, + Slot Type. Bits of interest for PC Card support are: + Bit 6 - PCMCIA slot (if set), + Bit 13 - 16 bit PC Card capable (if set), + Bit 14 - CardBus PC Card capable (if set), + Bit 15 - ZV Port capable (if set), + Bit 16 - Modem Ring Resume capable (if set), + All other bits should be zero (reset) for PC Card slots." + ::= { cpqSePCCardSlotEntry 4 } + + cpqSePCCardSlotWidth OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + width8bit(3), + width16bit(4), + width32bit(5), + width64bit(6), + width128bit(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the maximum bus width for this PC Card Slot. + The supported values are defined as follows: + + Other (1) + Value is not in defined list. + + Unknown (2) + Actual value is not known. + + width 8 bit (3) + Bus is 8 bits wide. + + width 16 bit (4) + Bus is 16 bits wide. + + width 32 bit (5) + Bus is 32 bits wide. + + width 64 bit (6) + Bus is 64 bits wide. + + width 128 bit (7) + Bus is 128 bits wide." + ::= { cpqSePCCardSlotEntry 5 } + + + cpqSePCCardSlotThermalCapacity OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the maximum thermal dissipation capacity (milliwatts) + for this PC Card Slot. A value of zero indicates the thermal + capacity is unknown. A non-zero value indicates the thermal + capacity in milliwatts." + ::= { cpqSePCCardSlotEntry 6 } + + cpqSePCCardSlotThermalSensor OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the Thermal Sensor ID that monitors this PC Card Slot. + A value of zero indicates that a sensor is not present or + unknown for this slot. A non-zero value indicates the sensor + ID as defined by the platform firmware." + ::= { cpqSePCCardSlotEntry 7 } + + cpqSePCCardSlotPowerState OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + on(2), + off(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the current power state (On/Off) for this PC Card Slot. + The supported values are defined as follows: + + unknown (1) + Current power state is unknown. + + on (2) + Power is currently on. + + off (3) + Power is currently off." + ::= { cpqSePCCardSlotEntry 8 } + + cpqSePCCardStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), + thermalDegraded(3), + thermalFailure(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the operating status for the card in this PC Card Slot. + The supported values are defined as follows: + + unknown (1) + The current status is not known for the PC Card or + PC Card Slot. + + ok (2) + PC Card operations are normal. + No user action required. + + thermalDegraded (3) + PC Card operations have degraded due to unsafe thermal + conditions. + Recommended Actions include: + Discontinue the use of the PC Card as soon as + possible. If a Modem or LAN card then close + all communication applications/links. If a + Memory, ATA, or SCSI device then close all + open/related files. Remove PC Card from slot + after use is discontinued, if possible. + + thermalFailure (4) + PC Card operations have failed due to unsafe thermal + conditions. The PC Card will automatically be powered + off to protect itself and the system. + Recommended Actions include: + Discontinue the use of the PC Card immediately. + If a Modem or LAN card then close all communication applications/links. + If a Memory, ATA, or SCSI device then close all open/related files. + Remove PC Card from slot after use is discontinued, if possible." + ::= { cpqSePCCardSlotEntry 9 } + + cpqSePCCardDeviceInfo OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the PC Card Manufacturer / Device information for + the card in this PC Card Slot. The returned string data is + read from the PC Card's onboard Card Information Structure + (CIS)." + ::= { cpqSePCCardSlotEntry 10 } + + cpqSePCCardProductInfo OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the PC Card Model / Part Number information for + the card in this PC Card Slot. The returned string data + is read from the PC Card's onboard Card Information + Structure (CIS)." + ::= { cpqSePCCardSlotEntry 11 } + + cpqSePCCardSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the PC Card Serial Number information for the + card in this PC Card Slot. The returned string data is + read from the PC Card's onboard Card Information Structure + (CIS)." + ::= { cpqSePCCardSlotEntry 12 } + + cpqSePCCardAssetTag OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..80)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Defines the PC Card Asset Tag information for the card in + this PC Card Slot. The returned string data is read from + the PC Card's onboard Card Information Structure (CIS)." + ::= { cpqSePCCardSlotEntry 13 } + +-- **************************************************************************** +-- Standard Equipment USB Port Table +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeUSBPort Group (1.3.6.1.4.1.232.1.2.15) +-- cpqSeUSBPortTable (1.3.6.1.4.1.232.1.2.15.1) +-- +-- The cpqSeUSBPort group lists the physical USB ports in the system. +-- +-- Implementation of the cpqSeUSBPort group is optional. +-- Support for the cpqSeUSBPort group is MANDATORY for all systems that +-- contain a USB bus. +-- +-- **************************************************************************** + + cpqSeUSBPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeUSBPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of USB built-in port descriptions containing one entry + for each physical USB connector shipped on the system. + Add-in USB ports are not reflected in this table." + ::= { cpqSeUSBPort 1 } + + cpqSeUSBPortEntry OBJECT-TYPE + SYNTAX CpqSeUSBPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A description of a USB port." + INDEX { cpqSeUSBPortIndex } + ::= { cpqSeUSBPortTable 1 } + + CpqSeUSBPortEntry ::= SEQUENCE { + cpqSeUSBPortIndex INTEGER, + cpqSeUSBPortType INTEGER, + cpqSeUSBPortHwLocation DisplayString + } + + cpqSeUSBPortIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely specifies this entry." + ::= { cpqSeUSBPortEntry 1 } + + + cpqSeUSBPortType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + usbPort(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port type. + The supported values are defined as follows: + + other (1) + USB port data is not available. + + usbPort (2) + The port is a USB Port." + ::= { cpqSeUSBPortEntry 2 } + + cpqSeUSBPortHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "A text description of the hardware location, on complex + multi SBB hardware only, for the USB port. + A NULL string indicates that the hardware location could not + be determined or is irrelevant." + ::= { cpqSeUSBPortEntry 3 } + +-- **************************************************************************** +-- Standard Equipment Cell Table +-- ============================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeCell (1.3.6.1.4.1.232.1.2.16) +-- +-- A cell is equivalent to a single board computer. +-- +-- +-- **************************************************************************** + + cpqSeCellTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeCellEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A list of cells in the partition." + ::= { cpqSeCell 1 } + + cpqSeCellEntry OBJECT-TYPE + SYNTAX CpqSeCellEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A description of a cell in the system." + INDEX { cpqSeCellUnitIndex } + ::= { cpqSeCellTable 1 } + + CpqSeCellEntry ::= SEQUENCE { + cpqSeCellUnitIndex INTEGER, + cpqSeCellCabinetNumber INTEGER, + cpqSeCellCellNumber INTEGER, + cpqSeCellIOCTablePtr INTEGER, + cpqSeCellPDHCFirmwareRevision DisplayString, + cpqSeCellSysFwVersion DisplayString, + cpqSeCellBootInhibited TruthValue, + cpqSeCellToScanBusConnectionStatus INTEGER, + cpqSeCellHasCoreIO TruthValue, + cpqSeCellBoardSpeed INTEGER, + cpqSeCellPresent TruthValue, + cpqSeCellHasPower TruthValue, + cpqSeCellReadyForReconfig TruthValue, + cpqSeCellTotalMemory INTEGER, + cpqSeCellLEDState INTEGER, + cpqSeCellState INTEGER, + cpqSeCellCLMRequestPercentage INTEGER, + cpqSeCellCLMRequestSize INTEGER, + cpqSeCellCLMAllocatedSize INTEGER, + cpqSeCellInterleaveAllocatedSize INTEGER, + cpqSeCellHasInterleaveMem INTEGER, + cpqSeCellSerialNumber DisplayString, + cpqSeCellCLMCondition INTEGER + } + + cpqSeCellUnitIndex OBJECT-TYPE + SYNTAX INTEGER (0..15) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is a number that uniquely specifies the cell." + ::= { cpqSeCellEntry 1 } + + cpqSeCellCabinetNumber OBJECT-TYPE + SYNTAX INTEGER (0..1) + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents the cabinet that the cell belongs to." + ::= { cpqSeCellEntry 2 } + + cpqSeCellCellNumber OBJECT-TYPE + SYNTAX INTEGER (0..7) + ACCESS read-only + STATUS optional + DESCRIPTION + "This value is cell/slot number that is unique across the cabinet." + ::= { cpqSeCellEntry 3 } + + cpqSeCellIOCTablePtr OBJECT-TYPE + SYNTAX INTEGER (0..19) + ACCESS read-only + STATUS optional + DESCRIPTION + "Table index for the I/O chassis which is connected to this cell." + ::= { cpqSeCellEntry 4 } + + cpqSeCellPDHCFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "HP SAL Revision" + ::= { cpqSeCellEntry 5 } + + cpqSeCellSysFwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the revision of system firmware on the cell board" + ::= { cpqSeCellEntry 6 } + + cpqSeCellBootInhibited OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS optional + DESCRIPTION + "This value indicates whether the cell is active." + ::= { cpqSeCellEntry 7 } + + cpqSeCellToScanBusConnectionStatus OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This bitmap represents the state of cell to scan + bus connection/RIO cable state. + + if bit 6 is set to 1, Cable port swapped. + if bit 5 is set to 1, Cable ID mismatched. + if bit 4 is set to 1, Output Cable parity error. + if bit 3 is set to 1, Output Cable detached. + if bit 2 is set to 1, Input Cable parity error. + if bit 1 is set to 1, Input Cable detached. + if bit 0 is set to 1, Connection valid." + ::= { cpqSeCellEntry 8 } + + cpqSeCellHasCoreIO OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS optional + DESCRIPTION + "This value indicates whether the cell has core I/O attached to it." + ::= { cpqSeCellEntry 9 } + + cpqSeCellBoardSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents the speed of the cell board/FSB ratio" + ::= { cpqSeCellEntry 10 } + + cpqSeCellPresent OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents whether there is a cell in the slot" + ::= { cpqSeCellEntry 11 } + + cpqSeCellHasPower OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents whether the cell has power" + ::= { cpqSeCellEntry 12 } + + cpqSeCellReadyForReconfig OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents whether the cell is ready for reconfiguration" + ::= { cpqSeCellEntry 13 } + + cpqSeCellTotalMemory OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents total memory in the cell" + ::= { cpqSeCellEntry 14 } + + cpqSeCellLEDState OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS optional + DESCRIPTION + "This value represents state of the cell LED. + This is a bit-mapped value defined as follows. + Bit 31..30 = 00, LED 3 is Off + = 01, LED 3 is On + = 10, LED 3 is Blinking + = 11, For LED 3 future use + + Bit 29..27 = 000, LED 3 is Red + = 001, LED 3 is Yellow + = 010, LED 3 is Green + = 011, LED 3 is Blue + = 100, For LED 3 future use + = 101, For LED 3 future use + = 110, For LED 3 future use + = 111, For LED 3 future use + + Bit 26..24 = 000, LED 3 indicates Power + = 001, LED 3 indicates Run + = 010, LED 3 indicates Attention + = 011, LED 3 indicates Fault + = 100, For LED 3 future use + = 101, For LED 3 future use + = 110, For LED 3 future use + = 111, For LED 3 future use + + Bit 23..22 = 00, LED 2 is Off + = 01, LED 2 is On + = 10, LED 2 is Blinking + = 11, For LED 2 future use + + Bit 21..19 = 000, LED 2 is Red + = 001, LED 2 is Yellow + = 010, LED 2 is Green + = 011, LED 2 is Blue + = 100, For LED 2 future use + = 101, For LED 2 future use + = 110, For LED 2 future use + = 111, For LED 2 future use + + Bit 18..16 = 000, LED 2 indicates Power + = 001, LED 2 indicates Run + = 010, LED 2 indicates Attention + = 011, LED 2 indicates Fault + = 100, For LED 2 future use + = 101, For LED 2 future use + = 110, For LED 2 future use + = 111, For LED 2 future use + + Bit 15..14 = 00, LED 1 is Off + = 01, LED 1 is On + = 10, LED 1 is Blinking + = 11, For LED 1 future use + + Bit 13..11 = 000, LED 1 is Red + = 001, LED 1 is Yellow + = 010, LED 1 is Green + = 011, LED 1 is Blue + = 100, For LED 1 future use + = 101, For LED 1 future use + = 110, For LED 1 future use + = 111, For LED 1 future use + + Bit 10..8 = 000, LED 1 indicates Power + = 001, LED 1 indicates Run + = 010, LED 1 indicates Attention + = 011, LED 1 indicates Fault + = 100, For LED 1 future use + = 101, For LED 1 future use + = 110, For LED 1 future use + = 111, For LED 1 future use + + Bit 7..6 = 00, LED 0 is Off + = 01, LED 0 is On + = 10, LED 0 is Blinking + = 11, For LED 0 future use + + Bit 5..3 = 000, LED 0 is Red + = 001, LED 0 is Yellow + = 010, LED 0 is Green + = 011, LED 0 is Blue + = 100, For LED 0 future use + = 101, For LED 0 future use + = 110, For LED 0 future use + = 111, For LED 0 future use + + Bit 2..0 = 000, LED 0 indicates Power + = 001, LED 0 indicates Run + = 010, LED 0 indicates Attention + = 011, LED 0 indicates Fault + = 100, For LED 0 future use + = 101, For LED 0 future use + = 110, For LED 0 future use + = 111, For LED 0 future use " + ::= { cpqSeCellEntry 15 } + + cpqSeCellState OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS optional + DESCRIPTION + "This value represents state of the cell" + ::= { cpqSeCellEntry 16 } + + cpqSeCellCLMRequestPercentage OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The requested percentage of CLM memory to be configured in the cell." + ::= { cpqSeCellEntry 17 } + + cpqSeCellCLMRequestSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The size of requested CLM memory in the cell in kilobytes." + ::= { cpqSeCellEntry 18 } + + cpqSeCellCLMAllocatedSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The size of allocated CLM memory in the cell in kilobytes." + ::= { cpqSeCellEntry 19 } + + cpqSeCellInterleaveAllocatedSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The size of allocated interleaved memory in the cell + in kilobytes." + ::= { cpqSeCellEntry 20 } + + cpqSeCellHasInterleaveMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "When set indicates that there is an interleaved memory + configured in the cell." + ::= { cpqSeCellEntry 21 } + + cpqSeCellSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the cell board serial number." + ::= { cpqSeCellEntry 22 } + + cpqSeCellCLMCondition OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The CLM (Cell Local Memory) settings condition of this cell." + ::= { cpqSeCellEntry 23 } + + +-- **************************************************************************** +-- Standard Equipment I/O Chassis Table +-- ================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeIOCTable (1.3.6.1.4.1.232.1.2.17) +-- +-- An I/O chassis contains PCI devices on the system +-- +-- +-- **************************************************************************** + + cpqSeIOCTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeIOCEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A list of I/O chassis in the partition." + ::= { cpqSeIOC 1 } + + cpqSeIOCEntry OBJECT-TYPE + SYNTAX CpqSeIOCEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A description of an I/O chassis in the system." + INDEX { cpqSeIOCUnitIndex } + ::= { cpqSeIOCTable 1 } + + CpqSeIOCEntry ::= SEQUENCE { + cpqSeIOCUnitIndex INTEGER, + cpqSeIOCCabinetNumber INTEGER, + cpqSeIOCBayNumber INTEGER, + cpqSeIOCIOCNumber INTEGER, + cpqSeIOCPowerState INTEGER, + cpqSeIOCLEDState INTEGER + } + + cpqSeIOCUnitIndex OBJECT-TYPE + SYNTAX INTEGER (0..19) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is a number that uniquely specifies the I/O chassis." + ::= { cpqSeIOCEntry 1 } + + cpqSeIOCCabinetNumber OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents the cabinet that the I/O chassis belongs to. + The default value is 255 if the cabinet number can not be obtained." + ::= { cpqSeIOCEntry 2 } + + cpqSeIOCBayNumber OBJECT-TYPE + SYNTAX INTEGER (0..2) + ACCESS read-only + STATUS optional + DESCRIPTION + "This value indicates the bay in the cabinet where the I/O chassis resides." + ::= { cpqSeIOCEntry 3 } + + cpqSeIOCIOCNumber OBJECT-TYPE + SYNTAX INTEGER (0..1) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the I/O chassis number that is unique across the bay." + ::= { cpqSeIOCEntry 4 } + + cpqSeIOCPowerState OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + powered-off(2), + powered-on(3) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "This value indicates I/O chassis power state." + ::= { cpqSeIOCEntry 5 } + + cpqSeIOCLEDState OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS optional + DESCRIPTION + "This value represents the state of a IO Chassis LED. + This is a bit-mapped value defined as follows. + Bit 31..30 = 00, LED 3 is Off + = 01, LED 3 is On + = 10, LED 3 is Blinking + = 11, For LED 3 future use + + Bit 29..27 = 000, LED 3 is Red + = 001, LED 3 is Yellow + = 010, LED 3 is Green + = 011, LED 3 is Blue + = 100, For LED 3 future use + = 101, For LED 3 future use + = 110, For LED 3 future use + = 111, For LED 3 future use + + Bit 26..24 = 000, LED 3 indicates Power + = 001, LED 3 indicates Run + = 010, LED 3 indicates Attention + = 011, LED 3 indicates Fault + = 100, For LED 3 future use + = 101, For LED 3 future use + = 110, For LED 3 future use + = 111, For LED 3 future use + + Bit 23..22 = 00, LED 2 is Off + = 01, LED 2 is On + = 10, LED 2 is Blinking + = 11, For LED 2 future use + + Bit 21..19 = 000, LED 2 is Red + = 001, LED 2 is Yellow + = 010, LED 2 is Green + = 011, LED 2 is Blue + = 100, For LED 2 future use + = 101, For LED 2 future use + = 110, For LED 2 future use + = 111, For LED 2 future use + + Bit 18..16 = 000, LED 2 indicates Power + = 001, LED 2 indicates Run + = 010, LED 2 indicates Attention + = 011, LED 2 indicates Fault + = 100, For LED 2 future use + = 101, For LED 2 future use + = 110, For LED 2 future use + = 111, For LED 2 future use + + Bit 15..14 = 00, LED 1 is Off + = 01, LED 1 is On + = 10, LED 1 is Blinking + = 11, For LED 1 future use + + Bit 13..11 = 000, LED 1 is Red + = 001, LED 1 is Yellow + = 010, LED 1 is Green + = 011, LED 1 is Blue + = 100, For LED 1 future use + = 101, For LED 1 future use + = 110, For LED 1 future use + = 111, For LED 1 future use + + Bit 10..8 = 000, LED 1 indicates Power + = 001, LED 1 indicates Run + = 010, LED 1 indicates Attention + = 011, LED 1 indicates Fault + = 100, For LED 1 future use + = 101, For LED 1 future use + = 110, For LED 1 future use + = 111, For LED 1 future use + + Bit 7..6 = 00, LED 0 is Off + = 01, LED 0 is On + = 10, LED 0 is Blinking + = 11, For LED 0 future use + + Bit 5..3 = 000, LED 0 is Red + = 001, LED 0 is Yellow + = 010, LED 0 is Green + = 011, LED 0 is Blue + = 100, For LED 0 future use + = 101, For LED 0 future use + = 110, For LED 0 future use + = 111, For LED 0 future use + + Bit 2..0 = 000, LED 0 indicates Power + = 001, LED 0 indicates Run + = 010, LED 0 indicates Attention + = 011, LED 0 indicates Fault + = 100, For LED 0 future use + = 101, For LED 0 future use + = 110, For LED 0 future use + = 111, For LED 0 future use " + ::= { cpqSeIOCEntry 6 } + +-- **************************************************************************** +-- Standard Equipment Partition Structure +-- ====================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSePartition (1.3.6.1.4.1.232.1.2.18) +-- +-- A partition can have many cells spread across cabinets. +-- +-- +-- **************************************************************************** + + cpqSePartitionTotalCPU OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the number of logical CPUs in the partition. Zero will be returned + if the value can not be determined." + ::= { cpqSePartition 1 } + + cpqSePartitionAvailableCellSlots OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the number of available cell slots in the partition. + Zero will be returned if the value can not be determined." + ::= { cpqSePartition 2 } + + cpqSePartitionInstalledCells OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the number of installed cells in the partition. Zero + will be returned if the value can not be determined." + ::= { cpqSePartition 3 } + + cpqSePartitionPoweredOnCells OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This denotes the number of powered on cells in the partition. + Zero will be returned if the value can not be determined." + ::= { cpqSePartition 4 } + + cpqSePartitionReadyForReconfigCells OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This represents the cells that are ready for reconfiguration. + Zero will be returned if the value can not be determined." + ::= { cpqSePartition 5 } + + cpqSePartitionMemInterleavingType OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This represents memory interleaving type for the partition. + Zero will be returned if the value can not be determined." + ::= { cpqSePartition 6} + + cpqSePartitionName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This represents the partition name." + ::= { cpqSePartition 7} + + cpqSePartitionCoreCell OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The cell slot number of the partition's core cell." + ::= { cpqSePartition 8} + + cpqSePartitionCoreCellCabinet OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The cabinet number of the partition's core cell." + ::= { cpqSePartition 9} + + cpqSePartitionCLMRequestPercentage OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The requested percentage of CLM memory to be configured in the + partition." + ::= { cpqSePartition 10} + + cpqSePartitionCLMRequestSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The size of requested CLM memory in the partition in kilobytes." + ::= { cpqSePartition 11} + + cpqSePartitionCLMAllocatedSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The size of allocated CLM memory in the partition in + kilobytes." + ::= { cpqSePartition 12} + + cpqSePartitionInterleaveAllocatedSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The size of allocated interleaved memory in the partition + in kilobytes." + ::= { cpqSePartition 13} + + cpqSePartitionHasInterleaveMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "When set, it indicates that there is an interleaved memory + configured in the partition." + ::= { cpqSePartition 14} + + cpqSePartitionNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This represents the logical partition number of the current + partition in the complex." + ::= { cpqSePartition 15} + +-- **************************************************************************** +-- Standard Equipment Cabinet Table +-- ============================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeCabinetTable (1.3.6.1.4.1.232.1.2.19) +-- +-- A cabinet contains many cells and/or I/O chassis +-- +-- +-- **************************************************************************** + + cpqSeCabinetTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeCabinetEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A list of cabinets that contain cells in the partition." + ::= { cpqSeCabinet 1 } + + cpqSeCabinetEntry OBJECT-TYPE + SYNTAX CpqSeCabinetEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A description of a cabinet in the system." + INDEX { cpqSeCabinetUnitIndex } + ::= { cpqSeCabinetTable 1 } + + CpqSeCabinetEntry ::= SEQUENCE { + cpqSeCabinetUnitIndex INTEGER, + cpqSeCabinetCPULED TruthValue, + cpqSeCabinetIOXLED TruthValue, + cpqSeCabinetTypeNum INTEGER, + cpqSeCabinetLED INTEGER + } + + cpqSeCabinetUnitIndex OBJECT-TYPE + SYNTAX INTEGER (0..3) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is a number that uniquely specifies the cabinet." + ::= { cpqSeCabinetEntry 1 } + + cpqSeCabinetCPULED OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents the on/off state of compute cabinet LED." + ::= { cpqSeCabinetEntry 2 } + + cpqSeCabinetIOXLED OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents the on/off state of IOX cabinet LED." + ::= { cpqSeCabinetEntry 3 } + + cpqSeCabinetTypeNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This value represents type and number of a compute or IOX cabinet. + Bit 31..16 = 0x0000, type of cabinet is Thin Boy + Bit 31..16 = 0x0001, type of cabinet is Fat Boy + Bit 31..16 = 0x0002, type of cabinet is Dome Lite + Bit 31..16 = 0x0003, type of cabinet is Key Stone + Bit 31..16 = 0x0004, type of cabinet is Matter Horn + Bit 31..16 = 0x0080, type of cabinet is IOX + Bit 15..0, represents the compute cabinet number." + ::= { cpqSeCabinetEntry 4 } + + cpqSeCabinetLED OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS optional + DESCRIPTION + "This value represents the state of a cabinet LED. + This is a bit-mapped value defined as follows. + Bit 31..30 = 00, LED 3 is Off + = 01, LED 3 is On + = 10, LED 3 is Blinking + = 11, For LED 3 future use + + Bit 29..27 = 000, LED 3 is Red + = 001, LED 3 is Yellow + = 010, LED 3 is Green + = 011, LED 3 is Blue + = 100, For LED 3 future use + = 101, For LED 3 future use + = 110, For LED 3 future use + = 111, For LED 3 future use + + Bit 26..24 = 000, LED 3 indicates Power + = 001, LED 3 indicates Run + = 010, LED 3 indicates Attention + = 011, LED 3 indicates Fault + = 100, For LED 3 future use + = 101, For LED 3 future use + = 110, For LED 3 future use + = 111, For LED 3 future use + + Bit 23..22 = 00, LED 2 is Off + = 01, LED 2 is On + = 10, LED 2 is Blinking + = 11, For LED 2 future use + + Bit 21..19 = 000, LED 2 is Red + = 001, LED 2 is Yellow + = 010, LED 2 is Green + = 011, LED 2 is Blue + = 100, For LED 2 future use + = 101, For LED 2 future use + = 110, For LED 2 future use + = 111, For LED 2 future use + + Bit 18..16 = 000, LED 2 indicates Power + = 001, LED 2 indicates Run + = 010, LED 2 indicates Attention + = 011, LED 2 indicates Fault + = 100, For LED 2 future use + = 101, For LED 2 future use + = 110, For LED 2 future use + = 111, For LED 2 future use + + Bit 15..14 = 00, LED 1 is Off + = 01, LED 1 is On + = 10, LED 1 is Blinking + = 11, For LED 1 future use + + Bit 13..11 = 000, LED 1 is Red + = 001, LED 1 is Yellow + = 010, LED 1 is Green + = 011, LED 1 is Blue + = 100, For LED 1 future use + = 101, For LED 1 future use + = 110, For LED 1 future use + = 111, For LED 1 future use + + Bit 10..8 = 000, LED 1 indicates Power + = 001, LED 1 indicates Run + = 010, LED 1 indicates Attention + = 011, LED 1 indicates Fault + = 100, For LED 1 future use + = 101, For LED 1 future use + = 110, For LED 1 future use + = 111, For LED 1 future use + + Bit 7..6 = 00, LED 0 is Off + = 01, LED 0 is On + = 10, LED 0 is Blinking + = 11, For LED 0 future use + + Bit 5..3 = 000, LED 0 is Red + = 001, LED 0 is Yellow + = 010, LED 0 is Green + = 011, LED 0 is Blue + = 100, For LED 0 future use + = 101, For LED 0 future use + = 110, For LED 0 future use + = 111, For LED 0 future use + + Bit 2..0 = 000, LED 0 indicates Power + = 001, LED 0 indicates Run + = 010, LED 0 indicates Attention + = 011, LED 0 indicates Fault + = 100, For LED 0 future use + = 101, For LED 0 future use + = 110, For LED 0 future use + = 111, For LED 0 future use " + ::= { cpqSeCabinetEntry 5 } + +-- **************************************************************************** +-- Standard Equipment Complex Structure +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeComplex (1.3.6.1.4.1.232.1.2.20) +-- cpqSeComplexCellSlotStatusTable (1.3.6.1.4.1.232.1.2.20.7) +-- +-- +-- A complex can have at most 4 cabinets +-- +-- +-- **************************************************************************** + + cpqSeComplexUUID OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the complex UUID." + ::= { cpqSeComplex 1 } + + cpqSeComplexTotalCabinet OBJECT-TYPE + SYNTAX INTEGER (0..4) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the total number of cabinets in the complex. + Zero will be returned if the value can not be determined." + ::= { cpqSeComplex 2 } + + cpqSeComplexComputeCabinet OBJECT-TYPE + SYNTAX INTEGER (0..2) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is the number of compute cabinets in the complex." + ::= { cpqSeComplex 3 } + + cpqSeComplexIOXCabinet OBJECT-TYPE + SYNTAX INTEGER (0..1) + ACCESS read-only + STATUS optional + DESCRIPTION + "This denotes the number of IOX cabinets in the complex." + ::= { cpqSeComplex 4 } + + cpqSeComplexName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "This represents the complex name." + ::= { cpqSeComplex 5 } + + cpqSeComplexLockedProperty OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "Bit 31 - Indicates that there is a locked IPMI property when set. + Bit 7:0 - Contains the property number currently locked." + ::= { cpqSeComplex 6 } + + cpqSeComplexCellSlotStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeComplexCellSlotStatusEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A table of cell slot status in a complex." + ::= { cpqSeComplex 7 } + + cpqSeComplexCellSlotStatusEntry OBJECT-TYPE + SYNTAX CpqSeComplexCellSlotStatusEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A cell slot status description." + INDEX { cpqSeComplexCellSlotStatusIndex } + ::= { cpqSeComplexCellSlotStatusTable 1 } + + CpqSeComplexCellSlotStatusEntry ::= SEQUENCE { + cpqSeComplexCellSlotStatusIndex INTEGER, + cpqSeComplexCellSlotStatusCabinetNo INTEGER, + cpqSeComplexCellSlotStatusSlotNo INTEGER, + cpqSeComplexCellSlotStatus INTEGER, + cpqSeComplexCellSlotPartitionNo INTEGER, + cpqSeComplexCellSlotPartitionName DisplayString + } + + cpqSeComplexCellSlotStatusIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The table index of cell slot status in a complex. + + This value is a unique index for a row in the table of complex + cell slot status." + ::= { cpqSeComplexCellSlotStatusEntry 1 } + + cpqSeComplexCellSlotStatusCabinetNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The cabinet number of this cell slot." + ::= { cpqSeComplexCellSlotStatusEntry 2 } + + cpqSeComplexCellSlotStatusSlotNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The number of this cell slot." + ::= { cpqSeComplexCellSlotStatusEntry 3 } + + cpqSeComplexCellSlotStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + active(2), + inactive(3), + assigned-powered-off(4), + free-powered-on(5), + free-powered-off(6), + empty(7) + } + ACCESS read-only + STATUS optional + DESCRIPTION + "The status of this cell slot." + ::= { cpqSeComplexCellSlotStatusEntry 4 } + + cpqSeComplexCellSlotPartitionNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "The partition number this cell is assigned." + ::= { cpqSeComplexCellSlotStatusEntry 5 } + + cpqSeComplexCellSlotPartitionName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "The partition this cell belongs to." + ::= { cpqSeComplexCellSlotStatusEntry 6 } + +-- **************************************************************************** +-- Standard Equipment LED Table +-- ============================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeLED (1.3.6.1.4.1.232.1.2.21) +-- +-- This is a generic table of LEDs in the system +-- +-- **************************************************************************** + + cpqSeLEDTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSeLEDEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "A list of LEDs in the system." + ::= { cpqSeLED 1 } + + cpqSeLEDEntry OBJECT-TYPE + SYNTAX CpqSeLEDEntry + ACCESS not-accessible + STATUS optional + DESCRIPTION + "An entry of an LED in the system." + INDEX { cpqSeLEDIndex } + ::= { cpqSeLEDTable 1 } + + CpqSeLEDEntry ::= SEQUENCE { + cpqSeLEDIndex INTEGER, + cpqSeLEDState INTEGER, + cpqSeLEDStateDuration INTEGER, + cpqSeLEDLocationType INTEGER, + cpqSeLEDDescription DisplayString, + cpqSeLEDHardwareLocation DisplayString + } + + cpqSeLEDIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS optional + DESCRIPTION + "This is a number that uniquely identifies the LED." + ::= { cpqSeLEDEntry 1 } + + cpqSeLEDState OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS optional + DESCRIPTION + "This value represents the state of an LED. + Bit 31..24 = ON-duration time in unit of 0.1 sec + Bit 23..16 = OFF-duration time in unit of 0.1 sec + Bit 15..8 = 0, LED state is OFF + = 1, LED state is ON + = 2, LED state is BLINKING + Bit 7..0 = 0, invalid color value + = 1, LED color is Brown + = 2, LED color is Red + = 3, LED color is Orange + = 4, LED color is Yellow + = 5, LED color is Green + = 6, LED color is Blue + = 7, LED color is Violet + = 8, LED color is Gray + = 9, LED color is White " + ::= { cpqSeLEDEntry 2 } + + cpqSeLEDStateDuration OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS optional + DESCRIPTION + "This is the duration of an LED state in seconds. " + ::= { cpqSeLEDEntry 3 } + + cpqSeLEDLocationType OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS optional + DESCRIPTION + "This value indicates whether an LED is internal or external. + 0 = External + 1 = Internal " + ::= { cpqSeLEDEntry 4 } + + cpqSeLEDDescription OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "Description of the LED entry." + ::= { cpqSeLEDEntry 5 } + + cpqSeLEDHardwareLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "Description of the location of an LED entry." + ::= { cpqSeLEDEntry 6 } + +-- **************************************************************************** +-- Standard Equipment USB Device Group +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqStdEquipment Group (1.3.6.1.4.1.232.1) +-- cpqSeComponent Group (1.3.6.1.4.1.232.1.2) +-- cpqSeUSBDevice Group (1.3.6.1.4.1.232.1.2.22) +-- +-- The cpqSeUSBDevice group lists the USB Devices in the system. +-- +-- Implementation of the cpqSeUSBDevice group is optional. +-- Support for the cpqSeUSBDevice group is MANDATORY for all systems that +-- contain a USB bus. +-- +-- **************************************************************************** + + cpqSeUSBDeviceType OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "Attached USB device type." + ::= { cpqSeUSBDevice 1 } + + cpqSeUSBDeviceName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS optional + DESCRIPTION + "Attached USB device name." + ::= { cpqSeUSBDevice 2 } + + +-- **************************************************************************** +-- Standard Equipment MIB Trap Definitions +-- ======================================= +-- +-- The SNMP trap messages must not be bigger than 484 octets (bytes). +-- +-- Trap support in an SNMP agent implementation is optional. An SNMP +-- agent implementation may support all, some, or none of the traps. +-- If traps are supported, The user should be provided with the option of +-- disabling traps. +-- ************************************************************************** +-- Deprecated in 7.20 trap 1005 is the replacement + cpqSeCpuThresholdPassed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSeCpuSlot, cpqSeCpuSocketNumber} + DESCRIPTION + "This trap is sent when an internal CPU error threshold has been + passed on a particular CPU causing it to go degraded. This trap + will be sent when cpqSeCpuThreshPassed transitions from false to + true." + + --#TYPE "CPU error threshold passed (1001)" + --#SUMMARY "CPU internal corrected errors have passed a set threshold." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1001 + + cpqSePCCardThermalDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSePCCardDeviceInfo, + cpqSePCCardProductInfo, cpqSePCCardSlotIndex } + DESCRIPTION + "This trap is sent when the PC Card Slot Thermal Sensor threshold has been + exceeded for safe operations thereby causing degraded operations. This trap + will be sent when cpqSePCCardStatus transitions from Normal (1) to Thermal + Degraded (2). + The manufacturer and product information strings as well as the slot number + for the degraded PC Card is provided as parameters for this trap." + --#TYPE "PC Card Thermal Degraded Status (1002)" + --#SUMMARY "Safe PC Card %d Thermal operating conditions exceeded." + --#ARGUMENTS {4} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + ::= 1002 + + + cpqSePCCardThermalFailure TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSePCCardDeviceInfo, + cpqSePCCardProductInfo, cpqSePCCardSlotIndex } + DESCRIPTION + "This trap is sent when the PC Card Slot Thermal Sensor threshold has been + exceeded for degraded operations thereby causing failed operations. + This trap will be sent when cpqSePCCardStatus transitions from Thermal Degraded + (2) to Thermal Failure (3). + The manufacturer and product information strings as well as the slot number + for the failed PC Card is provided as parameters for this trap." + --#TYPE "PC Card Thermal Failure Status (1003)" + --#SUMMARY "Degraded PC Card %d Thermal operating conditions exceeded." + --#ARGUMENTS {4} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + ::= 1003 + + cpqSePCCardThermalSafe TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSePCCardSlotIndex } + DESCRIPTION + "This trap is sent when the PC Card Slot Thermal Sensor threshold has been + crossed which restored the thermal status to normal operations. This trap will be sent + when cpqSePCCardStatus transitions from Thermal Degraded (2) or Thermal Failure + (3) to Normal (1). + The number of the recovered PC Card slot is provided as a parameter for this trap." + --#TYPE "PC Card Thermal Safe Operations Status (1004)" + --#SUMMARY "Degraded/Failed PC Card %d Thermal conditions restored to Safe operations." + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + ::= 1004 + +-- Updated for 7.20 trap replaced 1001 + cpqSe2CpuThresholdPassed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSeCpuSlot, cpqSeCpuSocketNumber, + cpqSeCpuSpeed, cpqSeCpuExtSpeed, cpqSeCpuCacheSize} + DESCRIPTION + "This trap is sent when an internal CPU error threshold has been + passed on a particular CPU causing it to go degraded. This trap + will be sent when cpqSeCpuThreshPassed transitions from false to + true." + + --#TYPE "CPU error threshold passed (1005)" + --#SUMMARY "CPU internal corrected errors have passed a set threshold." + --#ARGUMENTS {} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1005 + +cpqSeCpuStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSeCpuUnitIndex, + cpqSeCpuSlot, cpqSeCpuName, cpqSeCpuSpeed, + cpqSeCpuStep, cpqSeCpuStatus, + cpqSeCpuExtSpeed, cpqSeCpuSocketNumber, + cpqSeCpuHwLocation} + DESCRIPTION + "This trap is sent when CPU status changed. + + CPU can be brought down to Stop state and removed + from O.S Active set or Brought back to Running state + and made member of O.S Active set. + + User Action: None." + + --#TYPE "Processor Monitor Event Trap" + --#SUMMARY "Processor in Slot %d status change to %d" + --#ARGUMENTS {4, 8} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + + ::= 1006 + +cpqSeCpuPowerPodstatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSeCpuUnitIndex, + cpqSeCpuSlot, cpqSeCpuName, cpqSeCpuSpeed, + cpqSeCpuStep, cpqSeCpuPowerpodStatus, + cpqSeCpuExtSpeed, cpqSeCpuSocketNumber, + cpqSeCpuHwLocation} + DESCRIPTION + "This Trap is sent if CPU Power Pod status changes. + + User Action: None." + + --#TYPE "Processor Monitor Event Trap" + --#SUMMARY "Processor in Slot %d Power supply status is %d" + --#ARGUMENTS {4, 8} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + + ::= 1007 + + cpqSeUSBStorageDeviceAttached TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSeUSBDeviceType, cpqSeUSBDeviceName } + DESCRIPTION + "This trap is sent when a USB storage device has been attached " + + --#TYPE "USB storage device attached (1008)" + --#SUMMARY "A USB storage device has been attached to the system." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1008 + + cpqSeUSBStorageDeviceRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSeUSBDeviceType, cpqSeUSBDeviceName } + DESCRIPTION + "This trap is sent when a attached USB storage device is removed " + + --#TYPE "USB storage device removed (1009)" + --#SUMMARY "A USB storage device has been removed from the system." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1009 + +END diff --git a/pandora_console/attachment/mibs/CPQSTSYS-MIB b/pandora_console/attachment/mibs/CPQSTSYS-MIB new file mode 100644 index 0000000000..f71abfe9fe --- /dev/null +++ b/pandora_console/attachment/mibs/CPQSTSYS-MIB @@ -0,0 +1,4058 @@ +-- **************************************************************************** +-- +-- Storage Systems +-- Management Information Base for SNMP Network Management +-- +-- +-- Copyright 1992,2007 Hewlett-Packard Development Company, L.P. +-- Hewlett-Packard Company shall not be liable for technical or +-- editorial errors or omissions contained herein. The information in +-- this document is provided "as is" without warranty of any kind and +-- is subject to change without notice. The warranties for HP products +-- are set forth in the express limited warranty statements +-- accompanying such products. Nothing herein should be construed as +-- constituting an additional warranty. +-- +-- Confidential computer software. Valid license from HP required for +-- possession, use or copying. Consistent with FAR 12.211 and 12.212, +-- Commercial Computer Software, Computer Software Documentation, and +-- Technical Data for Commercial Items are licensed to the U.S. +-- Government under vendor's standard commercial license. +-- +-- Refer to the READMIB.RDM file for more information about the +-- organization of the information in the Compaq Enterprise. +-- +-- The Compaq Enterprise number is 232. +-- The ASN.1 prefix to, and including the Compaq Enterprise is: +-- 1.3.6.1.4.1.232 +-- +-- **************************************************************************** + +CPQSTSYS-MIB DEFINITIONS ::= BEGIN + + IMPORTS + compaq FROM CPQHOST-MIB +-- enterprises FROM RFC1155-SMI + Counter FROM RFC1155-SMI + DisplayString FROM RFC1213-MIB + OBJECT-TYPE FROM RFC-1212 + TRAP-TYPE FROM RFC-1215 + sysName FROM RFC1213-MIB + cpqHoTrapFlags FROM CPQHOST-MIB; + +-- compaq OBJECT IDENTIFIER ::= { enterprises 232 } + + cpqSsStorageSys OBJECT IDENTIFIER ::= { compaq 8 } + cpqSsMibRev OBJECT IDENTIFIER ::= { cpqSsStorageSys 1 } + cpqSsDrvBox OBJECT IDENTIFIER ::= { cpqSsStorageSys 2 } + cpqSsTrap OBJECT IDENTIFIER ::= { cpqSsStorageSys 3 } + cpqSsRaidSystem OBJECT IDENTIFIER ::= { cpqSsStorageSys 4 } + cpqSsBoxExtended OBJECT IDENTIFIER ::= { cpqSsDrvBox 2 } + +-- **************************************************************************** +-- Storage System MIB Revision +-- =========================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsMibRev Group (1.3.6.1.4.1.232.8.1) +-- +-- +-- An agent conforming to this document will return a cpqSsMibRevMajor +-- of one (1) and a cpqSsMibRevMinor of thirty one (31). +-- +-- Implementation of the MibRev group is mandatory. +-- +-- **************************************************************************** + + cpqSsMibRevMajor OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Major Revision level. + A change in the major revision level represents a major change in + the architecture of the MIB. A change in the major revision level + may indicate a significant change in the information supported + and/or the meaning of the supported information, correct + interpretation of data may require a MIB document with the same + major revision level." + ::= { cpqSsMibRev 1 } + + cpqSsMibRevMinor OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Minor Revision level. + A change in the minor revision level may represent some minor + additional support; no changes to any pre-existing information + has occurred." + ::= { cpqSsMibRev 2 } + + cpqSsMibCondition OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The overall condition (status) of the system represented by + this MIB." + ::= { cpqSsMibRev 3 } + +-- **************************************************************************** +-- Storage System Drive Box Group +-- ============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsDrvBoxTable (1.3.6.1.4.1.232.8.2.1) +-- +-- Implementation of the Drive Box group is mandatory. +-- +-- **************************************************************************** + + cpqSsDrvBoxTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsDrvBoxEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Drive Box Table." + ::= { cpqSsDrvBox 1 } + + cpqSsDrvBoxEntry OBJECT-TYPE + SYNTAX CpqSsDrvBoxEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Drive Box Entry." + INDEX { cpqSsBoxCntlrIndex, cpqSsBoxBusIndex } + ::= { cpqSsDrvBoxTable 1 } + + CpqSsDrvBoxEntry ::= SEQUENCE + { + cpqSsBoxCntlrIndex INTEGER, + cpqSsBoxBusIndex INTEGER, + cpqSsBoxType INTEGER, + cpqSsBoxModel DisplayString, + cpqSsBoxFWRev DisplayString, + cpqSsBoxVendor DisplayString, + cpqSsBoxFanStatus INTEGER, + cpqSsBoxCondition INTEGER, + cpqSsBoxTempStatus INTEGER, + cpqSsBoxSidePanelStatus INTEGER, + cpqSsBoxFltTolPwrSupplyStatus INTEGER, + cpqSsBoxBackPlaneVersion INTEGER, + cpqSsBoxTotalBays INTEGER, + cpqSsBoxPlacement INTEGER, + cpqSsBoxDuplexOption INTEGER, + cpqSsBoxBoardRevision INTEGER, + cpqSsBoxSerialNumber DisplayString, + cpqSsBoxCntlrHwLocation DisplayString, + cpqSsBoxBackplaneSpeed INTEGER, + cpqSsBoxConnectionType INTEGER, + cpqSsBoxHostConnector DisplayString, + cpqSsBoxBoxOnConnector INTEGER, + cpqSsBoxLocationString DisplayString + } + + cpqSsBoxCntlrIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Controller Index. + + The controller index indicates to which adapter card instance + this table entry belongs." + ::= { cpqSsDrvBoxEntry 1 } + + cpqSsBoxBusIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Bus Index. + + The bus index indicates to which bus instance on an adapter card + this table entry belongs." + ::= { cpqSsDrvBoxEntry 2 } + + cpqSsBoxType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + proLiant(2), + proLiant2(3), + proLiant2Internal(4), + proLiant2DuplexTop(5), + proLiant2DuplexBottom(6), + proLiant2InternalDuplexTop(7), + proLiant2InternalDuplexBottom(8) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Drive Box Type. + + This is the type of drive box. The following types are defined: + + other(1) + The agent does not recognize this drive storage system. + + proLiant(2) + This is a ProLiant Storage System. + + proLiant2(3) + This is a ProLiant-2 Storage System. + + proLiant2Internal(4) + This is an internal ProLiant-2 Storage System that is found + in some servers. + + proLiant2DuplexTop(5) + This is the top portion of a ProLiant-2 Storage System that + has dual SCSI busses which are duplexed. + + proLiant2DuplexBottom(6) + This is the bottom portion of a ProLiant-2 Storage System that + has dual SCSI busses which are duplexed. + + proLiant2InternalDuplexTop(7) + This is the top portion of a ProLiant Server into which the + internal SCSI busses are duplexed. + + proLiant2InternalDuplexBottom(8) + This is the bottom portion of a ProLiant Server into which the + internal SCSI busses are duplexed." + ::= { cpqSsDrvBoxEntry 3 } + + cpqSsBoxModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..17)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Model. + + This is a description of the drive box's model. + This can be used for identification purposes." + ::= { cpqSsDrvBoxEntry 4 } + + cpqSsBoxFWRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Firmware Revision. + + This is the revision level of the drive box. + This can be used for identification purposes." + ::= { cpqSsDrvBoxEntry 5 } + + cpqSsBoxVendor OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..9)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Vendor + + This is the drive box's vendor name. + This can be used for identification purposes." + ::= { cpqSsDrvBoxEntry 6 } + + cpqSsBoxFanStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + failed(3), + noFan(4), + degraded(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Fan Status. + + This is the current status of the fans in the drive box. + This value will be one of the following: + other(1) + Fan monitoring is not supported by this system + or it is not supported by the driver. + + ok(2) + All fans are working normally. + + failed(3) + One or more storage system fans have failed. The fan(s) should + be replaced immediately to avoid hardware damage. + + noFan(4) + This unit does not support fan monitoring. + + degraded(5) + At least one storage system fan has failed, but there is still + sufficient cooling capacity to allow the system to continue. + The fan should be replaced." + + ::= { cpqSsDrvBoxEntry 7 } + + cpqSsBoxCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "SCSI Drive Box Condition. + + This is the overall condition of the drive box. + The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The storage system is operating normally. No user + action is required. + + degraded(3) + The storage system is degraded. You need to check the + temperature status or power supply status of this + storage system. Additionally, if the side panel for + the storage system is removed, the air flow changes + could result in improper cooling of the drives and affect + the temperature status. + + failed(4) + The storage system has failed." + ::= { cpqSsDrvBoxEntry 8 } + + cpqSsBoxTempStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4), + noTemp(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The temperature of the drive system. + + This value will be one of the following: + other(1) + Temperature monitoring is not supported by this system + or it is not supported by the driver. + + ok(2) + The temperature is within normal operating range. + + degraded(3) + The temperature is outside of normal operating range. + + failed(4) + The temperature could permanently damage the system. + The storage system will automatically shutdown if this + condition is detected. + + noTemp(5) + This unit does not support temperature monitoring." + + ::= { cpqSsDrvBoxEntry 9 } + + cpqSsBoxSidePanelStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + sidePanelInPlace(2), + sidePanelRemoved(3), + noSidePanelStatus(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Side Panel Status. + + This value will be one of the following: + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + sidePanelInPlace(2) + The side panel is properly installed on the storage system. + + sidePanelRemoved(3) + The side panel is not properly installed on the storage system. + + noSidePanelStatus(4) + This unit does not support side panel status monitoring." + + ::= { cpqSsDrvBoxEntry 10 } + + cpqSsBoxFltTolPwrSupplyStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4), + noFltTolPower(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value specifies the overall status of the fault tolerant + power supply sub-system in a drive box. + + This value will be one of the following: + other(1) + The power supply status cannot be determined. + + ok(2) + There are no detected power supply failures. + + degraded(3) + One of the power supply units in a fault tolerant power + supply has failed. + + failed(4) + No failure conditions can currently be determined. + + noFltTolPower(5) + This unit does not support fault tolerant power supply + monitoring." + + ::= { cpqSsDrvBoxEntry 11 } + + cpqSsBoxBackPlaneVersion OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + proLiant(2), + proLiant2(3), + proLiant3(4), + proLiant4(5), + proLiant5(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Back Plane Version. + + This is the version of the drive box back plane. The following + types are defined: + + other(1) + The agent does not recognize this drive storage system back + plane. + + proLiant(2) + This is a ProLiant Storage System. + + proLiant2(3) + This is a ProLiant-2 Storage System. + + proLiant3(4) + This is a ProLiant-3 Storage System. + + proLiant4(5) + This is a 4th generation Proliant Storage System. + + proLiant5(6) + This is a 5th generation ProLiant Storage System." + ::= { cpqSsDrvBoxEntry 12 } + + + cpqSsBoxTotalBays OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Total Bays. + + This is the total number of bays in this storage system." + ::= { cpqSsDrvBoxEntry 13 } + + + cpqSsBoxPlacement OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + internal(2), + external(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Placement. + + The following values are defined: + + other(1) + The agent is unable to determine if this storage system is + located internal or external to the system chassis. + + internal(2) + The storage system is located in the system chassis. + + external(3) + The storage system is located outside the system chassis + in an expansion box." + ::= { cpqSsDrvBoxEntry 14 } + + + cpqSsBoxDuplexOption OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notDuplexed(2), + duplexTop(3), + duplexBottom(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Duplex Option. + + The following values are defined: + + other(1) + The agent is unable to determine if this storage system is + duplexed. + + notDuplexed(2) + This storage system is not duplexed. + + duplexTop(3) + This is the top portion of a duplexed storage system. + + duplexBottom(4) + This is the bottom portion of a duplexed storage system." + ::= { cpqSsDrvBoxEntry 15 } + + cpqSsBoxBoardRevision OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Board Revision. + + This is the board revision of this storage system backplane." + ::= { cpqSsDrvBoxEntry 16 } + + cpqSsBoxSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Serial Number. + + This is the drive box's serial number which is normally display + on the front panel. This can be used for identification + purposes." + ::= { cpqSsDrvBoxEntry 17 } + + cpqSsBoxCntlrHwLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A text description of the hardware location of the controller + to which this box is attached. A NULL string indicates that + the hardware location could not be determined or is irrelevant." + ::= { cpqSsDrvBoxEntry 18 } + + cpqSsBoxBackplaneSpeed OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ultra3(2), + ultra320(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Backplane Speed. + + The following values are defined: + + other(1) + The agent is unable to determine the backplane speed for this + storage system. + + ultra3(2) + This storage system is capable of Ultra3 speeds. + + ultra320(3) + This storage system is capable of Ultra320 speeds." + ::= { cpqSsDrvBoxEntry 19 } + + cpqSsBoxConnectionType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + scsiAttached(2), + sasAttached(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Connection Type. + + The following values are defined: + + other(1) + The agent is unable to determine the type of connection to + this storage system. + + scsiAttached(2) + This storage system is attached to the host via SCSI. + + sasAttached(3) + This storage system is attached to the host via SAS." + ::= { cpqSsDrvBoxEntry 20 } + + cpqSsBoxHostConnector OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Host Connector. + + This is the host connector to which the drive box is attached. + If the host connector cannot be determined, the agent will + return a NULL string." + ::= { cpqSsDrvBoxEntry 21 } + + cpqSsBoxBoxOnConnector OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box, Box on Connector. + + The box on connector indicates which box instance this table + entry belongs. The instances start at one and increment for + each box attached to a connector. If the value cannot be + determined or does not apply, -1 is returned." + ::= { cpqSsDrvBoxEntry 22 } + + cpqSsBoxLocationString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Location String. + + This string describes the location of the drive box in relation + to the controller to which it is attached. If the location + string cannot be determined, the agent will return a NULL string." + ::= { cpqSsDrvBoxEntry 23 } + + +-- **************************************************************************** +-- Storage System Chassis Group +-- ============================ +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsChassisTable (1.3.6.1.4.1.232.8.2.2.1) +-- +-- **************************************************************************** + + cpqSsChassisTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsChassisEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Chassis Table." + ::= { cpqSsBoxExtended 1 } + + cpqSsChassisEntry OBJECT-TYPE + SYNTAX CpqSsChassisEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Chassis Entry." + INDEX { cpqSsChassisIndex } + ::= { cpqSsChassisTable 1 } + + CpqSsChassisEntry ::= SEQUENCE + { + cpqSsChassisIndex INTEGER, + cpqSsChassisConnectionType INTEGER, + cpqSsChassisSerialNumber DisplayString, + cpqSsChassisName DisplayString, + cpqSsChassisSystemBoardSerNum DisplayString, + cpqSsChassisSystemBoardRev DisplayString, + cpqSsChassisPowerBoardSerNum DisplayString, + cpqSsChassisPowerBoardRev DisplayString, + cpqSsChassisScsiBoardSerNum DisplayString, + cpqSsChassisScsiBoardRev DisplayString, + cpqSsChassisOverallCondition INTEGER, + cpqSsChassisPowerSupplyCondition INTEGER, + cpqSsChassisFanCondition INTEGER, + cpqSsChassisTemperatureCondition INTEGER, + cpqSsChassisFcaCntlrCondition INTEGER, + cpqSsChassisFcaLogicalDriveCondition INTEGER, + cpqSsChassisFcaPhysDrvCondition INTEGER, + cpqSsChassisTime INTEGER, + cpqSsChassisModel INTEGER, + cpqSsChassisBackplaneCondition INTEGER, + cpqSsChassisFcaTapeDrvCondition INTEGER, + cpqSsChassisRsoStatus INTEGER, + cpqSsChassisRsoCondition INTEGER, + cpqSsChassisScsiIoModuleType INTEGER, + cpqSsChassisPreferredPathMode INTEGER, + cpqSsChassisProductId DisplayString + } + + cpqSsChassisIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Index. + + The chassis index uniquely identifies a storage system chassis." + ::= { cpqSsChassisEntry 1 } + + cpqSsChassisConnectionType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + fibreAttached(2), + scsiAttached(3), + iScsiAttached(4), + sasAttached(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Connection Type. + + The following values are defined: + + other(1) + The agent is unable to determine the type of connection to + this chassis. + + fibreAttached(2) + This chassis is attached to the server via Fibre Channel. + + scsiAttached(3) + This chassis is attached to the server via SCSI. + + iScsiAttached(4) + This chassis is attached to the server via iSCSI. + + sasAttached(5) + This chassis is attached to the server via SAS." + ::= { cpqSsChassisEntry 2 } + + cpqSsChassisSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Serial Number. + + This is the storage system chassis's serial number which is normally + displayed on the front panel. This can be used for identification + purposes." + ::= { cpqSsChassisEntry 3 } + + cpqSsChassisName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Name. + + This is a user defined name for this storage system chassis." + ::= { cpqSsChassisEntry 4 } + + cpqSsChassisSystemBoardSerNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis System Controller Board Serial Number. + + This is the system controller board's serial number. This can be + used for identification purposes." + ::= { cpqSsChassisEntry 5 } + + cpqSsChassisSystemBoardRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis System Controller Board Revision. + + This is the system controller board revision." + ::= { cpqSsChassisEntry 6 } + + cpqSsChassisPowerBoardSerNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Power Backplane Board Serial Number. + + This is the power backplane board's serial number. This can be used + for identification purposes." + ::= { cpqSsChassisEntry 7 } + + cpqSsChassisPowerBoardRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Power Backplane Board Revision. + + This is the power backplane board revision." + ::= { cpqSsChassisEntry 8 } + + cpqSsChassisScsiBoardSerNum OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis SCSI Drive Backplane Board Serial + Number. + + This is the SCSI drive backplane board's serial number. This can be + used for identification purposes." + ::= { cpqSsChassisEntry 9 } + + cpqSsChassisScsiBoardRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis SCSI Drive Backplane Board Revision. + + This is the SCSI drive backplane board revision." + ::= { cpqSsChassisEntry 10 } + + cpqSsChassisOverallCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Overall Condition. + + This is the condition of the storage system chassis and all of its + components. The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The storage system is operating normally. No user + action is required. + + degraded(3) + The storage system chassis is degraded. + + failed(4) + The storage system chassis is failed." + ::= { cpqSsChassisEntry 11 } + + cpqSsChassisPowerSupplyCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Condition. + + This is the aggregate condition of all power supplies in + the storage system chassis. The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + All power supplies are operating normally. + + degraded(3) + At least one power supply is degraded or failed. + + failed(4) + All power supplies are failed." + ::= { cpqSsChassisEntry 12 } + + cpqSsChassisFanCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Condition. + + This is the aggregate condition of all fan modules in the + storage system chassis. The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + All fan modules are operating normally. + + degraded(3) + At least one fan module is degraded. + + failed(4) + At least one fan module is failed." + ::= { cpqSsChassisEntry 13 } + + cpqSsChassisTemperatureCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Temperature Condition. + + This is the aggregate condition of all the temperatur sensors + in the storage system chassis. The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + All temperature sensors are reading within normal limits. + + degraded(3) + At least one temperature sensor is reading degraded. + + failed(4) + At least one temperature sensor is reading failed." + ::= { cpqSsChassisEntry 14 } + + cpqSsChassisFcaCntlrCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Channel Array Controller Condition. + + This is the aggregate condition of all Fibre Channel Array controllers + in the storage system chassis. The following values are defined: + + other(1) + The condition cannot be determined or is not supported on + this storage system. + + ok(2) + All Fibre Channel Array Controllers are operating normally. + + degraded(3) + At least one Fibre Channel Array Controller is degraded or + failed. + + failed(4) + All Fibre Channel Array Controllers are failed." + ::= { cpqSsChassisEntry 15 } + + cpqSsChassisFcaLogicalDriveCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Channel Array Logical Drive Condition. + + This is the aggregate condition of all Fibre Channel Array Logical + Drives in this storage system chassis. + The following values are defined: + + other(1) + The condition cannot be determined or is not supported on + this storage system. + + ok(2) + All Fibre Channel Array Controllers Logical Drives are + operating normally. + + degraded(3) + At least one Fibre Channel Array Controller Logical Drive + is degraded. + + failed(4) + At least one Fibre Channel Array Controller Logical Drive + is failed." + ::= { cpqSsChassisEntry 16 } + + cpqSsChassisFcaPhysDrvCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Channel Array Physical Drive Condition. + + This is the aggregate condition of all Fibre Channel Array Physical + Drives in this storage system chassis. + The following values are defined: + + other(1) + The condition cannot be determined or is not supported on + this storage system. + + ok(2) + All Fibre Channel Array Controllers Physical Drives are + operating normally. + + degraded(3) + At least one Fibre Channel Array Controller Physical Drive + is degraded. + + failed(4) + At least one Fibre Channel Array Controller Physical Drive + is failed." + ::= { cpqSsChassisEntry 17 } + + cpqSsChassisTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Time. + + This is the storage system chassis's time in tenths of seconds. + If the chassis time is not supported, the agent will return 0." + ::= { cpqSsChassisEntry 18 } + + cpqSsChassisModel OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ra4x00(2), + msa1000(3), + smartArrayClusterStorage(4), + enterpriseModularArray(5), + enterpriseVirtualArray(6), + msa500G2(7), + msa20(8), + msa1500cs(9), + msa1510i(10) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Model. + + The following values are defined: + + other(1) + The agent is unable to determine the model of this chassis. + + ra4x00(2) + Compaq StorageWorks RAID Array 4000/4100. + + msa1000(3) + Compaq StorageWorks Modular Smart Array 1000. + + smartArrayClusterStorage(4) + HP StorageWorks Modular Smart Array 500 + (Formerly Smart Array Cluster Storage). + + enterpriseModularArray(5) + Compaq StorageWorks Enterprise/Modular RAID Array. + + enterpriseVirtualArray(6) + Compaq StorageWorks Enterprise Virtual Array. + + msa500G2(7) + HP StorageWorks Modular Smart Array 500 G2. + + msa20(8) + HP StorageWorks Modular Smart Array 20. + + msa1500cs(9) + HP StorageWorks Modular Smart Array 1500 CS. + + msa1510i(10) + HP StorageWorks Modular Smart Array 1510i. + + Reserved(11) + + Reserved(12)" + ::= { cpqSsChassisEntry 19 } + + cpqSsChassisBackplaneCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Condition. + + This is the aggregate condition of all the backplanes for the + storage system chassis. The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + All backplanes are operating normally. + + degraded(3) + At least one storage system is degraded. + + failed(4) + At least one storage system is failed." + ::= { cpqSsChassisEntry 20 } + + cpqSsChassisFcaTapeDrvCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Array Tape Drive Condition. + + This is the aggregate condition of all tape drives in this storage + system chassis. + The following values are defined: + + other(1) + The condition cannot be determined or is not supported on + this storage system. + + ok(2) + All tape drives are operating normally. + + degraded(3) + At least one tape drive is degraded. + + failed(4) + At least one tape drive is failed." + ::= { cpqSsChassisEntry 21 } + + cpqSsChassisRsoStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notSupported(2), + notConfigured(3), + disabled(4), + daemonDownDisabled(5), + ok(6), + daemonDownActive(7), + noSecondary(8), + daemonDownNoSecondary(9), + linkDown(10), + daemonDownLinkDown(11), + secondaryRunningAuto(12), + secondaryRunningUser(13), + evTimeoutError(14) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Recovery Server Option Status. + + The following values are defined: + + other(1) + The recovery server option status cannot be determined for + this storage system. + + notSupported(2) + The recovery server option is not supported for this storage + system. + + notConfigured(3) + The recovery server option is supported, but is not + configured on this storage system. + + disabled(4) + The recovery server option is configured as primary, but + has been disabled by software. + + daemonDownDisabled(5) + The recovery server option operating system daemon is no + longer running. The last status of RSO was disabled(4). + + ok(6) + The recovery server option is configured as primary and + everything is working correctly. + + daemonDownActive(7) + The recovery server option operating system daemon is no + longer running. The last status of RSO was ok(6). + + noSecondary(8) + The recovery server option is configured as primary, but + communication with the standby server has not been established. + + daemonDownNoSecondary(9) + The recovery server option operating system daemon is no + longer running. The last status of RSO was noSecondary(8). + + linkDown(10) + The recovery server option is configured as primary, but + communication with the standby server has failed. + + daemonDownLinkDown(11) + The recovery server option operating system daemon is no + longer running. The last status of RSO was linkDown(10). + + secondaryRunningAuto(12) + The recovery server option is configured and the standby + server is running. The secondary server assumed control + after communication with the primary server failed. + + secondaryRunningUser(13) + The recovery server option is configured and the standby + server is running. A user forced the secondary server to + assume control. + + evTimeoutError(14) + The recovery server option environment variable cannot be + accessed." + ::= { cpqSsChassisEntry 22 } + + cpqSsChassisRsoCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Recovery Server Option Condition. + + This is the condition of the recovery server option. The + following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The recovery server option is operating normally. No user + action is required. + + degraded(3) + The recovery server option is degraded. + + failed(4) + The recovery server option is failed." + ::= { cpqSsChassisEntry 23 } + + cpqSsChassisScsiIoModuleType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + io2port(2), + io4portUpgradeFirmware(3), + io4port(4), + io2port320(5), + io4port320(6), + io1port320(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis SCSI I/O Module Type. + + The following values are defined: + + other(1) + The agent does not recognize SCSI I/O module type. You may + need to upgrade your software. + + io2port(2) + A 2-Port Ultra3 SCSI I/O Module is installed. + + io4portUpgradeFirmware(3) + A 4-Port Shared Storage Module for Smart Array Cluster Storage + is installed, but the current controller firmware does not + support it. Upgrade your controller firmware. + + io4port(4) + A 4-Port Shared Storage Module for Smart Array Cluster Storage + is installed. + + io2port320(5) + A 2-Port Ultra320 SCSI I/O Module is installed. + + io4port320(6) + A 4-Port Ultra320 SCSI I/O Module is installed. + + io1port320(7) + A 1-Port Ultra320 SCSI I/O Module is installed." + ::= { cpqSsChassisEntry 24 } + + cpqSsChassisPreferredPathMode OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notActiveActive(2), + automatic(3), + manual(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Array Controller Preferred Path Mode. + + This is the storage system active/active preferred path mode. + The following values are valid: + + other (1) + Indicates that the agent does not recognize the preferred path + mode of the storage system. You may need to upgrade the agent. + + notActiveActive (2) + The storage system is not configured as active/active. + + automatic (3) + The storage system automatically selects the preferred path + for each logical drive based on host I/O patterns. + + manual (4) + The preferred path for each logical drive is manually + configured by the storage system administrator." + ::= { cpqSsChassisEntry 25 } + + cpqSsChassisProductId OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Chassis Product Identifier. + + This is the storage system chassis's product identifier. This can + be used for identification purposes. If the product identifier can + not be determined, the agent will return a NULL string." + ::= { cpqSsChassisEntry 26 } + + +-- **************************************************************************** +-- Storage System I/O Slot Table +-- ============================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsIoSlotTable (1.3.6.1.4.1.232.8.2.2.2) +-- +-- **************************************************************************** + + cpqSsIoSlotTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsIoSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System I/O Slot Table." + ::= { cpqSsBoxExtended 2 } + + cpqSsIoSlotEntry OBJECT-TYPE + SYNTAX CpqSsIoSlotEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System I/O Slot Entry." + INDEX { cpqSsIoSlotChassisIndex, cpqSsIoSlotIndex } + ::= { cpqSsIoSlotTable 1 } + + CpqSsIoSlotEntry ::= SEQUENCE + { + cpqSsIoSlotChassisIndex INTEGER, + cpqSsIoSlotIndex INTEGER, + cpqSsIoSlotControllerType INTEGER + } + + cpqSsIoSlotChassisIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System I/O Slot Chassis Index. + + The chassis index uniquely identifies a storage system chassis." + ::= { cpqSsIoSlotEntry 1 } + + cpqSsIoSlotIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System I/O Slot Index. + + This index uniquely identifies a storage system I/O Slot." + ::= { cpqSsIoSlotEntry 2 } + + cpqSsIoSlotControllerType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notInstalled(2), + unknownBoard(3), + fibreArray(4), + scsiArray(5), + noSlot(6), + iScsiArray(7), + sasArray(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System I/O Slot Controller Type. + + The following values are defined: + + other(1) + The agent is unable to determine if anything is installed in + this storage system I/O slot. + + notInstalled(2) + Nothing is installed in this storage system I/O slot. + + unknownBoardInstalled(3) + An unknown controller is installed in this storage system + I/O slot. + + fibreArray(4) + A Fibre Channel Array controller is installed in this storage + system I/O slot. + + scsiArray(5) + A SCSI Array controller is installed in this storage system + I/O slot. + + noSlot(6) + The slot does not exist on this chassis. + + iScsiArray(7) + An iSCSI Array controller is installed in this storage system + I/O slot. + + sasArray(8) + A SAS Array controller is installed in this storage system + I/O slot." + ::= { cpqSsIoSlotEntry 3 } + + +-- **************************************************************************** +-- Storage System Power Supply Table +-- ================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsPowerSupplyTable (1.3.6.1.4.1.232.8.2.2.3) +-- +-- **************************************************************************** + + cpqSsPowerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsPowerSupplyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Table." + ::= { cpqSsBoxExtended 3 } + + cpqSsPowerSupplyEntry OBJECT-TYPE + SYNTAX CpqSsPowerSupplyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Entry." + INDEX { cpqSsPowerSupplyChassisIndex, cpqSsPowerSupplyIndex } + ::= { cpqSsPowerSupplyTable 1 } + + CpqSsPowerSupplyEntry ::= SEQUENCE + { + cpqSsPowerSupplyChassisIndex INTEGER, + cpqSsPowerSupplyIndex INTEGER, + cpqSsPowerSupplyBay INTEGER, + cpqSsPowerSupplyStatus INTEGER, + cpqSsPowerSupplyUpsStatus INTEGER, + cpqSsPowerSupplyCondition INTEGER, + cpqSsPowerSupplySerialNumber DisplayString, + cpqSsPowerSupplyBoardRevision DisplayString, + cpqSsPowerSupplyFirmwareRevision DisplayString + } + + cpqSsPowerSupplyChassisIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Chassis Index. + + The chassis index uniquely identifies a storage system chassis." + ::= { cpqSsPowerSupplyEntry 1 } + + cpqSsPowerSupplyIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Bay. + + This index uniquely identifies a power supply bay." + ::= { cpqSsPowerSupplyEntry 2 } + + cpqSsPowerSupplyBay OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + powerBay1(2), + powerBay2(3), + composite(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Bay. + + The following values are defined: + + other(1) + The agent does not recognize the bay. You may need to upgrade + your software. + + powerBay1(2) + The power supply is installed in the first power supply bay. + + powerBay2(3) + The power supply is installed in the second power supply bay. + + composite(4) + The power supply information is a composite of all power + supplies in the storage system." + ::= { cpqSsPowerSupplyEntry 3 } + + cpqSsPowerSupplyStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notInstalled(2), + ok(3), + failed(4), + degraded(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Status. + + The following values are defined: + + other(1) + The agent is unable to determine if this storage system power + supply bay is occupied. + + notInstalled(2) + Nothing is installed in this power supply bay. + + ok(3) + A power supply is installed and operating normally. + + failed(4) + A power supply is installed and is no longer operating. + Replace the power supply. + + degraded(5) + For composite power supplies, this indicates that at least one + power supply has failed or lost power." + ::= { cpqSsPowerSupplyEntry 4 } + + cpqSsPowerSupplyUpsStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + noUps(2), + ok(3), + powerFailed(4), + batteryLow(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Uninterruptible Power Supply (UPS) + Status. + + The following values are defined: + + other(1) + The agent is unable to determine if this power supply is + attached to an Uninterruptible Power Supply (UPS). + + noUps(2) + No UPS is attached to the power supply. + + ok(3) + A UPS is attached to the power supply and is operating + normally. + + powerFailed(4) + A UPS is attached to the power supply and the AC power has + failed. + + batteryLow(5) + A UPS is attached to the power supply, the AC power has + failed and the UPS battery is low." + ::= { cpqSsPowerSupplyEntry 5 } + + cpqSsPowerSupplyCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Condition. + + This is the condition of the storage system chassis and all of + its components. The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The power supply is operating normally. No user action is + required. + + degraded(3) + The power supply is degraded. You need to check the power + supply or its attached UPS for problems. + + failed(4) + The power supply has failed." + ::= { cpqSsPowerSupplyEntry 6 } + + cpqSsPowerSupplySerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Serial Number. + + This is the power supply's serial number. This can be used + for identification purposes. If the serial number is not supported, + the agent will return a NULL string." + ::= { cpqSsPowerSupplyEntry 7 } + + cpqSsPowerSupplyBoardRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Board Revision. + + This is the power supply board revision. If the board revision is + not supported, the agent will return a NULL string." + ::= { cpqSsPowerSupplyEntry 8 } + + cpqSsPowerSupplyFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Power Supply Firmware Revision. + + This is the power supply firmware revision. If the firmware revision + is not supported, the agent will return a NULL string." + ::= { cpqSsPowerSupplyEntry 9 } + + +-- **************************************************************************** +-- Storage System Fan Module Table +-- =============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsFanModuleTable (1.3.6.1.4.1.232.8.2.2.4) +-- +-- **************************************************************************** + + cpqSsFanModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsFanModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Table." + ::= { cpqSsBoxExtended 4 } + + cpqSsFanModuleEntry OBJECT-TYPE + SYNTAX CpqSsFanModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Entry." + INDEX { cpqSsFanModuleChassisIndex, cpqSsFanModuleIndex } + ::= { cpqSsFanModuleTable 1 } + + CpqSsFanModuleEntry ::= SEQUENCE + { + cpqSsFanModuleChassisIndex INTEGER, + cpqSsFanModuleIndex INTEGER, + cpqSsFanModuleStatus INTEGER, + cpqSsFanModuleCondition INTEGER, + cpqSsFanModuleLocation INTEGER, + cpqSsFanModuleSerialNumber DisplayString, + cpqSsFanModuleBoardRevision DisplayString + } + + cpqSsFanModuleChassisIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Chassis Index. + + The chassis index uniquely identifies a storage system chassis." + ::= { cpqSsFanModuleEntry 1 } + + cpqSsFanModuleIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Index. + + This index uniquely identifies a storage system fan module." + ::= { cpqSsFanModuleEntry 2 } + + cpqSsFanModuleStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notInstalled(2), + ok(3), + degraded(4), + failed(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Status. + + The following values are defined: + + other(1) + The agent is unable to determine if this storage system fan + module is installed. + + notInstalled(3) + The fan module is not installed. + + ok(2) + The fan module is installed and operating normally. + + degraded(4) + The fan module degraded. + + failed(5) + The fan module is failed. Replace the fan module." + ::= { cpqSsFanModuleEntry 3 } + + cpqSsFanModuleCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Condition. + + This is the condition of the storage system fan module. + The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The fan module is operating normally. No user action is + required. + + degraded(3) + The fan module is degraded. You need to check the fan module + for problems. + + failed(4) + The fan module has failed. Replace the fan module." + ::= { cpqSsFanModuleEntry 4 } + + cpqSsFanModuleLocation OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + fanBay(2), + composite(3), + fanBay2(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Location. + + The following values are defined: + + other(1) + The agent is unable to determine the location of this storage + system fan module. + + fanBay(2) + This fan module is installed in the first fan bay. + + composite(3) + The fan information is a composite of all fans in the storage + system. + + fanBay2(4) + This fan module is installed in the second fan bay." + ::= { cpqSsFanModuleEntry 5 } + + cpqSsFanModuleSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Serial Number. + + This is the fan module's serial number. This can be used + for identification purposes." + ::= { cpqSsFanModuleEntry 6 } + + cpqSsFanModuleBoardRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Board Revision. + + This is the fan module board revision." + ::= { cpqSsFanModuleEntry 7 } + + +-- **************************************************************************** +-- Storage System Temperature Sensor Table +-- ======================================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsTempSensorTable (1.3.6.1.4.1.232.8.2.2.5) +-- +-- **************************************************************************** + + cpqSsTempSensorTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsTempSensorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Table." + ::= { cpqSsBoxExtended 5 } + + cpqSsTempSensorEntry OBJECT-TYPE + SYNTAX CpqSsTempSensorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Entry." + INDEX { cpqSsTempSensorChassisIndex, cpqSsTempSensorIndex } + ::= { cpqSsTempSensorTable 1 } + + CpqSsTempSensorEntry ::= SEQUENCE + { + cpqSsTempSensorChassisIndex INTEGER, + cpqSsTempSensorIndex INTEGER, + cpqSsTempSensorStatus INTEGER, + cpqSsTempSensorCondition INTEGER, + cpqSsTempSensorLocation INTEGER, + cpqSsTempSensorCurrentValue INTEGER, + cpqSsTempSensorLimitValue INTEGER, + cpqSsTempSensorHysteresisValue INTEGER + } + + cpqSsTempSensorChassisIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Chassis Index. + + The chassis index uniquely identifies a storage system chassis." + ::= { cpqSsTempSensorEntry 1 } + + cpqSsTempSensorIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Index. + + This index uniquely identifies a temperature sensor." + ::= { cpqSsTempSensorEntry 2 } + + cpqSsTempSensorStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Status. + + The following values are defined: + + other(1) + The agent is unable to determine if the storage system + temperature sensor status. + + ok(2) + The temperature is OK. + + degraded(3) + The temperature is degraded. + + failed(4) + The temperature is failed." + ::= { cpqSsTempSensorEntry 3 } + + cpqSsTempSensorCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Condition. + + This is the condition of the storage system temperature sensor. + The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The temperature is within normal operating range. No user + action is required. + + degraded(3) + The temperature is outside of normal operating range. + + failed(4) + The temperature could permanently damage the system. + The storage system will automatically shutdown if this + condition is detected." + ::= { cpqSsTempSensorEntry 4 } + + cpqSsTempSensorLocation OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + fanBay(2), + backplane(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fan Module Location. + + The following values are defined: + + other(1) + The agent is unable to determine the location of this storage + system temperature sensor. + + fanBay(2) + This temperature sensor is located on the fan module in the + fan bay. + + backplane(3) + This temperature is located on the SCSI drive backplane." + ::= { cpqSsTempSensorEntry 5 } + + cpqSsTempSensorCurrentValue OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Current Value. + + The current value of the temperature sensor in degrees Celsius." + ::= { cpqSsTempSensorEntry 6 } + + cpqSsTempSensorLimitValue OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Limit Value. + + The limit value of the temperature sensor in degrees Celsius." + ::= { cpqSsTempSensorEntry 7 } + + cpqSsTempSensorHysteresisValue OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Temperature Sensor Hysteresis Value. + + The hysteresis value of the temperature sensor in degrees Celsius." + ::= { cpqSsTempSensorEntry 8 } + + +-- **************************************************************************** +-- Storage System SCSI Backplane Table +-- =================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsBackplaneTable (1.3.6.1.4.1.232.8.2.2.6) +-- +-- **************************************************************************** + + cpqSsBackplaneTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsBackplaneEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System SCSI Backplane Table." + ::= { cpqSsBoxExtended 6 } + + cpqSsBackplaneEntry OBJECT-TYPE + SYNTAX CpqSsBackplaneEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System SCSI Backplane Entry." + INDEX { cpqSsBackplaneChassisIndex, cpqSsBackplaneIndex } + ::= { cpqSsBackplaneTable 1 } + + CpqSsBackplaneEntry ::= SEQUENCE + { + cpqSsBackplaneChassisIndex INTEGER, + cpqSsBackplaneIndex INTEGER, + cpqSsBackplaneFWRev DisplayString, + cpqSsBackplaneDriveBays INTEGER, + cpqSsBackplaneDuplexOption INTEGER, + cpqSsBackplaneCondition INTEGER, + cpqSsBackplaneVersion INTEGER, + cpqSsBackplaneVendor DisplayString, + cpqSsBackplaneModel DisplayString, + cpqSsBackplaneFanStatus INTEGER, + cpqSsBackplaneTempStatus INTEGER, + cpqSsBackplaneFtpsStatus INTEGER, + cpqSsBackplaneSerialNumber DisplayString, + cpqSsBackplanePlacement INTEGER, + cpqSsBackplaneBoardRevision INTEGER, + cpqSsBackplaneSpeed INTEGER, + cpqSsBackplaneConnectionType INTEGER, + cpqSsBackplaneConnector DisplayString, + cpqSsBackplaneOnConnector INTEGER, + cpqSsBackplaneLocationString DisplayString + } + + cpqSsBackplaneChassisIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Chassis Index. + + The chassis index uniquely identifies a storage system chassis." + ::= { cpqSsBackplaneEntry 1 } + + cpqSsBackplaneIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Index. + + This index uniquely identifies a storage system backplane." + ::= { cpqSsBackplaneEntry 2 } + + cpqSsBackplaneFWRev OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Firmware Revision. + + This is the revision level of storage system backplane." + ::= { cpqSsBackplaneEntry 3 } + + cpqSsBackplaneDriveBays OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Drive Bays. + + This is the number of bays on this storage system backplane." + ::= { cpqSsBackplaneEntry 4 } + + cpqSsBackplaneDuplexOption OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notDuplexed(2), + duplexTop(3), + duplexBottom(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Duplex Option. + + The following values are defined: + + other (1) + The agent is unable to determine if this storage + system is duplexed. + + notDuplexed(2) + This storage system is not duplexed. + + duplexTop(3) + This is the top portion of a duplexed storage system. + + duplexBottom(4) + This is the bottom portion of a duplexed storage system." + ::= { cpqSsBackplaneEntry 5 } + + cpqSsBackplaneCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Condition. + + This is the overall condition of the backplane. + The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The storage system is operating normally. No user + action is required. + + degraded(3) + The storage system is degraded. You need to check the + temperature status or power supply status of this + storage system. + + failed(4) + The storage system has failed." + ::= { cpqSsBackplaneEntry 6 } + + cpqSsBackplaneVersion OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Version. + + This is the version of the drive box back plane." + ::= { cpqSsBackplaneEntry 7 } + + cpqSsBackplaneVendor OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..9)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Vendor + + This is the storage box's vendor name. + This can be used for identification purposes." + ::= { cpqSsBackplaneEntry 8 } + + cpqSsBackplaneModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..17)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Model. + + This is a description of the storage system's model. + This can be used for identification purposes." + ::= { cpqSsBackplaneEntry 9 } + + cpqSsBackplaneFanStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notInstalled(2), + ok(3), + degraded(4), + failed(5), + notSupported(6), + degraded-Fan1Failed(7), + degraded-Fan2Failed(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Fan Status. + + This is the current status of the fans in the storage system. + This value will be one of the following: + + other(1) + The agent is unable to determine if this storage system has + fan monitoring. + + notInstalled(2) + This unit does not support fan monitoring. + + ok(3) + All fans are working normally. + + degraded(4) + At least one storage system fan has failed, but there is still + sufficient cooling capacity to allow the system to continue. + The fan should be replaced. + + failed(5) + One or more storage system fans have failed. The fan(s) should + be replaced immediately to avoid hardware damage. + + notSupported(6) + The storage system does not support reporting fan status + through this backplane. The fan status is reported through the + first backplane on this storage system. + + degraded-Fan1Failed(7) + Fan 1 has failed, but there is still sufficient cooling + capacity to allow the system to continue. The fan should be + replaced. + + degraded-Fan2Failed(8) + Fan 2 has failed, but there is still sufficient cooling + capacity to allow the system to continue. The fan should be + replaced." + + ::= { cpqSsBackplaneEntry 10 } + + cpqSsBackplaneTempStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + noTemp(2), + ok(3), + degraded(4), + failed(5), + notSupported(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Fan Status. + + This value will be one of the following: + + other(1) + The agent is unable to determine if this storage system has + temperature monitoring. + + noTemp(2) + This unit does not support temperature monitoring. + + ok(3) + The temperature is within normal operating range. + + degraded(4) + The temperature is outside of normal operating range. + + failed(5) + The temperature could permanently damage the system. + + notSupported(6) + The storage system does not support reporting temperature + status through this backplane. The temperature status is + reported through the first backplane on this storage system." + ::= { cpqSsBackplaneEntry 11 } + + cpqSsBackplaneFtpsStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + noFltTolPower(2), + ok(3), + degraded(4), + failed(5), + notSupported(6), + noFltTolPower-Bay1Missing(7), + noFltTolPower-Bay2Missing(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Fault Tolerant Power Supply Status. + + This value specifies the overall status of the redundant power + supply in a drive box. This value will be one of the following: + + other(1) + The agent is unable to determine if this storage system has + redundant power supplies. + + noFltTolPower(2) + This unit does not have a redundant supply. + + ok(3) + There are no detected power supply failures. + + degraded(4) + One of the power supply units has failed. + + failed(5) + All of the power supplies have failed. A status of failed can + not currently be determined. + + notSupported(6) + The storage system does not support reporting fault tolerant + power supply status through this backplane. The fault tolerant + power supply status is reported through the first backplane on + this storage system. + + noFltTolPower-Bay1Missing(7), + This unit does not have a redundant supply. The power supply + in bay 1 is missing. + + noFltTolPower-Bay2Missing(8) + This unit does not have a redundant supply. The power supply + in bay 2 is missing." + ::= { cpqSsBackplaneEntry 12 } + + cpqSsBackplaneSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Serial Number. + + This is the storage system backplane serial number which is normally + displayed on the front bezel. This can be used for identification + purposes." + ::= { cpqSsBackplaneEntry 13 } + + cpqSsBackplanePlacement OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + internal(2), + external(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Placement. + + The following values are defined: + + other(1) + The agent is unable to determine if this storage system is + located internal or external to the system chassis. + + internal(2) + The storage system is located in the system chassis. + + external(3) + The storage system is located outside the system chassis + in an expansion box." + ::= { cpqSsBackplaneEntry 14 } + + cpqSsBackplaneBoardRevision OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Board Revision. + + This is the board revision of this storage system backplane." + ::= { cpqSsBackplaneEntry 15 } + + cpqSsBackplaneSpeed OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ultra3(2), + ultra320(3), + sata(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Backplane Speed. + + The following values are defined: + + other(1) + The agent is unable to determine the backplane speed for this + storage system. + + ultra3(2) + This storage system is capable of Ultra3 speeds. + + ultra320(3) + This storage system is capable of Ultra320 speeds. + + sata(4) + This storage system is capable of SATA speeds." + ::= { cpqSsBackplaneEntry 16 } + + + cpqSsBackplaneConnectionType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + scsiAttached(2), + sasAttached(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Backlane Box Connection Type. + + The following values are defined: + + other(1) + The agent is unable to determine the type of connection to + this backplane. + + scsiAttached(2) + This backplane is attached to the host via SCSI. + + sasAttached(3) + This backplane is attached to the host via SAS." + ::= { cpqSsBackplaneEntry 17 } + + cpqSsBackplaneConnector OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Backplane Connector. + + This is the connector to which the backplane is attached. + If the backplane connector cannot be determined, the agent will + return a NULL string." + ::= { cpqSsBackplaneEntry 18 } + + cpqSsBackplaneOnConnector OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Backplane on Connector. + + The backplane on connector indicates to which backplane instance + this table entry belongs. The instances start at one and + increment for each backplane attached to a connector." + ::= { cpqSsBackplaneEntry 19 } + + cpqSsBackplaneLocationString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Backplane Location String. + + This string describes the location of the backplane in relation + to the controller to which it is attached. If the location + string cannot be determined, the agent will return a NULL string." + ::= { cpqSsBackplaneEntry 20 } + + +-- **************************************************************************** +-- Storage System Fibre Attachment Table +-- ===================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsFibreAttachmentTable (1.3.6.1.4.1.232.8.2.2.7) +-- +-- The Storage System Fibre Attachment Group contains associations between +-- Fibre channel host controllers and the Fibre devices that are attached to +-- them. Since there can be multiple paths to some Fibre devices, there may +-- be multiple entries for a given device. +-- +-- **************************************************************************** + + cpqSsFibreAttachmentTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsFibreAttachmentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Table." + ::= { cpqSsBoxExtended 7 } + + cpqSsFibreAttachmentEntry OBJECT-TYPE + SYNTAX CpqSsFibreAttachmentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Entry." + INDEX { cpqSsFibreAttachmentIndex } + ::= { cpqSsFibreAttachmentTable 1 } + + CpqSsFibreAttachmentEntry ::= SEQUENCE + { + cpqSsFibreAttachmentIndex INTEGER, + cpqSsFibreAttachmentHostControllerIndex INTEGER, + cpqSsFibreAttachmentHostControllerPort INTEGER, + cpqSsFibreAttachmentDeviceType INTEGER, + cpqSsFibreAttachmentDeviceIndex INTEGER, + cpqSsFibreAttachmentDevicePort INTEGER + } + + cpqSsFibreAttachmentIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Index. + + The index uniquely identifies a Fibre Attachment association entry." + ::= { cpqSsFibreAttachmentEntry 1 } + + cpqSsFibreAttachmentHostControllerIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Host Controller Index. + + The host controller index indicates which host controller is + associated with this entry. This is equal to cpqFcaHostCntlrIndex, + from the Fibre Channel Host Controller Table." + ::= { cpqSsFibreAttachmentEntry 2 } + + cpqSsFibreAttachmentHostControllerPort OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Host Controller Port. + + This is the Fibre port number of the host controller. For each host + controller, the port number starts at 1 and increments for each port. + This is currently set to 1." + ::= { cpqSsFibreAttachmentEntry 3 } + + cpqSsFibreAttachmentDeviceType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + storageBox(2), + tapeController(3), + fibreChannelSwitch(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Device Type. + + This is the type of device associated with this entry. + The following values are defined: + + other(1) + The agent is unable to determine if the type of this device. + + storageBox(2) + The device is a Fibre attached storage system. + + tapeController(3) + The device is a Fibre attached tape controller. + + fibreChannelSwitch(4) + The device is a Fibre channel switch." + ::= { cpqSsFibreAttachmentEntry 4 } + + cpqSsFibreAttachmentDeviceIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Device Index. + + The is the index for the Fibre attached device. For a Fibre + attached storage system, this is equal to cpqSsChassisIndex from the + Storage System Chassis Table. For a Fibre attached tape controller, + this is equal to cpqFcTapeCntlrIndex from the Fibre Channel Tape + Controller Table. For a Fibre channel switch, this is equal to + cpqFcSwitchIndex from the Fibre Channel Switch Table." + ::= { cpqSsFibreAttachmentEntry 5 } + + cpqSsFibreAttachmentDevicePort OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System Fibre Attachment Device Port. + + This is the Fibre port on a device. For a Fibre attached storage + system, this is equal to cpqFcaCntlrBoxIoSlot from the Fibre Channel + Array Controller Table. For a Fibre attached tape controller, + this is currently set to 1. For a Fibre channel switch, this is + currently set to 1." + ::= { cpqSsFibreAttachmentEntry 6 } + + +-- **************************************************************************** +-- Storage System Scsi Attachment Table +-- ==================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsBoxExtended Group (1.3.6.1.4.1.232.8.2.2) +-- cpqSsScsiAttachmentTable (1.3.6.1.4.1.232.8.2.2.8) +-- +-- The Storage System Scsi Attachment Group contains associations between +-- internal array controllers and the external arrays that are attached to +-- them. Since there can be multiple paths to some external arrays, there +-- may be multiple entries for a given device. +-- +-- **************************************************************************** + + cpqSsScsiAttachmentTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsScsiAttachmentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Table." + ::= { cpqSsBoxExtended 8 } + + cpqSsScsiAttachmentEntry OBJECT-TYPE + SYNTAX CpqSsScsiAttachmentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Entry." + INDEX { cpqSsScsiAttachmentIndex } + ::= { cpqSsScsiAttachmentTable 1 } + + CpqSsScsiAttachmentEntry ::= SEQUENCE + { + cpqSsScsiAttachmentIndex INTEGER, + cpqSsScsiAttachmentControllerIndex INTEGER, + cpqSsScsiAttachmentControllerPort INTEGER, + cpqSsScsiAttachmentControllerTarget INTEGER, + cpqSsScsiAttachmentControllerLun INTEGER, + cpqSsScsiAttachmentChassisIndex INTEGER, + cpqSsScsiAttachmentChassisIoSlot INTEGER, + cpqSsScsiAttachmentPathStatus INTEGER, + cpqSsScsiAttachmentPathCondition INTEGER + } + + cpqSsScsiAttachmentIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Index. + + The index uniquely identifies a SCSI Attachment association entry." + ::= { cpqSsScsiAttachmentEntry 1 } + + cpqSsScsiAttachmentControllerIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Controller Index. + + The controller index indicates which internal array controller is + associated with this entry. This is equal to cpqDaCntlrIndex, + from the Array Controller Table." + ::= { cpqSsScsiAttachmentEntry 2 } + + cpqSsScsiAttachmentControllerPort OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Controller Port. + + The controller port indicates which SCSI port of an internal + controller is associated with this entry." + ::= { cpqSsScsiAttachmentEntry 3 } + + cpqSsScsiAttachmentControllerTarget OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Controller Target. + + The controller target indicates which SCSI target is associated with + this entry." + ::= { cpqSsScsiAttachmentEntry 4 } + + cpqSsScsiAttachmentControllerLun OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Controller Lun. + + The controller Lun indicates which SCSI Lun is associated with this + entry." + ::= { cpqSsScsiAttachmentEntry 5 } + + cpqSsScsiAttachmentChassisIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Chassis Index. + + The is the index for the SCSI attached storage system. This is equal + to cpqSsChassisIndex from the Storage System Chassis Table." + ::= { cpqSsScsiAttachmentEntry 6 } + + cpqSsScsiAttachmentChassisIoSlot OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Chassis I/O Slot. + + This is the I/O slot in the SCSI attached storage system. This is + equal to cpqFcaCntlrBoxIoSlot from the Fibre Channel Array Controller + Table." + ::= { cpqSsScsiAttachmentEntry 7 } + + cpqSsScsiAttachmentPathStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + offline(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Path Status. + + This is the status of this path to the chassis. The following + values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The path is operating normally. + + offline(3) + The path is offline." + ::= { cpqSsScsiAttachmentEntry 8 } + + cpqSsScsiAttachmentPathCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Storage System SCSI Attachment Path Condition. + + This is the condition of this path to the chassis." + ::= { cpqSsScsiAttachmentEntry 9 } + +-- **************************************************************************** +-- Storage System Drive Box Access Path Group +-- ========================================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsDrvBox Group (1.3.6.1.4.1.232.8.2) +-- cpqSsDrvBoxPathTable (1.3.6.1.4.1.232.8.2.3) +-- +-- **************************************************************************** + + cpqSsDrvBoxPathTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsDrvBoxPathEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Table." + ::= { cpqSsDrvBox 3 } + + cpqSsDrvBoxPathEntry OBJECT-TYPE + SYNTAX CpqSsDrvBoxPathEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Entry." + INDEX { cpqSsDrvBoxPathCntlrIndex, cpqSsDrvBoxPathBoxIndex, + cpqSsDrvBoxPathIndex } + ::= { cpqSsDrvBoxPathTable 1 } + + CpqSsDrvBoxPathEntry ::= SEQUENCE + { + cpqSsDrvBoxPathCntlrIndex INTEGER, + cpqSsDrvBoxPathBoxIndex INTEGER, + cpqSsDrvBoxPathIndex INTEGER, + cpqSsDrvBoxPathStatus INTEGER, + cpqSsDrvBoxPathCurrentRole INTEGER, + cpqSsDrvBoxPathHostConnector DisplayString, + cpqSsDrvBoxPathBoxOnConnector INTEGER, + cpqSsDrvBoxPathLocationString DisplayString + } + + cpqSsDrvBoxPathCntlrIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Controller Index. + + The controller index indicates to which adapter card instance + this table entry belongs." + ::= { cpqSsDrvBoxPathEntry 1 } + + cpqSsDrvBoxPathBoxIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Box Index. + + The box index indicates to which box instance on an adapter card + this table entry belongs. The value of this index is the same as + cpqSsDrvBoxBusIndex used under the drive box table." + ::= { cpqSsDrvBoxPathEntry 2 } + + cpqSsDrvBoxPathIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Index. + + This path index keeps track of multiple instances of access + paths from a controller to a storage box. This number, along with + the cpqSsDrvBoxPathCntlrIndex and cpqSsDrvBoxPathDrvIndex uniquely + identify a specific storage box access path" + ::= { cpqSsDrvBoxPathEntry 3 } + + cpqSsDrvBoxPathStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + linkDown(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Status. + + This shows the status of the drive box access path. The + following values are valid: + + Other (1) + Indicates that the instrument agent can not determine the + status of this access path. + + OK (2) + Indicates the access path is functioning properly. + + Link Down (3) + Indicates that the controller can no longer access the drive box + through this path." + ::= { cpqSsDrvBoxPathEntry 4 } + + cpqSsDrvBoxPathCurrentRole OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + active(2), + alternate(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Current Role. + + This shows the current role of drive box acess path. The + following values are valid: + + Other (1) + Indicates that the instrument agent does not recognize the + role of this access path. + + Active (2) + Indicates that this path is currently the default active + I/O path to access the drive box from the controller. + + Alternate (3) + Indicates that this path is currently the alternate I/O + path to access the physical drive from the controller." + ::= { cpqSsDrvBoxPathEntry 5 } + + cpqSsDrvBoxPathHostConnector OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Host Connector. + + This is the host connector to which the access path is ultimately + attached. If the host connector cannot be determined, the agent + will return a NULL string." + ::= { cpqSsDrvBoxPathEntry 6 } + + cpqSsDrvBoxPathBoxOnConnector OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Box on Connector. + + The box on connector indicates to which box instance this + access path belongs." + ::= { cpqSsDrvBoxPathEntry 7 } + + cpqSsDrvBoxPathLocationString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Drive Box Access Path Location String. + + This string describes drive box access path in relation to the + controller to which it is attached. If the location string + cannot be determined, the agent will return a NULL string." + ::= { cpqSsDrvBoxPathEntry 8 } + + +-- **************************************************************************** +-- Storage System Trap Group +-- ========================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsTrap Group (1.3.6.1.4.1.232.8.3) (deprecated) +-- +-- +-- The trap group maintains information about the number of traps issued +-- from the storageSys enterprise. The trap group also maintains a table of +-- the last several traps issued. This table is intended to give a +-- management application some recent status information immediately upon +-- accessing the agent. +-- +-- Implementation of the Trap group is optional for agents. +-- The trap group has been deprecated for Insight v2.00 Agents. +-- +-- **************************************************************************** + + cpqSsTrapPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of trap packets issued by the enterprise since + the instrument agent was loaded." + ::= { cpqSsTrap 1 } + + cpqSsTrapLogMaxSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The maximum number of entries that will currently be kept in + the trap log. If the maximum size has been reached and a new + trap occurs the oldest trap will be removed." + ::= { cpqSsTrap 2 } + +-- **************************************************************************** +-- Storage System Trap Log Table +-- ============================= +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsTrap Group (1.3.6.1.4.1.232.8.3) (deprecated) +-- cpqSsTrapLogTable (1.3.6.1.4.1.232.8.3.3) (deprecated) +-- +-- **************************************************************************** + + cpqSsTrapLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsTrapLogEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "An ordered list of trap log entries (conceptually a queue). + The trap log entries will be kept in the order in which they + were generated with the most recent trap at index 1 and the + oldest trap entry at index trapLogMaxSize. If the maximum + number size has been reached and a new trap occurs the oldest + trap will be removed when the new trap is added so the + trapMaxLogSize is not exceeded." + ::= { cpqSsTrap 3 } + + cpqSsTrapLogEntry OBJECT-TYPE + SYNTAX CpqSsTrapLogEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A description of a trap event." + INDEX { cpqSsTrapLogIndex } + ::= { cpqSsTrapLogTable 1 } + + CpqSsTrapLogEntry ::= SEQUENCE + { + cpqSsTrapLogIndex INTEGER, + cpqSsTrapType INTEGER, + cpqSsTrapTime OCTET STRING + } + + cpqSsTrapLogIndex OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The value of this object uniquely identifies this trapLogEntry + at this time. The most recent trap will have an index of 1 and + the oldest trap will have an index of trapLogMaxSize. Because of + the queue-like nature of the trapLog this particular trap event's + index will change as new traps are issued." + ::= { cpqSsTrapLogEntry 1 } + + cpqSsTrapType OBJECT-TYPE + SYNTAX INTEGER + { + cpqSsFanStatusChange(1), + cpqSs2FanStatusChange(8001), + cpqSsTempFailed(8002), + cpqSsTempDegraded(8003), + cpqSsTempOk(8004), + cpqSsSidePanelInPlace(8005), + cpqSsSidePanelRemoved(8006) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The type of the trap event that this entry describes. This + number refers to an entry in a list of traps enumerating the + possible traps the agent may issue." + ::= { cpqSsTrapLogEntry 2 } + + cpqSsTrapTime OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The time of the trap event that this entry describes. The time + is given in year (first octet), month, day of month, hour, + minute, second (last octet) order. Each octet gives the value in + BCD." + ::= { cpqSsTrapLogEntry 3 } + + +-- **************************************************************************** +-- RAID Storage System Group +-- ============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- cpqSsStorageSys Group (1.3.6.1.4.1.232.8) +-- cpqSsRaidSystem Group (1.3.6.1.4.1.232.8.4) +-- cpqSsRaidSystemTable (1.3.6.1.4.1.232.8.4.1) +-- +-- Implementation of the RAID Storage System group is mandatory. +-- +-- **************************************************************************** + + cpqSsRaidSystemTable OBJECT-TYPE + SYNTAX SEQUENCE OF CpqSsRaidSystemEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Storage System Table." + ::= { cpqSsRaidSystem 1 } + + cpqSsRaidSystemEntry OBJECT-TYPE + SYNTAX CpqSsRaidSystemEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Storage System Entry." + INDEX { cpqSsRaidSystemIndex } + ::= { cpqSsRaidSystemTable 1 } + + CpqSsRaidSystemEntry ::= SEQUENCE + { + cpqSsRaidSystemIndex INTEGER, + cpqSsRaidSystemName DisplayString, + cpqSsRaidSystemStatus INTEGER, + cpqSsRaidSystemCondition INTEGER, + cpqSsRaidSystemCntlr1SerialNumber DisplayString, + cpqSsRaidSystemCntlr2SerialNumber DisplayString + } + + cpqSsRaidSystemIndex OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "RAID Storage System Index. + + The RAID Storage System index indicates to which storage system instance + this table entry belongs." + + ::= { cpqSsRaidSystemEntry 1 } + + cpqSsRaidSystemName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "RAID Storage System Name. + + This is a description of the RAID Storage System's name. + This can be used for identification purposes." + + ::= { cpqSsRaidSystemEntry 2 } + + cpqSsRaidSystemStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + agentNotRunning(2), + good(3), + warning(4), + communicationLoss(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "RAID Storage System Status. + + This is the current status of the RAID Storage System. + This value will be one of the following: + + other(1) + Indicates that the agent does not recognize the state of the + RAID Storage System. You may need to upgrade the agent. + + agentNotRunning(2) + Indicates that the Storage Work agent is not running. You need + to restart the Storage Work agent. + + good(3) + Indicates that the system is operating properly. + + warning(4) + At least one component of the system failed. + + communicationLoss(5) + The RAID Storage System has a cable or communication problem. + Please check all cable connects to the host server." + + + ::= { cpqSsRaidSystemEntry 3 } + + cpqSsRaidSystemCondition OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + ok(2), + degraded(3), + failed(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "RAID Storage System Condition. + + This is the overall condition of the storage system. + The following values are defined: + + other(1) + The agent does not recognize the status. You may need to + upgrade your software. + + ok(2) + The storage system is operating normally. No user + action is required. + + degraded(3) + The storage system is degraded. At least one component + of the storage system failed. + + failed(4) + The storage system has failed." + + ::= { cpqSsRaidSystemEntry 4 } + + cpqSsRaidSystemCntlr1SerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "RAID Storage System Controller 1 Serial Number. + + This is the controller number 1's serial number which is normally + display on the front panel. This can be used for + identification purposes." + + ::= { cpqSsRaidSystemEntry 5 } + + cpqSsRaidSystemCntlr2SerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..24)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "RAID Storage System Controller 2 Serial Number. + + This is the controller number 2's serial number which is normally + display on the front panel. This can be used for + identification purposes." + + ::= { cpqSsRaidSystemEntry 6 } + + +-- **************************************************************************** +-- Storage System Trap Definitions +-- =============================== +-- +-- The compaq enterprise (1.3.6.1.4.1.232) +-- +-- The SNMP trap messages must not be bigger than 484 octets (bytes). +-- +-- Trap support in an SNMP agent implementation is optional. An SNMP +-- agent implementation may support all, some, or none of the traps. +-- If traps are supported, The user should be provided with the option of +-- disabling traps. +-- +-- ************************************************************************** + + cpqSsFanStatusChange TRAP-TYPE + ENTERPRISE cpqSsStorageSys + VARIABLES { cpqSsBoxFanStatus } + DESCRIPTION + "Storage System fan status change. + + The agent has detected a change in the Fan Status of a storage + system. The variable cpqSsBoxFanStatus indicates the current + fan status." + + --#TYPE "Fan Status Change (1)" + --#SUMMARY "Storage System fan status changed to %d." + --#ARGUMENTS {0} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 1 + + cpqSs2FanStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqSsBoxFanStatus } + DESCRIPTION + "Storage System fan status change. + + The agent has detected a change in the Fan Status of a storage + system. The variable cpqSsBoxFanStatus indicates the current + fan status." + + --#TYPE "Fan Status Change (8001)" + --#SUMMARY "Storage System fan status changed to %d." + --#ARGUMENTS {0} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8001 + + cpqSsTempFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqSsBoxTempStatus } + DESCRIPTION + "Storage System temperature failure. + + The agent has detected that a temperature status has been set + to failed. The storage system will be shutdown." + + --#TYPE "Storage System Temperature Failure (8002)" + --#SUMMARY "Storage System will be shutdown." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 8002 + + cpqSsTempDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqSsBoxTempStatus } + DESCRIPTION + "Storage System temperature degraded. + + The agent has detected a temperature status that has been set to + degraded. The storage system's temperature is outside of the + normal operating range." + + --#TYPE "Storage System Temp Degraded (8003)" + --#SUMMARY "Temp is outside of normal range." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 8003 + + cpqSsTempOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqSsBoxTempStatus } + DESCRIPTION + "Storage System temperature ok. + + The temperature status has been set to OK. The storage + system's temperature has returned to normal operating range. + It may be reactivated by the administrator." + + --#TYPE "Storage System Temp OK (8004)" + --#SUMMARY "Storage System temperature ok." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 8004 + + cpqSsSidePanelInPlace TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqSsBoxSidePanelStatus } + DESCRIPTION + "Storage System side panel is in place. + + The side panel status has been set to in place. The storage + system's side panel has returned to a properly installed state." + + --#TYPE "Storage System side panel is in place (8005)" + --#SUMMARY "Side panel is re-installed on unit." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 8005 + + + cpqSsSidePanelRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { cpqSsBoxSidePanelStatus } + DESCRIPTION + "Storage System side panel is removed. + + The side panel status has been set to removed. The storage + system's side panel is not in a properly installed state. This + situation may result in improper cooling of the drives in the + storage system due to air flow changes caused by the missing + side panel." + + --#TYPE "Storage System side panel is removed (8006)" + --#SUMMARY "Side panel is removed from unit." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 8006 + + cpqSsPwrSupplyDegraded TRAP-TYPE + ENTERPRISE compaq + DESCRIPTION + "A storage system power supply status has been set to degraded." + + --#TYPE "Power Supply Degraded (8007)" + --#SUMMARY "A storage system power supply unit has become degraded" + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 8007 + + + cpqSs3FanStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxFanStatus } + DESCRIPTION + "Storage System fan status change. + + The agent has detected a change in the Fan Status of a storage + system. The variable cpqSsBoxFanStatus indicates the current + fan status. + + User Action: If the fan status is degraded or failed, replace + any failed fans." + + --#TYPE "Fan Status Change (8008)" + --#SUMMARY "Storage System fan status changed to %d." + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8008 + + cpqSs3TempFailed TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxTempStatus } + DESCRIPTION + "Storage System temperature failure. + + The agent has detected that a temperature status has been set to + failed. The storage system will be shutdown. + + User Action: Shutdown the storage system as soon as possible. + Insure that the storage system environment is being cooled + properly and that no components are overheated." + + --#TYPE "Storage System Temperature Failure (8009)" + --#SUMMARY "Storage System will be shutdown." + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 8009 + + cpqSs3TempDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxTempStatus } + DESCRIPTION + "Storage System temperature degraded. + + The agent has detected a temperature status that has been set to + degraded. The storage system's temperature is outside of the + normal operating range. + + User Action: Shutdown the storage system as soon as possible. + Insure that the storage system environment is being cooled + properly and that no components are overheated." + + --#TYPE "Storage System Temp Degraded (8010)" + --#SUMMARY "Temp is outside of normal range." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 8010 + + cpqSs3TempOk TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxTempStatus } + DESCRIPTION + "Storage System temperature ok. + + The temperature status has been set to OK. The storage + system's temperature has returned to normal operating range. + It may be reactivated by the administrator. + + User Action: None." + + --#TYPE "Storage System Temp OK (8011)" + --#SUMMARY "Storage System temperature ok." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 8011 + + cpqSs3SidePanelInPlace TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxSidePanelStatus } + DESCRIPTION + "Storage System side panel is in place. + + The side panel status has been set to in place. The storage + system's side panel has returned to a properly installed state. + + User Action: None." + + --#TYPE "Storage System side panel is in place (8012)" + --#SUMMARY "Side panel is re-installed on unit." + --#ARGUMENTS {} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 8012 + + + cpqSs3SidePanelRemoved TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxSidePanelStatus } + DESCRIPTION + "Storage System side panel is removed. + + The side panel status has been set to removed. The storage + system's side panel is not in a properly installed state. This + situation may result in improper cooling of the drives in the + storage system due to air flow changes caused by the missing + side panel. + + User Action: Replace the storage system side panel." + + --#TYPE "Storage System side panel is removed (8013)" + --#SUMMARY "Side panel is removed from unit." + --#ARGUMENTS {} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 8013 + + cpqSs3PwrSupplyDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags } + DESCRIPTION + "A storage system power supply status has been set to degraded." + + --#TYPE "Power Supply Degraded (8014)" + --#SUMMARY "A storage system power supply unit has become degraded" + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + ::= 8014 + + cpqSs4PwrSupplyDegraded TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxFltTolPwrSupplyStatus } + DESCRIPTION + "A storage system power supply status has been set to degraded. + + User Action: Take action to restore power or replace any failed + storage system power supply." + + --#TYPE "Power Supply Degraded (8015)" + --#SUMMARY "A storage system power supply unit has become degraded" + --#ARGUMENTS {} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 8015 + + + cpqSsExFanStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsFanModuleLocation, + cpqSsFanModuleStatus } + DESCRIPTION + "Storage system fan status change. + + The agent has detected a change in the Fan Module Status of a + storage system. The variable cpqSsFanModuleStatus indicates the + current fan status. + + User Action: If the fan status is degraded or failed, replace + any failed fans." + + --#TYPE "Fan Status Change (8016)" + --#SUMMARY "Storage system fan status changed to %d." + --#ARGUMENTS {5} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8016 + + cpqSsExPowerSupplyStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsPowerSupplyBay, + cpqSsPowerSupplyStatus } + DESCRIPTION + "Storage system power supply status change. + + The agent has detected a change in the power supply status of a + storage system. The variable cpqSsPowerSupplyStatus indicates + the current status. + + User Action: If the power supply status is failed, take action to + restore power or replace the failed power supply." + + --#TYPE "Power Supply Status Change (8017)" + --#SUMMARY "Storage system power supply status changed to %d." + --#ARGUMENTS {5} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8017 + + cpqSsExPowerSupplyUpsStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsPowerSupplyBay, + cpqSsPowerSupplyUpsStatus } + DESCRIPTION + "Storage system power supply UPS status change. + + The agent has detected a change status of a UPS attached to a + storage system power supply. The variable + cpqSsPowerSupplyUpsStatus indicates the current status. + + User Action: If the UPS status is powerFailed(4) or batteryLow(5), + take action to restore power to the UPS." + + --#TYPE "Power Supply UPS Status Change (8018)" + --#SUMMARY "Storage system power supply UPS status changed to %d." + --#ARGUMENTS {5} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8018 + + cpqSsExTempSensorStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsTempSensorLocation, + cpqSsTempSensorStatus, cpqSsTempSensorCurrentValue } + DESCRIPTION + "Storage system temperature sensor status change. + + The agent has detected a change in the status of a storage + system temperature sensor. The variable cpqSsTempSensorStatus + indicates the current status. + + User Action: If the temperature status is degraded or failed, + shutdown the storage system as soon as possible. Insure that + the storage system environment is being cooled properly and that + no components are overheated." + + --#TYPE "Temperature Sensor Status Change (8019)" + --#SUMMARY "Storage system temperature sensor status changed to %d." + --#ARGUMENTS {5} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8019 + + cpqSsEx2FanStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsFanModuleLocation, + cpqSsFanModuleStatus, cpqSsFanModuleSerialNumber, + cpqSsFanModuleBoardRevision } + DESCRIPTION + "Storage system fan status change. + + The agent has detected a change in the fan module status of a + storage system. The variable cpqSsFanModuleStatus indicates the + current fan status. + + User Action: If the fan status is degraded or failed, replace + any failed fans." + + --#TYPE "Fan Status Change (8020)" + --#SUMMARY "Storage system fan status changed to %d." + --#ARGUMENTS {5} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8020 + + cpqSsEx2PowerSupplyStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsPowerSupplyBay, + cpqSsPowerSupplyStatus, cpqSsPowerSupplySerialNumber, + cpqSsPowerSupplyBoardRevision, + cpqSsPowerSupplyFirmwareRevision } + DESCRIPTION + "Storage system power supply status change. + + The agent has detected a change in the power supply status of a + storage system. The variable cpqSsPowerSupplyStatus indicates + the current status. + + User Action: If the power supply status is failed, take action to + restore power or replace the failed power supply." + + --#TYPE "Power Supply Status Change (8021)" + --#SUMMARY "Storage system power supply status changed to %d." + --#ARGUMENTS {5} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8021 + + cpqSsExBackplaneFanStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsBackplaneIndex, + cpqSsBackplaneVendor, cpqSsBackplaneModel, + cpqSsBackplaneSerialNumber, cpqSsBackplaneFanStatus } + DESCRIPTION + "Storage system fan status change. + + The agent has detected a change in the fan status of a storage + system. The variable cpqSsBackplaneFanStatus indicates the + current fan status. + + User Action: If the fan status is degraded or failed, replace + any failed fans." + + --#TYPE "Storage System Fan Status Change (8022)" + --#SUMMARY "Storage system fan status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8022 + + cpqSsExBackplaneTempStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsBackplaneIndex, + cpqSsBackplaneVendor, cpqSsBackplaneModel, + cpqSsBackplaneSerialNumber, cpqSsBackplaneTempStatus } + DESCRIPTION + "Storage system temperature status change. + + The agent has detected a change in the status of the temperature + in a storage system. The variable cpqSsBackplaneTempStatus + indicates the current status. + + User Action: If the temperature status is degraded or failed, + shutdown the storage system as soon as possible. Insure that + the storage system environment is being cooled properly and that + no components are overheated." + + --#TYPE "Storage System Temperature Status Change (8023)" + --#SUMMARY "Storage system temperature status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8023 + + cpqSsExBackplanePowerSupplyStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsBackplaneIndex, + cpqSsBackplaneVendor, cpqSsBackplaneModel, + cpqSsBackplaneSerialNumber, cpqSsBackplaneFtpsStatus } + DESCRIPTION + "Storage system power supply status change. + + The agent has detected a change in the power supply status of a + storage system. The variable cpqSsBackplaneFtpsStatus indicates + the current status. + + User Action: If the power supply status is degraded, take action to + restore power or replace the failed power supply." + + --#TYPE "Power Supply Status Change (8024)" + --#SUMMARY "Storage system power supply status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8024 + + cpqSsExRecoveryServerStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsChassisName, + cpqSsChassisTime, cpqSsChassisRsoStatus, + cpqSsChassisIndex } + DESCRIPTION + "Storage system recovery server option status change. + + The agent has detected a change in the recovery server option + status of a storage system. The variable cpqSsChassisRsoStatus + indicates the current status. + + User Action: If the RSO status is noSecondary(6) or linkDown(7), + insure the secondary server is operational and all cables are + connected properly. If the RSO status is secondaryRunningAuto(8) + or secondaryRunningUser(9), examine the the primary server for + failed components." + + --#TYPE "Recovery Server Option Status Change (8025)" + --#SUMMARY "Storage system recovery server option status changed to %d." + --#ARGUMENTS {4} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8025 + + cpqSs5FanStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxCntlrHwLocation, + cpqSsBoxCntlrIndex, cpqSsBoxBusIndex, cpqSsBoxVendor, + cpqSsBoxModel, cpqSsBoxSerialNumber, cpqSsBoxFanStatus } + DESCRIPTION + "Storage System fan status change. + + The agent has detected a change in the Fan Status of a storage + system. The variable cpqSsBoxFanStatus indicates the current + fan status. + + User Action: If the fan status is degraded or failed, replace + any failed fans." + + --#TYPE "Fan Status Change (8026)" + --#SUMMARY "Storage System fan status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8026 + + cpqSs5TempStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxCntlrHwLocation, + cpqSsBoxCntlrIndex, cpqSsBoxBusIndex, cpqSsBoxVendor, + cpqSsBoxModel, cpqSsBoxSerialNumber, cpqSsBoxTempStatus } + DESCRIPTION + "Storage System temperature status change. + + The agent has detected a change in the temperature status of a + storage system. The variable cpqSsBoxTempStatus indicates the + current temperature status. + + User Action: If the temperature status is degraded or failed, + shutdown the storage system as soon as possible. Insure that + the storage system environment is being cooled properly and that + no components are overheated." + + --#TYPE "Temperature Status Change (8027)" + --#SUMMARY "Storage System temperature status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8027 + + cpqSs5PwrSupplyStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxCntlrHwLocation, + cpqSsBoxCntlrIndex, cpqSsBoxBusIndex, cpqSsBoxVendor, + cpqSsBoxModel, cpqSsBoxSerialNumber, + cpqSsBoxFltTolPwrSupplyStatus } + DESCRIPTION + "Storage system power supply status change. + + The agent has detected a change in the power supply status of a + storage system. The variable cpqSsBoxFltTolPwrSupplyStatus + indicates the current power supply status. + + User Action: If the power supply status is degraded, take action + to restore power or replace the failed power supply." + + --#TYPE "Power Supply Status Change (8028)" + --#SUMMARY "Storage system power supply status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + + ::= 8028 + + cpqSs6FanStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxCntlrHwLocation, + cpqSsBoxCntlrIndex, cpqSsBoxBusIndex, cpqSsBoxVendor, + cpqSsBoxModel, cpqSsBoxSerialNumber, + cpqSsBoxFanStatus, cpqSsBoxLocationString } + DESCRIPTION + "Storage System fan status change. + + The agent has detected a change in the Fan Status of a storage + system. The variable cpqSsBoxFanStatus indicates the current + fan status. + + User Action: If the fan status is degraded or failed, replace + any failed fans." + + --#TYPE "Fan Status Change (8029)" + --#SUMMARY "Storage System fan status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8029 + + cpqSs6TempStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxCntlrHwLocation, + cpqSsBoxCntlrIndex, cpqSsBoxBusIndex, cpqSsBoxVendor, + cpqSsBoxModel, cpqSsBoxSerialNumber, + cpqSsBoxTempStatus, cpqSsBoxLocationString } + DESCRIPTION + "Storage System temperature status change. + + The agent has detected a change in the temperature status of a + storage system. The variable cpqSsBoxTempStatus indicates the + current temperature status. + + User Action: If the temperature status is degraded or failed, + shutdown the storage system as soon as possible. Insure that + the storage system environment is being cooled properly and that + no components are overheated." + + --#TYPE "Temperature Status Change (8030)" + --#SUMMARY "Storage System temperature status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8030 + + cpqSs6PwrSupplyStatusChange TRAP-TYPE + ENTERPRISE compaq + VARIABLES { sysName, cpqHoTrapFlags, cpqSsBoxCntlrHwLocation, + cpqSsBoxCntlrIndex, cpqSsBoxBusIndex, cpqSsBoxVendor, + cpqSsBoxModel, cpqSsBoxSerialNumber, + cpqSsBoxFltTolPwrSupplyStatus, cpqSsBoxLocationString } + DESCRIPTION + "Storage system power supply status change. + + The agent has detected a change in the power supply status of a + storage system. The variable cpqSsBoxFltTolPwrSupplyStatus + indicates the current power supply status. + + User Action: If the power supply status is degraded, take action + to restore power or replace the failed power supply." + + --#TYPE "Power Supply Status Change (8031)" + --#SUMMARY "Storage system power supply status changed to %d." + --#ARGUMENTS {8} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#VARBINDSEVERITY 2 + + ::= 8031 + +END diff --git a/pandora_console/attachment/mibs/DECNET-PHIV-MIB b/pandora_console/attachment/mibs/DECNET-PHIV-MIB new file mode 100644 index 0000000000..e811aefd15 --- /dev/null +++ b/pandora_console/attachment/mibs/DECNET-PHIV-MIB @@ -0,0 +1,3041 @@ +-- Changes for RFC 1559 (DECnet Phase IV MIB) +-- Fixed the following so that the syntax specified for them +-- in SEQENCES matches the syntax specified in the +-- OBJECT-TYPE macro: +-- phivCircuitLineIndex in sequence PhivCircuitParametersEntry +-- phivDDCMPCircuitAdjNodeAddr in sequence PhivDDCMPCircuitParametersEntry +-- phivDDCMPCircuitSelectTimeouts in sequence PhivDDCMPCircuitCountEntry +-- phivCountersCountSendFailure in sequence PhivCountersCountEntry +-- phivCountersCountCollDetectFailure in sequence PhivCountersCountEntry +-- phivCountersCountReceiveFailure in sequence PhivCountersCountEntry +-- phivCountersCountUnrecFrameDest in sequence PhivCountersCountEntry +-- phivCountersCountDataOver in sequence PhivCountersCountEntry +-- phivCountersCountSysBuffUnav in sequence PhivCountersCountEntry +-- phivCountersCountUsrBuffUnav in sequence PhivCountersCountEntry +-- dperkins@scruznet.com + + + DECNET-PHIV-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Gauge + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + mib-2, DisplayString + FROM RFC1213-MIB; + + -- DECNet Phase-IV MIB + + phiv OBJECT IDENTIFIER ::= { mib-2 18 } + + -- textual conventions + + PhivAddr ::= OCTET STRING (SIZE (2)) + -- This data type is intended as a short word representation of + -- standard DECnet Phase IV addresses. DECnet addresses are + -- hierarchically structured numbers assigned to a particular + -- DECnet node. The address is structured so that the area + -- number is contained in the most significant 6 bits of the + -- first octet. The next 2 bits of the first octet contain + -- the first two bits of the host address. The remainder of + -- the host address is contained in the second octet. + + PhivCounter ::= INTEGER + -- This data type has been created for DECnet counters. These + -- counters latch at their maximum specified value until either + -- the system is restarted, or they are reset to zero by the user + -- or management software. + + InterfaceIndex ::= INTEGER + -- The range of ifIndex, i.e., (1..2147483647) + + + -- groups in the decnetiv mib + + phivSystem OBJECT IDENTIFIER ::= { phiv 1 } + phivManagement OBJECT IDENTIFIER ::= { phiv 2 } + session OBJECT IDENTIFIER ::= { phiv 3 } + end OBJECT IDENTIFIER ::= { phiv 4 } + routing OBJECT IDENTIFIER ::= { phiv 5 } + circuit OBJECT IDENTIFIER ::= { phiv 6 } + ddcmp OBJECT IDENTIFIER ::= { phiv 7 } + control OBJECT IDENTIFIER ::= { phiv 8 } + ethernet OBJECT IDENTIFIER ::= { phiv 9 } + counters OBJECT IDENTIFIER ::= { phiv 10 } + adjacency OBJECT IDENTIFIER ::= { phiv 11 } + line OBJECT IDENTIFIER ::= { phiv 12 } + nonBroadcastLine OBJECT IDENTIFIER ::= { phiv 14 } + area OBJECT IDENTIFIER ::= { phiv 15 } + + -- System Group + + -- The implementation of the System Group is mandatory for + -- all systems. + + phivSystemState OBJECT-TYPE + SYNTAX INTEGER { + on (1), + off (2), + shut (3), + restricted (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This represents the operational state of the executor + node. + The possible states are: + ON Allows logical links. + OFF Allows no new links, terminates existing + links, and stops routing traffic through. + SHUT Allows no new logical links, does not + destroy existing logical links, and goes + to the OFF state when all logical links are + gone. + RESTRICTED Allows no new incoming logical links from + other nodes. + + NOTE: These values are incremented by one compared to + the standard DECnet values in order to maintain + compliance with RFC 1155)." + ::= { phivSystem 1 } + + phivExecIdent OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is a text string that describes the executor node + (for example, 'Research Lab'). The string is up to 32 + characters of any type." + ::= { phivSystem 2 } + + -- Network Management Group + + -- The implementation of the Network Management Group is + -- mandatory for all systems which contain a DECnet-style + -- management version. + + + phivMgmtMgmtVers OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the read-only Network Management Version, + consisting of the version number, the Engineering + Change Order (ECO) number, and the user ECO number + (for example, 3.0.0). This parameter applies to the + executor node only." + ::= { phivManagement 1 } + + -- Session Layer Group + + -- The implementation of the Session Layer Group is optional. + -- A system can be said to implement this group if and only if + -- all objects in this group are implemented. + + phivSessionSystemName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name to be associated with the node identification. + Only one name can be assigned to a node address or a + circuit identification. No name should be used more than + once in a DECnet network. Node-name is one to six upper + case alphanumeric characters with at least one alpha + character. A length of 0 indicates no name." + ::= { session 1 } + + phivSessionInTimer OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum duration between the + time a connect is received for a process at the + executor node and the time that process accepts or + rejects it. If the connect is not accepted or rejected + by the user within the number of seconds specified, + Session Control rejects it for the user. A value of 0 + indicates no timer is running." + ::= { session 2 } + + phivSessionOutTimer OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the duration between the time the + executor requests a connect and the time that connect is + acknowledged by the destination node. If the connect is + not acknowledged within the number of seconds + specified, Session Control returns an error. A value of 0 + indicates no timer is running." + ::= { session 3 } + + -- End Communication Layer Group + + -- The implementation of the End Communication Layer Group is optional. + -- A system can be said to implement this group if and only if + -- all objects in this group are implemented. + + -- Remote State Table + + phivEndRemoteTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivEndRemoteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about the state of sessions between the + node under study and the nodes found in the table." + ::= { end 1 } + + phivEndRemoteEntry OBJECT-TYPE + SYNTAX PhivEndRemoteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular remote node as seen + from the end communication layer." + INDEX { phivEndRemoteHostNodeID } + ::= { phivEndRemoteTable 1 } + + PhivEndRemoteEntry ::= + SEQUENCE { + phivEndRemoteHostNodeID + PhivAddr, + phivEndRemoteState + INTEGER, + phivEndCircuitIndex + INTEGER, + phivEndActiveLinks + INTEGER, + phivEndDelay + INTEGER + } + + phivEndRemoteHostNodeID OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value is the address of the remote node to be + evaluated." + ::= { phivEndRemoteEntry 1 } + + phivEndRemoteState OBJECT-TYPE + SYNTAX INTEGER { + on (1), + off (2), + shut (3), + restricted (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This represents the operational state of the remote node + being evaluated. + The possible states are: + + ON Allows logical links. + OFF Allows no new links, terminates existing + links, and stops routing traffic through. + SHUT Allows no new logical links, does not + destroy existing logical links, and goes + to the OFF state when all logical links are + gone. + RESTRICTED Allows no new incoming logical links from + other nodes. + + NOTE: These values are incremented by one compared to + the standard DECnet values in order to maintain + compliance with RFC 1155." + ::= { phivEndRemoteEntry 2 } + + phivEndCircuitIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index value for each known circuit used to + communicate with the remote node. This is the same + value as phivCircuitIndex." + ::= { phivEndRemoteEntry 3 } + + phivEndActiveLinks OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter represents the number of active + logical links from the executor to the destination node." + ::= { phivEndRemoteEntry 4 } + + phivEndDelay OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter is the average round trip + delay in seconds to the destination node. This + parameter is kept on a remote node basis." + ::= { phivEndRemoteEntry 5 } + + + -- End System Counter Table + + phivEndCountTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivEndCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about the counters associated with each end + system that is known to the entity. These counters + reflect totals from the perspective of the executor + node." + ::= { end 2 } + + phivEndCountEntry OBJECT-TYPE + SYNTAX PhivEndCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular session between two end + systems." + INDEX { phivEndCountHostNodeID } + ::= { phivEndCountTable 1 } + + PhivEndCountEntry ::= + SEQUENCE { + phivEndCountHostNodeID + PhivAddr, + phivEndCountSecsLastZeroed + PhivCounter, + phivEndCountUsrBytesRec + PhivCounter, + phivEndCountUsrBytesSent + PhivCounter, + phivEndUCountUsrMessRec + PhivCounter, + phivEndCountUsrMessSent + PhivCounter, + phivEndCountTotalBytesRec + PhivCounter, + phivEndCountTotalBytesSent + PhivCounter, + phivEndCountTotalMessRec + PhivCounter, + phivEndCountTotalMessSent + PhivCounter, + phivEndCountConnectsRecd + PhivCounter, + phivEndCountConnectsSent + PhivCounter, + phivEndCountReponseTimeouts + PhivCounter, + phivEndCountRecdConnectResErrs + PhivCounter + } + + phivEndCountHostNodeID OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value is the address of the remote node to be + evaluated." + ::= { phivEndCountEntry 1 } + + phivEndCountSecsLastZeroed OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value is the number of seconds that have elapsed + since the counters for the node in this table row were + last set to zero. This counter is located in the + network management layer, but is returned with the + end system information which follows." + ::= { phivEndCountEntry 2 } + + phivEndCountUsrBytesRec OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of user bytes received from the target host." + ::= { phivEndCountEntry 3 } + + phivEndCountUsrBytesSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of user bytes sent to the target host." + ::= { phivEndCountEntry 4 } + + phivEndUCountUsrMessRec OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of user messages received from the target host." + ::= { phivEndCountEntry 5 } + + phivEndCountUsrMessSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of user messages sent to the target host." + ::= { phivEndCountEntry 6 } + + phivEndCountTotalBytesRec OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of bytes received from the target host." + ::= { phivEndCountEntry 7 } + + phivEndCountTotalBytesSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of bytes sent to the target host." + ::= { phivEndCountEntry 8 } + + phivEndCountTotalMessRec OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of messages received from the target host." + ::= { phivEndCountEntry 9 } + + phivEndCountTotalMessSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of messages sent to the target host." + ::= { phivEndCountEntry 10 } + + phivEndCountConnectsRecd OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of connects received from the target host." + ::= { phivEndCountEntry 11 } + + phivEndCountConnectsSent OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of connects sent to the target host." + ::= {phivEndCountEntry 12 } + + phivEndCountReponseTimeouts OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of response timeouts." + ::= { phivEndCountEntry 13 } + + phivEndCountRecdConnectResErrs OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of received connect resource errors." + ::= {phivEndCountEntry 14 } + + -- additional End System objects + + phivEndMaxLinks OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum active logical + link count allowed for the executor." + ::= { end 3 } + + phivEndNSPVers OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter represents the version number + of the node End Communication S/W. The format is + version number, ECO, and user ECO, e.g., 4.1.0" + ::= { end 4 } + + phivEndRetransmitFactor OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of times the + source End Communication at the executor node will + restart the retransmission timer when it expires. If + the number is exceeded, Session Control disconnects the + logical link for the user." + ::= { end 5 } + + phivEndDelayFact OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the number by which to multiply one sixteenth + of the estimated round trip delay to a node to set the + retransmission timer to that node." + ::= { end 6 } + + phivEndDelayWeight OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This number represents the weight to apply to a + current round trip delay estimate to a remote node + when updating the estimated round trip delay to a node. + On some systems the number must be 1 less than a power + of 2 for computational efficiency." + ::= { end 7 } + + phivEndInactivityTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum duration of inactivity + (no data in either direction) on a logical link before + the node checks to see if the logical link still works. + If no activity occurs within the minimum number of + seconds, End Communication generates artificial + traffic to test the link (End Communication + specification)." + ::= { end 8 } + + phivEndCountZeroCount OBJECT-TYPE + SYNTAX INTEGER { + other (1), + reset (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When this value is set to 2, all of the counters in + the End System Counter Table are set to zero." + ::= { end 9 } + + phivEndMaxLinksActive OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the high water mark for the + number of links that were active at any one time." + ::= { end 10 } + + -- Routing Layer Group + + -- The implementation of the Routing Layer Group is mandatory for + -- all systems that implement level 1 routing layer + -- communications. + + phivRouteBroadcastRouteTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value determines the maximum time in seconds + allowed between Routing updates on Ethernet + circuits. When this timer expired before a routing + update occurs, a routing update is forced. With a + standard calculation, Routing also uses this timer + to enforce a minimum delay between routing updates." + ::= { routing 1 } + + phivRouteBuffSize OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter value determines the maximum size of + a Routing message. It therefore determines the maximum + size message that can be forwarded. This size includes + protocol overhead down to and including the End + Communication layer, plus a constant value of 6. (This + value of 6 is included to provide compatibility with + the parameter definition in Phase III, which included + the Routing overhead.) It does not include Routing or + Data link overhead (except for the constant value of + 6). There is one buffer size for all circuits. + + NOTE: The BUFFER SIZE defines the maximum size messages + that the Routing layer can forward. The SEGMENT BUFFER + SIZE (defined below) defines the maximum size messages + that the End Communication layer can transmit or + receive. The SEGMENT BUFFER SIZE is always less than + or equal to the BUFFER SIZE. Normally the two + parameters will be equal. They may be different to + allow the network manager to alter buffer sizes + on all nodes without interruption of service. They both + include an extra 6 bytes for compatibility with Phase + III." + ::= { routing 2 } + + phivRouteRoutingVers OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter identifies the executor node's + Routing version number. The format is version number, + ECO, and user ECO, e.g., 4.1.0" + ::= { routing 3 } + + phivRouteMaxAddr OBJECT-TYPE + SYNTAX INTEGER (1..1023) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the largest node number and, + therefore, number of nodes that can be known about + by the executor node's home area." + ::= { routing 4 } + + phivRouteMaxBdcastNonRouters OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum total number of + nonrouters the executor node can have on its Ethernet + circuits." + ::= { routing 5 } + + phivRouteMaxBdcastRouters OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum total number of + routers the executor node can have on its Ethernet + circuits." + ::= { routing 6 } + + phivRouteMaxBuffs OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of transmit + buffers that Routing may use for all circuits." + ::= { routing 7 } + + phivRouteMaxCircuits OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of Routing + circuits that the executor node can know about." + ::= { routing 8 } + + phivRouteMaxCost OBJECT-TYPE + SYNTAX INTEGER (1..1022) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum total path cost + allowed from the executor to any node within an area. + The path cost is the sum of the circuit costs along + a path between two nodes. This parameter defines the + point where the executor node's Routing routing + decision algorithm declares another node unreachable + because the cost of the least costly path to the + other node is excessive. For correct operation, this + parameter must not be less than the maximum path cost + of the network." + ::= { routing 9 } + + phivRouteMaxHops OBJECT-TYPE + SYNTAX INTEGER (1..30) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of routing hops + allowable from the executor to any other reachable node + within an area. (A hop is the logical distance over a + circuit between two adjacent nodes.) This parameter + defines the point where the executor node's Routing + routing decision algorithm declares another node + unreachable because the length of the shortest path + between the two nodes is too long. For correct + operation, this parameter must not be less than the + network diameter. (The network diameter is the + reachability distance between the two nodes of the + network having the greatest reachability distance, + where reachability distance is the length the shortest + path between a given pair of nodes.)" + ::= { routing 10 } + + phivRouteMaxVisits OBJECT-TYPE + SYNTAX INTEGER (1..63) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of nodes a + message coming into the executor node can have visited. + If the message is not for this node and the MAXIMUM + VISITS number is exceeded, the message is discarded. + The MAXIMUM VISITS parameter defines the point where + the packet lifetime control algorithm discards + a packet that has traversed too many nodes. For correct + operation, this parameter must not be less than the + maximum path length of the network. (The maximum path + length is the routing distance between the two nodes of + the network having the greatest routing distance, where + routing distance is the length of the least costly + path between a given pair of nodes.)" + ::= { routing 11 } + + phivRouteRoutingTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value determines the maximum time in seconds + allowed between Routing updates on non-Ethernet + circuits. When this timer expires before a routing + update occurs, a routing update is forced." + ::= { routing 12 } + + phivRouteSegBuffSize OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter value determines the maximum size of an + end-to-end segment. The size is a decimal integer in + the range 1-65535. This size is in bytes. This size + includes protocol overhead down to and including the + End Communication layer, plus a constant value of 6. + (This value of 6 is included to provide compatibility + with the BUFFER SIZE parameter definition.) It does not + include Routing or Data link overhead (except for the + constant value of 6)." + ::= { routing 13 } + + phivRouteType OBJECT-TYPE + SYNTAX INTEGER { + routing-III (1), + nonrouting-III (2), + area (3), + routing-IV (4), + nonrouting-IV (5) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This parameter indicates the type of the executor + node. The node-type is one of the following: + + routing-III + nonrouting-III + routing-IV + ronrouting-IV + area + + A routing node has full routing capability. A + nonrouting node contains a subset of the Routing + routing modules. The III and IV indicate the DNA + phase of the node. Nonrouting nodes can deliver + and receive packets to and from any node, but cannot + route packets from other nodes through to other nodes. + An area node routes between areas. Refer to the Routing + specification for details. + + For adjacent nodes, this is a read-only parameter that + indicates the type of the reachable adjacent node. + NOTE: The ROUTING-III and NONROUTING-III values are + incremented by one compared to the standard DECnet + values in order to maintain compliance with RFC 1155)" + ::= { routing 14 } + + phivRouteCountAgedPktLoss OBJECT-TYPE + SYNTAX PhivCounter (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of aged packet losses." + ::= { routing 15 } + + phivRouteCountNodeUnrPktLoss OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of node unreachable packet losses." + ::= { routing 16 } + + phivRouteCountOutRngePktLoss OBJECT-TYPE + SYNTAX PhivCounter (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of node out-of-range packet losses." + ::= { routing 17 } + + phivRouteCountOverSzePktLoss OBJECT-TYPE + SYNTAX PhivCounter (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of Oversized packet losses." + ::= { routing 18 } + + phivRouteCountPacketFmtErr OBJECT-TYPE + SYNTAX PhivCounter (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of packet format errors." + ::= { routing 19 } + + phivRouteCountPtlRteUpdtLoss OBJECT-TYPE + SYNTAX PhivCounter (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of partial routing update losses." + ::= { routing 20 } + + phivRouteCountVerifReject OBJECT-TYPE + SYNTAX PhivCounter (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of verification rejects." + ::= { routing 21 } + + -- Level 1 Routing Table + + phivLevel1RouteTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivLevel1RouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about the currently known DECnet Phase + IV Routes." + ::= { routing 22 } + + phivLevel1RouteEntry OBJECT-TYPE + SYNTAX PhivLevel1RouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about the currently known DECnet Phase + IV Routes." + INDEX { phivLevel1RouteNodeAddr } + ::= { phivLevel1RouteTable 1 } + + PhivLevel1RouteEntry ::= + SEQUENCE { + phivLevel1RouteNodeAddr + PhivAddr, + phivLevel1RouteCircuitIndex + INTEGER, + phivLevel1RouteCost + INTEGER, + phivLevel1RouteHops + INTEGER, + phivLevel1RouteNextNode + PhivAddr + } + + phivLevel1RouteNodeAddr OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value is the address of the node about which + routing information is contained in this level 1 + routing table." + ::= { phivLevel1RouteEntry 1 } + + phivLevel1RouteCircuitIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index value for each known circuit. This is + the index to the circuit state table and is the same + value as phivCircuitIndex." + ::= { phivLevel1RouteEntry 2 } + + phivLevel1RouteCost OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter represents the total cost + over the current path to the destination node. Cost is + a positive integer value associated with using a + circuit. Routing routes messages (data) along the path + between two nodes with the smallest cost. COST is kept + on a remote node basis." + ::= { phivLevel1RouteEntry 3 } + + phivLevel1RouteHops OBJECT-TYPE + SYNTAX INTEGER (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter represents the number of hops + over to a destination node. A hop is Routing value + representing the logical distance between two nodes in + a network. HOPS is kept on a remote node basis." + ::= { phivLevel1RouteEntry 4 } + + phivLevel1RouteNextNode OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only value indicates the next node on the + circuit used to get to the node under scrutiny + (next hop)." + ::= { phivLevel1RouteEntry 5 } + + -- Additional routing parameters + + phivRouteCountZeroCount OBJECT-TYPE + SYNTAX INTEGER { + other (1), + reset (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When this value is set to 2, the following objects are + set to Zero: phivRouteCountAgedPktLoss, + phivRouteCountNodeUnrPktLoss, + phivRouteCountOutRngePktLoss, + phivRouteCountOverSzePktLoss, + phivRouteCountPacketFmtErr, + phivRouteCountPtlRteUpdtLoss, and + phivRouteCountVerifReject." + ::= { routing 23 } + + phivRouteSystemAddr OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "DECnet Phase IV node address." + ::= { routing 24 } + + phivRouteRoutingType OBJECT-TYPE + SYNTAX INTEGER { + routing-III (1), + nonrouting-III (2), + area (3), + routing-IV (4), + nonrouting-IV (5) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This read-write parameter indicates the type of the executor + node. The node-type is one of the following: + + routing-III + nonrouting-III + routing-IV + ronrouting-IV + area + + A routing node has full routing capability. A + nonrouting node contains a subset of the Routing + routing modules. The III and IV indicate the DNA + phase of the node. Nonrouting nodes can deliver + and receive packets to and from any node, but cannot + route packets from other nodes through to other nodes. + An area node routes between areas. Refer to the Routing + specification for details. + + For adjacent nodes, this is a read-only parameter that + indicates the type of the reachable adjacent node. + NOTE: The ROUTING-III and NONROUTING-III values are + incremented by one compared to the standard DECnet + values in order to maintain compliance with RFC 1155)" + ::= { routing 25 } + + phivRouteSystemAddress OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "DECnet Phase IV node address." + ::= { routing 26 } + + -- Circuit Group + + -- The implementation of the Circuit Group is mandatory for + -- all systems. + + -- Circuit Parameters Table + + phivCircuitParametersTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivCircuitParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about the parameters associated with all + circuits currently known." + ::= {circuit 1 } + + phivCircuitParametersEntry OBJECT-TYPE + SYNTAX PhivCircuitParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Parameters information about all circuits currently + known." + INDEX { phivCircuitIndex } + ::= { phivCircuitParametersTable 1 } + + PhivCircuitParametersEntry ::= + SEQUENCE { + phivCircuitIndex + INTEGER, + phivCircuitLineIndex + InterfaceIndex, + phivCircuitCommonState + INTEGER, + phivCircuitCommonSubState + INTEGER, + phivCircuitCommonName + DisplayString, + phivCircuitExecRecallTimer + INTEGER, + phivCircuitCommonType + INTEGER, + phivCircuitService + INTEGER, + phivCircuitExecCost + INTEGER, + phivCircuitExecHelloTimer + INTEGER + } + + phivCircuitIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index value for each known circuit." + ::= { phivCircuitParametersEntry 1 } + + phivCircuitLineIndex OBJECT-TYPE + SYNTAX InterfaceIndex + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The line on which this circuit is active. This is + the same as the ifIndex." + ::= { phivCircuitParametersEntry 2 } + + phivCircuitCommonState OBJECT-TYPE + SYNTAX INTEGER { + on (1), + off (2), + service (3), + cleared (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the circuit's Network Management + operational state. NOTE: These values are incremented + by one compared to the standard DECnet values in order + to maintain compliance with RFC 1155." + ::= { phivCircuitParametersEntry 3 } + + phivCircuitCommonSubState OBJECT-TYPE + SYNTAX INTEGER { + starting (1), + reflecting (2), + looping (3), + loading (4), + dumping (5), + triggering (6), + autoservice (7), + autoloading (8), + autodumping (9), + autotriggering (10), + synchronizing (11), + failed (12), + running (13) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the circuit's Network Management + operational and service substate. NOTE: These values are + incremented by one compared to the standard DECnet values + in order to maintain compliance with RFC 1155." + ::= { phivCircuitParametersEntry 4 } + + phivCircuitCommonName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the circuit entry in the table, for example, + SVA-0 or in a level 2 router ASYNC-8 or ETHER-1)." + ::= { phivCircuitParametersEntry 5 } + + phivCircuitExecRecallTimer OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter represents the minimum number of + seconds to wait before restarting the circuit. A + value of 0 indicates not timer is running." + ::= { phivCircuitParametersEntry 6 } + + phivCircuitCommonType OBJECT-TYPE + SYNTAX INTEGER { + ddcmp-point (1), + ddcmp-control (2), + ddcmp-tributary (3), + x25 (4), + ddcmp-dmc (5), + ethernet (6), + ci (7), + qp2-dte20 (8), + bisync (9), + other (14), + fddi (15) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Represents the type of the circuit. For X.25 circuits, + the value must be set to X25. For DDCMP and Ethernet + circuits it is read only and is the same value as the + protocol of the associated line. + NOTE: Values 1 - 5 are incremented by one compared to the + standard DECnet values in order to maintain compliance + with RFC 1155." + ::= { phivCircuitParametersEntry 7 } + + phivCircuitService OBJECT-TYPE + SYNTAX INTEGER { + enabled (1), + disabled (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value indicates whether or not Network Management + allows service operations on a circuit. The values for + service-control are as follows: + + ENABLED SERVICE state and/or service functions are + allowed. + + DISABLED SERVICE state and/or service functions are not + allowed. + + NOTE: These values are incremented by one compared to the + standard DECnet values in order to maintain compliance + with RFC 1155." + ::= { phivCircuitParametersEntry 8 } + + phivCircuitExecCost OBJECT-TYPE + SYNTAX INTEGER (1..25) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the routing cost of the circuit. + Routing sends messages along the path between two nodes + having the smallest cost." + ::= { phivCircuitParametersEntry 9 } + + phivCircuitExecHelloTimer OBJECT-TYPE + SYNTAX INTEGER (1..8191) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value determines the frequency of Routing Hello + messages sent to the adjacent node on the circuit." + ::= { phivCircuitParametersEntry 10 } + + -- Circuit Counters Table + + phivCircuitCountTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivCircuitCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about the counters associated with all + circuits currently known." + ::= { circuit 2 } + + phivCircuitCountEntry OBJECT-TYPE + SYNTAX PhivCircuitCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Counter information about all circuits currently known" + INDEX { phivCircuitIndex } + ::= { phivCircuitCountTable 1 } + + PhivCircuitCountEntry ::= + SEQUENCE { + phivCircuitCountSecLastZeroed + PhivCounter, + phivCircuitCountTermPacketsRecd + PhivCounter, + phivCircuitCountOriginPackSent + PhivCounter, + phivCircuitCountTermCongLoss + PhivCounter, + phivCircuitCountCorruptLoss + PhivCounter, + phivCircuitCountTransitPksRecd + PhivCounter, + phivCircuitCountTransitPkSent + PhivCounter, + phivCircuitCountTransitCongestLoss + PhivCounter, + phivCircuitCountCircuitDown + PhivCounter, + phivCircuitCountInitFailure + PhivCounter, + phivCircuitCountAdjDown + PhivCounter, + phivCircuitCountPeakAdj + PhivCounter, + phivCircuitCountBytesRecd + PhivCounter, + phivCircuitCountBytesSent + PhivCounter, + phivCircuitCountDataBlocksRecd + PhivCounter, + phivCircuitCountDataBlocksSent + PhivCounter, + phivCircuitCountUsrBuffUnav + PhivCounter + } + + phivCircuitCountSecLastZeroed OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of seconds since the circuit counters for this + circuit were last zeroed." + ::= { phivCircuitCountEntry 1 } + + phivCircuitCountTermPacketsRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of terminating packets received on this circuit." + ::= { phivCircuitCountEntry 2 } + + phivCircuitCountOriginPackSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of originating packets sent on this circuit." + ::= { phivCircuitCountEntry 3 } + + phivCircuitCountTermCongLoss OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of terminating congestion losses on this + circuit." + ::= { phivCircuitCountEntry 4 } + + phivCircuitCountCorruptLoss OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of corruption losses on this circuit." + ::= { phivCircuitCountEntry 5 } + + phivCircuitCountTransitPksRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of Transit packets received on this circuit." + ::= { phivCircuitCountEntry 6 } + + phivCircuitCountTransitPkSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of transit packets sent on this circuit." + ::= { phivCircuitCountEntry 7 } + + phivCircuitCountTransitCongestLoss OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of transit congestion losses on this circuit." + ::= { phivCircuitCountEntry 8 } + + phivCircuitCountCircuitDown OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of circuit downs on this circuit." + ::= { phivCircuitCountEntry 9 } + + phivCircuitCountInitFailure OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of Initialization failures on this circuit." + ::= { phivCircuitCountEntry 10 } + + phivCircuitCountAdjDown OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter indicates the number of adjacency losses + that result from any of the following: + Node listener timeout + Invalid data received at node listener + Unexpected control (initialization or verification) + message received + Routing message received with a checksum error + Node identification from a routing message or a + Hello message that is not the one expected Hello + message received indicating that connectivity + became one-way + Adjacency idled." + ::= { phivCircuitCountEntry 11 } + + phivCircuitCountPeakAdj OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter indicates the maximum number of nodes + that are up on the circuit." + ::= { phivCircuitCountEntry 12 } + + phivCircuitCountBytesRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of bytes received on this circuit." + ::= { phivCircuitCountEntry 13 } + + phivCircuitCountBytesSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of bytes sent on this circuit." + ::= { phivCircuitCountEntry 14 } + + phivCircuitCountDataBlocksRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of data blocks received on this circuit." + ::= { phivCircuitCountEntry 15 } + + phivCircuitCountDataBlocksSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of data blocks sent on this circuit." + ::= { phivCircuitCountEntry 16 } + + phivCircuitCountUsrBuffUnav OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of user buffer unavailable errors." + ::= { phivCircuitCountEntry 17 } + + -- Additional Circuit Parameters + + phivCircuitOrigQueueLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter indicates the maximum number of + originating packets that may be outstanding on this + circuit. This does not include route-thru traffic." + ::= { circuit 3 } + + phivCircuitCountZeroCount OBJECT-TYPE + SYNTAX INTEGER { + other (1), + reset (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When this value is set to 2, all of the counters in the + Circuit Counter Table are set to zero." + ::= { circuit 4 } + + -- DDCMP Circuit Group + + -- The implementation of the DDCMP Circuit Group is optional. + -- A system can be said to implement this group if and only if + -- all objects in this group are implemented. + + -- DDCMP Parameters Table + + phivDDCMPCircuitParametersTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivDDCMPCircuitParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about DDCMP circuit parameters." + ::= { ddcmp 1} + + phivDDCMPCircuitParametersEntry OBJECT-TYPE + SYNTAX PhivDDCMPCircuitParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Parameters information about DDCMP circuits currently + known." + INDEX { phivDDCMPCircuitIndex } + ::= { phivDDCMPCircuitParametersTable 1 } + + PhivDDCMPCircuitParametersEntry ::= + SEQUENCE { + phivDDCMPCircuitIndex + INTEGER, + phivDDCMPCircuitAdjNodeAddr + PhivAddr, + phivDDCMPCircuitTributary + INTEGER + } + + phivDDCMPCircuitIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index value for each known DDCMP circuit. + This is the same value as phivCircuitIndex." + ::= { phivDDCMPCircuitParametersEntry 1 } + + phivDDCMPCircuitAdjNodeAddr OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The address of the adjacent node." + ::= { phivDDCMPCircuitParametersEntry 2 } + + phivDDCMPCircuitTributary OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the Data Link physical tributary + address of the circuit." + ::= { phivDDCMPCircuitParametersEntry 3 } + + -- DDCMP Circuit Counter Table + + phivDDCMPCircuitCountTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivDDCMPCircuitCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about the DDCMP counters associated with all + circuits currently known." + ::= { ddcmp 2 } + + phivDDCMPCircuitCountEntry OBJECT-TYPE + SYNTAX PhivDDCMPCircuitCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Counter information about DDCMP circuits now known" + INDEX { phivCircuitIndex } + ::= { phivDDCMPCircuitCountTable 1 } + + PhivDDCMPCircuitCountEntry ::= + SEQUENCE { + phivDDCMPCircuitErrorsInbd + PhivCounter, + phivDDCMPCircuitErrorsOutbd + PhivCounter, + phivDDCMPCircuitRmteReplyTimeouts + PhivCounter, + phivDDCMPCircuitLocalReplyTimeouts + PhivCounter, + phivDDCMPCircuitRmteBuffErrors + PhivCounter, + phivDDCMPCircuitLocalBuffErrors + PhivCounter, + phivDDCMPCircuitSelectIntervalsElap + PhivCounter, + phivDDCMPCircuitSelectTimeouts + INTEGER + } + + phivDDCMPCircuitErrorsInbd OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of Data errors inbound." + ::= { phivDDCMPCircuitCountEntry 1 } + + phivDDCMPCircuitErrorsOutbd OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of outbound data errors." + ::= { phivDDCMPCircuitCountEntry 2 } + + phivDDCMPCircuitRmteReplyTimeouts OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of remote reply timeouts." + ::= { phivDDCMPCircuitCountEntry 3 } + + phivDDCMPCircuitLocalReplyTimeouts OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of local Reply timeouts." + ::= { phivDDCMPCircuitCountEntry 4 } + + phivDDCMPCircuitRmteBuffErrors OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of remote reply time out errors." + ::= { phivDDCMPCircuitCountEntry 5 } + + phivDDCMPCircuitLocalBuffErrors OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of local buffer errors." + ::= { phivDDCMPCircuitCountEntry 6 } + + phivDDCMPCircuitSelectIntervalsElap OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Selection intervals that have elapsed." + ::= {phivDDCMPCircuitCountEntry 7 } + + phivDDCMPCircuitSelectTimeouts OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of selection timeouts." + ::= {phivDDCMPCircuitCountEntry 8 } + + -- DDCMP Line Count Table + + phivDDCMPLineCountTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivDDCMPLineCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DDCMP Line Count Table." + ::= { ddcmp 3 } + + phivDDCMPLineCountEntry OBJECT-TYPE + SYNTAX PhivDDCMPLineCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "There is one entry in the table for each line." + INDEX { phivDDCMPLineCountIndex } + ::= { phivDDCMPLineCountTable 1 } + + PhivDDCMPLineCountEntry ::= + SEQUENCE { + phivDDCMPLineCountIndex + InterfaceIndex, + phivDDCMPLineCountDataErrsIn + PhivCounter, + phivDDCMPLineCountRmteStationErrs + PhivCounter, + phivDDCMPLineCountLocalStationErrs + PhivCounter + } + + phivDDCMPLineCountIndex OBJECT-TYPE + SYNTAX InterfaceIndex + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The line on which this entry's equivalence is + effective. The interface identified by a particular + value of this index is the same interface as + identified by the same value of phivLineIndex. + This value is the ifIndex." + ::= { phivDDCMPLineCountEntry 1 } + + phivDDCMPLineCountDataErrsIn OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of data errors inbound." + ::= { phivDDCMPLineCountEntry 2 } + + phivDDCMPLineCountRmteStationErrs OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of remote station errors." + ::= { phivDDCMPLineCountEntry 3 } + + phivDDCMPLineCountLocalStationErrs OBJECT-TYPE + SYNTAX PhivCounter (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of local station errors." + ::= { phivDDCMPLineCountEntry 4 } + + -- DDCMP Multipoint Circuit Control Group + + -- The implementation of the DDCMP Multipoint Circuit Control + -- Group is optional. A system can be said to implement this group + -- if and only if all objects in this group are implemented. + + phivControlSchedTimer OBJECT-TYPE + SYNTAX INTEGER (50..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the number of milliseconds + between recalculation of tributary polling priorities." + DEFVAL { 200 } + ::= { control 1 } + + phivControlDeadTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the number of milliseconds + between polls of one of the set of dead + tributaries." + DEFVAL { 10000 } + ::= { control 2 } + + phivControlDelayTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the minimum number of + milliseconds to delay between polls. The delay timer + limits the effect of a very fast control station on + slow tributaries." + ::= { control 3 } + + phivControlStreamTimer OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the number of milliseconds a + tributary or a half duplex remote station is + allowed to hold the line. + + NOTE: This parameter can also be applied to + half-duplex lines of type DDCMP POINT." + DEFVAL { 6000 } + ::= { control 4 } + + -- DDCMP Multipoint Circuit Control Parameters Table + + phivControlParametersTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivControlParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about control circuit parameters." + ::= { control 5 } + + phivControlParametersEntry OBJECT-TYPE + SYNTAX PhivControlParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Parameters information about control circuits + currently known." + INDEX { phivControlCircuitIndex } + ::= { phivControlParametersTable 1 } + + PhivControlParametersEntry ::= + SEQUENCE { + phivControlCircuitIndex + INTEGER, + phivControlBabbleTimer + INTEGER, + phivControlMaxBuffs + INTEGER, + phivControlMaxTransmits + INTEGER, + phivControlDyingBase + INTEGER, + phivControlDyingIncrement + INTEGER, + phivControlDeadThreshold + INTEGER, + phivControlDyingThreshold + INTEGER, + phivControlInactTreshold + INTEGER, + phivControlPollingState + INTEGER, + phivControlPollingSubState + INTEGER, + phivControlTransTimer + INTEGER + } + + phivControlCircuitIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index value for each known multipoint + control circuit. + This is the same value as phivCircuitIndex." + ::= { phivControlParametersEntry 1 } + + phivControlBabbleTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the number of milliseconds that a + selected tributary or remote half-duplex station is + allowed to transmit." + DEFVAL { 6000 } + ::= { phivControlParametersEntry 2 } + + phivControlMaxBuffs OBJECT-TYPE + SYNTAX INTEGER (1..254) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of buffers the + tributary can use from a common buffer pool. If not + set, there is no common buffer pool and buffers are + explicitly supplied by the higher level. Count is a + decimal integer in the range 1-254." + ::= { phivControlParametersEntry 3 } + + phivControlMaxTransmits OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of data + messages that can be transmitted at one time. Count + is a decimal integer in the range 1-255." + DEFVAL { 4 } + ::= { phivControlParametersEntry 4 } + + phivControlDyingBase OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the base priority to which a + tributary is reset each time it has been polled. A + separate base can be set for each of the indicated + polling states. Base is a decimal integer in the range + 0-255. If not set, the defaults are: active, 255; + inactive, 0; and dying, 0." + ::= { phivControlParametersEntry 5 } + + phivControlDyingIncrement OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the increment added to the + tributary priority each time the scheduling timer + expires. If not set, the defaults are: active, 0; + inactive, 64; and dying, 16." + ::= { phivControlParametersEntry 6 } + + phivControlDeadThreshold OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the number of times to poll the + active, inactive, or dying tributary before changing + its polling state to dead because of receive timeouts. + Count is a decimal integer in the range 0-255." + DEFVAL { 8 } + ::= { phivControlParametersEntry 7 } + + phivControlDyingThreshold OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the number of times to poll the + active or inactive tributary before changing its + polling state to dying because of receive timeouts. + Count is a decimal integer in the range 0-255." + DEFVAL { 2 } + ::= { phivControlParametersEntry 8 } + + phivControlInactTreshold OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the number of times to poll the + active tributary before changing its polling state to + inactive because of no data response. Count is a + decimal integer in the range + 0-255." + DEFVAL { 8 } + ::= { phivControlParametersEntry 9 } + + phivControlPollingState OBJECT-TYPE + SYNTAX INTEGER { + automatic (1), + active (2), + inactive (3), + dying (4), + dead (5) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the state of the tributary + relative to the multipoint polling algorithm. If not + set the default is AUTOMATIC. The possible states are: + + AUTOMATIC + + The tributary's state is allowed to vary according to + the operation of the polling algorithm. + + ACTIVE/INACTIVE/DYING/DEAD + + The tributary is locked in the specified state. + + NOTE: These values are incremented by one compared to + the standard DECnet values in order to maintain + compliance with RFC 1155." + ::= { phivControlParametersEntry 10 } + + phivControlPollingSubState OBJECT-TYPE + SYNTAX INTEGER { + active (1), + inactive (2), + dying (3), + dead (4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the tributary's state as + determined by the polling algorithm. This applies + only when the polling state is AUTOMATIC and is + read-only to Network Management. Polling-substate is + one of ACTIVE, INACTIVE, DYING, or DEAD. It is + displayed as a tag on the polling state, for example: + AUTOMATIC-INACTIVE." + ::= { phivControlParametersEntry 11 } + + phivControlTransTimer OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the number of milliseconds to + delay between data message transmits. Milliseconds is + a decimal integer in the range 0-65535." + DEFVAL { 0 } + ::= { phivControlParametersEntry 12 } + + -- Ethernet Group + + -- The implementation of the Ethernet Group is mandatory + -- for all systems which support ethernet links. + + -- Ethernet Parameters Table + + phivEthLinkParametersTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivEthLinkParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about ethernet link parameters." + ::= { ethernet 1} + + phivEthLinkParametersEntry OBJECT-TYPE + SYNTAX PhivEthLinkParametersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Parameter information about ethernet links currently + known." + INDEX { phivEthLinkIndex } + ::= { phivEthLinkParametersTable 1 } + + PhivEthLinkParametersEntry ::= + SEQUENCE { + phivEthLinkIndex + INTEGER, + phivEthDesigRouterNodeAddr + PhivAddr, + phivEthMaxRouters + INTEGER, + phivEthRouterPri + INTEGER, + phivEthHardwareAddr + OCTET STRING + } + + phivEthLinkIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The circuit over which this links information is + collected. This is the same as phivCircuitIndex." + ::= { phivEthLinkParametersEntry 1 } + + phivEthDesigRouterNodeAddr OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value is the address of the designated router." + ::= { phivEthLinkParametersEntry 2 } + + phivEthMaxRouters OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter is the maximum number of routers (other + than the executor itself) allowed on the circuit by + Routing for circuits that are owned by the executor + node." + ::= { phivEthLinkParametersEntry 3 } + + phivEthRouterPri OBJECT-TYPE + SYNTAX INTEGER (0..127) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter is the priority that this router is to + have in the selection of designated router for the + circuit on circuits that are owned by the executor + node." + DEFVAL { 64 } + ::= { phivEthLinkParametersEntry 4 } + + phivEthHardwareAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter is the address that is + associated with the line device hardware as seen by + the DECnet Software. This value is not the same as + ifPhysAddress." + ::= { phivEthLinkParametersEntry 5 } + + -- Counters Group + + -- The implementation of the Counters Group is optional. + -- A system can be said to implement this group if and only if + -- all objects in this group are implemented. + + -- Counters Table + + phivCountersCountTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivCountersCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about ethernet link counters." + ::= { counters 1 } + + phivCountersCountEntry OBJECT-TYPE + SYNTAX PhivCountersCountEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Counter information about ethernet links currently + known." + INDEX { phivCountersIndex } + ::= { phivCountersCountTable 1 } + + PhivCountersCountEntry ::= + SEQUENCE { + phivCountersIndex + InterfaceIndex, + phivCountersCountBytesRecd + PhivCounter, + phivCountersCountBytesSent + PhivCounter, + phivCountersCountDataBlocksRecd + PhivCounter, + phivCountersCountDataBlocksSent + PhivCounter, + phivCountersCountEthUsrBuffUnav + PhivCounter, + phivCountersCountMcastBytesRecd + PhivCounter, + phivCountersCountDataBlksRecd + PhivCounter, + phivCountersCountDataBlksSent + PhivCounter, + phivCountersCountMcastBlksRecd + PhivCounter, + phivCountersCountBlksSentDef + PhivCounter, + phivCountersCountBlksSentSingleCol + PhivCounter, + phivCountersCountBlksSentMultCol + PhivCounter, + phivCountersCountSendFailure + INTEGER, + phivCountersCountCollDetectFailure + INTEGER, + phivCountersCountReceiveFailure + INTEGER, + phivCountersCountUnrecFrameDest + INTEGER, + phivCountersCountDataOver + INTEGER, + phivCountersCountSysBuffUnav + INTEGER, + phivCountersCountUsrBuffUnav + INTEGER + } + + phivCountersIndex OBJECT-TYPE + SYNTAX InterfaceIndex + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interface to which these counters apply. This is + the same interface as identified by the same value of + phivLineIndex. This value is the ifIndex." + ::= { phivCountersCountEntry 1 } + + phivCountersCountBytesRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of bytes received over this link." + ::= { phivCountersCountEntry 2 } + + phivCountersCountBytesSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of bytes sent over this link." + ::= { phivCountersCountEntry 3 } + + phivCountersCountDataBlocksRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "Number of data blocks received over this link." + ::= { phivCountersCountEntry 4 } + + phivCountersCountDataBlocksSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "Number of data blocks sent over this link." + ::= { phivCountersCountEntry 5 } + + phivCountersCountEthUsrBuffUnav OBJECT-TYPE + SYNTAX PhivCounter (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of user buffer unavailable errors over this + link." + ::= { phivCountersCountEntry 6 } + + phivCountersCountMcastBytesRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of multicast bytes received over this link." + ::= { phivCountersCountEntry 7 } + + phivCountersCountDataBlksRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of data blocks received over this link." + ::= { phivCountersCountEntry 8 } + + phivCountersCountDataBlksSent OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of data blocks sent over this link." + ::= { phivCountersCountEntry 9 } + + phivCountersCountMcastBlksRecd OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of multicast blocks received over this link." + ::= { phivCountersCountEntry 10 } + + phivCountersCountBlksSentDef OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of blocks sent, initially deferred over this + link." + ::= { phivCountersCountEntry 11 } + + phivCountersCountBlksSentSingleCol OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of blocks sent, single collision over this link." + ::= { phivCountersCountEntry 12 } + + phivCountersCountBlksSentMultCol OBJECT-TYPE + SYNTAX PhivCounter (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of blocks sent, multiple collisions over this + link." + ::= { phivCountersCountEntry 13 } + + phivCountersCountSendFailure OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of send failures over this link." + ::= { phivCountersCountEntry 14 } + + phivCountersCountCollDetectFailure OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of collision detect check failures over this + link." + ::= { phivCountersCountEntry 15 } + + phivCountersCountReceiveFailure OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of receive failures over this link." + ::= { phivCountersCountEntry 16 } + + phivCountersCountUnrecFrameDest OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of unrecognized frame destinations over this + link." + ::= { phivCountersCountEntry 17 } + + phivCountersCountDataOver OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of data overruns over this link." + ::= { phivCountersCountEntry 18 } + + phivCountersCountSysBuffUnav OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of system buffer unavailables over this link." + ::= { phivCountersCountEntry 19 } + + phivCountersCountUsrBuffUnav OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of user buffer unavailables." + ::= { phivCountersCountEntry 20 } + + -- Adjacency Group + + -- The implementation of the Adjacency Group is mandatory for all + -- conformant implementations of this memo. + + -- The phivAdjTable has been made obsolete it has been replaced with + -- the phivAdjNodeTable. + + phivAdjTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivAdjEntry + ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "The Adjacency Table." + ::= { adjacency 1 } + + phivAdjEntry OBJECT-TYPE + SYNTAX PhivAdjEntry + ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "There is one entry in the table for each adjacency." + INDEX { phivAdjCircuitIndex } + ::= { phivAdjTable 1 } + + PhivAdjEntry ::= + SEQUENCE { + phivAdjCircuitIndex + INTEGER, + phivAdjNodeAddr + PhivAddr, + phivAdjBlockSize + INTEGER, + phivAdjListenTimer + INTEGER (1..65535), + phivAdjCircuitEtherServPhysAddr + OCTET STRING, + phivAdjType + INTEGER, + phivAdjState + INTEGER, + phivAdjPriority + INTEGER, + phivAdjExecListenTimer + INTEGER (1..65535) + } + phivAdjCircuitIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "A unique index value for each known circuit." + ::= { phivAdjEntry 1 } + + phivAdjNodeAddr OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "The address of the adjacent node." + ::= { phivAdjEntry 2 } + + phivAdjBlockSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This read-only parameter is the block size that was + negotiated with the adjacent Routing layer during Routing + initialization over a particular circuit. It includes the + routing header, but excludes the data link header. This + parameter is qualified by ADJACENT NODE." + ::= { phivAdjEntry 3 } + + phivAdjListenTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This value determines the maximum number of seconds + allowed to elapse before Routing receives some message + (either a Hello message or a user message) from the + adjacent node on the circuit. It was agreed during + Routing initialization with the adjacent Routing layer. + This parameter is qualified by ADJACENT NODE." + ::= { phivAdjEntry 4 } + + phivAdjCircuitEtherServPhysAddr OBJECT-TYPE + SYNTAX OCTET STRING ( SIZE (6) ) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This parameter indicates the Ethernet physical address + of an adjacent node that is being serviced on this + circuit. This parameter is a qualifier for SERVICE + SUBSTATE." + ::= { phivAdjEntry 5 } + + phivAdjType OBJECT-TYPE + SYNTAX INTEGER { + routing-III (1), + nonrouting-III (2), + area (3), + routing-IV (4), + nonrouting-IV (5) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This parameter indicates the type of adjacency. + + For adjacent nodes, this is a read-only parameter that + indicates the type of the reachable adjacent node. + NOTE: The routing-III and nonrouting-III values are + incremented by one compared to the standard DECnet + values in order to maintain compliance with RFC 1155)" + ::= { phivAdjEntry 6 } + + phivAdjState OBJECT-TYPE + SYNTAX INTEGER { + initializing (1), -- Ethernet one-way + up (2), -- Ethernet two-way + run (3), -- The eight DDCMP/X.25 states + circuit-rejected (4), + data-link-start (5), + routing-layer-initialize (6), + routing-layer-verify (7), + routing-layer-complete (8), + off (9), + halt (10) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This value indicates the state of a router adjacency. + On adjacencies over a circuit of type + (phivCircuitCommonType) Ethernet, CI, or FDDI, with an + adjacent node of type (phivAdjType) ROUTING IV or AREA, + this variable is the state of the Ethernet + Initialization Layer for this adjacency, and can have + values INITIALIZING or UP. (See Section 9.1.1 of + DECnet Phase IV Routing Layer Functional Specification.) + + On adjacencies over a circuit of type + (phivCircuitCommonType) Ethernet, CI, or FDDI, with an + adjacent node of type (phivAdjType) NONROUTING IV, + this variable will always take on the value UP. + + On adjacencies over a circuit of type + (phivCircuitCommonType) DDCMP POINT, DDCMP CONTROL, + DDCMP TRIBUTARY, DDCMP DMC, or X.25, this variable is + the state of the Routing Layer Initialization Circuit + State. (See section 7.3, ibid.) It can have values + between RUN and HALT. + + On adjacencies over a circuit of type + (phivCircuitCommonType) OTHER, this variable may be + used in a manner consistent with the Initialization + Layer used on that circuit." + ::= { phivAdjEntry 7 } + + phivAdjPriority OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "Priority assigned by the adjacent node for this + circuit." + ::= { phivAdjEntry 8 } + + phivAdjExecListenTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This read-only value determines the maximum number of + seconds allowed to elapse before Routing receives some + message (either a Hello message or a user message) from + the adjacent node on the circuit. It was agreed during + Routing initialization with the adjacent Routing layer." + ::= { phivAdjEntry 9 } + + -- New Adjacency Table this replaces the phivAdjTable. + + phivAdjNodeTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivAdjNodeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Adjacent Node Table." + ::= { adjacency 2 } + + phivAdjNodeEntry OBJECT-TYPE + SYNTAX PhivAdjNodeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "There is one entry in the table for each adjacency." + INDEX { phivAdjNodeCircuitIndex, phivAdjAddr } + ::= { phivAdjNodeTable 1 } + + PhivAdjNodeEntry ::= + SEQUENCE { + phivAdjNodeCircuitIndex + INTEGER, + phivAdjAddr + PhivAddr, + phivAdjNodeBlockSize + INTEGER, + phivAdjNodeListenTimer + INTEGER, + phivAdjNodeCircuitEtherServPhysAddr + OCTET STRING, + phivAdjNodeType + INTEGER, + phivAdjNodeState + INTEGER, + phivAdjNodePriority + INTEGER + } + + phivAdjNodeCircuitIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index value for each known circuit. This + value is the same as phivCircuitIndex and identifies the + circuit over which the adjacency is realized." + ::= { phivAdjNodeEntry 1 } + + phivAdjAddr OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The address of the adjacent node." + ::= { phivAdjNodeEntry 2 } + + phivAdjNodeBlockSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This read-only parameter is the block size that was + negotiated with the adjacent Routing layer during Routing + initialization over a particular circuit. It includes the + routing header, but excludes the data link header. This + parameter is qualified by ADJACENT NODE." + ::= { phivAdjNodeEntry 3 } + + phivAdjNodeListenTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value determines the maximum number of seconds + allowed to elapse before Routing receives some message + (either a Hello message or a user message) from the + adjacent node on the circuit. It was agreed during + Routing initialization with the adjacent Routing layer. + This parameter is qualified by ADJACENT NODE." + ::= { phivAdjNodeEntry 4 } + + phivAdjNodeCircuitEtherServPhysAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This parameter indicates the Ethernet physical address + of an adjacent node that is being serviced on this + circuit. This parameter is a qualifier for SERVICE + SUBSTATE." + ::= { phivAdjNodeEntry 5 } + + phivAdjNodeType OBJECT-TYPE + SYNTAX INTEGER { + routing-III (1), + nonrouting-III (2), + area (3), + routing-IV (4), + nonrouting-IV (5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This parameter indicates the type of adjacency. + + For adjacent nodes, this is a read-only parameter that + indicates the type of the reachable adjacent node. + NOTE: The routing-III and nonrouting-III values are + incremented by one compared to the standard DECnet + values in order to maintain compliance with RFC 1155)" + ::= { phivAdjNodeEntry 6 } + + phivAdjNodeState OBJECT-TYPE + SYNTAX INTEGER { + initializing (1), -- Ethernet one-way + up (2), -- Ethernet two-way + run (3), -- The eight DDCMP/X.25 states + circuit-rejected (4), + data-link-start (5), + routing-layer-initialize (6), + routing-layer-verify (7), + routing-layer-complete (8), + off (9), + halt (10) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the state of a router adjacency. + On adjacencies over a circuit of type + (phivCircuitCommonType) Ethernet, CI, or FDDI, with an + adjacent node of type (phivAdjNodeType) ROUTING IV or AREA, + this variable is the state of the Ethernet + Initialization Layer for this adjacency, and can have + values INITIALIZING or UP. (See Section 9.1.1 of + DECnet Phase IV Routing Layer Functional Specification.) + + On adjacencies over a circuit of type + (phivCircuitCommonType) Ethernet, CI, or FDDI, with an + adjacent node of type (phivAdjNodeType) NONROUTING IV, + this variable will always take on the value UP. + + On adjacencies over a circuit of type + (phivCircuitCommonType) DDCMP POINT, DDCMP CONTROL, + DDCMP TRIBUTARY, DDCMP DMC, or X.25, this variable is + the state of the Routing Layer Initialization Circuit + State. (See section 7.3, ibid.) It can have values + between RUN and HALT. + + On adjacencies over a circuit of type + (phivCircuitCommonType) OTHER, this variable may be + used in a manner consistent with the Initialization + Layer used on that circuit." + ::= { phivAdjNodeEntry 7 } + + phivAdjNodePriority OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Priority assigned by the adjacent node for this + circuit." + ::= { phivAdjNodeEntry 8 } + + + -- Line Group + + -- The implementation of the Line Group is mandatory for all + -- conformant implementations of this memo. + + phivLineTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivLineEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Line Table." + ::= { line 1 } + + phivLineEntry OBJECT-TYPE + SYNTAX PhivLineEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "There is one entry in the table for each line." + INDEX { phivLineIndex } + ::= { phivLineTable 1 } + + PhivLineEntry ::= + SEQUENCE { + phivLineIndex + InterfaceIndex, + phivLineName + DisplayString, + phivLineState + INTEGER, + phivLineSubstate + INTEGER, + phivLineService + INTEGER, + phivLineDevice + DisplayString, + phivLineReceiveBuffs + INTEGER, + phivLineProtocol + INTEGER, + phivLineServiceTimer + INTEGER, + phivLineMaxBlock + INTEGER + } + + phivLineIndex OBJECT-TYPE + SYNTAX InterfaceIndex + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The line on which this entry's equivalence is effective. + This is the same as the ifIndex." + ::= { phivLineEntry 1 } + + phivLineName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the line on this row of the table." + ::= { phivLineEntry 2 } + + phivLineState OBJECT-TYPE + SYNTAX INTEGER { + on (1), + off (2), + service (3), + cleared (4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents Network Management operational + state. + NOTE that these values are incremented by one compared to + the standard DECnet values." + ::= { phivLineEntry 3 } + + phivLineSubstate OBJECT-TYPE + SYNTAX INTEGER { + starting (1), + reflecting (2), + looping (3), + loading (4), + dumping (5), + triggering (6), + auto-service (7), + auto-loading (8), + auto-dumping (9), + auto-triggering (10), + synchronizing (11), + failed (12), + running (13) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the line's read-only Network + Management substate. + NOTE that these values are incremented by one compared to + the standard DECnet values." + ::= { phivLineEntry 4 } + + phivLineService OBJECT-TYPE + SYNTAX INTEGER { + starting (1), + reflecting (2), + looping (3), + other (4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the line's read-only Network + Management service. + NOTE that these values are incremented by one compared to + the standard DECnet values and OTHER is a new addition." + ::= { phivLineEntry 5 } + + phivLineDevice OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the Physical Link device to be + used on the line." + ::= { phivLineEntry 6 } + + phivLineReceiveBuffs OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the number of receive buffers + reserved for the line. It is a decimal number in + the range 0-65535. 0 is supported for those vendors + that do not reserve buffers on a per line basis and + use a pool of buffers that can be used by any line." + ::= { phivLineEntry 7 } + + phivLineProtocol OBJECT-TYPE + SYNTAX INTEGER { + ddcmp-point (1), + ddcmp-control (2), + ddcmp-tributary (3), + reserved (4), + ddcmp-dmc (5), + olapb (6), + ethernet (7), + ci (8), + qp2 (9), + other (14), + fddi (15) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the protocol used on the line + device. Note that these values are incremented by + one compared to the standard DECnet values." + ::= { phivLineEntry 8 } + + phivLineServiceTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the amount of time in + milliseconds allowed to elapse before a Data Link + receive request completes while doing service + operations." + ::= { phivLineEntry 9 } + + phivLineMaxBlock OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the Data Link maximum block + size on the line." + ::= { phivLineEntry 10 } + + -- Non Broadcast Line Group + + -- The implementation of the Non Broadcast Line Group is optional. + -- A system can be said to implement this group if and only if + -- all objects in this group are implemented. + + phivNonBroadcastTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivNonBroadcastEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Non Broadcast Table." + ::= { nonBroadcastLine 1 } + + phivNonBroadcastEntry OBJECT-TYPE + SYNTAX PhivNonBroadcastEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "There is one entry in the table for each + Non Broadcast line." + INDEX { phivNonBroadcastIndex } + ::= { phivNonBroadcastTable 1 } + + PhivNonBroadcastEntry ::= + SEQUENCE { + phivNonBroadcastIndex + InterfaceIndex, + phivNonBroadcastController + INTEGER, + phivNonBroadcastDuplex + INTEGER, + phivNonBroadcastClock + INTEGER, + phivNonBroadcastRetransmitTimer + INTEGER + } + + phivNonBroadcastIndex OBJECT-TYPE + SYNTAX InterfaceIndex + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Non Broadcast line on which this entry's + equivalence is effective. This is the same value + as the ifIndex." + ::= { phivNonBroadcastEntry 1 } + + phivNonBroadcastController OBJECT-TYPE + SYNTAX INTEGER { + normal (1), + loopback (2), + other (3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the Physical Link hardware + controller mode for the line device. The values + for controller-mode are: + + NORMAL For normal controller operating mode. + + LOOPBACK For software controllable loopback of the + controller. On those devices that can support this + mode, it causes all transmitted messages to be looped + back from within the controller itself. This is + accomplished without any manual intervention other + than the setting of this parameter value. + + OTHER indicates function is not supported + Note that these values are incremented by one compared to + the standard DECnet values." + ::= { phivNonBroadcastEntry 2 } + + phivNonBroadcastDuplex OBJECT-TYPE + SYNTAX INTEGER { + full (1), + half (2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the Physical Link hardware + duplex mode of the line device. The possible modes + are: + + FULL Full-duplex + HALF Half-duplex + + Note that these values are incremented by one compared to + the standard DECnet values." + ::= { phivNonBroadcastEntry 3 } + + phivNonBroadcastClock OBJECT-TYPE + SYNTAX INTEGER { + external (1), + internal (2), + other (3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents the Physical Link hardware clock + mode for the line device. The values for clock-mode are: + + INTERNAL For software controllable loopback use of + the clock. On those devices that can support this + mode, it causes the device to supply a clock signal + such that a transmitted messages can be looped + back from outside the device. This may require manual + intervention other than the setting of this parameter + value. For example, the operator may have to connect + a loopback plug in place of the normal line. + + EXTERNAL For normal clock operating mode, where the + clock signal is supplied externally to the controller. + Note that these values are incremented by one compared to + the standard DECnet values." + ::= { phivNonBroadcastEntry 4 } + + phivNonBroadcastRetransmitTimer OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value represents number of milliseconds before + the Data Link retransmits a block on the line. On + half-duplex lines, this parameter is the select timer." + DEFVAL { 3000 } + ::= { phivNonBroadcastEntry 5 } + + -- Area Parameters Group + + -- The implementation of the Area Parameters Group is mandatory + -- for all systems which implement level 2 routing. + + phivAreaTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhivAreaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of information kept on all areas known to + this unit." + ::= { area 1 } + + phivAreaEntry OBJECT-TYPE + SYNTAX PhivAreaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The area routing information." + INDEX { phivAreaNum } + ::= { phivAreaTable 1 } + + PhivAreaEntry ::= + SEQUENCE { + phivAreaNum + INTEGER, + phivAreaState + INTEGER, + phivAreaCost + Gauge, + phivAreaHops + INTEGER, + phivAreaNextNode + PhivAddr, + phivAreaCircuitIndex + INTEGER + } + + phivAreaNum OBJECT-TYPE + SYNTAX INTEGER (0..64) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the area number of this entry." + ::= { phivAreaEntry 1 } + + phivAreaState OBJECT-TYPE + SYNTAX INTEGER { + reachable (4), + unreachable (5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value indicates the state of the area" + ::= { phivAreaEntry 2 } + + phivAreaCost OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total cost over the current path to the + destination area. Cost is a value associated with + using a circuit. Routing routes messages (data) + along the path between 2 areas with the smallest + cost." + ::= { phivAreaEntry 3 } + + phivAreaHops OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of hops to a destination area. A hop is + the routing value representing the logical distance + between two areas in network." + ::= { phivAreaEntry 4 } + + phivAreaNextNode OBJECT-TYPE + SYNTAX PhivAddr -- OCTET STRING (SIZE (2)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The next node on the circuit used to get to the + area under scrutiny." + ::= { phivAreaEntry 5 } + + phivAreaCircuitIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique index value for each known circuit." + ::= { phivAreaEntry 6 } + + -- Additional Area Parameters + + phivAreaMaxCost OBJECT-TYPE + SYNTAX INTEGER (1..1022) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum total path cost + allowed from the executor to any other level 2 routing + node. The AREA MAXIMUM COST number is decimal in the + range 1-1022. This parameter is only applicable if + the executor node is of type AREA." + ::= { area 2 } + + phivAreaMaxHops OBJECT-TYPE + SYNTAX INTEGER (1..30) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the maximum number of routing hops + allowable from the executor to any other level 2 + routing node. This parameter is only applicable if the + executor node is of type AREA." + ::= { area 3 } + + phivRouteMaxArea OBJECT-TYPE + SYNTAX INTEGER (1..63) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This value represents the largest area number and, + therefore, number of areas that can be known about + by the executor node's Routing. This parameter is only + applicable if the executor node is of type AREA." + ::= { area 4 } + + END diff --git a/pandora_console/attachment/mibs/DELL-RAC-MIB b/pandora_console/attachment/mibs/DELL-RAC-MIB new file mode 100644 index 0000000000..1f9bce5361 --- /dev/null +++ b/pandora_console/attachment/mibs/DELL-RAC-MIB @@ -0,0 +1,1235 @@ +-- +-- Dell Remote Access Controller (RAC) Management Information Base +-- Copyright (c) 2008 Dell Inc +-- +-- Last Changed Revision: 10 +-- Last Changed Date: 2008-07-25 17:23:34 -0500 (Fri, 25 Jul 2008) +-- Text Last Updated: 2008-10-03 11:18:53 -0500 (Fri, 03 Oct 2008) +-- + +DELL-RAC-MIB DEFINITIONS ::= BEGIN + +IMPORTS + enterprises + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + TRAP-TYPE + FROM RFC-1215 + DisplayString + FROM RFC1158-MIB; + +-- text convention ------------------------------------------------------------------------ + + ------------------------------------------------------------------------------- + -- This data type is used to model textual information taken + -- from the NVT ASCII character set. By convention, objects + -- with this syntax are declared as having + -- SIZE (0..1023) + ------------------------------------------------------------------------------- + DellString ::= DisplayString (SIZE (0..1023)) + + DellRacType ::= INTEGER + { + other(1), -- the DRAC type is not one of the following + unknown(2), -- the DRAC type is unknown + DracIII(3), -- Drac III + ERA(4), -- ERA + DRAC4(5), -- Drac 4 + DRAC5(6), -- Drac 5 + DRAC5MC(7), -- Drac 5/MC + CMC(8), -- CMC + iDRAC(9) -- iDRAC + } + + DellStatus ::= INTEGER + { + other(1), -- the status of the object is not one of the following: + unknown(2), -- the status of the object is unknown + -- (not known or monitored) + ok(3), -- the status of the object is ok + nonCritical(4), -- the status of the object is warning, non-critical + critical(5), -- the status of the object is critical (failure) + nonRecoverable(6) -- the status of the object is non-recoverable (dead) + } + + ------------------------------------------------------------------------------- + -- DellPowerReading is a string representation of a floating point value, + -- having exactly 3 digits of precision, and a maximum of 31 characters. + -- + -- DellChassisPowerIndexRange defines the possible chassis power instances + -- in this MIB. + -- + -- DellCMCPSUIndexRange defines the possible CMC Power Supply Unit (PSU) + -- instances, per chassis power instance, in this MIB. + -- + -- DellCMCPSUCapable is an enumeration of PSU presence and/or monitoring + -- capabilities. + ------------------------------------------------------------------------------- + DellPowerReading ::= DisplayString (SIZE (0..32)) + + DellCMCPowerIndexRange ::= INTEGER (1..1) + + DellCMCPSUIndexRange ::= INTEGER (1..6) + + DellCMCPSUCapable ::= INTEGER + { + absent(1), -- power supply is not present + none(2), -- no power monitoring abilities + basic(3) -- basic power monitoring abilities + } + + ------------------------------------------------------------------------------- + -- DellTimestamp is defined in the displayable format: + -- + -- yyyymmddHHMMSS.uuuuuuDooo + -- + -- where yyyy is the year, mm is the month number, dd is the day of the month, + -- HHMMSS are the hours, minutes and seconds, respectively, uuuuuu is the + -- number of microseconds, D is the UTC offset direction, and ooo is the + -- offset from UTC, in minutes. + -- + -- Note: D is a plus (+) sign if east of UTC, and a minus (-) if west of UTC. + -- + -- For example, Wednesday, May 25, 1994, at 1:30:15 PM EDT + -- would be represented as: 19940525133015.000000-300 + ------------------------------------------------------------------------------- + DellTimestamp ::= DisplayString (SIZE (26)) + + +-- MIB Objects and Tables -------------------------------------------------------- + + dell OBJECT IDENTIFIER ::= { enterprises 674 } + server3 OBJECT IDENTIFIER ::= { dell 10892 } + drsOutofBandGroup OBJECT IDENTIFIER ::= { server3 2 } + drsInformationGroup OBJECT IDENTIFIER ::= { drsOutofBandGroup 1 } + drsProductInfoGroup OBJECT IDENTIFIER ::= { drsInformationGroup 1 } + drsFirmwareGroup OBJECT IDENTIFIER ::= { drsInformationGroup 2 } + + drsStatusGroup OBJECT IDENTIFIER ::= { drsOutofBandGroup 2 } + + drsChassisStatusGroup OBJECT IDENTIFIER ::= { drsOutofBandGroup 3 } + drsStatusNowGroup OBJECT IDENTIFIER ::= { drsChassisStatusGroup 1 } + drsStatusPrevGroup OBJECT IDENTIFIER ::= { drsChassisStatusGroup 2 } + drsStatusChangeGroup OBJECT IDENTIFIER ::= { drsChassisStatusGroup 3 } + + drsChassisPowerGroup OBJECT IDENTIFIER ::= { drsOutofBandGroup 4 } + + DrsCMCPowerTableEntry ::= SEQUENCE + { + drsChassisIndex DellCMCPowerIndexRange, + drsPotentialPower DellPowerReading, + drsIdlePower DellPowerReading, + drsMaxPowerSpecification DellPowerReading, + drsPowerSurplus DellPowerReading, + drsKWhCumulative DellPowerReading, + drsKWhCumulativeTime DellTimestamp, + drsWattsPeakUsage DellPowerReading, + drsWattsPeakTime DellTimestamp, + drsWattsMinUsage DellPowerReading, + drsWattsMinTime DellTimestamp, + drsWattsResetTime DellTimestamp, + drsWattsReading DellPowerReading, + drsAmpsReading DellPowerReading + } + + DrsCMCPSUTableEntry ::= SEQUENCE + { + drsPSUChassisIndex DellCMCPowerIndexRange, + drsPSUIndex DellCMCPSUIndexRange, + drsPSULocation DellString, + drsPSUMonitoringCapable DellCMCPSUCapable, + drsPSUVoltsReading DellPowerReading, + drsPSUAmpsReading DellPowerReading, + drsPSUWattsReading DellPowerReading + } + + drsCMCAlertGroup OBJECT IDENTIFIER ::= { drsOutofBandGroup 20 } + drsChassisAlertVariables OBJECT IDENTIFIER ::= { drsCMCAlertGroup 10 } + drsChassisAlertGroup OBJECT IDENTIFIER ::= { drsCMCAlertGroup 2000 } + + drsAlertGroup OBJECT IDENTIFIER ::= { drsOutofBandGroup 5000 } + drsAlertVariables OBJECT IDENTIFIER ::= { drsAlertGroup 10 } + + +-- Variables and Traps ------------------------------------------------------------------------ + + ------------------------------------------------------------------------------- + -- group: product information + ------------------------------------------------------------------------------- + + drsProductName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0001 This attribute defines the product name of a chassis management controller." + ::= { drsProductInfoGroup 1 } + + drsProductShortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0002 This attribute defines the short product name of a chassis management controller. " + ::= { drsProductInfoGroup 2 } + + drsProductDescription OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0003 This attribute defines the product description of a chassis management controller. " + ::= { drsProductInfoGroup 3 } + + drsProductManufacturer OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0004 This attribute defines the product manufacturer of a chassis management controller. " + ::= { drsProductInfoGroup 4 } + + drsProductVersion OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0005 This attribute defines the product version of a chassis management controller. " + ::= { drsProductInfoGroup 5 } + + drsChassisServiceTag OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0007 This attribute defines the Service Tag of the chassis. " + ::= { drsProductInfoGroup 6 } + + drsProductURL OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0006 This attribute defines the out-of-band UI URL of a chassis management controller. " + ::= { drsProductInfoGroup 7 } + + drsProductChassisAssetTag OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0008 This attribute defines the Asset Tag of the chassis. " + ::= { drsProductInfoGroup 8 } + + drsProductChassisLocation OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0009 This attribute defines the location of the chassis. " + ::= { drsProductInfoGroup 9 } + + drsProductChassisName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0010 This attribute defines the name of the chassis. " + ::= { drsProductInfoGroup 10 } + + drsSystemServiceTag OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0011 This attribute defines the service tag of a system. " + ::= { drsProductInfoGroup 11 } + + drsProductSystemAssetTag OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0012 This attribute defines the asset tag of a system. " + ::= { drsProductInfoGroup 12 } + + drsProductSystemSlot OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0013 This attribute defines the slot number of a CMC. " + ::= { drsProductInfoGroup 13 } + + drsProductType OBJECT-TYPE + SYNTAX DellRacType + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0001.0014 This attribute defines type of a remote access card " + ::= { drsProductInfoGroup 14 } + + drsFirmwareVersion OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0001.0002.0001 This attribute defines the firmware version of a chassis management controller. " + ::= { drsFirmwareGroup 1 } + + ------------------------------------------------------------------------------- + -- group: chassis status + ------------------------------------------------------------------------------- + + drsGlobalSystemStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0002.0001.0001 This attribute defines the overall chassis status + being monitored by the chassis management card." + ::= { drsStatusGroup 1 } + + drsGlobalCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0001 This attribute defines the overall chassis status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 1 } + + drsIOMCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0002 This attribute defines the IOM subsystem status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 2 } + + drsKVMCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0003 This attribute defines the iKVM subsystem health status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 3 } + + drsRedCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0004 This attribute defines the Redundancy status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 4 } + + drsPowerCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0005 This attribute defines the power subsystem health status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 5 } + + drsFanCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0006 This attribute defines the Fan subsystem health status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 6 } + + drsBladeCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0007 This attribute defines the Blade subsystem health status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 7 } + + drsTempCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0008 This attribute defines the Temp Sensor subsystem health status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 8 } + + drsCMCCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0009 This attribute defines the CMC health status + being monitored by the chassis management card." + ::= { drsStatusNowGroup 9 } + + drsGlobalPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0002.0001 This attribute defines the previous chassis status + recorded by the chassis management card." + ::= { drsStatusPrevGroup 1 } + + drsIOMPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0002.0002 This attribute defines the previous IOM subsystem status + recorded by the chassis management card." + ::= { drsStatusPrevGroup 2 } + + drsKVMPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0002.0003 This attribute defines the previous iKVM subsystem health status + recorded by the chassis management card." + ::= { drsStatusPrevGroup 3 } + + drsRedPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0002.0004 This attribute defines the previous Redundancy status + recorded by the chassis management card." + ::= { drsStatusPrevGroup 4 } + + drsPowerPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0002.0005 This attribute defines the previous power subsystem health status + recorded by the chassis management card." + ::= { drsStatusPrevGroup 5 } + + drsFanPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0002.0006 This attribute defines the previous Fan health status + being monitored by the chassis management card." + ::= { drsStatusPrevGroup 6 } + + drsBladePrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0002.0007 This attribute defines the previous Blade subsystem health status + recorded by the chassis management card." + ::= { drsStatusPrevGroup 7 } + + drsTempPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0008 This attribute defines the Temp Sensor health status + being monitored by the chassis management card." + ::= { drsStatusPrevGroup 8 } + + drsCMCPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0001.0009 This attribute defines the CMC health status + being monitored by the chassis management card." + ::= { drsStatusPrevGroup 9 } + + drsGlobalChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0001 This attribute defines the timestamp of the most recent + global status change." + ::= { drsStatusChangeGroup 1 } + + drsIOMChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0002 This attribute defines the timestamp of the most recent + IOM status change." + ::= { drsStatusChangeGroup 2 } + + drsKVMChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0003 This attribute defines the timestamp of the most recent + iKVM status change." + ::= { drsStatusChangeGroup 3 } + + drsRedChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0004 This attribute defines the timestamp of the most recent + Redundancy status change." + ::= { drsStatusChangeGroup 4 } + + drsPowerChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0005 This attribute defines the timestamp of the most recent + power health status change." + ::= { drsStatusChangeGroup 5 } + + drsFanChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0006 This attribute defines the timestamp of the most recent + Fan health status change." + ::= { drsStatusChangeGroup 6 } + + drsBladeChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0007 This attribute defines the timestamp of the most recent + Blade health status change." + ::= { drsStatusChangeGroup 7 } + + drsTempChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0008 This attribute defines the timestamp of the most recent + Temp Sensor health status change." + ::= { drsStatusChangeGroup 8 } + + drsCMCChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0003.0003.0009 This attribute defines the timestamp of the most recent + CMC health status change." + ::= { drsStatusChangeGroup 9 } + + ------------------------------------------------------------------------------- + -- group: chassis power + ------------------------------------------------------------------------------- + + drsCMCPowerTable OBJECT-TYPE + SYNTAX SEQUENCE OF DrsCMCPowerTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "0004.0001 This object defines the CMC power table." + ::= { drsChassisPowerGroup 1 } + + drsCMCPowerTableEntry OBJECT-TYPE + SYNTAX DrsCMCPowerTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "0004.0001.0001 This object defines the CMC power table entry." + INDEX { drsChassisIndex } + ::= { drsCMCPowerTable 1 } + + drsCMCPSUTable OBJECT-TYPE + SYNTAX SEQUENCE OF DrsCMCPSUTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "0004.0002 This object defines the CMC PSU table." + ::= { drsChassisPowerGroup 2 } + + drsCMCPSUTableEntry OBJECT-TYPE + SYNTAX DrsCMCPSUTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "0004.0002.0001 This object defines the CMC PSU table entry." + INDEX { drsPSUChassisIndex, drsPSUIndex } + ::= { drsCMCPSUTable 1 } + + ------------------------------------------------------------------------------- + -- table: CMC power information + ------------------------------------------------------------------------------- + + drsChassisIndex OBJECT-TYPE + SYNTAX DellCMCPowerIndexRange + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0001 This attribute defines the index + (one-based) of the associated chassis." + ::= { drsCMCPowerTableEntry 1 } + + drsPotentialPower OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0002 This attribute defines the power (in Watts) required by + the chassis infrastructure, plus the sum of the maximum power requirements + for all currently powered-on servers." + ::= { drsCMCPowerTableEntry 2 } + + drsIdlePower OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0003 This attribute defines the power (in Watts) required by + the chassis infrastructure, plus the sum of the minimum power requirements + for all currently powered-on servers." + ::= { drsCMCPowerTableEntry 3 } + + drsMaxPowerSpecification OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0004 This attribute defines the power limit (in Watts) + at which server throttling will take place." + ::= { drsCMCPowerTableEntry 4 } + + + drsPowerSurplus OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0005 This attribute defines the power surplus (in Watts) + remaining above the drsPotentialPower reading." + ::= { drsCMCPowerTableEntry 5 } + + drsKWhCumulative OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0006 This attribute defines the cumulative chassis power + usage (in KWh) since last reset." + ::= { drsCMCPowerTableEntry 6 } + + drsKWhCumulativeTime OBJECT-TYPE + SYNTAX DellTimestamp + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0007 This attribute defines the timestamp of the most recent + chassis power accumulator reset." + ::= { drsCMCPowerTableEntry 7 } + + drsWattsPeakUsage OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0008 This attribute defines the chassis peak power + usage (in Watts) since last reset." + ::= { drsCMCPowerTableEntry 8 } + + drsWattsPeakTime OBJECT-TYPE + SYNTAX DellTimestamp + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0009 This attribute defines the timestamp of the most recent + chassis peak power usage." + ::= { drsCMCPowerTableEntry 9 } + + drsWattsMinUsage OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0010 This attribute defines the chassis mimimum power + usage (in Watts) since last reset." + ::= { drsCMCPowerTableEntry 10 } + + drsWattsMinTime OBJECT-TYPE + SYNTAX DellTimestamp + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0011 This attribute defines the timestamp of the most recent + chassis minimum power usage." + ::= { drsCMCPowerTableEntry 11 } + + drsWattsResetTime OBJECT-TYPE + SYNTAX DellTimestamp + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0012 This attribute defines the timestamp of the most recent + reset of the chassis min/peak Watts readings." + ::= { drsCMCPowerTableEntry 12 } + + drsWattsReading OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0013 This attribute defines the instantaneous chassis power + usage (in Watts)." + ::= { drsCMCPowerTableEntry 13 } + + drsAmpsReading OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0001.0001.0014 This attribute defines the instantaneous chassis current + usage (in Watts)." + ::= { drsCMCPowerTableEntry 14 } + + ------------------------------------------------------------------------------- + -- table: CMC PSU info + ------------------------------------------------------------------------------- + + drsPSUChassisIndex OBJECT-TYPE + SYNTAX DellCMCPowerIndexRange + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0002.0001.0001 This attribute defines the index + (one-based) of the associated chassis." + ::= { drsCMCPSUTableEntry 1 } + + drsPSUIndex OBJECT-TYPE + SYNTAX DellCMCPSUIndexRange + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0002.0001.0002 This attribute defines the index + (one-based) of the associated CMC PSU." + ::= { drsCMCPSUTableEntry 2 } + + drsPSULocation OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0002.0001.0003 This attribute defines the location + of the CMC PSU." + ::= { drsCMCPSUTableEntry 3 } + + drsPSUMonitoringCapable OBJECT-TYPE + SYNTAX DellCMCPSUCapable + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0002.0001.0004 This attribute defines the PSU Monitoring + capabilities, or the absence of a PSU in this location." + ::= { drsCMCPSUTableEntry 4 } + + drsPSUVoltsReading OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0002.0001.0005 This attribute defines the instantaneous + PSU Voltage reading." + ::= { drsCMCPSUTableEntry 5 } + + drsPSUAmpsReading OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0002.0001.0006 This attribute defines the instantaneous + PSU Current reading." + ::= { drsCMCPSUTableEntry 6 } + + drsPSUWattsReading OBJECT-TYPE + SYNTAX DellPowerReading + ACCESS read-only + STATUS mandatory + DESCRIPTION "0004.0002.0001.0007 This attribute defines the instantaneous + PSU Wattage reading." + ::= { drsCMCPSUTableEntry 7 } + + ------------------------------------------------------------------------------- + -- group: chassis alerts + ------------------------------------------------------------------------------- + + drsCASubSystem OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0020.0010.0001 This attribute defines the Sub-System Name of the CMC Alert" + ::= { drsChassisAlertVariables 1 } + + drsCASSCurrStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0020.0010.0002 This attribute defines the Current Status of the Alerting + Sub-System" + ::= { drsChassisAlertVariables 2 } + + drsCASSPrevStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION "0020.0010.0003 This attribute defines the Previous Status of the Alerting + Sub-System" + ::= { drsChassisAlertVariables 3 } + + drsCASSChangeTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION "0020.0010.0004 This attribute defines the Timestamp of Most Recent Change of + the Alerting Sub-System" + ::= { drsChassisAlertVariables 4 } + + drsCAMessage OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION "0020.0010.0005 This attribute defines the CSSD message of the CMC Alert" + ::= { drsChassisAlertVariables 5 } + + alertCMCTestTrap TRAP-TYPE + ENTERPRISE drsOutofBandGroup + DESCRIPTION "The CMC has generated a test trap" + --#TYPE "CMC Test Trap" + --#SUMMARY "CMC Test Trap" + --#SEVERITY INFORMATIONAL + --#CATEGORY Error Events + ::= 2000 + + alertCMCNormalTrap TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsProductChassisName, + drsProductChassisLocation, + drsGlobalCurrStatus, + drsCASubSystem, + drsCASSCurrStatus, + drsCASSPrevStatus, + drsCASSChangeTime, + drsCAMessage } + DESCRIPTION "The CMC reported a return-to-normal or informational event." + --#TYPE "CMC Return-to-Normal / Informational Trap" + --#SUMMARY "Return-to-Normal / Informational Trap from CMC in system %s in location %s, message: %s" + --#ARGUMENTS {0,1,7} + --#SEVERITY NORMAL + --#CATEGORY Error Events + ::= 2002 + + alertCMCWarningTrap TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsProductChassisName, + drsProductChassisLocation, + drsGlobalCurrStatus, + drsCASubSystem, + drsCASSCurrStatus, + drsCASSPrevStatus, + drsCASSChangeTime, + drsCAMessage } + DESCRIPTION "The CMC reported a warning event." + --#TYPE "CMC Warning Trap" + --#SUMMARY "Warning Trap from CMC in system %s in location %s, message: %s" + --#ARGUMENTS {0,1,7} + --#SEVERITY WARNING + --#CATEGORY Error Events + ::= 2003 + + alertCMCCriticalTrap TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsProductChassisName, + drsProductChassisLocation, + drsGlobalCurrStatus, + drsCASubSystem, + drsCASSCurrStatus, + drsCASSPrevStatus, + drsCASSChangeTime, + drsCAMessage } + DESCRIPTION "The CMC reported a critical event." + --#TYPE "CMC Critical Trap" + --#SUMMARY "Critical Trap from CMC in system %s in location %s, message: %s" + --#ARGUMENTS {0,1,7} + --#SEVERITY CRITICAL + --#CATEGORY Error Events + ::= 2004 + + alertCMCNonRecoverableTrap TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsProductChassisName, + drsProductChassisLocation, + drsGlobalCurrStatus, + drsCASubSystem, + drsCASSCurrStatus, + drsCASSPrevStatus, + drsCASSChangeTime, + drsCAMessage } + DESCRIPTION "The CMC reported a catastrophic event." + --#TYPE "CMC Non-Recoverable Trap" + --#SUMMARY "Non-Recoverable Trap from CMC in system %s in location %s, message: %s" + --#ARGUMENTS {0,1,7} + --#SEVERITY NON-RECOVERABLE + --#CATEGORY Error Events + ::= 2005 + + -- + -- Legacy Alerting + -- + + drsAlertSystem OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5000.0010.0001 Name of the system generating the alert." + --DEFAULT get-function-async get_%n_async + --DEFAULT next-function-async std_next_async + ::= { drsAlertVariables 1 } + + drsAlertTableIndexOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5000.0010.0002 0.0" + --DEFAULT get-function-async get_OID_null_async + --DEFAULT next-function-async std_next_async + ::= { drsAlertVariables 2 } + + drsAlertMessage OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5000.0010.0003 Message describing the alert." + --DEFAULT get-function-async get_string_null_async + --DEFAULT next-function-async std_next_async + ::= { drsAlertVariables 3 } + + drsAlertCurrentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5000.0010.0004 Current status of object causing the alert." + --DEFAULT get-function-async get_dellstatus_unknow_async + --DEFAULT next-function-async std_next_async + ::= { drsAlertVariables 4 } + + drsAlertPreviousStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5000.0010.0005 Previous status of object causing the alert." + --DEFAULT get-function-async get_dellstatus_unknow_async + --DEFAULT next-function-async std_next_async + ::= { drsAlertVariables 5 } + + drsAlertData OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5000.0010.0006 Alert data." + --DEFAULT get-function-async get_string_null_async + --DEFAULT next-function-async std_next_async + ::= { drsAlertVariables 6 } + + alertDrscTestTrapEvent TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC generated a test trap event in response to a user request." + --#TYPE "Dell RAC Test TRAP Event" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#CATEGORY Status Events + ::= 1001 + + alertDrscAuthError TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC Authentication Failures during a time period have Exceeded a Threshold." + --#TYPE "Dell RAC Authentication Error" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#CATEGORY Error Events + ::= 1002 + + alertDrscLostESM TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC cannot communicate with the baseboard management controller (ESM)." + --#TYPE "Dell RAC Lost Communication with ESM" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#CATEGORY Error Events + ::= 1003 + + alertDrscFoundESM TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC is communicating normally with the baseboard management controller (ESM)." + --#TYPE "Dell RAC Communication with ESM is OK" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#CATEGORY Error Events + ::= 1004 + + alertDrscPowerOff TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected a System power state change to powered-off." + --#TYPE "Dell RAC Detected System Powered-Off" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#CATEGORY Error Events + ::= 1005 + + alertDrscPowerOn TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected a system power state change to powered-on." + --#TYPE "Dell RAC Detected System Powered-On" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#CATEGORY Error Events + ::= 1006 + + alertDrscWatchdogExpired TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected that the system watchdog has expired indicating a system hang." + --#TYPE "Dell RAC Detected Watchdog Expired" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#CATEGORY Error Events + ::= 1007 + + alertDrscBattLow TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC Battery charge is below 25% indicating that the battery may only be able to power the DRSC for 8-10 minutes." + --#TYPE "Dell RAC Battery Charge Low" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#CATEGORY Error Events + ::= 1008 + + alertDrscTempNormal TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC Temperature probe has retured to a normal value." + --#TYPE "Dell RAC Temperature Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#CATEGORY Error Events + ::= 1009 + + alertDrscTempWarning TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC Temperature probe has detected a Warning value." + --#TYPE "Dell RAC Temperature Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#CATEGORY Error Events + ::= 1010 + + alertDrscTempCritical TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC Temperature probe has detected a failure (or critical) value." + --#TYPE "Dell RAC Temperature Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#CATEGORY Error Events + ::= 1011 + + alertDrscVoltNormal TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC voltage has returned to a normal value." + --#TYPE "Dell RAC Voltage Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#CATEGORY Error Events + ::= 1012 + + alertDrscVoltWarning TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC voltage probe has detected a warning value." + --#TYPE "Dell RAC Battery Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#CATEGORY Error Events + ::= 1013 + + alertDrscVoltCritical TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC voltage probe has detected a failure (or critical) value." + --#TYPE "Dell RAC Voltage Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#CATEGORY Error Events + ::= 1014 + + alertDrscSELWarning TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected a new event in the System Event Log with Severity: Warning." + --#TYPE "Dell RAC System Event Log Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#CATEGORY Error Events + ::= 1015 + + alertDrscSELCritical TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected a new event in the System Event Log with Severity: Critical." + --#TYPE "Dell RAC System Event Log Critical" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#CATEGORY Error Events + ::= 1016 + + alertDrscSEL80percentFull TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected that the System Event Log is 80% full." + --#TYPE "Dell System Event Log 80% Full Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#CATEGORY Status Events + ::= 1017 + + alertDrscSEL90percentFull TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected that the System Event Log is 90% full." + --#TYPE " Dell System Event Log 90% Full Warning " + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#CATEGORY Status Events + ::= 1018 + + alertDrscSEL100percentFull TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected that the System Event Log is 100% full." + --#TYPE " Dell System Event Log 100% Full Warning " + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#CATEGORY Status Events + ::= 1019 + + alertDrscSELNormal TRAP-TYPE + ENTERPRISE drsOutofBandGroup + VARIABLES { drsAlertSystem, + drsAlertTableIndexOID, + drsAlertMessage, + drsAlertCurrentStatus, + drsAlertPreviousStatus, + drsAlertData } + DESCRIPTION + "The RAC has detected a new event in the System Event Log with Severity: Normal." + --#TYPE "Dell RAC System Event Log Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#CATEGORY Error Events + ::= 1020 +END + + diff --git a/pandora_console/attachment/mibs/DHCP-MIB.mib b/pandora_console/attachment/mibs/DHCP-MIB.mib new file mode 100644 index 0000000000..0f05ed863b --- /dev/null +++ b/pandora_console/attachment/mibs/DHCP-MIB.mib @@ -0,0 +1,169 @@ + DHCP-MIB DEFINITIONS ::= BEGIN + + + IMPORTS + enterprises, + OBJECT-TYPE, + Counter + FROM RFC1155-SMI + DisplayString + FROM RFC1213-MIB + microsoft, + software + FROM MSFT-MIB; + + +-- microsoft OBJECT IDENTIFIER ::= { enterprises 311 } +-- software OBJECT IDENTIFIER ::= { microsoft 1 } + + dhcp OBJECT IDENTIFIER ::= { software 3 } + dhcpPar OBJECT IDENTIFIER ::= { dhcp 1 } + dhcpScope OBJECT IDENTIFIER ::= { dhcp 2 } + + + + -- Dhcp MIB + -- Parameters (Prefix Par) + + parDhcpStartTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Dhcp Server start time" + ::= { dhcpPar 1 } + + parDhcpTotalNoOfDiscovers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + discovery messages received" + ::= { dhcpPar 2 } + + parDhcpTotalNoOfRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + requests received" + ::= { dhcpPar 3 } + + parDhcpTotalNoOfReleases OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + releases received" + ::= { dhcpPar 4 } + + parDhcpTotalNoOfOffers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + offers sent" + ::= { dhcpPar 5 } + + parDhcpTotalNoOfAcks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + acks received" + ::= { dhcpPar 6 } + + parDhcpTotalNoOfNacks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + nacks received" + ::= { dhcpPar 7 } + + parDhcpTotalNoOfDeclines OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + declines" + ::= { dhcpPar 8 } + +-- scope group (Prefix Scope) + + + scopeTable OBJECT-TYPE + SYNTAX SEQUENCE OF ScopeTableEntry + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A list of subnets maintained by the server" + ::= { dhcpScope 1 } + + scopeTableEntry OBJECT-TYPE + SYNTAX ScopeTableEntry + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the row corresponding to a subnet" + INDEX { subnetAdd } + ::= { scopeTable 1 } + + ScopeTableEntry ::= SEQUENCE { + subnetAdd + IpAddress, + + noAddInUse + Counter, + + noAddFree + Counter, + + noPendingOffers + Counter + + } + subnetAdd OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the subnet address " + ::= { scopeTableEntry 1 } + + + noAddInUse OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the no. of addresses in use" + ::= { scopeTableEntry 2 } + + noAddFree OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the no. of addresses that are free " + ::= { scopeTableEntry 3 } + + noPendingOffers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the no. of addresses that are currently in the offer + state" + ::= { scopeTableEntry 4 } + + END + + diff --git a/pandora_console/attachment/mibs/DSA-MIB b/pandora_console/attachment/mibs/DSA-MIB new file mode 100644 index 0000000000..824ea63aa9 --- /dev/null +++ b/pandora_console/attachment/mibs/DSA-MIB @@ -0,0 +1,660 @@ +-- Changes to rfc1567 (DSA SNMPv2 MIB): +-- Added the following imports: MODULE-COMPLIANCE and OBJECT-GROUP +-- from SNMPv2-CONF; and MODULE-IDENTITY Counter32, and Gauge32 +-- from SNMPv2-SMI. +-- Removed the following unneeded imports: NOTICIATION-TYPE and +-- DisplayString from SNMPv2-SMI; and TEXTUAL-CONVENTION +-- from FROM SNMPv2-TC. +-- dperkins@scruznet.com + +DSA-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32 + FROM SNMPv2-SMI + TimeStamp + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF + mib-2 + FROM RFC1213-MIB + applIndex, DistinguishedName + FROM APPLICATION-MIB; + + dsaMIB MODULE-IDENTITY + LAST-UPDATED "9311250000Z" + ORGANIZATION "IETF Mail and Directory Management Working + Group" + CONTACT-INFO + " Glenn Mansfield + + Postal: AIC Systems Laboratory + 6-6-3, Minami Yoshinari + Aoba-ku, Sendai, 989-32 + JP + + Tel: +81 22 279 3310 + Fax: +81 22 279 3640 + E-Mail: glenn@aic.co.jp" + DESCRIPTION + " The MIB module for monitoring Directory System Agents." + ::= { mib-2 29 } + + + dsaOpsTable OBJECT-TYPE + SYNTAX SEQUENCE OF DsaOpsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " The table holding information related to the + DSA operations." + ::= {dsaMIB 1} + + dsaOpsEntry OBJECT-TYPE + SYNTAX DsaOpsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " Entry containing operations related statistics + for a DSA." + INDEX { applIndex } + ::= {dsaOpsTable 1} + + DsaOpsEntry ::= SEQUENCE { + + -- Bindings + dsaAnonymousBinds + Counter32, + dsaUnauthBinds + Counter32, + dsaSimpleAuthBinds + Counter32, + dsaStrongAuthBinds + Counter32, + dsaBindSecurityErrors + Counter32, + + -- In-coming operations + + dsaInOps + Counter32, + dsaReadOps + Counter32, + dsaCompareOps + Counter32, + dsaAddEntryOps + Counter32, + dsaRemoveEntryOps + Counter32, + dsaModifyEntryOps + Counter32, + dsaModifyRDNOps + Counter32, + dsaListOps + Counter32, + dsaSearchOps + Counter32, + dsaOneLevelSearchOps + Counter32, + dsaWholeTreeSearchOps + Counter32, + + -- Out going operations + + dsaReferrals + Counter32, + dsaChainings + Counter32, + + -- Errors + + dsaSecurityErrors + Counter32, + dsaErrors + Counter32 + } + + dsaAnonymousBinds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of anonymous binds to this DSA from DUAs + since application start." + ::= {dsaOpsEntry 1} + + dsaUnauthBinds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of un-authenticated binds to this + DSA since application start." + ::= {dsaOpsEntry 2} + + dsaSimpleAuthBinds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of binds to this DSA that were authenticated + using simple authentication procedures since + application start." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 8.1.2.1.1." + ::= {dsaOpsEntry 3} + + + dsaStrongAuthBinds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of binds to this DSA that were authenticated + using the strong authentication procedures since + application start. This includes the binds that were + authenticated using external authentication procedures." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Sections 8.1.2.1.2 & 8.1.2.1.3." + ::= {dsaOpsEntry 4} + + dsaBindSecurityErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of bind operations that have been rejected + by this DSA due to inappropriateAuthentication or + invalidCredentials." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 12.7.2" + ::= {dsaOpsEntry 5} + + dsaInOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of operations forwarded to this DSA + from DUAs or other DSAs since application + start up." + ::= {dsaOpsEntry 6} + + dsaReadOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of read operations serviced by + this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 9.1." + ::= {dsaOpsEntry 7} + + dsaCompareOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of compare operations serviced by + this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 9.2." + ::= {dsaOpsEntry 8} + + dsaAddEntryOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of addEntry operations serviced by + this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 11.1." + ::= {dsaOpsEntry 9} + + dsaRemoveEntryOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of removeEntry operations serviced by + this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 11.2." + ::= {dsaOpsEntry 10} + + dsaModifyEntryOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of modifyEntry operations serviced by + this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 11.3." + ::= {dsaOpsEntry 11} + + dsaModifyRDNOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of modifyRDN operations serviced by + this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 11.4." + ::= {dsaOpsEntry 12} + + dsaListOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of list operations serviced by + this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 10.1." + ::= {dsaOpsEntry 13} + + dsaSearchOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of search operations- baseObjectSearches, + oneLevelSearches and subTreeSearches, serviced + by this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 10.2." + ::= {dsaOpsEntry 14} + + dsaOneLevelSearchOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of oneLevelSearch operations serviced + by this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 10.2.2.2." + ::= {dsaOpsEntry 15} + + dsaWholeTreeSearchOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of wholeTreeSearch operations serviced + by this DSA since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 10.2.2.2." + ::= {dsaOpsEntry 16} + + dsaReferrals OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of referrals returned by this DSA in response + to requests for operations since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 12.6." + ::= {dsaOpsEntry 17} + + dsaChainings OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of operations forwarded by this DSA + to other DSAs since application startup." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.518, 1988: + Section 14." + ::= {dsaOpsEntry 18} + + dsaSecurityErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of operations forwarded to this DSA + which did not meet the security requirements. " + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Section 12.7." + ::= {dsaOpsEntry 19} + + dsaErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of operations that could not be serviced + due to errors other than security errors, and + referrals. + A partially serviced operation will not be counted + as an error. + The errors include NameErrors, UpdateErrors, Attribute + errors and ServiceErrors." + REFERENCE + " CCITT Blue Book Fascicle VIII.8 - Rec. X.511, 1988: + Sections 12.4, 12.5, 12.8 & 12.9." + ::= {dsaOpsEntry 20} + + -- Entry statistics/Cache performance + dsaEntriesTable OBJECT-TYPE + SYNTAX SEQUENCE OF DsaEntriesEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " The table holding information related to the + entry statistics and cache performance of the DSAs." + ::= {dsaMIB 2} + + dsaEntriesEntry OBJECT-TYPE + SYNTAX DsaEntriesEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " Entry containing statistics pertaining to entries + held by a DSA." + INDEX { applIndex } + ::= {dsaEntriesTable 1} + + DsaEntriesEntry ::= SEQUENCE { + dsaMasterEntries + Gauge32, + dsaCopyEntries + Gauge32, + dsaCacheEntries + Gauge32, + dsaCacheHits + Counter32, + dsaSlaveHits + Counter32 + } + + dsaMasterEntries OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of entries mastered in the DSA." + ::= {dsaEntriesEntry 1} + + dsaCopyEntries OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of entries for which systematic (slave) + copies are maintained in the DSA." + ::= {dsaEntriesEntry 2} + + dsaCacheEntries OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of entries cached (non-systematic copies) in + the DSA. This will include the entries that are + cached partially. The negative cache is not counted." + ::= {dsaEntriesEntry 3} + + dsaCacheHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of operations that were serviced from + the locally held cache since application + startup." + ::= {dsaEntriesEntry 4} + + dsaSlaveHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Number of operations that were serviced from + the locally held object replications [ shadow + entries] since application startup." + ::= {dsaEntriesEntry 5} + + + -- The dsaIntTable contains statistical data on the peer DSAs + -- with which the monitored DSAs [attempt to] interact. This + -- table will provide a useful insight into the effect of + -- neighbours on the DSA performance. + -- The table keeps track of the last "N" DSAs with which the + -- monitored DSAs has interacted [attempted to interact], + -- where "N" is a locally-defined constant. + + dsaIntTable OBJECT-TYPE + SYNTAX SEQUENCE OF DsaIntEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " Each row of this table contains some details + related to the history of the interaction + of the monitored DSAs with their respective + peer DSAs." + ::= { dsaMIB 3 } + + dsaIntEntry OBJECT-TYPE + SYNTAX DsaIntEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " Entry containing interaction details of a DSA + with a peer DSA." + INDEX { applIndex,dsaIntIndex } + ::= { dsaIntTable 1 } + + DsaIntEntry ::= SEQUENCE { + dsaIntIndex + INTEGER, + dsaName + DistinguishedName, + dsaTimeOfCreation + TimeStamp, + dsaTimeOfLastAttempt + TimeStamp, + dsaTimeOfLastSuccess + TimeStamp, + dsaFailuresSinceLastSuccess + Counter32, + dsaFailures + Counter32, + dsaSuccesses + Counter32 + } + + dsaIntIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " Together with applIndex it forms the unique key to + identify the conceptual row which contains useful info + on the (attempted) interaction between the DSA (referred + to by applIndex) and a peer DSA." + ::= {dsaIntEntry 1} + + dsaName OBJECT-TYPE + SYNTAX DistinguishedName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Distinguished Name of the peer DSA to which this + entry pertains." + ::= {dsaIntEntry 2} + + dsaTimeOfCreation OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The value of sysUpTime when this row was created. + If the entry was created before the network management + subsystem was initialized, this object will contain + a value of zero." + ::= {dsaIntEntry 3} + + dsaTimeOfLastAttempt OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The value of sysUpTime when the last attempt was made + to contact this DSA. If the last attempt was made before + the network management subsystem was initialized, this + object will contain a value of zero." + ::= {dsaIntEntry 4} + + dsaTimeOfLastSuccess OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The value of sysUpTime when the last attempt made to + contact this DSA was successful. If there have + been no successful attempts this entry will have a value + of zero. If the last successful attempt was made before + the network management subsystem was initialized, this + object will contain a value of zero." + ::= {dsaIntEntry 5} + + dsaFailuresSinceLastSuccess OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The number of failures since the last time an + attempt to contact this DSA was successful. If + there has been no successful attempts, this counter + will contain the number of failures since this entry + was created." + ::= {dsaIntEntry 6} + + dsaFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Cumulative failures since the creation of + this entry." + ::= {dsaIntEntry 7} + + dsaSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " Cumulative successes since the creation of + this entry." + ::= {dsaIntEntry 8} + + + -- Conformance information + + dsaConformance OBJECT IDENTIFIER ::= { dsaMIB 4 } + + dsaGroups OBJECT IDENTIFIER ::= { dsaConformance 1 } + dsaCompliances OBJECT IDENTIFIER ::= { dsaConformance 2 } + + -- Compliance statements + + dsaOpsCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities + which implement the DSA-MIB for monitoring + DSA operations." + + MODULE -- this module + MANDATORY-GROUPS { dsaOpsGroup } + + ::= { dsaCompliances 1 } + + dsaEntryCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities + which implement the DSA-MIB for monitoring + DSA operations, entry statistics and cache + performance." + + MODULE -- this module + MANDATORY-GROUPS { dsaOpsGroup,dsaEntryGroup } + ::= { dsaCompliances 2 } + + dsaIntCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + " The compliance statement for SNMPv2 entities + which implement the DSA-MIB for monitoring DSA + operations and the interaction of the DSA with + peer DSAs." + + MODULE -- this module + MANDATORY-GROUPS { dsaOpsGroup, dsaIntGroup } + + ::= { dsaCompliances 3 } + + + -- Units of conformance + + dsaOpsGroup OBJECT-GROUP + OBJECTS { + dsaAnonymousBinds, dsaUnauthBinds, dsaSimpleAuthBinds, + dsaStrongAuthBinds, dsaBindSecurityErrors,dsaInOps, + dsaReadOps, dsaCompareOps, dsaAddEntryOps, + dsaRemoveEntryOps, dsaModifyEntryOps, dsaModifyRDNOps, + dsaListOps, dsaSearchOps, dsaOneLevelSearchOps, + dsaWholeTreeSearchOps,dsaReferrals, dsaChainings, + dsaSecurityErrors, dsaErrors} + STATUS current + DESCRIPTION + " A collection of objects for monitoring the DSA + operations." + ::= { dsaGroups 1 } + + dsaEntryGroup OBJECT-GROUP + OBJECTS {dsaMasterEntries, dsaCopyEntries, dsaCacheEntries, + dsaCacheHits, dsaSlaveHits} + STATUS current + DESCRIPTION + " A collection of objects for monitoring the DSA + entry statistics and cache performance." + ::= { dsaGroups 2 } + + dsaIntGroup OBJECT-GROUP + OBJECTS { + dsaName, dsaTimeOfCreation, dsaTimeOfLastAttempt, + dsaTimeOfLastSuccess,dsaFailuresSinceLastSuccess,dsaFailures, + dsaSuccesses} + STATUS current + DESCRIPTION + " A collection of objects for monitoring the DSA's + interaction with peer DSAs." + ::= { dsaGroups 3 } + + +END diff --git a/pandora_console/attachment/mibs/ENTITY-MIB.mib b/pandora_console/attachment/mibs/ENTITY-MIB.mib index dc46483f14..8f3ba60ff7 100644 --- a/pandora_console/attachment/mibs/ENTITY-MIB.mib +++ b/pandora_console/attachment/mibs/ENTITY-MIB.mib @@ -1,1466 +1,1225 @@ --- ***************************************************************** --- Entity MIB version 3 --- --- September 2005, Subra Hegde --- --- Copyright (c) 2005 by cisco Systems, Inc. --- All rights reserved. --- ***************************************************************** --- --- This mib was extracted from RFC 4133 --- - -ENTITY-MIB DEFINITIONS ::= BEGIN - -IMPORTS - MODULE-IDENTITY, OBJECT-TYPE, mib-2, NOTIFICATION-TYPE, - Integer32 - FROM SNMPv2-SMI - TDomain, TAddress, TEXTUAL-CONVENTION, - AutonomousType, RowPointer, TimeStamp, TruthValue, - DateAndTime - FROM SNMPv2-TC - MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP - FROM SNMPv2-CONF - SnmpAdminString - FROM SNMP-FRAMEWORK-MIB; - -entityMIB MODULE-IDENTITY - LAST-UPDATED "200508100000Z" - ORGANIZATION "IETF ENTMIB Working Group" - CONTACT-INFO - " WG E-mail: entmib@ietf.org - Mailing list subscription info: - http://www.ietf.org/mailman/listinfo/entmib - - Andy Bierman - ietf@andybierman.com - - Keith McCloghrie - Cisco Systems Inc. - 170 West Tasman Drive - San Jose, CA 95134 - - - +1 408-526-5260 - kzm@cisco.com" - - DESCRIPTION - "The MIB module for representing multiple logical - entities supported by a single SNMP agent. - - Copyright (C) The Internet Society (2005). This - version of this MIB module is part of RFC 4133; see - the RFC itself for full legal notices." - - REVISION "200508100000Z" - DESCRIPTION - "Initial Version of Entity MIB (Version 3). - This revision obsoletes RFC 2737. - Additions: - - cpu(12) enumeration added to PhysicalClass TC - - DISPLAY-HINT clause to PhysicalIndex TC - - PhysicalIndexOrZero TC - - entPhysicalMfgDate object - - entPhysicalUris object - Changes: - - entPhysicalContainedIn SYNTAX changed from - INTEGER to PhysicalIndexOrZero - - This version published as RFC 4133." - - REVISION "199912070000Z" - DESCRIPTION - "Initial Version of Entity MIB (Version 2). - This revision obsoletes RFC 2037. - This version published as RFC 2737." - - REVISION "199610310000Z" - DESCRIPTION - "Initial version (version 1), published as - RFC 2037." - ::= { mib-2 47 } - -entityMIBObjects OBJECT IDENTIFIER ::= { entityMIB 1 } - --- MIB contains four groups -entityPhysical OBJECT IDENTIFIER ::= { entityMIBObjects 1 } -entityLogical OBJECT IDENTIFIER ::= { entityMIBObjects 2 } -entityMapping OBJECT IDENTIFIER ::= { entityMIBObjects 3 } -entityGeneral OBJECT IDENTIFIER ::= { entityMIBObjects 4 } - - --- Textual Conventions -PhysicalIndex ::= TEXTUAL-CONVENTION - DISPLAY-HINT "d" - STATUS current - DESCRIPTION - "An arbitrary value that uniquely identifies the physical - entity. The value should be a small, positive integer. - Index values for different physical entities are not - necessarily contiguous." - SYNTAX Integer32 (1..2147483647) - -PhysicalIndexOrZero ::= TEXTUAL-CONVENTION - DISPLAY-HINT "d" - STATUS current - DESCRIPTION - "This textual convention is an extension of the - PhysicalIndex convention, which defines a greater than zero - value used to identify a physical entity. This extension - permits the additional value of zero. The semantics of the - value zero are object-specific and must, therefore, be - defined as part of the description of any object that uses - this syntax. Examples of the usage of this extension are - situations where none or all physical entities need to be - referenced." - SYNTAX Integer32 (0..2147483647) - -PhysicalClass ::= TEXTUAL-CONVENTION - STATUS current - DESCRIPTION - "An enumerated value which provides an indication of the - general hardware type of a particular physical entity. - There are no restrictions as to the number of - entPhysicalEntries of each entPhysicalClass, which must be - instantiated by an agent. - - The enumeration 'other' is applicable if the physical entity - class is known, but does not match any of the supported - values. - - The enumeration 'unknown' is applicable if the physical - entity class is unknown to the agent. - - The enumeration 'chassis' is applicable if the physical - entity class is an overall container for networking - equipment. Any class of physical entity, except a stack, - may be contained within a chassis; and a chassis may only - be contained within a stack. - - - The enumeration 'backplane' is applicable if the physical - entity class is some sort of device for aggregating and - forwarding networking traffic, such as a shared backplane in - a modular ethernet switch. Note that an agent may model a - backplane as a single physical entity, which is actually - implemented as multiple discrete physical components (within - a chassis or stack). - - The enumeration 'container' is applicable if the physical - entity class is capable of containing one or more removable - physical entities, possibly of different types. For - example, each (empty or full) slot in a chassis will be - modeled as a container. Note that all removable physical - entities should be modeled within a container entity, such - as field-replaceable modules, fans, or power supplies. Note - that all known containers should be modeled by the agent, - including empty containers. - - The enumeration 'powerSupply' is applicable if the physical - entity class is a power-supplying component. - - The enumeration 'fan' is applicable if the physical entity - class is a fan or other heat-reduction component. - - The enumeration 'sensor' is applicable if the physical - entity class is some sort of sensor, such as a temperature - sensor within a router chassis. - - The enumeration 'module' is applicable if the physical - entity class is some sort of self-contained sub-system. If - the enumeration 'module' is removable, then it should be - modeled within a container entity, otherwise it should be - modeled directly within another physical entity (e.g., a - chassis or another module). - - The enumeration 'port' is applicable if the physical entity - class is some sort of networking port, capable of receiving - and/or transmitting networking traffic. - - The enumeration 'stack' is applicable if the physical entity - class is some sort of super-container (possibly virtual), - intended to group together multiple chassis entities. A - stack may be realized by a 'virtual' cable, a real - interconnect cable, attached to multiple chassis, or may in - fact be comprised of multiple interconnect cables. A stack - should not be modeled within any other physical entities, - but a stack may be contained within another stack. Only - chassis entities should be contained within a stack. - - - The enumeration 'cpu' is applicable if the physical entity - class is some sort of central processing unit." - SYNTAX INTEGER { - other(1), - unknown(2), - chassis(3), - backplane(4), - container(5), -- e.g., chassis slot or daughter-card holder - powerSupply(6), - fan(7), - sensor(8), - module(9), -- e.g., plug-in card or daughter-card - port(10), - stack(11), -- e.g., stack of multiple chassis entities - cpu(12) - } - -SnmpEngineIdOrNone ::= TEXTUAL-CONVENTION - STATUS current - DESCRIPTION - "A specially formatted SnmpEngineID string for use with the - Entity MIB. - - If an instance of an object of SYNTAX SnmpEngineIdOrNone has - a non-zero length, then the object encoding and semantics - are defined by the SnmpEngineID textual convention (see STD - 62, RFC 3411 [RFC3411]). - - If an instance of an object of SYNTAX SnmpEngineIdOrNone - contains a zero-length string, then no appropriate - SnmpEngineID is associated with the logical entity (i.e., - SNMPv3 is not supported)." - SYNTAX OCTET STRING (SIZE(0..32)) -- empty string or SnmpEngineID - --- The Physical Entity Table -entPhysicalTable OBJECT-TYPE - SYNTAX SEQUENCE OF EntPhysicalEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "This table contains one row per physical entity. There is - always at least one row for an 'overall' physical entity." - ::= { entityPhysical 1 } - -entPhysicalEntry OBJECT-TYPE - SYNTAX EntPhysicalEntry - MAX-ACCESS not-accessible - - - STATUS current - DESCRIPTION - "Information about a particular physical entity. - - Each entry provides objects (entPhysicalDescr, - entPhysicalVendorType, and entPhysicalClass) to help an NMS - identify and characterize the entry, and objects - (entPhysicalContainedIn and entPhysicalParentRelPos) to help - an NMS relate the particular entry to other entries in this - table." - INDEX { entPhysicalIndex } - ::= { entPhysicalTable 1 } - -EntPhysicalEntry ::= SEQUENCE { - entPhysicalIndex PhysicalIndex, - entPhysicalDescr SnmpAdminString, - entPhysicalVendorType AutonomousType, - entPhysicalContainedIn PhysicalIndexOrZero, - entPhysicalClass PhysicalClass, - entPhysicalParentRelPos Integer32, - entPhysicalName SnmpAdminString, - entPhysicalHardwareRev SnmpAdminString, - entPhysicalFirmwareRev SnmpAdminString, - entPhysicalSoftwareRev SnmpAdminString, - entPhysicalSerialNum SnmpAdminString, - entPhysicalMfgName SnmpAdminString, - entPhysicalModelName SnmpAdminString, - entPhysicalAlias SnmpAdminString, - entPhysicalAssetID SnmpAdminString, - entPhysicalIsFRU TruthValue, - entPhysicalMfgDate DateAndTime, - entPhysicalUris OCTET STRING - -} - -entPhysicalIndex OBJECT-TYPE - SYNTAX PhysicalIndex - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "The index for this entry." - ::= { entPhysicalEntry 1 } - -entPhysicalDescr OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - - - "A textual description of physical entity. This object - should contain a string that identifies the manufacturer's - name for the physical entity, and should be set to a - distinct value for each version or model of the physical - entity." - ::= { entPhysicalEntry 2 } - -entPhysicalVendorType OBJECT-TYPE - SYNTAX AutonomousType - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "An indication of the vendor-specific hardware type of the - physical entity. Note that this is different from the - definition of MIB-II's sysObjectID. - - An agent should set this object to an enterprise-specific - registration identifier value indicating the specific - equipment type in detail. The associated instance of - entPhysicalClass is used to indicate the general type of - hardware device. - - If no vendor-specific registration identifier exists for - this physical entity, or the value is unknown by this agent, - then the value { 0 0 } is returned." - ::= { entPhysicalEntry 3 } - -entPhysicalContainedIn OBJECT-TYPE - SYNTAX PhysicalIndexOrZero - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The value of entPhysicalIndex for the physical entity which - 'contains' this physical entity. A value of zero indicates - this physical entity is not contained in any other physical - entity. Note that the set of 'containment' relationships - define a strict hierarchy; that is, recursion is not - allowed. - - In the event that a physical entity is contained by more - than one physical entity (e.g., double-wide modules), this - object should identify the containing entity with the lowest - value of entPhysicalIndex." - ::= { entPhysicalEntry 4 } - -entPhysicalClass OBJECT-TYPE - SYNTAX PhysicalClass - MAX-ACCESS read-only - - - STATUS current - DESCRIPTION - "An indication of the general hardware type of the physical - entity. - - An agent should set this object to the standard enumeration - value that most accurately indicates the general class of - the physical entity, or the primary class if there is more - than one entity. - - If no appropriate standard registration identifier exists - for this physical entity, then the value 'other(1)' is - returned. If the value is unknown by this agent, then the - value 'unknown(2)' is returned." - ::= { entPhysicalEntry 5 } - -entPhysicalParentRelPos OBJECT-TYPE - SYNTAX Integer32 (-1..2147483647) - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "An indication of the relative position of this 'child' - component among all its 'sibling' components. Sibling - components are defined as entPhysicalEntries that share the - same instance values of each of the entPhysicalContainedIn - and entPhysicalClass objects. - - An NMS can use this object to identify the relative ordering - for all sibling components of a particular parent - (identified by the entPhysicalContainedIn instance in each - sibling entry). - - If possible, this value should match any external labeling - of the physical component. For example, for a container - (e.g., card slot) labeled as 'slot #3', - entPhysicalParentRelPos should have the value '3'. Note - that the entPhysicalEntry for the module plugged in slot 3 - should have an entPhysicalParentRelPos value of '1'. - - If the physical position of this component does not match - any external numbering or clearly visible ordering, then - user documentation or other external reference material - should be used to determine the parent-relative position. - If this is not possible, then the agent should assign a - consistent (but possibly arbitrary) ordering to a given set - of 'sibling' components, perhaps based on internal - representation of the components. - - - If the agent cannot determine the parent-relative position - for some reason, or if the associated value of - entPhysicalContainedIn is '0', then the value '-1' is - returned. Otherwise, a non-negative integer is returned, - indicating the parent-relative position of this physical - entity. - - Parent-relative ordering normally starts from '1' and - continues to 'N', where 'N' represents the highest - positioned child entity. However, if the physical entities - (e.g., slots) are labeled from a starting position of zero, - then the first sibling should be associated with an - entPhysicalParentRelPos value of '0'. Note that this - ordering may be sparse or dense, depending on agent - implementation. - - The actual values returned are not globally meaningful, as - each 'parent' component may use different numbering - algorithms. The ordering is only meaningful among siblings - of the same parent component. - - The agent should retain parent-relative position values - across reboots, either through algorithmic assignment or use - of non-volatile storage." - ::= { entPhysicalEntry 6 } - -entPhysicalName OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The textual name of the physical entity. The value of this - object should be the name of the component as assigned by - the local device and should be suitable for use in commands - entered at the device's `console'. This might be a text - name (e.g., `console') or a simple component number (e.g., - port or module number, such as `1'), depending on the - physical component naming syntax of the device. - - If there is no local name, or if this object is otherwise - not applicable, then this object contains a zero-length - string. - - Note that the value of entPhysicalName for two physical - entities will be the same in the event that the console - interface does not distinguish between them, e.g., slot-1 - and the card in slot-1." - ::= { entPhysicalEntry 7 } - - -entPhysicalHardwareRev OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The vendor-specific hardware revision string for the - physical entity. The preferred value is the hardware - revision identifier actually printed on the component itself - (if present). - - Note that if revision information is stored internally in a - non-printable (e.g., binary) format, then the agent must - convert such information to a printable format, in an - implementation-specific manner. - - If no specific hardware revision string is associated with - the physical component, or if this information is unknown to - the agent, then this object will contain a zero-length - string." - ::= { entPhysicalEntry 8 } - -entPhysicalFirmwareRev OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The vendor-specific firmware revision string for the - physical entity. - - Note that if revision information is stored internally in a - non-printable (e.g., binary) format, then the agent must - convert such information to a printable format, in an - implementation-specific manner. - - If no specific firmware programs are associated with the - physical component, or if this information is unknown to the - agent, then this object will contain a zero-length string." - ::= { entPhysicalEntry 9 } - -entPhysicalSoftwareRev OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The vendor-specific software revision string for the - physical entity. - - Note that if revision information is stored internally in a - - - non-printable (e.g., binary) format, then the agent must - convert such information to a printable format, in an - implementation-specific manner. - - If no specific software programs are associated with the - physical component, or if this information is unknown to the - agent, then this object will contain a zero-length string." - ::= { entPhysicalEntry 10 } - -entPhysicalSerialNum OBJECT-TYPE - SYNTAX SnmpAdminString (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "The vendor-specific serial number string for the physical - entity. The preferred value is the serial number string - actually printed on the component itself (if present). - - On the first instantiation of an physical entity, the value - of entPhysicalSerialNum associated with that entity is set - to the correct vendor-assigned serial number, if this - information is available to the agent. If a serial number - is unknown or non-existent, the entPhysicalSerialNum will be - set to a zero-length string instead. - - Note that implementations that can correctly identify the - serial numbers of all installed physical entities do not - need to provide write access to the entPhysicalSerialNum - object. Agents which cannot provide non-volatile storage - for the entPhysicalSerialNum strings are not required to - implement write access for this object. - - Not every physical component will have a serial number, or - even need one. Physical entities for which the associated - value of the entPhysicalIsFRU object is equal to 'false(2)' - (e.g., the repeater ports within a repeater module), do not - need their own unique serial number. An agent does not have - to provide write access for such entities, and may return a - zero-length string. - - If write access is implemented for an instance of - entPhysicalSerialNum, and a value is written into the - instance, the agent must retain the supplied value in the - entPhysicalSerialNum instance (associated with the same - physical entity) for as long as that entity remains - instantiated. This includes instantiations across all - re-initializations/reboots of the network management system, - including those resulting in a change of the physical - - - entity's entPhysicalIndex value." - ::= { entPhysicalEntry 11 } - -entPhysicalMfgName OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The name of the manufacturer of this physical component. - The preferred value is the manufacturer name string actually - printed on the component itself (if present). - - Note that comparisons between instances of the - entPhysicalModelName, entPhysicalFirmwareRev, - entPhysicalSoftwareRev, and the entPhysicalSerialNum - objects, are only meaningful amongst entPhysicalEntries with - the same value of entPhysicalMfgName. - - If the manufacturer name string associated with the physical - component is unknown to the agent, then this object will - contain a zero-length string." - ::= { entPhysicalEntry 12 } - -entPhysicalModelName OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The vendor-specific model name identifier string associated - with this physical component. The preferred value is the - customer-visible part number, which may be printed on the - component itself. - - If the model name string associated with the physical - component is unknown to the agent, then this object will - contain a zero-length string." - ::= { entPhysicalEntry 13 } - -entPhysicalAlias OBJECT-TYPE - SYNTAX SnmpAdminString (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "This object is an 'alias' name for the physical entity, as - specified by a network manager, and provides a non-volatile - 'handle' for the physical entity. - - On the first instantiation of a physical entity, the value - - - of entPhysicalAlias associated with that entity is set to - the zero-length string. However, the agent may set the - value to a locally unique default value, instead of a - zero-length string. - - If write access is implemented for an instance of - entPhysicalAlias, and a value is written into the instance, - the agent must retain the supplied value in the - entPhysicalAlias instance (associated with the same physical - entity) for as long as that entity remains instantiated. - This includes instantiations across all - re-initializations/reboots of the network management system, - including those resulting in a change of the physical - entity's entPhysicalIndex value." - ::= { entPhysicalEntry 14 } - -entPhysicalAssetID OBJECT-TYPE - SYNTAX SnmpAdminString (SIZE (0..32)) - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "This object is a user-assigned asset tracking identifier - (as specified by a network manager) for the physical entity, - and provides non-volatile storage of this information. - - On the first instantiation of a physical entity, the value - of entPhysicalAssetID associated with that entity is set to - the zero-length string. - - Not every physical component will have an asset tracking - identifier, or even need one. Physical entities for which - the associated value of the entPhysicalIsFRU object is equal - to 'false(2)' (e.g., the repeater ports within a repeater - module), do not need their own unique asset tracking - identifier. An agent does not have to provide write access - for such entities, and may instead return a zero-length - string. - - If write access is implemented for an instance of - entPhysicalAssetID, and a value is written into the - instance, the agent must retain the supplied value in the - entPhysicalAssetID instance (associated with the same - physical entity) for as long as that entity remains - instantiated. This includes instantiations across all - re-initializations/reboots of the network management system, - including those resulting in a change of the physical - entity's entPhysicalIndex value. - - - If no asset tracking information is associated with the - physical component, then this object will contain a - zero-length string." - ::= { entPhysicalEntry 15 } - -entPhysicalIsFRU OBJECT-TYPE - SYNTAX TruthValue - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "This object indicates whether or not this physical entity - is considered a 'field replaceable unit' by the vendor. If - this object contains the value 'true(1)' then this - entPhysicalEntry identifies a field replaceable unit. For - all entPhysicalEntries that represent components - permanently contained within a field replaceable unit, the - value 'false(2)' should be returned for this object." - ::= { entPhysicalEntry 16 } - -entPhysicalMfgDate OBJECT-TYPE - SYNTAX DateAndTime - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "This object contains the date of manufacturing of the - managed entity. If the manufacturing date is unknown or not - supported, the object is not instantiated. The special - value '0000000000000000'H may also be returned in this - case." - ::= { entPhysicalEntry 17 } - -entPhysicalUris OBJECT-TYPE - SYNTAX OCTET STRING - MAX-ACCESS read-write - STATUS current - DESCRIPTION - "This object contains additional identification information - about the physical entity. The object contains URIs and, - therefore, the syntax of this object must conform to RFC - 3986, section 2. - - Multiple URIs may be present and are separated by white - space characters. Leading and trailing white space - characters are ignored. - - If no additional identification information is known - about the physical entity or supported, the object is not - instantiated. A zero length octet string may also be - - - returned in this case." - REFERENCE - "RFC 3986, Uniform Resource Identifiers (URI): Generic - Syntax, section 2, August 1998." - - ::= { entPhysicalEntry 18 } - --- The Logical Entity Table -entLogicalTable OBJECT-TYPE - SYNTAX SEQUENCE OF EntLogicalEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "This table contains one row per logical entity. For agents - that implement more than one naming scope, at least one - entry must exist. Agents which instantiate all MIB objects - within a single naming scope are not required to implement - this table." - ::= { entityLogical 1 } - -entLogicalEntry OBJECT-TYPE - SYNTAX EntLogicalEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Information about a particular logical entity. Entities - may be managed by this agent or other SNMP agents (possibly) - in the same chassis." - INDEX { entLogicalIndex } - ::= { entLogicalTable 1 } - -EntLogicalEntry ::= SEQUENCE { - entLogicalIndex Integer32, - entLogicalDescr SnmpAdminString, - entLogicalType AutonomousType, - entLogicalCommunity OCTET STRING, - entLogicalTAddress TAddress, - entLogicalTDomain TDomain, - entLogicalContextEngineID SnmpEngineIdOrNone, - entLogicalContextName SnmpAdminString -} - -entLogicalIndex OBJECT-TYPE - SYNTAX Integer32 (1..2147483647) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - - - "The value of this object uniquely identifies the logical - entity. The value should be a small positive integer; index - values for different logical entities are not necessarily - contiguous." - ::= { entLogicalEntry 1 } - -entLogicalDescr OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "A textual description of the logical entity. This object - should contain a string that identifies the manufacturer's - name for the logical entity, and should be set to a distinct - value for each version of the logical entity." - ::= { entLogicalEntry 2 } - -entLogicalType OBJECT-TYPE - SYNTAX AutonomousType - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "An indication of the type of logical entity. This will - typically be the OBJECT IDENTIFIER name of the node in the - SMI's naming hierarchy which represents the major MIB - module, or the majority of the MIB modules, supported by the - logical entity. For example: - a logical entity of a regular host/router -> mib-2 - a logical entity of a 802.1d bridge -> dot1dBridge - a logical entity of a 802.3 repeater -> snmpDot3RptrMgmt - If an appropriate node in the SMI's naming hierarchy cannot - be identified, the value 'mib-2' should be used." - ::= { entLogicalEntry 3 } - -entLogicalCommunity OBJECT-TYPE - SYNTAX OCTET STRING (SIZE (0..255)) - MAX-ACCESS read-only - STATUS deprecated - DESCRIPTION - "An SNMPv1 or SNMPv2C community-string, which can be used to - access detailed management information for this logical - entity. The agent should allow read access with this - community string (to an appropriate subset of all managed - objects) and may also return a community string based on the - privileges of the request used to read this object. Note - that an agent may return a community string with read-only - privileges, even if this object is accessed with a - read-write community string. However, the agent must take - - - care not to return a community string that allows more - privileges than the community string used to access this - object. - - A compliant SNMP agent may wish to conserve naming scopes by - representing multiple logical entities in a single 'default' - naming scope. This is possible when the logical entities, - represented by the same value of entLogicalCommunity, have - no object instances in common. For example, 'bridge1' and - 'repeater1' may be part of the main naming scope, but at - least one additional community string is needed to represent - 'bridge2' and 'repeater2'. - - Logical entities 'bridge1' and 'repeater1' would be - represented by sysOREntries associated with the 'default' - naming scope. - - For agents not accessible via SNMPv1 or SNMPv2C, the value - of this object is the empty string. This object may also - contain an empty string if a community string has not yet - been assigned by the agent, or if no community string with - suitable access rights can be returned for a particular SNMP - request. - - Note that this object is deprecated. Agents which implement - SNMPv3 access should use the entLogicalContextEngineID and - entLogicalContextName objects to identify the context - associated with each logical entity. SNMPv3 agents may - return a zero-length string for this object, or may continue - to return a community string (e.g., tri-lingual agent - support)." - ::= { entLogicalEntry 4 } - -entLogicalTAddress OBJECT-TYPE - SYNTAX TAddress - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The transport service address by which the logical entity - receives network management traffic, formatted according to - the corresponding value of entLogicalTDomain. - - For snmpUDPDomain, a TAddress is 6 octets long: the initial - 4 octets contain the IP-address in network-byte order and - the last 2 contain the UDP port in network-byte order. - Consult 'Transport Mappings for the Simple Network - Management Protocol' (STD 62, RFC 3417 [RFC3417]) for - further information on snmpUDPDomain." - - - ::= { entLogicalEntry 5 } - -entLogicalTDomain OBJECT-TYPE - SYNTAX TDomain - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "Indicates the kind of transport service by which the - logical entity receives network management traffic. - Possible values for this object are presently found in the - Transport Mappings for Simple Network Management Protocol' - (STD 62, RFC 3417 [RFC3417])." - ::= { entLogicalEntry 6 } - -entLogicalContextEngineID OBJECT-TYPE - SYNTAX SnmpEngineIdOrNone - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The authoritative contextEngineID that can be used to send - an SNMP message concerning information held by this logical - entity, to the address specified by the associated - 'entLogicalTAddress/entLogicalTDomain' pair. - - This object, together with the associated - entLogicalContextName object, defines the context associated - with a particular logical entity, and allows access to SNMP - engines identified by a contextEngineId and contextName - pair. - - If no value has been configured by the agent, a zero-length - string is returned, or the agent may choose not to - instantiate this object at all." - ::= { entLogicalEntry 7 } - -entLogicalContextName OBJECT-TYPE - SYNTAX SnmpAdminString - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The contextName that can be used to send an SNMP message - concerning information held by this logical entity, to the - address specified by the associated - 'entLogicalTAddress/entLogicalTDomain' pair. - - This object, together with the associated - entLogicalContextEngineID object, defines the context - associated with a particular logical entity, and allows - - - access to SNMP engines identified by a contextEngineId and - contextName pair. - - If no value has been configured by the agent, a zero-length - string is returned, or the agent may choose not to - instantiate this object at all." - ::= { entLogicalEntry 8 } - -entLPMappingTable OBJECT-TYPE - SYNTAX SEQUENCE OF EntLPMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "This table contains zero or more rows of logical entity to - physical equipment associations. For each logical entity - known by this agent, there are zero or more mappings to the - physical resources, which are used to realize that logical - entity. - - An agent should limit the number and nature of entries in - this table such that only meaningful and non-redundant - information is returned. For example, in a system that - contains a single power supply, mappings between logical - entities and the power supply are not useful and should not - be included. - - Also, only the most appropriate physical component, which is - closest to the root of a particular containment tree, should - be identified in an entLPMapping entry. - - For example, suppose a bridge is realized on a particular - module, and all ports on that module are ports on this - bridge. A mapping between the bridge and the module would - be useful, but additional mappings between the bridge and - each of the ports on that module would be redundant (because - the entPhysicalContainedIn hierarchy can provide the same - information). On the other hand, if more than one bridge - were utilizing ports on this module, then mappings between - each bridge and the ports it used would be appropriate. - - Also, in the case of a single backplane repeater, a mapping - for the backplane to the single repeater entity is not - necessary." - ::= { entityMapping 1 } - -entLPMappingEntry OBJECT-TYPE - SYNTAX EntLPMappingEntry - MAX-ACCESS not-accessible - - - STATUS current - DESCRIPTION - "Information about a particular logical entity to physical - equipment association. Note that the nature of the - association is not specifically identified in this entry. - It is expected that sufficient information exists in the - MIBs used to manage a particular logical entity to infer how - physical component information is utilized." - INDEX { entLogicalIndex, entLPPhysicalIndex } - ::= { entLPMappingTable 1 } - -EntLPMappingEntry ::= SEQUENCE { - entLPPhysicalIndex PhysicalIndex -} - -entLPPhysicalIndex OBJECT-TYPE - SYNTAX PhysicalIndex - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The value of this object identifies the index value of a - particular entPhysicalEntry associated with the indicated - entLogicalEntity." - ::= { entLPMappingEntry 1 } - --- logical entity/component to alias table -entAliasMappingTable OBJECT-TYPE - SYNTAX SEQUENCE OF EntAliasMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "This table contains zero or more rows, representing - mappings of logical entity and physical component to - external MIB identifiers. Each physical port in the system - may be associated with a mapping to an external identifier, - which itself is associated with a particular logical - entity's naming scope. A 'wildcard' mechanism is provided - to indicate that an identifier is associated with more than - one logical entity." - ::= { entityMapping 2 } - -entAliasMappingEntry OBJECT-TYPE - SYNTAX EntAliasMappingEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Information about a particular physical equipment, logical - - - entity to external identifier binding. Each logical - entity/physical component pair may be associated with one - alias mapping. The logical entity index may also be used as - a 'wildcard' (refer to the entAliasLogicalIndexOrZero object - DESCRIPTION clause for details.) - - Note that only entPhysicalIndex values that represent - physical ports (i.e., associated entPhysicalClass value is - 'port(10)') are permitted to exist in this table." - INDEX { entPhysicalIndex, entAliasLogicalIndexOrZero } - ::= { entAliasMappingTable 1 } - -EntAliasMappingEntry ::= SEQUENCE { - entAliasLogicalIndexOrZero Integer32, - entAliasMappingIdentifier RowPointer -} - -entAliasLogicalIndexOrZero OBJECT-TYPE - SYNTAX Integer32 (0..2147483647) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "The value of this object identifies the logical entity - that defines the naming scope for the associated instance - of the 'entAliasMappingIdentifier' object. - - If this object has a non-zero value, then it identifies the - logical entity named by the same value of entLogicalIndex. - - If this object has a value of zero, then the mapping between - the physical component and the alias identifier for this - entAliasMapping entry is associated with all unspecified - logical entities. That is, a value of zero (the default - mapping) identifies any logical entity that does not have - an explicit entry in this table for a particular - entPhysicalIndex/entAliasMappingIdentifier pair. - - For example, to indicate that a particular interface (e.g., - physical component 33) is identified by the same value of - ifIndex for all logical entities, the following instance - might exist: - - entAliasMappingIdentifier.33.0 = ifIndex.5 - - In the event an entPhysicalEntry is associated differently - for some logical entities, additional entAliasMapping - entries may exist, e.g.: - - - entAliasMappingIdentifier.33.0 = ifIndex.6 - entAliasMappingIdentifier.33.4 = ifIndex.1 - entAliasMappingIdentifier.33.5 = ifIndex.1 - entAliasMappingIdentifier.33.10 = ifIndex.12 - - Note that entries with non-zero entAliasLogicalIndexOrZero - index values have precedence over zero-indexed entries. In - this example, all logical entities except 4, 5, and 10, - associate physical entity 33 with ifIndex.6." - ::= { entAliasMappingEntry 1 } - -entAliasMappingIdentifier OBJECT-TYPE - SYNTAX RowPointer - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The value of this object identifies a particular conceptual - row associated with the indicated entPhysicalIndex and - entLogicalIndex pair. - - Because only physical ports are modeled in this table, only - entries that represent interfaces or ports are allowed. If - an ifEntry exists on behalf of a particular physical port, - then this object should identify the associated 'ifEntry'. - For repeater ports, the appropriate row in the - 'rptrPortGroupTable' should be identified instead. - - For example, suppose a physical port was represented by - entPhysicalEntry.3, entLogicalEntry.15 existed for a - repeater, and entLogicalEntry.22 existed for a bridge. Then - there might be two related instances of - entAliasMappingIdentifier: - entAliasMappingIdentifier.3.15 == rptrPortGroupIndex.5.2 - entAliasMappingIdentifier.3.22 == ifIndex.17 - It is possible that other mappings (besides interfaces and - repeater ports) may be defined in the future, as required. - - Bridge ports are identified by examining the Bridge MIB and - appropriate ifEntries associated with each 'dot1dBasePort', - and are thus not represented in this table." - ::= { entAliasMappingEntry 2 } - --- physical mapping table -entPhysicalContainsTable OBJECT-TYPE - SYNTAX SEQUENCE OF EntPhysicalContainsEntry - MAX-ACCESS not-accessible - STATUS current - - - DESCRIPTION - "A table that exposes the container/'containee' - relationships between physical entities. This table - provides all the information found by constructing the - virtual containment tree for a given entPhysicalTable, but - in a more direct format. - - In the event a physical entity is contained by more than one - other physical entity (e.g., double-wide modules), this - table should include these additional mappings, which cannot - be represented in the entPhysicalTable virtual containment - tree." - ::= { entityMapping 3 } - -entPhysicalContainsEntry OBJECT-TYPE - SYNTAX EntPhysicalContainsEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "A single container/'containee' relationship." - INDEX { entPhysicalIndex, entPhysicalChildIndex } - ::= { entPhysicalContainsTable 1 } - -EntPhysicalContainsEntry ::= SEQUENCE { - entPhysicalChildIndex PhysicalIndex -} - -entPhysicalChildIndex OBJECT-TYPE - SYNTAX PhysicalIndex - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The value of entPhysicalIndex for the contained physical - entity." - ::= { entPhysicalContainsEntry 1 } - --- last change time stamp for the whole MIB -entLastChangeTime OBJECT-TYPE - SYNTAX TimeStamp - MAX-ACCESS read-only - STATUS current - DESCRIPTION - "The value of sysUpTime at the time a conceptual row is - created, modified, or deleted in any of these tables: - - entPhysicalTable - - entLogicalTable - - entLPMappingTable - - entAliasMappingTable - - - - entPhysicalContainsTable - " - ::= { entityGeneral 1 } - --- Entity MIB Trap Definitions -entityMIBTraps OBJECT IDENTIFIER ::= { entityMIB 2 } -entityMIBTrapPrefix OBJECT IDENTIFIER ::= { entityMIBTraps 0 } - -entConfigChange NOTIFICATION-TYPE - STATUS current - DESCRIPTION - "An entConfigChange notification is generated when the value - of entLastChangeTime changes. It can be utilized by an NMS - to trigger logical/physical entity table maintenance polls. - - An agent should not generate more than one entConfigChange - 'notification-event' in a given time interval (five seconds - is the suggested default). A 'notification-event' is the - transmission of a single trap or inform PDU to a list of - notification destinations. - - If additional configuration changes occur within the - throttling period, then notification-events for these - changes should be suppressed by the agent until the current - throttling period expires. At the end of a throttling - period, one notification-event should be generated if any - configuration changes occurred since the start of the - throttling period. In such a case, another throttling - period is started right away. - - An NMS should periodically check the value of - entLastChangeTime to detect any missed entConfigChange - notification-events, e.g., due to throttling or transmission - loss." - ::= { entityMIBTrapPrefix 1 } - --- conformance information -entityConformance OBJECT IDENTIFIER ::= { entityMIB 3 } - -entityCompliances OBJECT IDENTIFIER ::= { entityConformance 1 } -entityGroups OBJECT IDENTIFIER ::= { entityConformance 2 } - --- compliance statements -entityCompliance MODULE-COMPLIANCE - STATUS deprecated - - - DESCRIPTION - "The compliance statement for SNMP entities that implement - version 1 of the Entity MIB." - MODULE -- this module - MANDATORY-GROUPS { - entityPhysicalGroup, - entityLogicalGroup, - entityMappingGroup, - entityGeneralGroup, - entityNotificationsGroup - } - ::= { entityCompliances 1 } - -entity2Compliance MODULE-COMPLIANCE - STATUS deprecated - DESCRIPTION - "The compliance statement for SNMP entities that implement - version 2 of the Entity MIB." - MODULE -- this module - MANDATORY-GROUPS { - entityPhysicalGroup, - entityPhysical2Group, - entityGeneralGroup, - entityNotificationsGroup - } - GROUP entityLogical2Group - DESCRIPTION - "Implementation of this group is not mandatory for agents - that model all MIB object instances within a single naming - scope." - - GROUP entityMappingGroup - DESCRIPTION - "Implementation of the entPhysicalContainsTable is mandatory - for all agents. Implementation of the entLPMappingTable and - entAliasMappingTables are not mandatory for agents that - model all MIB object instances within a single naming scope. - - Note that the entAliasMappingTable may be useful for all - agents; however, implementation of the entityLogicalGroup or - entityLogical2Group is required to support this table." - - OBJECT entPhysicalSerialNum - MIN-ACCESS not-accessible - DESCRIPTION - "Read and write access is not required for agents that - cannot identify serial number information for physical - entities, and/or cannot provide non-volatile storage for - - - NMS-assigned serial numbers. - - Write access is not required for agents that can identify - serial number information for physical entities, but cannot - provide non-volatile storage for NMS-assigned serial - numbers. - - Write access is not required for physical entities for which - the associated value of the entPhysicalIsFRU object is equal - to 'false(2)'." - - OBJECT entPhysicalAlias - MIN-ACCESS read-only - DESCRIPTION - "Write access is required only if the associated - entPhysicalClass value is equal to 'chassis(3)'." - - OBJECT entPhysicalAssetID - MIN-ACCESS not-accessible - DESCRIPTION - "Read and write access is not required for agents that - cannot provide non-volatile storage for NMS-assigned asset - identifiers. - - Write access is not required for physical entities for which - the associated value of the entPhysicalIsFRU object is equal - to 'false(2)'." - - OBJECT entPhysicalClass - SYNTAX INTEGER { - other(1), - unknown(2), - chassis(3), - backplane(4), - container(5), - powerSupply(6), - fan(7), - sensor(8), - module(9), - port(10), - stack(11) - } - DESCRIPTION - "Implementation of the 'cpu(12)' enumeration is not - required." - - ::= { entityCompliances 2 } - - -entity3Compliance MODULE-COMPLIANCE - STATUS current - DESCRIPTION - "The compliance statement for SNMP entities that implement - version 3 of the Entity MIB." - MODULE -- this module - MANDATORY-GROUPS { - entityPhysicalGroup, - entityPhysical2Group, - entityPhysical3Group, - entityGeneralGroup, - entityNotificationsGroup - } - GROUP entityLogical2Group - DESCRIPTION - "Implementation of this group is not mandatory for agents - that model all MIB object instances within a single naming - scope." - - GROUP entityMappingGroup - DESCRIPTION - "Implementation of the entPhysicalContainsTable is mandatory - for all agents. Implementation of the entLPMappingTable and - entAliasMappingTables are not mandatory for agents that - model all MIB object instances within a single naming scope. - - Note that the entAliasMappingTable may be useful for all - agents; however, implementation of the entityLogicalGroup or - entityLogical2Group is required to support this table." - - OBJECT entPhysicalSerialNum - MIN-ACCESS not-accessible - DESCRIPTION - "Read and write access is not required for agents that - cannot identify serial number information for physical - entities, and/or cannot provide non-volatile storage for - NMS-assigned serial numbers. - - Write access is not required for agents that can identify - serial number information for physical entities, but cannot - provide non-volatile storage for NMS-assigned serial - numbers. - - Write access is not required for physical entities for - which the associated value of the entPhysicalIsFRU object - is equal to 'false(2)'." - - OBJECT entPhysicalAlias - - - MIN-ACCESS read-only - DESCRIPTION - "Write access is required only if the associated - entPhysicalClass value is equal to 'chassis(3)'." - - OBJECT entPhysicalAssetID - MIN-ACCESS not-accessible - DESCRIPTION - "Read and write access is not required for agents that - cannot provide non-volatile storage for NMS-assigned asset - identifiers. - - Write access is not required for physical entities for which - the associated value of entPhysicalIsFRU is equal to - 'false(2)'." - ::= { entityCompliances 3 } - --- MIB groupings -entityPhysicalGroup OBJECT-GROUP - OBJECTS { - entPhysicalDescr, - entPhysicalVendorType, - entPhysicalContainedIn, - entPhysicalClass, - entPhysicalParentRelPos, - entPhysicalName - } - STATUS current - DESCRIPTION - "The collection of objects used to represent physical - system components, for which a single agent provides - management information." - ::= { entityGroups 1 } - -entityLogicalGroup OBJECT-GROUP - OBJECTS { - entLogicalDescr, - entLogicalType, - entLogicalCommunity, - entLogicalTAddress, - entLogicalTDomain - } - STATUS deprecated - DESCRIPTION - "The collection of objects used to represent the list of - logical entities, for which a single agent provides - management information." - - - ::= { entityGroups 2 } - -entityMappingGroup OBJECT-GROUP - OBJECTS { - entLPPhysicalIndex, - entAliasMappingIdentifier, - entPhysicalChildIndex - } - STATUS current - DESCRIPTION - "The collection of objects used to represent the - associations between multiple logical entities, physical - components, interfaces, and port identifiers, for which a - single agent provides management information." - ::= { entityGroups 3 } - -entityGeneralGroup OBJECT-GROUP - OBJECTS { - entLastChangeTime - } - STATUS current - DESCRIPTION - "The collection of objects used to represent general entity - information, for which a single agent provides management - information." - ::= { entityGroups 4 } - -entityNotificationsGroup NOTIFICATION-GROUP - NOTIFICATIONS { entConfigChange } - STATUS current - DESCRIPTION - "The collection of notifications used to indicate Entity MIB - data consistency and general status information." - ::= { entityGroups 5 } - -entityPhysical2Group OBJECT-GROUP - OBJECTS { - entPhysicalHardwareRev, - entPhysicalFirmwareRev, - entPhysicalSoftwareRev, - entPhysicalSerialNum, - entPhysicalMfgName, - entPhysicalModelName, - entPhysicalAlias, - entPhysicalAssetID, - entPhysicalIsFRU - } - STATUS current - - - DESCRIPTION - "The collection of objects used to represent physical - system components, for which a single agent provides - management information. This group augments the objects - contained in the entityPhysicalGroup." - ::= { entityGroups 6 } - -entityLogical2Group OBJECT-GROUP - OBJECTS { - entLogicalDescr, - entLogicalType, - entLogicalTAddress, - entLogicalTDomain, - entLogicalContextEngineID, - entLogicalContextName - } - STATUS current - DESCRIPTION - "The collection of objects used to represent the - list of logical entities, for which a single SNMP entity - provides management information." - ::= { entityGroups 7 } - -entityPhysical3Group OBJECT-GROUP - OBJECTS { - entPhysicalMfgDate, - entPhysicalUris - } - STATUS current - DESCRIPTION - "The collection of objects used to represent physical - system components, for which a single agent provides - management information. This group augments the objects - contained in the entityPhysicalGroup." - ::= { entityGroups 8 } - -END +-- MIB file created 14-Sep-2001 10:54:42, by +-- SMICng version 2.2.11-beta(PRO)(Solaris), January 20, 2001. Enterprise key cisco.com + +ENTITY-MIB DEFINITIONS ::= BEGIN + +-- From file: "ENTITY-MIB.my" +-- Compile options "4 7 F H N W 03 06 0B 0G 0N 0T" + +IMPORTS + mib-2 + FROM SNMPv2-SMI-v1 + TDomain, TAddress, AutonomousType, RowPointer, TimeStamp, + TruthValue + FROM SNMPv2-TC-v1 + SnmpAdminString + FROM SNMP-FRAMEWORK-MIB + OBJECT-TYPE + FROM RFC-1212 + TRAP-TYPE + FROM RFC-1215; + +entityMIB OBJECT IDENTIFIER ::= { mib-2 47 } +-- MODULE-IDENTITY +-- LastUpdated +-- 9912070000Z +-- OrgName +-- IETF ENTMIB Working Group +-- ContactInfo +-- WG E-mail: entmib@cisco.com +-- Subscribe: majordomo@cisco.com +-- msg body: subscribe entmib +-- +-- Keith McCloghrie +-- ENTMIB Working Group Chair +-- Cisco Systems Inc. +-- 170 West Tasman Drive +-- San Jose, CA 95134 +-- +1 408-526-5260 +-- kzm@cisco.com +-- +-- Andy Bierman +-- ENTMIB Working Group Editor +-- Cisco Systems Inc. +-- 170 West Tasman Drive +-- San Jose, CA 95134 +-- +1 408-527-3711 +-- abierman@cisco.com +-- Descr +-- The MIB module for representing multiple logical +-- entities supported by a single SNMP agent. +-- RevDate +-- 9912070000Z +-- RevDescr +-- Initial Version of Entity MIB (Version 2). +-- This revision obsoletes RFC 2037. +-- This version published as RFC 2737. +-- RevDate +-- 9610310000Z +-- RevDescr +-- Initial version (version 1), published as +-- RFC 2037. + +entityMIBObjects OBJECT IDENTIFIER ::= { entityMIB 1 } +entityPhysical OBJECT IDENTIFIER ::= { entityMIBObjects 1 } +entityLogical OBJECT IDENTIFIER ::= { entityMIBObjects 2 } +entityMapping OBJECT IDENTIFIER ::= { entityMIBObjects 3 } +entityGeneral OBJECT IDENTIFIER ::= { entityMIBObjects 4 } +entityMIBTraps OBJECT IDENTIFIER ::= { entityMIB 2 } +entityMIBTrapPrefix OBJECT IDENTIFIER ::= { entityMIBTraps 0 } +entityConformance OBJECT IDENTIFIER ::= { entityMIB 3 } +entityCompliances OBJECT IDENTIFIER ::= { entityConformance 1 } +entityGroups OBJECT IDENTIFIER ::= { entityConformance 2 } + +PhysicalIndex ::= INTEGER(1..2147483647) +-- TEXTUAL-CONVENTION +-- Status +-- mandatory +-- Descr +-- An arbitrary value which uniquely identifies the physical +-- entity. The value should be a small positive integer; index +-- values for different physical entities are not necessarily +-- contiguous. + +PhysicalClass ::= INTEGER { + other(1), + unknown(2), + chassis(3), + backplane(4), + container(5), + powerSupply(6), + fan(7), + sensor(8), + module(9), + port(10), + stack(11) + } +-- TEXTUAL-CONVENTION +-- Status +-- mandatory +-- Descr +-- An enumerated value which provides an indication of the +-- general hardware type of a particular physical entity. +-- There are no restrictions as to the number of +-- entPhysicalEntries of each entPhysicalClass, which must be +-- instantiated by an agent. +-- +-- The enumeration 'other' is applicable if the physical entity +-- class is known, but does not match any of the supported +-- values. +-- +-- The enumeration 'unknown' is applicable if the physical +-- entity class is unknown to the agent. +-- +-- The enumeration 'chassis' is applicable if the physical +-- entity class is an overall container for networking +-- equipment. Any class of physical entity except a stack may +-- be contained within a chassis, and a chassis may only be +-- contained within a stack. +-- +-- The enumeration 'backplane' is applicable if the physical +-- entity class is some sort of device for aggregating and +-- forwarding networking traffic, such as a shared backplane in +-- a modular ethernet switch. Note that an agent may model a +-- backplane as a single physical entity, which is actually +-- implemented as multiple discrete physical components (within +-- a chassis or stack). +-- +-- The enumeration 'container' is applicable if the physical +-- entity class is capable of containing one or more removable +-- physical entities, possibly of different types. For example, +-- each (empty or full) slot in a chassis will be modeled as a +-- container. Note that all removable physical entities should +-- be modeled within a container entity, such as field- +-- replaceable modules, fans, or power supplies. Note that all +-- known containers should be modeled by the agent, including +-- empty containers. +-- +-- The enumeration 'powerSupply' is applicable if the physical +-- entity class is a power-supplying component. +-- +-- The enumeration 'fan' is applicable if the physical entity +-- class is a fan or other heat-reduction component. +-- +-- The enumeration 'sensor' is applicable if the physical +-- entity class is some sort of sensor, such as a temperature +-- sensor within a router chassis. +-- +-- The enumeration 'module' is applicable if the physical +-- entity class is some sort of self-contained sub-system. If +-- it is removable, then it should be modeled within a +-- container entity, otherwise it should be modeled directly +-- within another physical entity (e.g., a chassis or another +-- module). +-- +-- The enumeration 'port' is applicable if the physical entity +-- class is some sort of networking port, capable of receiving +-- and/or transmitting networking traffic. +-- +-- The enumeration 'stack' is applicable if the physical entity +-- class is some sort of super-container (possibly virtual), +-- intended to group together multiple chassis entities. A +-- stack may be realized by a 'virtual' cable, a real +-- interconnect cable, attached to multiple chassis, or may in +-- fact be comprised of multiple interconnect cables. A stack +-- should not be modeled within any other physical entities, +-- but a stack may be contained within another stack. Only +-- chassis entities should be contained within a stack. + +SnmpEngineIdOrNone ::= OCTET STRING(SIZE(0..32)) +-- TEXTUAL-CONVENTION +-- Status +-- mandatory +-- Descr +-- A specially formatted SnmpEngineID string for use with the +-- Entity MIB. +-- +-- If an instance of an object of SYNTAX SnmpEngineIdOrNone has +-- a non-zero length, then the object encoding and semantics +-- are defined by the SnmpEngineID textual convention (see RFC +-- 2571 [RFC2571]). +-- +-- If an instance of an object of SYNTAX SnmpEngineIdOrNone +-- contains a zero-length string, then no appropriate +-- SnmpEngineID is associated with the logical entity (i.e., +-- SNMPv3 not supported). + +entPhysicalTable OBJECT-TYPE + SYNTAX SEQUENCE OF EntPhysicalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains one row per physical entity. There is + always at least one row for an 'overall' physical entity." + ::= { entityPhysical 1 } + +entPhysicalEntry OBJECT-TYPE + SYNTAX EntPhysicalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular physical entity. + + Each entry provides objects (entPhysicalDescr, + entPhysicalVendorType, and entPhysicalClass) to help an NMS + identify and characterize the entry, and objects + (entPhysicalContainedIn and entPhysicalParentRelPos) to help + an NMS relate the particular entry to other entries in this + table." + INDEX { entPhysicalIndex } + ::= { entPhysicalTable 1 } + +EntPhysicalEntry ::= SEQUENCE { + entPhysicalIndex PhysicalIndex, + entPhysicalDescr SnmpAdminString, + entPhysicalVendorType AutonomousType, + entPhysicalContainedIn INTEGER, + entPhysicalClass PhysicalClass, + entPhysicalParentRelPos INTEGER, + entPhysicalName SnmpAdminString, + entPhysicalHardwareRev SnmpAdminString, + entPhysicalFirmwareRev SnmpAdminString, + entPhysicalSoftwareRev SnmpAdminString, + entPhysicalSerialNum SnmpAdminString, + entPhysicalMfgName SnmpAdminString, + entPhysicalModelName SnmpAdminString, + entPhysicalAlias SnmpAdminString, + entPhysicalAssetID SnmpAdminString, + entPhysicalIsFRU TruthValue + } + +entPhysicalIndex OBJECT-TYPE + SYNTAX PhysicalIndex +-- Rsyntax INTEGER(1..2147483647) + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The index for this entry." + ::= { entPhysicalEntry 1 } + +entPhysicalDescr OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual description of physical entity. This object + should contain a string which identifies the manufacturer's + name for the physical entity, and should be set to a + distinct value for each version or model of the physical + entity. " + ::= { entPhysicalEntry 2 } + +entPhysicalVendorType OBJECT-TYPE + SYNTAX AutonomousType +-- Rsyntax OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of the vendor-specific hardware type of the + physical entity. Note that this is different from the + definition of MIB-II's sysObjectID. + + An agent should set this object to a enterprise-specific + registration identifier value indicating the specific + equipment type in detail. The associated instance of + entPhysicalClass is used to indicate the general type of + hardware device. + + If no vendor-specific registration identifier exists for + this physical entity, or the value is unknown by this agent, + then the value { 0 0 } is returned." + ::= { entPhysicalEntry 3 } + +entPhysicalContainedIn OBJECT-TYPE + SYNTAX INTEGER(0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of entPhysicalIndex for the physical entity which + 'contains' this physical entity. A value of zero indicates + this physical entity is not contained in any other physical + entity. Note that the set of 'containment' relationships + define a strict hierarchy; that is, recursion is not + allowed. + + In the event a physical entity is contained by more than one + physical entity (e.g., double-wide modules), this object + should identify the containing entity with the lowest value + of entPhysicalIndex." + ::= { entPhysicalEntry 4 } + +entPhysicalClass OBJECT-TYPE + SYNTAX PhysicalClass +-- Rsyntax INTEGER { +-- other(1), +-- unknown(2), +-- chassis(3), +-- backplane(4), +-- container(5), +-- powerSupply(6), +-- fan(7), +-- sensor(8), +-- module(9), +-- port(10), +-- stack(11) +-- } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of the general hardware type of the physical + entity. + + An agent should set this object to the standard enumeration + value which most accurately indicates the general class of + the physical entity, or the primary class if there is more + than one. + + If no appropriate standard registration identifier exists + for this physical entity, then the value 'other(1)' is + returned. If the value is unknown by this agent, then the + value 'unknown(2)' is returned." + ::= { entPhysicalEntry 5 } + +entPhysicalParentRelPos OBJECT-TYPE + SYNTAX INTEGER(-1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of the relative position of this 'child' + component among all its 'sibling' components. Sibling + components are defined as entPhysicalEntries which share the + same instance values of each of the entPhysicalContainedIn + and entPhysicalClass objects. + + An NMS can use this object to identify the relative ordering + for all sibling components of a particular parent + (identified by the entPhysicalContainedIn instance in each + sibling entry). + + This value should match any external labeling of the + physical component if possible. For example, for a container + (e.g., card slot) labeled as 'slot #3', + entPhysicalParentRelPos should have the value '3'. Note + that the entPhysicalEntry for the module plugged in slot 3 + should have an entPhysicalParentRelPos value of '1'. + + If the physical position of this component does not match + any external numbering or clearly visible ordering, then + user documentation or other external reference material + should be used to determine the parent-relative position. If + this is not possible, then the the agent should assign a + consistent (but possibly arbitrary) ordering to a given set + of 'sibling' components, perhaps based on internal + representation of the components. + + If the agent cannot determine the parent-relative position + for some reason, or if the associated value of + entPhysicalContainedIn is '0', then the value '-1' is + returned. Otherwise a non-negative integer is returned, + indicating the parent-relative position of this physical + entity. + + Parent-relative ordering normally starts from '1' and + continues to 'N', where 'N' represents the highest + positioned child entity. However, if the physical entities + (e.g., slots) are labeled from a starting position of zero, + then the first sibling should be associated with a + entPhysicalParentRelPos value of '0'. Note that this + ordering may be sparse or dense, depending on agent + implementation. + + The actual values returned are not globally meaningful, as + each 'parent' component may use different numbering + algorithms. The ordering is only meaningful among siblings + of the same parent component. + + The agent should retain parent-relative position values + across reboots, either through algorithmic assignment or use + of non-volatile storage." + ::= { entPhysicalEntry 6 } + +entPhysicalName OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The textual name of the physical entity. The value of this + object should be the name of the component as assigned by + the local device and should be suitable for use in commands + entered at the device's `console'. This might be a text + name, such as `console' or a simple component number (e.g., + port or module number), such as `1', depending on the + physical component naming syntax of the device. + + If there is no local name, or this object is otherwise not + applicable, then this object contains a zero-length string. + + Note that the value of entPhysicalName for two physical + entities will be the same in the event that the console + interface does not distinguish between them, e.g., slot-1 + and the card in slot-1." + ::= { entPhysicalEntry 7 } + +entPhysicalHardwareRev OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The vendor-specific hardware revision string for the + physical entity. The preferred value is the hardware + revision identifier actually printed on the component itself + (if present). + + Note that if revision information is stored internally in a + non-printable (e.g., binary) format, then the agent must + convert such information to a printable format, in an + implementation-specific manner. + + If no specific hardware revision string is associated with + the physical component, or this information is unknown to + the agent, then this object will contain a zero-length + string." + ::= { entPhysicalEntry 8 } + +entPhysicalFirmwareRev OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The vendor-specific firmware revision string for the + physical entity. + + Note that if revision information is stored internally in a + non-printable (e.g., binary) format, then the agent must + convert such information to a printable format, in an + implementation-specific manner. + + If no specific firmware programs are associated with the + physical component, or this information is unknown to the + agent, then this object will contain a zero-length string." + ::= { entPhysicalEntry 9 } + +entPhysicalSoftwareRev OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The vendor-specific software revision string for the + physical entity. + + Note that if revision information is stored internally in a + non-printable (e.g., binary) format, then the agent must + convert such information to a printable format, in an + implementation-specific manner. + + If no specific software programs are associated with the + physical component, or this information is unknown to the + agent, then this object will contain a zero-length string." + ::= { entPhysicalEntry 10 } + +entPhysicalSerialNum OBJECT-TYPE + SYNTAX SnmpAdminString(SIZE(0..32)) +-- Rsyntax OCTET STRING(SIZE(0..32)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The vendor-specific serial number string for the physical + entity. The preferred value is the serial number string + actually printed on the component itself (if present). + + On the first instantiation of an physical entity, the value + of entPhysicalSerialNum associated with that entity is set + to the correct vendor-assigned serial number, if this + information is available to the agent. If a serial number + is unknown or non-existent, the entPhysicalSerialNum will be + set to a zero-length string instead. + + Note that implementations which can correctly identify the + serial numbers of all installed physical entities do not + need to provide write access to the entPhysicalSerialNum + object. Agents which cannot provide non-volatile storage for + the entPhysicalSerialNum strings are not required to + implement write access for this object. + + Not every physical component will have a serial number, or + even need one. Physical entities for which the associated + value of the entPhysicalIsFRU object is equal to 'false(2)' + (e.g., the repeater ports within a repeater module), do not + need their own unique serial number. An agent does not have + to provide write access for such entities, and may return a + zero-length string. + + If write access is implemented for an instance of + entPhysicalSerialNum, and a value is written into the + instance, the agent must retain the supplied value in the + entPhysicalSerialNum instance associated with the same + physical entity for as long as that entity remains + instantiated. This includes instantiations across all re- + initializations/reboots of the network management system, + including those which result in a change of the physical + entity's entPhysicalIndex value." + ::= { entPhysicalEntry 11 } + +entPhysicalMfgName OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the manufacturer of this physical component. + The preferred value is the manufacturer name string actually + printed on the component itself (if present). + Note that comparisons between instances of the + entPhysicalModelName, entPhysicalFirmwareRev, + entPhysicalSoftwareRev, and the entPhysicalSerialNum + objects, are only meaningful amongst entPhysicalEntries with + the same value of entPhysicalMfgName. + + If the manufacturer name string associated with the physical + component is unknown to the agent, then this object will + contain a zero-length string." + ::= { entPhysicalEntry 12 } + +entPhysicalModelName OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The vendor-specific model name identifier string associated + with this physical component. The preferred value is the + customer-visible part number, which may be printed on the + component itself. + + If the model name string associated with the physical + component is unknown to the agent, then this object will + contain a zero-length string." + ::= { entPhysicalEntry 13 } + +entPhysicalAlias OBJECT-TYPE + SYNTAX SnmpAdminString(SIZE(0..32)) +-- Rsyntax OCTET STRING(SIZE(0..32)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object is an 'alias' name for the physical entity as + specified by a network manager, and provides a non-volatile + 'handle' for the physical entity. + + On the first instantiation of an physical entity, the value + of entPhysicalAlias associated with that entity is set to + the zero-length string. However, agent may set the value to + a locally unique default value, instead of a zero-length + string. + + If write access is implemented for an instance of + entPhysicalAlias, and a value is written into the instance, + the agent must retain the supplied value in the + entPhysicalAlias instance associated with the same physical + entity for as long as that entity remains instantiated. + This includes instantiations across all re- + initializations/reboots of the network management system, + including those which result in a change of the physical + entity's entPhysicalIndex value." + ::= { entPhysicalEntry 14 } + +entPhysicalAssetID OBJECT-TYPE + SYNTAX SnmpAdminString(SIZE(0..32)) +-- Rsyntax OCTET STRING(SIZE(0..32)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object is a user-assigned asset tracking identifier + for the physical entity as specified by a network manager, + and provides non-volatile storage of this information. + + On the first instantiation of an physical entity, the value + of entPhysicalAssetID associated with that entity is set to + the zero-length string. + + Not every physical component will have a asset tracking + identifier, or even need one. Physical entities for which + the associated value of the entPhysicalIsFRU object is equal + to 'false(2)' (e.g., the repeater ports within a repeater + module), do not need their own unique asset tracking + identifier. An agent does not have to provide write access + for such entities, and may instead return a zero-length + string. + + If write access is implemented for an instance of + entPhysicalAssetID, and a value is written into the + instance, the agent must retain the supplied value in the + entPhysicalAssetID instance associated with the same + physical entity for as long as that entity remains + instantiated. This includes instantiations across all re- + initializations/reboots of the network management system, + including those which result in a change of the physical + entity's entPhysicalIndex value. + + If no asset tracking information is associated with the + physical component, then this object will contain a zero- + length string." + ::= { entPhysicalEntry 15 } + +entPhysicalIsFRU OBJECT-TYPE + SYNTAX TruthValue +-- Rsyntax INTEGER { +-- true(1), +-- false(2) +-- } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object indicates whether or not this physical entity + is considered a 'field replaceable unit' by the vendor. If + this object contains the value 'true(1)' then this + entPhysicalEntry identifies a field replaceable unit. For + all entPhysicalEntries which represent components that are + permanently contained within a field replaceable unit, the + value 'false(2)' should be returned for this object." + ::= { entPhysicalEntry 16 } + +entLogicalTable OBJECT-TYPE + SYNTAX SEQUENCE OF EntLogicalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains one row per logical entity. For agents + which implement more than one naming scope, at least one + entry must exist. Agents which instantiate all MIB objects + within a single naming scope are not required to implement + this table." + ::= { entityLogical 1 } + +entLogicalEntry OBJECT-TYPE + SYNTAX EntLogicalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular logical entity. Entities + may be managed by this agent or other SNMP agents (possibly) + in the same chassis." + INDEX { entLogicalIndex } + ::= { entLogicalTable 1 } + +EntLogicalEntry ::= SEQUENCE { + entLogicalIndex INTEGER, + entLogicalDescr SnmpAdminString, + entLogicalType AutonomousType, + entLogicalCommunity OCTET STRING, + entLogicalTAddress TAddress, + entLogicalTDomain TDomain, + entLogicalContextEngineID SnmpEngineIdOrNone, + entLogicalContextName SnmpAdminString + } + +entLogicalIndex OBJECT-TYPE + SYNTAX INTEGER(1..2147483647) + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The value of this object uniquely identifies the logical + entity. The value should be a small positive integer; index + values for different logical entities are are not + necessarily contiguous." + ::= { entLogicalEntry 1 } + +entLogicalDescr OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual description of the logical entity. This object + should contain a string which identifies the manufacturer's + name for the logical entity, and should be set to a distinct + value for each version of the logical entity. " + ::= { entLogicalEntry 2 } + +entLogicalType OBJECT-TYPE + SYNTAX AutonomousType +-- Rsyntax OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of the type of logical entity. This will + typically be the OBJECT IDENTIFIER name of the node in the + SMI's naming hierarchy which represents the major MIB + module, or the majority of the MIB modules, supported by the + logical entity. For example: + a logical entity of a regular host/router -> mib-2 + a logical entity of a 802.1d bridge -> dot1dBridge + a logical entity of a 802.3 repeater -> snmpDot3RptrMgmt + If an appropriate node in the SMI's naming hierarchy cannot + be identified, the value 'mib-2' should be used." + ::= { entLogicalEntry 3 } + +entLogicalCommunity OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS deprecated + DESCRIPTION + "An SNMPv1 or SNMPv2C community-string which can be used to + access detailed management information for this logical + entity. The agent should allow read access with this + community string (to an appropriate subset of all managed + objects) and may also return a community string based on the + privileges of the request used to read this object. Note + that an agent may return a community string with read-only + privileges, even if this object is accessed with a read- + write community string. However, the agent must take care + not to return a community string which allows more + privileges than the community string used to access this + object. + + A compliant SNMP agent may wish to conserve naming scopes by + representing multiple logical entities in a single 'default' + naming scope. This is possible when the logical entities + represented by the same value of entLogicalCommunity have no + object instances in common. For example, 'bridge1' and + 'repeater1' may be part of the main naming scope, but at + least one additional community string is needed to represent + 'bridge2' and 'repeater2'. + + Logical entities 'bridge1' and 'repeater1' would be + represented by sysOREntries associated with the 'default' + naming scope. + + For agents not accessible via SNMPv1 or SNMPv2C, the value + of this object is the empty string. This object may also + contain an empty string if a community string has not yet + been assigned by the agent, or no community string with + suitable access rights can be returned for a particular SNMP + request. + + Note that this object is deprecated. Agents which implement + SNMPv3 access should use the entLogicalContextEngineID and + entLogicalContextName objects to identify the context + associated with each logical entity. SNMPv3 agents may + return a zero-length string for this object, or may continue + to return a community string (e.g., tri-lingual agent + support)." + ::= { entLogicalEntry 4 } + +entLogicalTAddress OBJECT-TYPE + SYNTAX TAddress +-- Rsyntax OCTET STRING(SIZE(1..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The transport service address by which the logical entity + receives network management traffic, formatted according to + the corresponding value of entLogicalTDomain. + + For snmpUDPDomain, a TAddress is 6 octets long, the initial + 4 octets containing the IP-address in network-byte order and + the last 2 containing the UDP port in network-byte order. + Consult 'Transport Mappings for Version 2 of the Simple + Network Management Protocol' (RFC 1906 [RFC1906]) for + further information on snmpUDPDomain." + ::= { entLogicalEntry 5 } + +entLogicalTDomain OBJECT-TYPE + SYNTAX TDomain +-- Rsyntax OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the kind of transport service by which the + logical entity receives network management traffic. + Possible values for this object are presently found in the + Transport Mappings for SNMPv2 document (RFC 1906 + [RFC1906])." + ::= { entLogicalEntry 6 } + +entLogicalContextEngineID OBJECT-TYPE + SYNTAX SnmpEngineIdOrNone +-- Rsyntax OCTET STRING(SIZE(0..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The authoritative contextEngineID that can be used to send + an SNMP message concerning information held by this logical + entity, to the address specified by the associated + 'entLogicalTAddress/entLogicalTDomain' pair. + + This object, together with the associated + entLogicalContextName object, defines the context associated + with a particular logical entity, and allows access to SNMP + engines identified by a contextEngineId and contextName + pair. + + If no value has been configured by the agent, a zero-length + string is returned, or the agent may choose not to + instantiate this object at all." + ::= { entLogicalEntry 7 } + +entLogicalContextName OBJECT-TYPE + SYNTAX SnmpAdminString +-- Rsyntax OCTET STRING(SIZE(0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The contextName that can be used to send an SNMP message + concerning information held by this logical entity, to the + address specified by the associated + 'entLogicalTAddress/entLogicalTDomain' pair. + + This object, together with the associated + entLogicalContextEngineID object, defines the context + associated with a particular logical entity, and allows + access to SNMP engines identified by a contextEngineId and + contextName pair. + + If no value has been configured by the agent, a zero-length + string is returned, or the agent may choose not to + instantiate this object at all." + ::= { entLogicalEntry 8 } + +entLPMappingTable OBJECT-TYPE + SYNTAX SEQUENCE OF EntLPMappingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains zero or more rows of logical entity to + physical equipment associations. For each logical entity + known by this agent, there are zero or more mappings to the + physical resources which are used to realize that logical + entity. + + An agent should limit the number and nature of entries in + this table such that only meaningful and non-redundant + information is returned. For example, in a system which + contains a single power supply, mappings between logical + entities and the power supply are not useful and should not + be included. + + Also, only the most appropriate physical component which is + closest to the root of a particular containment tree should + be identified in an entLPMapping entry. + + For example, suppose a bridge is realized on a particular + module, and all ports on that module are ports on this + bridge. A mapping between the bridge and the module would be + useful, but additional mappings between the bridge and each + of the ports on that module would be redundant (since the + entPhysicalContainedIn hierarchy can provide the same + information). If, on the other hand, more than one bridge + was utilizing ports on this module, then mappings between + each bridge and the ports it used would be appropriate. + + Also, in the case of a single backplane repeater, a mapping + for the backplane to the single repeater entity is not + necessary." + ::= { entityMapping 1 } + +entLPMappingEntry OBJECT-TYPE + SYNTAX EntLPMappingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular logical entity to physical + equipment association. Note that the nature of the + association is not specifically identified in this entry. + It is expected that sufficient information exists in the + MIBs used to manage a particular logical entity to infer how + physical component information is utilized." + INDEX { entLogicalIndex, entLPPhysicalIndex } + ::= { entLPMappingTable 1 } + +EntLPMappingEntry ::= SEQUENCE { + entLPPhysicalIndex PhysicalIndex + } + +entLPPhysicalIndex OBJECT-TYPE + SYNTAX PhysicalIndex +-- Rsyntax INTEGER(1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the index value of a + particular entPhysicalEntry associated with the indicated + entLogicalEntity." + ::= { entLPMappingEntry 1 } + +entAliasMappingTable OBJECT-TYPE + SYNTAX SEQUENCE OF EntAliasMappingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains zero or more rows, representing + mappings of logical entity and physical component to + external MIB identifiers. Each physical port in the system + may be associated with a mapping to an external identifier, + which itself is associated with a particular logical + entity's naming scope. A 'wildcard' mechanism is provided + to indicate that an identifier is associated with more than + one logical entity." + ::= { entityMapping 2 } + +entAliasMappingEntry OBJECT-TYPE + SYNTAX EntAliasMappingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular physical equipment, logical + entity to external identifier binding. Each logical + entity/physical component pair may be associated with one + alias mapping. The logical entity index may also be used as + a 'wildcard' (refer to the entAliasLogicalIndexOrZero object + DESCRIPTION clause for details.) + + Note that only entPhysicalIndex values which represent + physical ports (i.e. associated entPhysicalClass value is + 'port(10)') are permitted to exist in this table." + INDEX { entPhysicalIndex, entAliasLogicalIndexOrZero } + ::= { entAliasMappingTable 1 } + +EntAliasMappingEntry ::= SEQUENCE { + entAliasLogicalIndexOrZero INTEGER, + entAliasMappingIdentifier RowPointer + } + +entAliasLogicalIndexOrZero OBJECT-TYPE + SYNTAX INTEGER(0..2147483647) + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The value of this object identifies the logical entity + which defines the naming scope for the associated instance + of the 'entAliasMappingIdentifier' object. + + If this object has a non-zero value, then it identifies the + logical entity named by the same value of entLogicalIndex. + + If this object has a value of zero, then the mapping between + the physical component and the alias identifier for this + entAliasMapping entry is associated with all unspecified + logical entities. That is, a value of zero (the default + mapping) identifies any logical entity which does not have + an explicit entry in this table for a particular + entPhysicalIndex/entAliasMappingIdentifier pair. + + For example, to indicate that a particular interface (e.g., + physical component 33) is identified by the same value of + ifIndex for all logical entities, the following instance + might exist: + + entAliasMappingIdentifier.33.0 = ifIndex.5 + + In the event an entPhysicalEntry is associated differently + for some logical entities, additional entAliasMapping + entries may exist, e.g.: + + entAliasMappingIdentifier.33.0 = ifIndex.6 + entAliasMappingIdentifier.33.4 = ifIndex.1 + entAliasMappingIdentifier.33.5 = ifIndex.1 + entAliasMappingIdentifier.33.10 = ifIndex.12 + + Note that entries with non-zero entAliasLogicalIndexOrZero + index values have precedence over any zero-indexed entry. In + this example, all logical entities except 4, 5, and 10, + associate physical entity 33 with ifIndex.6." + ::= { entAliasMappingEntry 1 } + +entAliasMappingIdentifier OBJECT-TYPE + SYNTAX RowPointer +-- Rsyntax OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies a particular conceptual + row associated with the indicated entPhysicalIndex and + entLogicalIndex pair. + + Since only physical ports are modeled in this table, only + entries which represent interfaces or ports are allowed. If + an ifEntry exists on behalf of a particular physical port, + then this object should identify the associated 'ifEntry'. + For repeater ports, the appropriate row in the + 'rptrPortGroupTable' should be identified instead. + + For example, suppose a physical port was represented by + entPhysicalEntry.3, entLogicalEntry.15 existed for a + repeater, and entLogicalEntry.22 existed for a bridge. Then + there might be two related instances of + entAliasMappingIdentifier: + entAliasMappingIdentifier.3.15 == rptrPortGroupIndex.5.2 + entAliasMappingIdentifier.3.22 == ifIndex.17 + It is possible that other mappings (besides interfaces and + repeater ports) may be defined in the future, as required. + + Bridge ports are identified by examining the Bridge MIB and + appropriate ifEntries associated with each 'dot1dBasePort', + and are thus not represented in this table." + ::= { entAliasMappingEntry 2 } + +entPhysicalContainsTable OBJECT-TYPE + SYNTAX SEQUENCE OF EntPhysicalContainsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table which exposes the container/'containee' + relationships between physical entities. This table provides + all the information found by constructing the virtual + containment tree for a given entPhysicalTable, but in a more + direct format. + + In the event a physical entity is contained by more than one + other physical entity (e.g., double-wide modules), this + table should include these additional mappings, which cannot + be represented in the entPhysicalTable virtual containment + tree." + ::= { entityMapping 3 } + +entPhysicalContainsEntry OBJECT-TYPE + SYNTAX EntPhysicalContainsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A single container/'containee' relationship." + INDEX { entPhysicalIndex, entPhysicalChildIndex } + ::= { entPhysicalContainsTable 1 } + +EntPhysicalContainsEntry ::= SEQUENCE { + entPhysicalChildIndex PhysicalIndex + } + +entPhysicalChildIndex OBJECT-TYPE + SYNTAX PhysicalIndex +-- Rsyntax INTEGER(1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of entPhysicalIndex for the contained physical + entity." + ::= { entPhysicalContainsEntry 1 } + +entLastChangeTime OBJECT-TYPE + SYNTAX TimeStamp +-- Rsyntax TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime at the time a conceptual row is + created, modified, or deleted in any of these tables: + - entPhysicalTable + - entLogicalTable + - entLPMappingTable + - entAliasMappingTable + - entPhysicalContainsTable" + ::= { entityGeneral 1 } + +entConfigChange TRAP-TYPE +-- Reverse mappable trap + ENTERPRISE entityMIBTraps +-- Status +-- mandatory + DESCRIPTION + "An entConfigChange notification is generated when the value + of entLastChangeTime changes. It can be utilized by an NMS + to trigger logical/physical entity table maintenance polls. + + An agent should not generate more than one entConfigChange + 'notification-event' in a given time interval (five seconds + is the suggested default). A 'notification-event' is the + transmission of a single trap or inform PDU to a list of + notification destinations. + + If additional configuration changes occur within the + throttling period, then notification-events for these + changes should be suppressed by the agent until the current + throttling period expires. At the end of a throttling + period, one notification-event should be generated if any + configuration changes occurred since the start of the + throttling period. In such a case, another throttling period + is started right away. + + An NMS should periodically check the value of + entLastChangeTime to detect any missed entConfigChange + notification-events, e.g., due to throttling or transmission + loss." + ::= 1 + +entityPhysicalGroup OBJECT IDENTIFIER ::= { entityGroups 1 } +-- OBJECT-GROUP +-- Status +-- mandatory +-- Descr +-- The collection of objects which are used to represent +-- physical system components, for which a single agent +-- provides management information. +-- objects +-- entPhysicalDescr, entPhysicalVendorType, +-- entPhysicalContainedIn, entPhysicalClass, +-- entPhysicalParentRelPos, entPhysicalName + +entityLogicalGroup OBJECT IDENTIFIER ::= { entityGroups 2 } +-- OBJECT-GROUP +-- Status +-- deprecated +-- Descr +-- The collection of objects which are used to represent the +-- list of logical entities for which a single agent provides +-- management information. +-- objects +-- entLogicalDescr, entLogicalType, entLogicalCommunity, +-- entLogicalTAddress, entLogicalTDomain + +entityMappingGroup OBJECT IDENTIFIER ::= { entityGroups 3 } +-- OBJECT-GROUP +-- Status +-- mandatory +-- Descr +-- The collection of objects which are used to represent the +-- associations between multiple logical entities, physical +-- components, interfaces, and port identifiers for which a +-- single agent provides management information. +-- objects +-- entLPPhysicalIndex, entAliasMappingIdentifier, +-- entPhysicalChildIndex + +entityGeneralGroup OBJECT IDENTIFIER ::= { entityGroups 4 } +-- OBJECT-GROUP +-- Status +-- mandatory +-- Descr +-- The collection of objects which are used to represent +-- general entity information for which a single agent provides +-- management information. +-- objects +-- entLastChangeTime + +entityPhysical2Group OBJECT IDENTIFIER ::= { entityGroups 6 } +-- OBJECT-GROUP +-- Status +-- mandatory +-- Descr +-- The collection of objects which are used to represent +-- physical system components, for which a single agent +-- provides management information. This group augments the +-- objects contained in the entityPhysicalGroup. +-- objects +-- entPhysicalHardwareRev, entPhysicalFirmwareRev, +-- entPhysicalSoftwareRev, entPhysicalSerialNum, +-- entPhysicalMfgName, entPhysicalModelName, entPhysicalAlias, +-- entPhysicalAssetID, entPhysicalIsFRU + +entityLogical2Group OBJECT IDENTIFIER ::= { entityGroups 7 } +-- OBJECT-GROUP +-- Status +-- mandatory +-- Descr +-- The collection of objects which are used to represent the +-- list of logical entities for which a single SNMP entity +-- provides management information. +-- objects +-- entLogicalDescr, entLogicalType, entLogicalTAddress, +-- entLogicalTDomain, entLogicalContextEngineID, +-- entLogicalContextName + +entityNotificationsGroup OBJECT IDENTIFIER ::= { entityGroups 5 } +-- NOTIFICATION-GROUP +-- Status +-- mandatory +-- Descr +-- The collection of notifications used to indicate Entity MIB +-- data consistency and general status information. +-- notifications +-- entConfigChange + +entityCompliance OBJECT IDENTIFIER ::= { entityCompliances 1 } +-- MODULE-COMPLIANCE +-- Status +-- deprecated +-- Descr +-- The compliance statement for SNMP entities which implement +-- version 1 of the Entity MIB. +-- Module +-- >>current<< +-- MandGroup +-- entityPhysicalGroup +-- MandGroup +-- entityLogicalGroup +-- MandGroup +-- entityMappingGroup +-- MandGroup +-- entityGeneralGroup +-- MandGroup +-- entityNotificationsGroup + +entity2Compliance OBJECT IDENTIFIER ::= { entityCompliances 2 } +-- MODULE-COMPLIANCE +-- Status +-- mandatory +-- Descr +-- The compliance statement for SNMP entities which implement +-- version 2 of the Entity MIB. +-- Module +-- >>current<< +-- MandGroup +-- entityPhysicalGroup +-- MandGroup +-- entityPhysical2Group +-- MandGroup +-- entityGeneralGroup +-- MandGroup +-- entityNotificationsGroup +-- OptGroup +-- entityLogical2Group +-- OptGroup +-- entityMappingGroup +-- ObjVar +-- entPhysicalSerialNum +-- ObjVar +-- entPhysicalAlias +-- ObjVar +-- entPhysicalAssetID + + +END \ No newline at end of file diff --git a/pandora_console/attachment/mibs/EtherLike-MIB b/pandora_console/attachment/mibs/EtherLike-MIB new file mode 100644 index 0000000000..b3a8810292 --- /dev/null +++ b/pandora_console/attachment/mibs/EtherLike-MIB @@ -0,0 +1,1160 @@ +-- extracted from rfc2665.txt +-- at Mon Nov 15 17:12:07 1999 + + EtherLike-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, + Counter32, mib-2, transmission + FROM SNMPv2-SMI + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF + ifIndex, InterfaceIndex + FROM IF-MIB; + + etherMIB MODULE-IDENTITY + LAST-UPDATED "9908240400Z" -- August 24, 1999 + ORGANIZATION "IETF Ethernet Interfaces and Hub MIB + Working Group" + CONTACT-INFO + "WG E-mail: hubmib@hprnd.rose.hp.com + To subscribe: hubmib-request@hprnd.rose.hp.com + + Chair: Dan Romascanu + Postal: Lucent Technologies + Atidum Technology Park, Bldg. 3 + Tel Aviv 61131 + Israel + Tel: +972 3 645 8414 + E-mail: dromasca@lucent.com + + Editor: John Flick + Postal: Hewlett-Packard Company + 8000 Foothills Blvd. M/S 5557 + Roseville, CA 95747-5557 + USA + Tel: +1 916 785 4018 + Fax: +1 916 785 1199 + E-mail: johnf@rose.hp.com + + Editor: Jeffrey Johnson + Postal: RedBack Networks + 2570 North First Street, Suite 410 + San Jose, CA, 95131 + USA + Tel: +1 408 571 2699 + Fax: +1 408 571 2698 + E-Mail: jeff@redbacknetworks.com" + + DESCRIPTION "The MIB module to describe generic objects for + Ethernet-like network interfaces. + + The following reference is used throughout this + MIB module: + + [IEEE 802.3 Std] refers to: + IEEE Std 802.3, 1998 Edition: 'Information + technology - Telecommunications and + information exchange between systems - + Local and metropolitan area networks - + Specific requirements - Part 3: Carrier + sense multiple access with collision + detection (CSMA/CD) access method and + physical layer specifications', + September 1998. + + Of particular interest is Clause 30, '10Mb/s, + 100Mb/s and 1000Mb/s Management'." + + REVISION "9908240400Z" -- August 24, 1999 + DESCRIPTION "Updated to include support for 1000 Mb/sec + interfaces and full-duplex interfaces. + This version published as RFC 2665." + + REVISION "9806032150Z" + DESCRIPTION "Updated to include support for 100 Mb/sec + interfaces. + This version published as RFC 2358." + + REVISION "9402030400Z" + DESCRIPTION "Initial version, published as RFC 1650." + + ::= { mib-2 35 } + + + etherMIBObjects OBJECT IDENTIFIER ::= { etherMIB 1 } + + dot3 OBJECT IDENTIFIER ::= { transmission 7 } + + -- the Ethernet-like Statistics group + + dot3StatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot3StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Statistics for a collection of ethernet-like + interfaces attached to a particular system. + There will be one row in this table for each + ethernet-like interface in the system." + ::= { dot3 2 } + + dot3StatsEntry OBJECT-TYPE + SYNTAX Dot3StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Statistics for a particular interface to an + ethernet-like medium." + INDEX { dot3StatsIndex } + ::= { dot3StatsTable 1 } + + Dot3StatsEntry ::= + SEQUENCE { + dot3StatsIndex InterfaceIndex, + dot3StatsAlignmentErrors Counter32, + dot3StatsFCSErrors Counter32, + dot3StatsSingleCollisionFrames Counter32, + dot3StatsMultipleCollisionFrames Counter32, + dot3StatsSQETestErrors Counter32, + dot3StatsDeferredTransmissions Counter32, + dot3StatsLateCollisions Counter32, + dot3StatsExcessiveCollisions Counter32, + dot3StatsInternalMacTransmitErrors Counter32, + dot3StatsCarrierSenseErrors Counter32, + dot3StatsFrameTooLongs Counter32, + dot3StatsInternalMacReceiveErrors Counter32, + dot3StatsEtherChipSet OBJECT IDENTIFIER, + dot3StatsSymbolErrors Counter32, + dot3StatsDuplexStatus INTEGER + } + + dot3StatsIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An index value that uniquely identifies an + interface to an ethernet-like medium. The + interface identified by a particular value of + this index is the same interface as identified + by the same value of ifIndex." + REFERENCE "RFC 2233, ifIndex" + ::= { dot3StatsEntry 1 } + + dot3StatsAlignmentErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of frames received on a particular + interface that are not an integral number of + octets in length and do not pass the FCS check. + + The count represented by an instance of this + object is incremented when the alignmentError + status is returned by the MAC service to the + LLC (or other MAC user). Received frames for + which multiple error conditions obtain are, + according to the conventions of IEEE 802.3 + Layer Management, counted exclusively according + to the error status presented to the LLC. + + This counter does not increment for 8-bit wide + group encoding schemes. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.7, + aAlignmentErrors" + ::= { dot3StatsEntry 2 } + + dot3StatsFCSErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of frames received on a particular + interface that are an integral number of octets + in length but do not pass the FCS check. This + count does not include frames received with + frame-too-long or frame-too-short error. + + The count represented by an instance of this + object is incremented when the frameCheckError + status is returned by the MAC service to the + LLC (or other MAC user). Received frames for + which multiple error conditions obtain are, + according to the conventions of IEEE 802.3 + Layer Management, counted exclusively according + to the error status presented to the LLC. + + Note: Coding errors detected by the physical + layer for speeds above 10 Mb/s will cause the + frame to fail the FCS check. + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.6, + aFrameCheckSequenceErrors." + ::= { dot3StatsEntry 3 } + + dot3StatsSingleCollisionFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of successfully transmitted frames on + a particular interface for which transmission + is inhibited by exactly one collision. + + A frame that is counted by an instance of this + object is also counted by the corresponding + instance of either the ifOutUcastPkts, + ifOutMulticastPkts, or ifOutBroadcastPkts, + and is not counted by the corresponding + instance of the dot3StatsMultipleCollisionFrames + object. + + This counter does not increment when the + interface is operating in full-duplex mode. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.3, + aSingleCollisionFrames." + ::= { dot3StatsEntry 4 } + + dot3StatsMultipleCollisionFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of successfully transmitted frames on + a particular interface for which transmission + is inhibited by more than one collision. + + A frame that is counted by an instance of this + object is also counted by the corresponding + instance of either the ifOutUcastPkts, + ifOutMulticastPkts, or ifOutBroadcastPkts, + and is not counted by the corresponding + instance of the dot3StatsSingleCollisionFrames + object. + This counter does not increment when the + interface is operating in full-duplex mode. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.4, + aMultipleCollisionFrames." + ::= { dot3StatsEntry 5 } + + dot3StatsSQETestErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of times that the SQE TEST ERROR + message is generated by the PLS sublayer for a + particular interface. The SQE TEST ERROR + is set in accordance with the rules for + verification of the SQE detection mechanism in + the PLS Carrier Sense Function as described in + IEEE Std. 802.3, 1998 Edition, section 7.2.4.6. + + This counter does not increment on interfaces + operating at speeds greater than 10 Mb/s, or on + interfaces operating in full-duplex mode. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 7.2.4.6, also 30.3.2.1.4, + aSQETestErrors." + ::= { dot3StatsEntry 6 } + + dot3StatsDeferredTransmissions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of frames for which the first + transmission attempt on a particular interface + is delayed because the medium is busy. + The count represented by an instance of this + object does not include frames involved in + collisions. + + This counter does not increment when the + interface is operating in full-duplex mode. + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.9, + aFramesWithDeferredXmissions." + ::= { dot3StatsEntry 7 } + + dot3StatsLateCollisions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of times that a collision is + detected on a particular interface later than + one slotTime into the transmission of a packet. + + A (late) collision included in a count + represented by an instance of this object is + also considered as a (generic) collision for + purposes of other collision-related + statistics. + + This counter does not increment when the + interface is operating in full-duplex mode. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.10, + aLateCollisions." + ::= { dot3StatsEntry 8 } + + dot3StatsExcessiveCollisions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of frames for which transmission on a + particular interface fails due to excessive + collisions. + This counter does not increment when the + interface is operating in full-duplex mode. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.11, + aFramesAbortedDueToXSColls." + ::= { dot3StatsEntry 9 } + + dot3StatsInternalMacTransmitErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of frames for which transmission on a + particular interface fails due to an internal + MAC sublayer transmit error. A frame is only + counted by an instance of this object if it is + not counted by the corresponding instance of + either the dot3StatsLateCollisions object, the + dot3StatsExcessiveCollisions object, or the + dot3StatsCarrierSenseErrors object. + + The precise meaning of the count represented by + an instance of this object is implementation- + specific. In particular, an instance of this + object may represent a count of transmission + errors on a particular interface that are not + otherwise counted. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.12, + aFramesLostDueToIntMACXmitError." + ::= { dot3StatsEntry 10 } + + dot3StatsCarrierSenseErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of times that the carrier sense + condition was lost or never asserted when + attempting to transmit a frame on a particular + interface. + + The count represented by an instance of this + object is incremented at most once per + transmission attempt, even if the carrier sense + condition fluctuates during a transmission + attempt. + + This counter does not increment when the + interface is operating in full-duplex mode. + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.13, + aCarrierSenseErrors." + ::= { dot3StatsEntry 11 } + + -- { dot3StatsEntry 12 } is not assigned + + dot3StatsFrameTooLongs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of frames received on a particular + interface that exceed the maximum permitted + frame size. + + The count represented by an instance of this + object is incremented when the frameTooLong + status is returned by the MAC service to the + LLC (or other MAC user). Received frames for + which multiple error conditions obtain are, + according to the conventions of IEEE 802.3 + Layer Management, counted exclusively according + to the error status presented to the LLC. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.25, + aFrameTooLongErrors." + ::= { dot3StatsEntry 13 } + + -- { dot3StatsEntry 14 } is not assigned + + -- { dot3StatsEntry 15 } is not assigned + + dot3StatsInternalMacReceiveErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of frames for which reception on a + particular interface fails due to an internal + MAC sublayer receive error. A frame is only + counted by an instance of this object if it is + not counted by the corresponding instance of + either the dot3StatsFrameTooLongs object, the + dot3StatsAlignmentErrors object, or the + dot3StatsFCSErrors object. + + The precise meaning of the count represented by + an instance of this object is implementation- + specific. In particular, an instance of this + object may represent a count of receive errors + on a particular interface that are not + otherwise counted. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.15, + aFramesLostDueToIntMACRcvError." + ::= { dot3StatsEntry 16 } + + dot3StatsEtherChipSet OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "******** THIS OBJECT IS DEPRECATED ******** + + This object contains an OBJECT IDENTIFIER + which identifies the chipset used to + realize the interface. Ethernet-like + interfaces are typically built out of + several different chips. The MIB implementor + is presented with a decision of which chip + to identify via this object. The implementor + should identify the chip which is usually + called the Medium Access Control chip. + If no such chip is easily identifiable, + the implementor should identify the chip + which actually gathers the transmit + and receive statistics and error + indications. This would allow a + manager station to correlate the + statistics and the chip generating + them, giving it the ability to take + into account any known anomalies + in the chip." + ::= { dot3StatsEntry 17 } + + dot3StatsSymbolErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "For an interface operating at 100 Mb/s, the + number of times there was an invalid data symbol + when a valid carrier was present. + + For an interface operating in half-duplex mode + at 1000 Mb/s, the number of times the receiving + media is non-idle (a carrier event) for a period + of time equal to or greater than slotTime, and + during which there was at least one occurrence + of an event that causes the PHY to indicate + 'Data reception error' or 'carrier extend error' + on the GMII. + + For an interface operating in full-duplex mode + at 1000 Mb/s, the number of times the receiving + media is non-idle a carrier event) for a period + of time equal to or greater than minFrameSize, + and during which there was at least one + occurrence of an event that causes the PHY to + indicate 'Data reception error' on the GMII. + + The count represented by an instance of this + object is incremented at most once per carrier + event, even if multiple symbol errors occur + during the carrier event. This count does + not increment if a collision is present. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.2.1.5, + aSymbolErrorDuringCarrier." + ::= { dot3StatsEntry 18 } + + dot3StatsDuplexStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + halfDuplex(2), + fullDuplex(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The current mode of operation of the MAC + entity. 'unknown' indicates that the current + duplex mode could not be determined. + Management control of the duplex mode is + accomplished through the MAU MIB. When + an interface does not support autonegotiation, + or when autonegotiation is not enabled, the + duplex mode is controlled using + ifMauDefaultType. When autonegotiation is + supported and enabled, duplex mode is controlled + using ifMauAutoNegAdvertisedBits. In either + case, the currently operating duplex mode is + reflected both in this object and in ifMauType. + + Note that this object provides redundant + information with ifMauType. Normally, redundant + objects are discouraged. However, in this + instance, it allows a management application to + determine the duplex status of an interface + without having to know every possible value of + ifMauType. This was felt to be sufficiently + valuable to justify the redundancy." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.32, + aDuplexStatus." + ::= { dot3StatsEntry 19 } + + -- the Ethernet-like Collision Statistics group + + -- Implementation of this group is optional; it is appropriate + -- for all systems which have the necessary metering + + dot3CollTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot3CollEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A collection of collision histograms for a + particular set of interfaces." + REFERENCE "[IEEE 802.3 Std.], 30.3.1.1.30, + aCollisionFrames." + ::= { dot3 5 } + + dot3CollEntry OBJECT-TYPE + SYNTAX Dot3CollEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A cell in the histogram of per-frame + collisions for a particular interface. An + instance of this object represents the + frequency of individual MAC frames for which + the transmission (successful or otherwise) on a + particular interface is accompanied by a + particular number of media collisions." + INDEX { ifIndex, dot3CollCount } + ::= { dot3CollTable 1 } + + Dot3CollEntry ::= + SEQUENCE { + dot3CollCount INTEGER, + dot3CollFrequencies Counter32 + } + + -- { dot3CollEntry 1 } is no longer in use + + dot3CollCount OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The number of per-frame media collisions for + which a particular collision histogram cell + represents the frequency on a particular + interface." + ::= { dot3CollEntry 2 } + + dot3CollFrequencies OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of individual MAC frames for which the + transmission (successful or otherwise) on a + particular interface occurs after the + frame has experienced exactly the number + of collisions in the associated + dot3CollCount object. + + For example, a frame which is transmitted + on interface 77 after experiencing + exactly 4 collisions would be indicated + by incrementing only dot3CollFrequencies.77.4. + No other instance of dot3CollFrequencies would + be incremented in this example. + + This counter does not increment when the + interface is operating in full-duplex mode. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + ::= { dot3CollEntry 3 } + + dot3ControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot3ControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table of descriptive and status information + about the MAC Control sublayer on the + ethernet-like interfaces attached to a + particular system. There will be one row in + this table for each ethernet-like interface in + the system which implements the MAC Control + sublayer. If some, but not all, of the + ethernet-like interfaces in the system implement + the MAC Control sublayer, there will be fewer + rows in this table than in the dot3StatsTable." + ::= { dot3 9 } + + dot3ControlEntry OBJECT-TYPE + SYNTAX Dot3ControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An entry in the table, containing information + about the MAC Control sublayer on a single + ethernet-like interface." + INDEX { dot3StatsIndex } + ::= { dot3ControlTable 1 } + + Dot3ControlEntry ::= + SEQUENCE { + dot3ControlFunctionsSupported BITS, + dot3ControlInUnknownOpcodes Counter32 + } + + dot3ControlFunctionsSupported OBJECT-TYPE + SYNTAX BITS { + pause(0) -- 802.3x flow control + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A list of the possible MAC Control functions + implemented for this interface." + REFERENCE "[IEEE 802.3 Std.], 30.3.3.2, + aMACControlFunctionsSupported." + ::= { dot3ControlEntry 1 } + + dot3ControlInUnknownOpcodes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of MAC Control frames received on this + interface that contain an opcode that is not + supported by this device. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.3.5, + aUnsupportedOpcodesReceived" + ::= { dot3ControlEntry 2 } + + dot3PauseTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot3PauseEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table of descriptive and status information + about the MAC Control PAUSE function on the + ethernet-like interfaces attached to a + particular system. There will be one row in + this table for each ethernet-like interface in + the system which supports the MAC Control PAUSE + function (i.e., the 'pause' bit in the + corresponding instance of + dot3ControlFunctionsSupported is set). If some, + but not all, of the ethernet-like interfaces in + the system implement the MAC Control PAUSE + function (for example, if some interfaces only + support half-duplex), there will be fewer rows + in this table than in the dot3StatsTable." + ::= { dot3 10 } + + dot3PauseEntry OBJECT-TYPE + SYNTAX Dot3PauseEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An entry in the table, containing information + about the MAC Control PAUSE function on a single + ethernet-like interface." + INDEX { dot3StatsIndex } + ::= { dot3PauseTable 1 } + + Dot3PauseEntry ::= + SEQUENCE { + dot3PauseAdminMode INTEGER, + dot3PauseOperMode INTEGER, + dot3InPauseFrames Counter32, + dot3OutPauseFrames Counter32 + + } + + dot3PauseAdminMode OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabledXmit(2), + enabledRcv(3), + enabledXmitAndRcv(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This object is used to configure the default + administrative PAUSE mode for this interface. + + This object represents the + administratively-configured PAUSE mode for this + interface. If auto-negotiation is not enabled + or is not implemented for the active MAU + attached to this interface, the value of this + object determines the operational PAUSE mode + of the interface whenever it is operating in + full-duplex mode. In this case, a set to this + object will force the interface into the + specified mode. + + If auto-negotiation is implemented and enabled + for the MAU attached to this interface, the + PAUSE mode for this interface is determined by + auto-negotiation, and the value of this object + denotes the mode to which the interface will + automatically revert if/when auto-negotiation is + later disabled. Note that when auto-negotiation + is running, administrative control of the PAUSE + mode may be accomplished using the + ifMauAutoNegCapAdvertisedBits object in the + MAU-MIB. + + Note that the value of this object is ignored + when the interface is not operating in + full-duplex mode. + + An attempt to set this object to + 'enabledXmit(2)' or 'enabledRcv(3)' will fail + on interfaces that do not support operation + at greater than 100 Mb/s." + ::= { dot3PauseEntry 1 } + + dot3PauseOperMode OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabledXmit(2), + enabledRcv(3), + enabledXmitAndRcv(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This object reflects the PAUSE mode currently + in use on this interface, as determined by + either (1) the result of the auto-negotiation + function or (2) if auto-negotiation is not + enabled or is not implemented for the active MAU + attached to this interface, by the value of + dot3PauseAdminMode. Interfaces operating at + 100 Mb/s or less will never return + 'enabledXmit(2)' or 'enabledRcv(3)'. Interfaces + operating in half-duplex mode will always return + 'disabled(1)'. Interfaces on which + auto-negotiation is enabled but not yet + completed should return the value + 'disabled(1)'." + ::= { dot3PauseEntry 2 } + + dot3InPauseFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of MAC Control frames received on this + interface with an opcode indicating the PAUSE + operation. + + This counter does not increment when the + interface is operating in half-duplex mode. + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.4.3, + aPAUSEMACCtrlFramesReceived." + ::= { dot3PauseEntry 3 } + + dot3OutPauseFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A count of MAC Control frames transmitted on + this interface with an opcode indicating the + PAUSE operation. + + This counter does not increment when the + interface is operating in half-duplex mode. + + Discontinuities in the value of this counter can + occur at re-initialization of the management + system, and at other times as indicated by the + value of ifCounterDiscontinuityTime." + REFERENCE "[IEEE 802.3 Std.], 30.3.4.2, + aPAUSEMACCtrlFramesTransmitted." + ::= { dot3PauseEntry 4 } + + -- 802.3 Tests + + dot3Tests OBJECT IDENTIFIER ::= { dot3 6 } + + dot3Errors OBJECT IDENTIFIER ::= { dot3 7 } + + -- TDR Test + + dot3TestTdr OBJECT-IDENTITY + STATUS current + DESCRIPTION "The Time-Domain Reflectometry (TDR) test is + specific to ethernet-like interfaces of type + 10Base5 and 10Base2. The TDR value may be + useful in determining the approximate distance + to a cable fault. It is advisable to repeat + this test to check for a consistent resulting + TDR value, to verify that there is a fault. + + A TDR test returns as its result the time + interval, measured in 10 MHz ticks or 100 nsec + units, between the start of TDR test + transmission and the subsequent detection of a + collision or deassertion of carrier. On + successful completion of a TDR test, the result + is stored as the value of an appropriate + instance of an appropriate vendor specific MIB + object, and the OBJECT IDENTIFIER of that + instance is stored in the appropriate instance + of the appropriate test result code object + (thereby indicating where the result has been + stored)." + ::= { dot3Tests 1 } + + -- Loopback Test + dot3TestLoopBack OBJECT-IDENTITY + STATUS current + DESCRIPTION "This test configures the MAC chip and executes + an internal loopback test of memory, data paths, + and the MAC chip logic. This loopback test can + only be executed if the interface is offline. + Once the test has completed, the MAC chip should + be reinitialized for network operation, but it + should remain offline. + + If an error occurs during a test, the + appropriate test result object will be set + to indicate a failure. The two OBJECT + IDENTIFIER values dot3ErrorInitError and + dot3ErrorLoopbackError may be used to provided + more information as values for an appropriate + test result code object." + ::= { dot3Tests 2 } + + dot3ErrorInitError OBJECT-IDENTITY + STATUS current + DESCRIPTION "Couldn't initialize MAC chip for test." + ::= { dot3Errors 1 } + + dot3ErrorLoopbackError OBJECT-IDENTITY + STATUS current + DESCRIPTION "Expected data not received (or not received + correctly) in loopback test." + ::= { dot3Errors 2 } + + -- { dot3 8 }, the dot3ChipSets tree, is defined in [28] + + -- conformance information + + etherConformance OBJECT IDENTIFIER ::= { etherMIB 2 } + + etherGroups OBJECT IDENTIFIER ::= { etherConformance 1 } + etherCompliances OBJECT IDENTIFIER ::= { etherConformance 2 } + + -- compliance statements + + etherCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ******** + + The compliance statement for managed network + entities which have ethernet-like network + interfaces. + This compliance is deprecated and replaced by + dot3Compliance." + + MODULE -- this module + MANDATORY-GROUPS { etherStatsGroup } + + GROUP etherCollisionTableGroup + DESCRIPTION "This group is optional. It is appropriate + for all systems which have the necessary + metering. Implementation in such systems is + highly recommended." + ::= { etherCompliances 1 } + + ether100MbsCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ******** + + The compliance statement for managed network + entities which have 100 Mb/sec ethernet-like + network interfaces. + + This compliance is deprecated and replaced by + dot3Compliance." + + MODULE -- this module + MANDATORY-GROUPS { etherStats100MbsGroup } + + GROUP etherCollisionTableGroup + DESCRIPTION "This group is optional. It is appropriate + for all systems which have the necessary + metering. Implementation in such systems is + highly recommended." + ::= { etherCompliances 2 } + + dot3Compliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement for managed network + entities which have ethernet-like network + interfaces." + + MODULE -- this module + MANDATORY-GROUPS { etherStatsBaseGroup } + + GROUP etherDuplexGroup + DESCRIPTION "This group is mandatory for all + ethernet-like network interfaces which are + capable of operating in full-duplex mode. + It is highly recommended for all + ethernet-like network interfaces." + + GROUP etherStatsLowSpeedGroup + DESCRIPTION "This group is mandatory for all + ethernet-like network interfaces which are + capable of operating at 10 Mb/s or slower in + half-duplex mode." + + GROUP etherStatsHighSpeedGroup + DESCRIPTION "This group is mandatory for all + ethernet-like network interfaces which are + capable of operating at 100 Mb/s or faster." + + GROUP etherControlGroup + DESCRIPTION "This group is mandatory for all + ethernet-like network interfaces that + support the MAC Control sublayer." + + GROUP etherControlPauseGroup + DESCRIPTION "This group is mandatory for all + ethernet-like network interfaces that + support the MAC Control PAUSE function." + + GROUP etherCollisionTableGroup + DESCRIPTION "This group is optional. It is appropriate + for all ethernet-like network interfaces + which are capable of operating in + half-duplex mode and have the necessary + metering. Implementation in systems with + such interfaces is highly recommended." + + ::= { etherCompliances 3 } + + -- units of conformance + + etherStatsGroup OBJECT-GROUP + OBJECTS { dot3StatsIndex, + dot3StatsAlignmentErrors, + dot3StatsFCSErrors, + dot3StatsSingleCollisionFrames, + dot3StatsMultipleCollisionFrames, + dot3StatsSQETestErrors, + dot3StatsDeferredTransmissions, + dot3StatsLateCollisions, + dot3StatsExcessiveCollisions, + dot3StatsInternalMacTransmitErrors, + dot3StatsCarrierSenseErrors, + dot3StatsFrameTooLongs, + dot3StatsInternalMacReceiveErrors, + dot3StatsEtherChipSet + } + STATUS deprecated + DESCRIPTION "********* THIS GROUP IS DEPRECATED ********** + + A collection of objects providing information + applicable to all ethernet-like network + interfaces. + + This object group has been deprecated and + replaced by etherStatsBaseGroup and + etherStatsLowSpeedGroup." + ::= { etherGroups 1 } + + etherCollisionTableGroup OBJECT-GROUP + OBJECTS { dot3CollFrequencies + } + STATUS current + DESCRIPTION "A collection of objects providing a histogram + of packets successfully transmitted after + experiencing exactly N collisions." + ::= { etherGroups 2 } + + etherStats100MbsGroup OBJECT-GROUP + OBJECTS { dot3StatsIndex, + dot3StatsAlignmentErrors, + dot3StatsFCSErrors, + dot3StatsSingleCollisionFrames, + dot3StatsMultipleCollisionFrames, + dot3StatsDeferredTransmissions, + dot3StatsLateCollisions, + dot3StatsExcessiveCollisions, + dot3StatsInternalMacTransmitErrors, + dot3StatsCarrierSenseErrors, + dot3StatsFrameTooLongs, + dot3StatsInternalMacReceiveErrors, + dot3StatsEtherChipSet, + dot3StatsSymbolErrors + } + STATUS deprecated + DESCRIPTION "********* THIS GROUP IS DEPRECATED ********** + + A collection of objects providing information + applicable to 100 Mb/sec ethernet-like network + interfaces. + + This object group has been deprecated and + replaced by etherStatsBaseGroup and + etherStatsHighSpeedGroup." + ::= { etherGroups 3 } + + etherStatsBaseGroup OBJECT-GROUP + OBJECTS { dot3StatsIndex, + dot3StatsAlignmentErrors, + dot3StatsFCSErrors, + dot3StatsSingleCollisionFrames, + dot3StatsMultipleCollisionFrames, + dot3StatsDeferredTransmissions, + dot3StatsLateCollisions, + dot3StatsExcessiveCollisions, + dot3StatsInternalMacTransmitErrors, + dot3StatsCarrierSenseErrors, + dot3StatsFrameTooLongs, + dot3StatsInternalMacReceiveErrors + } + STATUS current + DESCRIPTION "A collection of objects providing information + applicable to all ethernet-like network + interfaces." + ::= { etherGroups 4 } + + etherStatsLowSpeedGroup OBJECT-GROUP + OBJECTS { dot3StatsSQETestErrors } + STATUS current + DESCRIPTION "A collection of objects providing information + applicable to ethernet-like network interfaces + capable of operating at 10 Mb/s or slower in + half-duplex mode." + + ::= { etherGroups 5 } + + etherStatsHighSpeedGroup OBJECT-GROUP + OBJECTS { dot3StatsSymbolErrors } + STATUS current + DESCRIPTION "A collection of objects providing information + applicable to ethernet-like network interfaces + capable of operating at 100 Mb/s or faster." + ::= { etherGroups 6 } + + etherDuplexGroup OBJECT-GROUP + OBJECTS { dot3StatsDuplexStatus } + STATUS current + DESCRIPTION "A collection of objects providing information + about the duplex mode of an ethernet-like + network interface." + ::= { etherGroups 7 } + + etherControlGroup OBJECT-GROUP + OBJECTS { dot3ControlFunctionsSupported, + dot3ControlInUnknownOpcodes + } + STATUS current + DESCRIPTION "A collection of objects providing information + about the MAC Control sublayer on ethernet-like + network interfaces." + ::= { etherGroups 8 } + + etherControlPauseGroup OBJECT-GROUP + OBJECTS { dot3PauseAdminMode, + dot3PauseOperMode, + dot3InPauseFrames, + dot3OutPauseFrames + } + STATUS current + DESCRIPTION "A collection of objects providing information + about and control of the MAC Control PAUSE + function on ethernet-like network interfaces." + ::= { etherGroups 9 } + + END + +-- +-- Copyright (C) The Internet Society (1999). All Rights Reserved. +-- +-- This document and translations of it may be copied and furnished to +-- others, and derivative works that comment on or otherwise explain it +-- or assist in its implementation may be prepared, copied, published +-- and distributed, in whole or in part, without restriction of any +-- kind, provided that the above copyright notice and this paragraph are +-- included on all such copies and derivative works. However, this +-- document itself may not be modified in any way, such as by removing +-- the copyright notice or references to the Internet Society or other +-- Internet organizations, except as needed for the purpose of +-- developing Internet standards in which case the procedures for +-- copyrights defined in the Internet Standards process must be +-- followed, or as required to translate it into languages other than +-- English. +-- +-- The limited permissions granted above are perpetual and will not be +-- revoked by the Internet Society or its successors or assigns. +-- +-- This document and the information contained herein is provided on an +-- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +-- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +-- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +-- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +-- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +-- + diff --git a/pandora_console/attachment/mibs/FDDI-SMT73-MIB b/pandora_console/attachment/mibs/FDDI-SMT73-MIB new file mode 100644 index 0000000000..d300ada17c --- /dev/null +++ b/pandora_console/attachment/mibs/FDDI-SMT73-MIB @@ -0,0 +1,2125 @@ +-- Changes to rfc1512 (FDDI 7.3 SMT MIB): +-- Added the IMPORT for transmission. +-- dperkins@scruznet.com + +FDDI-SMT73-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + transmission + FROM RFC1213-MIB; + + -- This MIB module uses the extended OBJECT-TYPE macro as + -- defined in [7]. + + -- this is the FDDI MIB module + + fddi OBJECT IDENTIFIER ::= { transmission 15 } + fddimib OBJECT IDENTIFIER ::= { fddi 73 } + + -- textual conventions + + FddiTimeNano ::= INTEGER (0..2147483647) + -- This data type specifies 1 nanosecond units as + -- an integer value. + -- + -- NOTE: The encoding is normal integer representation, not + -- two's complement. Since this type is used for variables + -- which are encoded as TimerTwosComplement in the ANSI + -- specification, two operations need to be performed on such + -- variables to convert from ANSI form to SNMP form: + -- + -- 1) Convert from two's complement to normal integer + -- representation + -- 2) Multiply by 80 to convert from 80 nsec to 1 nsec units + -- + -- No resolution is lost. Moreover, the objects for which + -- this data type is used effectively do not lose any range + -- due to the lower maximum value since they do not require + -- the full range. + -- + -- Example: If fddimibMACTReq had a value of 8 ms, it would + -- be stored in ANSI TimerTwosComplement format as 0xFFFE7960 + -- [8 ms is 100000 in 80 nsec units, which is then converted + -- to two's complement] but be reported as 8000000 in SNMP + -- since it is encoded here as FddiTimeNano. + + + FddiTimeMilli ::= INTEGER (0..2147483647) + -- This data type is used for some FDDI timers. It specifies + -- time in 1 millisecond units, in normal integer + -- representation. + + FddiResourceId ::= INTEGER (0..65535) + -- This data type is used to refer to an instance of a MAC, + -- PORT, or PATH Resource ID. Indexing begins + -- at 1. Zero is used to indicate the absence of a resource. + + FddiSMTStationIdType ::= OCTET STRING (SIZE (8)) + -- The unique identifier for the FDDI station. This is a + -- string of 8 octets, represented as X' yy yy xx xx xx xx + -- xx xx' with the low order 6 octet (xx) from a unique IEEE + -- assigned address. The high order two bits of the IEEE + -- address, the group address bit and the administration bit + -- (Universal/Local) bit should both be zero. The first two + -- octets, the yy octets, are implementor-defined. + -- + -- The representation of the address portion of the station id + -- is in the IEEE (ANSI/IEEE P802.1A) canonical notation for + -- 48 bit addresses. The canonical form is a 6-octet string + -- where the first octet contains the first 8 bits of the + -- address, with the I/G(Individual/Group) address bit as the + -- least significant bit and the U/L (Universal/Local) bit + -- as the next more significant bit, and so on. Note that + -- addresses in the ANSI FDDI standard SMT frames are + -- represented in FDDI MAC order. + + FddiMACLongAddressType ::= OCTET STRING (SIZE (6)) + -- The representation of long MAC addresses as management + -- values is in the IEEE (ANSI/IEEE P802.1A) canonical + -- notation for 48 bit addresses. The canonical form is a + -- 6-octet string where the first octet contains the first 8 + -- bits of the address, with the I/G (Individual/Group) + -- address bit as the least significant bit and the U/L + -- (Universal/Local) bit as the next more significant bit, + -- and so on. Note that the addresses in the SMT frames are + -- represented in FDDI MAC order. + + -- groups in the FDDI MIB module + + fddimibSMT OBJECT IDENTIFIER ::= { fddimib 1 } + + fddimibMAC OBJECT IDENTIFIER ::= { fddimib 2 } + + fddimibMACCounters OBJECT IDENTIFIER ::= { fddimib 3 } + + fddimibPATH OBJECT IDENTIFIER ::= { fddimib 4 } + + fddimibPORT OBJECT IDENTIFIER ::= { fddimib 5 } + + -- the SMT group + -- Implementation of the SMT group is mandatory for all + -- systems which implement manageable FDDI subsystems. + + fddimibSMTNumber OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of SMT implementations (regardless of + their current state) on this network management + application entity. The value for this variable + must remain constant at least from one re- + initialization of the entity's network management + system to the next re-initialization." + ::= { fddimibSMT 1 } + + -- the SMT table + + fddimibSMTTable OBJECT-TYPE + SYNTAX SEQUENCE OF FddimibSMTEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of SMT entries. The number of entries + shall not exceed the value of fddimibSMTNumber." + ::= { fddimibSMT 2 } + + fddimibSMTEntry OBJECT-TYPE + SYNTAX FddimibSMTEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An SMT entry containing information common to a + given SMT." + INDEX { fddimibSMTIndex } + ::= { fddimibSMTTable 1 } + + FddimibSMTEntry ::= + SEQUENCE { + fddimibSMTIndex + INTEGER, + fddimibSMTStationId + FddiSMTStationIdType, + fddimibSMTOpVersionId + INTEGER, + fddimibSMTHiVersionId + INTEGER, + fddimibSMTLoVersionId + INTEGER, + fddimibSMTUserData + OCTET STRING, + fddimibSMTMIBVersionId + INTEGER, + fddimibSMTMACCts + INTEGER, + fddimibSMTNonMasterCts + INTEGER, + fddimibSMTMasterCts + INTEGER, + fddimibSMTAvailablePaths + INTEGER, + fddimibSMTConfigCapabilities + INTEGER, + fddimibSMTConfigPolicy + INTEGER, + fddimibSMTConnectionPolicy + INTEGER, + fddimibSMTTNotify + INTEGER, + fddimibSMTStatRptPolicy + INTEGER, + fddimibSMTTraceMaxExpiration + FddiTimeMilli, + fddimibSMTBypassPresent + INTEGER, + fddimibSMTECMState + INTEGER, + fddimibSMTCFState + INTEGER, + fddimibSMTRemoteDisconnectFlag + INTEGER, + fddimibSMTStationStatus + INTEGER, + fddimibSMTPeerWrapFlag + INTEGER, + fddimibSMTTimeStamp + FddiTimeMilli, + fddimibSMTTransitionTimeStamp + FddiTimeMilli, + fddimibSMTStationAction + INTEGER + } + + fddimibSMTIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each SMT. The value for each + SMT must remain constant at least from one re- + initialization of the entity's network management + system to the next re-initialization." + ::= { fddimibSMTEntry 1 } + + fddimibSMTStationId OBJECT-TYPE + SYNTAX FddiSMTStationIdType -- OCTET STRING (SIZE (8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Used to uniquely identify an FDDI station." + REFERENCE + "ANSI { fddiSMT 11 }" + ::= { fddimibSMTEntry 2 } + + fddimibSMTOpVersionId OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The version that this station is using for its + operation (refer to ANSI 7.1.2.2). The value of + this variable is 2 for this SMT revision." + REFERENCE + "ANSI { fddiSMT 13 }" + ::= { fddimibSMTEntry 3 } + + fddimibSMTHiVersionId OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The highest version of SMT that this station + supports (refer to ANSI 7.1.2.2)." + REFERENCE + "ANSI { fddiSMT 14 }" + ::= { fddimibSMTEntry 4 } + + + fddimibSMTLoVersionId OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The lowest version of SMT that this station + supports (refer to ANSI 7.1.2.2)." + REFERENCE + "ANSI { fddiSMT 15 }" + ::= { fddimibSMTEntry 5 } + + fddimibSMTUserData OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (32)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable contains 32 octets of user defined + information. The information shall be an ASCII + string." + REFERENCE + "ANSI { fddiSMT 17 }" + ::= { fddimibSMTEntry 6 } + + fddimibSMTMIBVersionId OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The version of the FDDI MIB of this station. The + value of this variable is 1 for this SMT + revision." + REFERENCE + "ANSI { fddiSMT 18 }" + ::= { fddimibSMTEntry 7 } + + fddimibSMTMACCts OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of MACs in this station or + concentrator." + REFERENCE + "ANSI { fddiSMT 21 }" + ::= { fddimibSMTEntry 8 } + + fddimibSMTNonMasterCts OBJECT-TYPE + SYNTAX INTEGER (0..2) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this variable is the number of A, B, + and S ports in this station or concentrator." + REFERENCE + "ANSI { fddiSMT 22 }" + ::= { fddimibSMTEntry 9 } + + fddimibSMTMasterCts OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of M Ports in a node. If the node is + not a concentrator, the value of the variable is + zero." + REFERENCE + "ANSI { fddiSMT 23 }" + ::= { fddimibSMTEntry 10 } + + fddimibSMTAvailablePaths OBJECT-TYPE + SYNTAX INTEGER (0..7) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A value that indicates the PATH types available + in the station. + + The value is a sum. This value initially takes + the value zero, then for each type of PATH that + this node has available, 2 raised to a power is + added to the sum. The powers are according to the + following table: + + Path Power + Primary 0 + Secondary 1 + Local 2 + + For example, a station having Primary and Local + PATHs available would have a value of 5 (2**0 + + 2**2)." + REFERENCE + "ANSI { fddiSMT 24 }" + ::= { fddimibSMTEntry 11 } + + fddimibSMTConfigCapabilities OBJECT-TYPE + SYNTAX INTEGER (0..3) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A value that indicates the configuration + capabilities of a node. The 'Hold Available' bit + indicates the support of the optional Hold + Function, which is controlled by + fddiSMTConfigPolicy. The 'CF-Wrap-AB' bit + indicates that the station has the capability of + performing a wrap_ab (refer to ANSI SMT 9.7.2.2). + + The value is a sum. This value initially takes + the value zero, then for each of the configuration + policies currently enforced on the node, 2 raised + to a power is added to the sum. The powers are + according to the following table: + + Policy Power + holdAvailable 0 + CF-Wrap-AB 1 " + REFERENCE + "ANSI { fddiSMT 25 }" + ::= { fddimibSMTEntry 12 } + + fddimibSMTConfigPolicy OBJECT-TYPE + SYNTAX INTEGER (0..1) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A value that indicates the configuration policies + currently desired in a node. 'Hold' is one of the + terms used for the Hold Flag, an optional ECM flag + used to enable the optional Hold policy. + + The value is a sum. This value initially takes + the value zero, then for each of the configuration + policies currently enforced on the node, 2 raised + to a power is added to the sum. The powers are + according to the following table: + + Policy Power + configurationhold 0 " + REFERENCE + "ANSI { fddiSMT 26 }" + ::= { fddimibSMTEntry 13 } + + fddimibSMTConnectionPolicy OBJECT-TYPE + SYNTAX INTEGER (32768..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A value representing the connection policies in + effect in a node. A station sets the corresponding + bit for each of the connection types that it + rejects. The letter designations, X and Y, in the + 'rejectX-Y' names have the following significance: + X represents the PC-Type of the local PORT and Y + represents the PC_Type of the adjacent PORT + (PC_Neighbor). The evaluation of Connection- + Policy (PC-Type, PC-Neighbor) is done to determine + the setting of T- Val(3) in the PC-Signalling + sequence (refer to ANSI 9.6.3). Note that Bit 15, + (rejectM-M), is always set and cannot be cleared. + + The value is a sum. This value initially takes + the value zero, then for each of the connection + policies currently enforced on the node, 2 raised + to a power is added to the sum. The powers are + according to the following table: + + Policy Power + rejectA-A 0 + rejectA-B 1 + rejectA-S 2 + rejectA-M 3 + rejectB-A 4 + rejectB-B 5 + rejectB-S 6 + rejectB-M 7 + rejectS-A 8 + rejectS-B 9 + rejectS-S 10 + rejectS-M 11 + rejectM-A 12 + rejectM-B 13 + rejectM-S 14 + rejectM-M 15 " + REFERENCE + "ANSI { fddiSMT 27 }" + ::= { fddimibSMTEntry 14 } + + fddimibSMTTNotify OBJECT-TYPE + SYNTAX INTEGER (2..30) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The timer, expressed in seconds, used in the + Neighbor Notification protocol. It has a range of + 2 seconds to 30 seconds, and its default value is + 30 seconds (refer to ANSI SMT 8.2)." + REFERENCE + "ANSI { fddiSMT 29 }" + ::= { fddimibSMTEntry 15 } + + fddimibSMTStatRptPolicy OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If true, indicates that the node will generate + Status Reporting Frames for its implemented events + and conditions. It has an initial value of true. + This variable determines the value of the + SR_Enable Flag (refer to ANSI SMT 8.3.2.1)." + REFERENCE + "ANSI { fddiSMT 30 }" + ::= { fddimibSMTEntry 16 } + + fddimibSMTTraceMaxExpiration OBJECT-TYPE + SYNTAX FddiTimeMilli + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Reference Trace_Max (refer to ANSI SMT + 9.4.4.2.2)." + REFERENCE + "ANSI { fddiSMT 31 }" + ::= { fddimibSMTEntry 17 } + + fddimibSMTBypassPresent OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A flag indicating if the station has a bypass on + its AB port pair." + REFERENCE + "ANSI { fddiSMT 34 }" + ::= { fddimibSMTEntry 18 } + + fddimibSMTECMState OBJECT-TYPE + SYNTAX INTEGER { + ec0(1), -- Out + ec1(2), -- In + ec2(3), -- Trace + ec3(4), -- Leave + ec4(5), -- Path_Test + ec5(6), -- Insert + ec6(7), -- Check + ec7(8) -- Deinsert + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the current state of the ECM state + machine (refer to ANSI SMT 9.5.2)." + REFERENCE + "ANSI { fddiSMT 41 }" + ::= { fddimibSMTEntry 19 } + + fddimibSMTCFState OBJECT-TYPE + SYNTAX INTEGER { + cf0(1), -- isolated + cf1(2), -- local_a + cf2(3), -- local_b + cf3(4), -- local_ab + cf4(5), -- local_s + cf5(6), -- wrap_a + cf6(7), -- wrap_b + cf7(8), -- wrap_ab + cf8(9), -- wrap_s + cf9(10), -- c_wrap_a + cf10(11), -- c_wrap_b + cf11(12), -- c_wrap_s + cf12(13) -- thru + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The attachment configuration for the station or + concentrator (refer to ANSI SMT 9.7.2.2)." + REFERENCE + "ANSI { fddiSMT 42 }" + ::= { fddimibSMTEntry 20 } + + fddimibSMTRemoteDisconnectFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A flag indicating that the station was remotely + disconnected from the network as a result of + receiving an fddiSMTAction, disconnect (refer to + ANSI SMT 6.4.5.3) in a Parameter Management Frame. + A station requires a Connect Action to rejoin and + clear the flag (refer to ANSI SMT 6.4.5.2)." + REFERENCE + "ANSI { fddiSMT 44 }" + ::= { fddimibSMTEntry 21 } + + fddimibSMTStationStatus OBJECT-TYPE + SYNTAX INTEGER { concatenated(1), separated(2), thru(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current status of the primary and secondary + paths within this station." + REFERENCE + "ANSI { fddiSMT 45 }" + ::= { fddimibSMTEntry 22 } + + fddimibSMTPeerWrapFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable assumes the value of the + PeerWrapFlag in CFM (refer to ANSI SMT + 9.7.2.4.4)." + REFERENCE + "ANSI { fddiSMT 46 }" + ::= { fddimibSMTEntry 23 } + + fddimibSMTTimeStamp OBJECT-TYPE + SYNTAX FddiTimeMilli + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable assumes the value of TimeStamp + (refer to ANSI SMT 8.3.2.1)." + REFERENCE + "ANSI { fddiSMT 51 }" + ::= { fddimibSMTEntry 24 } + + fddimibSMTTransitionTimeStamp OBJECT-TYPE + SYNTAX FddiTimeMilli + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable assumes the value of + TransitionTimeStamp (refer to ANSI SMT 8.3.2.1)." + REFERENCE + "ANSI { fddiSMT 52 }" + ::= { fddimibSMTEntry 25 } + + fddimibSMTStationAction OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + connect(2), + disconnect(3), + path-Test(4), + self-Test(5), + disable-a(6), + disable-b(7), + disable-m(8) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object, when read, always returns a value of + other(1). The behavior of setting this variable + to each of the acceptable values is as follows: + + other(1): Results in an appropriate error. + connect(2): Generates a Connect signal to ECM + to begin a connection sequence. See ANSI + Ref 9.4.2. + disconnect(3): Generates a Disconnect signal + to ECM. see ANSI Ref 9.4.2. + path-Test(4): Initiates a station Path_Test. + The Path_Test variable (see ANSI Ref + 9.4.1) is set to 'Testing'. The results + of this action are not specified in this + standard. + self-Test(5): Initiates a station Self_Test. + The results of this action are not + specified in this standard. + disable-a(6): Causes a PC_Disable on the A + port if the A port mode is peer. + disable-b(7): Causes a PC_Disable on the B + port if the B port mode is peer. + disable-m(8): Causes a PC_Disable on all M + ports. + + Attempts to set this object to all other values + results in an appropriate error. The result of + setting this variable to path-Test(4) or self- + Test(5) is implementation-specific." + REFERENCE + "ANSI { fddiSMT 60 }" + ::= { fddimibSMTEntry 26 } + + -- the MAC group + -- Implementation of the MAC Group is mandatory for all + -- systems which implement manageable FDDI subsystems. + + fddimibMACNumber OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of MAC implementations (across + all SMTs) on this network management application + entity. The value for this variable must remain + constant at least from one re-initialization of + the entity's network management system to the next + re-initialization." + ::= { fddimibMAC 1 } + + -- the MAC table + + fddimibMACTable OBJECT-TYPE + SYNTAX SEQUENCE OF FddimibMACEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of MAC entries. The number of entries + shall not exceed the value of fddimibMACNumber." + ::= { fddimibMAC 2 } + + fddimibMACEntry OBJECT-TYPE + SYNTAX FddimibMACEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A MAC entry containing information common to a + given MAC." + INDEX { fddimibMACSMTIndex, fddimibMACIndex } + ::= { fddimibMACTable 1 } + + FddimibMACEntry ::= + SEQUENCE { + fddimibMACSMTIndex + INTEGER, + fddimibMACIndex + INTEGER, + fddimibMACIfIndex + INTEGER, + fddimibMACFrameStatusFunctions + INTEGER, + fddimibMACTMaxCapability + FddiTimeNano, + fddimibMACTVXCapability + FddiTimeNano, + fddimibMACAvailablePaths + INTEGER, + fddimibMACCurrentPath + INTEGER, + fddimibMACUpstreamNbr + FddiMACLongAddressType, + fddimibMACDownstreamNbr + FddiMACLongAddressType, + fddimibMACOldUpstreamNbr + FddiMACLongAddressType, + fddimibMACOldDownstreamNbr + FddiMACLongAddressType, + fddimibMACDupAddressTest + INTEGER, + fddimibMACRequestedPaths + INTEGER, + fddimibMACDownstreamPORTType + INTEGER, + fddimibMACSMTAddress + FddiMACLongAddressType, + fddimibMACTReq + FddiTimeNano, + fddimibMACTNeg + FddiTimeNano, + fddimibMACTMax + FddiTimeNano, + fddimibMACTvxValue + FddiTimeNano, + fddimibMACFrameCts + Counter, + fddimibMACCopiedCts + Counter, + fddimibMACTransmitCts + Counter, + fddimibMACErrorCts + Counter, + fddimibMACLostCts + Counter, + fddimibMACFrameErrorThreshold + INTEGER, + fddimibMACFrameErrorRatio + INTEGER, + fddimibMACRMTState + INTEGER, + fddimibMACDaFlag + INTEGER, + fddimibMACUnaDaFlag + INTEGER, + fddimibMACFrameErrorFlag + INTEGER, + fddimibMACMAUnitdataAvailable + INTEGER, + fddimibMACHardwarePresent + INTEGER, + fddimibMACMAUnitdataEnable + INTEGER + } + + fddimibMACSMTIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the SMT index associated with this + MAC." + ::= { fddimibMACEntry 1 } + + fddimibMACIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index variable for uniquely identifying the MAC + object instances, which is the same as the + corresponding resource index in SMT." + REFERENCE + "ANSI { fddiMAC 34 }" + ::= { fddimibMACEntry 2 } + + fddimibMACIfIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the MIB-II ifIndex corresponding to + this MAC. If none is applicable, 0 is returned." + REFERENCE + "MIB-II" + ::= { fddimibMACEntry 3 } + + fddimibMACFrameStatusFunctions OBJECT-TYPE + SYNTAX INTEGER (0..7) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the MAC's optional Frame Status + processing functions. + + The value is a sum. This value initially takes + the value zero, then for each function present, 2 + raised to a power is added to the sum. The powers + are according to the following table: + + function Power + fs-repeating 0 + fs-setting 1 + fs-clearing 2 " + REFERENCE + "ANSI { fddiMAC 11 }" + ::= { fddimibMACEntry 4 } + + fddimibMACTMaxCapability OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the maximum time value of fddiMACTMax + that this MAC can support." + REFERENCE + "ANSI { fddiMAC 13 }" + ::= { fddimibMACEntry 5 } + + fddimibMACTVXCapability OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the maximum time value of + fddiMACTvxValue that this MAC can support." + REFERENCE + "ANSI { fddiMAC 14 }" + ::= { fddimibMACEntry 6 } + + + fddimibMACAvailablePaths OBJECT-TYPE + SYNTAX INTEGER (0..7) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the paths available for this MAC (refer + to ANSI SMT 9.7.7). + + The value is a sum. This value initially takes + the value zero, then for each type of PATH that + this MAC has available, 2 raised to a power is + added to the sum. The powers are according to the + following table: + + Path Power + Primary 0 + Secondary 1 + Local 2 " + REFERENCE + "ANSI { fddiMAC 22 }" + ::= { fddimibMACEntry 7 } + + fddimibMACCurrentPath OBJECT-TYPE + SYNTAX INTEGER { + isolated(1), + local(2), + secondary(3), + primary(4), + concatenated(5), + thru(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the Path into which this MAC is + currently inserted (refer to ANSI 9.7.7)." + REFERENCE + "ANSI { fddiMAC 23 }" + ::= { fddimibMACEntry 8 } + + fddimibMACUpstreamNbr OBJECT-TYPE + SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MAC's upstream neighbor's long individual MAC + address. It has an initial value of the SMT- + Unknown-MAC Address and is only modified as + specified by the Neighbor Information Frame + protocol (refer to ANSI SMT 7.2.1 and 8.2)." + REFERENCE + "ANSI { fddiMAC 24 }" + ::= { fddimibMACEntry 9 } + + fddimibMACDownstreamNbr OBJECT-TYPE + SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MAC's downstream neighbor's long individual + MAC address. It has an initial value of the SMT- + Unknown-MAC Address and is only modified as + specified by the Neighbor Information Frame + protocol (refer to ANSI SMT 7.2.1 and 8.2)." + REFERENCE + "ANSI { fddiMAC 25 }" + ::= { fddimibMACEntry 10 } + + fddimibMACOldUpstreamNbr OBJECT-TYPE + SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The previous value of the MAC's upstream + neighbor's long individual MAC address. It has an + initial value of the SMT-Unknown- MAC Address and + is only modified as specified by the Neighbor + Information Frame protocol (refer to ANSI SMT + 7.2.1 and 8.2)." + REFERENCE + "ANSI { fddiMAC 26 }" + ::= { fddimibMACEntry 11 } + + fddimibMACOldDownstreamNbr OBJECT-TYPE + SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The previous value of the MAC's downstream + neighbor's long individual MAC address. It has an + initial value of the SMT- Unknown-MAC Address and + is only modified as specified by the Neighbor + Information Frame protocol (refer to ANSI SMT + 7.2.1 and 8.2)." + REFERENCE + "ANSI { fddiMAC 27 }" + ::= { fddimibMACEntry 12 } + + fddimibMACDupAddressTest OBJECT-TYPE + SYNTAX INTEGER { none(1), pass(2), fail(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Duplicate Address Test flag, Dup_Addr_Test + (refer to ANSI 8.2)." + REFERENCE + "ANSI { fddiMAC 29 }" + ::= { fddimibMACEntry 13 } + + fddimibMACRequestedPaths OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "List of permitted Paths which specifies the + Path(s) into which the MAC may be inserted (refer + to ansi SMT 9.7). + + The value is a sum which represents the individual + paths that are desired. This value initially + takes the value zero, then for each type of PATH + that this node is, 2 raised to a power is added to + the sum. The powers are according to the + following table: + + Path Power + local 0 + secondary-alternate 1 + primary-alternate 2 + concatenated-alternate 3 + secondary-preferred 4 + primary-preferred 5 + concatenated-preferred 6 + thru 7 " + REFERENCE + "ANSI { fddiMAC 32 }" + ::= { fddimibMACEntry 14 } + + fddimibMACDownstreamPORTType OBJECT-TYPE + SYNTAX INTEGER { a(1), b(2), s(3), m(4), none(5) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the PC-Type of the first port that is + downstream of this MAC (the exit port)." + REFERENCE + "ANSI { fddiMAC 33 }" + ::= { fddimibMACEntry 15 } + + fddimibMACSMTAddress OBJECT-TYPE + SYNTAX FddiMACLongAddressType -- OCTET STRING (SIZE (6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The 48-bit individual address of the MAC used for + SMT frames." + REFERENCE + "ANSI { fddiMAC 41 }" + ::= { fddimibMACEntry 16 } + + fddimibMACTReq OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable is the T_Req_value passed to the + MAC. Without having detected a duplicate, the + time value of this variable shall assume the + maximum supported time value which is less than or + equal to the time value of fddiPATHMaxT-Req. When + a MAC has an address detected as a duplicate, it + may use a time value for this variable greater + than the time value of fddiPATHTMaxLowerBound. A + station shall cause claim when the new T_Req may + cause the value of T_Neg to change in the claim + process, (i.e., time value new T_Req < T_Neg, or + old T_Req = T_Neg)." + REFERENCE + "ANSI { fddiMAC 51 }" + ::= { fddimibMACEntry 17 } + + fddimibMACTNeg OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-only + STATUS mandatory + DESCRIPTION + "It is reported as a FddiTimeNano number." + REFERENCE + "ANSI { fddiMAC 52 }" + ::= { fddimibMACEntry 18 } + + fddimibMACTMax OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable is the T_Max_value passed to the + MAC. The time value of this variable shall assume + the minimum suported time value which is greater + than or equal to the time value of fddiPATHT- + MaxLowerBound" + REFERENCE + "ANSI { fddiMAC 53 }" + ::= { fddimibMACEntry 19 } + + fddimibMACTvxValue OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable is the TVX_value passed to the MAC. + The time value of this variable shall assume the + minimum suported time value which is greater than + or equal to the time value of + fddiPATHTVXLowerBound." + REFERENCE + "ANSI { fddiMAC 54 }" + ::= { fddimibMACEntry 20 } + + fddimibMACFrameCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of the number of frames received by this + MAC (refer to ANSI MAC 7.5.1)." + REFERENCE + "ANSI { fddiMAC 71 }" + ::= { fddimibMACEntry 21 } + + fddimibMACCopiedCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count that should as closely as possible match + the number of frames addressed to (A bit set) and + successfully copied into the station's receive + buffers (C bit set) by this MAC (refer to ANSI MAC + 7.5). Note that this count does not include MAC + frames." + REFERENCE + "ANSI { fddiMAC 72 }" + ::= { fddimibMACEntry 22 } + + fddimibMACTransmitCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count that should as closely as possible match + the number of frames transmitted by this MAC + (refer to ANSI MAC 7.5). Note that this count + does not include MAC frames." + REFERENCE + "ANSI { fddiMAC 73 }" + ::= { fddimibMACEntry 23 } + + fddimibMACErrorCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of the number of frames that were + detected in error by this MAC that had not been + detected in error by another MAC (refer to ANSI + MAC 7.5.2)." + REFERENCE + "ANSI { fddiMAC 81 }" + ::= { fddimibMACEntry 24 } + + fddimibMACLostCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of the number of instances that this MAC + detected a format error during frame reception + such that the frame was stripped (refer to ANSI + MAC 7.5.3)." + REFERENCE + "ANSI { fddiMAC 82 }" + ::= { fddimibMACEntry 25 } + + fddimibMACFrameErrorThreshold OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A threshold for determining when a MAC Condition + report (see ANSI 8.3.1.1) shall be generated. + Stations not supporting variable thresholds shall + have a value of 0 and a range of (0..0)." + REFERENCE + "ANSI { fddiMAC 95 }" + ::= { fddimibMACEntry 26 } + + fddimibMACFrameErrorRatio OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable is the value of the ratio, + + ((delta fddiMACLostCts + delta fddiMACErrorCts) / + (delta fddiMACFrameCts + delta fddiMACLostCts )) + * 2**16 " + REFERENCE + "ANSI { fddiMAC 96 }" + ::= { fddimibMACEntry 27 } + + fddimibMACRMTState OBJECT-TYPE + SYNTAX INTEGER { + rm0(1), -- Isolated + rm1(2), -- Non_Op + rm2(3), -- Ring_Op + rm3(4), -- Detect + rm4(5), -- Non_Op_Dup + rm5(6), -- Ring_Op_Dup + rm6(7), -- Directed + rm7(8) -- Trace + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the current state of the RMT State + Machine (refer to ANSI 10.3.2)." + REFERENCE + "ANSI { fddiMAC 111 }" + ::= { fddimibMACEntry 28 } + + fddimibMACDaFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The RMT flag Duplicate Address Flag, DA_Flag + (refer to ANSI 10.2.1.2)." + REFERENCE + "ANSI { fddiMAC 112 }" + ::= { fddimibMACEntry 29 } + + fddimibMACUnaDaFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A flag, UNDA_Flag (refer to ANSI 8.2.2.1), set + when the upstream neighbor reports a duplicate + address condition. Cleared when the condition + clears." + REFERENCE + "ANSI { fddiMAC 113 }" + ::= { fddimibMACEntry 30 } + + fddimibMACFrameErrorFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the MAC Frame Error Condition is + present when set. Cleared when the condition + clears and on station initialization." + REFERENCE + "ANSI { fddiMAC 114 }" + ::= { fddimibMACEntry 31 } + + fddimibMACMAUnitdataAvailable OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable shall take on the value of the + MAC_Avail flag defined in RMT." + REFERENCE + "ANSI { fddiMAC 116 }" + ::= { fddimibMACEntry 32 } + + fddimibMACHardwarePresent OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the presence of + underlying hardware support for this MAC object. + If the value of this object is false(2), the + reporting of the objects in this entry may be + handled in an implementation-specific manner." + REFERENCE + "ANSI { fddiMAC 117 }" + ::= { fddimibMACEntry 33 } + + fddimibMACMAUnitdataEnable OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable determines the value of the + MA_UNITDATA_Enable flag in RMT. The default and + initial value of this flag is true(1)." + REFERENCE + "ANSI { fddiMAC 118 }" + ::= { fddimibMACEntry 34 } + + -- the Enhanced MAC Counters group + -- Implementation of this Group is optional, but systems + -- claiming support must implement all variables in this + -- group + + -- the MAC Counters table + + fddimibMACCountersTable OBJECT-TYPE + SYNTAX SEQUENCE OF FddimibMACCountersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of MAC Counters entries. The number of + entries shall not exceed the value of + fddimibMACNumber." + ::= { fddimibMACCounters 1 } + + fddimibMACCountersEntry OBJECT-TYPE + SYNTAX FddimibMACCountersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A MAC Counters entry containing information + common to a given MAC." + INDEX { fddimibMACSMTIndex, fddimibMACIndex } + ::= { fddimibMACCountersTable 1 } + + + FddimibMACCountersEntry ::= + SEQUENCE { + fddimibMACTokenCts + Counter, + fddimibMACTvxExpiredCts + Counter, + fddimibMACNotCopiedCts + Counter, + fddimibMACLateCts + Counter, + fddimibMACRingOpCts + Counter, + fddimibMACNotCopiedRatio + INTEGER, + fddimibMACNotCopiedFlag + INTEGER, + fddimibMACNotCopiedThreshold + INTEGER + } + + fddimibMACTokenCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count that should as closely as possible match + the number of times the station has received a + token (total of non-restricted and restricted) on + this MAC (see ANSI MAC 7.4). This count is + valuable for determination of network load." + REFERENCE + "ANSI { fddiMAC 74 }" + ::= { fddimibMACCountersEntry 1 } + + fddimibMACTvxExpiredCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count that should as closely as possible match + the number of times that TVX has expired." + REFERENCE + "ANSI { fddiMAC 83 }" + ::= { fddimibMACCountersEntry 2 } + + fddimibMACNotCopiedCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count that should as closely as possible match + the number of frames that were addressed to this + MAC but were not copied into its receive buffers + (see ANSI MAC 7.5). For example, this might occur + due to local buffer congestion. Because of + implementation considerations, this count may not + match the actual number of frames not copied. It + is not a requirement that this count be exact. + Note that this count does not include MAC frames." + REFERENCE + "ANSI { fddiMAC 84 }" + ::= { fddimibMACCountersEntry 3 } + + fddimibMACLateCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count that should as closely as possible match + the number of TRT expirations since this MAC was + reset or a token was received (refer to ANSI MAC + 7.4.5)." + REFERENCE + "ANSI { fddiMAC 85 }" + ::= { fddimibMACCountersEntry 4 } + + fddimibMACRingOpCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The count of the number of times the ring has + entered the 'Ring_Operational' state from the + 'Ring Not Operational' state. This count is + updated when a SM_MA_STATUS.Indication of a change + in the Ring_Operational status occurs (refer to + ANSI 6.1.4). Because of implementation + considerations, this count may be less than the + actual RingOp_Ct. It is not a requirement that + this count be exact." + REFERENCE + "ANSI { fddiMAC 86 }" + ::= { fddimibMACCountersEntry 5 } + + fddimibMACNotCopiedRatio OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable is the value of the ratio: + + (delta fddiMACNotCopiedCts / + (delta fddiMACCopiedCts + + delta fddiMACNotCopiedCts )) * 2**16 " + REFERENCE + "ANSI { fddiMAC 105 }" + ::= { fddimibMACCountersEntry 6 } + + fddimibMACNotCopiedFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates that the Not Copied condition is + present when read as true(1). Set to false(2) + when the condition clears and on station + initialization." + REFERENCE + "ANSI { fddiMAC 115 }" + ::= { fddimibMACCountersEntry 7 } + + fddimibMACNotCopiedThreshold OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A threshold for determining when a MAC condition + report shall be generated. Stations not + supporting variable thresholds shall have a value + of 0 and a range of (0..0)." + REFERENCE + "ANSI { fddiMAC 103 }" + ::= { fddimibMACCountersEntry 8 } + + -- the PATH group + -- Implementation of the PATH group is mandatory for all + -- systems which implement manageable FDDI subsystems. + + fddimibPATHNumber OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of PATHs possible (across all + SMTs) on this network management application + entity. The value for this variable must remain + constant at least from one re-initialization of + the entity's network management system to the next + re-initialization." + ::= { fddimibPATH 1 } + + -- the PATH table + + fddimibPATHTable OBJECT-TYPE + SYNTAX SEQUENCE OF FddimibPATHEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of PATH entries. The number of entries + shall not exceed the value of fddimibPATHNumber." + ::= { fddimibPATH 2 } + + fddimibPATHEntry OBJECT-TYPE + SYNTAX FddimibPATHEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A PATH entry containing information common to a + given PATH." + INDEX { fddimibPATHSMTIndex, fddimibPATHIndex } + ::= { fddimibPATHTable 1 } + + FddimibPATHEntry ::= + SEQUENCE { + fddimibPATHSMTIndex + INTEGER, + fddimibPATHIndex + INTEGER, + fddimibPATHTVXLowerBound + FddiTimeNano, + fddimibPATHTMaxLowerBound + FddiTimeNano, + fddimibPATHMaxTReq + FddiTimeNano + } + + fddimibPATHSMTIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the SMT index associated with this + PATH." + ::= { fddimibPATHEntry 1 } + + fddimibPATHIndex OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index variable for uniquely identifying the + primary, secondary and local PATH object + instances. Local PATH object instances are + represented with integer values 3 to 255." + REFERENCE + "ANSI { fddiPATH 11 }" + ::= { fddimibPATHEntry 2 } + + fddimibPATHTVXLowerBound OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the minimum time value of + fddiMACTvxValue that shall be used by any MAC that + is configured in this path. The operational value + of fddiMACTvxValue is managed by settting this + variable. This variable has the time value range + of: + + 0 < fddimibPATHTVXLowerBound < fddimibPATHMaxTReq + Changes to this variable shall either satisfy the + time value relationship: + + fddimibPATHTVXLowerBound <= + fddimibMACTVXCapability + + of each of the MACs currently on the path, or be + considered out of range. The initial value of + fddimibPATHTVXLowerBound shall be 2500 nsec (2.5 + ms)." + REFERENCE + "ANSI { fddiPATH 21 }" + ::= { fddimibPATHEntry 3 } + + fddimibPATHTMaxLowerBound OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the minimum time value of fddiMACTMax + that shall be used by any MAC that is configured + in this path. The operational value of + fddiMACTMax is managed by setting this variable. + This variable has the time value range of: + + fddimibPATHMaxTReq <= fddimibPATHTMaxLowerBound + + and an absolute time value range of: + + 10000nsec (10 msec) <= fddimibPATHTMaxLowerBound + + Changes to this variable shall either satisfy the + time value relationship: + + fddimibPATHTMaxLowerBound < + fddimibMACTMaxCapability + + of each of the MACs currently on the path, or be + considered out of range. The initial value of + fddimibPATHTMaxLowerBound shall be 165000 nsec + (165 msec)." + REFERENCE + "ANSI { fddiPATH 22 }" + ::= { fddimibPATHEntry 4 } + + fddimibPATHMaxTReq OBJECT-TYPE + SYNTAX FddiTimeNano + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the maximum time value of fddiMACT-Req + that shall be used by any MAC that is configured + in this path. The operational value of fddiMACT- + Req is managed by setting this variable. This + variable has the time value range of: + + fddimibPATHTVXLowerBound < fddimibPATHMaxTReq <= + fddimibPATHTMaxLowerBound. + + The default value of fddimibPATHMaxTReq is 165000 + nsec (165 msec)." + REFERENCE + "ANSI { fddiPATH 23 }" + ::= { fddimibPATHEntry 5 } + + + -- the PATH Configuration table + + fddimibPATHConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF FddimibPATHConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of Path configuration entries. This + table lists all the resources that may be in this + Path." + REFERENCE + "ANSI { fddiPATH 18 }" + ::= { fddimibPATH 3 } + + fddimibPATHConfigEntry OBJECT-TYPE + SYNTAX FddimibPATHConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of objects containing information + for a given PATH Configuration entry." + INDEX { fddimibPATHConfigSMTIndex, + fddimibPATHConfigPATHIndex, + fddimibPATHConfigTokenOrder } + ::= { fddimibPATHConfigTable 1 } + + FddimibPATHConfigEntry ::= + SEQUENCE { + fddimibPATHConfigSMTIndex + INTEGER, + fddimibPATHConfigPATHIndex + INTEGER, + fddimibPATHConfigTokenOrder + INTEGER, + fddimibPATHConfigResourceType + INTEGER, + fddimibPATHConfigResourceIndex + INTEGER, + fddimibPATHConfigCurrentPath + INTEGER + } + + fddimibPATHConfigSMTIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the SMT index associated with this + + + configuration entry." + ::= { fddimibPATHConfigEntry 1 } + + fddimibPATHConfigPATHIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the PATH resource index associated + with this configuration entry." + ::= { fddimibPATHConfigEntry 2 } + + fddimibPATHConfigTokenOrder OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An object associated with Token order for this + entry. Thus if the token passes resources a, b, c + and d, in that order, then the value of this + object for these resources would be 1, 2, 3 and 4 + respectively." + ::= { fddimibPATHConfigEntry 3 } + + fddimibPATHConfigResourceType OBJECT-TYPE + SYNTAX INTEGER { mac(2), port(4) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of resource associated with this + configuration entry." + ::= { fddimibPATHConfigEntry 4 } + + fddimibPATHConfigResourceIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the SMT resource index used to refer + to the instance of this MAC or Port resource." + ::= { fddimibPATHConfigEntry 5 } + + fddimibPATHConfigCurrentPath OBJECT-TYPE + SYNTAX INTEGER { + isolated(1), local(2), secondary(3), primary(4), + concatenated(5), thru(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current insertion status for this resource on + this Path." + ::= { fddimibPATHConfigEntry 6 } + + -- the PORT group + -- Implementation of the PORT group is mandatory for all + -- systems which implement manageable FDDI subsystems. + + fddimibPORTNumber OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of PORT implementations (across + all SMTs) on this network management application + entity. The value for this variable must remain + constant at least from one re-initialization of + the entity's network management system to the next + re-initialization." + ::= { fddimibPORT 1 } + + -- the PORT table + + fddimibPORTTable OBJECT-TYPE + SYNTAX SEQUENCE OF FddimibPORTEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of PORT entries. The number of entries + shall not exceed the value of fddimibPORTNumber." + ::= { fddimibPORT 2 } + + fddimibPORTEntry OBJECT-TYPE + SYNTAX FddimibPORTEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A PORT entry containing information common to a + given PORT." + INDEX { fddimibPORTSMTIndex, fddimibPORTIndex } + ::= { fddimibPORTTable 1 } + + FddimibPORTEntry ::= + SEQUENCE { + fddimibPORTSMTIndex + INTEGER, + fddimibPORTIndex + INTEGER, + fddimibPORTMyType + INTEGER, + fddimibPORTNeighborType + INTEGER, + fddimibPORTConnectionPolicies + INTEGER, + fddimibPORTMACIndicated + INTEGER, + fddimibPORTCurrentPath + INTEGER, + fddimibPORTRequestedPaths + OCTET STRING, + fddimibPORTMACPlacement + FddiResourceId, + fddimibPORTAvailablePaths + INTEGER, + fddimibPORTPMDClass + INTEGER, + fddimibPORTConnectionCapabilities + INTEGER, + fddimibPORTBSFlag + INTEGER, + fddimibPORTLCTFailCts + Counter, + fddimibPORTLerEstimate + INTEGER, + fddimibPORTLemRejectCts + Counter, + fddimibPORTLemCts + Counter, + fddimibPORTLerCutoff + INTEGER, + fddimibPORTLerAlarm + INTEGER, + fddimibPORTConnectState + INTEGER, + fddimibPORTPCMState + INTEGER, + fddimibPORTPCWithhold + INTEGER, + fddimibPORTLerFlag + INTEGER, + fddimibPORTHardwarePresent + INTEGER, + fddimibPORTAction + INTEGER + } + + fddimibPORTSMTIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the SMT index associated with this + PORT." + ::= { fddimibPORTEntry 1 } + + fddimibPORTIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each PORT within a given SMT, + which is the same as the corresponding resource + index in SMT. The value for each PORT must remain + constant at least from one re-initialization of + the entity's network management system to the next + re-initialization." + REFERENCE + "ANSI { fddiPORT 29 }" + ::= { fddimibPORTEntry 2 } + + fddimibPORTMyType OBJECT-TYPE + SYNTAX INTEGER { a(1), b(2), s(3), m(4), none(5) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the PORT's PC_Type (refer to ANSI + 9.4.1, and 9.6.3.2)." + REFERENCE + "ANSI { fddiPORT 12 }" + ::= { fddimibPORTEntry 3 } + + fddimibPORTNeighborType OBJECT-TYPE + SYNTAX INTEGER { a(1), b(2), s(3), m(4), none(5) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of the remote PORT as determined in PCM. + This variable has an initial value of none, and is + only modified in PC_RCode(3)_Actions (refer to + ANSI SMT 9.6.3.2)." + REFERENCE + "ANSI { fddiPORT 13 }" + ::= { fddimibPORTEntry 4 } + + fddimibPORTConnectionPolicies OBJECT-TYPE + SYNTAX INTEGER (0..3) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A value representing the PORT's connection + policies desired in the node. The value of pc- + mac-lct is a term used in the PC_MAC_LCT Flag (see + 9.4.3.2). The value of pc-mac-loop is a term used + in the PC_MAC_Loop Flag. + + The value is a sum. This value initially takes + the value zero, then for each PORT policy, 2 + raised to a power is added to the sum. The powers + are according to the following table: + + Policy Power + pc-mac-lct 0 + pc-mac-loop 1 " + REFERENCE + "ANSI { fddiPORT 14 }" + ::= { fddimibPORTEntry 5 } + + fddimibPORTMACIndicated OBJECT-TYPE + SYNTAX INTEGER { + tVal9FalseRVal9False(1), + tVal9FalseRVal9True(2), + tVal9TrueRVal9False(3), + tVal9TrueRVal9True(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The indications (T_Val(9), R_Val(9)) in PC- + Signalling, of the intent to place a MAC in the + output token path to a PORT (refer to ANSI SMT + 9.6.3.2.)." + REFERENCE + "ANSI { fddiPORT 15 }" + ::= { fddimibPORTEntry 6 } + + fddimibPORTCurrentPath OBJECT-TYPE + SYNTAX INTEGER { + ce0(1), -- isolated + ce1(2), -- local + ce2(3), -- secondary + ce3(4), -- primary + ce4(5), -- concatenated + ce5(6) -- thru + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the Path(s) into which this PORT is + currently inserted." + REFERENCE + "ANSI { fddiPORT 16 }" + ::= { fddimibPORTEntry 7 } + + fddimibPORTRequestedPaths OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (3)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable is a list of permitted Paths where + each list element defines the Port's permitted + Paths. The first octet corresponds to 'none', the + second octet to 'tree', and the third octet to + 'peer'." + REFERENCE + "ANSI { fddiPORT 17 }" + ::= { fddimibPORTEntry 8 } + + fddimibPORTMACPlacement OBJECT-TYPE + SYNTAX FddiResourceId -- INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the MAC, if any, whose transmit path + exits the station via this PORT. The value shall + be zero if there is no MAC associated with the + PORT. Otherwise, the MACIndex of the MAC will be + the value of the variable." + REFERENCE + "ANSI { fddiPORT 18 }" + ::= { fddimibPORTEntry 9 } + + fddimibPORTAvailablePaths OBJECT-TYPE + SYNTAX INTEGER (0..7) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the Paths which are available to this + Port. In the absence of faults, the A and B Ports + will always have both the Primary and Secondary + Paths available. + + The value is a sum. This value initially takes + the value zero, then for each type of PATH that + this port has available, 2 raised to a power is + added to the sum. The powers are according to the + following table: + + Path Power + Primary 0 + Secondary 1 + Local 2 " + REFERENCE + "ANSI { fddiPORT 19 }" + ::= { fddimibPORTEntry 10 } + + fddimibPORTPMDClass OBJECT-TYPE + SYNTAX INTEGER { + multimode(1), + single-mode1(2), + single-mode2(3), + sonet(4), + low-cost-fiber(5), + twisted-pair(6), + unknown(7), + unspecified(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the type of PMD entity + associated with this port." + REFERENCE + "ANSI { fddiPORT 22 }" + ::= { fddimibPORTEntry 11 } + + fddimibPORTConnectionCapabilities OBJECT-TYPE + SYNTAX INTEGER (0..3) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A value that indicates the connection + capabilities of the port. The pc-mac-lct bit + indicates that the station has the capability of + setting the PC_MAC_LCT Flag. The pc-mac-loop bit + indicates that the station has the capability of + setting the PC_MAC_Loop Flag (refer to ANSI + 9.4.3.2). + + The value is a sum. This value initially takes + the value zero, then for each capability that this + port has, 2 raised to a power is added to the sum. + The powers are according to the following table: + + capability Power + pc-mac-lct 0 + pc-mac-loop 1 " + REFERENCE + "ANSI { fddiPORT 23 }" + ::= { fddimibPORTEntry 12 } + + fddimibPORTBSFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable assumes the value of the BS_Flag + (refer to ANSI SMT 9.4.3.3)." + REFERENCE + "ANSI { fddiPORT 33 }" + ::= { fddimibPORTEntry 13 } + + fddimibPORTLCTFailCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The count of the consecutive times the link + confidence test (LCT) has failed during connection + management (refer to ANSI 9.4.1)." + REFERENCE + "ANSI { fddiPORT 42 }" + ::= { fddimibPORTEntry 14 } + + fddimibPORTLerEstimate OBJECT-TYPE + SYNTAX INTEGER (4..15) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A long term average link error rate. It ranges + from 10**-4 to 10**-15 and is reported as the + absolute value of the base 10 logarithm (refer to + ANSI SMT 9.4.7.5.)." + REFERENCE + "ANSI { fddiPORT 51 }" + ::= { fddimibPORTEntry 15 } + + fddimibPORTLemRejectCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A link error monitoring count of the times that a + link has been rejected." + REFERENCE + "ANSI { fddiPORT 52 }" + ::= { fddimibPORTEntry 16 } + + fddimibPORTLemCts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The aggregate link error monitor error count, set + to zero only on station initialization." + REFERENCE + "ANSI { fddiPORT 53 }" + ::= { fddimibPORTEntry 17 } + + fddimibPORTLerCutoff OBJECT-TYPE + SYNTAX INTEGER (4..15) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The link error rate estimate at which a link + connection will be broken. It ranges from 10**-4 + to 10**-15 and is reported as the absolute value + of the base 10 logarithm (default of 7)." + REFERENCE + "ANSI { fddiPORT 58 }" + ::= { fddimibPORTEntry 18 } + + fddimibPORTLerAlarm OBJECT-TYPE + SYNTAX INTEGER (4..15) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The link error rate estimate at which a link + connection will generate an alarm. It ranges from + 10**-4 to 10**-15 and is reported as the absolute + value of the base 10 logarithm of the estimate + (default of 8)." + REFERENCE + "ANSI { fddiPORT 59 }" + ::= { fddimibPORTEntry 19 } + + fddimibPORTConnectState OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + connecting(2), + standby(3), + active(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of the connect state of this PORT + and is equal to the value of Connect_State (refer + to ANSI 9.4.1)" + REFERENCE + "ANSI { fddiPORT 61 }" + ::= { fddimibPORTEntry 20 } + + fddimibPORTPCMState OBJECT-TYPE + SYNTAX INTEGER { + pc0(1), -- Off + pc1(2), -- Break + pc2(3), -- Trace + pc3(4), -- Connect + pc4(5), -- Next + pc5(6), -- Signal + pc6(7), -- Join + pc7(8), -- Verify + pc8(9), -- Active + pc9(10) -- Maint + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of this Port's PCM state machine refer + to ANSI SMT 9.6.2)." + REFERENCE + "ANSI { fddiPORT 62 }" + ::= { fddimibPORTEntry 21 } + + fddimibPORTPCWithhold OBJECT-TYPE + SYNTAX INTEGER { + none(1), + m-m(2), + otherincompatible(3), + pathnotavailable(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of PC_Withhold (refer to ANSI SMT + 9.4.1)." + REFERENCE + "ANSI { fddiPORT 63 }" + ::= { fddimibPORTEntry 22 } + + fddimibPORTLerFlag OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The condition becomes active when the value of + fddiPORTLerEstimate is less than or equal to + fddiPORTLerAlarm. This will be reported with the + Status Report Frames (SRF) (refer to ANSI SMT + 7.2.7 and 8.3)." + REFERENCE + "ANSI { fddiPORT 64 }" + ::= { fddimibPORTEntry 23 } + + fddimibPORTHardwarePresent OBJECT-TYPE + SYNTAX INTEGER { true(1), false(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the presence of + underlying hardware support for this Port object. + If the value of this object is false(2), the + reporting of the objects in this entry may be + handled in an implementation-specific manner." + REFERENCE + "ANSI { fddiPORT 65 }" + ::= { fddimibPORTEntry 24 } + + fddimibPORTAction OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + maintPORT(2), + enablePORT(3), + disablePORT(4), + startPORT(5), + stopPORT(6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Causes a Control signal to be generated with a + control_action of 'Signal' and the 'variable' + parameter set with the appropriate value (i.e., + PC_Maint, PC_Enable, PC_Disable, PC_Start, or + PC_Stop) (refer to ANSI 9.4.2)." + REFERENCE + "ANSI { fddiPORT 70 }" + ::= { fddimibPORTEntry 25 } + +END diff --git a/pandora_console/attachment/mibs/HOST-RESOURCES-MIB b/pandora_console/attachment/mibs/HOST-RESOURCES-MIB new file mode 100644 index 0000000000..2f39d204ba --- /dev/null +++ b/pandora_console/attachment/mibs/HOST-RESOURCES-MIB @@ -0,0 +1,1356 @@ +-- Changes to rfc1514 (Host Resources MIB): +-- Added the IMPORT for mib-2. +-- dperkins@scruznet.com + +HOST-RESOURCES-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE FROM RFC-1212 + DisplayString, mib-2 FROM RFC1213-MIB + TimeTicks, + Counter, Gauge FROM RFC1155-SMI; + + host OBJECT IDENTIFIER ::= { mib-2 25 } + + hrSystem OBJECT IDENTIFIER ::= { host 1 } + hrStorage OBJECT IDENTIFIER ::= { host 2 } + hrDevice OBJECT IDENTIFIER ::= { host 3 } + hrSWRun OBJECT IDENTIFIER ::= { host 4 } + hrSWRunPerf OBJECT IDENTIFIER ::= { host 5 } + hrSWInstalled OBJECT IDENTIFIER ::= { host 6 } + + -- textual conventions + + -- a truth value + Boolean ::= INTEGER { true(1), false(2) } + + -- memory size, expressed in units of 1024bytes + KBytes ::= INTEGER (0..2147483647) + + -- This textual convention is intended to identify the manufacturer, + -- model, and version of a specific hardware or software product. + -- It is suggested that these OBJECT IDENTIFIERs are allocated such + -- that all products from a particular manufacturer are registered + -- under a subtree distinct to that manufacturer. In addition, all + -- versions of a product should be registered under a subtree + -- distinct to that product. With this strategy, a management + -- station may uniquely determine the manufacturer and/or model of a + -- product whose productID is unknown to the management station. + -- Objects of this type may be useful for inventory purposes or for + -- automatically detecting incompatibilities or version mismatches + -- between various hardware and software components on a system. + ProductID ::= OBJECT IDENTIFIER + -- unknownProduct will be used for any unknown ProductID + -- unknownProduct OBJECT IDENTIFIER ::= { 0 0 } + + -- For example, the product ID for the ACME 4860 66MHz clock doubled + -- processor might be: + -- enterprises.acme.acmeProcessors.a4860DX2.MHz66 + -- A software product might be registered as: + -- enterprises.acme.acmeOperatingSystems.acmeDOS.six(6).one(1) + + DateAndTime ::= OCTET STRING (SIZE (8 | 11)) + -- A date-time specification for the local time of day. + -- This data type is intended to provide a consistent + -- method of reporting date information. + -- + -- field octets contents range + -- _____ ______ ________ _____ + -- 1 1-2 year 0..65536 + -- (in network byte order) + -- 2 3 month 1..12 + -- 3 4 day 1..31 + -- 4 5 hour 0..23 + -- 5 6 minutes 0..59 + -- 6 7 seconds 0..60 + -- (use 60 for leap-second) + -- 7 8 deci-seconds 0..9 + -- 8 9 direction from UTC "+" / "-" + -- (in ascii notation) + -- 9 10 hours from UTC 0..11 + -- 10 11 minutes from UTC 0..59 + -- + -- Note that if only local time is known, then + -- timezone information (fields 8-10) is not present. + + InternationalDisplayString ::= OCTET STRING + -- This data type is used to model textual information in some + -- character set. A network management station should use a local + -- algorithm to determine which character set is in use and how it + -- should be displayed. Note that this character set may be encoded + -- with more than one octet per symbol, but will most often be NVT + -- ASCII. + + -- The Host Resources System Group + -- + -- Implementation of this group is mandatory for all host systems. + + hrSystemUptime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of time since this host was last + initialized. Note that this is different from + sysUpTime in MIB-II [3] because sysUpTime is the + uptime of the network management portion of the + system." + ::= { hrSystem 1 } + + hrSystemDate OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The host's notion of the local date and time of + day." + ::= { hrSystem 2 } + + hrSystemInitialLoadDevice OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The index of the hrDeviceEntry for the device from + which this host is configured to load its initial + operating system configuration." + ::= { hrSystem 3 } + + hrSystemInitialLoadParameters OBJECT-TYPE + SYNTAX InternationalDisplayString (SIZE (0..128)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object contains the parameters (e.g. a + pathname and parameter) supplied to the load device + when requesting the initial operating system + configuration from that device." + ::= { hrSystem 4 } + + hrSystemNumUsers OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of user sessions for which this host is + storing state information. A session is a + collection of processes requiring a single act of + user authentication and possibly subject to + collective job control." + ::= { hrSystem 5 } + + hrSystemProcesses OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of process contexts currently loaded or + running on this system." + ::= { hrSystem 6 } + + hrSystemMaxProcesses OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum number of process contexts this system + can support. If there is no fixed maximum, the + value should be zero. On systems that have a fixed + maximum, this object can help diagnose failures + that occur when this maximum is reached." + ::= { hrSystem 7 } + + -- The Host Resources Storage Group + -- + -- Implementation of this group is mandatory for all host systems. + + -- Registration for some storage types, for use with hrStorageType + hrStorageTypes OBJECT IDENTIFIER ::= { hrStorage 1 } + hrStorageOther OBJECT IDENTIFIER ::= { hrStorageTypes 1 } + hrStorageRam OBJECT IDENTIFIER ::= { hrStorageTypes 2 } + -- hrStorageVirtualMemory is temporary storage of swapped + -- or paged memory + hrStorageVirtualMemory OBJECT IDENTIFIER ::= { hrStorageTypes 3 } + hrStorageFixedDisk OBJECT IDENTIFIER ::= { hrStorageTypes 4 } + hrStorageRemovableDisk OBJECT IDENTIFIER ::= { hrStorageTypes 5 } + hrStorageFloppyDisk OBJECT IDENTIFIER ::= { hrStorageTypes 6 } + hrStorageCompactDisc OBJECT IDENTIFIER ::= { hrStorageTypes 7 } + hrStorageRamDisk OBJECT IDENTIFIER ::= { hrStorageTypes 8 } + + hrMemorySize OBJECT-TYPE + SYNTAX KBytes + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of physical main memory contained by + the host." + ::= { hrStorage 2 } + + hrStorageTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrStorageEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of logical storage areas on + the host. + + An entry shall be placed in the storage table for + each logical area of storage that is allocated and + has fixed resource limits. The amount of storage + represented in an entity is the amount actually + usable by the requesting entity, and excludes loss + due to formatting or file system reference + information. + + These entries are associated with logical storage + areas, as might be seen by an application, rather + than physical storage entities which are typically + seen by an operating system. Storage such as tapes + and floppies without file systems on them are + typically not allocated in chunks by the operating + system to requesting applications, and therefore + shouldn't appear in this table. Examples of valid + storage for this table include disk partitions, + file systems, ram (for some architectures this is + further segmented into regular memory, extended + memory, and so on), backing store for virtual + memory (`swap space'). + + This table is intended to be a useful diagnostic + for `out of memory' and `out of buffers' types of + failures. In addition, it can be a useful + performance monitoring tool for tracking memory, + disk, or buffer usage." + ::= { hrStorage 3 } + + hrStorageEntry OBJECT-TYPE + SYNTAX HrStorageEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one logical storage area + on the host. As an example, an instance of the + hrStorageType object might be named + hrStorageType.3" + INDEX { hrStorageIndex } + ::= { hrStorageTable 1 } + + HrStorageEntry ::= SEQUENCE { + hrStorageIndex INTEGER, + hrStorageType OBJECT IDENTIFIER, + hrStorageDescr DisplayString, + hrStorageAllocationUnits INTEGER, + hrStorageSize INTEGER, + hrStorageUsed INTEGER, + hrStorageAllocationFailures Counter + } + + hrStorageIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each logical storage area + contained by the host." + ::= { hrStorageEntry 1 } + + hrStorageType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of storage represented by this entry." + ::= { hrStorageEntry 2 } + + hrStorageDescr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the type and instance of the + storage described by this entry." + ::= { hrStorageEntry 3 } + + hrStorageAllocationUnits OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size, in bytes, of the data objects allocated + from this pool. If this entry is monitoring + sectors, blocks, buffers, or packets, for example, + this number will commonly be greater than one. + Otherwise this number will typically be one." + ::= { hrStorageEntry 4 } + + hrStorageSize OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The size of the storage represented by this entry, + in units of hrStorageAllocationUnits." + ::= { hrStorageEntry 5 } + + hrStorageUsed OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of the storage represented by this + entry that is allocated, in units of + hrStorageAllocationUnits." + ::= { hrStorageEntry 6 } + + hrStorageAllocationFailures OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of requests for storage represented by + this entry that could not be honored due to not + enough storage. It should be noted that as this + object has a SYNTAX of Counter, that it does not + have a defined initial value. However, it is + recommended that this object be initialized to + zero." + ::= { hrStorageEntry 7 } + + + -- The Host Resources Device Group + -- + -- Implementation of this group is mandatory for all host systems. + -- + -- The device group is useful for identifying and diagnosing the + -- devices on a system. The hrDeviceTable contains common + -- information for any type of device. In addition, some devices + -- have device-specific tables for more detailed information. More + -- such tables may be defined in the future for other device types. + + -- Registration for some device types, for use with hrDeviceType + hrDeviceTypes OBJECT IDENTIFIER ::= { hrDevice 1 } + + hrDeviceOther OBJECT IDENTIFIER ::= { hrDeviceTypes 1 } + hrDeviceUnknown OBJECT IDENTIFIER ::= { hrDeviceTypes 2 } + hrDeviceProcessor OBJECT IDENTIFIER ::= { hrDeviceTypes 3 } + hrDeviceNetwork OBJECT IDENTIFIER ::= { hrDeviceTypes 4 } + hrDevicePrinter OBJECT IDENTIFIER ::= { hrDeviceTypes 5 } + hrDeviceDiskStorage OBJECT IDENTIFIER ::= { hrDeviceTypes 6 } + hrDeviceVideo OBJECT IDENTIFIER ::= { hrDeviceTypes 10 } + hrDeviceAudio OBJECT IDENTIFIER ::= { hrDeviceTypes 11 } + hrDeviceCoprocessor OBJECT IDENTIFIER ::= { hrDeviceTypes 12 } + hrDeviceKeyboard OBJECT IDENTIFIER ::= { hrDeviceTypes 13 } + hrDeviceModem OBJECT IDENTIFIER ::= { hrDeviceTypes 14 } + hrDeviceParallelPort OBJECT IDENTIFIER ::= { hrDeviceTypes 15 } + hrDevicePointing OBJECT IDENTIFIER ::= { hrDeviceTypes 16 } + hrDeviceSerialPort OBJECT IDENTIFIER ::= { hrDeviceTypes 17 } + hrDeviceTape OBJECT IDENTIFIER ::= { hrDeviceTypes 18 } + hrDeviceClock OBJECT IDENTIFIER ::= { hrDeviceTypes 19 } + hrDeviceVolatileMemory OBJECT IDENTIFIER ::= { hrDeviceTypes 20 } + hrDeviceNonVolatileMemory OBJECT IDENTIFIER ::= { hrDeviceTypes 21 } + + hrDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrDeviceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of devices contained by the + host." + ::= { hrDevice 2 } + + hrDeviceEntry OBJECT-TYPE + SYNTAX HrDeviceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one device contained by + the host. As an example, an instance of the + hrDeviceType object might be named hrDeviceType.3" + INDEX { hrDeviceIndex } + ::= { hrDeviceTable 1 } + + HrDeviceEntry ::= SEQUENCE { + hrDeviceIndex INTEGER, + hrDeviceType OBJECT IDENTIFIER, + hrDeviceDescr DisplayString, + hrDeviceID ProductID, + hrDeviceStatus INTEGER, + hrDeviceErrors Counter + } + + hrDeviceIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each device contained by the + host. The value for each device must remain + constant at least from one re-initialization of the + agent to the next re-initialization." + ::= { hrDeviceEntry 1 } + + hrDeviceType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of the type of device. + + If this value is `hrDeviceProcessor { hrDeviceTypes + 3 }' then an entry exists in the hrProcessorTable + which corresponds to this device. + + If this value is `hrDeviceNetwork { hrDeviceTypes 4 + }', then an entry exists in the hrNetworkTable + which corresponds to this device. + + If this value is `hrDevicePrinter { hrDeviceTypes 5 + }', then an entry exists in the hrPrinterTable + which corresponds to this device. + + If this value is `hrDeviceDiskStorage { + hrDeviceTypes 6 }', then an entry exists in the + hrDiskStorageTable which corresponds to this + device." + ::= { hrDeviceEntry 2 } + + hrDeviceDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual description of this device, including + the device's manufacturer and revision, and + optionally, its serial number." + ::= { hrDeviceEntry 3 } + + hrDeviceID OBJECT-TYPE + SYNTAX ProductID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product ID for this device." + ::= { hrDeviceEntry 4 } + + hrDeviceStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + running(2), + warning(3), + testing(4), + down(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operational state of the device + described by this row of the table. A value + unknown(1) indicates that the current state of the + device is unknown. running(2) indicates that the + device is up and running and that no unusual error + conditions are known. The warning(3) state + indicates that agent has been informed of an + unusual error condition by the operational software + (e.g., a disk device driver) but that the device is + still 'operational'. An example would be high + number of soft errors on a disk. A value of + testing(4), indicates that the device is not + available for use because it is in the testing + state. The state of down(5) is used only when the + agent has been informed that the device is not + available for any use." + ::= { hrDeviceEntry 5 } + + + hrDeviceErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of errors detected on this device. It + should be noted that as this object has a SYNTAX + of Counter, that it does not have a defined + initial value. However, it is recommended that + this object be initialized to zero." + ::= { hrDeviceEntry 6 } + + hrProcessorTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrProcessorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of processors contained by + the host. + + Note that this table is potentially sparse: a + (conceptual) entry exists only if the correspondent + value of the hrDeviceType object is + `hrDeviceProcessor'." + ::= { hrDevice 3 } + + hrProcessorEntry OBJECT-TYPE + SYNTAX HrProcessorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one processor contained + by the host. The hrDeviceIndex in the index + represents the entry in the hrDeviceTable that + corresponds to the hrProcessorEntry. + + As an example of how objects in this table are + named, an instance of the hrProcessorFrwID object + might be named hrProcessorFrwID.3" + INDEX { hrDeviceIndex } + ::= { hrProcessorTable 1 } + + HrProcessorEntry ::= SEQUENCE { + hrProcessorFrwID ProductID, + hrProcessorLoad INTEGER + } + + hrProcessorFrwID OBJECT-TYPE + SYNTAX ProductID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product ID of the firmware associated with the + processor." + ::= { hrProcessorEntry 1 } + + hrProcessorLoad OBJECT-TYPE + SYNTAX INTEGER (0..100) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The average, over the last minute, of the + percentage of time that this processor was not + idle." + ::= { hrProcessorEntry 2 } + + hrNetworkTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrNetworkEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of network devices + contained by the host. + + Note that this table is potentially sparse: a + (conceptual) entry exists only if the correspondent + value of the hrDeviceType object is + `hrDeviceNetwork'." + ::= { hrDevice 4 } + + hrNetworkEntry OBJECT-TYPE + SYNTAX HrNetworkEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one network device + contained by the host. The hrDeviceIndex in the + index represents the entry in the hrDeviceTable + that corresponds to the hrNetworkEntry. + + As an example of how objects in this table are + named, an instance of the hrNetworkIfIndex object + might be named hrNetworkIfIndex.3" + INDEX { hrDeviceIndex } + ::= { hrNetworkTable 1 } + + HrNetworkEntry ::= SEQUENCE { + hrNetworkIfIndex INTEGER + } + + hrNetworkIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of ifIndex which corresponds to this + network device." + ::= { hrNetworkEntry 1 } + + hrPrinterTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrPrinterEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of printers local to the + host. + + Note that this table is potentially sparse: a + (conceptual) entry exists only if the correspondent + value of the hrDeviceType object is + `hrDevicePrinter'." + ::= { hrDevice 5 } + + hrPrinterEntry OBJECT-TYPE + SYNTAX HrPrinterEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one printer local to the + host. The hrDeviceIndex in the index represents + the entry in the hrDeviceTable that corresponds to + the hrPrinterEntry. + + As an example of how objects in this table are + named, an instance of the hrPrinterStatus object + might be named hrPrinterStatus.3" + INDEX { hrDeviceIndex } + ::= { hrPrinterTable 1 } + + HrPrinterEntry ::= SEQUENCE { + hrPrinterStatus INTEGER, + hrPrinterDetectedErrorState OCTET STRING + } + + hrPrinterStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + idle(3), + printing(4), + warmup(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current status of this printer device. When + in the idle(1), printing(2), or warmup(3) state, + the corresponding hrDeviceStatus should be + running(2) or warning(3). When in the unknown + state, the corresponding hrDeviceStatus should be + unknown(1)." + ::= { hrPrinterEntry 1 } + + hrPrinterDetectedErrorState OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object represents any error conditions + detected by the printer. The error conditions are + encoded as bits in an octet string, with the + following definitions: + + Condition Bit # hrDeviceStatus + + lowPaper 0 warning(3) + noPaper 1 down(5) + lowToner 2 warning(3) + noToner 3 down(5) + doorOpen 4 down(5) + jammed 5 down(5) + offline 6 down(5) + serviceRequested 7 warning(3) + + If multiple conditions are currently detected and + the hrDeviceStatus would not otherwise be + unknown(1) or testing(4), the hrDeviceStatus shall + correspond to the worst state of those indicated, + where down(5) is worse than warning(3) which is + worse than running(2). + + Bits are numbered starting with the most + significant bit of the first byte being bit 0, the + least significant bit of the first byte being bit + 7, the most significant bit of the second byte + being bit 8, and so on. A one bit encodes that + the condition was detected, while a zero bit + encodes that the condition was not detected. + + This object is useful for alerting an operator to + specific warning or error conditions that may + occur, especially those requiring human + intervention." + ::= { hrPrinterEntry 2 } + + hrDiskStorageTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrDiskStorageEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of long-term storage + devices contained by the host. In particular, disk + devices accessed remotely over a network are not + included here. + + Note that this table is potentially sparse: a + (conceptual) entry exists only if the correspondent + value of the hrDeviceType object is + `hrDeviceDiskStorage'." + ::= { hrDevice 6 } + + hrDiskStorageEntry OBJECT-TYPE + SYNTAX HrDiskStorageEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one long-term storage + device contained by the host. The hrDeviceIndex in + the index represents the entry in the hrDeviceTable + that corresponds to the hrDiskStorageEntry. As an + example, an instance of the hrDiskStorageCapacity + object might be named hrDiskStorageCapacity.3" + INDEX { hrDeviceIndex } + ::= { hrDiskStorageTable 1 } + + HrDiskStorageEntry ::= SEQUENCE { + hrDiskStorageAccess INTEGER, + hrDiskStorageMedia INTEGER, + hrDiskStorageRemoveble Boolean, + hrDiskStorageCapacity KBytes + } + + hrDiskStorageAccess OBJECT-TYPE + SYNTAX INTEGER { + readWrite(1), + readOnly(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication if this long-term storage device is + readable and writable or only readable. This + should reflect the media type, any write-protect + mechanism, and any device configuration that + affects the entire device." + ::= { hrDiskStorageEntry 1 } + + hrDiskStorageMedia OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + hardDisk(3), + floppyDisk(4), + opticalDiskROM(5), + opticalDiskWORM(6), -- Write Once Read Many + opticalDiskRW(7), + ramDisk(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication of the type of media used in this + long-term storage device." + ::= { hrDiskStorageEntry 2 } + + hrDiskStorageRemoveble OBJECT-TYPE + SYNTAX Boolean + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Denotes whether or not the disk media may be + removed from the drive." + ::= { hrDiskStorageEntry 3 } + + hrDiskStorageCapacity OBJECT-TYPE + SYNTAX KBytes + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total size for this long-term storage device." + ::= { hrDiskStorageEntry 4 } + + hrPartitionTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrPartitionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of partitions for long-term + storage devices contained by the host. In + particular, partitions accessed remotely over a + network are not included here." + ::= { hrDevice 7 } + + hrPartitionEntry OBJECT-TYPE + SYNTAX HrPartitionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one partition. The + hrDeviceIndex in the index represents the entry in + the hrDeviceTable that corresponds to the + hrPartitionEntry. + + As an example of how objects in this table are + named, an instance of the hrPartitionSize object + might be named hrPartitionSize.3.1" + INDEX { hrDeviceIndex, hrPartitionIndex } + ::= { hrPartitionTable 1 } + + HrPartitionEntry ::= SEQUENCE { + hrPartitionIndex INTEGER, + hrPartitionLabel InternationalDisplayString, + hrPartitionID OCTET STRING, + hrPartitionSize KBytes, + hrPartitionFSIndex INTEGER + } + + hrPartitionIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each partition on this long- + term storage device. The value for each long-term + storage device must remain constant at least from + one re-initialization of the agent to the next re- + initialization." + ::= { hrPartitionEntry 1 } + + hrPartitionLabel OBJECT-TYPE + SYNTAX InternationalDisplayString (SIZE (0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual description of this partition." + ::= { hrPartitionEntry 2 } + + hrPartitionID OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A descriptor which uniquely represents this + partition to the responsible operating system. On + some systems, this might take on a binary + representation." + ::= { hrPartitionEntry 3 } + + hrPartitionSize OBJECT-TYPE + SYNTAX KBytes + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of this partition." + ::= { hrPartitionEntry 4 } + + hrPartitionFSIndex OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index of the file system mounted on this + partition. If no file system is mounted on this + partition, then this value shall be zero. Note + that multiple partitions may point to one file + system, denoting that that file system resides on + those partitions. Multiple file systems may not + reside on one partition." + ::= { hrPartitionEntry 5 } + + -- The File System Table + hrFSTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrFSEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of file systems local to + this host or remotely mounted from a file server. + File systems that are in only one user's + environment on a multi-user system will not be + included in this table." + ::= { hrDevice 8 } + + hrFSEntry OBJECT-TYPE + SYNTAX HrFSEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one file system local to + this host or remotely mounted from a file server. + File systems that are in only one user's + environment on a multi-user system will not be + included in this table. + + As an example of how objects in this table are + named, an instance of the hrFSMountPoint object + might be named hrFSMountPoint.3" + INDEX { hrFSIndex } + ::= { hrFSTable 1 } + + -- Registration for some popular File System types, + -- for use with hrFSType. + + hrFSTypes OBJECT IDENTIFIER ::= { hrDevice 9 } + + hrFSOther OBJECT IDENTIFIER ::= { hrFSTypes 1 } + hrFSUnknown OBJECT IDENTIFIER ::= { hrFSTypes 2 } + hrFSBerkeleyFFS OBJECT IDENTIFIER ::= { hrFSTypes 3 } + hrFSSys5FS OBJECT IDENTIFIER ::= { hrFSTypes 4 } + -- DOS + hrFSFat OBJECT IDENTIFIER ::= { hrFSTypes 5 } + -- OS/2 High Performance File System + hrFSHPFS OBJECT IDENTIFIER ::= { hrFSTypes 6 } + -- Macintosh Hierarchical File System + hrFSHFS OBJECT IDENTIFIER ::= { hrFSTypes 7 } + -- Macintosh File System + hrFSMFS OBJECT IDENTIFIER ::= { hrFSTypes 8 } + -- Windows NT + hrFSNTFS OBJECT IDENTIFIER ::= { hrFSTypes 9 } + hrFSVNode OBJECT IDENTIFIER ::= { hrFSTypes 10 } + hrFSJournaled OBJECT IDENTIFIER ::= { hrFSTypes 11 } + -- CD File systems + hrFSiso9660 OBJECT IDENTIFIER ::= { hrFSTypes 12 } + hrFSRockRidge OBJECT IDENTIFIER ::= { hrFSTypes 13 } + hrFSNFS OBJECT IDENTIFIER ::= { hrFSTypes 14 } + hrFSNetware OBJECT IDENTIFIER ::= { hrFSTypes 15 } + -- Andrew File System + hrFSAFS OBJECT IDENTIFIER ::= { hrFSTypes 16 } + -- OSF DCE Distributed File System + hrFSDFS OBJECT IDENTIFIER ::= { hrFSTypes 17 } + hrFSAppleshare OBJECT IDENTIFIER ::= { hrFSTypes 18 } + hrFSRFS OBJECT IDENTIFIER ::= { hrFSTypes 19 } + -- Data General + hrFSDGCFS OBJECT IDENTIFIER ::= { hrFSTypes 20 } + -- SVR4 Boot File System + hrFSBFS OBJECT IDENTIFIER ::= { hrFSTypes 21 } + + HrFSEntry ::= SEQUENCE { + hrFSIndex INTEGER, + hrFSMountPoint InternationalDisplayString, + hrFSRemoteMountPoint InternationalDisplayString, + hrFSType OBJECT IDENTIFIER, + hrFSAccess INTEGER, + hrFSBootable Boolean, + hrFSStorageIndex INTEGER, + hrFSLastFullBackupDate DateAndTime, + hrFSLastPartialBackupDate DateAndTime + } + + hrFSIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each file system local to this + host. The value for each file system must remain + constant at least from one re-initialization of + the agent to the next re-initialization." + ::= { hrFSEntry 1 } + + hrFSMountPoint OBJECT-TYPE + SYNTAX InternationalDisplayString (SIZE(0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The path name of the root of this file system." + ::= { hrFSEntry 2 } + + hrFSRemoteMountPoint OBJECT-TYPE + SYNTAX InternationalDisplayString (SIZE(0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the name and/or address of the + server that this file system is mounted from. + This may also include parameters such as the mount + point on the remote file system. If this is not a + remote file system, this string should have a + length of zero." + ::= { hrFSEntry 3 } + + hrFSType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the type of + this file system." + ::= { hrFSEntry 4 } + + hrFSAccess OBJECT-TYPE + SYNTAX INTEGER { + readWrite(1), + readOnly(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An indication if this file system is logically + configured by the operating system to be readable + and writable or only readable. This does not + represent any local access-control policy, except + one that is applied to the file system as a whole." + ::= { hrFSEntry 5 } + + hrFSBootable OBJECT-TYPE + SYNTAX Boolean + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A flag indicating whether this file system is + bootable." + ::= { hrFSEntry 6 } + + hrFSStorageIndex OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index of the hrStorageEntry that represents + information about this file system. If there is + no such information available, then this value + shall be zero. The relevant storage entry will be + useful in tracking the percent usage of this file + system and diagnosing errors that may occur when + it runs out of space." + ::= { hrFSEntry 7 } + + hrFSLastFullBackupDate OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The last date at which this complete file system + was copied to another storage device for backup. + This information is useful for ensuring that + backups are being performed regularly. + + If this information is not known, then this + variable shall have the value corresponding to + January 1, year 0000, 00:00:00.0, which is encoded + as (hex)'00 00 01 01 00 00 00 00'." + ::= { hrFSEntry 8 } + + hrFSLastPartialBackupDate OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The last date at which a portion of this file + system was copied to another storage device for + backup. This information is useful for ensuring + that backups are being performed regularly. + + If this information is not known, then this + variable shall have the value corresponding to + January 1, year 0000, 00:00:00.0, which is encoded + as (hex)'00 00 01 01 00 00 00 00'." + ::= { hrFSEntry 9 } + + + -- The Host Resources Running Software Group + -- + -- Implementation of this group is optional. + -- + -- The hrSWRunTable contains an entry for each distinct piece of + -- software that is running or loaded into physical or virtual + -- memory in preparation for running. This includes the host's + -- operating system, device drivers, and applications. + + hrSWOSIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the hrSWRunIndex for the + hrSWRunEntry that represents the primary operating + system running on this host. This object is + useful for quickly and uniquely identifying that + primary operating system." + ::= { hrSWRun 1 } + + hrSWRunTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrSWRunEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of software running on the + host." + ::= { hrSWRun 2 } + + hrSWRunEntry OBJECT-TYPE + SYNTAX HrSWRunEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for one piece of software + running on the host Note that because the installed + software table only contains information for + software stored locally on this host, not every + piece of running software will be found in the + installed software table. This is true of software + that was loaded and run from a non-local source, + such as a network-mounted file system. + + As an example of how objects in this table are + named, an instance of the hrSWRunName object might + be named hrSWRunName.1287" + INDEX { hrSWRunIndex } + ::= { hrSWRunTable 1 } + + HrSWRunEntry ::= SEQUENCE { + hrSWRunIndex INTEGER, + hrSWRunName InternationalDisplayString, + hrSWRunID ProductID, + hrSWRunPath InternationalDisplayString, + hrSWRunParameters InternationalDisplayString, + hrSWRunType INTEGER, + hrSWRunStatus INTEGER + } + + hrSWRunIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each piece of software running + on the host. Wherever possible, this should be the + system's native, unique identification number." + ::= { hrSWRunEntry 1 } + + hrSWRunName OBJECT-TYPE + SYNTAX InternationalDisplayString (SIZE (0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual description of this running piece of + software, including the manufacturer, revision, + and the name by which it is commonly known. If + this software was installed locally, this should be + the same string as used in the corresponding + hrSWInstalledName." + ::= { hrSWRunEntry 2 } + + hrSWRunID OBJECT-TYPE + SYNTAX ProductID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product ID of this running piece of software." + ::= { hrSWRunEntry 3 } + + hrSWRunPath OBJECT-TYPE + SYNTAX InternationalDisplayString (SIZE(0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the location on long-term storage + (e.g. a disk drive) from which this software was + loaded." + ::= { hrSWRunEntry 4 } + + hrSWRunParameters OBJECT-TYPE + SYNTAX InternationalDisplayString (SIZE(0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A description of the parameters supplied to this + software when it was initially loaded." + ::= { hrSWRunEntry 5 } + + hrSWRunType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + operatingSystem(2), + deviceDriver(3), + application(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of this software." + ::= { hrSWRunEntry 6 } + + hrSWRunStatus OBJECT-TYPE + SYNTAX INTEGER { + running(1), + runnable(2), -- waiting for resource (CPU, memory, IO) + notRunnable(3), -- loaded but waiting for event + invalid(4) -- not loaded + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The status of this running piece of software. + Setting this value to invalid(4) shall cause this + software to stop running and to be unloaded." + ::= { hrSWRunEntry 7 } + + -- The Host Resources Running Software Performance Group + -- Implementation of this group is optional. + -- + -- The hrSWRunPerfTable contains an entry corresponding to + -- each entry in the hrSWRunTable. + + + hrSWRunPerfTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrSWRunPerfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of running software + performance metrics." + ::= { hrSWRunPerf 1 } + + hrSWRunPerfEntry OBJECT-TYPE + SYNTAX HrSWRunPerfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry containing software + performance metrics. As an example, an instance + of the hrSWRunPerfCPU object might be named + hrSWRunPerfCPU.1287" + INDEX { hrSWRunIndex } -- This table augments information in + -- the hrSWRunTable. + ::= { hrSWRunPerfTable 1 } + + HrSWRunPerfEntry ::= SEQUENCE { + hrSWRunPerfCPU INTEGER, + hrSWRunPerfMem KBytes + } + + hrSWRunPerfCPU OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of centi-seconds of the total system's + CPU resources consumed by this process. Note that + on a multi-processor system, this value may + increment by more than one centi-second in one + centi-second of real (wall clock) time." + ::= { hrSWRunPerfEntry 1 } + + hrSWRunPerfMem OBJECT-TYPE + SYNTAX KBytes + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total amount of real system memory allocated + to this process." + ::= { hrSWRunPerfEntry 2 } + + + -- The Host Resources Installed Software Group + -- + -- Implementation of this group is optional. + -- + -- The hrSWInstalledTable contains an entry for each piece + -- of software installed in long-term storage (e.g. a disk + -- drive) locally on this host. Note that this does not + -- include software loadable remotely from a network + -- server. + -- + -- This table is useful for identifying and inventorying + -- software on a host and for diagnosing incompatibility + -- and version mismatch problems between various pieces + -- of hardware and software. + + hrSWInstalledLastChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when an entry in the + hrSWInstalledTable was last added, renamed, or + deleted. Because this table is likely to contain + many entries, polling of this object allows a + management station to determine when re-downloading + of the table might be useful." + ::= { hrSWInstalled 1 } + + hrSWInstalledLastUpdateTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when the hrSWInstalledTable + was last completely updated. Because caching of + this data will be a popular implementation + strategy, retrieval of this object allows a + management station to obtain a guarantee that no + data in this table is older than the indicated + time." + ::= { hrSWInstalled 2 } + + hrSWInstalledTable OBJECT-TYPE + SYNTAX SEQUENCE OF HrSWInstalledEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The (conceptual) table of software installed on + this host." + ::= { hrSWInstalled 3 } + + hrSWInstalledEntry OBJECT-TYPE + SYNTAX HrSWInstalledEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A (conceptual) entry for a piece of software + installed on this host. + + As an example of how objects in this table are + named, an instance of the hrSWInstalledName object + might be named hrSWInstalledName.96" + INDEX { hrSWInstalledIndex } + ::= { hrSWInstalledTable 1 } + + HrSWInstalledEntry ::= SEQUENCE { + hrSWInstalledIndex INTEGER, + hrSWInstalledName DisplayString, + hrSWInstalledID ProductID, + hrSWInstalledType INTEGER, + hrSWInstalledDate DateAndTime + } + + hrSWInstalledIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each piece of software + installed on the host. This value shall be in the + range from 1 to the number of pieces of software + installed on the host." + ::= { hrSWInstalledEntry 1 } + + hrSWInstalledName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A textual description of this installed piece of + software, including the manufacturer, revision, the + name by which it is commonly known, and optionally, + its serial number." + ::= { hrSWInstalledEntry 2 } + + hrSWInstalledID OBJECT-TYPE + SYNTAX ProductID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product ID of this installed piece of + software." + ::= { hrSWInstalledEntry 3 } + + hrSWInstalledType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + operatingSystem(2), + deviceDriver(3), + application(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of this software." + ::= { hrSWInstalledEntry 4 } + + hrSWInstalledDate OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The last-modification date of this application as + it would appear in a directory listing." + ::= { hrSWInstalledEntry 5 } + +END diff --git a/pandora_console/attachment/mibs/IANAifType-MIB b/pandora_console/attachment/mibs/IANAifType-MIB new file mode 100644 index 0000000000..350cedb3a9 --- /dev/null +++ b/pandora_console/attachment/mibs/IANAifType-MIB @@ -0,0 +1,119 @@ +-- Changes to rfc1573b - IANAifType-MIB +-- Extracted from RFC1573 - the combined IANAifType-MIB & IF-MIB +-- Added the following import: mib-2 from RFC1213-MIB. +-- Removed the following unneeded import: OBJECT-TYPE from +-- SNMPv2-SMI. +-- dperkins@scruznet.com + + IANAifType-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY FROM SNMPv2-SMI + mib-2 FROM RFC1213-MIB + TEXTUAL-CONVENTION FROM SNMPv2-TC; + + ianaifType MODULE-IDENTITY + LAST-UPDATED "9311082155Z" + ORGANIZATION "IANA" + CONTACT-INFO + + " Internet Assigned Numbers Authority + + Postal: USC/Information Sciences Institute + 4676 Admiralty Way, Marina del Rey, CA 90292 + + Tel: +1 310 822 1511 + E-Mail: iana@isi.edu" + DESCRIPTION + "The MIB module which defines the IANAifType textual + convention, and thus the enumerated values of the + ifType object defined in MIB-II's ifTable." + ::= { mib-2 30 } + + + IANAifType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This data type is used as the syntax of the ifType + object in the (updated) definition of MIB-II's + ifTable. + + The definition of this textual convention with the + addition of newly assigned values is published + periodically by the IANA, in either the Assigned + Numbers RFC, or some derivative of it specific to + Internet Network Management number assignments. (The + latest arrangements can be obtained by contacting the + IANA.) + + Requests for new values should be made to IANA via + email (iana@isi.edu). + + The relationship between the assignment of ifType + values and of OIDs to particular media-specific MIBs + is solely the purview of IANA and is subject to change + without notice. Quite often, a media-specific MIB's + OID-subtree assignment within MIB-II's 'transmission' + subtree will be the same as its ifType value. + However, in some circumstances this will not be the + case, and implementors must not pre-assume any + specific relationship between ifType values and + transmission subtree OIDs." + SYNTAX INTEGER { + other(1), -- none of the following + regular1822(2), + hdh1822(3), + ddnX25(4), + rfc877x25(5), + ethernetCsmacd(6), + iso88023Csmacd(7), + iso88024TokenBus(8), + iso88025TokenRing(9), + iso88026Man(10), + starLan(11), + proteon10Mbit(12), + proteon80Mbit(13), + hyperchannel(14), + fddi(15), + lapb(16), + sdlc(17), + ds1(18), -- DS1/E1 (RFC 1406) + e1(19), -- obsolete + basicISDN(20), + primaryISDN(21), + propPointToPointSerial(22), -- proprietary serial + ppp(23), + softwareLoopback(24), + eon(25), -- CLNP over IP (RFC 1070) + ethernet3Mbit(26), + nsip(27), -- XNS over IP + slip(28), -- generic SLIP + ultra(29), -- ULTRA technologies + ds3(30), -- T-3 + sip(31), -- SMDS + frameRelay(32), -- DTE only + rs232(33), + para(34), -- parallel-port + arcnet(35), -- arcnet + arcnetPlus(36), -- arcnet plus + atm(37), -- ATM cells + miox25(38), + sonet(39), -- SONET or SDH + x25ple(40), + iso88022llc(41), + localTalk(42), + smdsDxi(43), + frameRelayService(44), -- Frame relay DCE + v35(45), + hssi(46), + hippi(47), + modem(48), -- Generic modem + aal5(49), -- AAL5 over ATM + sonetPath(50), + sonetVT(51), + smdsIcip(52), -- SMDS InterCarrier Interface + propVirtual(53), -- proprietary virtual/internal + propMultiplexor(54) -- proprietary multiplexing + } + + END diff --git a/pandora_console/attachment/mibs/IANAifType-MIB.txt b/pandora_console/attachment/mibs/IANAifType-MIB.txt new file mode 100644 index 0000000000..6f4fb43321 --- /dev/null +++ b/pandora_console/attachment/mibs/IANAifType-MIB.txt @@ -0,0 +1,388 @@ +-- ***************************************************************** +-- IANAifType-MIB.my: IANA Interface Type MIB +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-1997, 1998, 1999, 2000 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- +-- The following mib was extracted from RFC 1573 +-- +-- DISCLAIMER +-- *********** +-- This is merely a copy of the IANA Interface Type MIB, put out by IANA. +-- +-- In case of differences between this file and the file available +-- at ftp://venera.isi.edu/mib/ianaiftype.mib, then the version at +-- that URL should be used instead of this file. +-- + + IANAifType-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, mib-2 FROM SNMPv2-SMI + TEXTUAL-CONVENTION FROM SNMPv2-TC; + + ianaifType MODULE-IDENTITY + LAST-UPDATED "200201040000Z" -- Jan 4, 2002 + ORGANIZATION "IANA" + CONTACT-INFO " Internet Assigned Numbers Authority + + Postal: ICANN + 4676 Admiralty Way, Suite 330 + Marina del Rey, CA 90292 + + Tel: +1 310 823 9358 + E-Mail: iana@iana.org" + + DESCRIPTION "This MIB module defines the IANAifType Textual + Convention, and thus the enumerated values of + the ifType object defined in MIB-II's ifTable." + + REVISION "200201040000Z" -- Jan 4, 2002 + DESCRIPTION "Registration of new IANAifTypes + 211, 212 and 213." + + REVISION "200112200000Z" -- Dec 20, 2001 + DESCRIPTION "Registration of new IANAifTypes + 209 and 210." + + REVISION "200111150000Z" -- Nov 15, 2001 + DESCRIPTION "Registration of new IANAifTypes + 207 and 208." + + + REVISION "200111060000Z" -- Nov 6, 2001 + DESCRIPTION "Registration of new IANAifType + 206." + + + REVISION "200111020000Z" -- Nov 2, 2001 + DESCRIPTION "Registration of new IANAifType + 205." + + + REVISION "200110160000Z" -- Oct 16, 2001 + DESCRIPTION "Registration of new IANAifTypes + 199, 200, 201, 202, 203, and 204." + + + REVISION "200109190000Z" -- Sept 19, 2001 + DESCRIPTION "Registration of new IANAifType + 198." + + REVISION "200105110000Z" -- May 11, 2001 + DESCRIPTION "Registration of new IANAifType + 197." + + + REVISION "200101120000Z" -- Jan 12, 2001 + DESCRIPTION "Registration of new IANAifTypes + 195 and 196." + + REVISION "200012190000Z" -- Dec 19, 2000 + DESCRIPTION "Registration of new IANAifTypes + 193 and 194." + + REVISION "200012070000Z" -- Dec 07, 2000 + DESCRIPTION "Registration of new IANAifTypes + 191 and 192." + + REVISION "200012040000Z" -- Dec 04, 2000 + DESCRIPTION "Registration of new IANAifType + 190." + + REVISION "200010170000Z" -- Oct 17, 2000 + DESCRIPTION "Registration of new IANAifTypes + 188 and 189." + + REVISION "200010020000Z" -- Oct 02, 2000 + DESCRIPTION "Registration of new IANAifType 187." + + REVISION "200009010000Z" -- Sept 01, 2000 + DESCRIPTION "Registration of new IANAifTypes + 184, 185, and 186." + + REVISION "200008240000Z" -- Aug 24, 2000 + DESCRIPTION "Registration of new IANAifType 183." + + REVISION "200008230000Z" -- Aug 23, 2000 + DESCRIPTION "Registration of new IANAifTypes + 174-182." + + REVISION "200008220000Z" -- Aug 22, 2000 + DESCRIPTION "Registration of new IANAifTypes 170, + 171, 172 and 173." + + REVISION "200004250000Z" -- Apr 25, 2000 + DESCRIPTION "Registration of new IANAifTypes 168 and 169." + + + REVISION "200003060000Z" -- Mar 6, 2000 + DESCRIPTION "Fixed a missing semi-colon in the IMPORT. + Also cleaned up the REVISION log a bit. + It is not complete, but from now on it will + be maintained and kept up to date with each + change to this MIB module." + + REVISION "199910081430Z" -- Oct 08, 1999 + DESCRIPTION "Include new name assignments up to cnr(85). + This is the first version available via the WWW + at: ftp://ftp.isi.edu/mib/ianaiftype.mib" + + REVISION "199401310000Z" -- Jan 31, 1994 + DESCRIPTION "Initial version of this MIB as published in + RFC 1573." + + ::= { mib-2 30 } + + + IANAifType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "This data type is used as the syntax of the ifType + object in the (updated) definition of MIB-II's + ifTable. + + The definition of this textual convention with the + addition of newly assigned values is published + periodically by the IANA, in either the Assigned + Numbers RFC, or some derivative of it specific to + Internet Network Management number assignments. (The + latest arrangements can be obtained by contacting the + IANA.) + + Requests for new values should be made to IANA via + email (iana@iana.org). + + The relationship between the assignment of ifType + values and of OIDs to particular media-specific MIBs + is solely the purview of IANA and is subject to change + without notice. Quite often, a media-specific MIB's + OID-subtree assignment within MIB-II's 'transmission' + subtree will be the same as its ifType value. + However, in some circumstances this will not be the + case, and implementors must not pre-assume any + specific relationship between ifType values and + transmission subtree OIDs." + SYNTAX INTEGER { + other(1), -- none of the following + regular1822(2), + hdh1822(3), + ddnX25(4), + rfc877x25(5), + ethernetCsmacd(6), + iso88023Csmacd(7), + iso88024TokenBus(8), + iso88025TokenRing(9), + iso88026Man(10), + starLan(11), + proteon10Mbit(12), + proteon80Mbit(13), + hyperchannel(14), + fddi(15), + lapb(16), + sdlc(17), + ds1(18), -- DS1-MIB + e1(19), -- Obsolete see DS1-MIB + basicISDN(20), + primaryISDN(21), + propPointToPointSerial(22), -- proprietary serial + ppp(23), + softwareLoopback(24), + eon(25), -- CLNP over IP + ethernet3Mbit(26), + nsip(27), -- XNS over IP + slip(28), -- generic SLIP + ultra(29), -- ULTRA technologies + ds3(30), -- DS3-MIB + sip(31), -- SMDS, coffee + frameRelay(32), -- DTE only. + rs232(33), + para(34), -- parallel-port + arcnet(35), -- arcnet + arcnetPlus(36), -- arcnet plus + atm(37), -- ATM cells + miox25(38), + sonet(39), -- SONET or SDH + x25ple(40), + iso88022llc(41), + localTalk(42), + smdsDxi(43), + frameRelayService(44), -- FRNETSERV-MIB + v35(45), + hssi(46), + hippi(47), + modem(48), -- Generic modem + aal5(49), -- AAL5 over ATM + sonetPath(50), + sonetVT(51), + smdsIcip(52), -- SMDS InterCarrier Interface + propVirtual(53), -- proprietary virtual/internal + propMultiplexor(54),-- proprietary multiplexing + ieee80212(55), -- 100BaseVG + fibreChannel(56), -- Fibre Channel + hippiInterface(57), -- HIPPI interfaces + frameRelayInterconnect(58), -- Obsolete use either + -- frameRelay(32) or + -- frameRelayService(44). + aflane8023(59), -- ATM Emulated LAN for 802.3 + aflane8025(60), -- ATM Emulated LAN for 802.5 + cctEmul(61), -- ATM Emulated circuit + fastEther(62), -- Fast Ethernet (100BaseT) + isdn(63), -- ISDN and X.25 + v11(64), -- CCITT V.11/X.21 + v36(65), -- CCITT V.36 + g703at64k(66), -- CCITT G703 at 64Kbps + g703at2mb(67), -- Obsolete see DS1-MIB + qllc(68), -- SNA QLLC + fastEtherFX(69), -- Fast Ethernet (100BaseFX) + channel(70), -- channel + ieee80211(71), -- radio spread spectrum + ibm370parChan(72), -- IBM System 360/370 OEMI Channel + escon(73), -- IBM Enterprise Systems Connection + dlsw(74), -- Data Link Switching + isdns(75), -- ISDN S/T interface + isdnu(76), -- ISDN U interface + lapd(77), -- Link Access Protocol D + ipSwitch(78), -- IP Switching Objects + rsrb(79), -- Remote Source Route Bridging + atmLogical(80), -- ATM Logical Port + ds0(81), -- Digital Signal Level 0 + ds0Bundle(82), -- group of ds0s on the same ds1 + bsc(83), -- Bisynchronous Protocol + async(84), -- Asynchronous Protocol + cnr(85), -- Combat Net Radio + iso88025Dtr(86), -- ISO 802.5r DTR + eplrs(87), -- Ext Pos Loc Report Sys + arap(88), -- Appletalk Remote Access Protocol + propCnls(89), -- Proprietary Connectionless Protocol + hostPad(90), -- CCITT-ITU X.29 PAD Protocol + termPad(91), -- CCITT-ITU X.3 PAD Facility + frameRelayMPI(92), -- Multiproto Interconnect over FR + x213(93), -- CCITT-ITU X213 + adsl(94), -- Asymmetric Digital Subscriber Loop + radsl(95), -- Rate-Adapt. Digital Subscriber Loop + sdsl(96), -- Symmetric Digital Subscriber Loop + vdsl(97), -- Very H-Speed Digital Subscrib. Loop + iso88025CRFPInt(98), -- ISO 802.5 CRFP + myrinet(99), -- Myricom Myrinet + voiceEM(100), -- voice recEive and transMit + voiceFXO(101), -- voice Foreign Exchange Office + voiceFXS(102), -- voice Foreign Exchange Station + voiceEncap(103), -- voice encapsulation + voiceOverIp(104), -- voice over IP encapsulation + atmDxi(105), -- ATM DXI + atmFuni(106), -- ATM FUNI + atmIma (107), -- ATM IMA + pppMultilinkBundle(108), -- PPP Multilink Bundle + ipOverCdlc (109), -- IBM ipOverCdlc + ipOverClaw (110), -- IBM Common Link Access to Workstn + stackToStack (111), -- IBM stackToStack + virtualIpAddress (112), -- IBM VIPA + mpc (113), -- IBM multi-protocol channel support + ipOverAtm (114), -- IBM ipOverAtm + iso88025Fiber (115), -- ISO 802.5j Fiber Token Ring + tdlc (116), -- IBM twinaxial data link control + gigabitEthernet (117), -- Gigabit Ethernet + hdlc (118), -- HDLC + lapf (119), -- LAP F + v37 (120), -- V.37 + x25mlp (121), -- Multi-Link Protocol + x25huntGroup (122), -- X25 Hunt Group + trasnpHdlc (123), -- Transp HDLC + interleave (124), -- Interleave channel + fast (125), -- Fast channel + ip (126), -- IP (for APPN HPR in IP networks) + docsCableMaclayer (127), -- CATV Mac Layer + docsCableDownstream (128), -- CATV Downstream interface + docsCableUpstream (129), -- CATV Upstream interface + a12MppSwitch (130), -- Avalon Parallel Processor + tunnel (131), -- Encapsulation interface + coffee (132), -- coffee pot + ces (133), -- Circuit Emulation Service + atmSubInterface (134), -- ATM Sub Interface + l2vlan (135), -- Layer 2 Virtual LAN using 802.1Q + l3ipvlan (136), -- Layer 3 Virtual LAN using IP + l3ipxvlan (137), -- Layer 3 Virtual LAN using IPX + digitalPowerline (138), -- IP over Power Lines + mediaMailOverIp (139), -- Multimedia Mail over IP + dtm (140), -- Dynamic syncronous Transfer Mode + dcn (141), -- Data Communications Network + ipForward (142), -- IP Forwarding Interface + msdsl (143), -- Multi-rate Symmetric DSL + ieee1394 (144), -- IEEE1394 High Performance Serial Bus + if-gsn (145), -- HIPPI-6400 + dvbRccMacLayer (146), -- DVB-RCC MAC Layer + dvbRccDownstream (147), -- DVB-RCC Downstream Channel + dvbRccUpstream (148), -- DVB-RCC Upstream Channel + atmVirtual (149), -- ATM Virtual Interface + mplsTunnel (150), -- MPLS Tunnel Virtual Interface + srp (151), -- Spatial Reuse Protocol + voiceOverAtm (152), -- Voice Over ATM + voiceOverFrameRelay (153), -- Voice Over Frame Relay + idsl (154), -- Digital Subscriber Loop over ISDN + compositeLink (155), -- Avici Composite Link Interface + ss7SigLink (156), -- SS7 Signaling Link + propWirelessP2P (157), -- Prop. P2P wireless interface + frForward (158), -- Frame Forward Interface + rfc1483 (159), -- Multiprotocol over ATM AAL5 + usb (160), -- USB Interface + ieee8023adLag (161), -- IEEE 802.3ad Link Aggregate + bgppolicyaccounting (162), -- BGP Policy Accounting + frf16MfrBundle (163), -- FRF .16 Multilink Frame Relay + h323Gatekeeper (164), -- H323 Gatekeeper + h323Proxy (165), -- H323 Voice and Video Proxy + mpls (166), -- MPLS + mfSigLink (167), -- Multi-frequency signaling link + hdsl2 (168), -- High Bit-Rate DSL - 2nd generation + shdsl (169), -- Multirate HDSL2 + ds1FDL (170), -- Facility Data Link 4Kbps on a DS1 + pos (171), -- Packet over SONET/SDH Interface + dvbAsiIn (172), -- DVB-ASI Input + dvbAsiOut (173), -- DVB-ASI Output + plc (174), -- Power Line Communtications + nfas (175), -- Non Facility Associated Signaling + tr008 (176), -- TR008 + gr303RDT (177), -- Remote Digital Terminal + gr303IDT (178), -- Integrated Digital Terminal + isup (179), -- ISUP + propDocsWirelessMaclayer (180), -- prop/Maclayer + propDocsWirelessDownstream (181), -- prop/Downstream + propDocsWirelessUpstream (182), -- prop/Upstream + hiperlan2 (183), -- HIPERLAN Type 2 Radio Interface + propBWAp2Mp (184), -- PropBroadbandWirelessAccesspt2multipt + sonetOverheadChannel (185), -- SONET Overhead Channel + digitalWrapperOverheadChannel (186), -- Digital Wrapper + aal2 (187), -- ATM adaptation layer 2 + radioMAC (188), -- MAC layer over radio links + atmRadio (189), -- ATM over radio links + imt (190), -- Inter Machine Trunks + mvl (191), -- Multiple Virtual Lines DSL + reachDSL (192), -- Long Rach DSL + frDlciEndPt (193), -- Frame Relay DLCI End Point + atmVciEndPt (194), -- ATM VCI End Point + opticalChannel (195), -- Optical Channel + opticalTransport (196), -- Optical Transport + propAtm (197), -- Proprietary ATM + voiceOverCable (198), -- Voice Over Cable Interface + infiniband (199), -- Infiniband + teLink (200), -- TE Link + q2931 (201), -- Q.2931 + virtualTg (202), -- Virtual Trunk Group + sipTg (203), -- SIP Trunk Group + sipSig (204), -- SIP Signaling + docsCableUpstreamChannel (205), -- CATV Upstream Channel + econet (206), -- Acorn Econet + pon155 (207), -- FSAN 155Mb Symetrical PON interface + pon622 (208), -- FSAN622Mb Symetrical PON interface + bridge (209), -- Transparent bridge interface + linegroup (210), -- Interface common to multiple lines + voiceEMFGD (211), -- voice E&M Feature Group D + voiceFGDEANA (212), -- voice FGD Exchange Access North American + voiceDID (213) -- voice Direct Inward Dialing +} + + END diff --git a/pandora_console/attachment/mibs/IDRAC-MIB-SMIv2 b/pandora_console/attachment/mibs/IDRAC-MIB-SMIv2 new file mode 100644 index 0000000000..78d54af5e5 --- /dev/null +++ b/pandora_console/attachment/mibs/IDRAC-MIB-SMIv2 @@ -0,0 +1,13303 @@ +------------------------------------------------------------------------------ +-- +-- Title: iDRAC MIB +-- +-- Version: 3.2 +-- Date: 19 January 2015 +-- +-- Description: This MIB defines MIB objects that make iDRAC data available +-- to SNMP management applications. +-- +-- Note that the iDRAC MIB file is published in both types of SMI (Structure +-- of Managed Information) notations: SMIv1 and SMIv2. This copy of the iDRAC +-- MIB file is the SMIv2 version of the MIB file. +-- +-- Copyright (c) 2012-2015 Dell Inc. +-- All Rights Reserved. +-- +-- Note: The information and functionality described by this MIB file, +-- like many MIB files, is subject to change without notice. +-- Please examine the version number of this MIB and compare it +-- to the version number you are expecting. +-- +-- OID Format Legend: +-- = attribute ID +-- = index ID +-- = trap ID +-- +------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------ +-- Begin MIB +------------------------------------------------------------------------------ + +IDRAC-MIB-SMIv2 DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, enterprises + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, DisplayString + FROM SNMPv2-TC; + +outOfBandGroup MODULE-IDENTITY + LAST-UPDATED "201501190000Z" -- 19 January 2015 + ORGANIZATION "Dell Inc." + CONTACT-INFO + "Visit the Dell Support website at: support.dell.com" + DESCRIPTION + "This MIB defines MIB objects that make out-of-band iDRAC data + available to SNMP management applications. It also defines the traps + that iDRAC supports." + -- Revision history, in reverse chronological order. + + REVISION "201501190000Z" -- 19 January 2015 + DESCRIPTION + "Version: 3.2 + * Renamed powerSupplyInputVoltage to powerSupplyMaximumInputVoltage + and updated description. + * Added powerSupplyCurrentInputVoltage. + * Updated memoryDeviceSpeed description. + * Added memoryDeviceCurrentOperatingSpeed. + * Removed hyphens from enumeration value names. + * Added alertRacFQDN variable to all traps. + * Added the following traps: + alertCableFailure + alertCMCWarning + alertCMCFailure + alertIOVirtualizationFailure + alertLinkStatusInformation + alertLinkStatusWarning + alertLinkStatusFailure + alertSecurityWarning + alertSoftwareConfigurationInformation + alertSoftwareConfigurationWarning + alertSoftwareConfigurationFailure + alertStorageSecurityInformation + alertStorageSecurityWarning + alertStorageSecurityFailure + alertSoftwareChangeUpdateWarning + alertCMCAuditInformation + alertCMCAuditWarning + alertCMCAuditFailure + alertPCIDeviceAuditWarning + alertPowerSupplyAuditWarning + alertPowerSupplyAuditFailure + alertPowerUsageAuditInformation + alertPowerUsageAuditWarning + alertPowerUsageAuditFailure + alertIPAddressConfigurationInformation + alertJobControlConfigurationInformation + alertPCIDeviceConfigurationInformation + alertSecurityConfigurationWarning + alertSWCConfigurationWarning + alertSWCConfigurationFailure + " + + REVISION "201410030000Z" -- 03 October 2014 + DESCRIPTION + "Version: 3.1 + * Added deviceTypeIsDDR4 to MemoryDeviceTypeEnum." + + REVISION "201407070000Z" -- 07 July 2014 + DESCRIPTION + "Version: 3.0 + * Updated physicalDiskPowerState. + * Updated RacTypeEnum for iDRAC8. + * Added alertRACInformation trap. + * Added alertSystemPerformanceWarning trap. + * Added alertUserTrackingWarning trap. + * Added physicalDiskProtocolVersion. + * Added physicalDiskPCIeNegotiatedLinkWidth. + * Added physicalDiskPCIeCapableLinkWidth. + * Added enclosureType." + + REVISION "201308220000Z" -- 22 Aug 2013 + DESCRIPTION + "Version: 2.1 + * Added systemPowerUpTime attribute. + * Added values to SystemFormFactorEnum. + * Added values to BladeGeometryEnum. + * Added chassisNameModular attribute. + * Added chassisModelModular attribute. + * Added systemNodeID attribute. + * Added alertChassisName variable to all traps. + * Added controllerT10PICapability attribute. + * Added controllerRAID10UnevenSpansSupported attribute. + * Added controllerEnhancedAutoImportForeignConfigMode attribute. + * Added controllerBootModeSupported attribute. + * Added controllerBootMode attribute. + * Added physicalDiskRemainingRatedWriteEndurance attribute. + * Added physicalDiskT10PICapability attribute. + * Added physicalDiskBlockSizeInBytes attribute. + * Added virtualDiskT10PIStatus attribute. + * Added virtualDiskBlockSizeInBytes attribute. + * Attribute batteryPredictedCapacity is obsolete. + * Added alertUpdateJobInformation trap. + * Added alertAutoDiscoveryInformation trap. + * Added alertNetworkConfigurationInformation trap. + * Added alertNetworkConfigurationWarning trap. + * Added alertNetworkConfigurationFailure trap." + + REVISION "201210300000Z" -- 30 Oct 2012 + DESCRIPTION + "Version: 2.0 + * Initial SMIv2 version of the iDRAC MIB." + ::= { enterprises dell(674) server3(10892) 5 } + + +------------------------------------------------------------------------------ +-- Object Identifiers +------------------------------------------------------------------------------ + +-- Server3 Out-of-Band Groups +-- +-- The informationGroup provides information to discover the system (RAC, +-- modular enclosure/chassis, and server) and its associated properties. +-- +informationGroup OBJECT IDENTIFIER ::= { outOfBandGroup 1 } +racInfoGroup OBJECT IDENTIFIER ::= { informationGroup 1 } +chassisInfoGroup OBJECT IDENTIFIER ::= { informationGroup 2 } +systemInfoGroup OBJECT IDENTIFIER ::= { informationGroup 3 } +statusGroup OBJECT IDENTIFIER ::= { outOfBandGroup 2 } +alertGroup OBJECT IDENTIFIER ::= { outOfBandGroup 3 } +alertVariablesGroup OBJECT IDENTIFIER ::= { alertGroup 1 } +alertTrapGroup OBJECT IDENTIFIER ::= { alertGroup 2 } +systemAlertTrapGroup OBJECT IDENTIFIER ::= { alertTrapGroup 1 } +storageAlertTrapGroup OBJECT IDENTIFIER ::= { alertTrapGroup 2 } +updatesAlertTrapGroup OBJECT IDENTIFIER ::= { alertTrapGroup 3 } +auditAlertTrapGroup OBJECT IDENTIFIER ::= { alertTrapGroup 4 } +configurationAlertTrapGroup OBJECT IDENTIFIER ::= { alertTrapGroup 5 } + +-- System details start +systemDetailsGroup OBJECT IDENTIFIER ::= { outOfBandGroup 4 } +mIBVersionGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 1 } +systemStateGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 200 } +chassisInformationGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 300 } +powerGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 600 } +thermalGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 700 } +deviceGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 1100 } +slotGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 1200 } +fruGroup OBJECT IDENTIFIER ::= { systemDetailsGroup 2000 } +-- System details end + +-- Storage details start +storageDetailsGroup OBJECT IDENTIFIER ::= { outOfBandGroup 5 } +software OBJECT IDENTIFIER ::= { storageDetailsGroup 1 } +storageManagement OBJECT IDENTIFIER ::= { software 20 } +physicalDevices OBJECT IDENTIFIER ::= { storageManagement 130 } +logicalDevices OBJECT IDENTIFIER ::= { storageManagement 140 } +-- Storage details end + + +------------------------------------------------------------------------------ +-- Textual Conventions +------------------------------------------------------------------------------ + +StringType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "General string type." + SYNTAX OCTET STRING (SIZE (0..1023)) + +String64 ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "General string type for 64 byte strings." + SYNTAX OCTET STRING (SIZE (0..64)) + +FQDDString ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "String type for FQDD strings." + SYNTAX OCTET STRING (SIZE (0..512)) + +MACAddress ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "String type for MAC Address strings." + SYNTAX OCTET STRING (SIZE (6)) + +ObjectRange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Integer with a range of (1..128)." + SYNTAX INTEGER (1..128) + +Unsigned8BitRange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Integer with a range of (0..255)." + SYNTAX INTEGER (0..255) + +Unsigned16BitRange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Integer with a range of (0..65535)." + SYNTAX INTEGER (0..65535) + +Unsigned32BitRange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Integer with a range of (0..2147483647)." + SYNTAX INTEGER (0..2147483647) + +Signed32BitRange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Integer with a range of (-2147483647..2147483647)." + SYNTAX INTEGER (-2147483647..2147483647) + +BooleanType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Integer with a range of (0..1). + Where 0 = FALSE, 1 = TRUE" + SYNTAX INTEGER (0..1) + +-- DateName dates are defined in the displayable format +-- yyyymmddHHMMSS.uuuuuu+ooo +-- where yyyy is the year, mm is the month number, dd is the day of the month, +-- HHMMSS are the hours, minutes and seconds, respectively, uuuuuu is the +-- number of microseconds, and +ooo is the offset from UTC in minutes. If east +-- of UTC, the number is preceded by a plus (+) sign, and if west of UTC, the +-- number is preceded by a minus (-) sign. +-- +-- For example, Wednesday, May 25, 1994, at 1:30:15 PM EDT +-- would be represented as: 19940525133015.000000-300 +-- +-- Values must be zero-padded if necessary, like "05" in the example above. +-- If a value is not supplied for a field, each character in the field +-- must be replaced with asterisk ('*') characters. +DateName ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "String type for date strings of a given DateName format." + SYNTAX OCTET STRING (SIZE (25)) + +-- Note About Bit Fields: +-- Attributes with definitions of xxxCapabilities, xxxCapabilitiesUnique, +-- xxxSettings, xxxSettingsUnique and xxxFeatureFlags are integers +-- representing a series of bit definitions. They are NOT enumerations and +-- should be treated as bit fields. The value is passed as a decimal value; +-- it should be converted to hex, and the appropriate bits should be parsed +-- from that. Some of the more common bit combinations are defined in some +-- variables, but not all combinations are or will be defined. + +-- +-- Generic State Capabilities +-- +StateCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "State Capabilities flags." + SYNTAX INTEGER { + -- If set to 0 (zero), object has no state capabilities + unknownCapabilities(1), -- object's state capabilities are unknown + -- The object's state capabilities allow it to be set to: + enableCapable(2), -- be disabled (offline) or be enabled (online) + notReadyCapable(4), -- not ready + enableAndNotReadyCapable(6) + +} + +-- +-- Generic State Settings +-- +StateSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "State Settings flags." + SYNTAX INTEGER { + -- If set to 0 (zero), object has no state settings enabled and is disabled + unknown(1), -- object's state is unknown + enabled(2), -- object's state is disabled (offline) if bit is off + -- or enabled (online) if bit is on + notReady(4), -- object's state is not ready + enabledAndNotReady(6) +} + +-- +-- Probe Capabilities +-- +ProbeCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Probe Capabilities flags." + SYNTAX INTEGER { + -- If set to 0 (zero) the object has no probe capabilities + -- The object's probe capabilities allow it to be set to: + upperNonCriticalThresholdSetCapable(1), -- upper noncritical threshold can be set + lowerNonCriticalThresholdSetCapable(2), -- lower noncritical threshold can be set + upperNonCriticalThresholdDefaultCapable(4), -- upper noncritical threshold can be set to default + lowerNonCriticalThresholdDefaultCapable(8) -- lower noncritical threshold can be set to default +} + +-- +-- Probe Status +-- +StatusProbeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Probe Status enum." + SYNTAX INTEGER { + other(1), -- probe status is not one of the following: + unknown(2), -- probe status is unknown (not known or monitored) + ok(3), -- probe is reporting a value within the thresholds + nonCriticalUpper(4), -- probe has crossed upper noncritical threshold + criticalUpper(5), -- probe has crossed upper critical threshold + nonRecoverableUpper(6), -- probe has crossed upper non-recoverable threshold + nonCriticalLower(7), -- probe has crossed lower noncritical threshold + criticalLower(8), -- probe has crossed lower critical threshold + nonRecoverableLower(9), -- probe has crossed lower non-recoverable threshold + failed(10) -- probe is not functional +} + +-- +-- Redundancy Status +-- +StatusRedundancyEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Redundancy Status enum." + SYNTAX INTEGER { + other(1), -- redundancy status is not one of the following: + unknown(2), -- redundancy status is unknown (not known or monitored) + full(3), -- object is fully redundant + degraded(4), -- object's redundancy has been degraded + lost(5), -- object's redundancy has been lost + notRedundant(6), -- redundancy status does not apply or object is not redundant + redundancyOffline(7) -- redundancy object taken offline +} + +-- +-- Status +-- +ObjectStatusEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Status of an object." + SYNTAX INTEGER { + other(1), -- the status of the object is not one of the + -- following: + unknown(2), -- the status of the object is unknown + -- (not known or monitored) + ok(3), -- the status of the object is ok + nonCritical(4), -- the status of the object is warning, non-critical + critical(5), -- the status of the object is critical (failure) + nonRecoverable(6) -- the status of the object is non-recoverable (dead) +} + +RacTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "RAC Type enum." + SYNTAX INTEGER { + other(1), -- the RAC type is not one of the following + unknown(2), -- the RAC type is unknown + idrac7monolithic(16), -- iDRAC7 Monolithic + idrac7modular(17), -- iDRAC7 Modular + idrac8monolithic(32), -- iDRAC8 Monolithic + idrac8modular(33) -- iDRAC8 Modular +} + +SystemFormFactorEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Form Factor enum." + SYNTAX INTEGER { + other(1), -- the form factor is not one of the following: + unknown(2), -- the form factor is unknown + u1(3), -- 1U Monolithic + u2(4), -- 2U Monolithic + u4(5), -- 4U Monolithic + u7(6), -- 7U Monolithic + singleWidthHalfHeight(7), -- Single width, half height Modular + dualWidthHalfHeight(8), -- Dual width, half height Modular + singleWidthFullHeight(9), -- Single width, full height Modular + dualWidthFullHeight(10), -- Dual width, full height Modular + singleWidthQuarterHeight(11), -- Single width, quarter height Modular + u5(12), -- 5U Monolithic + u1HalfWidth(13), -- 1U, half width Modular + u1QuarterWidth(14), -- 1U, quarter width Modular + u1FullWidth(15) -- 1U, full width Modular +} + +BladeGeometryEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Blade Geometry enum." + SYNTAX INTEGER { + other(1), -- the modular geometry is not one of the following: + unknown(2), -- the modular geometry is unknown + singleWidthHalfHeight(3), -- Single width, half height Modular + dualWidthHalfHeight(4), -- Dual width, half height Modular + singleWidthFullHeight(5), -- Single width, full height Modular + dualWidthFullHeight(6), -- Dual width, full height Modular + singleWidthQuarterHeight(7), -- Single width, quarter height Modular + u1HalfWidth(8), -- 1U, half width Modular + u1QuarterWidth(9), -- 1U, quarter width Modular + u1FullWidth(10) -- 1U, full width Modular +} + +PowerStateStatusEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power State Status enum." + SYNTAX INTEGER { + other(1), -- the power state status is not one of the following: + unknown(2), -- the power state status is unknown + off(3), -- system power is off + on(4) -- system power is on +} + + +------------------------------------------------------------------------------ +-- +-- MIB Groups +-- +------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------ +-- RAC Information Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.1.1..0 +------------------------------------------------------------------------------ + +racName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the product name of a remote access card." + ::= { racInfoGroup 1 } + +racShortName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the short product name of a remote access + card." + ::= { racInfoGroup 2 } + +racDescription OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the product description of a remote access + card." + ::= { racInfoGroup 3 } + +racManufacturer OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the product manufacturer of a remote access + card." + ::= { racInfoGroup 4 } + +racVersion OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the product version of a remote access card." + ::= { racInfoGroup 5 } + +racURL OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the out-of-band UI URL of a remote access + card." + ::= { racInfoGroup 6 } + +racType OBJECT-TYPE + SYNTAX RacTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the type of a remote access card." + ::= { racInfoGroup 7 } + +racFirmwareVersion OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the firmware version of a remote access card." + ::= { racInfoGroup 8 } + +------------------------------------------------------------------------------ +-- Chassis Information Group +-- (for modular chassis) +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.1.2..0 +------------------------------------------------------------------------------ + +chassisServiceTag OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the service tag of the modular chassis. + The value is zero length if not a modular system." + ::= { chassisInfoGroup 1 } + +chassisNameModular OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the chassis name of the modular chassis. + The value is zero length if not a modular system." + ::= { chassisInfoGroup 2 } + +chassisModelModular OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the model of the modular chassis. + The value is zero length if not a modular system." + ::= { chassisInfoGroup 3 } + +------------------------------------------------------------------------------ +-- System Information Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.1.3..0 +------------------------------------------------------------------------------ + +systemFQDN OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the fully qualified domain name of the system. + For example, hostname.domainname." + ::= { systemInfoGroup 1 } + +systemServiceTag OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the service tag of the system." + ::= { systemInfoGroup 2 } + +systemExpressServiceCode OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the express service code of the system." + ::= { systemInfoGroup 3 } + +systemAssetTag OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the asset tag of the system." + ::= { systemInfoGroup 4 } + +systemBladeSlotNumber OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the slot number of the system in the modular + chassis." + ::= { systemInfoGroup 5 } + +systemOSName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the name of the operating system that the host + is running." + ::= { systemInfoGroup 6 } + +systemFormFactor OBJECT-TYPE + SYNTAX SystemFormFactorEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the form factor of the system." + ::= { systemInfoGroup 7 } + +systemDataCenterName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the Data Center locator of the system." + ::= { systemInfoGroup 8 } + +systemAisleName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the Aisle locator of the system." + ::= { systemInfoGroup 9 } + +systemRackName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the Rack locator of the system." + ::= { systemInfoGroup 10 } + +systemRackSlot OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the Rack Slot locator of the system." + ::= { systemInfoGroup 11 } + +systemModelName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the model name of the system." + ::= { systemInfoGroup 12 } + +systemSystemID OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the system ID of the system." + ::= { systemInfoGroup 13 } + +systemOSVersion OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the version of the operating system that the + host is running." + ::= { systemInfoGroup 14 } + +systemRoomName OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the Room locator of the system." + ::= { systemInfoGroup 15 } + +systemChassisSystemHeight OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the height of the system, in 'U's. + A U is a standard unit of measure for the height of a rack or + rack-mountable component. + (If not applicable, a 'no such name' error is returned.)" + ::= { systemInfoGroup 16 } + +systemBladeGeometry OBJECT-TYPE + SYNTAX BladeGeometryEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the geometry for a modular system. + (If not applicable, a 'no such name' error is returned.)" + ::= { systemInfoGroup 17 } + +systemNodeID OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the node ID of the system. The node ID + provides a unique identifier for the system." + ::= { systemInfoGroup 18 } + + +------------------------------------------------------------------------------ +-- Status Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.2..0 +------------------------------------------------------------------------------ + +globalSystemStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the overall rollup status of all + components in the system being monitored by the remote + access card. Includes system, storage, IO devices, iDRAC, + CPU, memory, etc." + ::= { statusGroup 1 } + +systemLCDStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the system status as it is reflected by + the LCD front panel. Not all system components may be included." + ::= { statusGroup 2 } + +globalStorageStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the overall storage status being + monitored by the remote access card." + ::= { statusGroup 3 } + +systemPowerState OBJECT-TYPE + SYNTAX PowerStateStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the power state of the system." + ::= { statusGroup 4 } + +systemPowerUpTime OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute defines the power-up time of the system in seconds." + ::= { statusGroup 5 } + + +------------------------------------------------------------------------------ +-- Alert Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3 +------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------ +-- Alert Variables Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3.1..0 +------------------------------------------------------------------------------ + +alertMessageID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Message ID of the event." + ::= { alertVariablesGroup 1 } + +alertMessage OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Message describing the alert." + ::= { alertVariablesGroup 2 } + +alertCurrentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current status of object causing the alert, if applicable." + ::= { alertVariablesGroup 3 } + +alertSystemServiceTag OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Service tag of the system." + ::= { alertVariablesGroup 4 } + +alertSystemFQDN OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fully qualified domain name of the system." + ::= { alertVariablesGroup 5 } + +alertFQDD OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..512)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fully qualified device descriptor of the device." + ::= { alertVariablesGroup 6 } + +alertDeviceDisplayName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..512)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Display name of the device/FQDD." + ::= { alertVariablesGroup 7 } + +alertMessageArguments OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Concatenated set of strings representing the message arguments of the + event. Each message argument string is enclosed in double quotes, + and there is a comma after the ending double quote of each message + argument string, except the last one. Any double quotes found within + a message argument string are preprocessed and changed to single + quotes." + ::= { alertVariablesGroup 8 } + +alertChassisServiceTag OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For modular systems, the service tag of the enclosing chassis. + For rack and tower systems, this varbind will be empty (zero + length)." + ::= { alertVariablesGroup 9 } + +alertChassisName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For modular systems, the chassis name of the enclosing chassis. + For rack and tower systems, this varbind will be empty (zero + length)." + ::= { alertVariablesGroup 10 } + +alertRacFQDN OBJECT-TYPE + SYNTAX StringType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fully qualified domain name of the remote access card." + ::= { alertVariablesGroup 11 } + + +------------------------------------------------------------------------------- +-- System Details Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- MIB Version Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1..0 +------------------------------------------------------------------------------- + +mIBMajorVersionNumber OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0001.0001 This attribute defines the major version number for the + version of this MIB supported by the iDRAC." + ::= { mIBVersionGroup 1 } + +mIBMinorVersionNumber OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0001.0002 This attribute defines the minor version number for the + version of this MIB supported by the iDRAC." + ::= { mIBVersionGroup 2 } + +mIBMaintenanceVersionNumber OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0001.0003 This attribute defines the maintenance version number for + the version of this MIB supported by the iDRAC." + ::= { mIBVersionGroup 3 } + + +------------------------------------------------------------------------------- +-- System State Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.200 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- System State Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.200.10.1.. +------------------------------------------------------------------------------- + +SystemStateTableEntry ::= SEQUENCE { + systemStatechassisIndex ObjectRange, + systemStateGlobalSystemStatus ObjectStatusEnum, + systemStateChassisState StateSettingsFlags, + systemStateChassisStatus ObjectStatusEnum, + systemStatePowerUnitStateDetails OCTET STRING, + systemStatePowerUnitStatusRedundancy StatusRedundancyEnum, + systemStatePowerUnitStatusDetails OCTET STRING, + systemStatePowerSupplyStateDetails OCTET STRING, + systemStatePowerSupplyStatusCombined ObjectStatusEnum, + systemStatePowerSupplyStatusDetails OCTET STRING, + systemStateVoltageStateDetails OCTET STRING, + systemStateVoltageStatusCombined ObjectStatusEnum, + systemStateVoltageStatusDetails OCTET STRING, + systemStateAmperageStateDetails OCTET STRING, + systemStateAmperageStatusCombined ObjectStatusEnum, + systemStateAmperageStatusDetails OCTET STRING, + systemStateCoolingUnitStateDetails OCTET STRING, + systemStateCoolingUnitStatusRedundancy StatusRedundancyEnum, + systemStateCoolingUnitStatusDetails OCTET STRING, + systemStateCoolingDeviceStateDetails OCTET STRING, + systemStateCoolingDeviceStatusCombined ObjectStatusEnum, + systemStateCoolingDeviceStatusDetails OCTET STRING, + systemStateTemperatureStateDetails OCTET STRING, + systemStateTemperatureStatusCombined ObjectStatusEnum, + systemStateTemperatureStatusDetails OCTET STRING, + systemStateMemoryDeviceStateDetails OCTET STRING, + systemStateMemoryDeviceStatusCombined ObjectStatusEnum, + systemStateMemoryDeviceStatusDetails OCTET STRING, + systemStateChassisIntrusionStateDetails OCTET STRING, + systemStateChassisIntrusionStatusCombined ObjectStatusEnum, + systemStateChassisIntrusionStatusDetails OCTET STRING, + systemStatePowerUnitStatusCombined ObjectStatusEnum, + systemStatePowerUnitStatusList OCTET STRING, + systemStateCoolingUnitStatusCombined ObjectStatusEnum, + systemStateCoolingUnitStatusList OCTET STRING, + systemStateProcessorDeviceStatusCombined ObjectStatusEnum, + systemStateProcessorDeviceStatusList OCTET STRING, + systemStateBatteryStatusCombined ObjectStatusEnum, + systemStateBatteryStatusList OCTET STRING, + systemStateSDCardUnitStatusCombined ObjectStatusEnum, + systemStateSDCardUnitStatusList OCTET STRING, + systemStateSDCardDeviceStatusCombined ObjectStatusEnum, + systemStateSDCardDeviceStatusList OCTET STRING, + systemStateIDSDMCardUnitStatusCombined ObjectStatusEnum, + systemStateIDSDMCardUnitStatusList OCTET STRING, + systemStateIDSDMCardDeviceStatusCombined ObjectStatusEnum, + systemStateIDSDMCardDeviceStatusList OCTET STRING, + systemStateTemperatureStatisticsStateDetails OCTET STRING, + systemStateTemperatureStatisticsStatusCombined ObjectStatusEnum, + systemStateTemperatureStatisticsStatusDetails OCTET STRING +} + +systemStateTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemStateTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0200.0010 This object defines the System State Table." + ::= { systemStateGroup 10 } + +systemStateTableEntry OBJECT-TYPE + SYNTAX SystemStateTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0200.0010.0001 This object defines the System State Table Entry." + INDEX { systemStatechassisIndex } + ::= { systemStateTable 1 } + +systemStatechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0001 This attribute defines the index (one based) of + this system chassis." + ::= { systemStateTableEntry 1 } + +systemStateGlobalSystemStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0002 This attribute defines the global system status + of all system chassis being monitored by the systems management software." + ::= { systemStateTableEntry 2 } + +systemStateChassisState OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0003 This attribute defines the state settings of this + system chassis." + ::= { systemStateTableEntry 3 } + +systemStateChassisStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0004 This attribute defines the status of this system + chassis." + ::= { systemStateTableEntry 4 } + +systemStatePowerUnitStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0005 This attribute lists the state settings of each + power unit of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of a power unit. The first byte returned represents the state settings + of the first power unit, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 5 } + +systemStatePowerUnitStatusRedundancy OBJECT-TYPE + SYNTAX StatusRedundancyEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0006 This attribute defines the combined redundancy status + of all power units of this system." + ::= { systemStateTableEntry 6 } + +systemStatePowerUnitStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0007 This attribute lists the redundancy status of each + power unit of this system. The results are returned as a binary octet + string where each byte of the octet string represents the redundancy status + of a power unit. The first byte returned represents the redundancy status + of the first power unit, etc. The bytes have the same definition type as + StatusRedundancyEnum." + ::= { systemStateTableEntry 7 } + +systemStatePowerSupplyStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0008 This attribute lists the state settings of each + power supply of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of a power supply. The first byte returned represents the state settings + of the first power supply, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 8 } + +systemStatePowerSupplyStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0009 This attribute defines the combined status of all + power supplies of this system." + ::= { systemStateTableEntry 9 } + +systemStatePowerSupplyStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0010 This attribute lists the status of each power supply + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a power supply. + The first byte returned represents the status of the first power supply, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 10 } + +systemStateVoltageStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0011 This attribute lists the state settings of each + voltage probe of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of a voltage probe. The first byte returned represents the state settings + of the first voltage probe, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 11 } + +systemStateVoltageStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0012 This attribute defines the combined status of all + voltage probes of this system." + ::= { systemStateTableEntry 12 } + +systemStateVoltageStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0013 This attribute lists the status of each voltage probe + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a voltage probe. + The first byte returned represents the status of the first voltage probe, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 13 } + +systemStateAmperageStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0014 This attribute lists the state settings of each + amperage probe of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of an amperage probe. The first byte returned represents the state settings + of the first amperage probe, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 14 } + +systemStateAmperageStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0015 This attribute defines the combined status of all + amperage probes of this system." + ::= { systemStateTableEntry 15 } + +systemStateAmperageStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0016 This attribute lists the status of each amperage probe + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of an amperage probe. + The first byte returned represents the status of the first amperage probe, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 16 } + +systemStateCoolingUnitStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0017 This attribute lists the state settings of each + cooling unit of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of a cooling unit. The first byte returned represents the state settings + of the first cooling unit, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 17 } + +systemStateCoolingUnitStatusRedundancy OBJECT-TYPE + SYNTAX StatusRedundancyEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0018 This attribute defines the combined redundancy status + of all cooling units of this system." + ::= { systemStateTableEntry 18 } + +systemStateCoolingUnitStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0019 This attribute lists the redundancy status of each + cooling unit of this system. The results are returned as a binary octet + string where each byte of the octet string represents the redundancy status + of a cooling unit. The first byte returned represents the redundancy status + of the first cooling unit, etc. The bytes have the same definition type as + StatusRedundancyEnum." + ::= { systemStateTableEntry 19 } + +systemStateCoolingDeviceStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0020 This attribute lists the state settings of each + cooling device of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of a cooling device. The first byte returned represents the state settings + of the first cooling device, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 20 } + +systemStateCoolingDeviceStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0021 This attribute defines the combined status of all + cooling devices of this system." + ::= { systemStateTableEntry 21 } + +systemStateCoolingDeviceStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0022 This attribute lists the status of each cooling device + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a cooling device. + The first byte returned represents the status of the first cooling device, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 22 } + +systemStateTemperatureStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0023 This attribute lists the state settings of each + temperature probe of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of a temperature probe. The first byte returned represents the state settings + of the first temperature probe, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 23 } + +systemStateTemperatureStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0024 This attribute defines the combined status of all + temperature probes of this system." + ::= { systemStateTableEntry 24 } + +systemStateTemperatureStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0025 This attribute lists the status of each temperature probe + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a temperature probe. + The first byte returned represents the status of the first temperature probe, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 25 } + +systemStateMemoryDeviceStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0026 This attribute lists the state settings of each + memory device of this system. The results are returned as a binary octet + string where each byte of the octet string represents the state settings + of a memory device. The first byte returned represents the state settings + of the first memory device, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 26 } + +systemStateMemoryDeviceStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0027 This attribute defines the combined status of all + memory devices of this system." + ::= { systemStateTableEntry 27 } + +systemStateMemoryDeviceStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0028 This attribute lists the status of each memory device + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a memory device. + The first byte returned represents the status of the first memory device, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 28 } + +systemStateChassisIntrusionStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0029 This attribute lists the state settings of each + intrusion detection device of this system chassis. The results are returned as + a binary octet string where each byte of the octet string represents the + state settings of an intrusion detection device. The first byte returned + represents the state settings of the first intrusion detection device, etc. + The bytes have the same definition type as StateSettingsFlags." + ::= { systemStateTableEntry 29 } + +systemStateChassisIntrusionStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0030 This attribute defines the combined status of all + intrusion detection devices of this system chassis." + ::= { systemStateTableEntry 30 } + +systemStateChassisIntrusionStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0031 This attribute lists the status of each intrusion + detection device of this system chassis. The results are returned as a binary + octet string where each byte of the octet string represents the status + of an intrusion detection device. The first byte returned represents the + status of the first intrusion detection device, etc. The bytes have the + same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 31 } + +systemStatePowerUnitStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0042 This attribute defines the combined status + of all power units of this chassis." + ::= { systemStateTableEntry 42 } + +systemStatePowerUnitStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0043 This attribute lists the status of each + power unit of this chassis. The results are returned as a binary octet + string where each byte of the octet string represents the status + of a power unit. The first byte returned represents the status + of the first power unit, etc. The bytes have the same definition type + as ObjectStatusEnum." + ::= { systemStateTableEntry 43 } + +systemStateCoolingUnitStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0044 This attribute defines the combined status + of all cooling units of this system." + ::= { systemStateTableEntry 44 } + +systemStateCoolingUnitStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0045 This attribute lists the status of each + cooling unit of this system. The results are returned as a binary octet + string where each byte of the octet string represents the status + of a cooling unit. The first byte returned represents the status + of the first cooling unit, etc. The bytes have the same definition type + as ObjectStatusEnum." + ::= { systemStateTableEntry 45 } + +systemStateProcessorDeviceStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0050 This attribute defines the combined status of all + processor devices of this system." + ::= { systemStateTableEntry 50 } + +systemStateProcessorDeviceStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0051 This attribute lists the status of each processor device + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a processor device. + The first byte returned represents the status of the first processor device, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 51 } + +systemStateBatteryStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0052 This attribute defines the combined status of all + batteries of this system." + ::= { systemStateTableEntry 52 } + +systemStateBatteryStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0053 This attribute lists the status of each battery + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a battery. + The first byte returned represents the status of the first battery, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 53 } + +systemStateSDCardUnitStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0054 This attribute defines the combined status + of all SD Card units of this system." + ::= { systemStateTableEntry 54 } + +systemStateSDCardUnitStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0055 This attribute lists the status of each + SD Card unit of this system. The results are returned as a binary + octet string where each byte of the octet string represents the status + of a SD Card unit. The first byte returned represents the status + of the first SD Card unit, etc. The bytes have the same definition + type as ObjectStatusEnum." + ::= { systemStateTableEntry 55 } + +systemStateSDCardDeviceStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0056 This attribute defines the combined status of all + SD Card devices of this system." + ::= { systemStateTableEntry 56 } + +systemStateSDCardDeviceStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0057 This attribute lists the status of each SD Card device + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of a SD Card device. + The first byte returned represents the status of the first SD Card device, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 57 } + +systemStateIDSDMCardUnitStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0058 This attribute defines the combined status + of all IDSDM Card units of this system." + ::= { systemStateTableEntry 58 } + +systemStateIDSDMCardUnitStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0059 This attribute lists the status of each + IDSDM Card unit of this system. The results are returned as a binary + octet string where each byte of the octet string represents the status + of an IDSDM Card unit. The first byte returned represents the status + of the first IDSDM Card unit, etc. The bytes have the same definition + type as ObjectStatusEnum." + ::= { systemStateTableEntry 59 } + +systemStateIDSDMCardDeviceStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0060 This attribute defines the combined status of all + IDSDM Card devices of this system." + ::= { systemStateTableEntry 60 } + +systemStateIDSDMCardDeviceStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0061 This attribute lists the status of each IDSDM Card device + of this system. The results are returned as a binary octet string where + each byte of the octet string represents the status of an IDSDM Card device. + The first byte returned represents the status of the first IDSDM Card device, + etc. The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 61 } + +systemStateTemperatureStatisticsStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0062 This attribute lists the state settings of each + temperature statistics object of this system. The results are returned + as a binary octet string where each byte of the octet string represents + the state settings of a temperature statistics object. The first byte + returned represents the state settings of the first temperature + statistics object, etc. The bytes have the same definition type + as StateSettingsFlags." + ::= { systemStateTableEntry 62 } + +systemStateTemperatureStatisticsStatusCombined OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0063 This attribute defines the combined status of all + temperature statistics objects of this system." + ::= { systemStateTableEntry 63 } + +systemStateTemperatureStatisticsStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0200.0010.0001.0064 This attribute lists the status of each + temperature statistics object of this system. The results are returned + as a binary octet string where each byte of the octet string represents + the status of a temperature statistics object. The first byte returned + represents the status of the first temperature statistics object, etc. + The bytes have the same definition type as ObjectStatusEnum." + ::= { systemStateTableEntry 64 } + + +------------------------------------------------------------------------------- +-- Chassis Information Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300 +------------------------------------------------------------------------------- + +StateCapabilitiesLogUniqueFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "State Capabilities Log Unique Flags." + SYNTAX INTEGER { + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- log state capabilities are unknown + onlineCapable(2), -- log can be enabled (online) or disabled (offline) + notReadyCapable(4), -- log can be not ready + resetCapable(8) -- log can be reset +} + +StateSettingsLogUniqueFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "State Settings Log Unique Flags." + SYNTAX INTEGER { +-- Note: These values are bit masks, so combination values are possible. + unknown(1), -- log state settings are unknown + online(2), -- log is enabled (online) + notReady(4), -- log is not ready + reset(8) -- reset log +} + +LogFormatType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Log Format Type." + SYNTAX INTEGER { + raw(1), -- format is Raw + ascii(2), -- format is ASCII + uniCode(3) -- format is Unicode +} + + +------------------------------------------------------------------------------- +-- Chassis Information Group Attributes +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300..0 +------------------------------------------------------------------------------- + +numEventLogEntries OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0001.0000 This attribute provides the number of entries + currently in the eventLogTable." + ::= { chassisInformationGroup 1 } + +-- Note: You can only access the numLCLogEntries attribute via SNMPv3 queries. +-- Access to the attribute is blocked for SNMPv1 and SNMPv2c queries. +numLCLogEntries OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0002.0000 This attribute provides the number of entries + currently in the lcLogTable. + Note: This attribute can only be accessed via SNMPv3 queries." + ::= { chassisInformationGroup 2 } + + +------------------------------------------------------------------------------- +-- Chassis Information Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300.10.1.. +------------------------------------------------------------------------------- + +ChassisTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Chassis Type Enum." + SYNTAX INTEGER { + other(1), -- type is other than following values + unknown(2), -- type is unknown + desktop(3), -- type is Desktop + lowProfileDesktop(4), -- type is Low Profile Desktop + pizzaBox(5), -- type is Pizza Box + miniTower(6), -- type is MiniTower + tower(7), -- type is Tower + portable(8), -- type is Portable + lapTop(9), -- type is Laptop + noteBook(10), -- type is Notebook + handHeld(11), -- type is Handheld + dockingStation(12), -- type is Docking Station + allInOne(13), -- type is All-In-One + subNoteBook(14), -- type is SubNotebook + spaceSaving(15), -- type is Spacesaver + lunchBox(16), -- type is Lunchbox + mainSystemChassis(17), -- type is Main System Chassis + expansionChassis(18), -- type is Expansion Chassis + subChassis(19), -- type is SubChassis + busExpansionChassis(20), -- type is Bus Expansion Chassis + peripheralChassis(21), -- type is Peripheral Chassis + raidChassis(22), -- type is RAID Chassis + rackMountChassis(23), -- type is Rack-mounted Chassis + sealedCasePC(24), -- type is Sealed-case PC + multiSystemChassis(25) -- type is Multi-system Chassis +} + +ChassisSystemClassEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Chassis System Class Enum." + SYNTAX INTEGER { + other(1), -- class is other than following values + unknown(2), -- class is unknown + workstationClass(3), -- class is Workstation + serverClass(4), -- class is Server + desktopClass(5), -- class is Desktop + portableClass(6), -- class is Portable + netPCClass(7), -- class is Net PC + storageClass(8) -- class is Storage +} + +LEDControlCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "LED Control Capabilities Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no LED Control capabilities + unknown(1), -- LED control capabilities are unknown + alertOnErrorCapable(2), -- LED can alert on error condition + alertOnWarningAndErrorCapable(4), -- LED can alert on error and warning condition + alertOnWarningOrErrorCapable(6) -- LED can alert on error or warning condition +} + +LEDControlSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "LED Control Settings Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no LED Control settings + unknown(1), -- LED control settings are unknown + alertOnError(2), -- LED set to alert on error condition + alertOnWarningAndError(4) -- LED set to alert on error or warning condition +} + +ChassisIdentifyControlCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Chassis Identify Control Capabilities Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Chassis Identify Control capabilities + unknownCapabilities(1), -- chassis identify capabilities are unknown + -- The objects capabilities allow it to be set to: + enableCapable(2), -- chassis identify can be enabled (online) or disabled (offline) + notReadyCapable(4), -- chassis identify can be not ready + identifyCapable(8) -- chassis idenfity can be made to identify chassis +} + +ChassisIdentifyControlSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Chassis Identify Control Settings Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Chassis Identify Control settings + unknown(1), -- chassis identify settings are unknown + enabled(2), -- chassis identify is enabled (online) + notReady(4), -- chassis identify is not ready + identifyChassis(8), -- identify chassis + identifyChassisAndEnable(10) -- identify chassis and enabled +} + +HostControlCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Host Control Capabilities Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Host Control capabilities + manualRebootCapable(1), -- host can be rebooted + manualPowerOFFCapable(2), -- host can be powered off + manualPowerCycleCapable(4), -- host can be power cycled + manualAllExceptOperatingSystemShutdownCapable(7), -- all host control capabilities except OS shutdown + manualOperatingSystemShutdownCapable(8), -- operating system can be shutdown + manualFullyCapable(15), -- all host control capabilities + manualRebootWithOSShutdownCapable(16), -- host can be rebooted with operating system shutdown + manualRebootWithoutOSShutdownCapable(32), -- host can be rebooted without operating system shutdown + manualPowerOffWithOSShutdownCapable(64), -- host can be powered off with operating system shutdown + manualPowerOffWithoutOSShutdownCapable(128),-- host can be powered off without operating system shutdown + manualPowerCycleWithOSShutdownCapable(256), -- host can be power cycled with operating system shutdown + manualPowerCycleWithoutOSShutdownCapable(512) -- host can be power cycled with operating system shutdown +} + +HostControlSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Host Control Settings Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Host Control settings + manualReboot(1), -- reboot host + manualPowerOFF(2), -- power off host + manualPowerCycle(4), -- power cycle host + manualOperatingSystemShutdown(8), -- shutdown operating system on host + manualOperatingSystemShutdownThenReboot(9), -- shutdown operating system on host then reboot host + manualOperatingSystemShutdownThenPowerOFF(10), -- shutdown operating system on host then power off host + manualOperatingSystemShutdownThenPowerCycle(12) -- shutdown operating system on host then power cycle host +} + +WatchDogControlCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "WatchDog Control Capabilities Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Watchdog Control capabilities + automaticRebootCapable(1), -- watchdog can reboot host + automaticPowerCycleCapable(2), -- watchdog can power cycle host + automaticNotificationCapable(4), -- watchdog can notify + automaticWatchDogTimerCapable(8), -- watchdog supports timer + automaticPowerOffCapable(16), -- watchdog can power off host + automaticAllExceptNotificationCapable(27), -- all capabilities except notification + automaticFullyCapable(31) -- all watchdog control capabilities +} + +WatchControlSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "WatchDog Control Settings Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Watchdog Control settings + automaticRebootEnabled(1), -- watchdog set for automatic reboot + automaticPowerCycleEnabled(2), -- watchdog set for automatic power cycle + automaticNotificationEnabled(4), -- watchdog set for automatic notification + automaticPowerOffEnabled(8) -- watchdog set for automatic power off +} + +WatchDogTimerCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "WatchDog Timer Capabilities Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Watchdog Timer capabilities + type1Capable(1), -- watchdog can time in range of 20-480 seconds + type2Capable(2), -- watchdog can time in 30, 60, 120 and 480 second intervals + type3Capable(4) -- watchdog can time in 60 second intervals +} + +PowerButtonControlCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Button Control Capabilities Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Power Button Control capabilities + unknownCapabilities(1), -- power button capabilities are unknown + enableCapable(2) -- power button can be enabled or disabled +} + +PowerButtonControlSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Button Control Settings Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no Power Button Control settings + unknown(1), -- power button settings are unknown + enabled(2), -- power button is enabled + disabled(4) -- power button disabled +} + +NMIButtonControlCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "NMI Button Control Capabilities Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no NMI Button Control capabilities + unknownCapabilities(1), -- NMI button capabilities are unknown + enableCapable(2) -- NMI button can be enabled or disabled +} + +NMIButtonControlSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "NMI Button Control Settings Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no NMI Button Control settings + unknown(1), -- NMI button settings are unknown + enabled(2), -- NMI button is enabled + disabled(4) -- NMI button disabled +} + +SystemPropertiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Properties Flags." + SYNTAX INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- none(0), - no properties + energySmart(1) -- Energy Smart system +} + +ChassisInformationTableEntry ::= SEQUENCE { + chassisIndexChassisInformation ObjectRange, + chassisStateCapabilities StateCapabilitiesFlags, + chassisStateSettings StateSettingsFlags, + chassisStatus ObjectStatusEnum, + chassisparentIndexReference ObjectRange, + chassisType ChassisTypeEnum, + chassisName String64, + chassisManufacturerName String64, + chassisModelTypeName String64, + chassisAssetTagName OCTET STRING, + chassisServiceTagName OCTET STRING, + chassisID Unsigned8BitRange, + chassisIDExtension Unsigned16BitRange, + chassisSystemClass ChassisSystemClassEnum, + chassisSystemName String64, + chassisLEDControlCapabilitiesUnique LEDControlCapabilitiesFlags, + chassisLEDControlSettingsUnique LEDControlSettingsFlags, + chassisIdentifyFlashControlCapabilities ChassisIdentifyControlCapabilitiesFlags, + chassisIdentifyFlashControlSettings ChassisIdentifyControlSettingsFlags, + chassisLockPresent BooleanType, + chassishostControlCapabilitiesUnique HostControlCapabilitiesFlags, + chassishostControlSettingsUnique HostControlSettingsFlags, + chassiswatchDogControlCapabilitiesUnique WatchDogControlCapabilitiesFlags, + chassiswatchDogControlSettingsUnique WatchControlSettingsFlags, + chassiswatchDogControlExpiryTimeCapabilitiesUnique WatchDogTimerCapabilitiesFlags, + chassiswatchDogControlExpiryTime Unsigned16BitRange, + chassisPowerButtonControlCapabilitiesUnique PowerButtonControlCapabilitiesFlags, + chassisPowerButtonControlSettingsUnique PowerButtonControlSettingsFlags, + chassisNMIButtonControlCapabilitiesUnique NMIButtonControlCapabilitiesFlags, + chassisNMIButtonControlSettingsUnique NMIButtonControlSettingsFlags, + chassisSystemProperties SystemPropertiesFlags, + chassisSystemRevisionNumber Unsigned8BitRange, + chassisSystemRevisionName String64, + chassisExpressServiceCodeName String64 +} + +chassisInformationTable OBJECT-TYPE + SYNTAX SEQUENCE OF ChassisInformationTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0010 This object defines the Chassis Information Table." + ::= { chassisInformationGroup 10 } + +chassisInformationTableEntry OBJECT-TYPE + SYNTAX ChassisInformationTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0010.0001 This object defines the Chassis Information Table Entry." + INDEX { chassisIndexChassisInformation } + ::= { chassisInformationTable 1 } + +chassisIndexChassisInformation OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0001 This attribute defines the index (one based) of + the system chassis." + ::= { chassisInformationTableEntry 1 } + +chassisStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0002 This attribute defines the state capabilities of the system chassis." + ::= { chassisInformationTableEntry 2 } + +chassisStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0003 This attribute defines the state settings of the system chassis." + ::= { chassisInformationTableEntry 3 } + +chassisStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0004 This attribute defines the status of the system chassis." + ::= { chassisInformationTableEntry 4 } + +chassisparentIndexReference OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0005 This attribute defines the index (one based) to the + parent system of this system chassis, if any." + ::= { chassisInformationTableEntry 5 } + +chassisType OBJECT-TYPE + SYNTAX ChassisTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0006 This attribute defines the system type of the system chassis." + ::= { chassisInformationTableEntry 6 } + +chassisName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0007 This attribute defines the user-assigned name of the system chassis." + ::= { chassisInformationTableEntry 7 } + +chassisManufacturerName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0008 This attribute defines the name of the manufacturer + of the system chassis." + ::= { chassisInformationTableEntry 8 } + +chassisModelTypeName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0009 This attribute defines the system model type of the system chassis." + ::= { chassisInformationTableEntry 9 } + +chassisAssetTagName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..10)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0010 This attribute defines the asset tag name of the system chassis." + ::= { chassisInformationTableEntry 10 } + +chassisServiceTagName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..7)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0011 This attribute defines the service tag name of the system chassis." + ::= { chassisInformationTableEntry 11 } + +chassisID OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0012 This attribute defines the system ID. If the value + is 254 (0xFE), the attribute systemIDExtension provides the system ID." + ::= { chassisInformationTableEntry 12 } + +chassisIDExtension OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0013 This attribute defines the system ID extension." + ::= { chassisInformationTableEntry 13 } + +chassisSystemClass OBJECT-TYPE + SYNTAX ChassisSystemClassEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0014 This attribute defines the system class." + ::= { chassisInformationTableEntry 14 } + +chassisSystemName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0015 This attribute defines the host name of the system chassis." + ::= { chassisInformationTableEntry 15 } + +chassisLEDControlCapabilitiesUnique OBJECT-TYPE + SYNTAX LEDControlCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0024 This attribute defines the capabilities of the + LED control hardware in the system chassis." + ::= { chassisInformationTableEntry 24 } + +chassisLEDControlSettingsUnique OBJECT-TYPE + SYNTAX LEDControlSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0025 This attribute defines the reading and setting of the + LED control hardware in the system chassis." + ::= { chassisInformationTableEntry 25 } + +chassisIdentifyFlashControlCapabilities OBJECT-TYPE + SYNTAX ChassisIdentifyControlCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0028 This attribute defines if the system allows setting + of the system front panel LED to flash." + ::= { chassisInformationTableEntry 28 } + +chassisIdentifyFlashControlSettings OBJECT-TYPE + SYNTAX ChassisIdentifyControlSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0029 This attribute setting causes the system front panel + LED to flash." + ::= { chassisInformationTableEntry 29 } + +chassisLockPresent OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0030 If true, a system lock is present on the system chassis." + ::= { chassisInformationTableEntry 30 } + +chassishostControlCapabilitiesUnique OBJECT-TYPE + SYNTAX HostControlCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0031 This attribute defines the capabilities of the + host control function." + ::= { chassisInformationTableEntry 31 } + +chassishostControlSettingsUnique OBJECT-TYPE + SYNTAX HostControlSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0032 This attribute defines the settings of the + host control function." + ::= { chassisInformationTableEntry 32 } + +chassiswatchDogControlCapabilitiesUnique OBJECT-TYPE + SYNTAX WatchDogControlCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0033 This attribute defines the capabilities of the + watchdog control function." + ::= { chassisInformationTableEntry 33 } + +chassiswatchDogControlSettingsUnique OBJECT-TYPE + SYNTAX WatchControlSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0034 This attribute defines the settings of the + watchdog control function." + ::= { chassisInformationTableEntry 34 } + +chassiswatchDogControlExpiryTimeCapabilitiesUnique OBJECT-TYPE + SYNTAX WatchDogTimerCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0035 This attribute defines the capabilities of the + watchdog control expiry timer function." + ::= { chassisInformationTableEntry 35 } + +chassiswatchDogControlExpiryTime OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0036 This attribute defines the current watchdog timer + value in seconds." + ::= { chassisInformationTableEntry 36 } + +chassisPowerButtonControlCapabilitiesUnique OBJECT-TYPE + SYNTAX PowerButtonControlCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0038 This attribute defines the capabilities of the + power button control hardware in the system chassis." + ::= { chassisInformationTableEntry 38 } + +chassisPowerButtonControlSettingsUnique OBJECT-TYPE + SYNTAX PowerButtonControlSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0039 This attribute defines the reading and setting of + the power button control hardware in the system chassis." + ::= { chassisInformationTableEntry 39 } + +chassisNMIButtonControlCapabilitiesUnique OBJECT-TYPE + SYNTAX NMIButtonControlCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0044 This attribute defines the capabilities of the + NMI button control hardware in the system chassis." + ::= { chassisInformationTableEntry 44 } + +chassisNMIButtonControlSettingsUnique OBJECT-TYPE + SYNTAX NMIButtonControlSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0045 This attribute defines the reading and setting of + the NMI button control hardware in the system chassis." + ::= { chassisInformationTableEntry 45 } + +chassisSystemProperties OBJECT-TYPE + SYNTAX SystemPropertiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0046 This attribute defines the properties of the system chassis." + ::= { chassisInformationTableEntry 46 } + +chassisSystemRevisionNumber OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0047 This attribute defines the revision number of the system + where zero indicates the original version of the system chassis. The revision number + is not available on all systems." + ::= { chassisInformationTableEntry 47 } + +chassisSystemRevisionName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0048 This attribute defines the revision name of the system, + if applicable." + ::= { chassisInformationTableEntry 48 } + +chassisExpressServiceCodeName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0010.0001.0049 This attribute defines the Express Service Code of the system chassis." + ::= { chassisInformationTableEntry 49 } + + +------------------------------------------------------------------------------- +-- Event (ESM) Log Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300.40.1... +------------------------------------------------------------------------------- + +EventLogTableEntry ::= SEQUENCE { + eventLogchassisIndex ObjectRange, + eventLogRecordIndex Unsigned32BitRange, + eventLogStateCapabilitiesUnique StateCapabilitiesLogUniqueFlags, + eventLogStateSettingsUnique StateSettingsLogUniqueFlags, + eventLogRecord OCTET STRING, + eventLogFormat LogFormatType, + eventLogSeverityStatus ObjectStatusEnum, + eventLogDateName DateName +} + +eventLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF EventLogTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0040 This object defines the Event (ESM) Log Table." + ::= { chassisInformationGroup 40 } + +eventLogTableEntry OBJECT-TYPE + SYNTAX EventLogTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0040.0001 This object defines the Event (ESM) Log Table Entry." + INDEX { eventLogchassisIndex, + eventLogRecordIndex } + ::= { eventLogTable 1 } + +eventLogchassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { eventLogTableEntry 1 } + +eventLogRecordIndex OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0002 This attribute defines the index (one based) of the + event log record." + ::= { eventLogTableEntry 2 } + +eventLogStateCapabilitiesUnique OBJECT-TYPE + SYNTAX StateCapabilitiesLogUniqueFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0003 This attribute defines the state capabilities of the + object that is writing the event log." + ::= { eventLogTableEntry 3 } + +eventLogStateSettingsUnique OBJECT-TYPE + SYNTAX StateSettingsLogUniqueFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0004 This attribute defines the state settings of the + object that is writing the event log." + ::= { eventLogTableEntry 4 } + +eventLogRecord OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0005 This attribute defines the data of the event log record." + ::= { eventLogTableEntry 5 } + +eventLogFormat OBJECT-TYPE + SYNTAX LogFormatType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0006 This attribute defines the format of the event log record." + ::= { eventLogTableEntry 6 } + +eventLogSeverityStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0007 This attribute defines the severity of the + event log record." + ::= { eventLogTableEntry 7 } + +eventLogDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0040.0001.0008 This attribute defines the date and time of the + event log record." + ::= { eventLogTableEntry 8 } + + +------------------------------------------------------------------------------- +-- System BIOS Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300.50.1... +------------------------------------------------------------------------------- + +SystemBIOSTableEntry ::= SEQUENCE { + systemBIOSchassisIndex ObjectRange, + systemBIOSIndex ObjectRange, + systemBIOSStateCapabilities StateCapabilitiesFlags, + systemBIOSStateSettings StateSettingsFlags, + systemBIOSStatus ObjectStatusEnum, + systemBIOSReleaseDateName DateName, + systemBIOSVersionName String64, + systemBIOSManufacturerName String64 +} + +systemBIOSTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemBIOSTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0050 This object defines the System BIOS Table." + ::= { chassisInformationGroup 50 } + +systemBIOSTableEntry OBJECT-TYPE + SYNTAX SystemBIOSTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0050.0001 This object defines the System BIOS Table Entry." + INDEX { systemBIOSchassisIndex, + systemBIOSIndex } + ::= { systemBIOSTable 1 } + +systemBIOSchassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { systemBIOSTableEntry 1 } + +systemBIOSIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0002 This attribute defines the index (one based) of the + system BIOS." + ::= { systemBIOSTableEntry 2 } + +systemBIOSStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0003 This attribute defines the state capabilities of the + system BIOS." + ::= { systemBIOSTableEntry 3 } + +systemBIOSStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0004 This attribute defines the state settings of the + system BIOS." + ::= { systemBIOSTableEntry 4 } + +systemBIOSStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0005 This attribute defines the status of the system BIOS." + ::= { systemBIOSTableEntry 5 } + +systemBIOSReleaseDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0007 This attribute defines the release date name of the + system BIOS." + ::= { systemBIOSTableEntry 7 } + +systemBIOSVersionName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0008 This attribute defines the version name of the + system BIOS." + ::= { systemBIOSTableEntry 8 } + +systemBIOSManufacturerName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0050.0001.0011 This attribute defines the name of the manufacturer + of the system BIOS." + ::= { systemBIOSTableEntry 11 } + + +------------------------------------------------------------------------------- +-- Firmware Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300.60.1... +------------------------------------------------------------------------------- + +FirmwareType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Firmware Type." + SYNTAX INTEGER { + other(1), -- type is other than following values + unknown(2), -- type is unknown + lifecycleController(20), -- type is Lifecycle Controller + iDRAC7(21), -- type is Integrated Dell Remote Access Controller 7 + iDRAC8(22) -- type is Integrated Dell Remote Access Controller 8 +} + +FirmwareTableEntry ::= SEQUENCE { + firmwarechassisIndex ObjectRange, + firmwareIndex ObjectRange, + firmwareStateCapabilities StateCapabilitiesFlags, + firmwareStateSettings StateSettingsFlags, + firmwareStatus ObjectStatusEnum, + firmwareSize Unsigned16BitRange, + firmwareType FirmwareType, + firmwareTypeName String64, + firmwareUpdateCapabilities Unsigned16BitRange, + firmwareVersionName String64 +} + +firmwareTable OBJECT-TYPE + SYNTAX SEQUENCE OF FirmwareTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0060 This object defines the Firmware Table." + ::= { chassisInformationGroup 60 } + +firmwareTableEntry OBJECT-TYPE + SYNTAX FirmwareTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0060.0001 This object defines the Firmware Table Entry." + INDEX { firmwarechassisIndex, + firmwareIndex } + ::= { firmwareTable 1 } + +firmwarechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { firmwareTableEntry 1 } + +firmwareIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0002 This attribute defines the index (one based) of the + firmware." + ::= { firmwareTableEntry 2 } + +firmwareStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0003 This attribute defines the state capabilities of the + firmware." + ::= { firmwareTableEntry 3 } + +firmwareStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0004 This attribute defines the state settings of the + firmware." + ::= { firmwareTableEntry 4 } + +firmwareStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0005 This attribute defines the status of the firmware." + ::= { firmwareTableEntry 5 } + +firmwareSize OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0006 This attribute defines the image size of the firmware + in KBytes. Zero indicates size is unknown." + ::= { firmwareTableEntry 6 } + +firmwareType OBJECT-TYPE + SYNTAX FirmwareType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0007 This attribute defines the type of firmware." + ::= { firmwareTableEntry 7 } + +firmwareTypeName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0008 This attribute defines the type name of the firmware." + ::= { firmwareTableEntry 8 } + +firmwareUpdateCapabilities OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0009 This attribute defines the bitmap of supported methods + for firmware update." + ::= { firmwareTableEntry 9 } + +firmwareVersionName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0060.0001.0011 This attribute defines the version of the firmware." + ::= { firmwareTableEntry 11 } + + +------------------------------------------------------------------------------- +-- Intrusion Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300.70.1... +------------------------------------------------------------------------------- + +IntrusionReadingEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Intrusion Reading Enum." + SYNTAX INTEGER { + chassisNotBreached(1), -- chassis not breached and no uncleared breaches + chassisBreached(2), -- chassis currently breached + chassisBreachedPrior(3), -- chassis breached prior to boot and has not been cleared + chassisBreachSensorFailure(4) -- intrusion sensor has failed +} + +IntrusionTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Intrusion Type Enum." + SYNTAX INTEGER { + chassisBreachDetectionWhenPowerON(1), -- type is detect intrusion while power on + chassisBreachDetectionWhenPowerOFF(2) -- type is detect intrusion while power off +} + +IntrusionTableEntry ::= SEQUENCE { + intrusionchassisIndex ObjectRange, + intrusionIndex ObjectRange, + intrusionStateCapabilities StateCapabilitiesFlags, + intrusionStateSettings StateSettingsFlags, + intrusionStatus ObjectStatusEnum, + intrusionReading IntrusionReadingEnum, + intrusionType IntrusionTypeEnum, + intrusionLocationName String64 +} + +intrusionTable OBJECT-TYPE + SYNTAX SEQUENCE OF IntrusionTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0070 This object defines the Intrusion Table." + ::= { chassisInformationGroup 70 } + +intrusionTableEntry OBJECT-TYPE + SYNTAX IntrusionTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0070.0001 This object defines the Intrusion Table Entry." + INDEX { intrusionchassisIndex, + intrusionIndex } + ::= { intrusionTable 1 } + +intrusionchassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { intrusionTableEntry 1 } + +intrusionIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0002 This attribute defines the index (one based) of the + intrusion sensor." + ::= { intrusionTableEntry 2 } + +intrusionStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0003 This attribute defines the state capabilities of the + intrusion sensor." + ::= { intrusionTableEntry 3 } + +intrusionStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0004 This attribute defines the state settings of the + intrusion sensor." + ::= { intrusionTableEntry 4 } + +intrusionStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0005 This attribute defines the status of the + intrusion sensor." + ::= { intrusionTableEntry 5 } + +intrusionReading OBJECT-TYPE + SYNTAX IntrusionReadingEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0006 This attribute defines the reading of the + intrusion sensor." + ::= { intrusionTableEntry 6 } + +intrusionType OBJECT-TYPE + SYNTAX IntrusionTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0007 This attribute defines the type of the + intrusion sensor." + ::= { intrusionTableEntry 7 } + +intrusionLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0070.0001.0008 This attribute defines the location of the + intrusion sensor." + ::= { intrusionTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Lifecycle (LC) Log Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.300.90.1... +------------------------------------------------------------------------------- + +LcLogCategoryEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "LC Log Category Enum." + SYNTAX INTEGER { + system(1), -- System Health category + storage(2), -- Storage category + updates(3), -- Updates category + audit(4), -- Audit category + configuration(5), -- Configuration category + workNotes(6) -- Work Notes category +} + +LcLogTableEntry ::= SEQUENCE { + lcLogChassisIndex ObjectRange, + lcLogRecordIndex Unsigned32BitRange, + lcLogSequenceNumber Unsigned32BitRange, + lcLogCategory LcLogCategoryEnum, + lcLogSeverityStatus ObjectStatusEnum, + lcLogDateName DateName, + lcLogFQDD FQDDString, + lcLogMessageID OCTET STRING, + lcLogMessage OCTET STRING, + lcLogDetailedDescription OCTET STRING, + lcLogRecommededAction OCTET STRING, + lcLogComment OCTET STRING +} + +-- Note: You can only access the lcLogTable table via SNMPv3 queries. +-- Access to the table is blocked for SNMPv1 and SNMPv2c queries. +lcLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF LcLogTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0090 This object defines the Lifecycle (LC) Log Table. + Lifecycle (LC) Log table records are ordered from oldest to newest. + Note: This table can only be accessed via SNMPv3 queries." + ::= { chassisInformationGroup 90 } + +lcLogTableEntry OBJECT-TYPE + SYNTAX LcLogTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0300.0090.0001 This object defines the Lifcycle (LC) Log Table Entry." + INDEX { lcLogChassisIndex, + lcLogRecordIndex } + ::= { lcLogTable 1 } + +lcLogChassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0001 This attribute defines the index (one based) + of the associated system chassis." + ::= { lcLogTableEntry 1 } + +lcLogRecordIndex OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0002 This attribute defines the index (one based) + of the LC log record." + ::= { lcLogTableEntry 2 } + +lcLogSequenceNumber OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0003 This attribute defines the LC Log sequence number + of the event associated with the LC log record." + ::= { lcLogTableEntry 3 } + +lcLogCategory OBJECT-TYPE + SYNTAX LcLogCategoryEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0004 This attribute defines the category + of the event associated with the LC log record." + ::= { lcLogTableEntry 4 } + +lcLogSeverityStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0005 This attribute defines the severity + of the event associated with the LC log record." + ::= { lcLogTableEntry 5 } + +lcLogDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0006 This attribute defines the date and time + of the event associated with the LC log record." + ::= { lcLogTableEntry 6 } + +lcLogFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0007 Fully qualified device descriptor (FQDD) + of the device associated with the event associated with the LC log record." + ::= { lcLogTableEntry 7 } + +lcLogMessageID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0008 This attribute defines the Message ID + of the event associated with the LC log record." + ::= { lcLogTableEntry 8 } + +lcLogMessage OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..512)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0009 This attribute defines the message + of the event associated with the LC log record." + ::= { lcLogTableEntry 9 } + +lcLogDetailedDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..2048)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0010 This attribute defines the detailed description + of the event associated with the LC log record." + ::= { lcLogTableEntry 10 } + +lcLogRecommededAction OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..2048)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0011 This attribute defines an optional recommended action + associated with the event associated with the LC log record." + ::= { lcLogTableEntry 11 } + +lcLogComment OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0300.0090.0001.0012 This attribute defines an optional user comment + associated with the event associated with the LC log record." + ::= { lcLogTableEntry 12 } + + + +------------------------------------------------------------------------------- +-- Power Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.600 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Power Unit Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.600.10.1... +------------------------------------------------------------------------------- + +PowerUnitTableEntry ::= SEQUENCE { + powerUnitchassisIndex ObjectRange, + powerUnitIndex ObjectRange, + powerUnitStateCapabilities StateCapabilitiesFlags, + powerUnitStateSettings StateSettingsFlags, + powerUnitRedundancyStatus StatusRedundancyEnum, + powerSupplyCountForRedundancy ObjectRange, + powerUnitName String64, + powerUnitStatus ObjectStatusEnum +} + +powerUnitTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerUnitTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0010 This object defines the Power Unit Table." + ::= { powerGroup 10 } + +powerUnitTableEntry OBJECT-TYPE + SYNTAX PowerUnitTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0010.0001 This object defines the Power Unit Table Entry." + INDEX { powerUnitchassisIndex, + powerUnitIndex } + ::= { powerUnitTable 1 } + +powerUnitchassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0001 This attribute defines the index (one based) of + the system chassis." + ::= { powerUnitTableEntry 1 } + +powerUnitIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0002 This attribute defines the index (one based) of the + power unit." + ::= { powerUnitTableEntry 2 } + +powerUnitStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0003 This attribute defines the state capabilities of the + power unit." + ::= { powerUnitTableEntry 3 } + +powerUnitStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0004 This attribute defines the state settings of the + power unit." + ::= { powerUnitTableEntry 4 } + +powerUnitRedundancyStatus OBJECT-TYPE + SYNTAX StatusRedundancyEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0005 This attribute defines the redundancy status of the + power unit." + ::= { powerUnitTableEntry 5 } + +powerSupplyCountForRedundancy OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0006 This attribute defines the total number of power supplies + required for this power unit to have full redundancy." + ::= { powerUnitTableEntry 6 } + +powerUnitName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0007 This attribute defines the name of the power unit." + ::= { powerUnitTableEntry 7 } + +powerUnitStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0010.0001.0008 This attribute defines the status of the power unit." + ::= { powerUnitTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Power Supply Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.600.12.1... +------------------------------------------------------------------------------- + +PowerSupplyStateCapabilitiesUniqueFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Supply State Capabilities Unique Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no power supply state capabilities + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- state capabilities are unknown + onlineCapable(2), -- power supply can be enabled (online) or disabled (offline) + notReadyCapable(4) -- power supply can be not ready +} + +PowerSupplyStateSettingsUniqueFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Supply State Settings Unique Flags." + SYNTAX INTEGER { + -- If 0 (zero), there are no power supply state settings + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- state settings are unknown + onLine(2), -- power supply is enabled (online) + notReady(4), -- power supply is not ready + fanFailure(8), -- power supply fan has failed + onlineAndFanFailure(10), + powerSupplyIsON(16), -- power supply is supplying power + powerSupplyIsOK(32), -- power supply is indicating it is OK + acSwitchIsON(64), -- power supply is indicating AC power switch is on + onlineandAcSwitchIsON(66), + acPowerIsON(128), -- power supply is indicating AC power is on + onlineAndAcPowerIsON(130), + onlineAndPredictiveFailure(210), + acPowerAndSwitchAreOnPowerSupplyIsOnIsOkAndOnline(242) +} + +PowerSupplyTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Supply Type Enum." + SYNTAX INTEGER { + powerSupplyTypeIsOther(1), -- type is other than following values + powerSupplyTypeIsUnknown(2), -- type is unknown + powerSupplyTypeIsLinear(3), -- type is Linear + powerSupplyTypeIsSwitching(4), -- type is Switching + powerSupplyTypeIsBattery(5), -- type is Battery + powerSupplyTypeIsUPS(6), -- type is Uninterruptible Power Supply + powerSupplyTypeIsConverter(7), -- type is Converter + powerSupplyTypeIsRegulator(8), -- type is Regulator + powerSupplyTypeIsAC(9), -- type is AC + powerSupplyTypeIsDC(10), -- type is DC + powerSupplyTypeIsVRM(11) -- type is VRM +} + +PowerSupplySensorStateFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Supply Sensor State Flags." + SYNTAX INTEGER { + -- Note: These values are bit masks, so combination values are possible. + presenceDetected(1), -- state is Presence detected + psFailureDetected(2), -- state is PS Failure detected + predictiveFailure(4), -- state is Predictive Failure + psACLost(8), -- state is PS AC lost + acLostOrOutOfRange(16), -- state is AC lost or out-of-range + acOutOfRangeButPresent(32), -- state is AC out-of-range, but present + configurationError(64) -- state is Configuration error +} + +PowerSupplyConfigurationErrorTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Supply Configuration Error Type Enum." + SYNTAX INTEGER { + vendorMismatch(1), -- error type is Vendor mismatch + revisionMismatch(2), -- error type is Revision mismatch + processorMissing(3) -- error type is Processor missing +} + +PowerSupplyTableEntry ::= SEQUENCE { + powerSupplychassisIndex ObjectRange, + powerSupplyIndex ObjectRange, + powerSupplyStateCapabilitiesUnique PowerSupplyStateCapabilitiesUniqueFlags, + powerSupplyStateSettingsUnique PowerSupplyStateSettingsUniqueFlags, + powerSupplyStatus ObjectStatusEnum, + powerSupplyOutputWatts Signed32BitRange, + powerSupplyType PowerSupplyTypeEnum, + powerSupplyLocationName String64, + powerSupplyMaximumInputVoltage Signed32BitRange, + powerSupplypowerUnitIndexReference ObjectRange, + powerSupplySensorState PowerSupplySensorStateFlags, + powerSupplyConfigurationErrorType PowerSupplyConfigurationErrorTypeEnum, + powerSupplyPowerMonitorCapable BooleanType, + powerSupplyRatedInputWattage Signed32BitRange, + powerSupplyFQDD FQDDString, + powerSupplyCurrentInputVoltage Signed32BitRange +} + +powerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerSupplyTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0012 This object defines the Power Supply Table." + ::= { powerGroup 12 } + +powerSupplyTableEntry OBJECT-TYPE + SYNTAX PowerSupplyTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0012.0001 This object defines the Power Supply Table Entry." + INDEX { powerSupplychassisIndex, + powerSupplyIndex } + ::= { powerSupplyTable 1 } + +powerSupplychassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0001 This attribute defines the index (one based) of + the system chassis." + ::= { powerSupplyTableEntry 1 } + +powerSupplyIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0002 This attribute defines the index (one based) of the + power supply." + ::= { powerSupplyTableEntry 2 } + +powerSupplyStateCapabilitiesUnique OBJECT-TYPE + SYNTAX PowerSupplyStateCapabilitiesUniqueFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0003 This attribute defines the state capabilities of the + power supply." + ::= { powerSupplyTableEntry 3 } + +powerSupplyStateSettingsUnique OBJECT-TYPE + SYNTAX PowerSupplyStateSettingsUniqueFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0004 This attribute defines the state settings of the + power supply." + ::= { powerSupplyTableEntry 4 } + +powerSupplyStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0005 This attribute defines the status of the power supply." + ::= { powerSupplyTableEntry 5 } + +powerSupplyOutputWatts OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0006 This attribute defines the maximum sustained output + wattage of the power supply (in tenths of Watts)." + ::= { powerSupplyTableEntry 6 } + +powerSupplyType OBJECT-TYPE + SYNTAX PowerSupplyTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0007 This attribute defines the type of the power supply." + ::= { powerSupplyTableEntry 7 } + +powerSupplyLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0008 This attribute defines the location of the power supply." + ::= { powerSupplyTableEntry 8 } + +powerSupplyMaximumInputVoltage OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0009 This attribute defines the maximum input voltage of the + power supply (in Volts)." + ::= { powerSupplyTableEntry 9 } + +powerSupplypowerUnitIndexReference OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0010 This attribute defines the index to the associated + power unit if the power supply is part of a power unit." + ::= { powerSupplyTableEntry 10 } + +powerSupplySensorState OBJECT-TYPE + SYNTAX PowerSupplySensorStateFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0011 This attribute defines the state reported by the + power supply sensor. This attribute supplements the attribute + powerSupplyStateSettingsUnique." + ::= { powerSupplyTableEntry 11 } + +powerSupplyConfigurationErrorType OBJECT-TYPE + SYNTAX PowerSupplyConfigurationErrorTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0012 This attribute defines the type of configuration error + reported by the power supply sensor. When the configurationError bit is on + in the value for the attribute powerSupplySensorState, a value is returned + for this attribute; otherwise, a value is not returned for this attribute." + ::= { powerSupplyTableEntry 12 } + +powerSupplyPowerMonitorCapable OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0013 This attribute defines a boolean value that reports + whether the power supply is capable of monitoring power consumption." + ::= { powerSupplyTableEntry 13 } + +powerSupplyRatedInputWattage OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0014 This attribute defines the rated input wattage of the + power supply (in tenths of Watts)." + ::= { powerSupplyTableEntry 14 } + +powerSupplyFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0015 Fully qualified device descriptor (FQDD) of the + power supply." + ::= { powerSupplyTableEntry 15 } + +powerSupplyCurrentInputVoltage OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0012.0001.0016 This attribute defines the current input voltage to the + power supply (in Volts)." + ::= { powerSupplyTableEntry 16 } + + +------------------------------------------------------------------------------- +-- Voltage Probe Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.600.20.1... +------------------------------------------------------------------------------- + +VoltageTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Voltage Type Enum." + SYNTAX INTEGER { + voltageProbeTypeIsOther(1), -- type is other than following values + voltageProbeTypeIsUnknown(2), -- type is unknown + voltageProbeTypeIs1Point5Volt(3), -- type is 1.5 volt probe + voltageProbeTypeIs3Point3Volt(4), -- type is 3.3 volt probe + voltageProbeTypeIs5Volt(5), -- type is 5 volt probe + voltageProbeTypeIsMinus5Volt(6), -- type is -5 volt probe + voltageProbeTypeIs12Volt(7), -- type is 12 volt probe + voltageProbeTypeIsMinus12Volt(8), -- type is -12 volt probe + voltageProbeTypeIsIO(9), -- type is I/O probe + voltageProbeTypeIsCore(10), -- type is Core probe + voltageProbeTypeIsFLEA(11), -- type is FLEA (standby) probe + voltageProbeTypeIsBattery(12), -- type is Battery probe + voltageProbeTypeIsTerminator(13), -- type is SCSI Termination probe + voltageProbeTypeIs2Point5Volt(14), -- type is 2.5 volt probe + voltageProbeTypeIsGTL(15), -- type is GTL (ground termination logic) probe + voltageProbeTypeIsDiscrete(16), -- type is voltage probe with discrete reading + voltageProbeTypeIsGenericDiscrete(17), -- type is generic discrete reading + voltageProbeTypeIsPSVoltage(18), -- type is Power Supply voltage probe + voltageProbeTypeIsMemoryStatus(19) -- type is Memory Status probe +} + +VoltageDiscreteReadingEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Voltage Discrete Reading Enum." + SYNTAX INTEGER { + voltageIsGood(1), -- voltage reading is Good + voltageIsBad(2) -- voltage reading is Bad +} + +VoltageProbeTableEntry ::= SEQUENCE { + voltageProbechassisIndex ObjectRange, + voltageProbeIndex ObjectRange, + voltageProbeStateCapabilities StateCapabilitiesFlags, + voltageProbeStateSettings StateSettingsFlags, + voltageProbeStatus StatusProbeEnum, + voltageProbeReading Signed32BitRange, + voltageProbeType VoltageTypeEnum, + voltageProbeLocationName String64, + voltageProbeUpperNonRecoverableThreshold Signed32BitRange, + voltageProbeUpperCriticalThreshold Signed32BitRange, + voltageProbeUpperNonCriticalThreshold Signed32BitRange, + voltageProbeLowerNonCriticalThreshold Signed32BitRange, + voltageProbeLowerCriticalThreshold Signed32BitRange, + voltageProbeLowerNonRecoverableThreshold Signed32BitRange, + voltageProbeProbeCapabilities ProbeCapabilitiesFlags, + voltageProbeDiscreteReading VoltageDiscreteReadingEnum +} + +voltageProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF VoltageProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0020 This object defines the Voltage Probe Table." + ::= { powerGroup 20 } + +voltageProbeTableEntry OBJECT-TYPE + SYNTAX VoltageProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0020.001 This object defines the Voltage Probe Table Entry." + INDEX { voltageProbechassisIndex, + voltageProbeIndex } + ::= { voltageProbeTable 1 } + +voltageProbechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0001 This attribute defines the index (one based) of + the system chassis." + ::= { voltageProbeTableEntry 1 } + +voltageProbeIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0002 This attribute defines the index (one based) of the + voltage probe." + ::= { voltageProbeTableEntry 2 } + +voltageProbeStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0003 This attribute defines the state capabilities of the + voltage probe." + ::= { voltageProbeTableEntry 3 } + +voltageProbeStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0004 This attribute defines the state settings of the + voltage probe." + ::= { voltageProbeTableEntry 4 } + +voltageProbeStatus OBJECT-TYPE + SYNTAX StatusProbeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0005 This attribute defines the probe status of the + voltage probe." + ::= { voltageProbeTableEntry 5 } + +voltageProbeReading OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0006 This attribute defines the reading for a voltage + probe of type other than voltageProbeTypeIsDiscrete. When the value + for voltageProbeType is other than voltageProbeTypeIsDiscrete, the value + returned for this attribute is the voltage that the probe is reading + in millivolts. When the value for voltageProbeType is + voltageProbeTypeIsDiscrete, a value is not returned for this attribute." + ::= { voltageProbeTableEntry 6 } + +voltageProbeType OBJECT-TYPE + SYNTAX VoltageTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0007 This attribute defines the type of the voltage probe." + ::= { voltageProbeTableEntry 7 } + +voltageProbeLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0008 This attribute defines the location name of the + voltage probe." + ::= { voltageProbeTableEntry 8 } + +voltageProbeUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0009 This attribute defines the upper nonrecoverable threshold + of the voltage probe. The value is an integer representing the voltage + of the threshold in millivolts." + ::= { voltageProbeTableEntry 9 } + +voltageProbeUpperCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0010 This attribute defines the upper critical threshold + of the voltage probe. The value is an integer representing the voltage + of the threshold in millivolts." + ::= { voltageProbeTableEntry 10 } + +voltageProbeUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0011 This attribute defines the upper noncritical threshold + of the voltage probe. The value is an integer representing the voltage + of the threshold in millivolts." + ::= { voltageProbeTableEntry 11 } + +voltageProbeLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0012 This attribute defines the lower noncritical threshold + of the voltage probe. The value is an integer representing the voltage + of the threshold in millivolts." + ::= { voltageProbeTableEntry 12 } + +voltageProbeLowerCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0013 This attribute defines the lower critical threshold + of the voltage probe. The value is an integer representing the voltage + of the threshold in millivolts." + ::= { voltageProbeTableEntry 13 } + +voltageProbeLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0014 This attribute defines the lower nonrecoverable threshold + of the voltage probe. The value is an integer representing the voltage + of the threshold in millivolts." + ::= { voltageProbeTableEntry 14 } + +voltageProbeProbeCapabilities OBJECT-TYPE + SYNTAX ProbeCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0015 This attribute defines the probe capabilities of the + voltage probe." + ::= { voltageProbeTableEntry 15 } + +voltageProbeDiscreteReading OBJECT-TYPE + SYNTAX VoltageDiscreteReadingEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0020.0001.0016 This attribute defines the reading for a voltage + probe of type voltageProbeTypeIsDiscrete. When the value for voltageProbeType + is other than voltageProbeTypeIsDiscrete, a value is not returned for this + attribute. When the value for voltageProbeType is voltageProbeTypeIsDiscrete, + the value returned for this attribute is the discrete reading for the probe." + ::= { voltageProbeTableEntry 16 } + + +------------------------------------------------------------------------------- +-- Amperage Probe Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.600.30.1... +------------------------------------------------------------------------------- + +AmperageProbeTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Amperage Probe Type Enum." + SYNTAX INTEGER { + amperageProbeTypeIsOther(1), -- type is other than following values + amperageProbeTypeIsUnknown(2), -- type is unknown + amperageProbeTypeIs1Point5Volt(3), -- type is 1.5 amperage probe + amperageProbeTypeIs3Point3volt(4), -- type is 3.3 amperage probe + amperageProbeTypeIs5Volt(5), -- type is 5 amperage probe + amperageProbeTypeIsMinus5Volt(6), -- type is -5 amperage probe + amperageProbeTypeIs12Volt(7), -- type is 12 amperage probe + amperageProbeTypeIsMinus12Volt(8), -- type is -12 amperage probe + amperageProbeTypeIsIO(9), -- type is I/O probe + amperageProbeTypeIsCore(10), -- type is Core probe + amperageProbeTypeIsFLEA(11), -- type is FLEA (standby) probe + amperageProbeTypeIsBattery(12), -- type is Battery probe + amperageProbeTypeIsTerminator(13), -- type is SCSI Termination probe + amperageProbeTypeIs2Point5Volt(14), -- type is 2.5 amperage probe + amperageProbeTypeIsGTL(15), -- type is GTL (ground termination logic) probe + amperageProbeTypeIsDiscrete(16), -- type is amperage probe with discrete reading + amperageProbeTypeIsPowerSupplyAmps(23), -- type is Power Supply probe with reading in Amps + amperageProbeTypeIsPowerSupplyWatts(24), -- type is Power Supply probe with reading in Watts + amperageProbeTypeIsSystemAmps(25), -- type is System probe with reading in Amps + amperageProbeTypeIsSystemWatts(26) -- type is System probe with reading in Watts +} + +AmperageDiscreteReadingEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Amperage Discrete Reading Enum." + SYNTAX INTEGER { + amperageIsGood(1), -- amperage reading is Good + amperageIsBad(2) -- amperage reading is Bad +} + +AmperageProbeTableEntry ::= SEQUENCE { + amperageProbechassisIndex ObjectRange, + amperageProbeIndex ObjectRange, + amperageProbeStateCapabilities StateCapabilitiesFlags, + amperageProbeStateSettings StateSettingsFlags, + amperageProbeStatus StatusProbeEnum, + amperageProbeReading Signed32BitRange, + amperageProbeType AmperageProbeTypeEnum, + amperageProbeLocationName String64, + amperageProbeUpperNonRecoverableThreshold Signed32BitRange, + amperageProbeUpperCriticalThreshold Signed32BitRange, + amperageProbeUpperNonCriticalThreshold Signed32BitRange, + amperageProbeLowerNonCriticalThreshold Signed32BitRange, + amperageProbeLowerCriticalThreshold Signed32BitRange, + amperageProbeLowerNonRecoverableThreshold Signed32BitRange, + amperageProbeProbeCapabilities ProbeCapabilitiesFlags, + amperageProbeDiscreteReading AmperageDiscreteReadingEnum +} + +amperageProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF AmperageProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0030 This object defines the Amperage Probe Table." + ::= { powerGroup 30 } + +amperageProbeTableEntry OBJECT-TYPE + SYNTAX AmperageProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0030.0001 This object defines the Amperage Probe Table Entry." + INDEX { amperageProbechassisIndex, + amperageProbeIndex } + ::= { amperageProbeTable 1 } + +amperageProbechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0001 This attribute defines the index (one based) of + the system chassis." + ::= { amperageProbeTableEntry 1 } + +amperageProbeIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0002 This attribute defines the index (one based) of the + amperage probe." + ::= { amperageProbeTableEntry 2 } + +amperageProbeStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0003 This attribute defines the state capabilities of the + amperage probe." + ::= { amperageProbeTableEntry 3 } + +amperageProbeStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0004 This attribute defines the state settings of the + amperage probe." + ::= { amperageProbeTableEntry 4 } + +amperageProbeStatus OBJECT-TYPE + SYNTAX StatusProbeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0005 This attribute defines the probe status of the + amperage probe." + ::= { amperageProbeTableEntry 5 } + +amperageProbeReading OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0006 This attribute defines the reading for an amperage + probe of type other than amperageProbeTypeIsDiscrete. + + When the value for amperageProbeType is amperageProbeTypeIsPowerSupplyAmps + or amperageProbeTypeIsSystemAmps, the value returned for this attribute + is the power usage that the probe is reading in tenths of Amps. + + When the value for amperageProbeType is amperageProbeTypeIsPowerSupplyWatts + or amperageProbeTypeIsSystemWatts, the value returned for this attribute + is the power usage that the probe is reading in Watts. + + When the value for amperageProbeType is other than amperageProbeTypeIsDiscrete, + amperageProbeTypeIsPowerSupplyAmps, amperageProbeTypeIsPowerSupplyWatts, + amperageProbeTypeIsSystemAmps or amperageProbeTypeIsSystemWatts, + the value returned for this attribute is the amperage that the probe is + reading in Milliamps. + + When the value for amperageProbeType is amperageProbeTypeIsDiscrete, + a value is not returned for this attribute." + ::= { amperageProbeTableEntry 6 } + +amperageProbeType OBJECT-TYPE + SYNTAX AmperageProbeTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0007 This attribute defines the type of the amperage probe." + ::= { amperageProbeTableEntry 7 } + +amperageProbeLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0008 This attribute defines the location of the amperage probe." + ::= { amperageProbeTableEntry 8 } + +amperageProbeUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0009 This attribute defines the upper nonrecoverable threshold + of the amperage probe. The value is an integer representing the amperage + of the threshold in milliamps." + ::= { amperageProbeTableEntry 9 } + +amperageProbeUpperCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0010 This attribute defines the upper critical threshold + of the amperage probe. The value is an integer representing the amperage + of the threshold in milliamps." + ::= { amperageProbeTableEntry 10 } + +amperageProbeUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0011 This attribute defines the upper noncritical threshold + of the amperage probe. The value is an integer representing the amperage + of the threshold in milliamps." + ::= { amperageProbeTableEntry 11 } + +amperageProbeLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0012 This attribute defines the lower noncritical threshold + of the amperage probe. The value is an integer representing the amperage + of the threshold in milliamps." + ::= { amperageProbeTableEntry 12 } + +amperageProbeLowerCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0013 This attribute defines the lower critical threshold + of the amperage probe. The value is an integer representing the amperage + of the threshold in milliamps." + ::= { amperageProbeTableEntry 13 } + +amperageProbeLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0014 This attribute defines the lower nonrecoverable threshold + of the amperage probe. The value is an integer representing the amperage + of the threshold in milliamps." + ::= { amperageProbeTableEntry 14 } + +amperageProbeProbeCapabilities OBJECT-TYPE + SYNTAX ProbeCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0015 This attribute defines the probe capabilities of the + amperage probe." + ::= { amperageProbeTableEntry 15 } + +amperageProbeDiscreteReading OBJECT-TYPE + SYNTAX AmperageDiscreteReadingEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0030.0001.0016 This attribute defines the reading for an amperage + probe of type amperageProbeTypeIsDiscrete. When the value for amperageProbeType + is other than amperageProbeTypeIsDiscrete, a value is not returned for this + attribute. When the value for amperageProbeType is amperageProbeTypeIsDiscrete, + the value returned for this attribute is the discrete reading for the probe." + ::= { amperageProbeTableEntry 16 } + + +------------------------------------------------------------------------------- +-- System Battery Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.600.50.1... +------------------------------------------------------------------------------- + +SystemBatteryReadingFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Battery Reading Flags." + SYNTAX INTEGER { + -- Note: These values are bit masks, so combination values are possible. + predictiveFailure(1), -- battery predictive failure + failed(2), -- battery failed + presenceDetected(4) -- battery presence detected +} + +SystemBatteryTableEntry ::= SEQUENCE { + systemBatteryChassisIndex ObjectRange, + systemBatteryIndex ObjectRange, + systemBatteryStateCapabilities StateCapabilitiesFlags, + systemBatteryStateSettings StateSettingsFlags, + systemBatteryStatus ObjectStatusEnum, + systemBatteryReading SystemBatteryReadingFlags, + systemBatteryLocationName String64 +} + +systemBatteryTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemBatteryTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0050 This object defines the System Battery Table." + ::= { powerGroup 50 } + +systemBatteryTableEntry OBJECT-TYPE + SYNTAX SystemBatteryTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0050.0001 This object defines the System Battery Table Entry." + INDEX { systemBatteryChassisIndex, + systemBatteryIndex } + ::= { systemBatteryTable 1 } + +systemBatteryChassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0050.0001.0001 This attribute defines the index (one based) of + the system chassis that contains the battery." + ::= { systemBatteryTableEntry 1 } + +systemBatteryIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0050.0001.0002 This attribute defines the index (one based) of the battery." + ::= { systemBatteryTableEntry 2 } + +systemBatteryStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0050.0001.0003 This attribute defines the state capabilities of the battery." + ::= { systemBatteryTableEntry 3 } + +systemBatteryStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0050.0001.0004 This attribute defines the state settings of the battery." + ::= { systemBatteryTableEntry 4 } + +systemBatteryStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0050.0001.0005 This attribute defines the status of the battery." + ::= { systemBatteryTableEntry 5 } + +systemBatteryReading OBJECT-TYPE + SYNTAX SystemBatteryReadingFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0050.0001.0006 This attribute defines the reading of the battery." + ::= { systemBatteryTableEntry 6 } + +systemBatteryLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0050.0001.0007 This attribute defines the location of the battery." + ::= { systemBatteryTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Power Usage Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.600.60.1... +------------------------------------------------------------------------------- + +PowerCapCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Cap Capabilities Flags." + SYNTAX INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- none(0), - no power cap capabilities + enable(1), -- power cap can be enabled + disable(2) -- power cap can be disabled +} + +PowerCapSettingEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Power Cap Setting Enum." + SYNTAX INTEGER { + -- disabled(0), - power cap disabled + enabled(1) -- power cap enabled +} + +PowerUsageTableEntry ::= SEQUENCE { + powerUsageChassisIndex ObjectRange, + powerUsageIndex ObjectRange, + powerUsageStateCapabilities StateCapabilitiesFlags, + powerUsageStateSettings StateSettingsFlags, + powerUsageStatus ObjectStatusEnum, + powerUsageEntityName String64, + powerUsageCumulativeWattage Unsigned32BitRange, + powerUsageCumulativeWattageStartDateName DateName, + powerUsagePeakWatts Unsigned32BitRange, + powerUsagePeakWattsStartDateName DateName, + powerUsagePeakWattsReadingDateName DateName, + powerUsagePeakAmps Unsigned32BitRange, + powerUsagePeakAmpsStartDateName DateName, + powerUsagePeakAmpsReadingDateName DateName, + powerUsageIdlePower Unsigned32BitRange, + powerUsageMaxPotentialPower Unsigned32BitRange, + powerUsagePowerCapCapabilities PowerCapCapabilitiesFlags, + powerUsagePowerCapSetting PowerCapSettingEnum, + powerUsagePowerCapValue Unsigned32BitRange, + powerUsageInstantaneousHeadroom Unsigned32BitRange, + powerUsagePeakHeadroom Unsigned32BitRange +} + +powerUsageTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerUsageTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0060 This object defines the Power Usage Table." + ::= { powerGroup 60 } + +powerUsageTableEntry OBJECT-TYPE + SYNTAX PowerUsageTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0600.0060.0001 This object defines the Power Usage Table Entry." + INDEX { powerUsageChassisIndex, + powerUsageIndex } + ::= { powerUsageTable 1 } + +powerUsageChassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0001 This attribute defines the index (one based) of + the associated system chassis." + ::= { powerUsageTableEntry 1 } + +powerUsageIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0002 This attribute defines the index (one based) of the + power usage information." + ::= { powerUsageTableEntry 2 } + +powerUsageStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0003 This attribute defines the state capabilities of the + power usage information." + ::= { powerUsageTableEntry 3 } + +powerUsageStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0004 This attribute defines the state settings of the + power usage information." + ::= { powerUsageTableEntry 4 } + +powerUsageStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0005 This attribute defines the status of the + power usage information." + ::= { powerUsageTableEntry 5 } + +powerUsageEntityName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0006 This attribute defines the name of the entity + associated with this power usage information." + ::= { powerUsageTableEntry 6 } + +powerUsageCumulativeWattage OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0007 This attribute defines the total wattage used + (in Watt-hours) by this entity since the date and time specified + by the powerUsageCumulativeWattageStartDateName attribute." + ::= { powerUsageTableEntry 7 } + +powerUsageCumulativeWattageStartDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0008 This attribute defines the date and time at + which the data collection started for the value reported by the + powerUsageCumulativeWattage attribute." + ::= { powerUsageTableEntry 8 } + +powerUsagePeakWatts OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0009 This attribute defines the peak wattage reading + (in Watts) for this entity since the date and time specified by the + powerUsagePeakWattsStartDateName attribute." + ::= { powerUsageTableEntry 9 } + +powerUsagePeakWattsStartDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0010 This attribute defines the date and time at + which the data collection started for the value reported by the + powerUsagePeakWatts attribute." + ::= { powerUsageTableEntry 10 } + +powerUsagePeakWattsReadingDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0011 This attribute defines the date and time at + which the value reported by the powerUsagePeakWatts attribute was + measured." + ::= { powerUsageTableEntry 11 } + +powerUsagePeakAmps OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0012 This attribute defines the peak amperage reading + (in tenths of Amps) for this entity since the date and time specified + by the powerUsagePeakAmpsStartDateName attribute." + ::= { powerUsageTableEntry 12 } + +powerUsagePeakAmpsStartDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0013 This attribute defines the date and time at + which the data collection started for the value reported by the + powerUsagePeakAmps attribute." + ::= { powerUsageTableEntry 13 } + +powerUsagePeakAmpsReadingDateName OBJECT-TYPE + SYNTAX DateName + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0014 This attribute defines the date and time at + which the value reported by the powerUsagePeakAmps attribute was + measured." + ::= { powerUsageTableEntry 14 } + +powerUsageIdlePower OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0015 This attribute defines the system idle power + (in Watts). This is the minimum power the system can consume + based on the current hardware configuration." + ::= { powerUsageTableEntry 15 } + +powerUsageMaxPotentialPower OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0016 This attribute defines the system maximum potential + power (in Watts). This is the maximum power the system can consume + based on the current hardware configuration." + ::= { powerUsageTableEntry 16 } + +powerUsagePowerCapCapabilities OBJECT-TYPE + SYNTAX PowerCapCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0017 This attribute defines the system power cap capabilities." + ::= { powerUsageTableEntry 17 } + +powerUsagePowerCapSetting OBJECT-TYPE + SYNTAX PowerCapSettingEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0018 This attribute defines the system power cap setting." + ::= { powerUsageTableEntry 18 } + +powerUsagePowerCapValue OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0019 This attribute defines the system power cap value + (in Watts)." + ::= { powerUsageTableEntry 19 } + +powerUsageInstantaneousHeadroom OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0020 This attribute defines the system instantaneous + headroom (in Watts). This is the theoretical maximum power drawn by + the power supply minus instantaneous power draw." + ::= { powerUsageTableEntry 20 } + +powerUsagePeakHeadroom OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0600.0060.0001.0021 This attribute defines the system peak headroom + (in Watts). This is the theoretical maximum power drawn by the power + supply minus peak power draw." + ::= { powerUsageTableEntry 21 } + + +------------------------------------------------------------------------------- +-- Thermal Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.700 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Cooling Unit Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.700.10.1... +------------------------------------------------------------------------------- + +CoolingUnitTableEntry ::= SEQUENCE { + coolingUnitchassisIndex ObjectRange, + coolingUnitIndex ObjectRange, + coolingUnitStateCapabilties StateCapabilitiesFlags, + coolingUnitStateSettings StateSettingsFlags, + coolingUnitRedundancyStatus StatusRedundancyEnum, + coolingDeviceCountForRedundancy ObjectRange, + coolingUnitName String64, + coolingUnitStatus ObjectStatusEnum +} + +coolingUnitTable OBJECT-TYPE + SYNTAX SEQUENCE OF CoolingUnitTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0700.0010 This object defines the Cooling Unit Table." + ::= { thermalGroup 10 } + +coolingUnitTableEntry OBJECT-TYPE + SYNTAX CoolingUnitTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0700.0010.0001 This object defines the Cooling Unit Table Entry." + INDEX { coolingUnitchassisIndex, + coolingUnitIndex } + ::= { coolingUnitTable 1 } + +coolingUnitchassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0001 This attribute defines the index (one based) of + the associated system chassis." + ::= { coolingUnitTableEntry 1 } + +coolingUnitIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0002 This attribute defines the index (one based) of the + cooling unit." + ::= { coolingUnitTableEntry 2 } + +coolingUnitStateCapabilties OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0003 This attribute defines the state capabilities of the + cooling unit." + ::= { coolingUnitTableEntry 3 } + +coolingUnitStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0004 This attribute defines the state settings of the + cooling unit." + ::= { coolingUnitTableEntry 4 } + +coolingUnitRedundancyStatus OBJECT-TYPE + SYNTAX StatusRedundancyEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0005 This attribute defines the redundancy status of the + cooling unit." + ::= { coolingUnitTableEntry 5 } + +coolingDeviceCountForRedundancy OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0006 This attribute defines the total number of cooling devices + required for this cooling unit to have full redundancy." + ::= { coolingUnitTableEntry 6 } + +coolingUnitName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0007 This attribute defines the name of the cooling unit." + ::= { coolingUnitTableEntry 7 } + +coolingUnitStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0010.0001.0008 This attribute defines the status of the cooling unit." + ::= { coolingUnitTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Cooling Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.700.12.1... +------------------------------------------------------------------------------- + +CoolingDeviceTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Cooling Device Type Enum." + SYNTAX INTEGER { + coolingDeviceTypeIsOther(1), -- type is other than following values + coolingDeviceTypeIsUnknown(2), -- type is unknown + coolingDeviceTypeIsAFan(3), -- type is Fan + coolingDeviceTypeIsABlower(4), -- type is Centrifugal Blower + coolingDeviceTypeIsAChipFan(5), -- type is Fan on Integrated Circuit + coolingDeviceTypeIsACabinetFan(6), -- type is Cabinet Fan + coolingDeviceTypeIsAPowerSupplyFan(7), -- type is Power Supply Fan + coolingDeviceTypeIsAHeatPipe(8), -- type is Heat Pipe + coolingDeviceTypeIsRefrigeration(9), -- type is Integrated Refrigeration Unit + coolingDeviceTypeIsActiveCooling(10), -- type is Active Cooling Device + coolingDeviceTypeIsPassiveCooling(11) -- type is Passive Cooling Device +} + +CoolingDeviceSubTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Cooling Device Sub Type Enum." + SYNTAX INTEGER { + coolingDeviceSubTypeIsOther(1), -- subtype is other than following values + coolingDeviceSubTypeIsUnknown(2), -- subtype is unknown + coolingDeviceSubTypeIsAFanThatReadsInRPM(3),-- subtype is Fan that reads RPM + coolingDeviceSubTypeIsAFanReadsONorOFF(4), -- subtype is Fan that reads Off or On + coolingDeviceSubTypeIsAPowerSupplyFanThatReadsinRPM(5), -- subtype is Power Supply Fan that reads RPM + coolingDeviceSubTypeIsAPowerSupplyFanThatReadsONorOFF(6),-- subtype is Power Supply Fan that reads Off or On + coolingDeviceSubTypeIsDiscrete(16) -- subtype is cooling device with discrete reading +} + +CoolingDeviceDiscreteReadingEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Cooling Device Discrete Reading Enum." + SYNTAX INTEGER { + coolingDeviceIsGood(1), -- cooling device is Good + coolingDeviceIsBad(2) -- cooling device is Bad +} + +CoolingDeviceTableEntry ::= SEQUENCE { + coolingDevicechassisIndex ObjectRange, + coolingDeviceIndex ObjectRange, + coolingDeviceStateCapabilities StateCapabilitiesFlags, + coolingDeviceStateSettings StateSettingsFlags, + coolingDeviceStatus StatusProbeEnum, + coolingDeviceReading Signed32BitRange, + coolingDeviceType CoolingDeviceTypeEnum, + coolingDeviceLocationName String64, + coolingDeviceUpperNonRecoverableThreshold Signed32BitRange, + coolingDeviceUpperCriticalThreshold Signed32BitRange, + coolingDeviceUpperNonCriticalThreshold Signed32BitRange, + coolingDeviceLowerNonCriticalThreshold Signed32BitRange, + coolingDeviceLowerCriticalThreshold Signed32BitRange, + coolingDeviceLowerNonRecoverableThreshold Signed32BitRange, + coolingDevicecoolingUnitIndexReference ObjectRange, + coolingDeviceSubType CoolingDeviceSubTypeEnum, + coolingDeviceProbeCapabilities ProbeCapabilitiesFlags, + coolingDeviceDiscreteReading CoolingDeviceDiscreteReadingEnum, + coolingDeviceFQDD FQDDString +} + +coolingDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF CoolingDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0700.0012 This object defines the Cooling Device Table." + ::= { thermalGroup 12 } + +coolingDeviceTableEntry OBJECT-TYPE + SYNTAX CoolingDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0700.0012.0001 This object defines the Cooling Device Table Entry." + INDEX { coolingDevicechassisIndex, + coolingDeviceIndex } + ::= { coolingDeviceTable 1 } + +coolingDevicechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { coolingDeviceTableEntry 1 } + +coolingDeviceIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0002 This attribute defines the index (one based) of the + cooling device." + ::= { coolingDeviceTableEntry 2 } + +coolingDeviceStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0003 This attribute defines the state capabilities of the + cooling device." + ::= { coolingDeviceTableEntry 3 } + +coolingDeviceStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0004 This attribute defines the state settings of the + cooling device." + ::= { coolingDeviceTableEntry 4 } + +coolingDeviceStatus OBJECT-TYPE + SYNTAX StatusProbeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0005 This attribute defines the probe status of the + cooling device." + ::= { coolingDeviceTableEntry 5 } + +coolingDeviceReading OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0006 This attribute defines the reading for a cooling device + of subtype other than coolingDeviceSubTypeIsDiscrete. When the value + for coolingDeviceSubType is other than coolingDeviceSubTypeIsDiscrete, the + value returned for this attribute is the speed in RPM or the OFF/ON value + of the cooling device. When the value for coolingDeviceSubType is + coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute." + ::= { coolingDeviceTableEntry 6 } + +coolingDeviceType OBJECT-TYPE + SYNTAX CoolingDeviceTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0007 This attribute defines the type of the cooling device." + ::= { coolingDeviceTableEntry 7 } + +coolingDeviceLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0008 This attribute defines the location name of the + cooling device." + ::= { coolingDeviceTableEntry 8 } + +coolingDeviceUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0009 This attribute defines the upper nonrecoverable threshold + of the cooling device. The value is an integer representing fan speed + in revolutions per minute (RPM). It is not applicable to OFF/ON type + cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 9 } + +coolingDeviceUpperCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0010 This attribute defines the upper critical threshold + of the cooling device. The value is an integer representing fan speed + in revolutions per minute (RPM). It is not applicable to OFF/ON type + cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 10 } + +coolingDeviceUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0011 This attribute defines the upper noncritical threshold + of the cooling device. The value is an integer representing fan speed + in revolutions per minute (RPM). It is not applicable to OFF/ON type + cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 11 } + +coolingDeviceLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0012 This attribute defines the lower noncritical threshold + of the cooling device. The value is an integer representing fan speed + in revolutions per minute (RPM). It is not applicable to OFF/ON type + cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 12 } + +coolingDeviceLowerCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0013 This attribute defines the lower critical threshold + of the cooling device. The value is an integer representing fan speed + in revolutions per minute (RPM). It is not applicable to OFF/ON type + cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 13 } + +coolingDeviceLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0014 This attribute defines the lower nonrecoverable threshold + of the cooling device. The value is an integer representing fan speed + in revolutions per minute (RPM). It is not applicable to OFF/ON type + cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 14 } + +coolingDevicecoolingUnitIndexReference OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0015 This attribute defines the index to the associated + cooling unit." + ::= { coolingDeviceTableEntry 15 } + +coolingDeviceSubType OBJECT-TYPE + SYNTAX CoolingDeviceSubTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0016 This attribute defines the subtype of the cooling device." + ::= { coolingDeviceTableEntry 16 } + +coolingDeviceProbeCapabilities OBJECT-TYPE + SYNTAX ProbeCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0017 This attribute defines the probe capabilities of the + cooling device." + ::= { coolingDeviceTableEntry 17 } + +coolingDeviceDiscreteReading OBJECT-TYPE + SYNTAX CoolingDeviceDiscreteReadingEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0018 This attribute defines the reading for a cooling device + of type coolingDeviceSubTypeIsDiscrete. When the value for + coolingDeviceSubType is other than coolingDeviceSubTypeIsDiscrete, a value + is not returned for this attribute. When the value for coolingDeviceSubType + is coolingDeviceSubTypeIsDiscrete, the value returned for this attribute + is the discrete reading for the cooling device." + ::= { coolingDeviceTableEntry 18 } + +coolingDeviceFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0012.0001.0019 Fully qualified device descriptor (FQDD) of the + cooling device." + ::= { coolingDeviceTableEntry 19 } + + +------------------------------------------------------------------------------- +-- Temperature Probe Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.700.20.1... +------------------------------------------------------------------------------- + +TemperatureProbeTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Temperature Probe Type Enum." + SYNTAX INTEGER { + temperatureProbeTypeIsOther(1), -- type is other than following values + temperatureProbeTypeIsUnknown(2), -- type is unknown + temperatureProbeTypeIsAmbientESM(3), -- type is Ambient Embedded Systems Management temperature probe + temperatureProbeTypeIsDiscrete(16) -- type is temperature probe with discrete reading +} + +TemperatureDiscreteReadingEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Temperature Discrete Reading Enum." + SYNTAX INTEGER { + temperatureIsGood(1), -- temperature reading is Good + temperatureIsBad(2) -- temperature reading is Bad +} + +TemperatureProbeTableEntry ::= SEQUENCE { + temperatureProbechassisIndex ObjectRange, + temperatureProbeIndex ObjectRange, + temperatureProbeStateCapabilities StateCapabilitiesFlags, + temperatureProbeStateSettings StateSettingsFlags, + temperatureProbeStatus StatusProbeEnum, + temperatureProbeReading Signed32BitRange, + temperatureProbeType TemperatureProbeTypeEnum, + temperatureProbeLocationName String64, + temperatureProbeUpperNonRecoverableThreshold Signed32BitRange, + temperatureProbeUpperCriticalThreshold Signed32BitRange, + temperatureProbeUpperNonCriticalThreshold Signed32BitRange, + temperatureProbeLowerNonCriticalThreshold Signed32BitRange, + temperatureProbeLowerCriticalThreshold Signed32BitRange, + temperatureProbeLowerNonRecoverableThreshold Signed32BitRange, + temperatureProbeProbeCapabilities ProbeCapabilitiesFlags, + temperatureProbeDiscreteReading TemperatureDiscreteReadingEnum +} + +temperatureProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF TemperatureProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0700.0020 This object defines the Temperature Probe Table." + ::= { thermalGroup 20 } + +temperatureProbeTableEntry OBJECT-TYPE + SYNTAX TemperatureProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "0700.0020.0001 This object defines the Temperature Probe Table Entry." + INDEX { temperatureProbechassisIndex, + temperatureProbeIndex } + ::= { temperatureProbeTable 1 } + +temperatureProbechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { temperatureProbeTableEntry 1 } + +temperatureProbeIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0002 This attribute defines the index (one based) of the + temperature probe." + ::= { temperatureProbeTableEntry 2 } + +temperatureProbeStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0003 This attribute defines the state capabilities of the + temperature probe." + ::= { temperatureProbeTableEntry 3 } + +temperatureProbeStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0004 This attribute defines the state settings of the + temperature probe." + ::= { temperatureProbeTableEntry 4 } + +temperatureProbeStatus OBJECT-TYPE + SYNTAX StatusProbeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0005 This attribute defines the probe status of the + temperature probe." + ::= { temperatureProbeTableEntry 5 } + +temperatureProbeReading OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0006 This attribute defines the reading for a temperature + probe of type other than temperatureProbeTypeIsDiscrete. When the value + for temperatureProbeType is other than temperatureProbeTypeIsDiscrete, + the value returned for this attribute is the temperature that the probe + is reading in tenths of degrees Centigrade. When the value for + temperatureProbeType is temperatureProbeTypeIsDiscrete, a value is not + returned for this attribute." + ::= { temperatureProbeTableEntry 6 } + +temperatureProbeType OBJECT-TYPE + SYNTAX TemperatureProbeTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0007 This attribute defines the type of the temperature probe." + ::= { temperatureProbeTableEntry 7 } + +temperatureProbeLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0008 This attribute defines the location name of the + temperature probe." + ::= { temperatureProbeTableEntry 8 } + +temperatureProbeUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0009 This attribute defines the upper nonrecoverable threshold + of the temperature probe. The value is an integer representing the temperature + of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 9 } + +temperatureProbeUpperCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0010 This attribute defines the upper critical threshold + of the temperature probe. The value is an integer representing the temperature + of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 10 } + +temperatureProbeUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0011 This attribute defines the upper noncritical threshold + of the temperature probe. The value is an integer representing the temperature + of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 11 } + +temperatureProbeLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0012 This attribute defines the lower noncritical threshold + of the temperature probe. The value is an integer representing the temperature + of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 12 } + +temperatureProbeLowerCriticalThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0013 This attribute defines the lower critical threshold + of the temperature probe. The value is an integer representing the temperature + of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 13 } + +temperatureProbeLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0014 This attribute defines the lower nonrecoverable threshold + of the temperature probe. The value is an integer representing the temperature + of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 14 } + +temperatureProbeProbeCapabilities OBJECT-TYPE + SYNTAX ProbeCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0015 This attribute defines the probe capabilities of the + temperature probe." + ::= { temperatureProbeTableEntry 15 } + +temperatureProbeDiscreteReading OBJECT-TYPE + SYNTAX TemperatureDiscreteReadingEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "0700.0020.0001.0016 This attribute defines the reading for a temperature + probe of type temperatureProbeTypeIsDiscrete. When the value for + temperatureProbeType is other than temperatureProbeTypeIsDiscrete, a value + is not returned for this attribute. When the value for temperatureProbeType + is temperatureProbeTypeIsDiscrete, the value returned for this attribute + is the discrete reading for the probe." + ::= { temperatureProbeTableEntry 16 } + + +------------------------------------------------------------------------------- +-- Device Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1100 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Processor Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1100.30.1... +------------------------------------------------------------------------------- + +ProcessorDeviceType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Processor Device Type." + SYNTAX INTEGER { + deviceTypeIsOther(1), -- type is other than following values + deviceTypeIsUnknown(2), -- type is unknown + deviceTypeIsCPU(3), -- type is Central Processing Unit + deviceTypeIsMathProcessor(4), -- type is Math Processor + deviceTypeIsDSP(5), -- type is Digital Signal Processor + deviceTypeIsAVideoProcessor(6) -- type is Video Processor +} + +ProcessorDeviceFamily ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Processor Device Family." + SYNTAX INTEGER { + deviceFamilyIsOther(1), -- family is Other + deviceFamilyIsUnknown(2), -- family is Unknown + deviceFamilyIs8086(3), -- family is 8086 + deviceFamilyIs80286(4), -- family is 80286 + deviceFamilyIsIntel386(5), -- family is Intel386 processor + deviceFamilyIsIntel486(6), -- family is Intel486 processor + deviceFamilyIs8087(7), -- family is 8087 + deviceFamilyIs80287(8), -- family is 80287 + deviceFamilyIs80387(9), -- family is 80387 + deviceFamilyIs80487(10), -- family is 80487 + deviceFamilyIsPentium(11), -- family is Pentium processor Family + deviceFamilyIsPentiumPro(12), -- family is Pentium Pro processor + deviceFamilyIsPentiumII(13), -- family is Pentium II processor + deviceFamilyIsPentiumMMX(14), -- family is Pentium processor with MMX technology + deviceFamilyIsCeleron(15), -- family is Celeron processor + deviceFamilyIsPentiumIIXeon(16), -- family is Pentium II Xeon processor + deviceFamilyIsPentiumIII(17), -- family is Pentium III processor + deviceFamilyIsPentiumIIIXeon(18), -- family is Pentium III Xeon processor + deviceFamilyIsPentiumIIISpeedStep(19), -- family is Pentium III Processor with Intel SpeedStep Technology + deviceFamilyIsItanium(20), -- family is Itanium processor + deviceFamilyIsIntelXeon(21), -- family is Intel Xeon + deviceFamilyIsPentium4(22), -- family is Pentium 4 Processor + deviceFamilyIsIntelXeonMP(23), -- family is Intel Xeon processor MP + deviceFamilyIsIntelItanium2(24), -- family is Intel Itanium 2 processor + deviceFamilyIsK5(25), -- family is K5 Family + deviceFamilyIsK6(26), -- family is K6 Family + deviceFamilyIsK6Dash2(27), -- family is K6-2 + deviceFamilyIsK6Dash3(28), -- family is K6-3 + deviceFamilyIsAMDAthlon(29), -- family is AMD Athlon Processor Family + deviceFamilyIsAMD2900(30), -- family is AMD2900 Family + deviceFamilyIsK6Dash2Plus(31), -- family is K6-2+ + deviceFamilyIsPowerPC(32), -- family is Power PC Family + deviceFamilyIsPowerPC601(33), -- family is Power PC 601 + deviceFamilyIsPowerPC603(34), -- family is Power PC 603 + deviceFamilyIsPowerPC603Plus(35), -- family is Power PC 603+ + deviceFamilyIsPowerPC604(36), -- family is Power PC 604 + deviceFamilyIsPowerPC620(37), -- family is Power PC 620 + deviceFamilyIsPowerPCx704(38), -- family is Power PC x704 + deviceFamilyIsPowerPC750(39), -- family is Power PC 750 + deviceFamilyIsIntelCoreDuo(40), -- family is Intel(R) Core(TM) Duo processor + deviceFamilyIsIntelCoreDuoMobile(41), -- family is Intel(R) Core(TM) Duo mobile processor + deviceFamilyIsIntelCoreSoloMobile(42), -- family is Intel(R) Core(TM) Solo mobile processor + deviceFamilyIsIntelAtom(43), -- family is Intel(R) Atom(TM) processor + deviceFamilyIsAlpha(48), -- family is Alpha Family + deviceFamilyIsAlpha21064(49), -- family is Alpha 21064 + deviceFamilyIsAlpha21066(50), -- family is Alpha 21066 + deviceFamilyIsAlpha21164(51), -- family is Alpha 21164 + deviceFamilyIsAlpha21164PC(52), -- family is Alpha 21164PC + deviceFamilyIsAlpha21164a(53), -- family is Alpha 21164a + deviceFamilyIsAlpha21264(54), -- family is Alpha 21264 + deviceFamilyIsAlpha21364(55), -- family is Alpha 21364 + deviceFamilyIsAMDTurionIIUltraDualMobileM(56), -- family is AMD Turion(TM) II Ultra Dual-Core Mobile M Processor Family + deviceFamilyIsAMDTurionIIDualMobileM(57), -- family is AMD Turion(TM) II Dual-Core Mobile M Processor Family + deviceFamilyIsAMDAthlonIIDualMobileM(58), -- family is AMD Athlon(TM) II Dual-Core Mobile M Processor Family + deviceFamilyIsAMDOpteron6100(59), -- family is AMD Opteron(TM) 6100 Series Processor + deviceFamilyIsAMDOpteron4100(60), -- family is AMD Opteron(TM) 4100 Series Processor + deviceFamilyIsAMDOpteron6200(61), -- family is AMD Opteron(TM) 6200 Series Processor + deviceFamilyIsAMDOpteron4200(62), -- family is AMD Opteron(TM) 4200 Series Processor + deviceFamilyIsMIPS(64), -- family is MIPS Family + deviceFamilyIsMIPSR4000(65), -- family is MIPS R4000 + deviceFamilyIsMIPSR4200(66), -- family is MIPS R4200 + deviceFamilyIsMIPSR4400(67), -- family is MIPS R4400 + deviceFamilyIsMIPSR4600(68), -- family is MIPS R4600 + deviceFamilyIsMIPSR10000(69), -- family is MIPS R10000 + deviceFamilyIsSPARC(80), -- family is SPARC Family + deviceFamilyIsSuperSPARC(81), -- family is SuperSPARC + deviceFamilyIsmicroSPARCII(82), -- family is microSPARC II + deviceFamilyIsmicroSPARCIIep(83), -- family is microSPARC IIep + deviceFamilyIsUltraSPARC(84), -- family is UltraSPARC + deviceFamilyIsUltraSPARCII(85), -- family is UltraSPARC II + deviceFamilyIsUltraSPARCIIi(86), -- family is UltraSPARC IIi + deviceFamilyIsUltraSPARCIII(87), -- family is UltraSPARC III + deviceFamilyIsUltraSPARCIIIi(88), -- family is UltraSPARC IIIi + deviceFamilyIs68040(96), -- family is 68040 Family + deviceFamilyIs68xxx(97), -- family is 68xxx + deviceFamilyIs68000(98), -- family is 68000 + deviceFamilyIs68010(99), -- family is 68010 + deviceFamilyIs68020(100), -- family is 68020 + deviceFamilyIs68030(101), -- family is 68030 + deviceFamilyIsHobbit(112), -- family is Hobbit Family + deviceFamilyIsCrusoeTM5000(120), -- family is Crusoe TM5000 Family + deviceFamilyIsCrusoeTM3000(121), -- family is Crusoe TM3000 Family + deviceFamilyIsEfficeonTM8000(122), -- family is Efficeon TM8000 Family + deviceFamilyIsWeitek(128), -- family is Weitek + deviceFamilyIsIntelCeleronM(130), -- family is Intel(R) Celeron(R) M processor + deviceFamilyIsAMDAthlon64(131), -- family is AMD Athlon 64 Processor Family + deviceFamilyIsAMDOpteron(132), -- family is AMD Opteron Processor Family + deviceFamilyIsAMDSempron(133), -- family is AMD Sempron Processor Family + deviceFamilyIsAMDTurion64Mobile(134), -- family is AMD Turion 64 Mobile Technology + deviceFamilyIsDualCoreAMDOpteron(135), -- family is Dual-Core AMD Opteron(TM) Processor Family + deviceFamilyIsAMDAthlon64X2DualCore(136), -- family is AMD Athlon 64 X2 Dual-Core Processor Family + deviceFamilyIsAMDTurion64X2Mobile(137), -- family is AMD Turion(TM) 64 X2 Mobile Technology + deviceFamilyIsQuadCoreAMDOpteron(138), -- family is Quad-Core AMD Opteron(TM) Processor Family + deviceFamilyIsThirdGenerationAMDOpteron(139), -- family is Third-Generation AMD Opteron(TM) Processor Family + deviceFamilyIsAMDPhenomFXQuadCore(140), -- family is AMD Phenom(TM) FX Quad-Core Processor Family + deviceFamilyIsAMDPhenomX4QuadCore(141), -- family is AMD Phenom(TM) X4 Quad-Core Processor Family + deviceFamilyIsAMDPhenomX2DualCore(142), -- family is AMD Phenom(TM) X2 Dual-Core Processor Family + deviceFamilyIsAMDAthlonX2DualCore(143), -- family is AMD Athlon(TM) X2 Dual-Core Processor Family + deviceFamilyIsPARISC(144), -- family is PA-RISC Family + deviceFamilyIsPARISC8500(145), -- family is PA-RISC 8500 + deviceFamilyIsPARISC8000(146), -- family is PA-RISC 8000 + deviceFamilyIsPARISC7300LC(147), -- family is PA-RISC 7300LC + deviceFamilyIsPARISC7200(148), -- family is PA-RISC 7200 + deviceFamilyIsPARISC7100LC(149), -- family is PA-RISC 7100LC + deviceFamilyIsPARISC7100(150), -- family is PA-RISC 7100 + deviceFamilyIsV30(160), -- family is V30 Family + deviceFamilyIsQuadCoreIntelXeon3200(161), -- family is Quad-Core Intel(R) Xeon(R) processor 3200 Series + deviceFamilyIsDualCoreIntelXeon3000(162), -- family is Dual-Core Intel(R) Xeon(R) processor 3000 Series + deviceFamilyIsQuadCoreIntelXeon5300(163), -- family is Quad-Core Intel(R) Xeon(R) processor 5300 Series + deviceFamilyIsDualCoreIntelXeon5100(164), -- family is Dual-Core Intel(R) Xeon(R) processor 5100 Series + deviceFamilyIsDualCoreIntelXeon5000(165), -- family is Dual-Core Intel(R) Xeon(R) processor 5000 Series + deviceFamilyIsDualCoreIntelXeonLV(166), -- family is Dual-Core Intel(R) Xeon(R) processor LV + deviceFamilyIsDualCoreIntelXeonULV(167), -- family is Dual-Core Intel(R) Xeon(R) processor ULV + deviceFamilyIsDualCoreIntelXeon7100(168), -- family is Dual-Core Intel(R) Xeon(R) processor 7100 Series + deviceFamilyIsQuadCoreIntelXeon5400(169), -- family is Quad-Core Intel(R) Xeon(R) processor 5400 Series + deviceFamilyIsQuadCoreIntelXeon(170), -- family is Quad-Core Intel(R) Xeon(R) processor + deviceFamilyIsDualCoreIntelXeon5200(171), -- family is Dual-Core Intel(R) Xeon(R) processor 5200 Series + deviceFamilyIsDualCoreIntelXeon7200(172), -- family is Dual-Core Intel(R) Xeon(R) processor 7200 Series + deviceFamilyIsQuadCoreIntelXeon7300(173), -- family is Quad-Core Intel(R) Xeon(R) processor 7300 Series + deviceFamilyIsQuadCoreIntelXeon7400(174), -- family is Quad-Core Intel(R) Xeon(R) processor 7400 Series + deviceFamilyIsMultiCoreIntelXeon7400(175), -- family is Multi-Core Intel(R) Xeon(R) processor 7400 Series + deviceFamilyIsM1(176), -- family is M1 Family + deviceFamilyIsM2(177), -- family is M2 Family + deviceFamilyIsIntelPentium4HT(179), -- family is Intel(R) Pentium(R) 4 HT processor + deviceFamilyIsAS400(180), -- family is AS400 Family + deviceFamilyIsAMDAthlonXP(182), -- family is AMD Athlon XP Processor Family + deviceFamilyIsAMDAthlonMP(183), -- family is AMD Athlon MP Processor Family + deviceFamilyIsAMDDuron(184), -- family is AMD Duron Processor Family + deviceFamilyIsIntelPentiumM(185), -- family is Intel Pentium M processor + deviceFamilyIsIntelCeleronD(186), -- family is Intel Celeron D processor + deviceFamilyIsIntelPentiumD(187), -- family is Intel Pentium D processor + deviceFamilyIsIntelPentiumExtreme(188), -- family is Intel Pentium Processor Extreme Edition + deviceFamilyIsIntelCoreSolo(189), -- family is Intel(R) Core(TM) Solo processor + deviceFamilyIsIntelCore2(190), -- family is Intel(R) Core(TM)2 processor + deviceFamilyIsIntelCore2Duo(191), -- family is Intel(R) Core(TM)2 Duo processor + deviceFamilyIsIntelCore2Solo(192), -- family is Intel(R) Core(TM)2 Solo processor + deviceFamilyIsIntelCore2Extreme(193), -- family is Intel(R) Core(TM)2 Extreme processor + deviceFamilyIsIntelCore2Quad(194), -- family is Intel(R) Core(TM)2 Quad processor + deviceFamilyIsIntelCore2ExtremeMobile(195), -- family is Intel(R) Core(TM)2 Extreme mobile processor + deviceFamilyIsIntelCore2DuoMobile(196), -- family is Intel(R) Core(TM)2 Duo mobile processor + deviceFamilyIsIntelCore2SoloMobile(197), -- family is Intel(R) Core(TM)2 Solo mobile processor + deviceFamilyIsIntelCorei7(198), -- family is Intel(R) Core(TM) i7 processor + deviceFamilyIsDualCoreIntelCeleron(199), -- family is Dual-Core Intel(R) Celeron(R) Processor + deviceFamilyIsIBM390(200), -- family is IBM390 Family + deviceFamilyIsG4(201), -- family is G4 + deviceFamilyIsG5(202), -- family is G5 + deviceFamilyIsESA390G6(203), -- family is ESA/390 G6 + deviceFamilyIszArchitectur(204), -- family is z/Architectur base + deviceFamilyIsIntelCorei5(205), -- family is Intel(R) Core(TM) i5 processor + deviceFamilyIsIntelCorei3(206), -- family is Intel(R) Core(TM) i3 processor + deviceFamilyIsVIAC7M(210), -- family is VIA C7(TM)-M Processor Family + deviceFamilyIsVIAC7D(211), -- family is VIA C7(TM)-D Processor Family + deviceFamilyIsVIAC7(212), -- family is VIA C7(TM) Processor Family + deviceFamilyIsVIAEden(213), -- family is VIA Eden(TM) Processor Family + deviceFamilyIsMultiCoreIntelXeon(214), -- family is Multi-Core Intel(R) Xeon(R) processor + deviceFamilyIsDualCoreIntelXeon3xxx(215), -- family is Dual-Core Intel(R) Xeon(R) processor 3xxx Series + deviceFamilyIsQuadCoreIntelXeon3xxx(216), -- family is Quad-Core Intel(R) Xeon(R) processor 3xxx Series + deviceFamilyIsVIANano(217), -- family is VIA Nano(TM) Processor Family + deviceFamilyIsDualCoreIntelXeon5xxx(218), -- family is Dual-Core Intel(R) Xeon(R) processor 5xxx Series + deviceFamilyIsQuadCoreIntelXeon5xxx(219), -- family is Quad-Core Intel(R) Xeon(R) processor 5xxx Series + deviceFamilyIsDualCoreIntelXeon7xxx(221), -- family is Dual-Core Intel(R) Xeon(R) processor 7xxx Series + deviceFamilyIsQuadCoreIntelXeon7xxx(222), -- family is Quad-Core Intel(R) Xeon(R) processor 7xxx Series + deviceFamilyIsMultiCoreIntelXeon7xxx(223), -- family is Multi-Core Intel(R) Xeon(R) processor 7xxx Series + deviceFamilyIsMultiCoreIntelXeon3400(224), -- family is Multi-Core Intel(R) Xeon(R) processor 3400 Series + deviceFamilyIsEmbeddedAMDOpertonQuadCore(230), -- family is Embedded AMD Opteron(TM) Quad-Core Processor Family + deviceFamilyIsAMDPhenomTripleCore(231), -- family is AMD Phenom(TM) Triple-Core Processor Family + deviceFamilyIsAMDTurionUltraDualCoreMobile(232), -- family is AMD Turion(TM) Ultra Dual-Core Mobile Processor Family + deviceFamilyIsAMDTurionDualCoreMobile(233), -- family is AMD Turion(TM) Dual-Core Mobile Processor Family + deviceFamilyIsAMDAthlonDualCore(234), -- family is AMD Athlon(TM) Dual-Core Processor Family + deviceFamilyIsAMDSempronSI(235), -- family is AMD Sempron(TM) SI Processor Family + deviceFamilyIsAMDPhenomII(236), -- family is AMD Phenom(TM) II Processor Family + deviceFamilyIsAMDAthlonII(237), -- family is AMD Athlon(TM) II Processor Family + deviceFamilyIsSixCoreAMDOpteron(238), -- family is Six-Core AMD Opteron(TM) Processor Family + deviceFamilyIsAMDSempronM(239), -- family is AMD Sempron(TM) M Processor Family + deviceFamilyIsi860(250), -- family is i860 + deviceFamilyIsi960(251) -- family is i960 +} + +ProcessorDeviceStatusState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Processor Device Status State." + SYNTAX INTEGER { + other(1), -- state is other than following values + unknown(2), -- state is unknown + enabled(3), -- state is enabled + userDisabled(4), -- state is disabled by user via BIOS setup + biosDisabled(5), -- state is disabled by BIOS (POST error) + idle(6) -- state is idle +} + +ProcessorDeviceTableEntry ::= SEQUENCE { + processorDevicechassisIndex ObjectRange, + processorDeviceIndex ObjectRange, + processorDeviceStateCapabilities StateCapabilitiesFlags, + processorDeviceStateSettings StateSettingsFlags, + processorDeviceStatus ObjectStatusEnum, + processorDeviceType ProcessorDeviceType, + processorDeviceManufacturerName String64, + processorDeviceStatusState ProcessorDeviceStatusState, + processorDeviceFamily ProcessorDeviceFamily, + processorDeviceMaximumSpeed Unsigned32BitRange, + processorDeviceCurrentSpeed Unsigned32BitRange, + processorDeviceExternalClockSpeed Unsigned32BitRange, + processorDeviceVoltage Signed32BitRange, + processorDeviceVersionName String64, + processorDeviceCoreCount Unsigned32BitRange, + processorDeviceCoreEnabledCount Unsigned32BitRange, + processorDeviceThreadCount Unsigned32BitRange, + processorDeviceCharacteristics Unsigned16BitRange, + processorDeviceExtendedCapabilities Unsigned16BitRange, + processorDeviceExtendedSettings Unsigned16BitRange, + processorDeviceBrandName String64, + processorDeviceFQDD FQDDString +} + +processorDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF ProcessorDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0030 This object defines the Processor Device Table." + ::= { deviceGroup 30 } + +processorDeviceTableEntry OBJECT-TYPE + SYNTAX ProcessorDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0030.0001 This object defines the Processor Device Table Entry." + INDEX { processorDevicechassisIndex, + processorDeviceIndex } + ::= { processorDeviceTable 1 } + +processorDevicechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { processorDeviceTableEntry 1 } + +processorDeviceIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0002 This attribute defines the index (one based) of the + processor device." + ::= { processorDeviceTableEntry 2 } + +processorDeviceStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0003 This attribute defines the state capabilities of the + processor device." + ::= { processorDeviceTableEntry 3 } + +processorDeviceStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0004 This attribute defines the state settings of the + processor device." + ::= { processorDeviceTableEntry 4 } + +processorDeviceStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0005 This attribute defines the status of the + processor device." + ::= { processorDeviceTableEntry 5 } + +processorDeviceType OBJECT-TYPE + SYNTAX ProcessorDeviceType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0007 This attribute defines the type of the processor device." + ::= { processorDeviceTableEntry 7 } + +processorDeviceManufacturerName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0008 This attribute defines the name of the manufacturer + of the processor device." + ::= { processorDeviceTableEntry 8 } + +processorDeviceStatusState OBJECT-TYPE + SYNTAX ProcessorDeviceStatusState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0009 This attribute defines the status state of the + processor device." + ::= { processorDeviceTableEntry 9 } + +processorDeviceFamily OBJECT-TYPE + SYNTAX ProcessorDeviceFamily + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0010 This attribute defines the family of the + processor device." + ::= { processorDeviceTableEntry 10 } + +processorDeviceMaximumSpeed OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0011 This attribute defines the maximum speed of the + processor device in MHz. Zero indicates the maximum speed is unknown." + ::= { processorDeviceTableEntry 11 } + +processorDeviceCurrentSpeed OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0012 This attribute defines the current speed of the + processor device in MHz. Zero indicates the current speed is unknown." + ::= { processorDeviceTableEntry 12 } + +processorDeviceExternalClockSpeed OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0013 This attribute defines the speed of the + external clock for the processor device in MHz. Zero indicates + the external clock speed is unknown." + ::= { processorDeviceTableEntry 13 } + +processorDeviceVoltage OBJECT-TYPE + SYNTAX Signed32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0014 This attribute defines the voltage powering the + processor device in millivolts. Zero indicates the voltage is unknown." + ::= { processorDeviceTableEntry 14 } + +processorDeviceVersionName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0016 This attribute defines the version of the + processor device. On some systems, this value contains the + brand and stepping information; on other systems, this value + contains the model and stepping information." + ::= { processorDeviceTableEntry 16 } + +processorDeviceCoreCount OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0017 This attribute defines the number of processor cores + detected for the processor device." + ::= { processorDeviceTableEntry 17 } + +processorDeviceCoreEnabledCount OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0018 This attribute defines the number of processor cores + enabled for the processor device." + ::= { processorDeviceTableEntry 18 } + +processorDeviceThreadCount OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0019 This attribute defines the number of processor threads + detected for the processor device." + ::= { processorDeviceTableEntry 19 } + +processorDeviceCharacteristics OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0020 This attribute defines characteristics of the + processor device. This attribute is a bit field where a bit has the meaning + defined below when set to 1 (one). + + NOTE: Bits 2-15 need to be examined in the context of bit 1. + If bit 1 is set, the processor charactistics are unknown and bits 2-15 cannot + be used to determine if the functions associated with the bits are supported. + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 Reserved + Bit 1 Unknown + Bit 2 64-bit capable + Bit 3-15 Reserved" + ::= { processorDeviceTableEntry 20 } + +processorDeviceExtendedCapabilities OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0021 This attribute defines extended capabilities of the + processor device. This attribute is a bit field where a bit has the meaning + defined below when set to 1 (one). + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 Virtualization Technology (VT) supported + Bit 2 eXecute Disable (XD) supported + Bit 3 Hyper-Threading (HT) supported + Bit 4 Turbo Mode supported" + ::= { processorDeviceTableEntry 21 } + +processorDeviceExtendedSettings OBJECT-TYPE + SYNTAX Unsigned16BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0022 This attribute defines extended settings of the + processor device. This attribute is a bit field where a bit has the meaning + defined below when set to 1 (one). + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 Virtualization Technology (VT) enabled + Bit 2 eXecute Disable (XD) enabled + Bit 3 Hyper-Threading (HT) enabled + Bit 4 Turbo Mode enabled" + ::= { processorDeviceTableEntry 22 } + +processorDeviceBrandName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0023 This attribute defines the brand of the + processor device." + ::= { processorDeviceTableEntry 23 } + +processorDeviceFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0030.0001.0026 Fully qualified device descriptor (FQDD) of the + processor device." + ::= { processorDeviceTableEntry 26 } + + +------------------------------------------------------------------------------- +-- Processor Device Status Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1100.32.1... +------------------------------------------------------------------------------- + +ProcessorDeviceStatusReadingFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Processor Device Status Reading Flags." + SYNTAX INTEGER { + -- Note: These values are bit masks, so combination values are possible. + internalError(1), -- Internal Error + thermalTrip(2), -- Thermal Trip + configurationError(32), -- Configuration Error + processorPresent(128), -- Processor Present + processorDisabled(256), -- Processor Disabled + terminatorPresent(512), -- Terminator Present + processorThrottled(1024) -- Processor Throttled +} + +ProcessorDeviceStatusTableEntry ::= SEQUENCE { + processorDeviceStatusChassisIndex ObjectRange, + processorDeviceStatusIndex ObjectRange, + processorDeviceStatusStateCapabilities StateCapabilitiesFlags, + processorDeviceStatusStateSettings StateSettingsFlags, + processorDeviceStatusStatus ObjectStatusEnum, + processorDeviceStatusReading ProcessorDeviceStatusReadingFlags, + processorDeviceStatusLocationName String64 +} + +processorDeviceStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF ProcessorDeviceStatusTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0032 This object defines the Processor Device Status Table." + ::= { deviceGroup 32 } + +processorDeviceStatusTableEntry OBJECT-TYPE + SYNTAX ProcessorDeviceStatusTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0032.0001 This object defines the Processor Device Status Table Entry." + INDEX { processorDeviceStatusChassisIndex, + processorDeviceStatusIndex } + ::= { processorDeviceStatusTable 1 } + +processorDeviceStatusChassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0032.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { processorDeviceStatusTableEntry 1 } + +processorDeviceStatusIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0032.0001.0002 This attribute defines the index (one based) of the + processor device status probe." + ::= { processorDeviceStatusTableEntry 2 } + +processorDeviceStatusStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0032.0001.0003 This attribute defines the state capabilities of the + processor device status probe." + ::= { processorDeviceStatusTableEntry 3 } + +processorDeviceStatusStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0032.0001.0004 This attribute defines the state settings of the + processor device status probe." + ::= { processorDeviceStatusTableEntry 4 } + +processorDeviceStatusStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0032.0001.0005 This attribute defines the status of the + processor device status probe. This status will be joined into + the processorDeviceStatus attribute." + ::= { processorDeviceStatusTableEntry 5 } + +processorDeviceStatusReading OBJECT-TYPE + SYNTAX ProcessorDeviceStatusReadingFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0032.0001.0006 This attribute defines the reading of the + processor device status probe." + ::= { processorDeviceStatusTableEntry 6 } + +processorDeviceStatusLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0032.0001.0007 This attribute defines the location name of the + processor device status probe." + ::= { processorDeviceStatusTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Memory Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1100.50.1... +------------------------------------------------------------------------------- + +MemoryDeviceTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Memory Device Type Enum." + SYNTAX INTEGER { + deviceTypeIsOther(1), -- type is other than following values + deviceTypeIsUnknown(2), -- type is unknown + deviceTypeIsDRAM(3), -- type is DRAM + deviceTypeIsEDRAM(4), -- type is EDRAM + deviceTypeIsVRAM(5), -- type is VRAM + deviceTypeIsSRAM(6), -- type is SRAM + deviceTypeIsRAM(7), -- type is RAM + deviceTypeIsROM(8), -- type is ROM + deviceTypeIsFLASH(9), -- type is FLASH + deviceTypeIsEEPROM(10), -- type is EEPROM + deviceTypeIsFEPROM(11), -- type is FEPROM + deviceTypeIsEPROM(12), -- type is EPROM + deviceTypeIsCDRAM(13), -- type is CDRAM + deviceTypeIs3DRAM(14), -- type is 3DRAM + deviceTypeIsSDRAM(15), -- type is SDRAM + deviceTypeIsSGRAM(16), -- type is SGRAM + deviceTypeIsRDRAM(17), -- type is RDRAM + deviceTypeIsDDR(18), -- type is DDR + deviceTypeIsDDR2(19), -- type is DDR2 + deviceTypeIsDDR2FBDIMM(20), -- type is DDR2 FB-DIMM + deviceTypeIsDDR3(24), -- type is DDR3 + deviceTypeIsFBD2(25), -- type is FBD2 + deviceTypeIsDDR4(26) -- type is DDR4 +} + +MemoryDeviceTableEntry ::= SEQUENCE { + memoryDevicechassisIndex ObjectRange, + memoryDeviceIndex ObjectRange, + memoryDeviceStateCapabilities StateCapabilitiesFlags, + memoryDeviceStateSettings StateSettingsFlags, + memoryDeviceStatus ObjectStatusEnum, + memoryDeviceType MemoryDeviceTypeEnum, + memoryDeviceLocationName String64, + memoryDeviceBankLocationName String64, + memoryDeviceSize Unsigned32BitRange, + memoryDeviceSpeed Unsigned32BitRange, + memoryDeviceManufacturerName String64, + memoryDevicePartNumberName String64, + memoryDeviceSerialNumberName String64, + memoryDeviceFQDD FQDDString, + memoryDeviceCurrentOperatingSpeed Unsigned32BitRange +} + +memoryDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF MemoryDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0050 This object defines the Memory Device Table." + ::= { deviceGroup 50 } + +memoryDeviceTableEntry OBJECT-TYPE + SYNTAX MemoryDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0050.0001 This object defines the Memory Device Table Entry." + INDEX { memoryDevicechassisIndex, + memoryDeviceIndex } + ::= { memoryDeviceTable 1 } + +memoryDevicechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { memoryDeviceTableEntry 1 } + +memoryDeviceIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0002 This attribute defines the index (one based) of the + memory device." + ::= { memoryDeviceTableEntry 2 } + +memoryDeviceStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0003 This attribute defines the state capabilities of the + memory device." + ::= { memoryDeviceTableEntry 3 } + +memoryDeviceStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0004 This attribute defines the state settings of the + memory device." + ::= { memoryDeviceTableEntry 4 } + +memoryDeviceStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0005 This attribute defines the status of the memory device." + ::= { memoryDeviceTableEntry 5 } + +memoryDeviceType OBJECT-TYPE + SYNTAX MemoryDeviceTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0007 This attribute defines the type of the memory device." + ::= { memoryDeviceTableEntry 7 } + +memoryDeviceLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0008 This attribute defines the location of the memory device." + ::= { memoryDeviceTableEntry 8 } + +memoryDeviceBankLocationName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0010 This attribute defines the location of the bank for the + memory device." + ::= { memoryDeviceTableEntry 10 } + +memoryDeviceSize OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0014 This attribute defines the size in KBytes of the + memory device. Zero indicates no memory installed; 2,147,483,647 indicates + an unknown memory size." + ::= { memoryDeviceTableEntry 14 } + +memoryDeviceSpeed OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0015 This attribute defines the maximum capable speed + in megahertz (MHz) of the memory device. Zero indicates an unknown speed." + ::= { memoryDeviceTableEntry 15 } + +memoryDeviceManufacturerName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0021 This attribute defines the manufacturer of the + memory device." + ::= { memoryDeviceTableEntry 21 } + +memoryDevicePartNumberName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0022 This attribute defines the manufacturer's part number + for the memory device." + ::= { memoryDeviceTableEntry 22 } + +memoryDeviceSerialNumberName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0023 This attribute defines the serial number of the + memory device." + ::= { memoryDeviceTableEntry 23 } + +memoryDeviceFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0026 Fully qualified device descriptor (FQDD) of the + memory device." + ::= { memoryDeviceTableEntry 26 } + +memoryDeviceCurrentOperatingSpeed OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0050.0001.0027 This attribute defines the current operating speed + in megahertz (MHz) of the memory device. Zero indicates an unknown speed." + ::= { memoryDeviceTableEntry 27 } + + +------------------------------------------------------------------------------- +-- PCI Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1100.80.1... +------------------------------------------------------------------------------- + +PCIDeviceTableEntry ::= SEQUENCE { + pCIDevicechassisIndex ObjectRange, + pCIDeviceIndex ObjectRange, + pCIDeviceStateCapabilities StateCapabilitiesFlags, + pCIDeviceStateSettings StateSettingsFlags, + pCIDeviceStatus ObjectStatusEnum, + pCIDeviceDataBusWidth Unsigned32BitRange, + pCIDeviceManufacturerName String64, + pCIDeviceDescriptionName String64, + pCIDeviceFQDD FQDDString +} + +pCIDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF PCIDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0080 This object defines the PCI Device Table." + ::= { deviceGroup 80 } + +pCIDeviceTableEntry OBJECT-TYPE + SYNTAX PCIDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0080.0001 This object defines the PCI Device Table Entry." + INDEX { pCIDevicechassisIndex, + pCIDeviceIndex } + ::= { pCIDeviceTable 1 } + +pCIDevicechassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { pCIDeviceTableEntry 1 } + +pCIDeviceIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0002 This attribute defines the index (one based) of the + PCI device." + ::= { pCIDeviceTableEntry 2 } + +pCIDeviceStateCapabilities OBJECT-TYPE + SYNTAX StateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0003 This attribute defines the state capabilities of the + PCI device." + ::= { pCIDeviceTableEntry 3 } + +pCIDeviceStateSettings OBJECT-TYPE + SYNTAX StateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0004 This attribute defines the state settings of the + PCI device." + ::= { pCIDeviceTableEntry 4 } + +pCIDeviceStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0005 This attribute defines the status of the PCI device." + ::= { pCIDeviceTableEntry 5 } + +pCIDeviceDataBusWidth OBJECT-TYPE + SYNTAX Unsigned32BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0007 This attribute defines the width of the data bus + of the PCI device. This attribute contains an enumeration value. + The possible values and their meanings are defined below. + + Value Meaning + ---------- -------------- + 0x00000001 Other + 0x00000002 Unknown + 0x00000003 8 bit + 0x00000004 16 bit + 0x00000005 32 bit + 0x00000006 64 bit + 0x00000007 128 bit + 0x00000008 1x or x1 + 0x00000009 2x or x2 + 0x0000000A 4x or x4 + 0x0000000B 8x or x8 + 0x0000000C 12x or x12 + 0x0000000D 16x or x16 + 0x0000000E 32x or x32" + ::= { pCIDeviceTableEntry 7 } + +pCIDeviceManufacturerName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0008 This attribute defines the name of the manufacturer + of the PCI device." + ::= { pCIDeviceTableEntry 8 } + +pCIDeviceDescriptionName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0009 This attribute defines the description of the PCI device." + ::= { pCIDeviceTableEntry 9 } + +pCIDeviceFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0080.0001.0012 Fully qualified device descriptor (FQDD) of the + PCI device." + ::= { pCIDeviceTableEntry 12 } + + +------------------------------------------------------------------------------- +-- Network Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1100.90.1... +------------------------------------------------------------------------------- + +NetworkDeviceConnectionStatusEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Network Device Connection Status Enum." + SYNTAX INTEGER { + -- unknown(0), - unable to determine connection status + connected(1), -- media reports connected + disconnected(2), -- media reports disconnected + driverBad(3), -- driver cannot be opened to determine status + driverDisabled(4), -- driver is disabled + hardwareInitalizing(10), -- hardware is initializing + hardwareResetting(11), -- hardware is resetting + hardwareClosing(12), -- hardware is closing down + hardwareNotReady(13) -- hardware is not ready +} + +NetworkDeviceTOECapabilityFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Network Device TOE Capability Flags." + SYNTAX INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- none(0), - querying for TOE capability is not supported + unknown(1), -- querying for TOE capability is supported but query returned an error + available(2), -- device has TOE capability + notAvailable(4), -- device does not have TOE capability + cannotBeDetermined(8), -- querying for TOE capability is supported but an error prevented querying + driverNotResponding(16) -- querying for TOE capability is supported but driver did not respond to query +} + +NetworkDeviceiSCSICapabilityFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Network Device iSCSI Capability Flags." + SYNTAX INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- none(0), - querying for iSCSI capability is not supported + unknown(1), -- querying for iSCSI capability is supported but query returned an error + available(2), -- device has iSCSI capability + notAvailable(4), -- device does not have iSCSI capability + cannotBeDetermined(8), -- querying for iSCSI capability is supported but an error prevented querying + driverNotResponding(16) -- querying for iSCSI capability is supported but driver did not respond to query +} + +NetworkDeviceCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Network Device Capabilities Flags." + SYNTAX INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- notSupported(0), - device does not support reporting capabilities via this attribute + supported(1), -- device supports reporting capabilities via this attribute + toe(2), -- device has TOE capability + iscsiOffload(4), -- device has iSCSI Offload capability + fcoeOffload(8) -- device has FCoE Offload capability +} + +NetworkDeviceTableEntry ::= SEQUENCE { + networkDeviceChassisIndex ObjectRange, + networkDeviceIndex ObjectRange, + networkDeviceStatus ObjectStatusEnum, + networkDeviceConnectionStatus NetworkDeviceConnectionStatusEnum, + networkDeviceProductName String64, + networkDeviceVendorName String64, + networkDeviceCurrentMACAddress MACAddress, + networkDevicePermanentMACAddress MACAddress, + networkDevicePCIBusNumber Unsigned8BitRange, + networkDevicePCIDeviceNumber Unsigned8BitRange, + networkDevicePCIFunctionNumber Unsigned8BitRange, + networkDeviceTOECapabilityFlags NetworkDeviceTOECapabilityFlags, + networkDeviceiSCSICapabilityFlags NetworkDeviceiSCSICapabilityFlags, + networkDeviceiSCSIEnabled BooleanType, + networkDeviceCapabilities NetworkDeviceCapabilitiesFlags, + networkDeviceFQDD FQDDString +} + +networkDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF NetworkDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0090 This object defines the Network Device Table." + ::= { deviceGroup 90 } + +networkDeviceTableEntry OBJECT-TYPE + SYNTAX NetworkDeviceTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1100.0090.0001 This object defines the Network Device Table Entry." + INDEX { networkDeviceChassisIndex, + networkDeviceIndex } + ::= { networkDeviceTable 1 } + +networkDeviceChassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0001 This attribute defines the index (one based) of the + system chassis that contains the network device." + ::= { networkDeviceTableEntry 1 } + +networkDeviceIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0002 This attribute defines the index (one based) of the + network device." + ::= { networkDeviceTableEntry 2 } + +networkDeviceStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0003 This attribute defines the status of the network device." + ::= { networkDeviceTableEntry 3 } + +networkDeviceConnectionStatus OBJECT-TYPE + SYNTAX NetworkDeviceConnectionStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0004 This attribute defines the connection status of the + network device." + ::= { networkDeviceTableEntry 4 } + +networkDeviceProductName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0006 This attribute defines the product name of the + network device." + ::= { networkDeviceTableEntry 6 } + +networkDeviceVendorName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0007 This attribute defines the name of the vendor of the + network device." + ::= { networkDeviceTableEntry 7 } + +networkDeviceCurrentMACAddress OBJECT-TYPE + SYNTAX MACAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0015 This attribute defines the current MAC address of the + network device." + ::= { networkDeviceTableEntry 15 } + +networkDevicePermanentMACAddress OBJECT-TYPE + SYNTAX MACAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0016 This attribute defines the permanent MAC address of the + network device." + ::= { networkDeviceTableEntry 16 } + +networkDevicePCIBusNumber OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0017 This attribute defines the PCI bus number of the + network device." + ::= { networkDeviceTableEntry 17 } + +networkDevicePCIDeviceNumber OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0018 This attribute defines the PCI device number of the + network device." + ::= { networkDeviceTableEntry 18 } + +networkDevicePCIFunctionNumber OBJECT-TYPE + SYNTAX Unsigned8BitRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0019 This attribute defines the PCI function number of the + network device." + ::= { networkDeviceTableEntry 19 } + +networkDeviceTOECapabilityFlags OBJECT-TYPE + SYNTAX NetworkDeviceTOECapabilityFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0023 This attribute defines the TCP/IP Offload Engine (TOE) + capability flags of the network device." + ::= { networkDeviceTableEntry 23 } + +networkDeviceiSCSICapabilityFlags OBJECT-TYPE + SYNTAX NetworkDeviceiSCSICapabilityFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0027 This attribute defines the Internet Small Computer + System Interface (iSCSI) capability flags of the network device." + ::= { networkDeviceTableEntry 27 } + +networkDeviceiSCSIEnabled OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0028 This attribute defines if iSCSI is enabled for the + network device." + ::= { networkDeviceTableEntry 28 } + +networkDeviceCapabilities OBJECT-TYPE + SYNTAX NetworkDeviceCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0029 This attribute defines the capabilities of the network device. + If this value is notSupported(0), the networkDeviceTOECapabilityFlags, + networkDeviceiSCSICapabilityFlags and networkDeviceiSCSIEnabled attributes should + be used to determine the network device capabilities. If the supported(1) bit + is on, this attribute should be used to determine the network device capabilities, + and the attributes mentioned above should not be used. NOTE: For a network device + on Converged Network Adapter (CNA), this attribute provides capability information + for the CNA and not for the network device. For more information read vendor + documentation." + ::= { networkDeviceTableEntry 29 } + +networkDeviceFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1100.0090.0001.0030 Fully qualified device descriptor (FQDD) of the + network device." + ::= { networkDeviceTableEntry 30 } + + +------------------------------------------------------------------------------- +-- Slot Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1200 +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- System Slot Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.1200.10.1... +------------------------------------------------------------------------------- + +SystemSlotStateCapabilitiesFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Slot State Capabilities Flags." + SYNTAX INTEGER { + systemSlotHotPlugIsUnknown(1), -- state capabilities are unknown + systemSlotHotPlugIsHotPluggableCapable(2), -- slot can support Hot Plug + systemSlotHotPlugCanBePoweredOn(4), -- slot power (and corresponding LED) can be powered on + systemSlotHotPlugCanSignalAttention(8), -- slot attention state (and corresponding LED) can be set + systemSlotHotPlugCanSignalPowerFault(16), -- slot power on fault (and corresponding LED) can be detected due to a short or overcurrent + systemSlotHotPlugCanSignalAdapterPresent(32), -- slot adapter (card) present in slot (may not be powered) can be detected + systemSlotHotPlugCanSignalPowerButtonPressed(64), -- slot power button can be pressed to signal a toggle of the power state + canSupportAllHotPlugCapabilities(126), -- slot can support all Hot Plug capabilities + systemSlotCanProvide5Volts(128), -- slot can provide 5 volt supply + systemSlotCanProvide3Point3Volts(256), -- slot can provide 3.3 volt supply + systemSlotCanSignalIfShared(512), -- slot opening if shared with another slot can be detected + systemSlotCanSupportCard16(1024), -- slot can support PC Card-16 + systemSlotCanSupportCardBus(2048), -- slot can support CardBus + systemSlotCanSupportZoomVideo(4096), -- slot can support Zoom Video + systemSlotCanSupportModemRingResume(8192), -- slot can support Modem Ring Resume + systemSlotCanSupportPMESignal(16384), -- slot can support Power Management Enable (PME#) signal + canSupportAllSlotCapabilities(32640), -- slot can support all Slot capabilities + canSupportAllSlotAndAllHotPlugCapabilities(32766) -- slot can support all Slot and all Hot Plug capabilities +} + +SystemSlotStateSettingsFlags ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Slot State Settings Flags." + SYNTAX INTEGER { + systemSlotHotPlugIsUnknown(1), -- state settings are unknown + systemSlotHotPlugIsHotPluggable(2), -- slot supports Hot Plug + systemSlotHotPlugIsPoweredOn(4), -- slot has power (and corresponding LED) ON + systemSlotHotPlugIsAtAttention(8), -- slot is at attention state (and corresponding LED) is ON + systemSlotHotPlugHasPowerFaulted(16), -- slot has power on fault (and corresponding LED) was detected due to a short or overcurrent + systemSlotHotPlugAdapterIsPresent(32), -- slot adapter (card) present in slot (may not be powered on) + systemSlotHotPlugAdapterPresentAndPoweredOn(36), -- slot adapter (card) present in slot and powered on + systemSlotHotPlugPowerButtonPressed(64), -- slot power button pressed to signal toggle of power state + systemSlotProvides5Volts(128), -- slot provides 5 volt supply + systemSlotProvides3Point3Volts(256), -- slot provides 3.3 volt supply + systemSlotIsShared(512), -- slot opening is shared with another slot (e.g. PCI/EISA shared slot) + systemSlotSupportsCard16(1024), -- slot supports PC Card-16 + systemSlotSupportsCardBus(2048), -- slot supports CardBus + systemSlotSupportsZoomVideo(4096), -- slot supports Zoom Video + systemSlotSupportsModemRingResume(8192), -- slot supports Modem Ring Resume + systemSlotSupportsPMESignal(16384), -- slot supports Power Management Enable (PME#) signal + supportsPMEand3P3Vand5VandHotPluggable(16770), + supportsPMEand3P3Vand5VhasAdapterOn(16804), + supportsPMEand3P3Vand5VhasAdapterOnandisHotPluggable(16806), + supportsPMEand3P3VIsSharedand5VhasAdapterOnandHotPlugable(17316) +} + +SystemSlotTypeEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Slot Type Enum." + SYNTAX INTEGER { + systemSlotIsOther(1), -- type is Other + systemSlotIsUnknown(2), -- type is Unknown + systemSlotIsISA(3), -- type is ISA + systemSlotIsMCA(4), -- type is MCA + systemSlotIsEISA(5), -- type is EISA + systemSlotIsPCI(6), -- type is PCI + systemSlotIsPCMCIA(7), -- type is PCMCIA + systemSlotIsVLVESA(8), -- type is VL-VESA + systemSlotIsProprietary(9), -- type is Proprietary + systemSlotIsProcessorCard(10), -- type is Processor Card Slot + systemSlotIsProprietaryMemory(11), -- type is Proprietary Memory Card Slot + systemSlotIsIORiserCard(12), -- type is I/O Riser Card Slot + systemSlotIsNuBUS(13), -- type is NuBus + systemSlotIsPCI66MHz(14), -- type is PCI - 66MHz Capable + systemSlotIsAGP(15), -- type is AGP + systemSlotIsAGP2X(16), -- type is AGP 2X + systemSlotIsAGP4X(17), -- type is AGP 4X + systemSlotIsPC98C20(18), -- type is PC-98/C20 + systemSlotIsPC98C24(19), -- type is PC-98/C24 + systemSlotIsPC98E(20), -- type is PC-98/E + systemSlotIsPC98LocalBus(21), -- type is PC-98/Local Bus + systemSlotIsPC98Card(22), -- type is PC-98/Card + systemSlotIsPCIX(23), -- type is PCI-X + systemSlotIsPCIExpress(24), -- type is PCI Express + systemSlotIsAGP8X(25), -- type is AGP 8X + systemSlotIsPCIExpressX1(166), -- type is PCI Express x1 + systemSlotIsPCIExpressX2(167), -- type is PCI Express x2 + systemSlotIsPCIExpressX4(168), -- type is PCI Express x4 + systemSlotIsPCIExpressX8(169), -- type is PCI Express x8 + systemSlotIsPCIExpressX16(170), -- type is PCI Express x16 + systemSlotIsPCIExpressGen2(171), -- type is PCI Express Gen 2 + systemSlotIsPCIExpressGen2X1(172), -- type is PCI Express Gen 2 x1 + systemSlotIsPCIExpressGen2X2(173), -- type is PCI Express Gen 2 x2 + systemSlotIsPCIExpressGen2X4(174), -- type is PCI Express Gen 2 x4 + systemSlotIsPCIExpressGen2X8(175), -- type is PCI Express Gen 2 x8 + systemSlotIsPCIExpressGen2X16(176) -- type is PCI Express Gen 2 x16 +} + +SystemSlotUsageEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Slot Usage Enum." + SYNTAX INTEGER { + systemSlotUsageIsOther(1), -- usage is other than following values + systemSlotUsageIsUnknown(2), -- usage is unknown + systemSlotUsageIsAvailable(3), -- usage is available + systemSlotUsageIsInUse(4) -- usage is in use +} + +SystemSlotCategoryEnum ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "System Slot Category Enum." + SYNTAX INTEGER { + systemSlotCategoryIsOther(1), -- category is other than following values + systemSlotCategoryIsUnknown(2), -- category is unknown + systemSlotCategoryIsBusConnector(3), -- category is Bus Connector + systemSlotCategoryIsPCMCIA(4), -- category is PCMCIA + systemSlotCategoryIsMotherboard(5) -- category is Motherboard +} + +SystemSlotTableEntry ::= SEQUENCE { + systemSlotchassisIndex ObjectRange, + systemSlotIndex ObjectRange, + systemSlotStateCapabilitiesUnique SystemSlotStateCapabilitiesFlags, + systemSlotStateSettingsUnique SystemSlotStateSettingsFlags, + systemSlotStatus ObjectStatusEnum, + systemSlotCurrentUsage SystemSlotUsageEnum, + systemSlotType SystemSlotTypeEnum, + systemSlotSlotExternalSlotName String64, + systemSlotCategory SystemSlotCategoryEnum +} + +systemSlotTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemSlotTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1200.0010 This object defines the System Slot Table." + ::= { slotGroup 10 } + +systemSlotTableEntry OBJECT-TYPE + SYNTAX SystemSlotTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "1200.0010.0001 This object defines the System Slot Table Entry." + INDEX { systemSlotchassisIndex, + systemSlotIndex } + ::= { systemSlotTable 1 } + +systemSlotchassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0001 This attribute defines the index (one based) of the + associated system chassis." + ::= { systemSlotTableEntry 1 } + +systemSlotIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0002 This attribute defines the index (one based) of the + system slot." + ::= { systemSlotTableEntry 2 } + +systemSlotStateCapabilitiesUnique OBJECT-TYPE + SYNTAX SystemSlotStateCapabilitiesFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0003 This attribute defines the state capabilities of the + system slot." + ::= { systemSlotTableEntry 3 } + +systemSlotStateSettingsUnique OBJECT-TYPE + SYNTAX SystemSlotStateSettingsFlags + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0004 This attribute defines the state settings of the + system slot." + ::= { systemSlotTableEntry 4 } + +systemSlotStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0005 This attribute defines the status of the system slot." + ::= { systemSlotTableEntry 5 } + +systemSlotCurrentUsage OBJECT-TYPE + SYNTAX SystemSlotUsageEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0006 This attribute defines the current usage of the + system slot." + ::= { systemSlotTableEntry 6 } + +systemSlotType OBJECT-TYPE + SYNTAX SystemSlotTypeEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0007 This attribute defines the type of the system slot." + ::= { systemSlotTableEntry 7 } + +systemSlotSlotExternalSlotName OBJECT-TYPE + SYNTAX String64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0008 This attribute defines the name of the external + connector name of the system slot." + ::= { systemSlotTableEntry 8 } + +systemSlotCategory OBJECT-TYPE + SYNTAX SystemSlotCategoryEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1200.0010.0001.0011 This attribute defines the category of the system slot." + ::= { systemSlotTableEntry 11 } + + +------------------------------------------------------------------------------- +-- Field Replaceable Unit (FRU) Group +-- +-- OID: 1.3.6.1.4.1.674.10892.5.4.2000 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Field Replaceable Unit (FRU) Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.4.2000.10.1... +------------------------------------------------------------------------------- + +FruTableEntry ::= SEQUENCE { + fruChassisIndex ObjectRange, + fruIndex ObjectRange, + fruInformationStatus ObjectStatusEnum, + fruManufacturerName OCTET STRING, + fruSerialNumberName OCTET STRING, + fruPartNumberName OCTET STRING, + fruRevisionName OCTET STRING, + fruFQDD FQDDString +} + +fruTable OBJECT-TYPE + SYNTAX SEQUENCE OF FruTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "2000.0010 This object defines the Field Replaceable Unit table." + ::= { fruGroup 10 } + +fruTableEntry OBJECT-TYPE + SYNTAX FruTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "2000.0010.0001 This object defines the Field Replaceable Unit table entry." + INDEX { fruChassisIndex, + fruIndex } + ::= { fruTable 1 } + +fruChassisIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0001 This attribute defines the index (one based) of the + system chassis containing the field replaceable unit." + ::= { fruTableEntry 1 } + +fruIndex OBJECT-TYPE + SYNTAX ObjectRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0002 This attribute defines the index (one based) of the + field replaceable unit." + ::= { fruTableEntry 2 } + +fruInformationStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0003 This attribute defines the status of the + field replaceable unit information." + ::= { fruTableEntry 3 } + +fruManufacturerName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0006 This attribute defines the manufacturer of the + field replaceable unit." + ::= { fruTableEntry 6 } + +fruSerialNumberName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0007 This attribute defines the serial number of the + field replaceable unit." + ::= { fruTableEntry 7 } + +fruPartNumberName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0008 This attribute defines the part number of the + field replaceable unit." + ::= { fruTableEntry 8 } + +fruRevisionName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0009 This attribute defines the revision of the + field replaceable unit." + ::= { fruTableEntry 9 } + +fruFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "2000.0010.0001.0012 Fully qualified device descriptor (FQDD) of the + field replaceable unit." + ::= { fruTableEntry 12 } + + +------------------------------------------------------------------------------- +-- Storage Details Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Battery Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.15.1.. +------------------------------------------------------------------------------- + +BatteryTableEntry ::=SEQUENCE { + batteryNumber INTEGER, + batteryState INTEGER, + batteryComponentStatus ObjectStatusEnum, + batteryPredictedCapacity INTEGER, + batteryFQDD DisplayString, + batteryDisplayName DisplayString +} + +batteryTable OBJECT-TYPE + SYNTAX SEQUENCE OF BatteryTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed batteries. The number of + entries is related to number of Batteries + discovered in the system. The maximum number of entries + is implementation dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { physicalDevices 15 } + +batteryTableEntry OBJECT-TYPE + SYNTAX BatteryTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the battery table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table. + " + INDEX { batteryNumber } + ::= { batteryTable 1 } + +batteryNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this battery entry. + " + ::= { batteryTableEntry 1 } + +batteryState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + ready(2), + failed(3), + degraded(4), + missing(5), + charging(6), + belowThreshold(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current state of battery. + Possible values: + 1: The current state could not be determined. + 2: The battery is operating normally. + 3: The battery has failed and needs to be replaced. + 4: The battery temperature is high or charge level is depleting. + 5: The battery is missing or not detected. + 6: The battery is undergoing the re-charge phase. + 7: The battery voltage or charge level is below the threshold. + " + ::= { batteryTableEntry 4 } + +batteryComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the battery itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { batteryTableEntry 6 } + +batteryPredictedCapacity OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + failed(2), + ready(3) + } + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. Use the batteryComponentStatus or + batteryState instead. + " + ::= { batteryTableEntry 10 } + +batteryFQDD OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The battery's Fully Qualified Device Descriptor (FQDD) as + represented in Storage Management. + " + ::= { batteryTableEntry 20 } + +batteryDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The battery's friendly FQDD as represented in Storage Management." + ::= { batteryTableEntry 21 } + + +------------------------------------------------------------------------------- +-- Controller Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.1.1.. +------------------------------------------------------------------------------- + +ControllerTableEntry ::=SEQUENCE { + controllerNumber INTEGER, + controllerName DisplayString, + controllerRebuildRate INTEGER, + controllerFWVersion DisplayString, + controllerCacheSizeInMB INTEGER, + controllerRollUpStatus ObjectStatusEnum, + controllerComponentStatus ObjectStatusEnum, + controllerDriverVersion DisplayString, + controllerPCISlot DisplayString, + controllerReconstructRate INTEGER, + controllerPatrolReadRate INTEGER, + controllerBGIRate INTEGER, + controllerCheckConsistencyRate INTEGER, + controllerPatrolReadMode INTEGER, + controllerPatrolReadState INTEGER, + controllerPersistentHotSpare BooleanType, + controllerSpinDownUnconfiguredDrives BooleanType, + controllerSpinDownHotSpareDrives BooleanType, + controllerSpinDownTimeInterval INTEGER, + controllerPreservedCache BooleanType, + controllerCheckConsistencyMode INTEGER, + controllerCopyBackMode INTEGER, + controllerSecurityStatus INTEGER, + controllerEncryptionKeyPresent BooleanType, + controllerEncryptionCapability INTEGER, + controllerLoadBalanceSetting INTEGER, + controllerMaxCapSpeed INTEGER, + controllerSASAddress DisplayString, + controllerFQDD FQDDString, + controllerDisplayName DisplayString, + controllerT10PICapability INTEGER, + controllerRAID10UnevenSpansSupported BooleanType, + controllerEnhancedAutoImportForeignConfigMode INTEGER, + controllerBootModeSupported BooleanType, + controllerBootMode INTEGER +} + +controllerTable OBJECT-TYPE + SYNTAX SEQUENCE OF ControllerTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed RAID controllers. The number of entries + is related to number of RAID controllers discovered in the + system. The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { physicalDevices 1 } + +controllerTableEntry OBJECT-TYPE + SYNTAX ControllerTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the table of RAID controllers. A row in this table + cannot be created or deleted by SNMP operations on columns of + the table." + INDEX { controllerNumber } + ::= { controllerTable 1 } + +controllerNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this controller entry." + ::= { controllerTableEntry 1 } + + +controllerName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The controller's name as represented in Storage Management. + " + ::= { controllerTableEntry 2 } + +controllerRebuildRate OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The rebuild rate is the percentage of the controller's + resources dedicated to rebuilding a failed disk when a rebuild + is necessary. + " + ::= { controllerTableEntry 7 } + +controllerFWVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The controller's current firmware version. + " + ::= { controllerTableEntry 8 } + +controllerCacheSizeInMB OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The controller's current amount of cache memory in megabytes. + " + ::= { controllerTableEntry 9 } + +controllerRollUpStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Severity of the controller state. + This is the combined status of the controller and its components. + Possible values: + 1: Other. + 2: Unknown. + 3: OK + 4: Non-critical + 5: Critical. + 6: Non-recoverable. + " + ::= { controllerTableEntry 37 } + +controllerComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the controller itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { controllerTableEntry 38 } + +controllerDriverVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Currently installed driver version for this controller on the host. + " + ::= { controllerTableEntry 41 } + +controllerPCISlot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The PCI slot on the server where the controller is seated. This + data is not reported for embedded or integrated controllers, + " + ::= { controllerTableEntry 42 } + +controllerReconstructRate OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The reconstruct rate is the percentage of the controller's resources + dedicated to reconstructing a disk group after adding a physical disk + or changing the RAID level of a virtual disk residing on the disk + group. + " + ::= { controllerTableEntry 48 } + +controllerPatrolReadRate OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The patrol read rate is the percentage of the controller's + resources dedicated to perform a patrol read on disks participating + in a virtual disk or hot spares. + " + ::= { controllerTableEntry 49 } + +controllerBGIRate OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The background initialization (BGI) rate is the percentage of the + controller's resources dedicated to performing the background + initialization of a redundant virtual disk after it is created. + " + ::= { controllerTableEntry 50 } + +controllerCheckConsistencyRate OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The check consistency rate is the percentage of the + controller's resources dedicated to performing a check consistency + on a redundant virtual disk. + " + ::= { controllerTableEntry 51 } + +controllerPatrolReadMode OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notSupported(2), + disabled(3), + auto(4), + manual(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the patrol read mode setting for the controller. + Possible values: + 1: Not one of the following or could not be determined. + 2: Not Supported on this controller. + 3: Disabled. + 4: Automatic. + 5: Manual. + " + ::= { controllerTableEntry 52 } + +controllerPatrolReadState OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + stopped(2), + active(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This property displays the current state of the patrol read process. + Possible values: + 1: Not one of the following or could not be determined. + 2: Patrol read is not running. + 3: Patrol read is running. + " + ::= { controllerTableEntry 53 } + +controllerPersistentHotSpare OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether hot spare drives would be restored on insertion + into the same slot. + " + ::= { controllerTableEntry 59 } + +controllerSpinDownUnconfiguredDrives OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether un-configured drives would be put in power + save mode by the controller. + " + ::= { controllerTableEntry 60 } + +controllerSpinDownHotSpareDrives OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether hot spare drives would be put in power + save mode by the controller. + " + ::= { controllerTableEntry 61 } + +controllerSpinDownTimeInterval OBJECT-TYPE + SYNTAX INTEGER (30..1440) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The duration in minutes after which, the unconfigured or hot + spare drives will be spun down to power save mode. + " + ::= { controllerTableEntry 62 } + +controllerPreservedCache OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether preserved cache or pinned cache is + present on the controller. + " + ::= { controllerTableEntry 69 } + +controllerCheckConsistencyMode OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + unsupported(2), + normal(3), + stopOnError(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current check consistency mode setting + for the controller. + Possible values: + 1: Not one of the following. + 2: Not supported on this controller. + 3: Normal check consistency operation. + 4: Check consistency operation will stop on encountering + an error. + " + ::= { controllerTableEntry 70 } + +controllerCopyBackMode OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + unsupported(2), + on(3), + onWithSmart(4), + off(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current copy back mode setting + for the controller. + Possible values: + 1: Not one of the following. + 2: Not supported on this controller. + 3: Disks assigned as spares could revert back to spare status. + 4: Data from physical disk participating in a + virtual disk could be automatically copied to the assigned + hot spare in case former has a predictive failure event. + 5: Copyback mode is disabled. + " + ::= { controllerTableEntry 71 } + +controllerSecurityStatus OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + none(2), + lkm(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The controller's current security/encryption status.. + Possible values: + 1: The current status could not be determined. + 2: Controller is not operating in an encryption mode. + 3: Controller is operating in the Local Key Management + (LKM) encryption mode. + " + ::= { controllerTableEntry 72 } + +controllerEncryptionKeyPresent OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether encryption key is assigned for the controller. + " + ::= { controllerTableEntry 73 } + +controllerEncryptionCapability OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + none(2), + lkm(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of encryption supported by the controller. + Possible values: + 1: Not one of the following. + 2: No encryption supported, + 3: Local Key Management, + " + ::= { controllerTableEntry 74 } + +controllerLoadBalanceSetting OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + unsupported(2), + auto(3), + none(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ability of the controller to automatically use both + controller ports (or connectors) connected to the same enclosure in + order to route I/O requests. + Possible values: + 1: Not one of the following. + 2: Not supported. + 3: Automatic load balancing is active. + 4: Load balancing is inactive. + " + ::= { controllerTableEntry 75 } + +controllerMaxCapSpeed OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + oneDotFiveGbps(2), + threeGbps(3), + sixGbps(4), + twelveGbps(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum speed of the controller.in + Gigbits per second (Gbps). + Possible values: + 1: The speed could not be determined. + 2. 1.5 Gbps + 3: 3.0 Gbps + 4: 6.0 Gbps + 5: 12.0 Gbps + " + ::= { controllerTableEntry 76 } + +controllerSASAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SAS address of the controller. + " + ::= { controllerTableEntry 77 } + +controllerFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The controller's Fully Qualified Device Descriptor (FQDD) as + represented in Storage Management. + " + ::= { controllerTableEntry 78 } + +controllerDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The controller's friendly FQDD as represented in Storage + Management." + ::= { controllerTableEntry 79 } + +controllerT10PICapability OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + capable(2), + notCapable(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the controller supports the T10 PI (Protection + Information). These protection fields are known as DIF + (Data Integrity Fields). + Possible values: + 1: Not one of the following. + 2: Capable of supporting T10 PI. + 3: Not capable of supporting T10 PI. + " + ::= { controllerTableEntry 80 } + +controllerRAID10UnevenSpansSupported OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether uneven spans for RAID 10 virtual disk + is supported on the controller. + " + ::= { controllerTableEntry 81 } + +controllerEnhancedAutoImportForeignConfigMode OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notSupported(2), + disabled(3), + enabled(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the status of enhanced auto-import of foreign + configuration property of the controller. + 1: Not one of the following. + 2: Not Supported. + 3: Disabled. + 4: Enabled. + " + ::= { controllerTableEntry 82 } + +controllerBootModeSupported OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether headless boot mode settings are supported + on the controller. + " + ::= { controllerTableEntry 83 } + +controllerBootMode OBJECT-TYPE + SYNTAX INTEGER + { + notApplicable(1), + user(2), + contOnError(3), + headlessContOnError(4), + headlessSafe(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the boot mode of the controller. + Possible values: + 1: Not applicable for this controller. + 2: User mode: User interaction required for all boot messages (not + applicable for uEFI environments). + 3: Continue Boot On Error. User interaction only required for + critical messages. + 4: Headless Mode Continue On Error. User interaction is not required. + Controller boot may halt on Error. + 5: Headless Safe Mode. Controller shall boot to safe mode on critical + errors. + " + ::= { controllerTableEntry 84 } + + +------------------------------------------------------------------------------- +-- Physical Disk Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.. +------------------------------------------------------------------------------- + +PhysicalDiskTableEntry ::=SEQUENCE { + physicalDiskNumber INTEGER, + physicalDiskName DisplayString, + physicalDiskManufacturer DisplayString, + physicalDiskState INTEGER, + physicalDiskProductID DisplayString, + physicalDiskSerialNo DisplayString, + physicalDiskRevision DisplayString, + physicalDiskCapacityInMB INTEGER, + physicalDiskUsedSpaceInMB INTEGER, + physicalDiskFreeSpaceInMB INTEGER, + physicalDiskBusType INTEGER, + physicalDiskSpareState INTEGER, + physicalDiskComponentStatus ObjectStatusEnum, + physicalDiskPartNumber DisplayString, + physicalDiskSASAddress DisplayString, + physicalDiskNegotiatedSpeed INTEGER, + physicalDiskCapableSpeed INTEGER, + physicalDiskSmartAlertIndication BooleanType, + physicalDiskManufactureDay DisplayString, + physicalDiskManufactureWeek DisplayString, + physicalDiskManufactureYear DisplayString, + physicalDiskMediaType INTEGER, + physicalDiskPowerState INTEGER, + physicalDiskRemainingRatedWriteEndurance INTEGER, + physicalDiskOperationalState INTEGER, + physicalDiskProgress INTEGER, + physicalDiskSecurityStatus INTEGER, + physicalDiskFormFactor INTEGER, + physicalDiskFQDD FQDDString, + physicalDiskDisplayName DisplayString, + physicalDiskT10PICapability INTEGER, + physicalDiskBlockSizeInBytes INTEGER, + physicalDiskProtocolVersion DisplayString, + physicalDiskPCIeNegotiatedLinkWidth INTEGER, + physicalDiskPCIeCapableLinkWidth INTEGER + } + +physicalDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhysicalDiskTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed physical disks. The number of entries is + related to number of physical Disks discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to + all entries. + " + ::= { physicalDevices 4 } + +physicalDiskTableEntry OBJECT-TYPE + SYNTAX PhysicalDiskTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the physical Disk table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table. + " + INDEX { physicalDiskNumber } + ::= { physicalDiskTable 1 } + +physicalDiskNumber OBJECT-TYPE + SYNTAX INTEGER (1..1000000000) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this physical disk entry. + " + ::= { physicalDiskTableEntry 1 } + +physicalDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The physical disk's name as represented in Storage Management. + " + ::= { physicalDiskTableEntry 2 } + +physicalDiskManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the physical disk's manufacturer. + " + ::= { physicalDiskTableEntry 3 } + +physicalDiskState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + ready(2), + online(3), + foreign(4), + offline(5), + blocked(6), + failed(7), + nonraid(8), + removed(9), + readonly(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of this physical disk. + Possible states: + 1: The current state could not be determined. + 2: The physical disk is available for use, but no RAID configuration + has been assigned. + 3: A RAID configuration has been assigned to the physical disk. + 4: The physical disk has been moved from another + controller and contains all or some portion of a virtual disk. + 5: The physical disk is not available to the RAID + controller. + 6: The physical disk is currently blocked by + controller. + 7: The physical disk is not operational. + 8: The physical disk is not a RAID capable disk + 9: The physical disk has been removed. + 10:The physical disk media has been placed in read only mode. + " + ::= { physicalDiskTableEntry 4 } + +physicalDiskProductID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The model number of the physical disk. + " + ::= { physicalDiskTableEntry 6 } + +physicalDiskSerialNo OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The physical disk's unique identification number + from the manufacturer. + " + ::= { physicalDiskTableEntry 7 } + +physicalDiskRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The firmware version of the physical disk. + " + ::= { physicalDiskTableEntry 8 } + +physicalDiskCapacityInMB OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the physical disk in megabytes. + " + ::= { physicalDiskTableEntry 11 } + +physicalDiskUsedSpaceInMB OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of used space in megabytes on the physical + disk. This is not applicable for NVMe devices. + " + ::= { physicalDiskTableEntry 17 } + +physicalDiskFreeSpaceInMB OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of free space in megabytes on the physical + disk. This is not applicable for NVMe devices. + " + ::= { physicalDiskTableEntry 19 } + +physicalDiskBusType OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + scsi(2), + sas(3), + sata(4), + fibre(5), + pcie(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The bus type of the physical disk. + Possible values: + 1: The bus type could not be determined. + 2: Small Computer System Interface (SCSI). + 3: Serial Attached SCSI (SAS). + 4: Serial Advanced Technology Attachment (SATA). + 5: Fibre channel. + 6: PCIe. + " + ::= { physicalDiskTableEntry 21 } + +physicalDiskSpareState OBJECT-TYPE + SYNTAX INTEGER + { + notASpare(1), + dedicatedHotSpare(2), + globalHotSpare(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the disk as a spare. + Possible values: + 1: Physical disk is not a spare. + 2: Physical disk is a dedicated hot spare. + 3: Physical disk is a global hot spare. + " + ::= { physicalDiskTableEntry 22 } + +physicalDiskComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the physical disk itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { physicalDiskTableEntry 24 } + +physicalDiskPartNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The part number of the disk. + " + ::= { physicalDiskTableEntry 27 } + +physicalDiskSASAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SAS address of the physical disk. + " + ::= { physicalDiskTableEntry 28 } + +physicalDiskNegotiatedSpeed OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + oneDotFiveGbps(2), + threeGbps(3), + sixGbps(4), + twelveGbps(5), + fiveGTps(6), + eightGTps(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The data transfer speed that the disk negotiated while spinning up + in Gigbits per second (Gbps). + Possible values: + 1: The speed could not be determined. + 2. 1.5 Gbps + 3: 3.0 Gbps + 4: 6.0 Gbps + 5: 12.0 Gbps + 6: 5 GT/s (applicable for NVMe devices). + 7: 8 GT/s (applicable for NVMe devices). + " + ::= { physicalDiskTableEntry 29 } + +physicalDiskCapableSpeed OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + oneDotFiveGbps(2), + threeGbps(3), + sixGbps(4), + twelveGbps(5), + fiveGTps(6), + eightGTps(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum data transfer speed supported by the disk + in Gigbits per second (Gbps). + Possible values: + 1: The speed could not be determined. + 2. 1.5 Gbps + 3: 3.0 Gbps + 4: 6.0 Gbps + 5: 12.0 Gbps + 6: 5 GT/s (applicable for NVMe devices). + 7: 8 GT/s (applicable for NVMe devices). + " + ::= { physicalDiskTableEntry 30 } + +physicalDiskSmartAlertIndication OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the physical disk has received a predictive + failure alert. + " + ::= { physicalDiskTableEntry 31 } + +physicalDiskManufactureDay OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The day of the week (1=Sunday thru 7=Saturday) + on which the physical disk was manufactured. + " + ::= { physicalDiskTableEntry 32 } + +physicalDiskManufactureWeek OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The week (1 thru 53) in which the physical disk + was manufactured. + " + ::= { physicalDiskTableEntry 33 } + +physicalDiskManufactureYear OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The four digit year in which the physical disk was manufactured. + " + ::= { physicalDiskTableEntry 34 } + +physicalDiskMediaType OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + hdd(2), + ssd(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The media type of the physical disk. + Possible Values: + 1: The media type could not be determined. + 2: Hard Disk Drive (HDD). + 3: Solid State Device (SSD). + " + ::= { physicalDiskTableEntry 35 } + +physicalDiskPowerState OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + spunUp(2), + spunDown(3), + transition(4), + on(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The power state of the physical disk. + Possible Values: + 1: Not one of the following. + 2: The physical disk is in the spun up state. + 3: The physical disk is in the spun down state. + 4: The physical disk is changing from spun down state + to spun up state or vice versa. + 5: The Solid State Device (SSD) is powered on. + " + ::= { physicalDiskTableEntry 42 } + +physicalDiskRemainingRatedWriteEndurance OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This property is applicable to SSD media type only. This indicates + the wear-out percentage of the SSD. Typically it is a value between + 0 to 100. However, if the value is not available or not applicable + (in the case of HDD media type) the value will be 255. + " + ::= { physicalDiskTableEntry 49 } + +physicalDiskOperationalState OBJECT-TYPE + SYNTAX INTEGER + { + notApplicable(1), + rebuild(2), + clear(3), + copyback(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of the physical disk when there are progressive + operations ongoing. + Possible values: + 1: There is no active operation running. + 2: Data from a redundant virtual disk is + currently being rebuilt onto the physical disk. + 3: Data on the disk is being erased. + 4: Data is being copied from a hot spare disk to + the physical disk or vice versa. + " + ::= { physicalDiskTableEntry 50 } + +physicalDiskProgress OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The progress percentage of the operation that is being + performed on the physical disk. This is applicable + only if there is a progressive operations ongoing + " + ::= { physicalDiskTableEntry 51 } + +physicalDiskSecurityStatus OBJECT-TYPE + SYNTAX INTEGER + { + supported(1), + notSupported(2), + secured(3), + locked(4), + foreign(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The security/encryption status of the physical disk. + Possible Values: + 1: The physical disk supports encryption. + 2: The physical disk does not support encryption + 3: The physical disk is encrypted. + 4: The physical disk is locked by a key. + 5: The physical disk is locked by a foreign key. + " + ::= { physicalDiskTableEntry 52 } + +physicalDiskFormFactor OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + oneDotEight(2), + twoDotFive(3), + threeDotFive(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The form factor of the physical disk. + Possible values: + 1: The form factor could not be determined. + 2: 1.8 inch. + 3: 2.5 inch. + 4: 3.5 inch. + " + ::= { physicalDiskTableEntry 53 } + +physicalDiskFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The physical disk's Fully Qualified Device Descriptor (FQDD) + as represented in Storage Management. + " + ::= { physicalDiskTableEntry 54 } + +physicalDiskDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The physical disk's friendly FQDD as represented in Storage + Management. + " + ::= { physicalDiskTableEntry 55 } + +physicalDiskT10PICapability OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + capable(2), + notCapable(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the physical disk supports the T10 PI (Protection + Information). These protection fields are known as DIF + (Data Integrity Fields). + Possible values: + 1: Not one of the following. + 2: Capable of supporting T10 PI. + 3: Not capable of supporting T10 PI. + " + ::= { physicalDiskTableEntry 57 } + +physicalDiskBlockSizeInBytes OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The block size (in bytes) of the physical disk. This is not + applicable for NVMe devices. + 1: 512. + 2: 4096 + " + ::= { physicalDiskTableEntry 58 } + +physicalDiskProtocolVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Applicable for NVMe devices only. The NVMe protocol version supported + by the device. + " + ::= { physicalDiskTableEntry 59 } + +physicalDiskPCIeNegotiatedLinkWidth OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notApplicable(2), + byOne(3), + byTwp(4), + byFour(5), + byEight(6), + bySixteen(7), + byThirtyTwp(8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Applicable for NVMe devices only. The PCIe link width negotiated with the host + during device initialization. + " + ::= { physicalDiskTableEntry 60 } + +physicalDiskPCIeCapableLinkWidth OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notApplicable(2), + byOne(3), + byTwp(4), + byFour(5), + byEight(6), + bySixteen(7), + byThirtyTwp(8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Applicable for NVMe devices only. The PCIe link widths the device is capable of + supporting. + " + ::= { physicalDiskTableEntry 61 } + +------------------------------------------------------------------------------- +-- Virtual Disk Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.140.1.1.. +------------------------------------------------------------------------------- + +VirtualDiskTableEntry ::=SEQUENCE { + virtualDiskNumber INTEGER, + virtualDiskName DisplayString, + virtualDiskState INTEGER, + virtualDiskSizeInMB INTEGER, + virtualDiskWritePolicy INTEGER, + virtualDiskReadPolicy INTEGER, + virtualDiskLayout INTEGER, + virtualDiskStripeSize INTEGER, + virtualDiskComponentStatus ObjectStatusEnum, + virtualDiskBadBlocksDetected BooleanType, + virtualDiskSecured BooleanType, + virtualDiskIsCacheCade BooleanType, + virtualDiskDiskCachePolicy INTEGER, + virtualDiskOperationalState INTEGER, + virtualDiskProgress INTEGER, + virtualDiskAvailableProtocols DisplayString, + virtualDiskMediaType DisplayString, + virtualDiskRemainingRedundancy INTEGER, + virtualDiskFQDD FQDDString, + virtualDiskDisplayName DisplayString, + virtualDiskT10PIStatus INTEGER, + virtualDiskBlockSizeInBytes INTEGER +} + +virtualDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF VirtualDiskTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed virtual disks. The number of entries is related + to number of virtual disks discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { logicalDevices 1 } + +virtualDiskTableEntry OBJECT-TYPE + SYNTAX VirtualDiskTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the virtual disk table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table. + " + INDEX { virtualDiskNumber } + ::= { virtualDiskTable 1 } + +virtualDiskNumber OBJECT-TYPE + SYNTAX INTEGER (1..100000000) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this virtual disk entry. + " + ::= { virtualDiskTableEntry 1 } + +virtualDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The virtual disk's label as entered by the user. + " + ::= { virtualDiskTableEntry 2 } + +virtualDiskState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + online(2), + failed(3), + degraded(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of this virtual disk + (which includes any member physical disks.) + Possible states: + 1: The current state could not be determined. + 2: The virtual disk is operating normally or optimally. + 3: The virtual disk has encountered a failure. The data on disk + is lost or is about to be lost. + 4: The virtual disk encounterd a failure with one or all of the + constituent redundant physical disks. The data on the virtual + disk might no longer be fault tolerant. + " + ::= { virtualDiskTableEntry 4 } + +virtualDiskSizeInMB OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the virtual disk in megabytes. + " + ::= { virtualDiskTableEntry 6 } + +virtualDiskWritePolicy OBJECT-TYPE + SYNTAX INTEGER + { + writeThrough(1), + writeBack(2), + writeBackForce(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The write policy used by the controller for write operations on + this virtual disk. + Possible values: + 1: Write Through. + 2: Write Back. + 3: Force Write Back. + " + ::= { virtualDiskTableEntry 10 } + +virtualDiskReadPolicy OBJECT-TYPE + SYNTAX INTEGER + { + noReadAhead(1), + readAhead(2), + adaptiveReadAhead(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The read policy used by the controller for read operations on + this virtual disk. + Possible values: + 1: No Read Ahead. + 2: Read Ahead. + 3: Adaptive Read Ahead. + " + ::= { virtualDiskTableEntry 11 } + +virtualDiskLayout OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + r0(2), + r1(3), + r5(4), + r6(5), + r10(6), + r50(7), + r60(8), + concatRaid1(9), + concatRaid5(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The virtual disk's RAID type. + Possible values: + 1: Not one of the following + 2: RAID-0 + 3: RAID-1 + 4: RAID-5 + 5: RAID-6 + 6: RAID-10 + 7: RAID-50 + 8: RAID-60 + 9: Concatenated RAID 1 + 10: Concatenated RAID 5 + " + ::= { virtualDiskTableEntry 13 } + +virtualDiskStripeSize OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + default(2), + fiveHundredAndTwelvebytes(3), + oneKilobytes(4), + twoKilobytes(5), + fourKilobytes(6), + eightKilobytes(7), + sixteenKilobytes(8), + thirtyTwoKilobytes(9), + sixtyFourKilobytes(10), + oneTwentyEightKilobytes(11), + twoFiftySixKilobytes(12), + fiveOneTwoKilobytes(13), + oneMegabye(14), + twoMegabytes(15), + fourMegabytes(16), + eightMegabytes(17), + sixteenMegabytes(18) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The stripe size of this virtual disk. + Possible values: + 1: Not one of the following + 2: Default. + 3: 512 bytes + 4: 1 kB, + 5: 2 kB, + 6: 4 kB, + 7: 8 kB, + 8: 16 kB, + 9: 32 kB, + 10: 64 kB, + 11: 128 kB, + 12: 256 kB, + 13: 512 kB, + 14: 1 MB, + 15: 2 MB, + 16: 4 MB, + 17: 8 MB, + 18: 16 MB + " + ::= { virtualDiskTableEntry 14 } + +virtualDiskComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the virtual disk itself without the + propagation of any contained component status. + Possible values: + 1: Other. + 2: Unknown. + 3: OK. + 4: Non-critical . + 5: Critical. + 6: Non-recoverable. + " + ::= { virtualDiskTableEntry 20 } + +virtualDiskBadBlocksDetected OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the virtual disk has bad blocks. + " + ::= { virtualDiskTableEntry 23 } + +virtualDiskSecured OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the virtual disk is secured or not. + " + ::= { virtualDiskTableEntry 24 } + +virtualDiskIsCacheCade OBJECT-TYPE + SYNTAX BooleanType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the virtual disk is being used as a secondary + cache by the controller. + " + ::= { virtualDiskTableEntry 25 } + +virtualDiskDiskCachePolicy OBJECT-TYPE + SYNTAX INTEGER + { + enabled(1), + disabled(2), + defullt(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The cache policy of the physical disks that are + part of this virtual disk + Possible values: + 1: Enabled. + 2: Disabled. + 3: Default. + " + ::= { virtualDiskTableEntry 26 } + +virtualDiskOperationalState OBJECT-TYPE + SYNTAX INTEGER + { + notApplicable(1), + reconstructing(2), + resynching(3), + initializing(4), + backgroundInit(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of the virtual disk when there are progressive + operations ongoing. + Possible values: + 1: There is no active operation running. + 2: The virtual disk configuration has changed. + The physical disks included in the virtual disk are being + modified to support the new configuration. + 3: A Consistency Check (CC) is being performed + on the virtual disk. + 4: The virtual disk is being initialized. + 5: BackGround Initialization (BGI) is being performed + on the virtual disk. + " + ::= { virtualDiskTableEntry 30 } + +virtualDiskProgress OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The progress percentage of the operation that is being + performed on the virtual disk. This is applicable + only if there is a progressive operations ongoing + " + ::= { virtualDiskTableEntry 31 } + +virtualDiskAvailableProtocols OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "List of protocols support by physical disks part of this virtual + disk. For e.g. SAS for Serial Attached SCSI or SATA for + Serial Advanced Technology Attachment. + " + ::= { virtualDiskTableEntry 32 } + +virtualDiskMediaType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "List of media types of the physical disks part of this virtual + disk. For e.g. HDD for Hard Disk Drive or SSD for Solid State Device. + " + ::= { virtualDiskTableEntry 33 } + +virtualDiskRemainingRedundancy OBJECT-TYPE + SYNTAX INTEGER (0..2) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of physical disks which can be lost before the + virtual disk loses its redundancy. + " + ::= { virtualDiskTableEntry 34 } + +virtualDiskFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The virtual disk's Fully Qualified Device Descriptor (FQDD) as + represented in Storage Management. + " + ::= { virtualDiskTableEntry 35 } + +virtualDiskDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The virtual disk's friendly FQDD as represented in Storage + Management. + " + ::= { virtualDiskTableEntry 36 } + + +virtualDiskT10PIStatus OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + enabled(2), + disabled(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the virtual disk supports the T10 PI (Protection + Information). These protection fields are known as DIF + (Data Integrity Fields). + Possible values: + 1: Not one of the following. + 2: Enabled. + 3: Disabled. + " + ::= { virtualDiskTableEntry 37 } + +virtualDiskBlockSizeInBytes OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The block size (in bytes) of the physical disk part of the virtual disk. + Possible values: + 1: 512. + 2: 4096 + " + ::= { virtualDiskTableEntry 38 } + + +------------------------------------------------------------------------------- +-- Enclosure Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.3.1.. +------------------------------------------------------------------------------- + +EnclosureTableEntry ::=SEQUENCE { + enclosureNumber INTEGER, + enclosureName DisplayString, + enclosureState INTEGER, + enclosureServiceTag DisplayString, + enclosureAssetTag DisplayString, + enclosureConnectedPort DisplayString, + enclosureRollUpStatus ObjectStatusEnum, + enclosureComponentStatus ObjectStatusEnum, + enclosureFirmwareVersion DisplayString, + enclosureSASAddress DisplayString, + enclosureDriveCount INTEGER, + enclosureTotalSlots INTEGER, + enclosureFanCount DisplayString, + enclosurePSUCount DisplayString, + enclosureEMMCount DisplayString, + enclosureTempProbeCount DisplayString, + enclosureRedundantPath DisplayString, + enclosurePosition DisplayString, + enclosureBackplaneBayID DisplayString, + enclosureFQDD FQDDString, + enclosureDisplayName DisplayString, + enclosureType INTEGER +} + +enclosureTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosureTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed enclosures/backplanes. The number of entries is + related to number of internal backplane(s) discovered in the system + and external storage enclosure(s) attached to the system.. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { physicalDevices 3 } + +enclosureTableEntry OBJECT-TYPE + SYNTAX EnclosureTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the enclosure table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table. + " + INDEX { enclosureNumber } + ::= { enclosureTable 1 } + +enclosureNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this enclossre/backplane. + " + ::= { enclosureTableEntry 1 } + +enclosureName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enclosure/backplane's name as represented in Storage Management. + " + ::= { enclosureTableEntry 2 } + +enclosureState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + ready(2), + failed(3), + missing(4), + degraded(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of this enclosure/backplane. + Possible states: + 1: The current state could not be determined. + 2: The enclosure is operating normally. + 3: The enclosure has encountered a hardware problem or is not + responding. + 4: The enclosure is no longer connected to the controller or + there exists a problem communicating to the enclosure. + 5: The enclosure is unstable. + " + ::= { enclosureTableEntry 4 } + +enclosureServiceTag OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Enclosure identification used when consulting customer support. + " + ::= { enclosureTableEntry 8 } + +enclosureAssetTag OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The asset tag information for the enclosure." + ::= { enclosureTableEntry 9 } + +enclosureConnectedPort OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port on the controller to which the + storage enclosure is connected. + " + ::= { enclosureTableEntry 19 } + +enclosureRollUpStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Severity of the enclosure/backplane state. + This is the combined status of the enclosure and its sub-components. + Possible values: + 1: Other. + 2: Unknown. + 3: OK. + 4: Non-critical. + 5: Critical. + 6: Non-recoverable. + " + ::= { enclosureTableEntry 23 } + +enclosureComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the enclosure/backplane.itself without the + propagation of any contained component status. + Possible values: + 1: Other. + 2: Unknown. + 3: OK. + 4: Non-critical . + 5: Critical. + 6: Non-recoverable. + " + ::= { enclosureTableEntry 24 } + +enclosureFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The firmware information for the enclosure/backplane. + " + ::= { enclosureTableEntry 26 } + +enclosureSASAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SAS address of the enclosure/backplane. + " + ::= { enclosureTableEntry 30 } + +enclosureDriveCount OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks present in the enclosure/backplane. + " + ::= { enclosureTableEntry 31 } + +enclosureTotalSlots OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total physical drive slots in a storage enclosure + or server backplane. + " + ::= { enclosureTableEntry 32 } + +enclosureFanCount OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of fans present in the storage enclosure. + " + ::= { enclosureTableEntry 40 } + +enclosurePSUCount OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Power Supply Units (PSU) present + in the storage enclosure. + " + ::= { enclosureTableEntry 41 } + +enclosureEMMCount OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Enclosure Management Modules (EMM) + present in the storage enclosure. + " + ::= { enclosureTableEntry 42 } + +enclosureTempProbeCount OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of temperature sensing devices + present in the storage enclosure. + " + ::= { enclosureTableEntry 43 } + +enclosureRedundantPath OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether the controller has multiply paths to + reach the storage enclosure. + " + ::= { enclosureTableEntry 44 } + +enclosurePosition OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The possition of the storage enclosure within a daisy chain. + " + ::= { enclosureTableEntry 45 } + +enclosureBackplaneBayID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The unique bay ID of the backplane. + " + ::= { enclosureTableEntry 46 } + +enclosureFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enclosure/backplane's Fully Qualified Device Descriptor (FQDD) + as represented in Storage Management. + " + ::= { enclosureTableEntry 47 } + +enclosureDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enclosure/backplane's friendly FQDD as represented in + Storage Management. + " + ::= { enclosureTableEntry 48 } + +enclosureType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), + notApplicable(2), + sassata(3), + pcie(4), + universal(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The protocol supported by the backplane. + Possible states: + 1: Not one of the following or could not be determined. + 2: Not applicable (i.e. object is not a backplane). + 3: Supports SAS/SATA. + 4: Supports PCIe. + 5: Both SAS/SATA and PCIe. + " + ::= { enclosureTableEntry 49 } + + +------------------------------------------------------------------------------- +-- Enclosure Management Module Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.13.1.. +------------------------------------------------------------------------------- + +EnclosureManagementModuleTableEntry ::=SEQUENCE { + enclosureManagementModuleNumber INTEGER, + enclosureManagementModuleName DisplayString, + enclosureManagementModuleState INTEGER, + enclosureManagementModulePartNumber DisplayString, + enclosureManagementModuleFWVersion DisplayString, + enclosureManagementModuleComponentStatus ObjectStatusEnum, + enclosureManagementModuleFQDD FQDDString, + enclosureManagementModuleDisplayName DisplayString +} + +enclosureManagementModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosureManagementModuleTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed Enclosure Management Modules (EMM) + in the external storage enclosure(s). The number of + entries is related to number of enclosure management modules + discovered in the enclosure(s). The maximum number of entries + is implementation dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { physicalDevices 13 } + +enclosureManagementModuleTableEntry OBJECT-TYPE + SYNTAX EnclosureManagementModuleTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the enclosure management module table. A row in + this table cannot be created or deleted by SNMP operations + on columns of the table. + " + INDEX { enclosureManagementModuleNumber } + ::= { enclosureManagementModuleTable 1 } + +enclosureManagementModuleNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this enclosure management module. + " + ::= { enclosureManagementModuleTableEntry 1 } + +enclosureManagementModuleName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enclosure management module's name as + represented in Storage Management. + " + ::= { enclosureManagementModuleTableEntry 2 } + +enclosureManagementModuleState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + ready(2), + failed(3), + missing(4), + degraded(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of this enclosure management module. + Possible states: + 1: The current state could not be determined. + 2: The enclosure management module is operating normally. + 3: The enclosure management module has encountered a + hardware problem or is not responding. + 4: The enclosure management module is no longer connected + to the enclosure or there exists a problem communicating to it. + 5: The enclosure management module is unstable. + " + ::= { enclosureManagementModuleTableEntry 4 } + +enclosureManagementModulePartNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The part number of the enclosure management module. + " + ::= { enclosureManagementModuleTableEntry 6 } + +enclosureManagementModuleFWVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware version of the enclosure management module. + " + ::= { enclosureManagementModuleTableEntry 8 } + +enclosureManagementModuleComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the enclosure management module.itself without the + propagation of any contained component status. + Possible values: + 1: Other. + 2: Unknown. + 3: OK. + 4: Non-critical . + 5: Critical. + 6: Non-recoverable. + " + ::= { enclosureManagementModuleTableEntry 11 } + +enclosureManagementModuleFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enclosure management module's Fully Qualified Device + Descriptor (FQDD) as represented in Storage Management. + " + ::= { enclosureManagementModuleTableEntry 15 } + +enclosureManagementModuleDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The enclosure management module's friendly FQDD as represented in + Storage Management. + " + ::= { enclosureManagementModuleTableEntry 16 } + +------------------------------------------------------------------------------- +-- Enclosure Fan Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.7.1.. +------------------------------------------------------------------------------- + +EnclosureFanTableEntry ::=SEQUENCE { + enclosureFanNumber INTEGER, + enclosureFanName DisplayString, + enclosureFanState INTEGER, + enclosureFanSpeed INTEGER, + enclosureFanComponentStatus ObjectStatusEnum, + enclosureFanFQDD FQDDString, + enclosureFanDisplayName DisplayString +} + +enclosureFanTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosureFanTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed fans in the external storage enclosure(s). + The number of entries is related to number of fans discovered in + the enclosure(s). The maximum number of entries is implementation + dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { physicalDevices 7 } + +enclosureFanTableEntry OBJECT-TYPE + SYNTAX EnclosureFanTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the fan table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table. + " + INDEX { enclosureFanNumber } + ::= { enclosureFanTable 1 } + +enclosureFanNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this fan. + " + ::= { enclosureFanTableEntry 1 } + +enclosureFanName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The fan's name as represented in Storage Management. + " + ::= { enclosureFanTableEntry 2 } + +enclosureFanState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + ready(2), + failed(3), + missing(4), + degraded(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of this fan. + Possible states: + 1: The current state could not be determined. + 2: The fan is operating normally. + 3: The fan has encountered a hardware problem or is not + responding. + 4: The fan is no longer connected to the enclosure or + there exists a problem communicating to it. + 5: The fan is unstable. + " + ::= { enclosureFanTableEntry 4 } + +enclosureFanSpeed OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + stopped(2), + slow(3), + medium(4), + fast(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the current relative speed of the fan. + " + ::= { enclosureFanTableEntry 11 } + +enclosureFanComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the fan itself without the + propagation of any contained component status. + Possible values: + 1: Other. + 2: Unknown. + 3: OK. + 4: Non-critical . + 5: Critical. + 6: Non-recoverable. + " + ::= { enclosureFanTableEntry 15 } + +enclosureFanFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The fan's Fully Qualified Device Descriptor (FQDD) + as represented in Storage Management. + " + ::= { enclosureFanTableEntry 20 } + +enclosureFanDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The fan's friendly FQDD as represented in + Storage Management. + " + ::= { enclosureFanTableEntry 21 } + + +------------------------------------------------------------------------------- +-- Enclosure Power Supply Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.9.1.. +------------------------------------------------------------------------------- + +EnclosurePowerSupplyTableEntry ::=SEQUENCE { + enclosurePowerSupplyNumber INTEGER, + enclosurePowerSupplyName DisplayString, + enclosurePowerSupplyState INTEGER, + enclosurePowerSupplyPartNumber DisplayString, + enclosurePowerSupplyComponentStatus ObjectStatusEnum, + enclosurePowerSupplyFQDD FQDDString, + enclosurePowerSupplyDisplayName DisplayString +} + +enclosurePowerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosurePowerSupplyTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed Power Supply Units(PSU) in the external + storage enclosure(s). The number of entries is related to number + of power supply unit(s) discovered in the enclosure(s). The + maximum number of entries is implementation + dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { physicalDevices 9 } + +enclosurePowerSupplyTableEntry OBJECT-TYPE + SYNTAX EnclosurePowerSupplyTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the power supply unit table. A row in this table cannot + be created or deleted by SNMP operations on columns of the table. + " + INDEX { enclosurePowerSupplyNumber } + ::= { enclosurePowerSupplyTable 1 } + +enclosurePowerSupplyNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this power supply unit. + " + ::= { enclosurePowerSupplyTableEntry 1 } + +enclosurePowerSupplyName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The power supply unit's name as represented in + Storage Management. + " + ::= { enclosurePowerSupplyTableEntry 2 } + +enclosurePowerSupplyState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + ready(2), + failed(3), + missing(4), + degraded(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of this power supply unit. + Possible states: + 1: The current state could not be determined. + 2: The power supply unit is operating normally. + 3: The power supply unit has encountered a hardware problem + or is not responding. + 4: The power supply unit is no longer connected to the enclosure + or there exists a problem communicating to it. + 5: The power supply unit is unstable. + " + ::= { enclosurePowerSupplyTableEntry 4 } + +enclosurePowerSupplyPartNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The part number of the power supply unit. + " + ::= { enclosurePowerSupplyTableEntry 7 } + +enclosurePowerSupplyComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the power supply unit itself without the + propagation of any contained component status. + Possible values: + 1: Other. + 2: Unknown. + 3: OK. + 4: Non-critical . + 5: Critical. + 6: Non-recoverable. + " + ::= { enclosurePowerSupplyTableEntry 9 } + +enclosurePowerSupplyFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The power supply unit's Fully Qualified Device Descriptor (FQDD) + as represented in Storage Management. + " + ::= { enclosurePowerSupplyTableEntry 15 } + +enclosurePowerSupplyDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The power supply unit's friendly FQDD as represented in + Storage Management. + " + ::= { enclosurePowerSupplyTableEntry 16 } + + +------------------------------------------------------------------------------- +-- Enclosure Temperature Probe Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.5.1.20.130.11.1.. +------------------------------------------------------------------------------- + +EnclosureTemperatureProbeTableEntry ::=SEQUENCE { + enclosureTemperatureProbeNumber INTEGER, + enclosureTemperatureProbeName DisplayString, + enclosureTemperatureProbeState INTEGER, + enclosureTemperatureProbeMinWarningValue INTEGER, + enclosureTemperatureProbeMinCriticalValue INTEGER, + enclosureTemperatureProbeMaxWarningValue INTEGER, + enclosureTemperatureProbeMaxCriticalValue INTEGER, + enclosureTemperatureProbeCurValue INTEGER, + enclosureTemperatureProbeComponentStatus ObjectStatusEnum, + enclosureTemperatureProbeFQDD FQDDString, + enclosureTemperatureProbeDisplayName DisplayString +} + +enclosureTemperatureProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosureTemperatureProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of managed temperature probes in the external storage + enclosure(s). The number of entries is related to number of + temperature probes discovered in the enclosure(s). The maximum + number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all + entries. + " + ::= { physicalDevices 11 } + +enclosureTemperatureProbeTableEntry OBJECT-TYPE + SYNTAX EnclosureTemperatureProbeTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the temperature probe table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table. + " + INDEX { enclosureTemperatureProbeNumber } + ::= { enclosureTemperatureProbeTable 1 } + +enclosureTemperatureProbeNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Instance number of this temperature probe. + " + ::= { enclosureTemperatureProbeTableEntry 1 } + +enclosureTemperatureProbeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The temperature probe's name as represented in + Storage Management. + " + ::= { enclosureTemperatureProbeTableEntry 2 } + +enclosureTemperatureProbeState OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + ready(2), + failed(3), + missing(4), + degraded(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of this temperature probe. + Possible states: + 1: The current state could not be determined. + 2: The temperature probe is operating normally. + 3: The temperature probe has encountered a hardware problem + or is not responding. + 4: The temperature probe is no longer connected to the enclosure + or there exists a problem communicating to it. + 5: The temperature probe is unstable. + " + ::= { enclosureTemperatureProbeTableEntry 4 } + +enclosureTemperatureProbeMinWarningValue OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum temperature that will force the probe into + a warning state. + " + ::= { enclosureTemperatureProbeTableEntry 7 } + +enclosureTemperatureProbeMinCriticalValue OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum temperature that will force the probe into + a error state. + " + ::= { enclosureTemperatureProbeTableEntry 8 } + +enclosureTemperatureProbeMaxWarningValue OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum temperature that will force the probe into + a warning state. + " + ::= { enclosureTemperatureProbeTableEntry 9 } + +enclosureTemperatureProbeMaxCriticalValue OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum temperature that will force the probe into + a warning state. + " + ::= { enclosureTemperatureProbeTableEntry 10 } + +enclosureTemperatureProbeCurValue OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum temperature that will force the probe into + a warning state. + " + ::= { enclosureTemperatureProbeTableEntry 11 } + +enclosureTemperatureProbeComponentStatus OBJECT-TYPE + SYNTAX ObjectStatusEnum + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the enclosure management module.itself without the + propagation of any contained component status. + Possible values: + 1: Other. + 2: Unknown. + 3: OK. + 4: Non-critical . + 5: Critical. + 6: Non-recoverable. + " + ::= { enclosureTemperatureProbeTableEntry 13 } + +enclosureTemperatureProbeFQDD OBJECT-TYPE + SYNTAX FQDDString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The temperature probe's Fully Qualified Device Descriptor (FQDD) + as represented in Storage Management. + " + ::= { enclosureTemperatureProbeTableEntry 15 } + +enclosureTemperatureProbeDisplayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The temperature probe's friendly FQDD as represented + in Storage Management. + " + ::= { enclosureTemperatureProbeTableEntry 16 } + + +------------------------------------------------------------------------------ +-- Alert Trap Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3.2 +------------------------------------------------------------------------------ + + +------------------------------------------------------------------------------ +-- System Alert Trap Group +-- System Traps (a.k.a, System Health Traps) +-- Category: System/1 +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3.2.1 +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-- Amperage Probe Traps +-- +-- Category: System/1 +-- Subcategory: AMP/16 +------------------------------------------------------------------------------ + +alertAmperageProbeNormal NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Current sensor reading is within range." + --#TYPE "System: Amperage Normal" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2179 } + +alertAmperageProbeWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Current sensor has detected a warning value." + --#TYPE "System: Amperage Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2178 } + +alertAmperageProbeFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Current sensor has detected a failure value." + --#TYPE "System: Amperage Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2177 } + +------------------------------------------------------------------------------ +-- Automatic System Recovery Trap +-- +-- Category: System/1 +-- Subcategory: ASR/23 +------------------------------------------------------------------------------ + +alertAutomaticSystemRecovery NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Automatic system recovery (ASR) was performed." + --#TYPE "System: Automatic System Recovery" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2233 } + +------------------------------------------------------------------------------ +-- Battery Traps +-- +-- Category: System/1 +-- Subcategory: BAT/22 +------------------------------------------------------------------------------ + +alertBatteryNormal NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Battery state has returned to normal; + or battery presence had been detected." + --#TYPE "System: Battery Normal" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2227 } + +alertBatteryWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Battery is low." + --#TYPE "System: Battery Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2226 } + +alertBatteryFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Battery has failed or battery is absent." + --#TYPE "System: Battery Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2225 } + +------------------------------------------------------------------------------ +-- Cable Traps +-- +-- Category: System/1 +-- Subcategory: CBL/43 +------------------------------------------------------------------------------ + +alertCableFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Cable failure or critical event." + --#TYPE "System: Cable Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2393 } + +------------------------------------------------------------------------------ +-- CMC Traps +-- +-- Category: System/1 +-- Subcategory: CMC/62 +------------------------------------------------------------------------------ + +alertCMCWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Chassis Management Controller detected a warning." + --#TYPE "System: CMC Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2546 } + +alertCMCFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Chassis Management Controller detected an error." + --#TYPE "System: CMC Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2545 } + +------------------------------------------------------------------------------ +-- Processor Device Status Traps +-- +-- Category: System/1 +-- Subcategory: CPU/24 +------------------------------------------------------------------------------ + +alertProcessorDeviceStatusNormal NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Processor device status has returned to normal." + --#TYPE "System: Processor Device Status Normal" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2243 } + +alertProcessorDeviceStatusWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Processor device status has detected a warning." + --#TYPE "System: Processor Device Status Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2242 } + +alertProcessorDeviceStatusFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Processor device status has detected a failure." + --#TYPE "System: Processor Device Status Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2241 } + +------------------------------------------------------------------------------ +-- Processor Device Absent Trap +-- +-- Category: System/1 +-- Subcategory: CPUA/51 +------------------------------------------------------------------------------ + +alertProcessorDeviceAbsent NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Processor device is absent." + --#TYPE "System: Processor Device Absent" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2457 } + +------------------------------------------------------------------------------ +-- Fan Traps +-- +-- Category: System/1 +-- Subcategory: FAN/13 +------------------------------------------------------------------------------ + +alertFanInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fan information." + --#TYPE "System: Fan Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2155 } + +alertFanWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fan warning." + --#TYPE "System: Fan Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2154 } + +alertFanFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fan failure." + --#TYPE "System: Fan Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2153 } + +------------------------------------------------------------------------------ +-- Fiber Channel Traps +-- +-- Category: System/1 +-- Subcategory: FC/61 +------------------------------------------------------------------------------ + +alertFiberChannelInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fiber Channel information." + --#TYPE "System: Fiber Channel Information " + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2539 } + +alertFiberChannelWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fiber Channel warning." + --#TYPE "System: Fiber Channel Warning " + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2538 } + +alertFiberChannelFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fiber Channel failure or critical event." + --#TYPE "System: Fiber Channel Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2537 } + +------------------------------------------------------------------------------ +-- Hardware Configuration Traps +-- +-- Category: System/1 +-- Subcategory: HWC/35 +------------------------------------------------------------------------------ + +alertHardwareConfigurationInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Hardware configuration information." + --#TYPE "System: Hardware Configuration Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2331 } + +alertHardwareConfigurationWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Hardware configuration warning." + --#TYPE "System: Hardware Configuration Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2330 } + +alertHardwareConfigurationFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Hardware configuration failure or critical event." + --#TYPE "System: Hardware Configuration Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2329 } + +------------------------------------------------------------------------------ +-- IO Virtualization Traps +-- +-- Category: System/1 +-- Subcategory: IOV/63 +------------------------------------------------------------------------------ + +alertIOVirtualizationFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "IO Virtualization failure or critical event." + --#TYPE "System: IO Virtualization Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2553 } + +------------------------------------------------------------------------------ +-- Link Status Traps +-- +-- Category: System/1 +-- Subcategory: LNK/25 +------------------------------------------------------------------------------ + +alertLinkStatusInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Link status information." + --#TYPE "System: Link Status Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2251 } + +alertLinkStatusWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Link status warning." + --#TYPE "System: Link Status Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2250 } + +alertLinkStatusFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Link status failure or critical event." + --#TYPE "System: Link Status Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2249 } + +------------------------------------------------------------------------------ +-- Memory Device Traps +-- +-- Category: System/1 +-- Subcategory: MEM/27 +------------------------------------------------------------------------------ + +alertMemoryDeviceInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Memory device informational event." + --#TYPE "System: Memory Device Infomation" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2267 } + +alertMemoryDeviceWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Memory device status is noncritical." + --#TYPE "System: Memory Device Noncritical" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2266 } + +alertMemoryDeviceFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Memory device status is critical." + --#TYPE "System: Memory Device Critical" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2265 } + +------------------------------------------------------------------------------ +-- NIC Traps +-- +-- Category: System/1 +-- Subcategory: NIC/5 +------------------------------------------------------------------------------ + +alertNetworkInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Network information." + --#TYPE "System: Network Information " + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2091 } + +alertNetworkWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Network warning." + --#TYPE "System: Network Warning " + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2090 } + +alertNetworkFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Network failure or critical event." + --#TYPE "System: Network Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2089 } + +------------------------------------------------------------------------------ +-- Operation System ("OS") Event Traps +-- +-- Category: System/1 +-- Subcategory: OSE/45 +------------------------------------------------------------------------------ + +alertOSInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "An OS graceful stop occurred; + or an OS graceful shut-down occurred." + --#TYPE "System: Operating System Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2411 } + +alertOSFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "A critical stop occurred during OS load; + or a runtime critical stop occurred." + --#TYPE "System: Operating System Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2409 } + +------------------------------------------------------------------------------ +-- PCI Device Traps +-- +-- Category: System/1 +-- Subcategory: PCI/46 +------------------------------------------------------------------------------ + +alertPCIDeviceInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "An informational event was detected for a PCI device." + --#TYPE "System: PCI Device Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2419 } + +alertPCIDeviceWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "A warning event was detected for a PCI device." + --#TYPE "System: PCI Device Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2418 } + +alertPCIDeviceFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "An error was detected for a PCI device." + --#TYPE "System: PCI Device Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2417 } + +------------------------------------------------------------------------------ +-- Physical Disk Traps +-- +-- Category: System/1 +-- Subcategory: PDR/31 +------------------------------------------------------------------------------ + +alertPhysicalDiskInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Physical disk information." + --#TYPE "System: Physical Disk Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2299 } + +alertPhysicalDiskWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Physical disk warning." + --#TYPE "System: Physical Disk Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2298 } + +alertPhysicalDiskFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Physical disk failure." + --#TYPE "System: Physical Disk Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { systemAlertTrapGroup 0 2297 } + +------------------------------------------------------------------------------ +-- BIOS POST Trap +-- +-- Category: System/1 +-- Subcategory: PST/47 +------------------------------------------------------------------------------ + +alertBiosPostFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "System BIOS detected a failure." + --#TYPE "System: BIOS POST Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { systemAlertTrapGroup 0 2425 } + +------------------------------------------------------------------------------ +-- Power Supply Traps +-- +-- Category: System/1 +-- Subcategory: PSU/17 +------------------------------------------------------------------------------ + +alertPowerSupplyNormal NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power supply has returned to normal." + --#TYPE "System: Power Supply Normal" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2187 } + +alertPowerSupplyWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power supply has detected a warning." + --#TYPE "System: Power Supply Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2186 } + +alertPowerSupplyFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power supply has detected a failure." + --#TYPE "System: Power Supply Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2185 } + +------------------------------------------------------------------------------ +-- Power Supply Absent Trap +-- +-- Category: System/1 +-- Subcategory: PSUA/52 +------------------------------------------------------------------------------ + +alertPowerSupplyAbsent NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power supply is absent." + --#TYPE "System: Power Supply Absent" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2465 } + +------------------------------------------------------------------------------ +-- Power Usage Traps +-- +-- Category: System/1 +-- Subcategory: PWR/28 +------------------------------------------------------------------------------ + +alertPowerUsageInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "System performance restored." + --#TYPE "System: Power Usage Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2275 } + +alertPowerUsageWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "System performance degraded." + --#TYPE "System: Power Usage Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2274 } + +alertPowerUsageFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "The system halted because system power exceeds capacity; + or the system performance degraded because power draw exceeds the + power threshold." + --#TYPE "System: Power Usage Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2273 } + +------------------------------------------------------------------------------ +-- Redundancy Traps +-- +-- Category: System/1 +-- Subcategory: RDU/53 +------------------------------------------------------------------------------ + +alertRedundancyInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Redundancy information." + --#TYPE "System: Redundancy Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2475 } + +alertRedundancyDegraded NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Redundancy is degraded." + --#TYPE "System: Redundancy Degraded" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2474 } + +alertRedundancyLost NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Redundancy is lost." + --#TYPE "System: Redundancy Lost" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2473 } + +------------------------------------------------------------------------------ +-- Integrated Dual SD Module Traps +-- +-- Category: System/1 +-- Subcategory: RFL/20 +------------------------------------------------------------------------------ + +alertIntegratedDualSDModuleInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Integrated Dual SD Module information." + --#TYPE "System: Integrated Dual SD Module Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2211 } + +alertIntegratedDualSDModuleWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Integrated Dual SD Module warning." + --#TYPE "System: Integrated Dual SD Module Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2210 } + +alertIntegratedDualSDModuleFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Integrated Dual SD Module failure." + --#TYPE "System: Integrated Dual SD Module Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2209 } + +------------------------------------------------------------------------------ +-- Integrated Dual SD Module Absent Trap +-- +-- Category: System/1 +-- Subcategory: RFLA/54 +------------------------------------------------------------------------------ + +alertIntegratedDualSDModuleAbsent NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Integrated Dual SD Module is absent." + --#TYPE "System: Integrated Dual SD Module absent." + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2481 } + +------------------------------------------------------------------------------ +-- Integrated Dual SD Module Redundancy Traps +-- +-- Category: System/1 +-- Subcategory: RRDU/55 +------------------------------------------------------------------------------ + +alertIntegratedDualSDModuleRedundancyInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Integrated Dual SD Module redundancy information." + --#TYPE "System: Integrated Dual SD Module Redundancy Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2491 } + +alertIntegratedDualSDModuleRedundancyDegraded NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Integrated Dual SD Module redundancy is degraded." + --#TYPE "System: Integrated Dual SD Module Redundancy Degraded" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2490 } + +alertIntegratedDualSDModuleRedundancyLost NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Integrated Dual SD Module redundancy is lost." + --#TYPE "System: Integrated Dual SD Module Redundancy Lost" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2489 } + +------------------------------------------------------------------------------ +-- Security Event Traps +-- +-- Category: System/1 +-- Subcategory: SEC/42 +------------------------------------------------------------------------------ + +alertSecurityInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Security information." + --#TYPE "System: Security Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2387 } + +alertSecurityWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Security warning." + --#TYPE "System: Security Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2386 } + +alertSecurityFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Security failure or critical event." + --#TYPE "System: Security Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2385 } + +------------------------------------------------------------------------------ +-- System Event Log Traps +-- +-- Category: System/1 +-- Subcategory: SEL/41 +------------------------------------------------------------------------------ + +alertSystemEventLogInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "System Event Log information." + --#TYPE "System: System Event Log Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2379 } + +alertSystemEventLogWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "System Event Log warning." + --#TYPE "System: System Event Log Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2378 } + +alertSystemEventLogFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "System Event Log failure or critical event." + --#TYPE "System: System Event Log Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2377 } + +------------------------------------------------------------------------------ +-- Software Configuration Traps +-- +-- Category: System/1 +-- Subcategory: SWC/36 +------------------------------------------------------------------------------ + +alertSoftwareConfigurationInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Software configuration information." + --#TYPE "System: Software Configuration Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2339 } + +alertSoftwareConfigurationWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Software configuration warning." + --#TYPE "System: Software Configuration Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2338 } + +alertSoftwareConfigurationFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Software configuration failure." + --#TYPE "System: Software Configuration Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2337 } + +------------------------------------------------------------------------------ +-- Temperature Probe Traps +-- +-- Category: System/1 +-- Subcategory: TMP/14 +------------------------------------------------------------------------------ + +alertTemperatureProbeNormal NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature sensor value is within range." + --#TYPE "System: Temperature Normal" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2163 } + +alertTemperatureProbeWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature sensor has detected a warning value." + --#TYPE "System: Temperature Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2162 } + +alertTemperatureProbeFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature sensor has detected a failure value." + --#TYPE "System: Temperature Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2161 } + +------------------------------------------------------------------------------ +-- Temperature Statistics Traps +-- +-- Category: System/1 +-- Subcategory: TMPS/59 +------------------------------------------------------------------------------ + +alertTemperatureStatisticsWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature has been above the warning or critical threshold level + for a long enough period of time to be considered in a warning state." + --#TYPE "System: Temperature Statistics Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2522 } + +alertTemperatureStatisticsFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature has been above the warning or critical threshold level + for a long enough period of time to be considered in a critical state." + --#TYPE "System: Temperature Statistics Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2521 } + +------------------------------------------------------------------------------ +-- vFlash Media Device Traps +-- +-- Category: System/1 +-- Subcategory: VFL/57 +------------------------------------------------------------------------------ + +alertvFlashMediaDeviceInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "vFlash Media device information." + --#TYPE "System: vFlash Media Device Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2507 } + +alertvFlashMediaDeviceWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "vFlash Media device warning." + --#TYPE "System: vFlash Media Device Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2506 } + +alertvFlashMediaDeviceFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "vFlash Media device failure." + --#TYPE "System: vFlash Media Device Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2505 } + +------------------------------------------------------------------------------ +-- vFlash Media Device Absent Trap +-- +-- Category: System/1 +-- Subcategory: VFLA/58 +------------------------------------------------------------------------------ + +alertvFlashMediaDeviceAbsent NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "vFlash Media device is absent." + --#TYPE "System: vFlash Media Device Absent" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2515 } + +------------------------------------------------------------------------------ +-- Voltage Probe Traps +-- +-- Category: System/1 +-- Subcategory: VLT/15 +------------------------------------------------------------------------------ + +alertVoltageProbeNormal NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Voltage sensor reading is within range." + --#TYPE "System: Voltage Normal" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2171 } + +alertVoltageProbeWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Voltage sensor has detected a warning value." + --#TYPE "System: Voltage Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2170 } + +alertVoltageProbeFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Voltage sensor has detected a failure value." + --#TYPE "System: Voltage Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2169 } + +------------------------------------------------------------------------------ +-- RAC Traps +-- +-- Category: System/1 +-- Subcategory: RAC/60 +------------------------------------------------------------------------------ + +alertRACInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "RAC information." + --#TYPE "System: RAC Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { systemAlertTrapGroup 0 2531 } + +------------------------------------------------------------------------------ +-- System Performance Traps +-- +-- Category: System/1 +-- Subcategory: PFM/75 +------------------------------------------------------------------------------ + +alertSystemPerformanceWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "System Performance warning." + --#TYPE "System: Performance Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { systemAlertTrapGroup 0 2650 } + + +------------------------------------------------------------------------------ +-- Storage Alert Trap Group +-- Storage Traps +-- Category: Storage/2 +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3.2.2 +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-- Battery Traps +-- +-- Category: Storage/2 +-- Subcategory: BAT/22 +------------------------------------------------------------------------------ + +alertStorageBatteryInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Battery information." + --#TYPE "Storage: Battery Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4275 } + +alertStorageBatteryWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Battery warning." + --#TYPE "Storage: Battery Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4274 } + +alertStorageBatteryFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Battery failure." + --#TYPE "Storage: Battery Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4273 } + +------------------------------------------------------------------------------ +-- Controller Traps +-- +-- Category: Storage/2 +-- Subcategory: CTL/29 +------------------------------------------------------------------------------ + +alertStorageControllerInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Controller information." + --#TYPE "Storage: Controller Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4331 } + +alertStorageControllerWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Controller warning." + --#TYPE "Storage: Controller Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4330 } + +alertStorageControllerFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Controller failure." + --#TYPE "Storage: Controller Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4329 } + +------------------------------------------------------------------------------ +-- Enclosure Traps +-- +-- Category: Storage/2 +-- Subcategory: ENC/30 +------------------------------------------------------------------------------ + +alertStorageEnclosureInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Enclosure information." + --#TYPE "Storage: Enclosure Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4339 } + +alertStorageEnclosureWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Enclosure warning." + --#TYPE "Storage: Enclosure Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4338 } + +alertStorageEnclosureFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Enclosure failure." + --#TYPE "Storage: Enclosure Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4337 } + +------------------------------------------------------------------------------ +-- Fan Traps +-- +-- Category: Storage/2 +-- Subcategory: FAN/13 +------------------------------------------------------------------------------ + +alertStorageFanInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fan information." + --#TYPE "Storage: Fan Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4203 } + +alertStorageFanWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fan warning." + --#TYPE "Storage: Fan Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4202 } + +alertStorageFanFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Fan failure." + --#TYPE "Storage: Fan Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4201 } + +------------------------------------------------------------------------------ +-- Physical Disk Traps +-- +-- Category: Storage/2 +-- Subcategory: PDR/31 +------------------------------------------------------------------------------ + +alertStoragePhysicalDiskInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Physical disk information." + --#TYPE "Storage: Physical Disk Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4347 } + +alertStoragePhysicalDiskWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Physical disk warning." + --#TYPE "Storage: Physical Disk Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4346 } + +alertStoragePhysicalDiskFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Physical disk failure." + --#TYPE "Storage: Physical Disk Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4345 } + +------------------------------------------------------------------------------ +-- Power Supply Traps +-- +-- Category: Storage/2 +-- Subcategory: PSU/17 +------------------------------------------------------------------------------ + +alertStoragePowerSupplyInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power supply information." + --#TYPE "Storage: Power Supply Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4235 } + +alertStoragePowerSupplyWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power supply warning." + --#TYPE "Storage: Power Supply Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4234 } + +alertStoragePowerSupplyFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power supply failure." + --#TYPE "Storage: Power Supply Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4233 } + +------------------------------------------------------------------------------ +-- Security Event Traps +-- +-- Category: Storage/2 +-- Subcategory: SEC/42 +------------------------------------------------------------------------------ + +alertStorageSecurityInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Storage Security information." + --#TYPE "Storage: Security Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4435 } + +alertStorageSecurityWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Storage Security warning." + --#TYPE "Storage: Security Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4434 } + +alertStorageSecurityFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Storage Security failure or critical event." + --#TYPE "Storage: Security Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4433 } + +------------------------------------------------------------------------------ +-- Storage Management Status Traps +-- +-- Category: Storage/2 +-- Subcategory: STOR/10 +------------------------------------------------------------------------------ + +alertStorageManagementInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Storage Management Information. + There is no global status change associated with this trap." + --#TYPE "Storage: Storage Management Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4179 } + +alertStorageManagementWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Storage Management has detected a device independent warning + condition. There is no global status change associated with this + trap." + --#TYPE "Storage: Storage Management Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4178 } + +alertStorageManagementFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Storage Management has detected a device independent error condition. + There is no global status change associated with this trap." + --#TYPE "Storage: Storage Management Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4177 } + +------------------------------------------------------------------------------ +-- Temperature Probe Traps +-- +-- Category: Storage/2 +-- Subcategory: TMP/14 +------------------------------------------------------------------------------ + +alertStorageTemperatureProbeInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature probe information." + --#TYPE "Storage: Temperature Probe Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4211 } + +alertStorageTemperatureProbeWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature probe warning." + --#TYPE "Storage: Temperature Probe Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4210 } + +alertStorageTemperatureProbeFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Temperature probe failure." + --#TYPE "Storage: Temperature Probe Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4209 } + +------------------------------------------------------------------------------ +-- Virtual Disk Traps +-- +-- Category: Storage/2 +-- Subcategory: VDR/32 +------------------------------------------------------------------------------ + +alertStorageVirtualDiskInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Virtual disk information." + --#TYPE "Storage: Virtual Disk Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { storageAlertTrapGroup 0 4355 } + +alertStorageVirtualDiskWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Virtual disk warning." + --#TYPE "Storage: Virtual Disk Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { storageAlertTrapGroup 0 4354 } + +alertStorageVirtualDiskFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Virtual disk failure." + --#TYPE "Storage: Virtual Disk Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE FAILED + --#STATUS current + ::= { storageAlertTrapGroup 0 4353 } + + +------------------------------------------------------------------------------ +-- Updates Alert Trap Group +-- Updates Traps +-- Category: Updates/3 +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3.2.3 +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-- Update Job Trap +-- +-- Category: Updates/3 +-- Subcategory: RED/8 +------------------------------------------------------------------------------ + +alertUpdateJobInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Update job information." + --#TYPE "Updates: Update Job Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { updatesAlertTrapGroup 0 6211 } + +------------------------------------------------------------------------------ +-- Software Change Traps +-- +-- Category: Updates/3 +-- Subcategory: SWU/21 +------------------------------------------------------------------------------ + +alertSoftwareChangeUpdateWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Software change update warning." + --#TYPE "Updates: Software Change Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { updatesAlertTrapGroup 0 6314 } + + +------------------------------------------------------------------------------ +-- Audit Alert Trap Group +-- Audit Traps +-- Category: Audit/4 +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3.2.4 +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-- CMC Traps +-- +-- Category: Audit/4 +-- Subcategory: CMC/62 +------------------------------------------------------------------------------ + +alertCMCAuditInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Chassis Management Controller audit information." + --#TYPE "Audit: CMC Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { auditAlertTrapGroup 0 8691 } + +alertCMCAuditWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Chassis Management Controller audit warning." + --#TYPE "Audit: CMC Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8690 } + +alertCMCAuditFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Chassis Management Controller audit failure or critical event." + --#TYPE "Audit: CMC Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8689 } + +------------------------------------------------------------------------------ +-- Debug Traps +-- +-- Category: Audit/4 +-- Subcategory: FSD/50 +------------------------------------------------------------------------------ + +alertDebugInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Debug authorized." + --#TYPE "Audit: Debug Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { auditAlertTrapGroup 0 8595 } + +alertDebugWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Debug authorization failed." + --#TYPE "Audit: Debug Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8594 } + +------------------------------------------------------------------------------ +-- iDRAC IP Address Change Trap +-- +-- Category: Audit/4 +-- Subcategory: IPA/38 +------------------------------------------------------------------------------ + +alertiDRACIPAddressChange NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "iDRAC IP address has changed." + --#TYPE "iDRAC IP address has changed" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + + ::= { auditAlertTrapGroup 0 8499 } + +------------------------------------------------------------------------------ +-- License Traps +-- +-- Category: Audit/4 +-- Subcategory: LIC/40 +------------------------------------------------------------------------------ + +alertLicenseInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "License information." + --#TYPE "Audit: License Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { auditAlertTrapGroup 0 8515 } + +alertLicenseWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "License warning." + --#TYPE "Audit: License Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8514 } + +alertLicenseFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "License failure." + --#TYPE "Audit: License Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8513 } + +------------------------------------------------------------------------------ +-- PCI Device Traps +-- +-- Category: Audit/4 +-- Subcategory: PCI/46 +------------------------------------------------------------------------------ + +alertPCIDeviceAuditWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "PCI device audit warning." + --#TYPE "Audit: PCI Device Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8562 } + +------------------------------------------------------------------------------ +-- Power Supply Traps +-- +-- Category: Audit/4 +-- Subcategory: PSU/17 +------------------------------------------------------------------------------ + +alertPowerSupplyAuditWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power Supply audit warning." + --#TYPE "Audit: Power Supply Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8330 } + +alertPowerSupplyAuditFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power Supply audit failure or critical event." + --#TYPE "Audit: Power Supply Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8329 } + +------------------------------------------------------------------------------ +-- Power Usage Traps +-- +-- Category: Audit/4 +-- Subcategory: PWR/28 +------------------------------------------------------------------------------ + +alertPowerUsageAuditInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power usage audit information." + --#TYPE "Audit: Power Usage Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { auditAlertTrapGroup 0 8419 } + +alertPowerUsageAuditWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power usage audit warning." + --#TYPE "Audit: Power Usage Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8418 } + +alertPowerUsageAuditFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Power usage audit failure or critical event." + --#TYPE "Audit: Power Usage Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8417 } + +------------------------------------------------------------------------------ +-- System Power State Change Trap +-- +-- Category: Audit/4 +-- Subcategory: SYS/48 +------------------------------------------------------------------------------ + +alertSystemPowerStateChangeInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Host is going through a power state change + (powering on or powering off)." + --#TYPE "Audit: System Power State Change Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { auditAlertTrapGroup 0 8579 } + +------------------------------------------------------------------------------ +-- User Tracking Trap +-- +-- Category: Audit/4 +-- Subcategory: USR/37 +------------------------------------------------------------------------------ + +alertUserTrackingWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "User Tracking warning." + --#TYPE "Audit: User Tracking" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { auditAlertTrapGroup 0 8490 } + + +------------------------------------------------------------------------------ +-- Configuration Alert Trap Group +-- Configuration Traps +-- Category: Configuration/5 +-- +-- OID Format: 1.3.6.1.4.1.674.10892.5.3.2.5 +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-- AutoDiscovery Traps +-- +-- Category: Configuration/5 +-- Subcategory: DIS/49 +------------------------------------------------------------------------------ + +alertAutoDiscoveryInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Auto discovery information." + --#TYPE "Configuration: Auto Discovery Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { configurationAlertTrapGroup 0 10635 } + +------------------------------------------------------------------------------ +-- NIC Configuration Traps +-- +-- Category: Configuration/5 +-- Subcategory: IOID/66 +------------------------------------------------------------------------------ + + +alertNetworkConfigurationInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Network configuration information." + --#TYPE "Configuration: Network Configuration Information " + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { configurationAlertTrapGroup 0 10771 } + +alertNetworkConfigurationWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Network configuration warning." + --#TYPE "Configuration: Network Configuration Warning " + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { configurationAlertTrapGroup 0 10770 } + +------------------------------------------------------------------------------ +-- IP Address Traps +-- +-- Category: Configuration/5 +-- Subcategory: IPA/38 +------------------------------------------------------------------------------ + +alertIPAddressConfigurationInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "IP Address configuration information." + --#TYPE "Configuration: IP Address Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { configurationAlertTrapGroup 0 10547 } + +------------------------------------------------------------------------------ +-- Job Control Traps +-- +-- Category: Configuration/5 +-- Subcategory: JCP/3 +------------------------------------------------------------------------------ + +alertJobControlConfigurationInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Job Control configuration information." + --#TYPE "Configuration: Job Control Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { configurationAlertTrapGroup 0 10267 } + +------------------------------------------------------------------------------ +-- PCI Device Traps +-- +-- Category: Configuration/5 +-- Subcategory: PCI/46 +------------------------------------------------------------------------------ + +alertPCIDeviceConfigurationInformation NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "PCI device configuration information." + --#TYPE "Configuration: PCI Device Information" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { configurationAlertTrapGroup 0 10611 } + +------------------------------------------------------------------------------ +-- Security Event Traps +-- +-- Category: Configuration/5 +-- Subcategory: SEC/42 +------------------------------------------------------------------------------ + +alertSecurityConfigurationWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Security configuration warning." + --#TYPE "Configuration: Security Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { configurationAlertTrapGroup 0 10578 } + +------------------------------------------------------------------------------ +-- Software Configuration Traps +-- +-- Category: Configuration/5 +-- Subcategory: SWC/36 +------------------------------------------------------------------------------ + +alertSWCConfigurationWarning NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Software configuration warning." + --#TYPE "Configuration: Software Configuration Warning" + --#SEVERITY MINOR + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE DEGRADED + --#STATUS current + ::= { configurationAlertTrapGroup 0 10530 } + +alertSWCConfigurationFailure NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "Software configuration failure." + --#TYPE "Configuration: Software Configuration Failure" + --#SEVERITY CRITICAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Error Events" + --#STATE DEGRADED + --#STATUS current + ::= { configurationAlertTrapGroup 0 10529 } + +------------------------------------------------------------------------------ +-- Test Trap +-- +-- Category: Configuration/5 +-- Subcategory: TST/19 +------------------------------------------------------------------------------ + +alertTestTrapEvent NOTIFICATION-TYPE + OBJECTS { alertMessageID, + alertMessage, + alertCurrentStatus, + alertSystemServiceTag, + alertSystemFQDN, + alertFQDD, + alertDeviceDisplayName, + alertMessageArguments, + alertChassisServiceTag, + alertChassisName, + alertRacFQDN } + STATUS current + DESCRIPTION + "The iDRAC generated a test trap event in response to a user request." + --#TYPE "Configuration: iDRAC Test Trap Event" + --#SEVERITY INFORMATIONAL + --#SUMMARY "Message ID: %s, Device Display Name: %s, Message: %s," + --#SUMMARY "Device Status: %d, Device FQDD: %s," + --#SUMMARY "System Service Tag: %s, System Name: %s," + --#SUMMARY "Chassis Service Tag: %s, Chassis Name: %s," + --#SUMMARY "RAC FQDN: %s" + --#ARGUMENTS {0, 6, 1, 2, 5, 3, 4, 8, 9, 10} + --#CATEGORY "Status Events" + --#STATE OPERATIONAL + --#STATUS current + ::= { configurationAlertTrapGroup 0 10395 } + +END + +------------------------------------------------------------------------------ +-- End MIB +------------------------------------------------------------------------------ + diff --git a/pandora_console/attachment/mibs/IF-MIB b/pandora_console/attachment/mibs/IF-MIB new file mode 100644 index 0000000000..a687ea65e7 --- /dev/null +++ b/pandora_console/attachment/mibs/IF-MIB @@ -0,0 +1,1594 @@ +-- ***************************************************************** +-- IF-MIB.my: Interfaces MIB +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994 - 1996 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- +-- extracted from draft-ietf-ifmib-mib-03.txt +-- major differences with RFC1573 - +-- Added InterfaceIndexOrZero textual convention. +-- Added notPresent state for ifOperStatus. +-- Added the ifAlias, ifStackLastChange and ifTableLastChange objects. +-- Corrected the MAX-ACCESS clause values for +-- ifRcvAddressAddress, ifRcvAddressStatus and ifStackStatus. +-- +-- the following modifications have been applied: +-- changed "RFC-1213" to "RFC1213-MIB" +-- added import of snmpTraps + + IF-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, + Integer32, TimeTicks, Counter64, + NOTIFICATION-TYPE FROM SNMPv2-SMI + TEXTUAL-CONVENTION, DisplayString, + PhysAddress, TruthValue, RowStatus, + AutonomousType, TestAndIncr FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF + snmpTraps FROM SNMPv2-MIB + IANAifType FROM IANAifType-MIB + mib-2,interfaces FROM RFC1213-MIB; + + ifMIB MODULE-IDENTITY + LAST-UPDATED "9602221355Z" + ORGANIZATION "IETF Interfaces MIB Working Group" + CONTACT-INFO + + " Keith McCloghrie + Cisco Systems, Inc. + 170 West Tasman Drive + San Jose, CA 95134-1706 + US + + 408-526-5260 + kzm@cisco.com" + DESCRIPTION + "The MIB module to describe generic objects for + network interface sub-layers. This MIB is an updated + version of MIB-II's ifTable, and incorporates the + extensions defined in RFC 1229." + REVISION "9602282155Z" + DESCRIPTION + "Revisions made by the Interfaces MIB WG." + REVISION "9311082155Z" + DESCRIPTION + "Initial revision, published as part of RFC 1573." + ::= { mib-2 31 } + + ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 } + + -- OwnerString has the same semantics as used in RFC 1271 + + OwnerString ::= TEXTUAL-CONVENTION + DISPLAY-HINT "255a" + STATUS current + DESCRIPTION + "This data type is used to model an administratively + assigned name of the owner of a resource. This + information is taken from the NVT ASCII character set. + It is suggested that this name contain one or more of + the following: ASCII form of the manager station's + transport address, management station name (e.g., + domain name), network management personnel's name, + location, or phone number. In some cases the agent + itself will be the owner of an entry. In these cases, + this string shall be set to a string starting with + 'agent'." + SYNTAX OCTET STRING (SIZE(0..255)) + + + -- InterfaceIndex contains the semantics of ifIndex and + -- should be used for any objects defined on other mib + -- modules that need these semantics. + + InterfaceIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A unique value, greater than zero, for each interface + or interface sub-layer in the managed system. It is + recommended that values are assigned contiguously + starting from 1. The value for each interface sub- + layer must remain constant at least from one re- + initialization of the entity's network management + system to the next re-initialization." + SYNTAX Integer32 + + InterfaceIndexOrZero ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "This textual convention is an extension of the + InterfaceIndex convention. The latter defines a + greater than zero to identify an interface or + interface sub-layer in the managed system. This + extension permits the additional value of zero. the + value zero is object-specific and must therefore be + defined as part of the description of any object which + uses this syntax. Examples of the usage of zero might + include situations where interface was unknown, or + when none or all interfaces need to be referenced." + SYNTAX Integer32 (0..2147483647) + + ifNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of network interfaces (regardless of their + current state) present on this system." + ::= { interfaces 1 } + + ifTableLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the last + creation or deletion of an entry in the ifTable. If + the number of entries has been unchanged since the + last re-initialization of the local network management + subsystem, then this object contains a zero value." + ::= { ifMIBObjects 5 } + + + -- the Interfaces table + + -- The Interfaces table contains information on the entity's + -- interfaces. Each sub-layer below the internetwork-layer + -- of a network interface is considered to be an interface. + + ifTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of interface entries. The number of entries + is given by the value of ifNumber." + ::= { interfaces 2 } + + ifEntry OBJECT-TYPE + SYNTAX IfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing management information applicable + to a particular interface." + INDEX { ifIndex } + ::= { ifTable 1 } + + IfEntry ::= + SEQUENCE { + ifIndex InterfaceIndex, + ifDescr DisplayString, + ifType IANAifType, + ifMtu Integer32, + ifSpeed Gauge32, + ifPhysAddress PhysAddress, + ifAdminStatus INTEGER, + ifOperStatus INTEGER, + ifLastChange TimeTicks, + ifInOctets Counter32, + ifInUcastPkts Counter32, + ifInNUcastPkts Counter32, -- deprecated + ifInDiscards Counter32, + ifInErrors Counter32, + ifInUnknownProtos Counter32, + ifOutOctets Counter32, + ifOutUcastPkts Counter32, + ifOutNUcastPkts Counter32, -- deprecated + ifOutDiscards Counter32, + ifOutErrors Counter32, + ifOutQLen Gauge32, -- deprecated + ifSpecific OBJECT IDENTIFIER -- deprecated + } + + + ifIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value, greater than zero, for each + interface. It is recommended that values are assigned + contiguously starting from 1. The value for each + interface sub-layer must remain constant at least from + one re-initialization of the entity's network + management system to the next re-initialization." + ::= { ifEntry 1 } + + ifDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + interface. This string should include the name of the + manufacturer, the product name and the version of the + interface hardware/software." + ::= { ifEntry 2 } + + ifType OBJECT-TYPE + SYNTAX IANAifType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of interface. Additional values for ifType + are assigned by the Internet Assigned Numbers + Authority (IANA), through updating the syntax of the + IANAifType textual convention." + ::= { ifEntry 3 } + + ifMtu OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the largest packet which can be + sent/received on the interface, specified in octets. + For interfaces that are used for transmitting network + datagrams, this is the size of the largest network + datagram that can be sent on the interface." + ::= { ifEntry 4 } + + ifSpeed OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An estimate of the interface's current bandwidth in + bits per second. For interfaces which do not vary in + bandwidth or for those where no accurate estimation + can be made, this object should contain the nominal + bandwidth. If the bandwidth of the interface is + greater than the maximum value reportable by this + object then this object should report its maximum + value (4,294,967,295) and ifHighSpeed must be used to + report the interace's speed. For a sub-layer which + has no concept of bandwidth, this object should be + zero." + ::= { ifEntry 5 } + + ifPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The interface's address at its protocol sub-layer. + The interface's media-specific MIB must define the bit + and byte ordering and format of the value contained by + this object. For interfaces which do not have such an + address (e.g., a serial line), this object should + contain an octet string of zero length." + ::= { ifEntry 6 } + + ifAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The desired state of the interface. The testing(3) + state indicates that no operational packets can be + passed. When a managed system initializes, all + interfaces start with ifAdminStatus in the down(2) + state. As a result of either explicit management + action or per configuration information retained by + the managed system, ifAdminStatus is then changed to + either the up(1) or testing(3) states (or remains in + the down(2) state)." + ::= { ifEntry 7 } + + ifOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3), -- in some test mode + unknown(4), -- status can not be determined + -- for some reason. + dormant(5), + notPresent(6) -- some component is missing + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of the interface. The + testing(3) state indicates that no operational packets + can be passed. If ifAdminStatus is down(2) then + ifOperStatus should be down(2). If ifAdminStatus is + changed to up(1) then ifOperStatus should change to + up(1) if the interface is ready to transmit and + receive network traffic; it should change to + dormant(5) if the interface is waiting for external + actions (such as a serial line waiting for an + incoming connection); it should remain in the down(2) + state if and only if there is a fault that prevents if + from going to the up(1) state; it should remain in the + notPresent(6) state if the interface has missing + (typically, hardware) components." + ::= { ifEntry 8 } + + ifLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time the interface + entered its current operational state. If the current + state was entered prior to the last re-initialization + of the local network management subsystem, then this + object contains a zero value." + ::= { ifEntry 9 } + + ifInOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the interface, + including framing characters." + ::= { ifEntry 10 } + + ifInUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to + a higher (sub-)layer, which were not addressed to a + multicast or broadcast address at this sub-layer." + ::= { ifEntry 11 } + + ifInNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of packets, delivered by this sub-layer to + a higher (sub-)layer, which were addressed to a + multicast or broadcast address at this sub-layer. + This object is deprecated in favor of + ifInMulticastPkts and ifInBroadcastPkts." + ::= { ifEntry 12 } + + ifInDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen to be + discarded even though no errors had been detected to + prevent their being deliverable to a higher-layer + protocol. One possible reason for discarding such a + packet could be to free up buffer space." + ::= { ifEntry 13 } + + ifInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For packet-oriented interfaces, the number of inbound + packets that contained errors preventing them from + being deliverable to a higher-layer protocol. For + character-oriented or fixed-length interfaces, the + number of inbound transmission units that contained + errors preventing them from being deliverable to a + higher-layer protocol." + ::= { ifEntry 14 } + + ifInUnknownProtos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For packet-oriented interfaces, the number of packets + received via the interface which were discarded + because of an unknown or unsupported protocol. For + character-oriented or fixed-length interfaces which + support protocol multiplexing the number of + transmission units received via the interface which + were discarded because of an unknown or unsupported + protocol. For any interface which does not support + protocol multiplexing, this counter will always be 0." + ::= { ifEntry 15 } + + ifOutOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters." + ::= { ifEntry 16 } + + ifOutUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + "The total number of packets that higher-level + protocols requested be transmitted, and which were not + addressed to a multicast or broadcast address at this + sub-layer, including those that were discarded or not + sent." + ::= { ifEntry 17 } + + ifOutNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted, and which were + addressed to a multicast or broadcast address at this + sub-layer, including those that were discarded or not + sent. + + This object is deprecated in favour of + ifOutMulticastPkts and ifOutBroadcastPkts." + ::= { ifEntry 18 } + + ifOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen to + be discarded even though no errors had been detected + to prevent their being transmitted. One possible + reason for discarding such a packet could be to free + up buffer space." + ::= { ifEntry 19 } + + ifOutErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For packet-oriented interfaces, the number of + outbound packets that could not be transmitted because + of errors. For character-oriented or fixed-length + interfaces, the number of outbound transmission units + that could not be transmitted because of errors." + ::= { ifEntry 20 } + + ifOutQLen OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The length of the output packet queue (in packets)." + ::= { ifEntry 21 } + + ifSpecific OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A reference to MIB definitions specific to the + particular media being used to realize the interface. + It is recommended that this value point to an instance + of a MIB object in the media-specific MIB, i.e., that + this object have the semantics associated with the + InstancePointer textual convention defined in RFC + 1443. In fact, it is recommended that the media- + specific MIB specify what value ifSpecific should/can + take for values of ifType. If no MIB definitions + specific to the particular media are available, the + value should be set to the OBJECT IDENTIFIER { 0 0 }." + ::= { ifEntry 22 } + + + -- + -- Extension to the interface table + -- + -- This table replaces the ifExtnsTable table. + -- + + ifXTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfXEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of interface entries. The number of entries + is given by the value of ifNumber. This table + contains additional objects for the interface table." + ::= { ifMIBObjects 1 } + + ifXEntry OBJECT-TYPE + SYNTAX IfXEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing additional management information + applicable to a particular interface." + AUGMENTS { ifEntry } + ::= { ifXTable 1 } + + IfXEntry ::= + SEQUENCE { + ifName DisplayString, + ifInMulticastPkts Counter32, + ifInBroadcastPkts Counter32, + ifOutMulticastPkts Counter32, + ifOutBroadcastPkts Counter32, + ifHCInOctets Counter64, + ifHCInUcastPkts Counter64, + ifHCInMulticastPkts Counter64, + ifHCInBroadcastPkts Counter64, + ifHCOutOctets Counter64, + ifHCOutUcastPkts Counter64, + ifHCOutMulticastPkts Counter64, + ifHCOutBroadcastPkts Counter64, + ifLinkUpDownTrapEnable INTEGER, + ifHighSpeed Gauge32, + ifPromiscuousMode TruthValue, + ifConnectorPresent TruthValue, + ifAlias DisplayString + } + + + ifName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The textual name of the interface. The value of this + object should be the name of the interface as assigned + by the local device and should be suitable for use in + commands entered at the device's `console'. This + might be a text name, such as `le0' or a simple port + number, such as `1', depending on the interface naming + syntax of the device. If several entries in the + ifTable together represent a single interface as named + by the device, then each will have the same value of + ifName. If there is no local name, or this object is + otherwise not applicable, then this object contains a + 0-length string." + ::= { ifXEntry 1 } + + ifInMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to + a higher (sub-)layer, which were addressed to a + multicast address at this sub-layer. For a MAC layer + protocol, this includes both Group and Functional + addresses." + ::= { ifXEntry 2 } + + ifInBroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to + a higher (sub-)layer, which were addressed to a + broadcast address at this sub-layer." + ::= { ifXEntry 3 } + + ifOutMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted, and which were + addressed to a multicast address at this sub-layer, + including those that were discarded or not sent. For + a MAC layer protocol, this includes both Group and + Functional addresses." + ::= { ifXEntry 4 } + + ifOutBroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted, and which were + addressed to a broadcast address at this sub-layer, + including those that were discarded or not sent." + ::= { ifXEntry 5 } + + -- + -- High Capacity Counter objects. These objects are all + + -- 64 bit versions of the "basic" ifTable counters. These + -- objects all have the same basic semantics as their 32-bit + -- counterparts, however, their syntax has been extended + -- to 64 bits. + -- + + ifHCInOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the interface, + including framing characters. This object is a 64-bit + version of ifInOctets." + ::= { ifXEntry 6 } + + ifHCInUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to + a higher (sub-)layer, which were not addressed to a + multicast or broadcast address at this sub-layer. + This object is a 64-bit version of ifInUcastPkts." + ::= { ifXEntry 7 } + + ifHCInMulticastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to + a higher (sub-)layer, which were addressed to a + multicast address at this sub-layer. For a MAC layer + protocol, this includes both Group and Functional + addresses. This object is a 64-bit version of + ifInMulticastPkts." + ::= { ifXEntry 8 } + + ifHCInBroadcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to + a higher (sub-)layer, which were addressed to a + broadcast address at this sub-layer. This object is a + 64-bit version of ifInBroadcastPkts." + ::= { ifXEntry 9 } + + ifHCOutOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. This object + is a 64-bit version of ifOutOctets." + ::= { ifXEntry 10 } + + ifHCOutUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted, and which were not + addressed to a multicast or broadcast address at this + sub-layer, including those that were discarded or not + sent. This object is a 64-bit version of + ifOutUcastPkts." + ::= { ifXEntry 11 } + + ifHCOutMulticastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted, and which were + addressed to a multicast address at this sub-layer, + including those that were discarded or not sent. For + a MAC layer protocol, this includes both Group and + Functional addresses. This object is a 64-bit version + of ifOutMulticastPkts." + ::= { ifXEntry 12 } + + ifHCOutBroadcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted, and which were + addressed to a broadcast address at this sub-layer, + including those that were discarded or not sent. This + object is a 64-bit version of ifOutBroadcastPkts." + ::= { ifXEntry 13 } + + ifLinkUpDownTrapEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether linkUp/linkDown traps should be + generated for this interface. + + By default, this object should have the value + enabled(1) for interfaces which do not operate on + 'top' of any other interface (as defined in the + ifStackTable), and disabled(2) otherwise." + ::= { ifXEntry 14 } + + ifHighSpeed OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An estimate of the interface's current bandwidth in + units of 1,000,000 bits per second. If this object + reports a value of `n' then the speed of the interface + is somewhere in the range of `n-500,000' to + `n+499,999'. For interfaces which do not vary in + bandwidth or for those where no accurate estimation + can be made, this object should contain the nominal + bandwidth. For a sub-layer which has no concept of + bandwidth, this object should be zero." + ::= { ifXEntry 15 } + + ifPromiscuousMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object has a value of false(2) if this interface + only accepts packets/frames that are addressed to this + station. This object has a value of true(1) when the + station accepts all packets/frames transmitted on the + media. The value true(1) is only legal on certain + types of media. If legal, setting this object to a + value of true(1) may require the interface to be reset + before becoming effective. + + The value of ifPromiscuousMode does not affect the + reception of broadcast and multicast packets/frames by + the interface." + ::= { ifXEntry 16 } + + ifConnectorPresent OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object has the value 'true(1)' if the interface + sublayer has a physical connector and the value + 'false(2)' otherwise." + ::= { ifXEntry 17 } + + ifAlias OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object is an 'alias' name for the interface as + specified by a network manager, and provides a non- + volatile 'handle' for the interface. + + On the first instantiation of an interface, the value + of ifAlias associated with that interface is the + zero-length string. As and when a value is written + into an instance of ifAlias through a network + management set operation, then the agent must retain + the supplied value in the ifAlias instance associated + with the same interface for as long as that interface + remains instantiated, including across all re- + initializations/reboots of the network management + system, including those which result in a change of + the interface's ifIndex value. + + An example of the value which a network manager might + store in this object for a WAN interface is the + (Telco's) circuit number/identifier of the interface. + + Some agents may support write-access only for + interfaces having particular values of ifType. An + agent which supports write access to this object is + required to keep the value in non-volatile storage, + but it may limit the length of new values depending on + how much storage is already occupied by the current + values for other interfaces." + ::= { ifXEntry 18 } + + + -- The Interface Stack Group + -- + -- Implementation of this group is mandatory for all systems + -- + + ifStackTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfStackEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table containing information on the relationships + between the multiple sub-layers of network interfaces. + In particular, it contains information on which sub- + layers run 'on top of' which other sub-layers. Each + sub-layer corresponds to a conceptual row in the + ifTable." + ::= { ifMIBObjects 2 } + + + ifStackEntry OBJECT-TYPE + SYNTAX IfStackEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information on a particular relationship between two + sub-layers, specifying that one sub-layer runs on + 'top' of the other sub-layer. Each sub-layer + corresponds to a conceptual row in the ifTable." + INDEX { ifStackHigherLayer, ifStackLowerLayer } + ::= { ifStackTable 1 } + + + IfStackEntry ::= + SEQUENCE { + ifStackHigherLayer Integer32, + ifStackLowerLayer Integer32, + ifStackStatus RowStatus + } + + + ifStackHigherLayer OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of ifIndex corresponding to the higher + sub-layer of the relationship, i.e., the sub-layer + which runs on 'top' of the sub-layer identified by the + corresponding instance of ifStackLowerLayer. If there + is no higher sub-layer (below the internetwork layer), + then this object has the value 0." + ::= { ifStackEntry 1 } + + + ifStackLowerLayer OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of ifIndex corresponding to the lower sub- + layer of the relationship, i.e., the sub-layer which + runs 'below' the sub-layer identified by the + corresponding instance of ifStackHigherLayer. If + there is no lower sub-layer, then this object has the + value 0." + ::= { ifStackEntry 2 } + + + ifStackStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of the relationship between two sub- + layers. + + Changing the value of this object from 'active' to + 'notInService' or 'destroy' will likely have + consequences up and down the interface stack. Thus, + write access to this object is likely to be + inappropriate for some types of interfaces, and many + implementations will choose not to support write- + access for any type of interface." + ::= { ifStackEntry 3 } + +ifStackLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the last change + of the (whole) interface stack. A change of the + interface stack is defined to be any creation, + deletion, or change in value of any instance of + ifStackStatus. If the interface stack has been + unchanged since the last re-initialization of the + local network management subsystem, then this object + contains a zero value." + ::= { ifMIBObjects 6 } + + + -- + -- The Interface Test Table + -- + -- This group of objects is optional. However, a media-specific + -- MIB may make implementation of this group mandatory. + -- + -- This table replaces the ifExtnsTestTable + -- + + ifTestTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfTestEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "This table contains one entry per interface. It + defines objects which allow a network manager to + instruct an agent to test an interface for various + faults. Tests for an interface are defined in the + media-specific MIB for that interface. After invoking + a test, the object ifTestResult can be read to + determine the outcome. If an agent can not perform + the test, ifTestResult is set to so indicate. The + object ifTestCode can be used to provide further + test-specific or interface-specific (or even + enterprise-specific) information concerning the + outcome of the test. Only one test can be in progress + on each interface at any one time. If one test is in + progress when another test is invoked, the second test + is rejected. Some agents may reject a test when a + prior test is active on another interface. + Before starting a test, a manager-station must first + obtain 'ownership' of the entry in the ifTestTable for + the interface to be tested. This is accomplished with + the ifTestId and ifTestStatus objects as follows: + + try_again: + get (ifTestId, ifTestStatus) + while (ifTestStatus != notInUse) + /* + * Loop while a test is running or some other + * manager is configuring a test. + */ + short delay + get (ifTestId, ifTestStatus) + } + + /* + * Is not being used right now -- let's compete + * to see who gets it. + */ + lock_value = ifTestId + + if ( set(ifTestId = lock_value, ifTestStatus = inUse, + ifTestOwner = 'my-IP-address') == FAILURE) + /* + * Another manager got the ifTestEntry -- go + * try again + */ + goto try_again; + + /* + * I have the lock + */ + set up any test parameters. + + /* + * This starts the test + */ + set(ifTestType = test_to_run); + + wait for test completion by polling ifTestResult + + when test completes, agent sets ifTestResult + agent also sets ifTestStatus = 'notInUse' + + retrieve any additional test results, and ifTestId + + if (ifTestId == lock_value+1) results are valid + + A manager station first retrieves the value of the + appropriate ifTestId and ifTestStatus objects, + periodically repeating the retrieval if necessary, + until the value of ifTestStatus is 'notInUse'. The + manager station then tries to set the same ifTestId + object to the value it just retrieved, the same + ifTestStatus object to 'inUse', and the corresponding + ifTestOwner object to a value indicating itself. If + the set operation succeeds then the manager has + obtained ownership of the ifTestEntry, and the value of + the ifTestId object is incremented by the agent (per + the semantics of TestAndIncr). Failure of the set + operation indicates that some other manager has + obtained ownership of the ifTestEntry. + + Once ownership is obtained, any test parameters can be + setup, and then the test is initiated by setting + ifTestType. On completion of the test, the agent sets + ifTestStatus to 'notInUse'. Once this occurs, the + manager can retrieve the results. In the (rare) event + that the invocation of tests by two network managers + were to overlap, then there would be a possibility that + the first test's results might be overwritten by the + second test's results prior to the first results being + read. This unlikely circumstance can be detected by a + network manager retrieving ifTestId at the same time as + retrieving the test results, and ensuring that the + results are for the desired request. + + If ifTestType is not set within an abnormally long + period of time after ownership is obtained, the agent + should time-out the manager, and reset the value of the + ifTestStatus object back to 'notInUse'. It is + suggested that this time-out period be 5 minutes. + + In general, a management station must not retransmit a + request to invoke a test for which it does not receive + a response; instead, it properly inspects an agent's + MIB to determine if the invocation was successful. + Only if the invocation was unsuccessful, is the + invocation request retransmitted. + + Some tests may require the interface to be taken off- + line in order to execute them, or may even require the + agent to reboot after completion of the test. In these + circumstances, communication with the management + station invoking the test may be lost until after + completion of the test. An agent is not required to + support such tests. However, if such tests are + supported, then the agent should make every effort to + transmit a response to the request which invoked the + test prior to losing communication. When the agent is + restored to normal service, the results of the test are + properly made available in the appropriate objects. + Note that this requires that the ifIndex value assigned + to an interface must be unchanged even if the test + causes a reboot. An agent must reject any test for + which it cannot, perhaps due to resource constraints, + make available at least the minimum amount of + information after that test completes." + ::= { ifMIBObjects 3 } + + ifTestEntry OBJECT-TYPE + SYNTAX IfTestEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "An entry containing objects for invoking tests on an + interface." + AUGMENTS { ifEntry } + ::= { ifTestTable 1 } + + IfTestEntry ::= + SEQUENCE { + ifTestId TestAndIncr, + ifTestStatus INTEGER, + ifTestType AutonomousType, + ifTestResult INTEGER, + ifTestCode OBJECT IDENTIFIER, + ifTestOwner OwnerString + } + + ifTestId OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This object identifies the current invocation of the + interface's test." + ::= { ifTestEntry 1 } + + ifTestStatus OBJECT-TYPE + SYNTAX INTEGER { notInUse(1), inUse(2) } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This object indicates whether or not some manager + currently has the necessary 'ownership' required to + invoke a test on this interface. A write to this + object is only successful when it changes its value + from 'notInUse(1)' to 'inUse(2)'. After completion of + a test, the agent resets the value back to + 'notInUse(1)'." + ::= { ifTestEntry 2 } + + ifTestType OBJECT-TYPE + SYNTAX AutonomousType + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "A control variable used to start and stop operator- + initiated interface tests. Most OBJECT IDENTIFIER + values assigned to tests are defined elsewhere, in + association with specific types of interface. + However, this document assigns a value for a full- + duplex loopback test, and defines the special meanings + of the subject identifier: + + noTest OBJECT IDENTIFIER ::= { 0 0 } + + When the value noTest is written to this object, no + action is taken unless a test is in progress, in which + case the test is aborted. Writing any other value to + this object is only valid when no test is currently in + progress, in which case the indicated test is + initiated. + + When read, this object always returns the most recent + value that ifTestType was set to. If it has not been + set since the last initialization of the network + management subsystem on the agent, a value of noTest + is returned." + ::= { ifTestEntry 3 } + + ifTestResult OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- no test yet requested + success(2), + inProgress(3), + notSupported(4), + unAbleToRun(5), -- due to state of system + aborted(6), + failed(7) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "This object contains the result of the most recently + requested test, or the value none(1) if no tests have + been requested since the last reset. Note that this + facility provides no provision for saving the results + of one test when starting another, as could be + required if used by multiple managers concurrently." + ::= { ifTestEntry 4 } + + ifTestCode OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "This object contains a code which contains more + specific information on the test result, for example + an error-code after a failed test. Error codes and + other values this object may take are specific to the + type of interface and/or test. The value may have the + semantics of either the AutonomousType or + InstancePointer textual conventions as defined in RFC + 1443. The identifier: + + testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 } + + is defined for use if no additional result code is + available." + ::= { ifTestEntry 5 } + + ifTestOwner OBJECT-TYPE + SYNTAX OwnerString + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "The entity which currently has the 'ownership' + required to invoke a test on this interface." + ::= { ifTestEntry 6 } + + + -- Generic Receive Address Table + -- + -- This group of objects is mandatory for all types of + -- interfaces which can receive packets/frames addressed to + -- more than one address. + -- + -- This table replaces the ifExtnsRcvAddr table. The main + -- difference is that this table makes use of the RowStatus + -- textual convention, while ifExtnsRcvAddr did not. + + ifRcvAddressTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfRcvAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains an entry for each address + (broadcast, multicast, or uni-cast) for which the + system will receive packets/frames on a particular + interface, except as follows: + + - for an interface operating in promiscuous mode, + entries are only required for those addresses for + which the system would receive frames were it not + operating in promiscuous mode. + + - for 802.5 functional addresses, only one entry is + required, for the address which has the functional + address bit ANDed with the bit mask of all functional + addresses for which the interface will accept frames." + ::= { ifMIBObjects 4 } + + ifRcvAddressEntry OBJECT-TYPE + SYNTAX IfRcvAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects identifying an address for which + the system will accept packets/frames on the + particular interface identified by the index value + ifIndex." + INDEX { ifIndex, ifRcvAddressAddress } + ::= { ifRcvAddressTable 1 } + + IfRcvAddressEntry ::= + SEQUENCE { + ifRcvAddressAddress PhysAddress, + ifRcvAddressStatus RowStatus, + ifRcvAddressType INTEGER + } + + ifRcvAddressAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An address for which the system will accept + packets/frames on this entry's interface." + ::= { ifRcvAddressEntry 1 } + + ifRcvAddressStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used to create and delete rows in the + ifRcvAddressTable." + + ::= { ifRcvAddressEntry 2 } + + ifRcvAddressType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + volatile(2), + nonVolatile(3) + } + + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object has the value nonVolatile(3) for those + entries in the table which are valid and will not be + deleted by the next restart of the managed system. + Entries having the value volatile(2) are valid and + exist, but have not been saved, so that will not exist + after the next restart of the managed system. Entries + having the value other(1) are valid and exist but are + not classified as to whether they will continue to + exist after the next restart." + + DEFVAL { volatile } + + ::= { ifRcvAddressEntry 3 } + + + -- definition of interface-related traps. + + linkDown NOTIFICATION-TYPE + OBJECTS { ifIndex, ifAdminStatus, ifOperStatus } + STATUS current + DESCRIPTION + "A linkDown trap signifies that the SNMPv2 entity, + acting in an agent role, has detected that the + ifOperStatus object for one of its communication links + is about to transition into the down state." + ::= { snmpTraps 3 } + + linkUp NOTIFICATION-TYPE + OBJECTS { ifIndex, ifAdminStatus, ifOperStatus } + STATUS current + DESCRIPTION + "A linkUp trap signifies that the SNMPv2 entity, + acting in an agent role, has detected that the + ifOperStatus object for one of its communication links + has transitioned out of the down state." + ::= { snmpTraps 4 } + + + -- conformance information + + ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 } + + ifGroups OBJECT IDENTIFIER ::= { ifConformance 1 } + ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 } + + + -- compliance statements + + ifCompliance2 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + have network interfaces." + + MODULE -- this module + MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2 } + + GROUP ifFixedLengthGroup + DESCRIPTION + "This group is mandatory for all network interfaces + which are character-oriented or transmit data in + fixed-length transmission units." + + GROUP ifHCFixedLengthGroup + DESCRIPTION + "This group is mandatory only for those network + interfaces which are character-oriented or transmit + data in fixed-length transmission units, and for which + the value of the corresponding instance of ifSpeed is + greater than 20,000,000 bits/second." + + GROUP ifPacketGroup + DESCRIPTION + "This group is mandatory for all network interfaces + which are packet-oriented." + + GROUP ifHCPacketGroup + DESCRIPTION + "This group is mandatory only for those network + interfaces which are packet-oriented and for which the + value of the corresponding instance of ifSpeed is + greater than 650,000,000 bits/second." + + GROUP ifRcvAddressGroup + DESCRIPTION + "The applicability of this group MUST be defined by + the media-specific MIBs. Media-specific MIBs must + define the exact meaning, use, and semantics of the + addresses in this group." + + OBJECT ifLinkUpDownTrapEnable + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifPromiscuousMode + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifStackStatus + SYNTAX INTEGER { active(1) } -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one of the six + enumerated values for the RowStatus textual convention + need be supported, specifically: active(1)." + + OBJECT ifAdminStatus + SYNTAX INTEGER { up(1), down(2) } + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, nor is support for the + value testing(3)." + + OBJECT ifAlias + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + ::= { ifCompliances 2 } + + ifCompliance MODULE-COMPLIANCE + STATUS obsolete + DESCRIPTION + "The compliance statement for SNMPv2 entities which + have network interfaces." + + MODULE -- this module + MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup } + + GROUP ifFixedLengthGroup + DESCRIPTION + "This group is mandatory for all network interfaces + which are character-oriented or transmit data in + fixed-length transmission units." + + GROUP ifHCFixedLengthGroup + DESCRIPTION + "This group is mandatory only for those network + interfaces which are character-oriented or transmit + data in fixed-length transmission units, and for which + the value of the corresponding instance of ifSpeed is + greater than 20,000,000 bits/second." + + GROUP ifPacketGroup + DESCRIPTION + "This group is mandatory for all network interfaces + which are packet-oriented." + + GROUP ifHCPacketGroup + DESCRIPTION + "This group is mandatory only for those network + interfaces which are packet-oriented and for which the + value of the corresponding instance of ifSpeed is + greater than 650,000,000 bits/second." + GROUP ifTestGroup + DESCRIPTION + "This group is optional. Media-specific MIBs which + require interface tests are strongly encouraged to use + this group for invoking tests and reporting results. + A medium specific MIB which has mandatory tests may + make implementation of this group mandatory." + + GROUP ifRcvAddressGroup + DESCRIPTION + "The applicability of this group MUST be defined by + the media-specific MIBs. Media-specific MIBs must + define the exact meaning, use, and semantics of the + addresses in this group." + + OBJECT ifLinkUpDownTrapEnable + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifPromiscuousMode + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifStackStatus + SYNTAX INTEGER { active(1) } -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one of the six + enumerated values for the RowStatus textual convention + need be supported, specifically: active(1)." + + OBJECT ifAdminStatus + SYNTAX INTEGER { up(1), down(2) } + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, nor is support for the + value testing(3)." + ::= { ifCompliances 1 } + + + -- units of conformance + + ifGeneralInformationGroup OBJECT-GROUP + OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress, + ifAdminStatus, ifOperStatus, ifLastChange, + ifLinkUpDownTrapEnable, ifConnectorPresent, + ifHighSpeed, ifName, ifNumber, ifAlias, + ifTableLastChange } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to all network interfaces." + ::= { ifGroups 10 } + + ifGeneralGroup OBJECT-GROUP + OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress, + ifAdminStatus, ifOperStatus, ifLastChange, + ifLinkUpDownTrapEnable, ifConnectorPresent, + ifHighSpeed, ifName } + STATUS obsolete + DESCRIPTION + "A collection of objects providing information + applicable to all network interfaces." + ::= { ifGroups 1 } + + -- the following five groups are mutually exclusive; at most + -- one of these groups is implemented for any interface + + ifFixedLengthGroup OBJECT-GROUP + OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to non-high speed, character-oriented or + fixed-length-transmission network interfaces. (Non- + high speed interfaces transmit and receive at speeds + less than or equal to 20,000,000 bits/second.)" + ::= { ifGroups 2 } + + ifHCFixedLengthGroup OBJECT-GROUP + OBJECTS { ifHCInOctets, ifHCOutOctets, + ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to high speed (greater than 20,000,000 + bits/second) character-oriented or fixed-length- + transmission network interfaces." + ::= { ifGroups 3 } + + ifPacketGroup OBJECT-GROUP + OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors, + ifMtu, ifInUcastPkts, ifInMulticastPkts, + ifInBroadcastPkts, ifInDiscards, + ifOutUcastPkts, ifOutMulticastPkts, + ifOutBroadcastPkts, ifOutDiscards, + ifPromiscuousMode } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to non-high speed, packet-oriented network + interfaces. (Non-high speed interfaces transmit and + receive at speeds less than or equal to 20,000,000 + bits/second.)" + ::= { ifGroups 4 } + + ifHCPacketGroup OBJECT-GROUP + OBJECTS { ifHCInOctets, ifHCOutOctets, + ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors, + ifMtu, ifInUcastPkts, ifInMulticastPkts, + ifInBroadcastPkts, ifInDiscards, + ifOutUcastPkts, ifOutMulticastPkts, + ifOutBroadcastPkts, ifOutDiscards, + ifPromiscuousMode } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to high speed (greater than 20,000,000 + bits/second but less than or equal to 650,000,000 + bits/second) packet-oriented network interfaces." + ::= { ifGroups 5 } + + ifVHCPacketGroup OBJECT-GROUP + OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts, + ifHCInBroadcastPkts, ifHCOutUcastPkts, + ifHCOutMulticastPkts, ifHCOutBroadcastPkts, + ifHCInOctets, ifHCOutOctets, + ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors, + ifMtu, ifInUcastPkts, ifInMulticastPkts, + ifInBroadcastPkts, ifInDiscards, + ifOutUcastPkts, ifOutMulticastPkts, + ifOutBroadcastPkts, ifOutDiscards, + ifPromiscuousMode } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to higher speed (greater than 650,000,000 + bits/second) packet-oriented network interfaces." + ::= { ifGroups 6 } + + ifRcvAddressGroup OBJECT-GROUP + OBJECTS { ifRcvAddressStatus, ifRcvAddressType } + STATUS current + DESCRIPTION + "A collection of objects providing information on the + multiple addresses which an interface receives." + ::= { ifGroups 7 } + + ifTestGroup OBJECT-GROUP + OBJECTS { ifTestId, ifTestStatus, ifTestType, + ifTestResult, ifTestCode, ifTestOwner } + STATUS obsolete + DESCRIPTION + "A collection of objects providing the ability to + invoke tests on an interface." + ::= { ifGroups 8 } + + ifStackGroup OBJECT-GROUP + OBJECTS { ifStackStatus } + STATUS obsolete + DESCRIPTION + "A collection of objects providing information on the + layering of MIB-II interfaces." + ::= { ifGroups 9 } + + ifStackGroup2 OBJECT-GROUP + OBJECTS { ifStackStatus, ifStackLastChange } + STATUS current + DESCRIPTION + "A collection of objects providing information on the + layering of MIB-II interfaces." + ::= { ifGroups 11 } + +ifOldObjectsGroup OBJECT-GROUP + OBJECTS { ifInNUcastPkts, ifOutNUcastPkts, + ifOutQLen, ifSpecific } + STATUS obsolete + DESCRIPTION + "The collection of objects deprecated from the + original MIB-II interfaces group." + ::= { ifGroups 12 } + + + + END diff --git a/pandora_console/attachment/mibs/IF-MIB.txt b/pandora_console/attachment/mibs/IF-MIB.txt new file mode 100644 index 0000000000..4ac89d1bd6 --- /dev/null +++ b/pandora_console/attachment/mibs/IF-MIB.txt @@ -0,0 +1,1828 @@ +IF-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64, + Integer32, TimeTicks, mib-2, + NOTIFICATION-TYPE FROM SNMPv2-SMI + TEXTUAL-CONVENTION, DisplayString, + PhysAddress, TruthValue, RowStatus, + TimeStamp, AutonomousType, TestAndIncr FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP, + NOTIFICATION-GROUP FROM SNMPv2-CONF + snmpTraps FROM SNMPv2-MIB + IANAifType FROM IANAifType-MIB; + + +ifMIB MODULE-IDENTITY + LAST-UPDATED "200006140000Z" + ORGANIZATION "IETF Interfaces MIB Working Group" + CONTACT-INFO + " Keith McCloghrie + Cisco Systems, Inc. + 170 West Tasman Drive + San Jose, CA 95134-1706 + US + + 408-526-5260 + kzm@cisco.com" + DESCRIPTION + "The MIB module to describe generic objects for network + interface sub-layers. This MIB is an updated version of + MIB-II's ifTable, and incorporates the extensions defined in + RFC 1229." + REVISION "200006140000Z" + DESCRIPTION + "Clarifications agreed upon by the Interfaces MIB WG, and + published as RFC 2863." + REVISION "199602282155Z" + DESCRIPTION + "Revisions made by the Interfaces MIB WG, and published in + RFC 2233." + REVISION "199311082155Z" + DESCRIPTION + "Initial revision, published as part of RFC 1573." + ::= { mib-2 31 } + + +ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 } + +interfaces OBJECT IDENTIFIER ::= { mib-2 2 } + +-- +-- Textual Conventions +-- + + +-- OwnerString has the same semantics as used in RFC 1271 + +OwnerString ::= TEXTUAL-CONVENTION + DISPLAY-HINT "255a" + STATUS deprecated + DESCRIPTION + "This data type is used to model an administratively + assigned name of the owner of a resource. This information + is taken from the NVT ASCII character set. It is suggested + that this name contain one or more of the following: ASCII + form of the manager station's transport address, management + station name (e.g., domain name), network management + personnel's name, location, or phone number. In some cases + the agent itself will be the owner of an entry. In these + cases, this string shall be set to a string starting with + 'agent'." + SYNTAX OCTET STRING (SIZE(0..255)) + +-- InterfaceIndex contains the semantics of ifIndex and should be used +-- for any objects defined in other MIB modules that need these semantics. + +InterfaceIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A unique value, greater than zero, for each interface or + interface sub-layer in the managed system. It is + recommended that values are assigned contiguously starting + from 1. The value for each interface sub-layer must remain + constant at least from one re-initialization of the entity's + network management system to the next re-initialization." + SYNTAX Integer32 (1..2147483647) + +InterfaceIndexOrZero ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "This textual convention is an extension of the + InterfaceIndex convention. The latter defines a greater + than zero value used to identify an interface or interface + sub-layer in the managed system. This extension permits the + additional value of zero. the value zero is object-specific + and must therefore be defined as part of the description of + any object which uses this syntax. Examples of the usage of + zero might include situations where interface was unknown, + or when none or all interfaces need to be referenced." + SYNTAX Integer32 (0..2147483647) + +ifNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of network interfaces (regardless of their + current state) present on this system." + ::= { interfaces 1 } + +ifTableLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the last creation or + deletion of an entry in the ifTable. If the number of + entries has been unchanged since the last re-initialization + of the local network management subsystem, then this object + contains a zero value." + ::= { ifMIBObjects 5 } + + +-- the Interfaces table + +-- The Interfaces table contains information on the entity's +-- interfaces. Each sub-layer below the internetwork-layer +-- of a network interface is considered to be an interface. + +ifTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of interface entries. The number of entries is + given by the value of ifNumber." + ::= { interfaces 2 } + +ifEntry OBJECT-TYPE + SYNTAX IfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing management information applicable to a + particular interface." + INDEX { ifIndex } + ::= { ifTable 1 } + +IfEntry ::= + SEQUENCE { + ifIndex InterfaceIndex, + ifDescr DisplayString, + ifType IANAifType, + ifMtu Integer32, + ifSpeed Gauge32, + ifPhysAddress PhysAddress, + ifAdminStatus INTEGER, + ifOperStatus INTEGER, + ifLastChange TimeTicks, + ifInOctets Counter32, + ifInUcastPkts Counter32, + ifInNUcastPkts Counter32, -- deprecated + ifInDiscards Counter32, + ifInErrors Counter32, + ifInUnknownProtos Counter32, + ifOutOctets Counter32, + ifOutUcastPkts Counter32, + ifOutNUcastPkts Counter32, -- deprecated + ifOutDiscards Counter32, + ifOutErrors Counter32, + ifOutQLen Gauge32, -- deprecated + ifSpecific OBJECT IDENTIFIER -- deprecated + } + +ifIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value, greater than zero, for each interface. It + is recommended that values are assigned contiguously + starting from 1. The value for each interface sub-layer + must remain constant at least from one re-initialization of + the entity's network management system to the next re- + initialization." + ::= { ifEntry 1 } + +ifDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + interface. This string should include the name of the + manufacturer, the product name and the version of the + interface hardware/software." + ::= { ifEntry 2 } + +ifType OBJECT-TYPE + SYNTAX IANAifType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of interface. Additional values for ifType are + assigned by the Internet Assigned Numbers Authority (IANA), + through updating the syntax of the IANAifType textual + convention." + ::= { ifEntry 3 } + +ifMtu OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the largest packet which can be sent/received + on the interface, specified in octets. For interfaces that + are used for transmitting network datagrams, this is the + size of the largest network datagram that can be sent on the + interface." + ::= { ifEntry 4 } + +ifSpeed OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An estimate of the interface's current bandwidth in bits + per second. For interfaces which do not vary in bandwidth + or for those where no accurate estimation can be made, this + object should contain the nominal bandwidth. If the + bandwidth of the interface is greater than the maximum value + reportable by this object then this object should report its + maximum value (4,294,967,295) and ifHighSpeed must be used + to report the interace's speed. For a sub-layer which has + no concept of bandwidth, this object should be zero." + ::= { ifEntry 5 } + +ifPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The interface's address at its protocol sub-layer. For + example, for an 802.x interface, this object normally + contains a MAC address. The interface's media-specific MIB + must define the bit and byte ordering and the format of the + value of this object. For interfaces which do not have such + an address (e.g., a serial line), this object should contain + an octet string of zero length." + ::= { ifEntry 6 } + +ifAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The desired state of the interface. The testing(3) state + indicates that no operational packets can be passed. When a + managed system initializes, all interfaces start with + ifAdminStatus in the down(2) state. As a result of either + explicit management action or per configuration information + retained by the managed system, ifAdminStatus is then + changed to either the up(1) or testing(3) states (or remains + in the down(2) state)." + ::= { ifEntry 7 } + +ifOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3), -- in some test mode + unknown(4), -- status can not be determined + -- for some reason. + dormant(5), + notPresent(6), -- some component is missing + lowerLayerDown(7) -- down due to state of + -- lower-layer interface(s) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of the interface. The + testing(3) state indicates that no operational packets can + be passed. If ifAdminStatus is down(2) then ifOperStatus + should be down(2). If ifAdminStatus is changed to up(1) + then ifOperStatus should change to up(1) if the interface is + ready to transmit and receive network traffic; it should + change to dormant(5) if the interface is waiting for + external actions (such as a serial line waiting for an + incoming connection); it should remain in the down(2) state + if and only if there is a fault that prevents it from going + to the up(1) state; it should remain in the notPresent(6) + state if the interface has missing (typically, hardware) + components." + ::= { ifEntry 8 } + +ifLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time the interface entered + its current operational state. If the current state was + entered prior to the last re-initialization of the local + network management subsystem, then this object contains a + zero value." + ::= { ifEntry 9 } + +ifInOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the interface, + including framing characters. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 10 } + +ifInUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, which were not addressed to a multicast + or broadcast address at this sub-layer. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 11 } + +ifInNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, which were addressed to a multicast or + broadcast address at this sub-layer. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime. + + This object is deprecated in favour of ifInMulticastPkts and + ifInBroadcastPkts." + ::= { ifEntry 12 } + +ifInDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen to be + discarded even though no errors had been detected to prevent + their being deliverable to a higher-layer protocol. One + possible reason for discarding such a packet could be to + free up buffer space. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 13 } + +ifInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For packet-oriented interfaces, the number of inbound + packets that contained errors preventing them from being + deliverable to a higher-layer protocol. For character- + oriented or fixed-length interfaces, the number of inbound + transmission units that contained errors preventing them + from being deliverable to a higher-layer protocol. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 14 } + +ifInUnknownProtos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For packet-oriented interfaces, the number of packets + received via the interface which were discarded because of + an unknown or unsupported protocol. For character-oriented + or fixed-length interfaces that support protocol + multiplexing the number of transmission units received via + the interface which were discarded because of an unknown or + unsupported protocol. For any interface that does not + support protocol multiplexing, this counter will always be + 0. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 15 } + +ifOutOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 16 } + +ifOutUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level protocols + requested be transmitted, and which were not addressed to a + multicast or broadcast address at this sub-layer, including + those that were discarded or not sent. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 17 } + +ifOutNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of packets that higher-level protocols + requested be transmitted, and which were addressed to a + multicast or broadcast address at this sub-layer, including + those that were discarded or not sent. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime. + + This object is deprecated in favour of ifOutMulticastPkts + and ifOutBroadcastPkts." + ::= { ifEntry 18 } + +ifOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen to be + discarded even though no errors had been detected to prevent + their being transmitted. One possible reason for discarding + such a packet could be to free up buffer space. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 19 } + +ifOutErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For packet-oriented interfaces, the number of outbound + packets that could not be transmitted because of errors. + For character-oriented or fixed-length interfaces, the + number of outbound transmission units that could not be + transmitted because of errors. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifEntry 20 } + +ifOutQLen OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The length of the output packet queue (in packets)." + ::= { ifEntry 21 } + +ifSpecific OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A reference to MIB definitions specific to the particular + media being used to realize the interface. It is + recommended that this value point to an instance of a MIB + object in the media-specific MIB, i.e., that this object + have the semantics associated with the InstancePointer + textual convention defined in RFC 2579. In fact, it is + recommended that the media-specific MIB specify what value + ifSpecific should/can take for values of ifType. If no MIB + definitions specific to the particular media are available, + the value should be set to the OBJECT IDENTIFIER { 0 0 }." + ::= { ifEntry 22 } + + + +-- +-- Extension to the interface table +-- +-- This table replaces the ifExtnsTable table. +-- + +ifXTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfXEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of interface entries. The number of entries is + given by the value of ifNumber. This table contains + additional objects for the interface table." + ::= { ifMIBObjects 1 } + +ifXEntry OBJECT-TYPE + SYNTAX IfXEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing additional management information + applicable to a particular interface." + AUGMENTS { ifEntry } + ::= { ifXTable 1 } + +IfXEntry ::= + SEQUENCE { + ifName DisplayString, + ifInMulticastPkts Counter32, + ifInBroadcastPkts Counter32, + ifOutMulticastPkts Counter32, + ifOutBroadcastPkts Counter32, + ifHCInOctets Counter64, + ifHCInUcastPkts Counter64, + ifHCInMulticastPkts Counter64, + ifHCInBroadcastPkts Counter64, + ifHCOutOctets Counter64, + ifHCOutUcastPkts Counter64, + ifHCOutMulticastPkts Counter64, + ifHCOutBroadcastPkts Counter64, + ifLinkUpDownTrapEnable INTEGER, + ifHighSpeed Gauge32, + ifPromiscuousMode TruthValue, + ifConnectorPresent TruthValue, + ifAlias DisplayString, + ifCounterDiscontinuityTime TimeStamp + } + + +ifName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The textual name of the interface. The value of this + object should be the name of the interface as assigned by + the local device and should be suitable for use in commands + entered at the device's `console'. This might be a text + name, such as `le0' or a simple port number, such as `1', + depending on the interface naming syntax of the device. If + several entries in the ifTable together represent a single + interface as named by the device, then each will have the + same value of ifName. Note that for an agent which responds + to SNMP queries concerning an interface on some other + (proxied) device, then the value of ifName for such an + interface is the proxied device's local name for it. + + If there is no local name, or this object is otherwise not + applicable, then this object contains a zero-length string." + ::= { ifXEntry 1 } + +ifInMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, which were addressed to a multicast + address at this sub-layer. For a MAC layer protocol, this + includes both Group and Functional addresses. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 2 } + +ifInBroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, which were addressed to a broadcast + address at this sub-layer. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 3 } + +ifOutMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level protocols + requested be transmitted, and which were addressed to a + multicast address at this sub-layer, including those that + were discarded or not sent. For a MAC layer protocol, this + includes both Group and Functional addresses. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 4 } + +ifOutBroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level protocols + requested be transmitted, and which were addressed to a + broadcast address at this sub-layer, including those that + were discarded or not sent. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 5 } + +-- +-- High Capacity Counter objects. These objects are all +-- 64 bit versions of the "basic" ifTable counters. These +-- objects all have the same basic semantics as their 32-bit +-- counterparts, however, their syntax has been extended +-- to 64 bits. +-- + +ifHCInOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the interface, + including framing characters. This object is a 64-bit + version of ifInOctets. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 6 } + +ifHCInUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, which were not addressed to a multicast + or broadcast address at this sub-layer. This object is a + 64-bit version of ifInUcastPkts. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 7 } + +ifHCInMulticastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, which were addressed to a multicast + address at this sub-layer. For a MAC layer protocol, this + includes both Group and Functional addresses. This object + is a 64-bit version of ifInMulticastPkts. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 8 } + +ifHCInBroadcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets, delivered by this sub-layer to a + higher (sub-)layer, which were addressed to a broadcast + address at this sub-layer. This object is a 64-bit version + of ifInBroadcastPkts. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 9 } + +ifHCOutOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. This object is a + 64-bit version of ifOutOctets. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 10 } + +ifHCOutUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level protocols + requested be transmitted, and which were not addressed to a + multicast or broadcast address at this sub-layer, including + those that were discarded or not sent. This object is a + 64-bit version of ifOutUcastPkts. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 11 } + +ifHCOutMulticastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level protocols + requested be transmitted, and which were addressed to a + multicast address at this sub-layer, including those that + were discarded or not sent. For a MAC layer protocol, this + includes both Group and Functional addresses. This object + is a 64-bit version of ifOutMulticastPkts. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 12 } + +ifHCOutBroadcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level protocols + requested be transmitted, and which were addressed to a + broadcast address at this sub-layer, including those that + were discarded or not sent. This object is a 64-bit version + of ifOutBroadcastPkts. + + Discontinuities in the value of this counter can occur at + re-initialization of the management system, and at other + times as indicated by the value of + ifCounterDiscontinuityTime." + ::= { ifXEntry 13 } + +ifLinkUpDownTrapEnable OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether linkUp/linkDown traps should be generated + for this interface. + + By default, this object should have the value enabled(1) for + interfaces which do not operate on 'top' of any other + interface (as defined in the ifStackTable), and disabled(2) + otherwise." + ::= { ifXEntry 14 } + +ifHighSpeed OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An estimate of the interface's current bandwidth in units + of 1,000,000 bits per second. If this object reports a + value of `n' then the speed of the interface is somewhere in + the range of `n-500,000' to `n+499,999'. For interfaces + which do not vary in bandwidth or for those where no + accurate estimation can be made, this object should contain + the nominal bandwidth. For a sub-layer which has no concept + of bandwidth, this object should be zero." + ::= { ifXEntry 15 } + +ifPromiscuousMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object has a value of false(2) if this interface only + accepts packets/frames that are addressed to this station. + This object has a value of true(1) when the station accepts + all packets/frames transmitted on the media. The value + true(1) is only legal on certain types of media. If legal, + setting this object to a value of true(1) may require the + interface to be reset before becoming effective. + + The value of ifPromiscuousMode does not affect the reception + of broadcast and multicast packets/frames by the interface." + ::= { ifXEntry 16 } + +ifConnectorPresent OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object has the value 'true(1)' if the interface + sublayer has a physical connector and the value 'false(2)' + otherwise." + ::= { ifXEntry 17 } + +ifAlias OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object is an 'alias' name for the interface as + specified by a network manager, and provides a non-volatile + 'handle' for the interface. + + On the first instantiation of an interface, the value of + ifAlias associated with that interface is the zero-length + string. As and when a value is written into an instance of + ifAlias through a network management set operation, then the + agent must retain the supplied value in the ifAlias instance + associated with the same interface for as long as that + interface remains instantiated, including across all re- + initializations/reboots of the network management system, + including those which result in a change of the interface's + ifIndex value. + + An example of the value which a network manager might store + in this object for a WAN interface is the (Telco's) circuit + number/identifier of the interface. + + Some agents may support write-access only for interfaces + having particular values of ifType. An agent which supports + write access to this object is required to keep the value in + non-volatile storage, but it may limit the length of new + values depending on how much storage is already occupied by + the current values for other interfaces." + ::= { ifXEntry 18 } + +ifCounterDiscontinuityTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime on the most recent occasion at which + any one or more of this interface's counters suffered a + discontinuity. The relevant counters are the specific + instances associated with this interface of any Counter32 or + Counter64 object contained in the ifTable or ifXTable. If + no such discontinuities have occurred since the last re- + initialization of the local management subsystem, then this + object contains a zero value." + ::= { ifXEntry 19 } + +-- The Interface Stack Group +-- +-- Implementation of this group is optional, but strongly recommended +-- for all systems +-- + +ifStackTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfStackEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table containing information on the relationships + between the multiple sub-layers of network interfaces. In + particular, it contains information on which sub-layers run + 'on top of' which other sub-layers, where each sub-layer + corresponds to a conceptual row in the ifTable. For + example, when the sub-layer with ifIndex value x runs over + the sub-layer with ifIndex value y, then this table + contains: + + ifStackStatus.x.y=active + + For each ifIndex value, I, which identifies an active + interface, there are always at least two instantiated rows + in this table associated with I. For one of these rows, I + is the value of ifStackHigherLayer; for the other, I is the + value of ifStackLowerLayer. (If I is not involved in + multiplexing, then these are the only two rows associated + with I.) + + For example, two rows exist even for an interface which has + no others stacked on top or below it: + + ifStackStatus.0.x=active + ifStackStatus.x.0=active " + ::= { ifMIBObjects 2 } + + +ifStackEntry OBJECT-TYPE + SYNTAX IfStackEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information on a particular relationship between two sub- + layers, specifying that one sub-layer runs on 'top' of the + other sub-layer. Each sub-layer corresponds to a conceptual + row in the ifTable." + INDEX { ifStackHigherLayer, ifStackLowerLayer } + ::= { ifStackTable 1 } + + +IfStackEntry ::= + SEQUENCE { + ifStackHigherLayer InterfaceIndexOrZero, + ifStackLowerLayer InterfaceIndexOrZero, + ifStackStatus RowStatus + } + + +ifStackHigherLayer OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of ifIndex corresponding to the higher sub-layer + of the relationship, i.e., the sub-layer which runs on 'top' + of the sub-layer identified by the corresponding instance of + ifStackLowerLayer. If there is no higher sub-layer (below + the internetwork layer), then this object has the value 0." + ::= { ifStackEntry 1 } + + +ifStackLowerLayer OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of ifIndex corresponding to the lower sub-layer + of the relationship, i.e., the sub-layer which runs 'below' + the sub-layer identified by the corresponding instance of + ifStackHigherLayer. If there is no lower sub-layer, then + this object has the value 0." + ::= { ifStackEntry 2 } + + +ifStackStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The status of the relationship between two sub-layers. + + Changing the value of this object from 'active' to + 'notInService' or 'destroy' will likely have consequences up + and down the interface stack. Thus, write access to this + object is likely to be inappropriate for some types of + interfaces, and many implementations will choose not to + support write-access for any type of interface." + ::= { ifStackEntry 3 } + +ifStackLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the last change of + the (whole) interface stack. A change of the interface + stack is defined to be any creation, deletion, or change in + value of any instance of ifStackStatus. If the interface + stack has been unchanged since the last re-initialization of + the local network management subsystem, then this object + contains a zero value." + ::= { ifMIBObjects 6 } + + +-- Generic Receive Address Table +-- +-- This group of objects is mandatory for all types of +-- interfaces which can receive packets/frames addressed to +-- more than one address. +-- +-- This table replaces the ifExtnsRcvAddr table. The main +-- difference is that this table makes use of the RowStatus +-- textual convention, while ifExtnsRcvAddr did not. + +ifRcvAddressTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfRcvAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains an entry for each address (broadcast, + multicast, or uni-cast) for which the system will receive + packets/frames on a particular interface, except as follows: + + - for an interface operating in promiscuous mode, entries + are only required for those addresses for which the system + would receive frames were it not operating in promiscuous + mode. + + - for 802.5 functional addresses, only one entry is + required, for the address which has the functional address + bit ANDed with the bit mask of all functional addresses for + which the interface will accept frames. + + A system is normally able to use any unicast address which + corresponds to an entry in this table as a source address." + ::= { ifMIBObjects 4 } + +ifRcvAddressEntry OBJECT-TYPE + SYNTAX IfRcvAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of objects identifying an address for which the + system will accept packets/frames on the particular + interface identified by the index value ifIndex." + INDEX { ifIndex, ifRcvAddressAddress } + ::= { ifRcvAddressTable 1 } + +IfRcvAddressEntry ::= + SEQUENCE { + ifRcvAddressAddress PhysAddress, + ifRcvAddressStatus RowStatus, + ifRcvAddressType INTEGER + } + +ifRcvAddressAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An address for which the system will accept packets/frames + on this entry's interface." + ::= { ifRcvAddressEntry 1 } + +ifRcvAddressStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used to create and delete rows in the + ifRcvAddressTable." + + ::= { ifRcvAddressEntry 2 } + +ifRcvAddressType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + volatile(2), + nonVolatile(3) + } + + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object has the value nonVolatile(3) for those entries + in the table which are valid and will not be deleted by the + next restart of the managed system. Entries having the + value volatile(2) are valid and exist, but have not been + saved, so that will not exist after the next restart of the + managed system. Entries having the value other(1) are valid + and exist but are not classified as to whether they will + continue to exist after the next restart." + + DEFVAL { volatile } + ::= { ifRcvAddressEntry 3 } + +-- definition of interface-related traps. + +linkDown NOTIFICATION-TYPE + OBJECTS { ifIndex, ifAdminStatus, ifOperStatus } + STATUS current + DESCRIPTION + "A linkDown trap signifies that the SNMP entity, acting in + an agent role, has detected that the ifOperStatus object for + one of its communication links is about to enter the down + state from some other state (but not from the notPresent + state). This other state is indicated by the included value + of ifOperStatus." + ::= { snmpTraps 3 } + +linkUp NOTIFICATION-TYPE + OBJECTS { ifIndex, ifAdminStatus, ifOperStatus } + STATUS current + DESCRIPTION + "A linkUp trap signifies that the SNMP entity, acting in an + agent role, has detected that the ifOperStatus object for + one of its communication links left the down state and + transitioned into some other state (but not into the + notPresent state). This other state is indicated by the + included value of ifOperStatus." + ::= { snmpTraps 4 } + +-- conformance information + +ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 } + +ifGroups OBJECT IDENTIFIER ::= { ifConformance 1 } +ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 } + + +-- compliance statements + +ifCompliance3 MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP entities which have + network interfaces." + + MODULE -- this module + MANDATORY-GROUPS { ifGeneralInformationGroup, + linkUpDownNotificationsGroup } + +-- The groups: +-- ifFixedLengthGroup +-- ifHCFixedLengthGroup +-- ifPacketGroup +-- ifHCPacketGroup +-- ifVHCPacketGroup +-- are mutually exclusive; at most one of these groups is implemented +-- for a particular interface. When any of these groups is implemented +-- for a particular interface, then ifCounterDiscontinuityGroup must +-- also be implemented for that interface. + + + GROUP ifFixedLengthGroup + DESCRIPTION + "This group is mandatory for those network interfaces which + are character-oriented or transmit data in fixed-length + transmission units, and for which the value of the + corresponding instance of ifSpeed is less than or equal to + 20,000,000 bits/second." + + GROUP ifHCFixedLengthGroup + DESCRIPTION + "This group is mandatory for those network interfaces which + are character-oriented or transmit data in fixed-length + transmission units, and for which the value of the + corresponding instance of ifSpeed is greater than 20,000,000 + bits/second." + + GROUP ifPacketGroup + DESCRIPTION + "This group is mandatory for those network interfaces which + are packet-oriented, and for which the value of the + corresponding instance of ifSpeed is less than or equal to + 20,000,000 bits/second." + + GROUP ifHCPacketGroup + DESCRIPTION + "This group is mandatory only for those network interfaces + which are packet-oriented and for which the value of the + corresponding instance of ifSpeed is greater than 20,000,000 + bits/second but less than or equal to 650,000,000 + bits/second." + + GROUP ifVHCPacketGroup + DESCRIPTION + "This group is mandatory only for those network interfaces + which are packet-oriented and for which the value of the + corresponding instance of ifSpeed is greater than + 650,000,000 bits/second." + + + GROUP ifCounterDiscontinuityGroup + DESCRIPTION + "This group is mandatory for those network interfaces that + are required to maintain counters (i.e., those for which one + of the ifFixedLengthGroup, ifHCFixedLengthGroup, + ifPacketGroup, ifHCPacketGroup, or ifVHCPacketGroup is + mandatory)." + + + GROUP ifRcvAddressGroup + DESCRIPTION + "The applicability of this group MUST be defined by the + media-specific MIBs. Media-specific MIBs must define the + exact meaning, use, and semantics of the addresses in this + group." + + OBJECT ifLinkUpDownTrapEnable + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifPromiscuousMode + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifAdminStatus + SYNTAX INTEGER { up(1), down(2) } + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, nor is support for the value + testing(3)." + + OBJECT ifAlias + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + ::= { ifCompliances 3 } + +-- units of conformance + +ifGeneralInformationGroup OBJECT-GROUP + OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress, + ifAdminStatus, ifOperStatus, ifLastChange, + ifLinkUpDownTrapEnable, ifConnectorPresent, + ifHighSpeed, ifName, ifNumber, ifAlias, + ifTableLastChange } + STATUS current + DESCRIPTION + "A collection of objects providing information applicable to + all network interfaces." + ::= { ifGroups 10 } + +-- the following five groups are mutually exclusive; at most +-- one of these groups is implemented for any interface + +ifFixedLengthGroup OBJECT-GROUP + OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors } + STATUS current + DESCRIPTION + "A collection of objects providing information specific to + non-high speed (non-high speed interfaces transmit and + receive at speeds less than or equal to 20,000,000 + bits/second) character-oriented or fixed-length-transmission + network interfaces." + ::= { ifGroups 2 } + +ifHCFixedLengthGroup OBJECT-GROUP + OBJECTS { ifHCInOctets, ifHCOutOctets, + ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors } + STATUS current + DESCRIPTION + "A collection of objects providing information specific to + high speed (greater than 20,000,000 bits/second) character- + oriented or fixed-length-transmission network interfaces." + ::= { ifGroups 3 } + +ifPacketGroup OBJECT-GROUP + OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors, + ifMtu, ifInUcastPkts, ifInMulticastPkts, + ifInBroadcastPkts, ifInDiscards, + ifOutUcastPkts, ifOutMulticastPkts, + ifOutBroadcastPkts, ifOutDiscards, + ifPromiscuousMode } + STATUS current + DESCRIPTION + "A collection of objects providing information specific to + non-high speed (non-high speed interfaces transmit and + receive at speeds less than or equal to 20,000,000 + bits/second) packet-oriented network interfaces." + ::= { ifGroups 4 } + +ifHCPacketGroup OBJECT-GROUP + OBJECTS { ifHCInOctets, ifHCOutOctets, + ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors, + ifMtu, ifInUcastPkts, ifInMulticastPkts, + ifInBroadcastPkts, ifInDiscards, + ifOutUcastPkts, ifOutMulticastPkts, + ifOutBroadcastPkts, ifOutDiscards, + ifPromiscuousMode } + STATUS current + DESCRIPTION + "A collection of objects providing information specific to + high speed (greater than 20,000,000 bits/second but less + than or equal to 650,000,000 bits/second) packet-oriented + network interfaces." + ::= { ifGroups 5 } + +ifVHCPacketGroup OBJECT-GROUP + OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts, + ifHCInBroadcastPkts, ifHCOutUcastPkts, + ifHCOutMulticastPkts, ifHCOutBroadcastPkts, + ifHCInOctets, ifHCOutOctets, + ifInOctets, ifOutOctets, ifInUnknownProtos, + ifInErrors, ifOutErrors, + ifMtu, ifInUcastPkts, ifInMulticastPkts, + ifInBroadcastPkts, ifInDiscards, + ifOutUcastPkts, ifOutMulticastPkts, + ifOutBroadcastPkts, ifOutDiscards, + ifPromiscuousMode } + STATUS current + DESCRIPTION + "A collection of objects providing information specific to + higher speed (greater than 650,000,000 bits/second) packet- + oriented network interfaces." + ::= { ifGroups 6 } + +ifRcvAddressGroup OBJECT-GROUP + OBJECTS { ifRcvAddressStatus, ifRcvAddressType } + STATUS current + DESCRIPTION + "A collection of objects providing information on the + multiple addresses which an interface receives." + ::= { ifGroups 7 } + +ifStackGroup2 OBJECT-GROUP + OBJECTS { ifStackStatus, ifStackLastChange } + STATUS current + DESCRIPTION + "A collection of objects providing information on the + layering of MIB-II interfaces." + ::= { ifGroups 11 } + +ifCounterDiscontinuityGroup OBJECT-GROUP + OBJECTS { ifCounterDiscontinuityTime } + STATUS current + DESCRIPTION + "A collection of objects providing information specific to + interface counter discontinuities." + ::= { ifGroups 13 } + +linkUpDownNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { linkUp, linkDown } + STATUS current + DESCRIPTION + "The notifications which indicate specific changes in the + value of ifOperStatus." + ::= { ifGroups 14 } + +-- Deprecated Definitions - Objects + + +-- +-- The Interface Test Table +-- +-- This group of objects is optional. However, a media-specific +-- MIB may make implementation of this group mandatory. +-- +-- This table replaces the ifExtnsTestTable +-- + +ifTestTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfTestEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "This table contains one entry per interface. It defines + objects which allow a network manager to instruct an agent + to test an interface for various faults. Tests for an + interface are defined in the media-specific MIB for that + interface. After invoking a test, the object ifTestResult + can be read to determine the outcome. If an agent can not + perform the test, ifTestResult is set to so indicate. The + object ifTestCode can be used to provide further test- + specific or interface-specific (or even enterprise-specific) + information concerning the outcome of the test. Only one + test can be in progress on each interface at any one time. + If one test is in progress when another test is invoked, the + second test is rejected. Some agents may reject a test when + a prior test is active on another interface. + + Before starting a test, a manager-station must first obtain + 'ownership' of the entry in the ifTestTable for the + interface to be tested. This is accomplished with the + ifTestId and ifTestStatus objects as follows: + + try_again: + get (ifTestId, ifTestStatus) + while (ifTestStatus != notInUse) + /* + * Loop while a test is running or some other + * manager is configuring a test. + */ + short delay + get (ifTestId, ifTestStatus) + } + + /* + * Is not being used right now -- let's compete + * to see who gets it. + */ + lock_value = ifTestId + + if ( set(ifTestId = lock_value, ifTestStatus = inUse, + + ifTestOwner = 'my-IP-address') == FAILURE) + /* + * Another manager got the ifTestEntry -- go + * try again + */ + goto try_again; + + /* + * I have the lock + */ + set up any test parameters. + + /* + * This starts the test + */ + set(ifTestType = test_to_run); + + wait for test completion by polling ifTestResult + + when test completes, agent sets ifTestResult + agent also sets ifTestStatus = 'notInUse' + + retrieve any additional test results, and ifTestId + + if (ifTestId == lock_value+1) results are valid + + A manager station first retrieves the value of the + appropriate ifTestId and ifTestStatus objects, periodically + repeating the retrieval if necessary, until the value of + ifTestStatus is 'notInUse'. The manager station then tries + to set the same ifTestId object to the value it just + retrieved, the same ifTestStatus object to 'inUse', and the + corresponding ifTestOwner object to a value indicating + itself. If the set operation succeeds then the manager has + obtained ownership of the ifTestEntry, and the value of the + ifTestId object is incremented by the agent (per the + semantics of TestAndIncr). Failure of the set operation + indicates that some other manager has obtained ownership of + the ifTestEntry. + + Once ownership is obtained, any test parameters can be + setup, and then the test is initiated by setting ifTestType. + On completion of the test, the agent sets ifTestStatus to + 'notInUse'. Once this occurs, the manager can retrieve the + results. In the (rare) event that the invocation of tests + by two network managers were to overlap, then there would be + a possibility that the first test's results might be + overwritten by the second test's results prior to the first + results being read. This unlikely circumstance can be + detected by a network manager retrieving ifTestId at the + same time as retrieving the test results, and ensuring that + the results are for the desired request. + + If ifTestType is not set within an abnormally long period of + time after ownership is obtained, the agent should time-out + the manager, and reset the value of the ifTestStatus object + back to 'notInUse'. It is suggested that this time-out + period be 5 minutes. + + In general, a management station must not retransmit a + request to invoke a test for which it does not receive a + response; instead, it properly inspects an agent's MIB to + determine if the invocation was successful. Only if the + invocation was unsuccessful, is the invocation request + retransmitted. + + Some tests may require the interface to be taken off-line in + order to execute them, or may even require the agent to + reboot after completion of the test. In these + circumstances, communication with the management station + invoking the test may be lost until after completion of the + test. An agent is not required to support such tests. + However, if such tests are supported, then the agent should + make every effort to transmit a response to the request + which invoked the test prior to losing communication. When + the agent is restored to normal service, the results of the + test are properly made available in the appropriate objects. + Note that this requires that the ifIndex value assigned to + an interface must be unchanged even if the test causes a + reboot. An agent must reject any test for which it cannot, + perhaps due to resource constraints, make available at least + the minimum amount of information after that test + completes." + ::= { ifMIBObjects 3 } + +ifTestEntry OBJECT-TYPE + SYNTAX IfTestEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "An entry containing objects for invoking tests on an + interface." + AUGMENTS { ifEntry } + ::= { ifTestTable 1 } + +IfTestEntry ::= + SEQUENCE { + ifTestId TestAndIncr, + ifTestStatus INTEGER, + ifTestType AutonomousType, + ifTestResult INTEGER, + ifTestCode OBJECT IDENTIFIER, + ifTestOwner OwnerString + } + +ifTestId OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This object identifies the current invocation of the + interface's test." + ::= { ifTestEntry 1 } + +ifTestStatus OBJECT-TYPE + SYNTAX INTEGER { notInUse(1), inUse(2) } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "This object indicates whether or not some manager currently + has the necessary 'ownership' required to invoke a test on + this interface. A write to this object is only successful + when it changes its value from 'notInUse(1)' to 'inUse(2)'. + After completion of a test, the agent resets the value back + to 'notInUse(1)'." + ::= { ifTestEntry 2 } + +ifTestType OBJECT-TYPE + SYNTAX AutonomousType + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "A control variable used to start and stop operator- + initiated interface tests. Most OBJECT IDENTIFIER values + assigned to tests are defined elsewhere, in association with + specific types of interface. However, this document assigns + a value for a full-duplex loopback test, and defines the + special meanings of the subject identifier: + + noTest OBJECT IDENTIFIER ::= { 0 0 } + + When the value noTest is written to this object, no action + is taken unless a test is in progress, in which case the + test is aborted. Writing any other value to this object is + only valid when no test is currently in progress, in which + case the indicated test is initiated. + + When read, this object always returns the most recent value + that ifTestType was set to. If it has not been set since + the last initialization of the network management subsystem + on the agent, a value of noTest is returned." + ::= { ifTestEntry 3 } + +ifTestResult OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- no test yet requested + success(2), + inProgress(3), + notSupported(4), + unAbleToRun(5), -- due to state of system + aborted(6), + failed(7) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "This object contains the result of the most recently + requested test, or the value none(1) if no tests have been + requested since the last reset. Note that this facility + provides no provision for saving the results of one test + when starting another, as could be required if used by + multiple managers concurrently." + ::= { ifTestEntry 4 } + +ifTestCode OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "This object contains a code which contains more specific + information on the test result, for example an error-code + after a failed test. Error codes and other values this + object may take are specific to the type of interface and/or + test. The value may have the semantics of either the + AutonomousType or InstancePointer textual conventions as + defined in RFC 2579. The identifier: + + testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 } + + is defined for use if no additional result code is + available." + ::= { ifTestEntry 5 } + +ifTestOwner OBJECT-TYPE + SYNTAX OwnerString + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION + "The entity which currently has the 'ownership' required to + invoke a test on this interface." + ::= { ifTestEntry 6 } + +-- Deprecated Definitions - Groups + + +ifGeneralGroup OBJECT-GROUP + OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress, + ifAdminStatus, ifOperStatus, ifLastChange, + ifLinkUpDownTrapEnable, ifConnectorPresent, + ifHighSpeed, ifName } + STATUS deprecated + DESCRIPTION + "A collection of objects deprecated in favour of + ifGeneralInformationGroup." + ::= { ifGroups 1 } + + +ifTestGroup OBJECT-GROUP + OBJECTS { ifTestId, ifTestStatus, ifTestType, + ifTestResult, ifTestCode, ifTestOwner } + STATUS deprecated + DESCRIPTION + "A collection of objects providing the ability to invoke + tests on an interface." + ::= { ifGroups 8 } + + +ifStackGroup OBJECT-GROUP + OBJECTS { ifStackStatus } + STATUS deprecated + DESCRIPTION + "The previous collection of objects providing information on + the layering of MIB-II interfaces." + ::= { ifGroups 9 } + + +ifOldObjectsGroup OBJECT-GROUP + OBJECTS { ifInNUcastPkts, ifOutNUcastPkts, + ifOutQLen, ifSpecific } + STATUS deprecated + DESCRIPTION + "The collection of objects deprecated from the original MIB- + II interfaces group." + ::= { ifGroups 12 } + +-- Deprecated Definitions - Compliance + +ifCompliance MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "A compliance statement defined in a previous version of + this MIB module, for SNMP entities which have network + interfaces." + + MODULE -- this module + MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup } + + GROUP ifFixedLengthGroup + DESCRIPTION + "This group is mandatory for all network interfaces which + are character-oriented or transmit data in fixed-length + transmission units." + + GROUP ifHCFixedLengthGroup + DESCRIPTION + "This group is mandatory only for those network interfaces + which are character-oriented or transmit data in fixed- + length transmission units, and for which the value of the + corresponding instance of ifSpeed is greater than 20,000,000 + bits/second." + + GROUP ifPacketGroup + DESCRIPTION + "This group is mandatory for all network interfaces which + are packet-oriented." + + GROUP ifHCPacketGroup + DESCRIPTION + "This group is mandatory only for those network interfaces + which are packet-oriented and for which the value of the + corresponding instance of ifSpeed is greater than + 650,000,000 bits/second." + + GROUP ifTestGroup + DESCRIPTION + "This group is optional. Media-specific MIBs which require + interface tests are strongly encouraged to use this group + for invoking tests and reporting results. A medium specific + MIB which has mandatory tests may make implementation of + this group mandatory." + + GROUP ifRcvAddressGroup + DESCRIPTION + "The applicability of this group MUST be defined by the + media-specific MIBs. Media-specific MIBs must define the + exact meaning, use, and semantics of the addresses in this + group." + + OBJECT ifLinkUpDownTrapEnable + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifPromiscuousMode + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifStackStatus + SYNTAX INTEGER { active(1) } -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one of the six + enumerated values for the RowStatus textual convention need + be supported, specifically: active(1)." + + OBJECT ifAdminStatus + SYNTAX INTEGER { up(1), down(2) } + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, nor is support for the value + testing(3)." + ::= { ifCompliances 1 } + +ifCompliance2 MODULE-COMPLIANCE + STATUS deprecated + DESCRIPTION + "A compliance statement defined in a previous version of + this MIB module, for SNMP entities which have network + interfaces." + + MODULE -- this module + MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2, + ifCounterDiscontinuityGroup } + + GROUP ifFixedLengthGroup + DESCRIPTION + "This group is mandatory for all network interfaces which + are character-oriented or transmit data in fixed-length + transmission units." + + GROUP ifHCFixedLengthGroup + DESCRIPTION + "This group is mandatory only for those network interfaces + which are character-oriented or transmit data in fixed- + length transmission units, and for which the value of the + corresponding instance of ifSpeed is greater than 20,000,000 + bits/second." + + GROUP ifPacketGroup + DESCRIPTION + "This group is mandatory for all network interfaces which + are packet-oriented." + + GROUP ifHCPacketGroup + DESCRIPTION + "This group is mandatory only for those network interfaces + which are packet-oriented and for which the value of the + corresponding instance of ifSpeed is greater than + 650,000,000 bits/second." + + GROUP ifRcvAddressGroup + DESCRIPTION + "The applicability of this group MUST be defined by the + media-specific MIBs. Media-specific MIBs must define the + exact meaning, use, and semantics of the addresses in this + group." + + OBJECT ifLinkUpDownTrapEnable + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifPromiscuousMode + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT ifStackStatus + SYNTAX INTEGER { active(1) } -- subset of RowStatus + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, and only one of the six + enumerated values for the RowStatus textual convention need + be supported, specifically: active(1)." + OBJECT ifAdminStatus + SYNTAX INTEGER { up(1), down(2) } + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required, nor is support for the value + testing(3)." + + OBJECT ifAlias + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + ::= { ifCompliances 2 } + +END diff --git a/pandora_console/attachment/mibs/IMM-MIB b/pandora_console/attachment/mibs/IMM-MIB new file mode 100644 index 0000000000..e4764d5d51 --- /dev/null +++ b/pandora_console/attachment/mibs/IMM-MIB @@ -0,0 +1,11715 @@ +-- *************************************************************************** +-- *************************************************************************** +-- +-- File : imm.mib +-- Description : Integrated Management Module mib for SNMP +-- By : Lenovo +-- Version : 1.49 +-- Date : Nov 29, 2017 +-- +-- +-- Copyright (c) 2016 Lenovo All Rights Reserved. +-- Copyright (c) 2016 IBM All Rights Reserved. +-- +-- +-- Contains MIB description for: +-- This MIB is to be used to provide configuration support of IMM as well as monitoring support +-- for the system. +-- *************************************************************************** +-- *************************************************************************** +-- *************************************************************************** +-- Revisions: +-- +-- 02/05/18 - Collect SSD Wear info for raid SSD Drive. +-- +-- 11/29/17 - Corrected ReadCallHomeExclusionEventEntry::= syntax error. +-- +-- 04/13/17 - Corrected Raid and PCIe object name syntax errors, modify to unique object name. +-- - Corrected raidFirmwareEntry to raidControllerFirmwareEntry, to have same prefix of table. +-- - Corrected fdEntry's index to fdIndex. +-- +-- 01/11/17 - Updated spTxtId, enlarge system name to 256 characters +-- +-- 12/13/16 - Corrected syntax errors in sslCertificateCSRDownloadFormat and CryptoInsufComplianceEntry +-- +-- 10/20/16 - Added dnsLXCADiscovery object for LXCA discovery using DNS SRV record +-- +-- 08/27/15 - Added ipmiConfig, ipmiEnable +-- +-- 05/13/15 - Added phyPortLinkStatus, phyPortLinkSpeed for Adapter Network Port +-- - Added memoryConfigSpeed, memoryRatedSpeed for System Memory VPD +-- - Added cpuVpdCpuModel for System CPU VPD +-- - Added Full Postal Address support +-- - Added driveRotationRate, driveMediaErrCnt, driveOtherErrCnt, drivePredFailCnt for RAID Drive +-- +-- 05/05/15 - removed SNMPv2-TC import and modified InetAddressIPv6 +-- +-- 03/11/15 - Rebranding changes +-- +-- 12/08/14 - Added Subject Alt Names support +-- +-- 08/08/14 - 07/09/14 - Corrected Raid object syntax errors +-- +-- 06/26/14 - Corrected sslClientConfigForLDAP OID's +-- - Added sslCertificateCSRDownloadFormat and description updates +-- +-- 06/19/14 - Fixed skr skrServerCertificateExpirationDate OID typo and adjust skrServer OIDs +-- +-- 06/04/14 - Added table to items that have insufficient compliance to the current crypto mode. +-- +-- 05/23/14 - Added objects for Certificate Removal and Expiration Date +-- +-- 03/24/14 - Added VLANs for System Management support GA6 +-- +-- 03/20/14 - Added NSA B cryptoModes GA6 +-- +-- 03/14/14 - Updated PCIe support. Added RAID Link support. Corrected remoteAccessIdEntryPassword +-- and minimumPasswordLength to support up to 20 characters. +-- +-- 02/19/14 - Added bootServerF1Setup and smtpServerReversePath GA6 +-- +-- 01/22/14 - Added PCIe objects +-- +-- 01/10/14 - Added LAN over USB IP Configuration Objects +-- +-- 01/08/14 - Added Audit Event Config for Remote Alert Recipients +-- +-- 12/17/13 - Modified FlashDIMM Objects, and correct previous backed off changes +-- +-- 12/04/13 - Added unsupported values to configurationManagementStatus object +-- - Changed PowerEntry powerIndex to a 0-index +-- +-- 11/13/2013 - Added FlashDIMM Objects +-- +-- 09/30/2013 - Corrected enumerated value names starting with upper case +-- +-- 09/26/2013 - powerControlSleep edits +-- +-- 08/07/2013 - Updated scalableComplexPartitionCreateIndex +-- +-- 07/30/2013 Version - Updated Scalable changes +-- scalableComplexClear and scalableComplexAuotCreate setting +-- scalableComplexNodeSerialNumber size limit +-- +-- 06/24/2013 Version - Updated Scalable changes +-- all objects with node key were updated to OCTET STRING (SIZE(4)) +-- 05/24/2013 Version - Added Scalable changes +-- scalableComplexPartitionStatus - removed "resetting" state +-- scalableComplexNodeState - removed +-- scalableComplexPartitionActionCreate - updated description +-- +-- 07/30/2013 Version 1.38c +-- Fixed syntax error in powerTrendingPowerType object +-- Capitalized PowerTrendingSampleEntry object name +-- +-- 07/25/2013 Version 1.38b +-- Removed mark and space from portParity +-- +-- 07/17/2013 Version 1.38a +-- Removed extra commas from lines 1511 and 1560 +-- +-- 07/17/2013 Version 1.39 +-- Added sleepS3 state to currentSysPowerStatus +-- Added powerControlSleep +-- +-- 05/30/2013 Version 1.38 +-- Added Storage Key Repository Servers section +-- Added Cryptography Mode section +-- +-- 02/20/2013 Version 1.37 +-- Commented Firmware Update section as IMM1 only +-- Added Power Management section/objects +-- Added new system health objects +-- Removed DST setting for Europe/Minsk +-- Removed "IMM1 only" comment from contactInformation.companyName +-- Extented ldapGroupFilter length to 511 +-- +-- 10/29/2012 Version 1.36 +-- Removed httpProxyAuthentication object. +-- Added size to autoFTPCallAddr, autoFTPCallUserID, and autoFTPCallPassword +-- Updated the addCallHomeExclusionEvent and rmCallHomeExclusionEvent descriptions +-- +-- 09/18/2012 Version 1.35 +-- Added additional objects for Service Advisor: +-- httpProxyAuthentication, contactInformation.phoneExtension, altContactName, +-- altPhoneNumber, altPhoneExtension, altEmailAddress, machineLocationPhoneNumber, +-- autoFTPCallMode.sftp, testCallHome.generateTestCallHome +-- Marked contactInformation.companyName "IMM1-only" +-- Marked smtpServerAuthentication, smtpServerAuthenticationUser, +-- smtpServerAuthenticationPassword, and smtpServerAuthenticationMethod +-- "IMM2 only" +-- Marked remoteAlertIdEmailAddr as "IMM1 limited to 64" +-- +-- 08/06/2012 Version 1.34 +-- Changed remoteAlertIdEmailAddr OCTET STRING(SIZE(0..320)) +-- +-- 07/23/2012 Version 1.33 +-- Added Objects for Ethernet VLAN +-- sslConfig object group marked "IMM2 only" +-- ntpIpAddressHostname2,3 and 4 marked "IMM2 only" +-- ldapSearchDomain, removed "IMM2 only" +-- ldapDomainSource marked "IMM2 only" +-- +-- 07/02/2012 Version 1.32 +-- Added Objects for Authenticated SMTP +-- +-- *************************************************************************** + IMM-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE FROM RFC-1212 + enterprises FROM RFC1155-SMI + DisplayString FROM RFC1213-MIB + IpAddress FROM RFC1155-SMI + -- PTE: added following 7/12/2011 + Gauge FROM RFC1155-SMI + + -- TEXTUAL-CONVENTION FROM SNMPv2-TC + TRAP-TYPE FROM RFC-1215; + + InetAddressIPv6 ::= TEXTUAL-CONVENTION + DISPLAY-HINT "02x:02x:02x:02x:02x:02x:02x:02x" + -- PTE: changed to mandatory + STATUS current + -- STATUS mandatory + DESCRIPTION + "Represents an IPv6 network address. Since MIB browsers + may require different formats, the address is + expected to be the 16 byte address in network-byte order, + and shortened formats such as 0::0 are not accepted in SET + operations. Two common examples are: + + The NetSNMP command line will accept SET requests like: + snmpset -v1 -cprivate s 2001:00:00:00:FFFF:CCC4:BBB2:AAA6 + + Other MIB browsers may require the SET request value to be formatted as: + # 0x20 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0xCC 0xC4 0xBB 0xB2 0xAA 0xA6" + SYNTAX OCTET STRING (SIZE (16)) + + EntryStatus ::= INTEGER + { valid(1), + createRequest(2), + underCreation(3), + invalid(4) + } + + -- The status of a table entry. + -- + -- Setting this object to the value invalid(4) has the + -- effect of invalidating the corresponding entry. + -- That is, it effectively disassociates the mapping + -- identified with said entry. + -- It is an implementation-specific matter as to whether + -- the agent removes an invalidated entry from the table. + -- Accordingly, management stations must be prepared to + -- receive tabular information from agents that corresponds + -- to entries currently not in use. Proper + -- interpretation of such entries requires examination + -- of the relevant EntryStatus object. + -- + -- An existing instance of this object cannot be set to + -- createRequest(2). This object may only be set to + -- createRequest(2) when this instance is created. When + -- this object is created, the agent may wish to create + -- supplemental object instances to complete a conceptual + -- row in this table. Immediately after completing the + -- create operation, the agent must set this object to + -- underCreation(3). + -- + -- Entries shall exist in the underCreation(3) state until + + -- the management station is finished configuring the + -- entry and sets this object to valid(1) or aborts, + -- setting this object to invalid(4). If the agent + -- determines that an entry has been in the + -- underCreation(3) state for an abnormally long time, + -- it may decide that the management station has + -- crashed. If the agent makes this decision, + -- it may set this object to invalid(4) to reclaim the + -- entry. A prudent agent will understand that the + -- management station may need to wait for human input + -- and will allow for that possibility in its + -- determination of this abnormally long period. + + -- enterprise group + ibm OBJECT IDENTIFIER ::= { enterprises 2 } + + -- products group + ibmAgents OBJECT IDENTIFIER ::= { ibm 3 } + + -- e-Server Advanced System Management Support Processor(SP) agent group + netfinitySupportProcessorAgent OBJECT IDENTIFIER ::= { ibmAgents 51 } + + -- integrated Management Module + ibmIntegratedManagementModuleMIB OBJECT IDENTIFIER ::= { netfinitySupportProcessorAgent 3 } + +-- *************************************************************************** +-- Start: Define groups of objects within the ibmRemoteSupSnmpMIB +-- *************************************************************************** + --This group of objects provides the various environmental monitors for the + -- local system and the IMM + monitors OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 1 } + + --This group of objects provides the error log objects for the IMM + errorLogs OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 2 } + + --This group of objects provides configuration functions for the IMM + configureSP OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 3 } + + --This group of objects provides configuration functions for the system(server) + generalSystemSettings OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 4 } + + --This group of objects provides configuration functions for system power + systemPower OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 5 } + + --This group of objects provides functions to boot the IMM and system + restartReset OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 6 } + + --This group of objects provides functions to update the IMM firmware + firmwareUpdate OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 7 } + + --This group of objects provides functions Service Advisor + serviceAdvisor OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 8 } + + --This group of objects provides functions for Scalable Systems + scaling OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 9 } + +-- **************************************************************************** +-- Monitors +-- **************************************************************************** + -- ************************************************************************ + -- Temperature + -- ************************************************************************ + temperature OBJECT IDENTIFIER ::= { monitors 1 } + tempNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the temperature table." + ::= { temperature 1 } + + tempTable OBJECT-TYPE + SYNTAX SEQUENCE OF TempEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains temperature measurement information." + ::= { temperature 2 } + + tempEntry OBJECT-TYPE + SYNTAX TempEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a temperature measurement channel." + INDEX { tempIndex } + ::= { tempTable 1 } + + TempEntry ::= + SEQUENCE { + tempIndex INTEGER, + tempDescr DisplayString, + tempReading INTEGER, + tempNominalReading INTEGER, + tempNonRecovLimitHigh INTEGER, + tempCritLimitHigh INTEGER, + tempNonCritLimitHigh INTEGER, + tempNonRecovLimitLow INTEGER, + tempCritLimitLow INTEGER, + tempNonCritLimitLow INTEGER, + tempHealthStatus DisplayString -- IMM2-only + } + + tempIndex OBJECT-TYPE + SYNTAX INTEGER (1..100) + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular + temperature measurement channel." + ::= { tempEntry 1 } + + tempDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + + STATUS mandatory + DESCRIPTION "A description of the temperature measurement + channel." + ::= { tempEntry 2 } + + tempReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The measured temperature." + ::= { tempEntry 3 } + + tempNominalReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The nominal temperature, if available." + ::= { tempEntry 4 } + + tempNonRecovLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The non-recoverable limit for the measured temperature. If + the measured value rises above this limit a trap is sent." + ::= { tempEntry 5} + + tempCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The critical limit for the measured temperature. If + the measured value rises above this limit a trap is sent." + ::= { tempEntry 6} + + tempNonCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The non-critical limit for the measured temperature. If + the measured value rises above this limit a trap is sent." + ::= { tempEntry 7} + + tempNonRecovLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The non-recoverable limit for the measured temperature. If + the measured value falls below this limit a trap is sent." + ::= { tempEntry 8} + + tempCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The critical limit for the measured temperature. If + the measured value falls below this limit a trap is sent." + ::= { tempEntry 9} + + tempNonCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The non-critical limit for the measured temperature. If + the measured value falls below this limit a trap is sent." + ::= { tempEntry 10} + + tempHealthStatus OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the temperature component status." + ::= { tempEntry 11 } + + -- ************************************************************************ + -- Voltages + -- ************************************************************************ + voltage OBJECT IDENTIFIER ::= { monitors 2 } + -------------------------------------------------------------------------------- + voltNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the voltage table." + ::= { voltage 1 } + + voltTable OBJECT-TYPE + SYNTAX SEQUENCE OF VoltEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains voltage measurement information." + ::= { voltage 2 } + + voltEntry OBJECT-TYPE + SYNTAX VoltEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a + voltage measurement channel." + INDEX { voltIndex } + ::= { voltTable 1 } + + VoltEntry ::= + SEQUENCE { + voltIndex INTEGER, + voltDescr DisplayString, + voltReading INTEGER, + voltNominalReading INTEGER, + voltNonRecovLimitHigh INTEGER, + voltCritLimitHigh INTEGER, + voltNonCritLimitHigh INTEGER, + voltNonRecovLimitLow INTEGER, + voltCritLimitLow INTEGER, + voltNonCritLimitLow INTEGER, + voltHealthStatus DisplayString -- IMM2-only + } + + voltIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular + voltage measurement channel." + ::= { voltEntry 1 } + + voltDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the voltage measurement channel." + ::= { voltEntry 2 } + + voltReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The measured voltage." + ::= { voltEntry 3 } + + voltNominalReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The nominal voltage, if available." + ::= { voltEntry 4 } + + voltNonRecovLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high non-recoverable limit for the measured voltage. If the + measured value falls above this limit a trap is sent." + ::= { voltEntry 5 } + + voltCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high critical limit for the measured voltage. If the + measured value rises above this limit a trap is sent." + ::= { voltEntry 6 } + + voltNonCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high non-critical limit for the measured voltage. If the + measured value rises above this limit a trap is sent." + ::= { voltEntry 7 } + + voltNonRecovLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low non-recoverable limit for the measured voltage. If the + measured value falls below this limit a trap is sent." + ::= { voltEntry 8 } + + voltCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low critical limit for the measured voltage. If the + measured value falls below this limit a trap is sent." + ::= { voltEntry 9 } + + voltNonCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low non-critical limit for the measured voltage. If the + measured value falls below this limit a trap is sent." + ::= { voltEntry 10 } + + voltHealthStatus OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the voltage component status." + ::= { voltEntry 11 } + + + -- ************************************************************************ + -- Fans + -- ************************************************************************ + fans OBJECT IDENTIFIER ::= { monitors 3 } + fanNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the fan table." + ::= { fans 1 } + + fanTable OBJECT-TYPE + SYNTAX SEQUENCE OF FanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains fan information." + ::= { fans 2 } + + fanEntry OBJECT-TYPE + SYNTAX FanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a fan." + INDEX { fanIndex } + ::= { fanTable 1 } + + FanEntry ::= + SEQUENCE { + fanIndex INTEGER (1..100), + fanDescr DisplayString, + fanSpeed OCTET STRING, + fanNonRecovLimitHigh INTEGER, + fanCritLimitHigh INTEGER, + fanNonCritLimitHigh INTEGER, + fanNonRecovLimitLow INTEGER, + fanCritLimitLow INTEGER, + fanNonCritLimitLow INTEGER, + fanHealthStatus DisplayString -- IMM2-only + } + + fanIndex OBJECT-TYPE + SYNTAX INTEGER (1..100) + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular fan." + ::= { fanEntry 1 } + + fanDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the fan measurement channel." + ::= { fanEntry 2 } + + + fanSpeed OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Fan speed expressed in percent(%) of maximum RPM. + An octet string expressed as 'ddd% of maximum' where: + d is a decimal digit or blank space for a leading zero. + If the fan is determined not to be running or + the fan speed cannot be determined, the string will + indicate 'Offline'." + ::= { fanEntry 3 } + + fanNonRecovLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high non-recoverable limit for the measured fan. If the + measured value falls above this limit a trap is sent." + ::= { fanEntry 4 } + + fanCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high critical limit for the measured fan. If the + measured value rises above this limit a trap is sent." + ::= { fanEntry 5 } + + fanNonCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high non-critical limit for the measured fan. If the + measured value rises above this limit a trap is sent." + ::= { fanEntry 6 } + + fanNonRecovLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low non-recoverable limit for the measured fan. If the + measured value falls below this limit a trap is sent." + ::= { fanEntry 7 } + + fanCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low critical limit for the measured fan. If the + measured value falls below this limit a trap is sent." + ::= { fanEntry 8 } + + fanNonCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low non-critical limit for the measured fan. If the + measured value falls below this limit a trap is sent." + ::= { fanEntry 9 } + + fanHealthStatus OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the fan component status." + ::= { fanEntry 10 } + + -- ************************************************************************ + -- System Health + -- ************************************************************************ + systemHealth OBJECT IDENTIFIER ::= { monitors 4 } + + -- *********************************************************************** + -- System Health Status + -- *********************************************************************** + systemHealthStat OBJECT-TYPE + SYNTAX INTEGER { + nonRecoverable(0), + critical(2), + nonCritical(4), + normal(255) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates status of system health for the + system in which the IMM resides. + Value of 'nonRecoverable' indicates a severe error has occurred + and the system may not be functioning. A value of + 'critical' indicates that a error has occurred but + the system is currently functioning properly. A value of + 'nonCritical' indicates that a condition has occurred + that may change the state of the system in the future but currently + the system is working properly. A value of + 'normal' indicates that the system is operating normally." + ::= { systemHealth 1 } + + -- *********************************************************************** + -- System Health Summary + -- *********************************************************************** + systemHealthSummaryTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemHealthSummaryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of System Health summary. Contains more detailed + information about the reasons for the overall system + health status." + ::= { systemHealth 2 } + + systemHealthSummaryEntry OBJECT-TYPE + SYNTAX SystemHealthSummaryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System Health Summary entry" + INDEX { systemHealthSummaryIndex } + ::= { systemHealthSummaryTable 1 } + + + SystemHealthSummaryEntry ::= SEQUENCE { + systemHealthSummaryIndex INTEGER, + systemHealthSummarySeverity OCTET STRING, + systemHealthSummaryDescription OCTET STRING + } + + + systemHealthSummaryIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System health summary index." + ::= { systemHealthSummaryEntry 1 } + + systemHealthSummarySeverity OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System health summary severity." + ::= { systemHealthSummaryEntry 2 } + + systemHealthSummaryDescription OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System health summary description." + ::= { systemHealthSummaryEntry 3 } + + -- *********************************************************************** + -- Vital Product Data(VPD) information + -- *********************************************************************** + vpdInformation OBJECT IDENTIFIER ::= { monitors 5 } + + -- *********************************************************************** + -- IMM VPD + -- *********************************************************************** + + immVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF IMMVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of IMM VPD." + ::= { vpdInformation 1 } + + immVpdEntry OBJECT-TYPE + SYNTAX IMMVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "iMBC VPD entry." + INDEX { immVpdIndex } + ::= { immVpdTable 1 } + + + IMMVpdEntry ::= SEQUENCE { + immVpdIndex INTEGER, + immVpdType OCTET STRING, + immVpdVersionString OCTET STRING, + immVpdReleaseDate OCTET STRING + } + + + immVpdIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD index." + ::= { immVpdEntry 1 } + + immVpdType OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD Type. Indicates either Bios or Diag or spFimware VPD" + ::= { immVpdEntry 2 } + + immVpdVersionString OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD Version Number of the software(Bios/Diag/spFirmware). + For IMM2 the string contains both the Build ID and the Version + Number, for example, like '1AOO3A v1.0.1'. " + ::= { immVpdEntry 3 } + + immVpdReleaseDate OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD Release Date of when the software(Bios/Diag/spFirmware) was released." + ::= { immVpdEntry 4 } + + + -- *********************************************************************** + -- Machine Level VPD + -- *********************************************************************** + machineVpd OBJECT IDENTIFIER ::= { vpdInformation 2 } + + + machineLevelVpd OBJECT IDENTIFIER ::= { machineVpd 1 } + + machineLevelVpdMachineType OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine type VPD information." + ::= { machineLevelVpd 1 } + + machineLevelVpdMachineModel OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine model VPD information." + ::= { machineLevelVpd 2 } + + machineLevelSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine serial number VPD information." + ::= { machineLevelVpd 3 } + + machineLevelUUID OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine UUID(Universal Unique ID information)." + ::= { machineLevelVpd 4 } + + machineLevelProductName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine Product Name (e.g. System x3650 M2)." + ::= { machineLevelVpd 5 } + + -- *********************************************************************** + -- System Component Level VPD + -- *********************************************************************** + systemComponentLevelVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemComponentLevelVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of the system component hardware VPD information. View as a + table and not as individual entries for consistent results." + ::= { vpdInformation 17 } + + systemComponentLevelVpdEntry OBJECT-TYPE + SYNTAX SystemComponentLevelVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System component hardware VPD entry. View as a table and not as + individual entries for consistent results." + INDEX { componentLevelVpdIndex } + ::= { systemComponentLevelVpdTable 1 } + + SystemComponentLevelVpdEntry ::= SEQUENCE { + componentLevelVpdIndex INTEGER, + componentLevelVpdFruNumber OCTET STRING, + componentLevelVpdFruName OCTET STRING, + componentLevelVpdSerialNumber OCTET STRING, + componentLevelVpdManufacturingId OCTET STRING + } + + componentLevelVpdIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD index. View as a table and not as individual + entries for consistent results." + ::= { systemComponentLevelVpdEntry 1 } + + componentLevelVpdFruNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD FRU number. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 2 } + + componentLevelVpdFruName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD FRU name. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 3 } + + componentLevelVpdSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD serial number. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 4 } + + componentLevelVpdManufacturingId OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD manufacturing ID. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 5 } + + -- *********************************************************************** + -- System Component Level VPD Tracking log + -- *********************************************************************** + systemComponentLevelVpdTrackingTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemComponentLevelVpdTrackingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of system component hardware VPD tracking activity log. View as + a table and not as individual entries for consistent results." + ::= { vpdInformation 18 } + + systemComponentLevelVpdTrackingEntry OBJECT-TYPE + SYNTAX SystemComponentLevelVpdTrackingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System component hardware VPD tracking activity log entry. View as a + table and not as individual entries for consistent results." + INDEX { componentLevelVpdTrackingIndex } + ::= { systemComponentLevelVpdTrackingTable 1 } + + SystemComponentLevelVpdTrackingEntry ::= SEQUENCE { + componentLevelVpdTrackingIndex INTEGER, + componentLevelVpdTrackingFruNumber OCTET STRING, + componentLevelVpdTrackingFruName OCTET STRING, + componentLevelVpdTrackingSerialNumber OCTET STRING, + componentLevelVpdTrackingManufacturingId OCTET STRING, + componentLevelVpdTrackingAction OCTET STRING, + componentLevelVpdTrackingTimestamp OCTET STRING + + } + + componentLevelVpdTrackingIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log index. View as a table + and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 1 } + + componentLevelVpdTrackingFruNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log FRU number. View as a + table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 2 } + + componentLevelVpdTrackingFruName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log FRU name. View as a + table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 3 } + + componentLevelVpdTrackingSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log serial number. View as + a table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 4 } + + componentLevelVpdTrackingManufacturingId OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log manufacturing ID. View + as a table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 5 } + + componentLevelVpdTrackingAction OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log action(added/removed). + View as a table and not as individual entries for consistent results." + ::= {systemComponentLevelVpdTrackingEntry 6 } + + componentLevelVpdTrackingTimestamp OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log timestanp. + View as a table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 7 } + + -- ******************************************************************************** + -- Host MAC Address VPD + -- ******************************************************************************** + + hostMACAddressTable OBJECT-TYPE + SYNTAX SEQUENCE OF HostMACAddressEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of MAC addresses of the host NICs. + For consistent results, view as a table and not as individual entries." + ::= { vpdInformation 19 } + + hostMACAddressEntry OBJECT-TYPE + SYNTAX HostMACAddressEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Host MAC address entry. + For consistent results, view as a table and not as individual entries." + INDEX { hostMACAddressIndex } + ::= { hostMACAddressTable 1 } + + HostMACAddressEntry ::= SEQUENCE { + hostMACAddressIndex INTEGER, + hostMACAddressDescription DisplayString, + --hostMACAddress OCTET STRING} + hostMACAddress DisplayString} + + hostMACAddressIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Host MAC address index. View as a table and not as individual + entries for consistent results." + ::= { hostMACAddressEntry 1 } + + hostMACAddressDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the MAC Address entry. View as a table and not as + individual entries for consistent results." + ::= { hostMACAddressEntry 2 } + + hostMACAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Host MAC address must be a hexadecimal value between 000000000000 - FFFFFFFFFFFF. + This value must be in the form XX:XX:XX:XX:XX:XX View as a table and not as + individual entries for consistent results." + ::= { hostMACAddressEntry 3 } + + -- *********************************************************************** + -- System CPU VPD + -- *********************************************************************** + systemCPUVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemCPUVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of the system CPU VPD information. View as a + table and not as individual entries for consistent results." + ::= { vpdInformation 20 } + + systemCPUVpdEntry OBJECT-TYPE + SYNTAX SystemCPUVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System CPU VPD entry. View as a table and not as + individual entries for consistent results." + INDEX { cpuVpdIndex } + ::= { systemCPUVpdTable 1 } + + SystemCPUVpdEntry ::= SEQUENCE { + cpuVpdIndex INTEGER, + cpuVpdDescription DisplayString, + cpuVpdSpeed INTEGER, + cpuVpdIdentifier DisplayString, + cpuVpdType DisplayString, + cpuVpdFamily DisplayString, + cpuVpdCores INTEGER, + cpuVpdThreads INTEGER, + cpuVpdVoltage INTEGER, + cpuVpdDataWidth INTEGER, + cpuVpdHealthStatus DisplayString, --IMM2-only + cpuVpdCpuModel DisplayString --IMM2-only + } + + cpuVpdIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System CPU level VPD index. View as a table and not as individual + entries for consistent results." + ::= { systemCPUVpdEntry 1 } + + cpuVpdDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System CPU Description. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 2 } + + + cpuVpdSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu speed in MHz. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 3 } + + cpuVpdIdentifier OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System CPU Identifier. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 4 } + + cpuVpdType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu Type. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 5 } + + cpuVpdFamily OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu Family. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 6 } + + cpuVpdCores OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu number of cores. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 7 } + + cpuVpdThreads OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu number of threads. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 8 } + + cpuVpdVoltage OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu voltage in millivolts (1125 = 1.125 volts). + View as a table and not as individual entries for consistent + results." + ::= { systemCPUVpdEntry 9 } + + cpuVpdDataWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu data width in bits. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 10 } + + cpuVpdHealthStatus OBJECT-TYPE --IMM2-only + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu health status. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 11 } + + cpuVpdCpuModel OBJECT-TYPE --IMM2-only + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu model. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 12 } + + -- *********************************************************************** + -- System Memory VPD + -- *********************************************************************** + systemMemoryVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemMemoryVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of the system Memory VPD information. View as a + table and not as individual entries for consistent results." + ::= { vpdInformation 21 } + + systemMemoryVpdEntry OBJECT-TYPE + SYNTAX SystemMemoryVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System Memory VPD entry. View as a table and not as + individual entries for consistent results." + INDEX { memoryVpdIndex } + ::= { systemMemoryVpdTable 1 } + + SystemMemoryVpdEntry ::= SEQUENCE { + memoryVpdIndex INTEGER, + memoryVpdDescription DisplayString, + memoryVpdPartNumber DisplayString, + memoryVpdFRUSerialNumber DisplayString, + memoryVpdManufactureDate DisplayString, + memoryVpdType DisplayString, + memoryVpdSize INTEGER, + memoryHealthStatus DisplayString, -- IMM2-only + memoryConfigSpeed INTEGER, -- IMM2-only + memoryRatedSpeed INTEGER -- IMM2-only + } + + memoryVpdIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System Memory level VPD index. View as a table and not as individual + entries for consistent results." + ::= { systemMemoryVpdEntry 1 } + + memoryVpdDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Description (e.g. DIMM 1). View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 2 } + + memoryVpdPartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System Memory Part Number. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 3 } + + memoryVpdFRUSerialNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Serial Number. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 4 } + + memoryVpdManufactureDate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Manufacture Date in week/year format (e.g. 3609). + View as a table and not as individual entries for consistent + results." + ::= { systemMemoryVpdEntry 5 } + + memoryVpdType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Type (e.g. DDR III SDRAM). View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 6 } + + memoryVpdSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory size in GigaBytes. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 7 } + + memoryHealthStatus OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the memory component status." + ::= { systemMemoryVpdEntry 8 } + + memoryConfigSpeed OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System configured memory clock speed in MHz. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 9 } + + memoryRatedSpeed OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System rated memory clock speed in MB/s. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 10 } + + -- ******************************************************************************** + -- Users IMM2-only + -- ******************************************************************************** + -- + users OBJECT IDENTIFIER ::= { monitors 6 } + + -- ******************************************************************************** + -- IMM Users IMM2-only + -- ******************************************************************************** + -- + immUsers OBJECT IDENTIFIER ::= { users 1 } + + currentlyLoggedInTable OBJECT-TYPE + SYNTAX SEQUENCE OF CurrentlyLoggedInEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of IMM users currently logged in." + ::= { immUsers 1 } + + currentlyLoggedInEntry OBJECT-TYPE + SYNTAX CurrentlyLoggedInEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "IMM users currently logged in entries." + INDEX { currentlyLoggedInEntryIndex } + ::= { currentlyLoggedInTable 1 } + + CurrentlyLoggedInEntry ::= SEQUENCE { + currentlyLoggedInEntryIndex INTEGER, + currentlyLoggedInEntryUserId OCTET STRING, + currentlyLoggedInEntryAccMethod OCTET STRING + } + + currentlyLoggedInEntryIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for IMM users currently logged in." + + ::= { currentlyLoggedInEntry 1 } + + currentlyLoggedInEntryUserId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name for IMM users currently logged in." + ::= { currentlyLoggedInEntry 2 } + + currentlyLoggedInEntryAccMethod OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Access method for IMM users currently logged in." + + ::= { currentlyLoggedInEntry 3 } + + + -- ******************************************************************************** + -- LEDs IMM2-only + -- ******************************************************************************** + leds OBJECT IDENTIFIER ::= { monitors 8 } + + + identityLED OBJECT-TYPE + SYNTAX INTEGER { + off(0), + on(1), + blinking(2), + notAvailable(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates whether the front panel identity LED is on,off, + or blinking and allows user to change it." + + ::= { leds 1 } + + allLEDsTable OBJECT-TYPE + SYNTAX SEQUENCE OF AllLEDsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of LEDs detailed information." + ::= { leds 2 } + + allLEDsEntry OBJECT-TYPE + SYNTAX AllLEDsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "LEDs Details entry" + INDEX { ledIndex } + ::= { allLEDsTable 1 } + + AllLEDsEntry ::= SEQUENCE { + ledIndex INTEGER, + ledIdentifier INTEGER, + ledLabel DisplayString, + ledState INTEGER, + ledColor DisplayString + } + + ledIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LED index number. + For consistent results, view as a table and not as individual entries." + ::= { allLEDsEntry 1 } + + ledIdentifier OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unique identifier for this LED + For consistent results, view as a table and not as individual entries." + ::= { allLEDsEntry 2 } + + + ledLabel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Text label for a LED. + For consistent results, view as a table and not as individual entries." + ::= { allLEDsEntry 4 } + + ledState OBJECT-TYPE + SYNTAX INTEGER { + off(0), + on(1), + blinking(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Text description which denotes color or on/off/blink state for a LED. + For consistent results, view as a table and not as individual entries." + ::= { allLEDsEntry 5 } + + ledColor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Color of this LED. + For consistent results, view as a table and not as individual entries." + ::= { allLEDsEntry 6 } + + informationLED OBJECT-TYPE + SYNTAX INTEGER { + off(0), + on(1), + blinking(2), + notAvailable(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates whether the front panel Information LED is on,off, + or blinking and allows user to change it. The only value the user is + allowed to enter is 0 for off. User may not turn this LED on or cause + it to blink." + + ::= { leds 3 } + + +-- *********************************************************************** +-- OS Failure screen capture IMM2-only +-- *********************************************************************** + osFailureCapture OBJECT IDENTIFIER ::= { monitors 9 } + + osFailureCaptureTftpServer OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "To save the OS Failure screen if one has been captured, + set the IP address or host name of the TFTP server where + the file should be transferred. The address must be entered in a + dotted decimal IP string (e.g. 9.37.44.2), or equivalent for IPv6." + ::= { osFailureCapture 1 } + + osFailureCaptureFileName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name of the saved capture file on the target system." + ::= { osFailureCapture 2 } + + osFailureCaptureSaveStart OBJECT-TYPE + SYNTAX INTEGER { + execute(1), + execute-nowait(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Start saving the configuration file to the specified target file + and system. The file will exist if the OS Hang or OS Loader + watchdog is enabled and been tripped. + Using execute will cause the SNMP client to wait for the save + operation to complete. + Using execute-nowait will not cause the SNMP client to wait for + the save to complete. Instead it will save the configuration in + the background. + + Note 1: Both osFailureCaptureTftpServer and + osFailureCaptureFileName must be set. + Note 2: Depending on the target, it might take up to several + seconds for the save operation to complete. + Note 3: Use osFailureCaptureStatus to confirm the status of + the last operation. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { osFailureCapture 3 } + + + osFailureCaptureSaveStatus OBJECT-TYPE + SYNTAX INTEGER { + success(0), + failed(1), + nocapture(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the last save operation which + was initiated through SNMP method. Returns nocapture(2) + if there is no OS Failure capture screen to save." + ::= { osFailureCapture 4 } + + -- ******************************************************************************** + -- Power Management + -- ******************************************************************************** + fuelGauge OBJECT IDENTIFIER ::= { monitors 10 } + + -- ******************************************************************************** + -- Fuel Gauge + -- ******************************************************************************** + fuelGaugeInformation OBJECT IDENTIFIER ::= { fuelGauge 1 } + + + fuelGaugePowerCappingPolicySetting OBJECT-TYPE + SYNTAX INTEGER { + noPowerLimit(0), + staticPowerLimit(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Power Capping Policy. + + No Power Limit - The maximum power limit will be determined by the active Power Redundancy policy. + + Static Power Limit - Sets the overall system power limit. In a situation where powering on a component + would cause the limit to be exceeded, the component would not be permitted to power on." + + ::= { fuelGaugeInformation 1 } + + fuelGaugeStaticPowerPcapSoftMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays power capping soft minimum value." + ::= { fuelGaugeInformation 2 } + + fuelGaugeStaticPowerPcapMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays power capping minimum value." + ::= { fuelGaugeInformation 3 } + + fuelGaugeStaticPowerPcapCurrentSetting OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field is used to display or set the current power capping value." + ::= { fuelGaugeInformation 4 } + + fuelGaugeStaticPowerPcapMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays power capping maximum value." + ::= { fuelGaugeInformation 5 } + + fuelGaugeStaticPowerPcapMode OBJECT-TYPE + SYNTAX INTEGER { + dc(0), + ac(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field is used to display or set the all Power Cap settings to AC or DC." + ::= { fuelGaugeInformation 6 } + + fuelGaugeSystemMaxPower OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays the system maximum power available value." + ::= { fuelGaugeInformation 7 } + + fuelGaugePowerRemaining OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays power remaining value." + ::= { fuelGaugeInformation 8 } + + fuelGaugeTotalPowerAvaialble OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays the calculated total remaining power available value." + ::= { fuelGaugeInformation 9 } + + fuelGaugeTotalPowerInUse OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays total power in use value." + ::= { fuelGaugeInformation 10 } + + fuelGaugeTotalThermalOutput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays the total thermal output value calculated from the AC power in use." + ::= { fuelGaugeInformation 11 } + + fuelGaugePowerConsumptionCpu OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays the power consumption of the processors." + ::= { fuelGaugeInformation 12 } + + fuelGaugePowerConsumptionMemory OBJECT-TYPE + + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays the power consumption of the memory." + ::= { fuelGaugeInformation 13 } + + fuelGaugePowerConsumptionOther OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field displays the power consumption of other entities than processors and memory." + ::= { fuelGaugeInformation 15 } + + + -- ******************************************************************************** + -- Power Policy Table + -- ******************************************************************************** + powerPolicyInformation OBJECT IDENTIFIER ::= { fuelGauge 2 } + + powerPolicyTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerPolicyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Power Policy information for all power domains. Reading this + table information about the available power policies that can be + configured and which is currently selected. The powerPolicyActivate + object can also be SET to select which policy should be active." + ::= { powerPolicyInformation 1 } + + powerPolicyEntry OBJECT-TYPE + SYNTAX PowerPolicyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Power Policy Entry" + INDEX { powerPolicyIndex } + ::= { powerPolicyTable 1 } + + PowerPolicyEntry ::= SEQUENCE { + powerPolicyIndex INTEGER, + powerPolicyName OCTET STRING, + powerPolicyPwrSupplyFailureLimit INTEGER, + powerPolicyMaxPowerLimit INTEGER, + powerPolicyEstimatedUtilization INTEGER, + powerPolicyActivate INTEGER + } + + powerPolicyIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unique idenitifier of a row in the powerPolicyTable." + ::= { powerPolicyEntry 1 } + + powerPolicyName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The short name of the power policy. The following are the possible + names and their detailed description: + + Power Module Redundancy + Intended for a single AC power source into the chassis + where each Power Module is on its own dedicated circuit. + Total allowed power draw is limited to one less than the + number of Power Modules when more than one Power Module is + present. One Power Module can fail without affecting blade + operation. Multiple Power Module failures can cause + the chassis to power off. Note that some blades may not be + allowed to power on if doing so would exceed the policy power + limit. + + Power Module Redundancy with Blade Throttling Allowed + Very similar to the Power Module Redundancy policy. This + policy allows you to draw more total power; however, capable + blades may be allowed to throttle down if one Power Module fails. + + Basic Power Management + Total allowed power is higher than other policies and is limited only + by the total power capacity of all the Power Modules up to the maximum + of chassis power rating. This is the least conservative approach, since + it does not provide any protection for AC power source or Power Module + failure. If any single power supply fails, blade and/or chassis + operation may be affected." + ::= { powerPolicyEntry 2 } + + powerPolicyPwrSupplyFailureLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum number of power supplies that can fail in a chassis + while still providing redundancy." + ::= { powerPolicyEntry 3 } + + powerPolicyMaxPowerLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum power available (in watts), based on the number of power modules and + the Power Management Policy setting." + ::= { powerPolicyEntry 4 } + + powerPolicyEstimatedUtilization OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The estimated utilization (as a percentage) based on current power usage." + ::= { powerPolicyEntry 5 } + + powerPolicyActivate OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When read, this object provides the status of this power policy. If the + value is enabled(1), it means this is the active power policy for the + associated domain. When set to a value of enabled(1), the power policy + will be made the active one for the associated domain. A set of disabled(0) + is not allowed. + + The SET may fail when the user goes from a less restrictive policy + to a more restrictive policy, e.g. no power management to redundant power + modules. + + This happens because the IMM might have allocated more power for components + in the less restrictive policy. Then if a user wants to go to a more restrictive + policy, the power available may be lower than what was already allocated. + + The SET should always succeed if a user goes from a more restrictive to + a less restrictive policy." + ::= { powerPolicyEntry 6 } + + -- ******************************************************************************** + -- Power Domain Power Trending + -- ******************************************************************************** + powerPowerTrending OBJECT IDENTIFIER ::= { fuelGauge 3 } + + powerTrendingPeriod OBJECT-TYPE + SYNTAX INTEGER { + lastHour(0), + last6Hours(1), + last12Hours(2), + last24Hours(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specify time period for power domain 1 power trending information + table view. + + NOTE: This time period should be configured before displaying the + following Power Trending Information table for Power Domain." + ::= { powerPowerTrending 1 } + + powerTrendingPowerType OBJECT-TYPE + SYNTAX INTEGER { + dc(0), + ac(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field is used to display or set the power type displayed in the Power Trending Table." + ::= { powerPowerTrending 2 } + + + -- ******************************************************************************** + -- Power Domain Power Trending Table + -- ******************************************************************************** + powerTrendingSampleTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerTrendingSampleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Power Domain 1 Power Trending Information." + ::= { powerPowerTrending 3 } + + powerTrendingSampleEntry OBJECT-TYPE + SYNTAX PowerTrendingSampleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Power Domain 1 Power Trending Sample entry." + INDEX { powerTrendingSampleIndex } + ::= { powerTrendingSampleTable 1 } + + PowerTrendingSampleEntry ::= SEQUENCE { + powerTrendingSampleIndex INTEGER, + powerTrendingSampleTimeStamp OCTET STRING, + powerTrendingSampleAve INTEGER, + powerTrendingSampleMin INTEGER, + powerTrendingSampleMax INTEGER + } + + powerTrendingSampleIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Power Trending Sample Table Index." + ::= { powerTrendingSampleEntry 1 } + + powerTrendingSampleTimeStamp OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Power Trending Sample Table Timestamp." + ::= { powerTrendingSampleEntry 2 } + + powerTrendingSampleAve OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Power Trending Table Average Power." + ::= { powerTrendingSampleEntry 3 } + + powerTrendingSampleMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Power Trending Table Minimum Power." + ::= { powerTrendingSampleEntry 4 } + + powerTrendingSampleMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Power Trending Table Maximum Power." + ::= { powerTrendingSampleEntry 5 } + + -- *********************************************************************** + -- Power Module IMM2-only + -- *********************************************************************** + powerModule OBJECT IDENTIFIER ::= { monitors 11 } + + powerNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the power module table." + ::= { powerModule 1 } + + powerTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains power inventory information." + ::= { powerModule 2 } + + powerEntry OBJECT-TYPE + SYNTAX PowerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a power module inventory channel." + INDEX { powerIndex } + ::= { powerTable 1 } + + PowerEntry ::= + SEQUENCE { + powerIndex INTEGER (0..100), + powerFruName DisplayString, + powerPartNumber DisplayString, + powerFRUNumber DisplayString, + powerFRUSerialNumber DisplayString, + powerHealthStatus DisplayString + } + + powerIndex OBJECT-TYPE + SYNTAX INTEGER (0..100) + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular power module inventory channel." + ::= { powerEntry 1 } + + powerFruName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "power module FRU name." + ::= { powerEntry 2 } + + powerPartNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "power module Part Number. View as a table and not as individual entries for consistent results." + ::= { powerEntry 3 } + + powerFRUNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "power module FRU Number. View as a table and not as individual entries for consistent results." + ::= { powerEntry 4 } + + powerFRUSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "power module Serial Number. View as a table and not as individual entries for consistent results." + ::= { powerEntry 5 } + + powerHealthStatus OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the power module status." + ::= { powerEntry 6 } + + -- *********************************************************************** + -- Disk IMM2-only + -- *********************************************************************** + disks OBJECT IDENTIFIER ::= { monitors 12 } + + diskNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the disk module table." + ::= { disks 1 } + + diskTable OBJECT-TYPE + SYNTAX SEQUENCE OF DiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains disk inventory information." + ::= { disks 2 } + + diskEntry OBJECT-TYPE + SYNTAX DiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a disk module inventory channel." + INDEX { diskIndex } + ::= { diskTable 1 } + + DiskEntry ::= + SEQUENCE { + diskIndex INTEGER (0..100), + diskFruName DisplayString, + diskHealthStatus DisplayString + } + + diskIndex OBJECT-TYPE + SYNTAX INTEGER (0..100) + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular + disk module inventory channel." + ::= { diskEntry 1 } + + diskFruName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "disk module FRU name." + ::= { diskEntry 2 } + + diskHealthStatus OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the disk module status." + ::= { diskEntry 3 } + + -- ******************************************************************************** + -- Local Storage IMM2-only + -- ******************************************************************************** + + localStorage OBJECT IDENTIFIER ::= { monitors 13 } + + -- ******************************************************************************** + -- RAID Group IMM2-only. Only the platform supports the OOB RAID function and + -- RAID cards, this table can be queried. + -- ******************************************************************************** + + raid OBJECT IDENTIFIER ::= { localStorage 1 } + + -- ******************************************************************************** + -- Physical Resource: The properties of RAID Controller IMM2-only + -- ******************************************************************************** + + raidOOBCapable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION "If raidOOBCapable is disabled, all the RAID information is not available." + ::= { raid 1 } + + raidControllerTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidControllerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Local Storage RAID Controller information." + ::= { raid 2 } + + raidControllerEntry OBJECT-TYPE + SYNTAX RaidControllerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Controller Entry." + INDEX { raidCtrlIndex } + ::= { raidControllerTable 1 } + + RaidControllerEntry ::= SEQUENCE { + raidCtrlIndex INTEGER, + raidCtrlName DisplayString, + raidCtrlVPDProdName DisplayString, + raidCtrlFWPkgVersion DisplayString, + raidCtrlBatBCK INTEGER, + raidCtrlVPDManufacture DisplayString, + raidCtrlVPDUUID DisplayString, + raidCtrlVPDMachineType DisplayString, + raidCtrlVPDModel DisplayString, + raidCtrlVPDSerialNo DisplayString, + raidCtrlVPDFRUNo DisplayString, + raidCtrlVPDPartNo DisplayString, + raidCtrlCacheMdlStatus DisplayString, + raidCtrlCacheMdlMemSize DisplayString, + raidCtrlCacheMdlSerialNo DisplayString, + raidCtrlPCISlotNo INTEGER, + raidCtrlPCIBusNo INTEGER, + raidCtrlPCIDevNo INTEGER, + raidCtrlPCIFuncNo INTEGER, + raidCtrlPCIDevID DisplayString, + raidCtrlPCISubDevID DisplayString, + raidCtrlBatBCKProdName DisplayString, + raidCtrlBatBCKManufacture DisplayString, + raidCtrlBatBCKStatus DisplayString, + raidCtrlBatBCKType DisplayString, + raidCtrlBatBCKChem DisplayString, + raidCtrlBatBCKSerialNo DisplayString, + raidCtrlBatBCKChgCap DisplayString, + raidCtrlBatBCKDgnChgCap DisplayString, + raidCtrlBatBCKCrtTemp DisplayString, + raidCtrlBatBCKFirmware DisplayString, + raidCtrlBatBCKDgnVoltage DisplayString, + raidCtrlBatBCKVoltage DisplayString, + raidCtrlBatCurrent DisplayString, + raidCtrlFWNames DisplayString, + raidCtrlPortDetails DisplayString, + raidCtrlStoragepools DisplayString, + raidCtrlDrives DisplayString + } + + raidCtrlIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular RAID controller." + ::= { raidControllerEntry 1 } + + raidCtrlName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to offer a name of one RAID controller." + ::= { raidControllerEntry 2 } + + raidCtrlVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name of a particular RAID controller." + ::= { raidControllerEntry 3 } + + raidCtrlFWPkgVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Firmware Package Version of a particular RAID controller." + ::= { raidControllerEntry 4 } + + raidCtrlBatBCK OBJECT-TYPE + SYNTAX INTEGER { + uninstalled(0), + installed(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION "Whether Battery Backup of a particular RAID controller is installed." + ::= { raidControllerEntry 5 } + + + raidCtrlVPDManufacture OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacture of a particular RAID controller." + ::= { raidControllerEntry 6 } + + raidCtrlVPDUUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Device ID (UUID) of a particular RAID controller." + ::= { raidControllerEntry 7 } + + raidCtrlVPDMachineType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Model Type/Model of a particular RAID controller." + ::= { raidControllerEntry 8 } + + raidCtrlVPDModel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Model Type/Model of a particular RAID controller." + ::= { raidControllerEntry 9 } + + raidCtrlVPDSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Serial Number of a particular RAID controller." + ::= { raidControllerEntry 10 } + + raidCtrlVPDFRUNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FRU Number of a particular RAID controller." + ::= { raidControllerEntry 11 } + + raidCtrlVPDPartNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Part Number of a particular RAID controller." + ::= { raidControllerEntry 12 } + + raidCtrlCacheMdlStatus OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Cache Model Status of a particular RAID controller." + ::= { raidControllerEntry 13 } + + raidCtrlCacheMdlMemSize OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Cache Model Memory Size of a particular RAID controller." + ::= { raidControllerEntry 14 } + + raidCtrlCacheMdlSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Cache Model Serial Number of a particular RAID controller." + ::= { raidControllerEntry 15 } + + raidCtrlPCISlotNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Slot Number of a particular RAID controller." + ::= { raidControllerEntry 16 } + + raidCtrlPCIBusNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Bus Number of a particular RAID controller." + ::= { raidControllerEntry 17 } + + raidCtrlPCIDevNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device Number of a particular RAID controller." + ::= { raidControllerEntry 18 } + + raidCtrlPCIFuncNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Function Number of a particular RAID controller." + ::= { raidControllerEntry 19 } + + raidCtrlPCIDevID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device ID of a particular RAID controller." + ::= { raidControllerEntry 20 } + + raidCtrlPCISubDevID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Subsystem Device ID of a particular RAID controller." + ::= { raidControllerEntry 21 } + + raidCtrlBatBCKProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 22 } + + raidCtrlBatBCKManufacture OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacture of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 23 } + + raidCtrlBatBCKStatus OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Status of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 24 } + + raidCtrlBatBCKType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Battery Type of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 25 } + + raidCtrlBatBCKChem OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Chemistry of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 26 } + + raidCtrlBatBCKSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Serial Number of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 27 } + + raidCtrlBatBCKChgCap OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Charge Capacity of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 28 } + + raidCtrlBatBCKFirmware OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Firmware Info of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 29 } + + raidCtrlBatBCKDgnVoltage OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Designed Voltage of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 30 } + + raidCtrlBatBCKVoltage OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Voltage of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 31 } + + raidCtrlBatCurrent OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Current of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 32 } + + raidCtrlBatBCKDgnChgCap OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Design Charge Capacity of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 33 } + + raidCtrlBatBCKCrtTemp OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Current degree Celsius temperature of Battery Backup of a particular RAID controller." + ::= { raidControllerEntry 34 } + + raidCtrlFWNames OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "All the Firmware Names of a particular RAID controller." + ::= { raidControllerEntry 35 } + + raidCtrlPortDetails OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "All the Port Details of a particular RAID controller, including Port Address and Port Controller Type." + ::= { raidControllerEntry 36 } + + raidCtrlStoragepools OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The storage pools list of a particular RAID controller." + ::= { raidControllerEntry 37 } + + raidCtrlDrives OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Physical drives list of a particular RAID controller." + ::= { raidControllerEntry 38 } + + -- ******************************************************************************** + -- Physical Resource: The properties of RAID Driver IMM2-only + -- ******************************************************************************** + + raidDriveTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidDriveEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Logic Storage RAID Drive information." + ::= { raid 3 } + + raidDriveEntry OBJECT-TYPE + SYNTAX RaidDriveEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Drive Entry." + INDEX { raidDriveIndex } + ::= { raidDriveTable 1 } + + RaidDriveEntry ::= SEQUENCE { + raidDriveIndex INTEGER, + raidDriveName DisplayString, + raidDriveVPDProdName DisplayString, + raidDriveState DisplayString, + raidDriveSlotNo INTEGER, + raidDriveDeviceID DisplayString, + raidDriveDiskType DisplayString, + raidDriveMediaType DisplayString, + raidDriveSpeed DisplayString, + raidDriveCurTemp DisplayString, + raidDriveHealthStataus DisplayString, + raidDriveCapacity DisplayString, + raidDriveVPDManufacture DisplayString, + raidDriveEnclosureID DisplayString, + raidDriveVPDMachineType DisplayString, + raidDriveVPDModel DisplayString, + raidDriveVPDSerialNo DisplayString, + raidDriveVPDFRUNo DisplayString, + raidDriveVPDPartNo DisplayString, + raidDriveFWNames DisplayString, + raidDriveRotationRate DisplayString, + raidDriveMediaErrCnt Gauge, + raidDriveOtherErrCnt Gauge, + raidDrivePredFailCnt Gauge, + raidDriveRemainingLife DisplayString + } + + raidDriveIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular RAID drive." + ::= { raidDriveEntry 1 } + + raidDriveName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "A particular drive name." + ::= { raidDriveEntry 2 } + + raidDriveVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name of a particular RAID drive." + ::= { raidDriveEntry 3 } + + raidDriveState OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The State of a particular RAID drive." + ::= { raidDriveEntry 4 } + + raidDriveSlotNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Slot No. of a particular RAID drive." + ::= { raidDriveEntry 5 } + + raidDriveDeviceID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Device ID of a particular RAID drive." + ::= { raidDriveEntry 6 } + + raidDriveDiskType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Disk Type of a particular RAID drive." + ::= { raidDriveEntry 7 } + + raidDriveMediaType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Media Type of a particular RAID drive." + ::= { raidDriveEntry 8 } + + raidDriveSpeed OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Speed of a particular RAID drive." + ::= { raidDriveEntry 9 } + + raidDriveCurTemp OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Current degree Celsius temperature of a particular RAID drive." + ::= { raidDriveEntry 10 } + + raidDriveHealthStataus OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Health Status of a particular RAID drive." + ::= { raidDriveEntry 11 } + + raidDriveCapacity OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Capacity of a particular RAID drive." + ::= { raidDriveEntry 12 } + + raidDriveVPDManufacture OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacture of a particular RAID drive." + ::= { raidDriveEntry 13 } + + raidDriveEnclosureID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Enclosure ID of a particular RAID drive." + ::= { raidDriveEntry 14 } + + raidDriveVPDMachineType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Machine type of a particular RAID drive." + ::= { raidDriveEntry 15 } + + raidDriveVPDModel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Model of a particular RAID drive." + ::= { raidDriveEntry 16 } + + raidDriveVPDSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Serial No. of a particular RAID drive." + ::= { raidDriveEntry 17 } + + raidDriveVPDFRUNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FRU No. of a particular RAID drive." + ::= { raidDriveEntry 18 } + + raidDriveVPDPartNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Part No. of a particular RAID drive." + ::= { raidDriveEntry 19 } + + raidDriveFWNames OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "All the Firmware Names of a particular RAID drive." + ::= { raidDriveEntry 20 } + + raidDriveRotationRate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Rotation Rate of a particular RAID drive." + ::= { raidDriveEntry 21 } + + raidDriveMediaErrCnt OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Media Error Count of a particular RAID drive." + ::= { raidDriveEntry 22 } + + raidDriveOtherErrCnt OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Other Error Count of a particular RAID drive." + ::= { raidDriveEntry 23 } + + raidDrivePredFailCnt OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Predication Fail Count of a particular RAID drive." + ::= { raidDriveEntry 24 } + + raidDriveRemainingLife OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Remaining life of a particular RAID drive. It is available only for SSD Drive." + ::= { raidDriveEntry 25 } + + -- ************************************************************************************* + -- Physical Resource: The properties of RAID Controller Firmwares information IMM2-only + -- ************************************************************************************* + + raidControllerFirmwareTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidControllerFirmwareEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Logic Storage RAID Controller Firmware information." + ::= { raid 4 } + + raidControllerFirmwareEntry OBJECT-TYPE + SYNTAX RaidControllerFirmwareEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Firmware Entry." + INDEX { raidControllerFirmwareIndex } + ::= { raidControllerFirmwareTable 1 } + + RaidControllerFirmwareEntry ::= SEQUENCE { + raidControllerFirmwareIndex INTEGER, + raidControllerFirmwareName DisplayString, + raidControllerFirmwareCtrlName DisplayString, + raidControllerFirmwareDescription DisplayString, + raidControllerFirmwareManufacture DisplayString, + raidControllerFirmwareVersion DisplayString, + raidControllerFirmwareReleaseDate DisplayString + } + + raidControllerFirmwareIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular RAID Controller firmware." + ::= { raidControllerFirmwareEntry 1 } + + raidControllerFirmwareName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Name of a particular RAID Controller firmware." + ::= { raidControllerFirmwareEntry 2 } + + raidControllerFirmwareCtrlName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The controller name of the firmwares." + ::= { raidControllerFirmwareEntry 3 } + + raidControllerFirmwareDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Description of a particular RAID Controller firmware." + ::= { raidControllerFirmwareEntry 4 } + + raidControllerFirmwareManufacture OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacture of a particular RAID Controller firmware." + ::= { raidControllerFirmwareEntry 5 } + + raidControllerFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Version of a particular RAID Controller firmware." + ::= { raidControllerFirmwareEntry 6 } + + raidControllerFirmwareReleaseDate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Release Date of a particular RAID Controller firmware." + ::= { raidControllerFirmwareEntry 7 } + + + -- ************************************************************************************* + -- Physical Resource: The properties of RAID Drive Firmwares information IMM2-only + -- ******************************************************************************** + + raidDriveFirmwareTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidDriveFirmwareEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Logic Storage RAID Drive Firmware information." + ::= { raid 5 } + + raidDriveFirmwareEntry OBJECT-TYPE + SYNTAX RaidDriveFirmwareEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Drive Firmware Entry." + INDEX { raidDriveFirmwareIndex } + ::= { raidDriveFirmwareTable 1 } + + RaidDriveFirmwareEntry ::= SEQUENCE { + raidDriveFirmwareIndex INTEGER, + raidDriveFirmwareName DisplayString, + raidDriveFirmwareDriveName DisplayString, + raidDriveFirmwareDescription DisplayString, + raidDriveFirmwareManufacture DisplayString, + raidDriveFirmwareVersion DisplayString, + raidDriveFirmwareReleaseDate DisplayString + } + + raidDriveFirmwareIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular RAID Drive firmware." + ::= { raidDriveFirmwareEntry 1 } + + raidDriveFirmwareName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Name of a particular RAID Drive firmware." + ::= { raidDriveFirmwareEntry 2 } + + raidDriveFirmwareDriveName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The drive name of the firmwares." + ::= { raidDriveFirmwareEntry 3 } + + raidDriveFirmwareDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Description of a particular RAID Drive firmware." + ::= { raidDriveFirmwareEntry 4 } + + raidDriveFirmwareManufacture OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacture of a particular RAID Drive firmware." + ::= { raidDriveFirmwareEntry 5 } + + raidDriveFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Version of a particular RAID Drive firmware." + ::= { raidDriveFirmwareEntry 6 } + + raidDriveFirmwareReleaseDate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Release Date of a particular RAID Drive firmware." + ::= { raidDriveFirmwareEntry 7 } + + + -- ******************************************************************************** + -- Physical Resource: The properties of RAID Storagepool information IMM2-only + -- ******************************************************************************** + + raidStoragepoolTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidStoragepoolEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Logic Storage RAID Storagepool information." + ::= { raid 6 } + + raidStoragepoolEntry OBJECT-TYPE + SYNTAX RaidStoragepoolEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Storagepool Entry." + INDEX { raidStoragepoolIndex } + ::= { raidStoragepoolTable 1 } + + RaidStoragepoolEntry ::= SEQUENCE { + raidStoragepoolIndex INTEGER, + raidStoragepoolName DisplayString, + raidStoragepoolControllerName DisplayString, + raidStoragepoolState DisplayString, + raidStoragepoolCapacity DisplayString, + raidStoragepoolVols DisplayString, + raidStoragepoolDrives DisplayString + } + + raidStoragepoolIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular RAID storagepool." + ::= { raidStoragepoolEntry 1 } + + raidStoragepoolName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The name of a particular RAID storagepool." + ::= { raidStoragepoolEntry 2 } + + raidStoragepoolControllerName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The controller name of the storagepool." + ::= { raidStoragepoolEntry 3 } + + raidStoragepoolState OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The RAID State of a particular RAID storagepool." + ::= { raidStoragepoolEntry 4 } + + raidStoragepoolCapacity OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Capacity of a particular RAID storagepool, including total capacity and free capacity." + ::= { raidStoragepoolEntry 5 } + + raidStoragepoolVols OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The volumes list of a particular RAID storagepool." + ::= { raidStoragepoolEntry 6 } + + raidStoragepoolDrives OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The physical drives list of a particular RAID storagepool." + ::= { raidStoragepoolEntry 7 } + + -- ******************************************************************************** + -- Physical Resource: The properties of RAID Volume information IMM2-only + -- ******************************************************************************** + + raidVolumeTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidVolumeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Logic Storage RAID Volume information." + ::= { raid 7 } + + raidVolumeEntry OBJECT-TYPE + SYNTAX RaidVolumeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID Volume Entry." + INDEX { raidVolumeIndex } + ::= { raidVolumeTable 1 } + + RaidVolumeEntry ::= SEQUENCE { + raidVolumeIndex INTEGER, + raidVolumeName DisplayString, + raidVolumeControllerName DisplayString, + raidVolumeStatus DisplayString, + raidVolumeCapacity DisplayString, + raidVolumeStripSize DisplayString, + raidVolumeBootable DisplayString + } + + raidVolumeIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular RAID volume." + ::= { raidVolumeEntry 1 } + + raidVolumeName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Name of a particular RAID volume." + ::= { raidVolumeEntry 2 } + + raidVolumeControllerName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The controller name of the volume." + ::= { raidVolumeEntry 3 } + + raidVolumeStatus OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Status of a particular RAID volume." + ::= { raidVolumeEntry 4 } + + raidVolumeCapacity OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Capacity of a particular RAID volume." + ::= { raidVolumeEntry 5 } + + raidVolumeStripSize OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The strip size of the RAID volume." + ::= { raidVolumeEntry 6 } + + raidVolumeBootable OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "Whether the RAID volume is bootable." + ::= { raidVolumeEntry 7 } + + -- *********************************************************************** + -- FlashDIMM IMM2-only + -- *********************************************************************** + + flashdimm OBJECT IDENTIFIER ::= { localStorage 2 } + + fdNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the disk flashdimm table." + ::= { flashdimm 1 } + + fdTable OBJECT-TYPE + SYNTAX SEQUENCE OF FdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains flashdimm inventory information." + ::= { flashdimm 2 } + + fdEntry OBJECT-TYPE + SYNTAX FdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a flashdimm module inventory channel." + INDEX { fdIndex } + ::= { fdTable 1 } + + FdEntry ::= + SEQUENCE { + fdIndex INTEGER (1..100), + fdFruName DisplayString, + fdHealthStatus DisplayString, + fdOpState DisplayString, + fdCapacity DisplayString, + fdModelType DisplayString, + fdPartNum DisplayString, + fdFruSerialNum DisplayString, + fdManufID DisplayString, + fdTemp DisplayString, + fdWarrWrites DisplayString, + fdWriteEndurance DisplayString, + fdFwLevel DisplayString + } + + fdIndex OBJECT-TYPE + SYNTAX INTEGER (1..100) + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular + flashdimm module inventory channel." + ::= { fdEntry 1 } + + fdFruName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "flashdimm module FRU name." + ::= { fdEntry 2 } + + fdHealthStatus OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module health status." + ::= { fdEntry 3 } + + fdOpState OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module operation status." + ::= { fdEntry 4 } + + fdCapacity OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module capacity." + ::= { fdEntry 5 } + + fdModelType OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module type." + ::= { fdEntry 6 } + + fdPartNum OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module part number." + ::= { fdEntry 7 } + + fdFruSerialNum OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module serial number." + ::= { fdEntry 8 } + + fdManufID OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module manufacture id." + ::= { fdEntry 9 } + + fdTemp OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module temperature." + ::= { fdEntry 10 } + + fdWarrWrites OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module warranty writes." + ::= { fdEntry 11 } + + fdWriteEndurance OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module write endurance." + ::= { fdEntry 12 } + + fdFwLevel OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the flashdimm module status." + ::= { fdEntry 13 } + + -- ******************************************************************************** + -- Adapter IMM2-only + -- ******************************************************************************** + + adapters OBJECT IDENTIFIER ::= { monitors 14 } + + + -- ************************************************************************************* + -- Physical Resource: The properties of Adapters generic information IMM2-only + -- ******************************************************************************** + + adapterOOBCapable OBJECT-TYPE + SYNTAX INTEGER{ + disable(0), + enable(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION "If adapterOOBCapable is disabled, all the adapter information is not available." + ::= { adapters 1 } + + adapterGenericTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdapterGenericEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of all adapters generic information" + ::= { adapters 2 } + + adapterGenericEntry OBJECT-TYPE + SYNTAX AdapterGenericEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Adapters generic information entry." + INDEX { adapterGenericIndex } + ::= { adapterGenericTable 1 } + + AdapterGenericEntry ::= SEQUENCE { + adapterGenericIndex INTEGER, + adapterGenericVPDProdName DisplayString, + adapterGenericSlotNo INTEGER, + adapterGenericLocation DisplayString, + adapterGenericCardInterface DisplayString + } + + adapterGenericIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular PCI adapter." + ::= { adapterGenericEntry 1 } + + adapterGenericVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name of a particular PCI adapter. And if the Product Name contains PFA, PFA is in HEX." + ::= { adapterGenericEntry 2 } + + adapterGenericSlotNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This Slot No. of a particular PCI adapter" + ::= { adapterGenericEntry 3 } + + adapterGenericLocation OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Location of a particular PCI adapter." + ::= { adapterGenericEntry 4 } + + adapterGenericCardInterface OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Card Interface of a particular PCI adapter." + ::= { adapterGenericEntry 5 } + + -- ************************************************************************************* + -- Firmware Information: The properties of Network Function information IMM2-only + -- ******************************************************************************** + + adapterNetworkFunctionTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdapterNetworkFunctionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Network Function information." + ::= { adapters 3 } + + adapterNetworkFunctionEntry OBJECT-TYPE + SYNTAX AdapterNetworkFunctionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Network function information entry." + INDEX { adapterNetworkFunctionIndex } + ::= { adapterNetworkFunctionTable 1 } + + AdapterNetworkFunctionEntry ::= SEQUENCE { + adapterNetworkFunctionIndex INTEGER, + adapterNetworkFunctionNetworkVPDProdName DisplayString, + adapterNetworkFunctionAdapterVPDProdName DisplayString, + adapterNetworkFunctionNetworkVPDManufacturer DisplayString, + adapterNetworkFunctionNetworkVPDUUID DisplayString, + adapterNetworkFunctionNetworkVPDModel DisplayString, + adapterNetworkFunctionNetworkVPDSerialNo DisplayString, + adapterNetworkFunctionNetworkVPDFRUNo DisplayString, + adapterNetworkFunctionNetworkVPDPartNo DisplayString, + adapterNetworkFunctionFoDUID DisplayString, + adapterNetworkFunctionSupportHotPlug INTEGER, + adapterNetworkFunctionPhysicalPortNumber INTEGER, + adapterNetworkFunctionMaxPortNumber INTEGER, + adapterNetworkFunctionPortNumber INTEGER, + adapterNetworkFunctionMaxDataWidth INTEGER, + adapterNetworkFunctionPackageType DisplayString, + adapterNetworkFunctionPCIBusNo INTEGER, + adapterNetworkFunctionPCIDevNo INTEGER, + adapterNetworkFunctionPCIFuncNo INTEGER, + adapterNetworkFunctionPCIVendorId DisplayString, + adapterNetworkFunctionPCIDevId DisplayString, + adapterNetworkFunctionPCIDevType DisplayString, + adapterNetworkFunctionPCIRevId DisplayString, + adapterNetworkFunctionPCISubVendorId DisplayString, + adapterNetworkFunctionPCISubDevId DisplayString, + adapterNetworkFunctionPCISlotDesignation DisplayString + } + + adapterNetworkFunctionIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular network function." + ::= { adapterNetworkFunctionEntry 1 } + + adapterNetworkFunctionNetworkVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name and PFA of a particular network function and PFA is in HEX." + ::= { adapterNetworkFunctionEntry 2 } + + adapterNetworkFunctionAdapterVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name of a particular adapter providing this function. And if the Product Name contains PFA, PFA is in HEX." + ::= { adapterNetworkFunctionEntry 3 } + + adapterNetworkFunctionNetworkVPDManufacturer OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacturer of a particular network function." + ::= { adapterNetworkFunctionEntry 4 } + + adapterNetworkFunctionNetworkVPDUUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The UUID of a particular network function." + ::= { adapterNetworkFunctionEntry 5 } + + adapterNetworkFunctionNetworkVPDModel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Model of a particular network function." + ::= { adapterNetworkFunctionEntry 6 } + + adapterNetworkFunctionNetworkVPDSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Serial No. of a particular network function." + ::= { adapterNetworkFunctionEntry 7 } + + adapterNetworkFunctionNetworkVPDFRUNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FRU No. of a particular network function." + ::= { adapterNetworkFunctionEntry 8 } + + adapterNetworkFunctionNetworkVPDPartNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Part No. of a particular network function." + ::= { adapterNetworkFunctionEntry 9 } + + adapterNetworkFunctionFoDUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FoD UID of a particular network function." + ::= { adapterNetworkFunctionEntry 10 } + + adapterNetworkFunctionSupportHotPlug OBJECT-TYPE + SYNTAX INTEGER { + false(0), + true(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION "Indicates whether the network function supports hot plug." + ::= { adapterNetworkFunctionEntry 11 } + + adapterNetworkFunctionPhysicalPortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Physical Port Number of a particular network function." + ::= { adapterNetworkFunctionEntry 12 } + + adapterNetworkFunctionMaxPortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Max Port Number of a particular network function." + ::= { adapterNetworkFunctionEntry 13 } + + adapterNetworkFunctionPortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Port Number of a particular network function." + ::= { adapterNetworkFunctionEntry 14 } + + adapterNetworkFunctionMaxDataWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Maximum Data Width in Gbps of a particular network funtion." + ::= { adapterNetworkFunctionEntry 15 } + + adapterNetworkFunctionPackageType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Package Type of a particular network function." + ::= { adapterNetworkFunctionEntry 16 } + + adapterNetworkFunctionPCIBusNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Bus No. of a particular network function." + ::= { adapterNetworkFunctionEntry 17 } + + adapterNetworkFunctionPCIDevNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device No. of a particular network function." + ::= { adapterNetworkFunctionEntry 18 } + + adapterNetworkFunctionPCIFuncNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Function No. of a particular network function." + ::= { adapterNetworkFunctionEntry 19 } + + adapterNetworkFunctionPCIVendorId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Vendor ID of a particular network function." + ::= { adapterNetworkFunctionEntry 20 } + + adapterNetworkFunctionPCIDevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device ID of a particular network function." + ::= { adapterNetworkFunctionEntry 21 } + + adapterNetworkFunctionPCIDevType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device Type of a particular network function." + ::= { adapterNetworkFunctionEntry 22 } + + adapterNetworkFunctionPCIRevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Revision ID of a particular network function." + ::= { adapterNetworkFunctionEntry 23 } + + adapterNetworkFunctionPCISubVendorId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Subsystem Vendor ID of a particular network function." + ::= { adapterNetworkFunctionEntry 24 } + + adapterNetworkFunctionPCISubDevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Subsystem Device ID of a particular network function." + ::= { adapterNetworkFunctionEntry 25 } + + adapterNetworkFunctionPCISlotDesignation OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Slot Designation of a particular network function." + ::= { adapterNetworkFunctionEntry 26 } + + -- ************************************************************************************* + -- Physical Resource: The Port information of Network Function IMM2-only + -- ******************************************************************************** + + adapterNetworkPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdapterNetworkPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Ports of Network Function information." + ::= { adapters 4 } + + adapterNetworkPortEntry OBJECT-TYPE + SYNTAX AdapterNetworkPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Ports of Network Function information entry." + INDEX { adapterNetworkPortIndex } + ::= { adapterNetworkPortTable 1 } + + AdapterNetworkPortEntry ::= SEQUENCE { + adapterNetworkPortIndex INTEGER, + adapterNetworkPortNetworkVPDProdName DisplayString, + adapterNetworkPortPhyPortNo INTEGER, + adapterNetworkPortPhyPortConnector DisplayString, + adapterNetworkPortPhyPortBurnedinAddress DisplayString, + adapterNetworkPortNo INTEGER, + adapterNetworkPortMaxDataSize Gauge, + adapterNetworkPortPermanentAddress DisplayString, + adapterNetworkPortNetworkAddress DisplayString, + adapterNetworkPortLinkTechnology DisplayString, + adapterNetworkPortvNICMode DisplayString, + adapterNetworkPortMaxSpeed DisplayString, + adapterNetworkPortProtocolType DisplayString, + adapterNetworkPortCurrentProtocol DisplayString, + adapterNetworkPortFCoEPermanentAddress DisplayString, + adapterNetworkPortFCoENetworkAddress DisplayString, + adapterNetworkPortConnectionType DisplayString, + adapterNetworkPortRole DisplayString, + adapterNetworkPortTargetRelativePortNo Gauge, + adapterNetworkPortPhyPortLinkStatus DisplayString, + adapterNetworkPortPhyPortLinkSpeed DisplayString + } + + adapterNetworkPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular network port." + ::= { adapterNetworkPortEntry 1 } + + adapterNetworkPortNetworkVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name and PFA of the network function for this port and PFA is in HEX." + ::= { adapterNetworkPortEntry 2 } + + adapterNetworkPortPhyPortNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Physical Port No. in the network function for this port." + ::= { adapterNetworkPortEntry 3 } + + adapterNetworkPortPhyPortConnector OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Physical Port Connector Layout in the network function for this port." + ::= { adapterNetworkPortEntry 4 } + + adapterNetworkPortPhyPortBurnedinAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Physical Permanent (burned-In) Address of a particular network port." + ::= { adapterNetworkPortEntry 5 } + + adapterNetworkPortNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Port No. of this network port in the network function." + ::= { adapterNetworkPortEntry 6 } + + adapterNetworkPortMaxDataSize OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Port Max Data Size of this network port in the network function." + ::= { adapterNetworkPortEntry 7 } + + adapterNetworkPortPermanentAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Permanent Address of a particular network port." + ::= { adapterNetworkPortEntry 8 } + + adapterNetworkPortNetworkAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Network Address of a particular network port." + ::= { adapterNetworkPortEntry 9 } + + adapterNetworkPortLinkTechnology OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Link Technology of a particular network port." + ::= { adapterNetworkPortEntry 10 } + + adapterNetworkPortvNICMode OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "If the logical port vNIC mode is Virtual Fabric mode, Switch Independent mode, + or Unified Fabric Protocol mode, this column returns 1(enabled), otherwise, the columen + returns 0(disabled)" + ::= { adapterNetworkPortEntry 11 } + + adapterNetworkPortMaxSpeed OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Maximum Bandwidth in Gbps of a particular network port." + ::= { adapterNetworkPortEntry 12 } + + adapterNetworkPortProtocolType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Protocol Type of a particular network port." + ::= { adapterNetworkPortEntry 13 } + + adapterNetworkPortCurrentProtocol OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Current Work Protocol of a particular network port." + ::= { adapterNetworkPortEntry 14 } + + adapterNetworkPortFCoEPermanentAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FCoE Permanent Address of a particular network port." + ::= { adapterNetworkPortEntry 15 } + + adapterNetworkPortFCoENetworkAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FCoE Network Address of a particular network port." + ::= { adapterNetworkPortEntry 16 } + + adapterNetworkPortConnectionType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Connection Type of a particular network port if its current work protocol is FC or FCoE." + ::= { adapterNetworkPortEntry 17 } + + adapterNetworkPortRole OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Port Role of a particular network port if its current work protocol is FC or FCoE." + ::= { adapterNetworkPortEntry 18 } + + adapterNetworkPortTargetRelativePortNo OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Target Relative Port No. of a particular network port if its current work protocol is FC or FCoE." + ::= { adapterNetworkPortEntry 19 } + + adapterNetworkPortPhyPortLinkStatus OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION " The Physical Port Link Status in the network function for this port." + ::= { adapterNetworkPortEntry 20 } + + adapterNetworkPortPhyPortLinkSpeed OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION " The Physical Port Link Speed in the network function for this port. " + ::= { adapterNetworkPortEntry 21 } + + -- ************************************************************************************* + -- Physical Resource: The properties of GPU Function information IMM2-only + -- ******************************************************************************** + + adapterGPUFunctionTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdapterGPUFunctionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of GPU Function information." + ::= { adapters 5 } + + adapterGPUFunctionEntry OBJECT-TYPE + SYNTAX AdapterGPUFunctionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "GPU function information entry." + INDEX { adapterGPUFunctionIndex } + ::= { adapterGPUFunctionTable 1 } + + AdapterGPUFunctionEntry ::= SEQUENCE { + adapterGPUFunctionIndex INTEGER, + adapterGPUFunctionGpuVPDProdName DisplayString, + adapterGPUFunctionAdapterVPDProdName DisplayString, + adapterGPUFunctionGpuVPDManufacturer DisplayString, + adapterGPUFunctionGpuVPDUUID DisplayString, + adapterGPUFunctionGpuVPDModel DisplayString, + adapterGPUFunctionGpuVPDSerialNo DisplayString, + adapterGPUFunctionGpuVPDFRUNo DisplayString, + adapterGPUFunctionGpuVPDPartNo DisplayString, + adapterGPUFunctionFoDUID DisplayString, + adapterGPUFunctionSupportHotPlug INTEGER, + adapterGPUFunctionVideoMemorySize DisplayString, + adapterGPUFunctionVideoMemoryType DisplayString, + adapterGPUFunctionChipNumber INTEGER, + adapterGPUFunctionMaxDataWidth INTEGER, + adapterGPUFunctionPackageType DisplayString, + adapterGPUFunctionPCIBusNo INTEGER, + adapterGPUFunctionPCIDevNo INTEGER, + adapterGPUFunctionPCIFuncNo INTEGER, + adapterGPUFunctionPCIVendorId DisplayString, + adapterGPUFunctionPCIDevId DisplayString, + adapterGPUFunctionPCIDevType DisplayString, + adapterGPUFunctionPCIRevId DisplayString, + adapterGPUFunctionPCISubVendorId DisplayString, + adapterGPUFunctionPCISubDevId DisplayString, + adapterGPUFunctionPCISlotDesignation DisplayString + } + + adapterGPUFunctionIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular GPU function." + ::= { adapterGPUFunctionEntry 1 } + + adapterGPUFunctionGpuVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name and PFA of a particular GPU function and PFA is in HEX." + ::= { adapterGPUFunctionEntry 2 } + + adapterGPUFunctionAdapterVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name of a particular adapter providing this function. And if the Product Name contains PFA, PFA is in HEX." + ::= { adapterGPUFunctionEntry 3 } + + adapterGPUFunctionGpuVPDManufacturer OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacturer of a particular GPU function." + ::= { adapterGPUFunctionEntry 4 } + + adapterGPUFunctionGpuVPDUUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The UUID of a particular GPU function." + ::= { adapterGPUFunctionEntry 5 } + + adapterGPUFunctionGpuVPDModel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Model of a particular GPU function." + ::= { adapterGPUFunctionEntry 6 } + + adapterGPUFunctionGpuVPDSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Serial No. of a particular GPU function." + ::= { adapterGPUFunctionEntry 7 } + + adapterGPUFunctionGpuVPDFRUNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FRU No. of a particular GPU function." + ::= { adapterGPUFunctionEntry 8 } + + adapterGPUFunctionGpuVPDPartNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Part No. of a particular GPU function." + ::= { adapterGPUFunctionEntry 9 } + + adapterGPUFunctionFoDUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FoD UID of a particular GPU function." + ::= { adapterGPUFunctionEntry 10 } + + adapterGPUFunctionSupportHotPlug OBJECT-TYPE + SYNTAX INTEGER { + false(0), + true(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION "Indicates whether the GPU function supports hot plug." + ::= { adapterGPUFunctionEntry 11 } + + adapterGPUFunctionVideoMemorySize OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Video Memory Size of a particular GPU function." + ::= { adapterGPUFunctionEntry 12 } + + adapterGPUFunctionVideoMemoryType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Video Memory Type of a particular GPU function." + ::= { adapterGPUFunctionEntry 13 } + + adapterGPUFunctionChipNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Chip Number of a particular GPU function." + ::= { adapterGPUFunctionEntry 14 } + + adapterGPUFunctionMaxDataWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Maximum Data Width in Gbps of a particular GPU funtion." + ::= { adapterGPUFunctionEntry 15 } + + adapterGPUFunctionPackageType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Package Type of a particular GPU function." + ::= { adapterGPUFunctionEntry 16 } + + adapterGPUFunctionPCIBusNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Bus No. of a particular GPU function." + ::= { adapterGPUFunctionEntry 17 } + + adapterGPUFunctionPCIDevNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device No. of a particular GPU function." + ::= { adapterGPUFunctionEntry 18 } + + adapterGPUFunctionPCIFuncNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Function No. of a particular GPU function." + ::= { adapterGPUFunctionEntry 19 } + + adapterGPUFunctionPCIVendorId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Vendor ID of a particular GPU function." + ::= { adapterGPUFunctionEntry 20 } + + adapterGPUFunctionPCIDevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device ID of a particular GPU function." + ::= { adapterGPUFunctionEntry 21 } + + adapterGPUFunctionPCIDevType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device Type of a particular GPU function." + ::= { adapterGPUFunctionEntry 22 } + + adapterGPUFunctionPCIRevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Revision ID of a particular GPU function." + ::= { adapterGPUFunctionEntry 23 } + + adapterGPUFunctionPCISubVendorId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Subsystem Vendor ID of a particular GPU function." + ::= { adapterGPUFunctionEntry 24 } + + adapterGPUFunctionPCISubDevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Subsystem Device ID of a particular GPU function." + ::= { adapterGPUFunctionEntry 25 } + + adapterGPUFunctionPCISlotDesignation OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Slot Designation of a particular GPU function." + ::= { adapterGPUFunctionEntry 26 } + + -- ************************************************************************************* + -- Physical Resource: The Chip information of GPU function IMM2-only + -- ******************************************************************************** + + adapterGPUChipTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdapterGPUChipEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Chips of GPU Function information." + ::= { adapters 6 } + + adapterGPUChipEntry OBJECT-TYPE + SYNTAX AdapterGPUChipEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "GPU function chip information entry." + INDEX { adapterGPUChipIndex } + ::= { adapterGPUChipTable 1 } + + AdapterGPUChipEntry ::= SEQUENCE { + adapterGPUChipIndex INTEGER, + adapterGPUChipGpuVPDProdName DisplayString, + adapterGPUChipNo INTEGER, + adapterGPUChipName DisplayString, + adapterGPUChipFamily DisplayString, + adapterGPUChipManufacturer DisplayString, + adapterGPUChipCoresEnabled INTEGER, + adapterGPUChipMaxClockSpeed Gauge, + adapterGPUChipExtBusClockSpeed Gauge, + adapterGPUChipAddressWidth INTEGER, + adapterGPUChipDataWidth INTEGER, + adapterGPUChipFormFactor DisplayString, + adapterGPUChipModel DisplayString, + adapterGPUChipSerialNo DisplayString, + adapterGPUChipFRUNo DisplayString, + adapterGPUChipPartNo DisplayString, + adapterGPUChipUniqueID DisplayString + } + + adapterGPUChipIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular GPU chip" + ::= { adapterGPUChipEntry 1 } + + adapterGPUChipGpuVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name and PFA of the GPU function for this chip and PFA is in HEX." + ::= { adapterGPUChipEntry 2 } + + adapterGPUChipNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Index of the GPU chip in the GPU adapter." + ::= { adapterGPUChipEntry 3 } + + adapterGPUChipName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Name of a particular GPU chip." + ::= { adapterGPUChipEntry 4 } + + adapterGPUChipFamily OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Family Name of a particular GPU chip." + ::= { adapterGPUChipEntry 5 } + + adapterGPUChipManufacturer OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacturer of a particular GPU chip." + ::= { adapterGPUChipEntry 6 } + + adapterGPUChipCoresEnabled OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "Indicates whether enable cores of a particular GPU chip." + ::= { adapterGPUChipEntry 7 } + + adapterGPUChipMaxClockSpeed OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Maximum Clock Speed in MHz of a particular GPU chip." + ::= { adapterGPUChipEntry 8 } + + adapterGPUChipExtBusClockSpeed OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The External Bus Clock Speed in MHz of a particular GPU chip." + ::= { adapterGPUChipEntry 9 } + + adapterGPUChipAddressWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Address Width of a particular GPU chip." + ::= { adapterGPUChipEntry 10 } + + adapterGPUChipDataWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Data Width of a particular GPU chip." + ::= { adapterGPUChipEntry 11 } + + adapterGPUChipFormFactor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Form Factor of a particular GPU chip." + ::= { adapterGPUChipEntry 12 } + + adapterGPUChipModel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Model of a particular GPU chip." + ::= { adapterGPUChipEntry 13 } + + adapterGPUChipSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Serial No. of a particular GPU chip." + ::= { adapterGPUChipEntry 14 } + + adapterGPUChipFRUNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FRU No. of a particular GPU chip." + ::= { adapterGPUChipEntry 15 } + + adapterGPUChipPartNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Part No. of a particular GPU chip." + ::= { adapterGPUChipEntry 16 } + + adapterGPUChipUniqueID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Unique ID of a particular GPU chip." + ::= { adapterGPUChipEntry 17 } + + -- ************************************************************************************* + -- Physical Resource: The properties of RAID Function information IMM2-only + -- ******************************************************************************** + + adapterRAIDFunctionTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdapterRAIDFunctionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of RAID Function information." + ::= { adapters 7 } + + adapterRAIDFunctionEntry OBJECT-TYPE + SYNTAX AdapterRAIDFunctionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "RAID function information entry." + INDEX { adapterRAIDFunctionIndex } + ::= { adapterRAIDFunctionTable 1 } + + AdapterRAIDFunctionEntry ::= SEQUENCE { + adapterRAIDFunctionIndex INTEGER, + adapterRAIDFunctionRaidVPDProdName DisplayString, + adapterRAIDFunctionAdapterVPDProdName DisplayString, + adapterRAIDFunctionRaidVPDManufacturer DisplayString, + adapterRAIDFunctionRaidVPDUUID DisplayString, + adapterRAIDFunctionRaidVPDModel DisplayString, + adapterRAIDFunctionRaidVPDSerialNo DisplayString, + adapterRAIDFunctionRaidVPDFRUNo DisplayString, + adapterRAIDFunctionRaidVPDPartNo DisplayString, + adapterRAIDFunctionFoDUID DisplayString, + adapterRAIDFunctionSupportHotPlug INTEGER, + adapterRAIDFunctionMaxDataWidth INTEGER, + adapterRAIDFunctionPackageType DisplayString, + adapterRAIDFunctionPCIBusNo INTEGER, + adapterRAIDFunctionPCIDevNo INTEGER, + adapterRAIDFunctionPCIFuncNo INTEGER, + adapterRAIDFunctionPCIVendorId DisplayString, + adapterRAIDFunctionPCIDevId DisplayString, + adapterRAIDFunctionPCIDevType DisplayString, + adapterRAIDFunctionPCIRevId DisplayString, + adapterRAIDFunctionPCISubVendorId DisplayString, + adapterRAIDFunctionPCISubDevId DisplayString, + adapterRAIDFunctionPCISlotDesignation DisplayString + } + + adapterRAIDFunctionIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular RAID function." + ::= { adapterRAIDFunctionEntry 1 } + + adapterRAIDFunctionRaidVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name and PFA of a particular RAID function and PFA is in HEX." + ::= { adapterRAIDFunctionEntry 2 } + + adapterRAIDFunctionAdapterVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name of a particular adapter providing this function. And if the Product Name contains PFA, PFA is in HEX." + ::= { adapterRAIDFunctionEntry 3 } + + adapterRAIDFunctionRaidVPDManufacturer OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Manufacturer of a particular RAID function." + ::= { adapterRAIDFunctionEntry 4 } + + adapterRAIDFunctionRaidVPDUUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The UUID of a particular RAID function." + ::= { adapterRAIDFunctionEntry 5 } + + adapterRAIDFunctionRaidVPDModel OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Model of a particular RAID function." + ::= { adapterRAIDFunctionEntry 6 } + + adapterRAIDFunctionRaidVPDSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Serial No. of a particular RAID function." + ::= { adapterRAIDFunctionEntry 7 } + + adapterRAIDFunctionRaidVPDFRUNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FRU No. of a particular RAID function." + ::= { adapterRAIDFunctionEntry 8 } + + adapterRAIDFunctionRaidVPDPartNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Part No. of a particular RAID function." + ::= { adapterRAIDFunctionEntry 9 } + + adapterRAIDFunctionFoDUID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The FoD UID of a particular RAID function." + ::= { adapterRAIDFunctionEntry 10 } + + adapterRAIDFunctionSupportHotPlug OBJECT-TYPE + SYNTAX INTEGER { + false(0), + true(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION "Indicates whether the RAID function supports hot plug." + ::= { adapterRAIDFunctionEntry 11 } + + adapterRAIDFunctionMaxDataWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Maximum Data Width in Gbps of a particular RAID funtion." + ::= { adapterRAIDFunctionEntry 12 } + + adapterRAIDFunctionPackageType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Package Type of a particular RAID function." + ::= { adapterRAIDFunctionEntry 13 } + + adapterRAIDFunctionPCIBusNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Bus No. of a particular RAID function." + ::= { adapterRAIDFunctionEntry 14 } + + adapterRAIDFunctionPCIDevNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device No. of a particular RAID function." + ::= { adapterRAIDFunctionEntry 15 } + + adapterRAIDFunctionPCIFuncNo OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Function No. of a particular RAID function." + ::= { adapterRAIDFunctionEntry 16 } + + adapterRAIDFunctionPCIVendorId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Vendor ID of a particular RAID function." + ::= { adapterRAIDFunctionEntry 17 } + + adapterRAIDFunctionPCIDevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device ID of a particular RAID function." + ::= { adapterRAIDFunctionEntry 18 } + + adapterRAIDFunctionPCIDevType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Device Type of a particular RAID function." + ::= { adapterRAIDFunctionEntry 19 } + + adapterRAIDFunctionPCIRevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Revision ID of a particular RAID function." + ::= { adapterRAIDFunctionEntry 20 } + + adapterRAIDFunctionPCISubVendorId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Subsystem Vendor ID of a particular RAID function." + ::= { adapterRAIDFunctionEntry 21 } + + adapterRAIDFunctionPCISubDevId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Subsystem Device ID of a particular RAID function." + ::= { adapterRAIDFunctionEntry 22 } + + adapterRAIDFunctionPCISlotDesignation OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The PCI Slot Designation of a particular RAID function." + ::= { adapterRAIDFunctionEntry 23 } + + -- ************************************************************************************* + -- Firmware Information: The properties of PCI function firmware information IMM2-only + -- ******************************************************************************** + + adapterFirmwareTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdapterFirmwareEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of PCI Function Firmware information." + ::= { adapters 8 } + + adapterFirmwareEntry OBJECT-TYPE + SYNTAX AdapterFirmwareEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Adapter Firmware Entry." + INDEX { adapterFwIndex } + ::= { adapterFirmwareTable 1 } + + AdapterFirmwareEntry ::= SEQUENCE { + adapterFwIndex INTEGER, + adapterFwFunctionVPDProdName DisplayString, + adapterFwName DisplayString, + adapterFwClassification DisplayString, + adapterFwDescription DisplayString, + adapterFwManufacture DisplayString, + adapterFwVersion DisplayString, + adapterFwReleaseDate DisplayString, + adapterFwSoftwareID DisplayString + } + + adapterFwIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular function firmware." + ::= { adapterFirmwareEntry 1 } + + adapterFwFunctionVPDProdName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Product Name and PFA of a particular function for this firmware and PFA is in HEX." + ::= { adapterFirmwareEntry 2 } + + adapterFwName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The name of a particular PCI function firmware." + ::= { adapterFirmwareEntry 3 } + + adapterFwClassification OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The classification of a particular PCI function firmware." + ::= { adapterFirmwareEntry 4 } + + adapterFwDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The description of a particular PCI function firmware." + ::= { adapterFirmwareEntry 5 } + + adapterFwManufacture OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The manufacturer of a particular PCI function firmware." + ::= { adapterFirmwareEntry 6 } + + adapterFwVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The version of a particular PCI function firmware." + ::= { adapterFirmwareEntry 7 } + + adapterFwReleaseDate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The release date of a particular PCI function firmware." + ::= { adapterFirmwareEntry 8 } + + adapterFwSoftwareID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION "The Software ID of a particular PCI function firmware." + ::= { adapterFirmwareEntry 9 } + + + -- *********************************************************************** + -- Event Log Information common to IMM1 and IMM2 + -- *********************************************************************** + eventLog OBJECT IDENTIFIER ::= { errorLogs 1 } + + eventLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF EventLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of event logs. View as a table and not as individual entries + for consistent results." + ::= { eventLog 1 } + + eventLogEntry OBJECT-TYPE + SYNTAX EventLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Event log entries. View as a table and not as individual entries for + consistent results." + INDEX { eventLogIndex } + ::= { eventLogTable 1 } + + + EventLogEntry ::= SEQUENCE { + eventLogIndex INTEGER, + eventLogString OCTET STRING, + eventLogSeverity INTEGER, + eventLogDate OCTET STRING, + eventLogTime OCTET STRING + } + + + eventLogIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Event log index number. View as a table and not as individual entries for + consistent results." + ::= { eventLogEntry 1 } + + eventLogString OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains a string of information to detail the event. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 2} + + eventLogSeverity OBJECT-TYPE + SYNTAX INTEGER{ + error(0), + warning(1), + information(2), + other(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains a information to detail the severity of the event. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 3} + + eventLogDate OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Date of the Event occured. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 4} + + eventLogTime OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Time of the Event occured. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 5} + + + eventLogClr OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Clear the event log." + ::= { eventLog 3 } + + -- *********************************************************************** + -- Event Log Information IMM2-only + -- *********************************************************************** + + eventLogTftpServer OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "To save the eventLog if it is not empty, + set the IP address or host name of the TFTP server where + the file should be transferred. The address must be entered in a + dotted decimal IP string (e.g. 9.37.44.2), or equivalent for IPv6." + ::= { eventLog 4 } + + eventLogFileName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name of the saved log file on the target system." + ::= { eventLog 5 } + + eventLogSaveStart OBJECT-TYPE + SYNTAX INTEGER { + execute(1), + execute-nowait(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Start saving the eventLog file to the specified target file + and system. + Using execute will cause the SNMP client to wait for the save + operation to complete. + Using execute-nowait will not cause the SNMP client to wait for + the save to complete. Instead it will save the configuration in + the background. + + Note 1: Both eventLogTftpServer and + eventLogFileName must be set. + Note 2: Depending on the target, it might take up to several + seconds for the save operation to complete. + Note 3: Use eventLogStatus to confirm the status of + the last operation. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { eventLog 6 } + + + eventLogSaveStatus OBJECT-TYPE + SYNTAX INTEGER { + success(0), + failed(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the last save operation which + was initiated through SNMP method." + ::= { eventLog 7 } + + +-- *********************************************************************** +-- Configure the IMM +-- *********************************************************************** + -- *********************************************************************** + -- Remote Access Configuration + -- *********************************************************************** + remoteAccessConfig OBJECT IDENTIFIER ::= { configureSP 1 } + + -- *********************************************************************** + -- General Remote Access and Remote Alerts Configuration + -- *********************************************************************** + generalRemoteCfg OBJECT IDENTIFIER ::= { remoteAccessConfig 1 } + + remoteAlertRetryDelay OBJECT-TYPE + SYNTAX INTEGER { + noDelay(0), + oneHalfMinute(30), + oneMinute(60), + oneAndHalfMinutes(90), + twoMinutes(120), + twoAndHalfMinutes(150), + threeMinutes(180), + threeAndHalfMinutes(210), + fourMinutes(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in seconds to delay between retries if sending a + remote alert is unsuccessful." + ::= { generalRemoteCfg 1 } + + remoteAlertRetryCount OBJECT-TYPE + SYNTAX INTEGER { + noretry(0), + retry1(1), + retry2(2), + retry3(3), + retry4(4), + retry5(5), + retry6(6), + retry7(7), + retry8(8) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number of additional times a remote alert will be + retried if not succesfully sent. A value of zero indicates + no retries will be attempted." + ::= { generalRemoteCfg 2 } + + remoteAlertEntryDelay OBJECT-TYPE + SYNTAX INTEGER { + noDelay(0), + oneHalfMinute(30), + oneMinute(60), + oneAndHalfMinutes(90), + twoMinutes(120), + twoAndHalfMinutes(150), + threeMinutes(180), + threeAndHalfMinutes(210), + fourMinutes(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in seconds to delay between entries if sending a + remote alert is unsuccessful." + ::= { generalRemoteCfg 3 } + + snmpCriticalAlerts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,criticalAlerts will be sent to + SNMP, else critical alerts will not be sent." + ::= { generalRemoteCfg 4 } + + snmpWarningAlerts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,warningAlerts will be sent to + SNMP , else warning alerts will not be sent." + ::= { generalRemoteCfg 5 } + + snmpSystemAlerts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,systemAlerts will be sent to + SNMP , else system alerts will not be sent." + ::= { generalRemoteCfg 6 } + + remoteAccessTamperDelay OBJECT-TYPE + SYNTAX INTEGER { + nowait(0), --IMM2-only + oneMinute(1), + twoMinutes(2), + threeMinutes(3), --IMM2-only + fourMinutes(4), --IMM2-only + fiveMinutes(5), + sixMinutes(6), --IMM2-only + sevenMinutes(7), --IMM2-only + tenMinutes(10), + fifteenMinutes(15), + twentyMinutes(20), + thirtyMinutes(30), + sixtyMinutes(60), + oneTwentyMinutes(120), + oneEightyMinutes(180), + twoFortyMinutes(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in minutes to prohibit a remote login attempt + after more than 5 sequential login attempts have failed." + ::= { generalRemoteCfg 7 } + + userAuthenticationMethod OBJECT-TYPE + SYNTAX INTEGER { + localOnly(0), + ldapOnly(1), + localFirstThenLdap(2), + ldapFirstThenLocal(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Use this field to specify how users attempting to login should be authenticated. + There are two methods: + Local authentication. Userid and password are verified by searching the list + of users locally configured under Local Login Profiles. + LDAP based authentication. Users are authenticated via a remote LDAP server. + One or both authentication methods can be selected. If both methods should be + used, the order must be specified." + ::= { generalRemoteCfg 8 } + + + webInactivityTimeout OBJECT-TYPE + SYNTAX INTEGER { + oneMinutes(0), + fiveMinutes(1), + tenMinutes(2), + fifteenMinutes(3), + twentyMinutes(4), + noTimeout(5), + userPicksTimeout(6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Use this field to indicate how long, in minutes, the IMM subsystem will wait + before disconnecting an inactive web session. Select the no timeout option to + disable this feature. Select the User picks timeout option if the timeout should + instead be selected by the user during the login process." + ::= { generalRemoteCfg 9 } + + + -- *********************************************************************** + -- SNMP alert filters + -- *********************************************************************** + + snmpAlertFilters OBJECT IDENTIFIER ::= { generalRemoteCfg 10 } + + safSpTrapTempC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Temperature threshold exceeded." + ::= { snmpAlertFilters 2 } + + safSpTrapVoltC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Voltage threshold exceeded." + ::= { snmpAlertFilters 3 } + + safSpTrapPowerC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Power failure." + ::= { snmpAlertFilters 4 } + + safSpTrapHdC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Hard disk drive failure." + ::= { snmpAlertFilters 5 } + + safSpTrapFanC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Single Fan failure." + ::= { snmpAlertFilters 6 } + + + safSpTrapIhcC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Incompatible hardware configuration." + ::= { snmpAlertFilters 7 } + + safSpTrapCPUC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: CPU Error." + ::= { snmpAlertFilters 8 } + + safSpTrapMemoryC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Memory Error." + ::= { snmpAlertFilters 9 } + + safSpTrapRdpsC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Redundant Power Supply failure." + ::= { snmpAlertFilters 10 } + + safSpTrapHardwareC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Other Failure - refer to Message ID for specific condition." + ::= { snmpAlertFilters 11 } + + + safSpTrapRdpsN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Redundant Power Supply failure." + ::= { snmpAlertFilters 12 } + + safSpTrapTempN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Temperature threshold exceeded." + ::= { snmpAlertFilters 13 } + + safSpTrapVoltN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Voltage threshold exceeded." + ::= { snmpAlertFilters 14 } + + safSpTrapPowerN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Power." + ::= { snmpAlertFilters 15 } + + safSpTrapFanN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Fan Error." + ::= { snmpAlertFilters 16 } + + safSpTrapCPUN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { snmpAlertFilters 17 } + + safSpTrapMemoryN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { snmpAlertFilters 18 } + + safSpTrapHardwareN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Warning - refer to Message ID for specific condition." + ::= { snmpAlertFilters 19 } + + safSpTrapRLogin OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Sev-Off Alert: Event Remote Login." + ::= { snmpAlertFilters 20 } + + + safSpTrapOsToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Timeout value exceeded." + ::= { snmpAlertFilters 21 } + + safSpTrapAppS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Application Alert. Refer to Message ID for specific condition." + ::= { snmpAlertFilters 22 } + + safSpTrapPowerS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Power on or off." -- Off only for IMM1 + ::= { snmpAlertFilters 23 } + + safSpTrapBootS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Boot Failure." + ::= { snmpAlertFilters 24 } + + safSpTrapLdrToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Loader Timeout." + ::= { snmpAlertFilters 25 } + + safSpTrapPFAS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Predictive Failure Analysis(PFA) information." + ::= { snmpAlertFilters 26 } + + safSpTrapSysLogS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Log 75% full." + ::= { snmpAlertFilters 27 } + + safSpTrapNwChangeS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Network change notification." + ::= { snmpAlertFilters 28 } + + + -- *********************************************************************** + -- begin account security management + -- *********************************************************************** + + customSecuritySettings OBJECT IDENTIFIER ::= { generalRemoteCfg 20 } + + loginPasswordRequired OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled, all users require a login password to access the IMM + via the CLI and Web interfaces. The default value is disabled." + ::= { customSecuritySettings 1 } + + passwordExpirationPeriod OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of days before login passwords expire. The minimum + value is 1 day and the maximum value is 365 days. The default + value is 90 days. A value of 0 disables this option." + ::= { customSecuritySettings 2 } + + minimumPasswordReuseCycle OBJECT-TYPE + SYNTAX INTEGER { + none(0), + onePassword(1), + twoPasswords(2), + threePasswords(3), + fourPasswords(4), + fivePasswords(5) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of unique passwords a user must choose before + reusing a password. The default value is none." + ::= { customSecuritySettings 3 } + + complexPasswordRulesEnforced OBJECT-TYPE --IMM1-only, omitted by IMM2 in error? + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled, password should contains at least one numeric and + one alphabetic character." + ::= { customSecuritySettings 4 } + + minimumPasswordLength OBJECT-TYPE + SYNTAX INTEGER { + passwordLengthOne(1), -- IMM1 setting name + passwordLengthTwo(2), -- IMM1 setting name + passwordLengthThree(3), -- IMM1 setting name + passwordLengthFour(4), -- IMM1 setting name + passwordLength5(5), + passwordLength6(6), + passwordLength7(7), + passwordLength8(8), + passwordLength9(9), + passwordLength10(10), + passwordLength11(11), + passwordLength12(12), + passwordLength13(13), + passwordLength14(14), + passwordLength15(15), + passwordLength16(16), + passwordLength17(17), + passwordLength18(18), + passwordLength19(19), + passwordLength20(20) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The required minimum number of characters in the new password. + The default value is 8. + + A SET of this object is ignored until the complexPasswordRules option is enabled + and the minimumPasswordReuseCycle is not none(0)" + ::= { customSecuritySettings 5 } + + defaultAdminPasswordExpired OBJECT-TYPE --IMM2-only + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled, the factory default 'USERID' account password must + be changed on next login. The default value is disabled." + ::= { customSecuritySettings 6 } + + + minimumDiffCharsPassword OBJECT-TYPE --IMM2-only + SYNTAX INTEGER { + none(0), + oneChar(1), + twoChars(2), + threeChars(3), + fourChars(4), + fiveChars(5), + sixChars(6), + sevenChars(7), + eightChars(8), + nineChars(9), + tenChars(10), + elevenChars(11), + twelveChars(12), + thirteenChars(13), + fourteenChars(14), + fifteenChars(15) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The required minimum number of characters in the new password + different from the previous password. The default value is 2. + + A SET of this object is ignored until the complexPasswordRules option is enabled + and the minimumPasswordReuseCycle is not none(0)" + ::= { customSecuritySettings 7 } + + changePasswordFirstAccess OBJECT-TYPE --IMM2-only + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled, the login user will be forced to change their password on + the first access after the account has been established or on + the first access after an administrator has changed the password + for the user, except for the administrator password for USERID. + The default value is disabled." + ::= { customSecuritySettings 8 } + + accountLockoutPeriod OBJECT-TYPE --IMM2-only + SYNTAX INTEGER { + nowait(0), + oneMinute(1), + twoMinutes(2), + fiveMinutes(5), + tenMinutes(10), + fifteenMinutes(15), + twentyMinutes(20), + thirtyMinutes(30), + sixtyMinutes(60), + oneTwentyMinutes(120), + oneEightyMinutes(180), + twoFortyMinutes(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The period of time in minutes that a user is locked out after the + maximum number of login failures was reached. The minimum value is + is 1 minute and the maximum value is 240 minutes. The default value + is 2 minutes for the Legacy security level and 60 minutes for the + High security level. A value of 0 disables this option." + ::= { customSecuritySettings 9 } + + maxLoginFailures OBJECT-TYPE --IMM2-only + SYNTAX INTEGER { + none(0), + oneTime(1), + twoTimes(2), + threeTimes(3), + fourTimes(4), + fiveTimes(5), + sixTimes(6), + sevenTimes(7), + eightTimes(8), + nineTimes(9), + tenTimes(10) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum number of login failures before a user account is locked. + A value of 0 disables this option. The default value is 5." + ::= { customSecuritySettings 10 } + + + passwordChangeInterval OBJECT-TYPE --IMM2-only + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A minimum period of time that user is not able to change + their own password. The range of acceptable values will be + from 0 to 240 (or 10 days). A value of 0 disables this + option. If the password expiration period is set, it must be + greater than the minimum password change interval." + ::= { customSecuritySettings 11 } + + + -- *********************************************************************** + -- IMM Serial Port Configuration + -- *********************************************************************** + serialPortCfg OBJECT IDENTIFIER ::= { remoteAccessConfig 2 } + + + portBaud OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER { + baud9600(3), + baud19200(4), + baud38400(5), + baud57600(6), + baud115200(7) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Baud rate for the serial port." + ::= { serialPortCfg 1 } + + + + portParity OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER { + none(0), + odd(1), + even(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Parity setting for the serial port." + ::= { serialPortCfg 2 } + + -- *********************************************************************** + -- Serial Redirect + -- *********************************************************************** + serialRedirect OBJECT IDENTIFIER ::= { serialPortCfg 3 } + + enterCLIkeySeq OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..15)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the keystroke sequence used to enter the CLI. + This sequence must have at least one character. The caret symbol (^) + has a special meaning in this sequence. It denotes 'Ctrl' for keystrokes that + map to Ctrl sequences (for example, ^[ for the escape key and ^M for carriage + return). All ocurrences of ^ will be interpreted as part of a Ctrl sequence. + Refer to an ASCII-to-key conversion table for a complete list of Ctrl sequences. + The default value for this field is '^[(' i.e. ESC followed by (." + ::= { serialRedirect 1 } + + portStopBits OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER { + oneStopbit(0), + twoOrOnePtFive(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number of stop bits for the serial port." + ::= { serialPortCfg 4 } + + + portCLImode OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER { + cliDisable(0), + cliWithEMScompatibleKeystrokeSeq(1), + cliWithUserDefinedKeystrokeSeq(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Use this field to select the CLI (command line interface) mode for this port. + The CLI mode disablies serial redirect, or pecifies the type of keystroke + sequences to use for entering (returning to) the CLI from the system console." + ::= { serialPortCfg 18 } + + + -- *********************************************************************** + -- Remote Alert Profiles + -- *********************************************************************** + remoteAlertIds OBJECT IDENTIFIER ::= { remoteAccessConfig 3 } + + + remoteAlertIdsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAlertIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of remote alert entries. + This table lets you configure remote alert recipients. + You can define up to 12 unique recipients. " + ::= { remoteAlertIds 1 } + + remoteAlertIdsEntry OBJECT-TYPE + SYNTAX RemoteAlertIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Remote alert entries." + INDEX { remoteAlertIdEntryIndex } + ::= { remoteAlertIdsTable 1 } + + + RemoteAlertIdsEntry ::= SEQUENCE { + remoteAlertIdEntryIndex INTEGER, + remoteAlertIdEntryStatus INTEGER, + remoteAlertIdEntryName OCTET STRING, + remoteAlertIdEmailAddr OCTET STRING, + remoteAlertIdEntryCriticalAlert INTEGER, + remoteAlertIdEntryWarningAlert INTEGER, + remoteAlertIdEntrySystemAlert INTEGER, + remoteAlertIdEntryAuditAlert INTEGER, -- IMM2-only + remoteAlertIdEntryAttachmentsToEmailAlerts INTEGER, + remoteAlertIdEntrySyslogPortAssignment INTEGER, -- IMM2-only + remoteAlertIdEntrySyslogHostname OCTET STRING, -- IMM2-only + remoteAlertIdEntryType INTEGER -- IMM2-only + } + + + remoteAlertIdEntryIndex OBJECT-TYPE + SYNTAX INTEGER (1..10000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for remote alert entry." + ::= { remoteAlertIdsEntry 1 } + + remoteAlertIdEntryStatus OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabled(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled alerts will be sent to this alert + recipient else alerts will not be sent." + ::= { remoteAlertIdsEntry 2 } + + + remoteAlertIdEntryName OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..50)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A null terminated string that contains + a text description of this entry." + + ::= { remoteAlertIdsEntry 3 } + + remoteAlertIdEmailAddr OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..320)) -- IMM1 limited to 64 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A null terminated string that + contains a E-Mail Address. For example 'jeb@us.lenovo.com'. + Used only for a E-mail over Lan." + + ::= { remoteAlertIdsEntry 4} + + remoteAlertIdEntryCriticalAlert OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,criticalAlerts will be sent to this + remote alert receipient,else critical alerts will not be sent." + ::= { remoteAlertIdsEntry 5 } + + + remoteAlertIdEntryWarningAlert OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,warningAlerts will be sent to this + remote alert receipient,else warningAlerts will not be sent." + ::= { remoteAlertIdsEntry 6 } + + remoteAlertIdEntrySystemAlert OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,systemAlerts will be sent to this + remote alert receipient,else systemAlerts will not be sent." + ::= { remoteAlertIdsEntry 7 } + + remoteAlertIdEntryAuditAlert OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,systemAlerts will be sent to this + remote alert receipient,else systemAlerts will not be sent." + ::= { remoteAlertIdsEntry 8 } + + remoteAlertIdEntryAttachmentsToEmailAlerts OBJECT-TYPE + SYNTAX INTEGER { + noAttachments(0), + attachEventLog(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates if the event log should be attached to + a email alert." + ::= { remoteAlertIdsEntry 9 } + + remoteAlertIdEntrySyslogPortAssignment OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Syslog port number." + ::= { remoteAlertIdsEntry 10 } + + remoteAlertIdEntrySyslogHostname OBJECT-TYPE -- IMM2-only + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Syslog hostname or IP address." + ::= { remoteAlertIdsEntry 11 } + + + remoteAlertIdEntryType OBJECT-TYPE + SYNTAX INTEGER { + email(1), + syslog(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Alert recipient type." + ::= { remoteAlertIdsEntry 12 } + + remoteAlertFiltersTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAlertFiltersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Alert Filters. The entries (rows) in this table correspond 1-1 with the entries in the + remoteAlertIdsTable. They are correlated by index. " + ::= { remoteAlertIds 2 } + + remoteAlertFiltersEntry OBJECT-TYPE + SYNTAX RemoteAlertFiltersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Remote Filters entries." + INDEX { rafIndex } + ::= { remoteAlertFiltersTable 1 } + + RemoteAlertFiltersEntry ::= SEQUENCE { + rafIndex INTEGER(0..255), + rafSpTrapTempC INTEGER, + rafSpTrapVoltC INTEGER, + rafSpTrapPowerC INTEGER, + rafSpTrapHdC INTEGER, + rafSpTrapFanC INTEGER, + rafSpTrapIhcC INTEGER, + rafSpTrapCPUC INTEGER, + rafSpTrapMemoryC INTEGER, + rafSpTrapRdpsC INTEGER, + rafSpTrapHardwareC INTEGER, + rafSpTrapRdpsN INTEGER, + rafSpTrapTempN INTEGER, + rafSpTrapVoltN INTEGER, + rafSpTrapPowerN INTEGER, + rafSpTrapFanN INTEGER, + rafSpTrapCPUN INTEGER, + rafSpTrapMemoryN INTEGER, + rafSpTrapHardwareN INTEGER, + rafSpTrapRLogin INTEGER, + rafSpTrapOsToS INTEGER, + rafSpTrapAppS INTEGER, + rafSpTrapPowerS INTEGER, + rafSpTrapBootS INTEGER, + rafSpTrapLdrToS INTEGER, + rafSpTrapPFAS INTEGER, + rafSpTrapSysLogS INTEGER, + rafSpTrapNwChangeS INTEGER, + rafSpTrapAllAuditS INTEGER + } + + rafIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for User Authority Level entry." + ::= { remoteAlertFiltersEntry 1 } + + + rafSpTrapTempC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Temperature threshold exceeded." + ::= { remoteAlertFiltersEntry 2 } + + rafSpTrapVoltC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Voltage threshold exceeded." + ::= { remoteAlertFiltersEntry 3 } + + rafSpTrapPowerC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Power failure." + ::= { remoteAlertFiltersEntry 4 } + + rafSpTrapHdC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Hard disk drive failure." + ::= { remoteAlertFiltersEntry 5 } + + rafSpTrapFanC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Single Fan failure." + ::= { remoteAlertFiltersEntry 6 } + + + rafSpTrapIhcC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Incompatible hardware configuration." + ::= { remoteAlertFiltersEntry 7 } + + rafSpTrapCPUC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: CPU Error." + ::= { remoteAlertFiltersEntry 8 } + + rafSpTrapMemoryC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Memory Error." + ::= { remoteAlertFiltersEntry 9 } + + rafSpTrapRdpsC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Redundant Power Supply failure." + ::= { remoteAlertFiltersEntry 10 } + + rafSpTrapHardwareC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Other Failure - refer to Message ID for specific condition." + ::= { remoteAlertFiltersEntry 11 } + + + rafSpTrapRdpsN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Redundant Power Supply failure." + ::= { remoteAlertFiltersEntry 12 } + + rafSpTrapTempN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Temperature threshold exceeded." + ::= { remoteAlertFiltersEntry 13 } + + rafSpTrapVoltN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Voltage threshold exceeded." + ::= { remoteAlertFiltersEntry 14 } + + rafSpTrapPowerN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Power." + ::= { remoteAlertFiltersEntry 15 } + + rafSpTrapFanN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Fan Error." + ::= { remoteAlertFiltersEntry 16 } + + rafSpTrapCPUN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { remoteAlertFiltersEntry 17 } + + rafSpTrapMemoryN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { remoteAlertFiltersEntry 18 } + + rafSpTrapHardwareN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Warning - refer to Message ID for specific condition." + ::= { remoteAlertFiltersEntry 19 } + + rafSpTrapRLogin OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Sev-Off Alert: Event Remote Login." + ::= { remoteAlertFiltersEntry 20 } + + + rafSpTrapOsToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Timeout value exceeded." + ::= { remoteAlertFiltersEntry 21 } + + rafSpTrapAppS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Application Alert. Refer to Message ID for specific condition." + ::= { remoteAlertFiltersEntry 22 } + + rafSpTrapPowerS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Power On or Off." -- Off only for IMM1 + ::= { remoteAlertFiltersEntry 23 } + + rafSpTrapBootS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Boot Failure." + ::= { remoteAlertFiltersEntry 24 } + + rafSpTrapLdrToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Loader Timeout." + ::= { remoteAlertFiltersEntry 25 } + + rafSpTrapPFAS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Predictive Failure Analysis(PFA) information." + ::= { remoteAlertFiltersEntry 26 } + + rafSpTrapSysLogS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Log 75% full." + ::= { remoteAlertFiltersEntry 27 } + + rafSpTrapNwChangeS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Network change notification." + ::= { remoteAlertFiltersEntry 28 } + + rafSpTrapAllAuditS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: All Audit Events notification." + ::= { remoteAlertFiltersEntry 29 } + + generateTestAlert OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Generate a Test Alert. This will send a test alert to all configured + and enabled remote alert receipients. The text portion of the + alert will contain 'Application Posted Alert to IMM'." + ::= { remoteAlertIds 30 } + + -- *********************************************************************** + -- Remote Access Profiles + -- *********************************************************************** + remoteAccessIds OBJECT IDENTIFIER ::= { remoteAccessConfig 4 } + + + remoteAccessIdsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAccessIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of remote access profiles. + + This table lets you to configure all login profiles. + You can define up to 12 unique profiles. + + Note: By default, the remote supervisor adapter + comes configured with one login profile that allows remote + access using a login ID of 'USERID' and a password of 'PASSW0RD' + (the 0 is a zero). To avoid a potential security exposure, + we strongly recommend that you change this default Login + Profile to values of your choice." + ::= { remoteAccessIds 1 } + + remoteAccessIdsEntry OBJECT-TYPE + SYNTAX RemoteAccessIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Remote access entries." + INDEX { remoteAccessIdEntryIndex } + ::= { remoteAccessIdsTable 1 } + + + RemoteAccessIdsEntry ::= SEQUENCE { + remoteAccessIdEntryIndex INTEGER, + remoteAccessIdEntryUserId OCTET STRING, + remoteAccessIdEntryPassword OCTET STRING, + remoteAccessIdEntryUserPwdLeftDays INTEGER + } + + + remoteAccessIdEntryIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for Remote access entry." + ::= { remoteAccessIdsEntry 1 } + + remoteAccessIdEntryUserId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remote access entry null terminated string that + contains the user-id. This can only be modified from + blank to non-blank, then back to blank." + ::= { remoteAccessIdsEntry 2 } + + remoteAccessIdEntryPassword OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..20)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remote access entry null terminated string that + contains the password. On a read a NULL string + will be returned for security reasons." + ::= { remoteAccessIdsEntry 3 } + + -- made part of user structure instead of separate structure + remoteAccessIdEntryUserPwdLeftDays OBJECT-TYPE + SYNTAX INTEGER(0..365) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "left days before password expired for selected user" + ::= {remoteAccessIdsEntry 4 } + + -- 51.1.4.1.4.2 + remoteAccessUserAuthorityLevelTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAccessUserAuthorityLevelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of user authority level profiles." + ::= { remoteAccessIds 2 } + + remoteAccessUserAuthorityLevelEntry OBJECT-TYPE + SYNTAX RemoteAccessUserAuthorityLevelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "User authority level entries." + INDEX { ualIndex } + ::= { remoteAccessUserAuthorityLevelTable 1 } + + RemoteAccessUserAuthorityLevelEntry ::= SEQUENCE { + ualIndex INTEGER(0..255), + ualId OCTET STRING (SIZE(0..16)), + ualSupervisor INTEGER, + ualReadOnly INTEGER, + ualAccountManagement INTEGER, + ualConsoleAccess INTEGER, + ualConsoleAndVirtualMediaAccess INTEGER, + ualServerPowerAccess INTEGER, + ualAllowClearLog INTEGER, + ualAdapterBasicConfig INTEGER, + ualAdapterNetworkAndSecurityConfig INTEGER, + ualAdapterAdvancedConfig INTEGER + } + + ualIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for User Authority Level entry." + ::= { remoteAccessUserAuthorityLevelEntry 1 } + + ualId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "User ID" + ::= { remoteAccessUserAuthorityLevelEntry 2 } + + ualSupervisor OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User has no restrictions." + ::= { remoteAccessUserAuthorityLevelEntry 3 } + + ualReadOnly OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User has only read-only access, and cannot perform any save, modify, + clear, or state affecting operations (eg. restart IMM, restore defaults, + upgrade the firmware, etc.)." + ::= { remoteAccessUserAuthorityLevelEntry 4 } + + ualAccountManagement OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can add/modify/delete users and change the global login settings in + the Login Profiles panel." + ::= { remoteAccessUserAuthorityLevelEntry 5 } + + ualConsoleAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can access the remote console." + ::= { remoteAccessUserAuthorityLevelEntry 6 } + + ualConsoleAndVirtualMediaAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can access both the remote console and the virtual media feature." + ::= { remoteAccessUserAuthorityLevelEntry 7 } + + ualServerPowerAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can access the power on and restart functions for the remote server. + These functions are available via the Power/Restart panel." + ::= { remoteAccessUserAuthorityLevelEntry 8 } + + ualAllowClearLog OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can clear the event logs. Everyone can look at the + event logs, but this particular permission is required to clear the logs." + ::= { remoteAccessUserAuthorityLevelEntry 9 } + + ualAdapterBasicConfig OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can modify configuration parameters in the System Settings and Alerts + panels." + ::= { remoteAccessUserAuthorityLevelEntry 10 } + + ualAdapterNetworkAndSecurityConfig OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can modify configuration parameters in the Security, Network Protocols, + Network Interface, Port Assignments, and Serial Port panels." + ::= { remoteAccessUserAuthorityLevelEntry 11 } + + ualAdapterAdvancedConfig OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User has no restrictions when configuring the adapter. In addition, the + user is said to have administrative access to the IMM, meaning that the + user can also perform the following advanced functions: firmware upgrades, + PXE network boot, restore adapter factory defaults, modify and restore + adapter configuration from a configuration file, and restart/reset the + adapter." + ::= { remoteAccessUserAuthorityLevelEntry 12 } + + -- ************************************************************************************ + -- Group Profiles for LDAP Users + -- NOTE: This is an IMM1 only function and should return Not Found until implemented + -- ************************************************************************************* + groupProfiles OBJECT IDENTIFIER ::= { remoteAccessConfig 5 } + groupIdsTable OBJECT-TYPE + SYNTAX SEQUENCE OF GroupIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Group profiles. + + This table lets you to configure all group profiles. + You can define up to 16 unique profiles." + ::= { groupProfiles 1 } + + groupIdsEntry OBJECT-TYPE + SYNTAX GroupIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Group ID entries." + INDEX { groupIndex } + ::= { groupIdsTable 1 } + + + GroupIdsEntry ::= SEQUENCE { + groupIndex INTEGER, + groupId OCTET STRING, + groupRole OCTET STRING + } + + + groupIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for Group IDs entry." + ::= { groupIdsEntry 1 } + + groupId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group ID. It is a null terminated string that contains the group-id. + It must not be a duplicate of any previously configured ones." + ::= { groupIdsEntry 2 } + + + groupRole OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Group Role. It indicates if the group has supervisor, operator, + or custom access." + ::= { groupIdsEntry 3 } + + groupRBSroleTable OBJECT-TYPE + SYNTAX SEQUENCE OF GroupRBSroleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Group Role profiles." + ::= { groupProfiles 2 } + + groupRBSroleEntry OBJECT-TYPE + SYNTAX GroupRBSroleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Group Role entries." + INDEX { groupRBSroleIndex } + ::= { groupRBSroleTable 1 } + + GroupRBSroleEntry ::= SEQUENCE { + groupRBSroleIndex INTEGER, + groupRBSroleId OCTET STRING, + groupRBSSupervisor INTEGER, + groupRBSOperator INTEGER, + groupRBSNetworkSecurity INTEGER, + groupRBSUserAccountManagement INTEGER, + groupRBSRemoteConsoleAccess INTEGER, + groupRBSRemoteConsoleRemoteDiskAccess INTEGER, + groupRBSServerPowerRestartAccess INTEGER, + groupRBSBasicAdapterConfiguration INTEGER, + groupRBSClearEventLog INTEGER, + groupRBSAdvancedAdapterConfiguration INTEGER + } + + + groupRBSroleIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for Group Role entry." + ::= { groupRBSroleEntry 1 } + + groupRBSroleId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Group ID" + ::= { groupRBSroleEntry 2 } + + groupRBSSupervisor OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group has no restrictions." + ::= { groupRBSroleEntry 3 } + + groupRBSOperator OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group has read-only access, and cannot perform + any save, modify, clear, or state affecting operations + (e.g. restart IMM, restore defaults, upgrade the firmware, etc.)." + ::= { groupRBSroleEntry 4 } + + groupRBSNetworkSecurity OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group can modify the configuration in the Security, Network Protocols, + Network Interface, Port Assignments, and Serial Port panels." + ::= { groupRBSroleEntry 5 } + + groupRBSUserAccountManagement OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group can add/modify/delete users and change the Global Login Settings + in the Login Profiles panel." + ::= { groupRBSroleEntry 6 } + + groupRBSRemoteConsoleAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group can access the remote server console." + ::= { groupRBSroleEntry 7 } + + groupRBSRemoteConsoleRemoteDiskAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group can access the remote server console and the remote disk functions + for the remote server." + ::= { groupRBSroleEntry 8 } + + groupRBSServerPowerRestartAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group can access the power on, restart and server timeout functions for + the remote server." + ::= { groupRBSroleEntry 9 } + + groupRBSBasicAdapterConfiguration OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group can modify configuration parameters in the System Settings (excluding + Contact, Location and Server Timeouts) and Alerts panels." + ::= { groupRBSroleEntry 10 } + + groupRBSClearEventLog OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group can clear the event logs. Everyone can look at the event logs, but + this particular permission is required to clear the logs." + ::= { groupRBSroleEntry 11 } + + groupRBSAdvancedAdapterConfiguration OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Group has no restrictions when configuring the adapter. In addition the + user is said to have administrative access to the IMM, meaning that the user + can also perform the following advanced functions: firmware upgrades, PXE + network boot, restore adapter factory defaults, modify and restore adapter + configuration from a configuration file, and restart/reset the adapter. This + excludes Server Power/Restart Control and timeout functions." + ::= { groupRBSroleEntry 12 } + + -- ---------------------------------------------------------- -- + -- The Remote Access ID SSH Client Authentication Public Key Group NOTE: IMM2-only + -- ---------------------------------------------------------- -- + sshClientAuth OBJECT IDENTIFIER ::= { remoteAccessConfig 6 } + + sshClientAuthPubKeyTable OBJECT-TYPE + SYNTAX SEQUENCE OF SSHClientAuthPubKeyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table that contains client authentication + public key information." + ::= { sshClientAuth 1 } + + sshClientAuthPubKeyEntry OBJECT-TYPE + SYNTAX SSHClientAuthPubKeyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A information list about a particular SSH + public key used for client authentication. + The primary table index is the same value as + the associated remoteAccessIdEntryIndex. + The secondary table index allows selection + of the Nth public key for that + remoteAccessIdEntryIndex." + INDEX { sshClientAuthRemoteAccessIdIndex , + sshClientAuthPubKeyIndex } + ::= { sshClientAuthPubKeyTable 1 } + + SSHClientAuthPubKeyEntry ::= + SEQUENCE { + sshClientAuthRemoteAccessIdIndex INTEGER, + sshClientAuthPubKeyIndex INTEGER, + sshClientAuthPubKeyType INTEGER, + sshClientAuthPubKeySize INTEGER, + sshClientAuthPubKeyFingerprint OCTET STRING, + sshClientAuthPubKeyAcceptFrom OCTET STRING, + sshClientAuthPubKeyComment OCTET STRING, + sshClientAuthPubKeyAction INTEGER, + sshClientAuthPubKeyEntryStatus EntryStatus + } + + sshClientAuthRemoteAccessIdIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The primary table index is the same value as + the associated remoteAccessIdEntryIndex used + as an index into the remoteAccessIdsTable." + ::= { sshClientAuthPubKeyEntry 1 } + + sshClientAuthPubKeyIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The secondary table index used to select + one of the client authentication public + keys for a particular remote access Id. + The index is an integer value from 1 to N + where N is the number of keys associated + with a particular remote access Id. + An addition always causes the value of N to increase + by one, effectively adding an entry after the + existing keys for that remote access Id. + If an entry is deleted from the table by + setting sshClientAuthPubKeyEntryStatus = invalid, + the key associated with that entry is deleted. + If the deleted key was not the last key for + a remote access Id (sshClientAuthPubKeyIndex is + not the 'last' or Nth entry), the subsequent entries + are renumbered after the deletion. A deletion + always causes the value of N to decrease by one. + The underlying SSH server implementation searches + the keys in order from 1 to N when attempting public + key authentication. + + NOTE:A maximum of 4 public keys can be installed + for one remote access Id." + ::= { sshClientAuthPubKeyEntry 2 } + + sshClientAuthPubKeyType OBJECT-TYPE + SYNTAX INTEGER { + sshDss (1), + sshRsa (2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of the SSH public key represented by + this entry." + ::= { sshClientAuthPubKeyEntry 3 } + + sshClientAuthPubKeySize OBJECT-TYPE + SYNTAX INTEGER { + bits512 (1), + bits768 (2), + bits1024 (3), + bits2048 (4), + bits4096 (5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the SSH public key represented by + this entry." + ::= { sshClientAuthPubKeyEntry 4 } + + sshClientAuthPubKeyFingerprint OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The RSA fingerprint of the SSH public key represented + by this entry. + This value can be used with the SSH client to + verify, on the initial connection, that the Secure Shell + server responding to the request is the server running + on the managed entity. This is the fingerprint of the + operational host key pair. If the key pair represented + by this entry is not operational then sixteen null octets + must be returned." + ::= { sshClientAuthPubKeyEntry 5 } + + sshClientAuthPubKeyAcceptFrom OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is a filter that describes the set of SSH client + IP addresses and host names that can establish + SSH connections to the AMM authenticated by the public key + represented by this entry of the table. The filter is a + comma-separated list of IP addresses and/or hostnames. + A question mark may be used to match any single character. + An asterisk may be used to match multiple characters. + An exclamation point may preceed an IP address or hostname + to deny acccess from that IP address or hostname. + + The format of the Accept From specification is: + from=PATTERN-LIST + PATTERN-LIST is the filter, which must be enclosed in + double quotation marks. + + NOTE:This MIB object can be manipulated after the + corresponding SSH public key is installed." + ::= { sshClientAuthPubKeyEntry 6 } + + sshClientAuthPubKeyComment OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is a descriptive string that the administrator may + use to help identify the public key represented by this entry. + It serves no function in the operation of the SSH server. + + NOTE:This MIB object can be manipulated after the + corresponding SSH public key is installed." + ::= { sshClientAuthPubKeyEntry 7 } + + sshClientAuthPubKeyAction OBJECT-TYPE + SYNTAX INTEGER { + import(1), + export(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "import(1) starts the TFTP file transfer of an SSH + client authentication public key from the TFTP + server to the AMM. The import operation is only + accepted if the associated RemoteAccessIdsEntry row + is configured and the current value of + sshClientAuthPubKeyEntryStatus is underCreation(3) + or valid(1), if the current value of sshClientAuthPubKeyEntryStatus + is valid(1), it will replace the key with a new key, + If the import is successful the value of + sshClientAuthPubKeyRowStatus changes to valid(1). + export(2) starts the TFTP file transfer of an SSH + client authentication public key from the AMM to the TFTP + server. The export operation is only accepted if + the current value of sshClientAuthPubKeyEntryStatus + is valid(1). + + NOTE: Users should compare the fingerprint value + sshClientAuthPubKeyFingerprint to the + fingerprint of client authentication key files + imported or exported using the TFTP file transfer + protocol to guard against possible file corruption. + + Value returned for the GET command is meaningless + for this MIB object." + ::= { sshClientAuthPubKeyEntry 8 } + + sshClientAuthPubKeyEntryStatus OBJECT-TYPE + SYNTAX EntryStatus + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object manages the creation and deletion of this entry. + The steps recommended to install and to activate a new client + authorization public key are: + 1. Set values for sshClientAuthPubKeyTftpServer, + sshClientAuthPubKeyFileName, sshClientAuthPubKeyFileFormat + 2. Create a new entry in this table + sshClientAuthPubKeyEntryStatus = createRequest + 3. Import a new key sshClientAuthPubKeyAction = import + This entry will be valid after sshClientAuthPubKeyAction + is successfully imported. + 4. Set sshClientAuthPubKeyAcceptFrom and + sshClientAuthPubKeyComment as required. + + valid(1) - Indicates that the public key pair represented + by this entry is available for use by the Secure + Shell Server for client authentication. + + createRequest(2) - A new entry will be created in this table + for the specified host key pair and the new + entry will transition to the underCreation(3) + state. The operation is only accepted if the + associated RemoteAccessIdsEntry row defining + a local user account is configured. + + underCreation(3) - Indicates that this entry exists in the + agent but is unavailable for use. After completing the + create operation, the agent will set this object to + underCreation(3). + + invalid(4) - Deletes this entry and any client authentication + public key that may be associated with it." + ::= { sshClientAuthPubKeyEntry 9 } + + sshClientAuthPubKeyUnused OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of available storage locations that may be + used to install additional Client Authentication + Public Keys. This number decreases by one when a new + key is added to the configuration." + ::= { sshClientAuth 2 } + + sshClientAuthPubKeyTftpServer OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IP address or host name of the TFTP server where an SSH client + authentication public key is to be installed from or exported + to. The address must be entered in a dotted decimal + IP string (e.g. 9.37.44.2)." + ::= { sshClientAuth 3 } + + sshClientAuthPubKeyFileName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name on the TFTP server of an SSH client + authentication public key." + ::= { sshClientAuth 4 } + + sshClientAuthPubKeyFileFormat OBJECT-TYPE + SYNTAX INTEGER { + openSSH (1), + rfc4716 (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File format of SSH client authentication public key files + imported from or exported to the TFTP file server." + ::= { sshClientAuth 5 } + + + -- *********************************************************************** + -- SP Clock + -- *********************************************************************** + spClock OBJECT IDENTIFIER ::= { configureSP 2 } + + spClockDateAndTimeSetting OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IMM clock date and time setting. + A date-time specification for the local time of day. + For example to set the date and time to + March 4, 2001 at 06:00:00AM, set the value to:'03/04/2001,06:00:00'. + field contents range + _____ ________ _____ + 1 month 01..12 + 2 separator '/' + 3 day 01..31 + 4 separator '/' + 5 year 2000..2037 + 6 separator ',' + 7 hour 00..23 + 8 separator ':' + 9 minutes 00..59 + 10 separator ':' + 11 seconds 00..59 + " + ::= { spClock 1 } + + spClockTimezoneSetting OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IMM clock Greenwich Mean Time(GMT) offset and Daylight Saving Time(DST) + settings. + + The following table lists GMT offsets and associated DST + information. DST is not observed in time zones where + the 'Observe DST' value does not contain 'yes' in the table. + Also, note that in some cases additional information + is required to determine the clock adjustment when DST is + observed. + + Examples + -to set the GMT offset to +3:30, + set the value to:'+3:30,no' + + -for Eastern Standard Time and observing DST, + set the value to:'-5:00,yes' + + -for Turkey and observing DST, + set the value to:'+2:00,yes,3' + + GMT Observe Additional + Offset DST? DST value + ______ _______ __________ + GMT+0 yes | no + GMT+1 yes | no + GMT+2 yes | no When 'Observe DST?' value is 'yes': + '1' Europe/Eastern Europe (ee) + '3' Turkey (tky) + '4' Asia/Beirut (bei) + '5' Asia/Amman (amm) + '6' Asia/Jerusalem (jem) + GMT+3 no + GMT+3:30 yes | no + GMT+4 no + GMT+4:30 no + GMT+5 no + GMT+5:30 no + GMT+5:45 no + GMT+6 no + GMT+6:30 no + GMT+7 no + GMT+8 no + GMT+9 no + GMT+9:30 yes | no + GMT+10 yes | no + GMT+11 no + GMT+12 yes | no + GMT+13 no + GMT-12 no + GMT-11 yes | no + GMT-10 no + GMT-9 yes | no + GMT-8 yes | no + GMT-7 yes | no When 'Observe DST?' value is 'yes': + '7' US/Mountain (mtn) + '8' America/Mazatlan (maz) + GMT-6 yes | no When 'Observe DST?' value is 'yes': + '9' America/Mexico City (mex) + '10' Canada/Central (cna) + GMT-5 yes | no When 'Observe DST?' value is 'yes': + '11' Cuba (cub) + '12' Canada, US/East-Indiana (ein) + GMT-4:30 no + GMT-4 yes | no When 'Observe DST?' value is 'yes': + '13' America/Asuncion (asu) + '14' America/Cuiaba (cui) + '15' America/Santiago (san) + '16' Canada/Atlantic (cat) + GMT-3:30 yes | no + GMT-3 yes | no When 'Observe DST?' value is 'yes': + '17' America/Gothab (gtb) + '18' America/Montevideo (moo) + '19' Brazil/East (bre) + GMT-2 no + GMT-1 yes | no " + ::= { spClock 2 } + + + -- *********************************************************************** + -- SP identification + -- *********************************************************************** + spIdentification OBJECT IDENTIFIER ::= { configureSP 3 } + + spTxtId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..256)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IMM text ID. Note: Do not put any 'space + character' at end of the ID." + ::= { spIdentification 1 } + + spRoomID OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Room where the system is located. In some hardware configurations this object can only be read." + ::= { spIdentification 2 } + + spRackID OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "ID for Rack that contains this system. In some hardware configurations this object can only be read." + ::= { spIdentification 3 } + + spRackUnitPosition OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Position within the rack for this system. In some hardware configurations this object can only be read." + ::= { spIdentification 4 } + + spRackUnitHeight OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of rack units occupied by this system." + ::= { spIdentification 5 } + + spRackBladeBay OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Bay number for system contained in a blade chassis." + ::= { spIdentification 6 } + + spFullPostalAddress OBJECT-TYPE -- IMM2-only + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 300 byte string that contains the + full postal address for this system." + ::= { spIdentification 7 } + + -- *********************************************************************** + -- Network Configuration + -- *********************************************************************** + networkConfiguration OBJECT IDENTIFIER ::= { configureSP 4 } + + -- *********************************************************************** + -- Network Interfaces + -- *********************************************************************** + networkInterfaces OBJECT IDENTIFIER ::= { networkConfiguration 1 } + -- *********************************************************************** + -- Ethernet Interface 1 + -- *********************************************************************** + ethernetInterface OBJECT IDENTIFIER ::= { networkInterfaces 1 } + + ethernetInterfaceType OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of interface. Indicates 'Ethernet-1'." + ::= { ethernetInterface 1 } + + ethernetInterfaceEnabled OBJECT-TYPE + SYNTAX INTEGER { + interfaceDisabled(0), + interfaceEnabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the interface. + + Note: To alter any of the configuration settings for the ethernet + interface the following procedure should be used: + (1)This object should be written with 'interfaceDisabled' + (2)Make the modifications to other settings + (3)This object should be written with 'interfaceEnabled' + (4)Restart the remote supervisor adapter + + Also note that when this object has a value of interfaceEnabled + the following is verifed, if this verification fails a error + response will be returned for the set of this object and the + ethernet interface will be left in a disabled state. + (1)Is the range for the MTU between 60-1500 + (2)Are the speed settings one of 10Mb, 100Mb, AUTO + (3)Are the speed settings one of Half, Full, AUTO + (4)If DHCP is disabled then is there a valid IP address + " + ::= { ethernetInterface 2 } + + ethernetInterfaceHostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the 64 byte null terminated DNS host name for this + interface." + ::= { ethernetInterface 3 } + + ethernetInterfaceIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IP address for the ethernet interface." + ::= { ethernetInterface 4 } + + ethernetInterfaceAutoNegotiate OBJECT-TYPE + SYNTAX INTEGER { + enabled(0), + disabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If this is enabled, then we should ignore Speed/Duplex." + ::= { ethernetInterface 5 } + + ethernetInterfaceDataRate OBJECT-TYPE + SYNTAX INTEGER { + enet10Megabit(3), + enet100Megabit(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the data transfer rate to be used over the ethernet + interface 10Mb/100Mb/Auto. Note that the value of this variable + is ignored if ethernetInterfaceAutoNegotiate is set to enabled(0)." + ::= { ethernetInterface 6 } + + ethernetInterfaceDuplexSetting OBJECT-TYPE + SYNTAX INTEGER { + fullDuplex(1), + halfDuplex(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the duplex settings for the data transfer rate to be used over + the ethernet interface Half/Full/Auto." + ::= { ethernetInterface 7 } + + ethernetInterfaceLAA OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(17)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the locally administered MAC address. The locally administered + address must be a hexadecimal value between 000000000000 - FFFFFFFFFFFF. This + value must be in the form XX:XX:XX:XX:XX:XX where 'X' is a number between 0 - 9 and + A - F. This IMM subsystem does not allow use of a multicast address. A multicast + address has the least significant bit of the first byte set to a 1. The first + byte must, therefore, be an even number." + ::= { ethernetInterface 8 } + + ethernetInterfaceDhcpEnabled OBJECT-TYPE + SYNTAX INTEGER { + dhcpDisabled(0), + dhcpEnabled(1), + dhcpTry(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable DHCP on this interface." + ::= { ethernetInterface 9 } + + ethernetInterfaceGatewayIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IP address of the gateway/router for the ethernet + interface." + ::= { ethernetInterface 10 } + + ethernetInterfaceBIA OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Specifies the burned-in MAC (BIA) address." + ::= { ethernetInterface 11 } + + ethernetInterfaceMTU OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Maximum Transmission Unit(MTU) for the ethernet + interface" + ::= { ethernetInterface 12 } + + ethernetInterfaceSubnetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the ethernet + interface" + ::= { ethernetInterface 13 } + + -- *********************************************************************** + -- DHCP Server Assigned Settings for ethernet interface 1 + -- *********************************************************************** + dhcpEthernetInterface OBJECT IDENTIFIER ::= { ethernetInterface 14 } + + dhcpHostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the 64 byte null terminated DNS host name for this + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 1 } + + dhcpIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the IP address for the ehternet interface, + assigned by the DHCP server." + ::= { dhcpEthernetInterface 2 } + + dhcpGatewayIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the IP address of the gateway/router for the ethernet + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 3 } + + dhcpSubnetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the ethernet + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 4 } + + dhcpDomainName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the 64 byte null terminated Domain Name for this + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 5 } + + dhcpPrimaryDNSServer OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the Primary DNS server, assigned by the DHCP server." + ::= { dhcpEthernetInterface 6 } + + dhcpSecondaryDNSServer OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the Secondary DNS server, assigned by the DHCP server." + ::= { dhcpEthernetInterface 7 } + + dhcpTertiaryDNSServer OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the tertiary DNS server, assigned by the DHCP server." + ::= { dhcpEthernetInterface 8 } + + -- ******************************************************************************** + -- VLAN configuration NOTE: IMM2-only + -- ******************************************************************************** + ethernetInterfaceVlan OBJECT-TYPE + SYNTAX INTEGER { + enabled(0), + disabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If this is enabled, assign VLAN ID needs to be assigned. + NOTE: This is not supported on blades." + ::= { ethernetInterface 15 } + + ethernetInterfaceVlanID OBJECT-TYPE + SYNTAX INTEGER (1..4094) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the VLAN ID for the ethernet interface. + NOTE: This is not supported in blades." + ::= { ethernetInterface 16 } + + -- ******************************************************************************** + -- Ethernet Interface IPv6 + -- ******************************************************************************** + ethernetInterfaceIPv6 OBJECT IDENTIFIER ::= { networkInterfaces 4 } + + + ethernetInterfaceIPv6Enabled OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The current IPv6 enabled or disabled state of this IMM. + + NOTE: If IPv6 address(es) have been configured for one or more + interfaces/protocols/services on this IMM, when you update + the firmware to a level which does not support IPv6, all IPv6 + connectivity will be lost, and services/interfaces for which an IPv6 + address was configured may not function properly. You will be required + to reconfigure these services/interfaces." + ::= { ethernetInterfaceIPv6 2 } + + ethernetInterfaceIPv6Config OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6 5 } + + ethernetInterfaceIPv6LocalAddress OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6Config 1 } + + ethernetInterfaceIPv6LinkLocalAddress OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IPv6 link local IP address for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceIPv6LocalAddress 1 } + + ethernetInterfaceIPv6StaticIPConfig OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6Config 2 } + + ethernetInterfaceIPv6StaticIPConfigEnabled OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address enabled or disabled state for the ethernet interface." + ::= { ethernetInterfaceIPv6StaticIPConfig 1 } + + ethernetInterfaceIPv6StaticIPAddress OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceIPv6StaticIPConfig 2 } + + ethernetInterfaceIPv6StaticIPAddressPrefixLen OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address prefix length for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value 0." + ::= { ethernetInterfaceIPv6StaticIPConfig 3 } + + ethernetInterfaceIPv6StaticIPDefaultRoute OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address default route for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceIPv6StaticIPConfig 4 } + + ethernetInterfaceIPv6AutoIPConfig OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6Config 3 } + + ethernetInterfaceDHCPv6Config OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6AutoIPConfig 2 } + + ethernetInterfaceDHCPv6Enabled OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The DHCPv6 enabled or disabled state for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled is currently disabled, Disabling + ethernetInterfaceDHCPv6Enabled will cause ethernetInterfaceIPv6AutoIPConfigEnabled to be disabled. + NOTE: If ethernetInterfaceIPv6StaticIPConfigEnabled and + ethernetInterfaceIPv6StatelessAutoConfigEnabled are currently disabled, Disabling + ethernetInterfaceDHCPv6Enabled will not be allowed." + ::= { ethernetInterfaceDHCPv6Config 1 } + + ethernetInterfaceDHCPv6IPAddress OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IPv6 address for the ethernet interface, assigned by DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the value + '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 2 } + + ethernetInterfaceDHCPv6DomainName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The 64 byte Domain Name for the ethernet interface, + assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '(Not available)'." + ::= { ethernetInterfaceDHCPv6Config 4 } + + ethernetInterfaceDHCPv6PrimaryDNSServer OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The primary DNS server, assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 5 } + + ethernetInterfaceDHCPv6SecondaryDNSServer OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The secondary DNS server, assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 6 } + + ethernetInterfaceDHCPv6TertiaryDNSServer OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The tertiary DNS server, assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 7 } + + ethernetInterfaceDHCPv6Server OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DHCPv6 server IPv6 address used to acquire the DHCP settings. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 8 } + + ethernetInterfaceIPv6StatelessAutoConfig OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6AutoIPConfig 3 } + + ethernetInterfaceIPv6StatelessAutoConfigEnabled OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 stateless auto-configuration enabled or disabled state for the ethernet interface. + + NOTE: If EthernetfInterfaceDHCPv6Enabled is currently disabled, Disabling + ethernetInterfaceIPv6StatelessAutoConfigEnabled will cause ethernetInterfaceIPv6AutoIPConfigEnabled + to be disabled." + ::= { ethernetInterfaceIPv6StatelessAutoConfig 1 } + + ethernetInterfaceStatelessAutoConfigAddressesTable OBJECT-TYPE + SYNTAX SEQUENCE OF EthernetInterfaceStatelessAutoConfigAddressesEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of stateless Auto-Config addresses entries" + ::= { ethernetInterfaceIPv6StatelessAutoConfig 2 } + + ethernetInterfaceStatelessAutoConfigAddressesEntry OBJECT-TYPE + SYNTAX EthernetInterfaceStatelessAutoConfigAddressesEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Stateless Auto-Config address entries" + INDEX { ethernetInterfaceStatelessAutoConfigAddressesIndex } + ::= { ethernetInterfaceStatelessAutoConfigAddressesTable 1 } + + EthernetInterfaceStatelessAutoConfigAddressesEntry ::= SEQUENCE { + ethernetInterfaceStatelessAutoConfigAddressesIndex INTEGER, + ethernetInterfaceStatelessAutoConfigAddresses InetAddressIPv6, + ethernetInterfaceStatelessAutoConfigAddressesPrefixLen INTEGER + } + + ethernetInterfaceStatelessAutoConfigAddressesIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for stateless Auto-Config addresses. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled or + ethernetInterfaceIPv6Enabled is currently disabled, this + object will show nothing." + ::= { ethernetInterfaceStatelessAutoConfigAddressesEntry 1 } + + ethernetInterfaceStatelessAutoConfigAddresses OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The stateless Auto-Configuration IPv6 address. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled or + ethernetInterfaceIPv6Enabled is currently disabled, this + object will show nothing." + ::= { ethernetInterfaceStatelessAutoConfigAddressesEntry 2 } + + ethernetInterfaceStatelessAutoConfigAddressesPrefixLen OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The stateless Auto-Configration address prefix length. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled or + ethernetInterfaceIPv6Enabled is currently disabled, this + object will show nothing." + ::= { ethernetInterfaceStatelessAutoConfigAddressesEntry 3 } + + -- ******************************************************************************** + -- VLANs for System Management NOTE: IMM2-only + -- ******************************************************************************** + vlansSM OBJECT IDENTIFIER ::= { networkInterfaces 5 } + + vlansSMvlan1config OBJECT IDENTIFIER ::= { vlansSM 1 } + + vlansSMvlan1Name OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The name of VLAN1, 1-64 characters." + ::= {vlansSMvlan1config 1} + + vlansSMvlan1vlanId OBJECT-TYPE + SYNTAX INTEGER (1..4094) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The VLAN ID for VLAN1." + ::= {vlansSMvlan1config 2} + + vlansSMvlan1State OBJECT-TYPE + SYNTAX INTEGER { disabled(0), + enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of VLAN1" + ::= {vlansSMvlan1config 3} + + vlansSMvlan1RemoteControl OBJECT-TYPE + SYNTAX INTEGER { disabled(0), + enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of the Remote Control feature for VLAN1. + Note that Remote Control can only be enabled on one VLAN." + ::= {vlansSMvlan1config 4} + + vlansSMvlan1SSerialOverLan OBJECT-TYPE + SYNTAX INTEGER { disabled(0), + enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of the Serail Over LAN feature for VLAN1. + Note that Serial Over LAN can only be enabled on one VLAN." + ::= {vlansSMvlan1config 5} + + vlansSMvlan2config OBJECT IDENTIFIER ::= { vlansSM 2 } + + vlansSMvlan2Name OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The name of VLAN1, 1-64 characters." + ::= {vlansSMvlan2config 1} + + vlansSMvlan2vlanId OBJECT-TYPE + SYNTAX INTEGER (1..4094) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The VLAN ID for VLAN2." + ::= {vlansSMvlan2config 2} + + vlansSMvlan2State OBJECT-TYPE + SYNTAX INTEGER { disabled(0), + enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of VLAN2" + ::= {vlansSMvlan2config 3} + + vlansSMvlan2RemoteControl OBJECT-TYPE + SYNTAX INTEGER { disabled(0), + enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of the Remote Control feature for VLAN2. + Note that Remote Control can only be enabled on one VLAN." + ::= {vlansSMvlan2config 4} + + vlansSMvlan2SerialOverLan OBJECT-TYPE + SYNTAX INTEGER { disabled(0), + enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of the Serail Over LAN feature for VLAN2. + Note that Serial Over LAN can only be enabled on one VLAN." + ::= {vlansSMvlan2config 5} + + vlansSMvlan2ipv4Config OBJECT IDENTIFIER ::= { vlansSMvlan2config 6 } + + vlansSMvlan2IPv4Address OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv4 address for the VLAN2 interface." + ::= { vlansSMvlan2ipv4Config 1 } + + vlansSMvlan2IPv4Gateway OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Gateway IPv4 address for the VLAN2 interface." + ::= { vlansSMvlan2ipv4Config 2 } + + vlansSMvlan2IPv4SubnetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the IPv4 address for the VLAN2 interface." + ::= { vlansSMvlan2ipv4Config 3 } + + vlansSMvlan2ipv6Config OBJECT IDENTIFIER ::= { vlansSMvlan2config 7 } + + vlansSMvlan2IPv6Address OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv6 address for the VLAN2 interface." + ::= { vlansSMvlan2ipv6Config 1 } + + vlansSMvlan2IPv6Gateway OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Gateway IPv6 address for the VLAN2 interface." + ::= { vlansSMvlan2ipv6Config 2 } + + vlansSMvlan2IPv6PrefixLength OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Prefix Length for the IPv6 address for the VLAN2 interface." + ::= { vlansSMvlan2ipv6Config 3 } + + vlansSMvlan2ipv4StatusRoutes OBJECT IDENTIFIER ::= { vlansSMvlan2config 8 } + + vlansSMvlan2IPv4StaticRouteIP1 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv4 address for the first IPv4 static route." + ::= { vlansSMvlan2ipv4StatusRoutes 1 } + + vlansSMvlan2IPv4StaticRouteSM1 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the first IPv4 static route." + ::= { vlansSMvlan2ipv4StatusRoutes 2 } + + vlansSMvlan2IPv4StaticRouteIP2 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv4 address for the second IPv4 static route." + ::= { vlansSMvlan2ipv4StatusRoutes 3 } + + vlansSMvlan2IPv4StaticRouteSM2 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the second IPv4 static route." + ::= { vlansSMvlan2ipv4StatusRoutes 4 } + + vlansSMvlan2IPv4StaticRouteIP3 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv4 address for the third IPv4 static route." + ::= { vlansSMvlan2ipv4StatusRoutes 5 } + + vlansSMvlan2IPv4StaticRouteSM3 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the third IPv4 static route." + ::= { vlansSMvlan2ipv4StatusRoutes 6 } + + vlansSMvlan2ipv6StatusRoutes OBJECT IDENTIFIER ::= { vlansSMvlan2config 9 } + + vlansSMvlan2IPv6StaticRouteIP1 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv6 address for the first IPv6 static route." + ::= { vlansSMvlan2ipv6StatusRoutes 1 } + + vlansSMvlan2IPv6StaticRoutePL1 OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Prefix Length for the first IPv6 static route." + ::= { vlansSMvlan2ipv6StatusRoutes 2 } + + vlansSMvlan2IPv6StaticRouteIP2 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv6 address for the second IPv6 static route." + ::= { vlansSMvlan2ipv6StatusRoutes 3 } + + vlansSMvlan2IPv6StaticRoutePL2 OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Prefix Length for the second IPv6 static route." + ::= { vlansSMvlan2ipv6StatusRoutes 4 } + + vlansSMvlan2IPv6StaticRouteIP3 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IPv6 address for the third IPv6 static route." + ::= { vlansSMvlan2ipv6StatusRoutes 5 } + + vlansSMvlan2IPv6StaticRoutePL3 OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Prefix Length for the third IPv6 static route." + ::= { vlansSMvlan2ipv6StatusRoutes 6 } + + vlansSMvlanControl OBJECT IDENTIFIER ::= { vlansSM 3 } + + vlansSMvlanConfigRevertTimout OBJECT-TYPE + SYNTAX INTEGER (1..60) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the VLAN Config Revert Timeout value." + ::= { vlansSMvlanControl 1 } + + vlansSMvlanAction OBJECT-TYPE + SYNTAX INTEGER { + apply(1), + commit(2) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "When the 'apply' setting is written, the VLANs for System Management settings will + be applied and take affect. The settings will not be saved until the 'commit' + setting is written. If the 'commit' setting is not written by the time the VLAN + Config Revert Timer expires, the VLANs for System Management settings will revert + to thier previous values. " + ::= { vlansSMvlanControl 2 } + + ddnsStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Dynamic DNS provides the capability for a networked device + to notify a domain name server to change, in real time, the + active DNS configuration of its configured hostnames, addresses + or other information stored in DNS. With Dynamic DNS, host + computers gain the capability to notify their respective DNS + server of the IP address they have received from a DHCP server + or through self-configuration." + ::= { networkInterfaces 10 } + + hostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the DNS host name for this system. This object + provides the exact same function as ethernetInterfaceHostName" + ::= { networkInterfaces 11 } + + ddnsDomainToUse OBJECT-TYPE + SYNTAX INTEGER { + dhcp(1), + manual(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The domain name to be used with Dynamic DNS. + The value shall be either dhcp or manual" + ::= { networkInterfaces 12 } + + domainName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The user assigned DNS domain name." + ::= { networkInterfaces 13 } + + -- *********************************************************************** + -- LAN over USB Settings for ethernet interface + -- *********************************************************************** + lanOverUSBInterface OBJECT IDENTIFIER ::= { networkInterfaces 14 } + + immUSBIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IP address for the LAN over USB of IMM." + ::= { lanOverUSBInterface 1 } + + immUSBSubnetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the LAN over USB of IMM." + ::= { lanOverUSBInterface 2 } + + + osUSBIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IP address for the LAN over USB of OS." + ::= { lanOverUSBInterface 3 } + + + -- *********************************************************************** + -- TCP/IP Protocol Configuration + -- *********************************************************************** + tcpProtocols OBJECT IDENTIFIER ::= { networkConfiguration 2 } + + -- *********************************************************************** + -- SNMP Agent Configuration + -- *********************************************************************** + snmpAgentConfig OBJECT IDENTIFIER ::= { tcpProtocols 1 } + + snmpSystemName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..48)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 48 byte string that contains the + SNMP agent name." + ::= { snmpAgentConfig 1 } + + snmpSystemContact OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..48)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 48 byte string that contains the + SNMP agent contact name." + ::= { snmpAgentConfig 2 } + + snmpSystemLocation OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..48)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 48 byte string that contains the + SNMP agent location name." + ::= { snmpAgentConfig 3 } + + snmpSystemAgentTrapsDisable OBJECT-TYPE + SYNTAX INTEGER { + trapsEnabled(0), + trapsDisabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable SNMP traps." + ::= { snmpAgentConfig 4 } + + -- *********************************************************************** + -- SNMP Agent Community Configuration + -- *********************************************************************** + snmpAgentCommunityConfig OBJECT IDENTIFIER ::= { snmpAgentConfig 5 } + + + -- *********************************************************************** + -- SNMP Community Configuration table + -- *********************************************************************** + + snmpCommunityTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnmpCommunityEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of SNMP Community entries" + ::= { snmpAgentCommunityConfig 1 } + + snmpCommunityEntry OBJECT-TYPE + SYNTAX SnmpCommunityEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Community table entries" + INDEX { snmpCommunityEntryIndex } + ::= { snmpCommunityTable 1 } + + SnmpCommunityEntry ::= SEQUENCE { + snmpCommunityEntryIndex INTEGER(0..255), + snmpCommunityEntryCommunityName DisplayString (SIZE(0..15)), + snmpCommunityEntryCommunityIpAddress1 OCTET STRING (SIZE(0..63)), + snmpCommunityEntryCommunityIpAddress2 OCTET STRING (SIZE(0..63)), + snmpCommunityEntryCommunityIpAddress3 OCTET STRING (SIZE(0..63)), + snmpCommunityEntryCommunityViewType INTEGER(1..3) + } + + + snmpCommunityEntryIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for SNMP Agent Community entry." + ::= { snmpCommunityEntry 1 } + + snmpCommunityEntryCommunityName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..15)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community entry name. Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpCommunityEntry 2 } + + snmpCommunityEntryCommunityIpAddress1 OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community IP address or host name. + Can either be a dotted decimal IP string(eg. 9.37.44.2) + or host name. This field also allows two + wildcard values for read-Traps and write-Read-Traps communities: + 0.0.0.0 - allow any IPv4 address + 0::0 - allow any IPv6 address" + ::= { snmpCommunityEntry 3 } + + snmpCommunityEntryCommunityIpAddress2 OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community IP address or host name. + Can either be a dotted decimal IP string(eg. 9.37.44.2) + or a host name. This field also allows two + wildcard values for read-Traps and write-Read-Traps communities: + 0.0.0.0 - allow any IPv4 address + 0::0 - allow any IPv6 address" + ::= { snmpCommunityEntry 4 } + + snmpCommunityEntryCommunityIpAddress3 OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community IP address or host name. + Can either be a dotted decimal IP string(eg. 9.37.44.2) + or a host name. This field also allows two + wildcard values for read-Traps and write-Read-Traps communities: + 0.0.0.0 - allow any IPv4 address + 0::0 - allow any IPv6 address" + ::= { snmpCommunityEntry 5 } + + -- 4.9.3.1.4.5 + snmpCommunityEntryCommunityViewType OBJECT-TYPE + SYNTAX INTEGER { + read-Traps(1), + write-Read-Traps(2), + traps-Only(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Access Level of the SNMPv1 managers. Note this parameter + is set for each community. Therefore all three managers + in the same community have the same access level." + ::= { snmpCommunityEntry 6 } + + + snmpv1SystemAgentEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the SNMPv1 agent. + + Note: When this object has a value of enabled the fields listed below are checked. + If this verification fails an error response is returned for the set of this object + and the SNMP agent will be left in a disabled state. + (1)Is there a valid system contact + (2)Is there a valid system name + (3)Is there at least one valid community name and for that + community name is there one valid IP address or hostname + " + ::= { snmpAgentConfig 6 } + + snmpv3SystemAgentEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the SNMPv3 agent. + + Note: To alter any of the configuration settings for the SNMP Agent + the following procedure should be used: + (1)This object should be written with 'disabled' + (2)Make the modifications to other settings + (3)This object should be written with 'enabled' + (4)Restart the remote supervisor adapter + + Also note that when this object has a value of enabled + that the following is verifed, if this verification fails a error + response will be returned for the set of this object and the SNMP + agent will be left in a disabled state. + (1)Is there a valid system contact + (2)Is there a valid system name + (3)Is there at least one valid community name and for that + community name is there one valid IP address or hostname + " + ::= { snmpAgentConfig 7 } + + + -- ******************************************************************************** + -- SNMP Agent User Profile Configuration + -- ******************************************************************************** + + snmpAgentUserProfileConfig OBJECT IDENTIFIER ::= { snmpAgentConfig 8 } + + + -- ******************************************************************************** + -- SNMP User Profile Configuration table + -- ******************************************************************************** + + snmpUserProfileTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnmpUserProfileEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of SNMPv3 User Profile entries" + ::= { snmpAgentUserProfileConfig 1 } + + snmpUserProfileEntry OBJECT-TYPE + SYNTAX SnmpUserProfileEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "SNMP User Profile entries" + INDEX { snmpUserProfileEntryIndex } + ::= { snmpUserProfileTable 1 } + + SnmpUserProfileEntry ::= SEQUENCE { + snmpUserProfileEntryIndex INTEGER, + snmpUserProfileEntryAuthProt INTEGER, + snmpUserProfileEntryPrivProt INTEGER, + snmpUserProfileEntryPrivPassword OCTET STRING, + snmpUserProfileEntryViewType INTEGER, + snmpUserProfileEntryIpAddress OCTET STRING + } + + + snmpUserProfileEntryIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for SNMPv3 Agent User Profile entry." + ::= { snmpUserProfileEntry 1 } + + snmpUserProfileEntryAuthProt OBJECT-TYPE + SYNTAX INTEGER { + none (1), + md5 (2), + sha (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Authentication Protocol + supported by the user." + ::= { snmpUserProfileEntry 2 } + + snmpUserProfileEntryPrivProt OBJECT-TYPE + SYNTAX INTEGER { + none (1), + des (2), + aes (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Privacy Protocol + supported by the user. The Privacy Password must be set + and the Authentication Protocol must be md5 or sha + before this field may be set to des or aes." + ::= { snmpUserProfileEntry 3 } + + snmpUserProfileEntryPrivPassword OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..31)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Privacy password + for the user. + + NOTE: Value returned for the GET command is + meaningless for this MIB object for security reason." + ::= { snmpUserProfileEntry 4 } + + snmpUserProfileEntryViewType OBJECT-TYPE + SYNTAX INTEGER { + read-Traps(1), + read-Write-Traps(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Access level (Get and Set) + of the user. " + ::= { snmpUserProfileEntry 5 } + + + snmpUserProfileEntryIpAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - IP address or host name. + Can either be a dotted decimal IP string (e.g. 9.37.44.2) + or if DNS is enabled a host name." + ::= { snmpUserProfileEntry 6 } + + -- *********************************************************************** + -- DNS Configuration + -- *********************************************************************** + dnsConfig OBJECT IDENTIFIER ::= { tcpProtocols 2 } + + dnsEnabled OBJECT-TYPE + SYNTAX INTEGER { + dnsDisabled(0), + dnsEnabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the DNS agent. + + Note that when this object has a value of enabled + that the following is verifed, if this verification fails a error + response will be returned for the set of this object and the DNS + resolver will be left in a disabled state. + (1)Is there at least one valid DNS server IP address + " + ::= { dnsConfig 1 } + + dnsServerIPAddress1 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the primary DNS server IP address." + ::= { dnsConfig 2 } + + dnsServerIPAddress2 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the secondary DNS server IP address." + ::= { dnsConfig 3 } + + dnsServerIPAddress3 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the tertiary DNS server IP address." + ::= { dnsConfig 4 } + + dnsServerIPv6Address1 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the primary IPv6 DNS server address." + ::= { dnsConfig 12 } + + dnsServerIPv6Address2 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the secondary IPv6 DNS server address." + ::= { dnsConfig 13 } + + dnsServerIPv6Address3 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the tertiary IPv6 DNS server address." + ::= { dnsConfig 14 } + + dnsPriority OBJECT-TYPE + SYNTAX INTEGER { + ipv6(1), + ipv4(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Tells the order host names are resolved. The options are + to either first resolve with an IPv6 DNS server or to first + resolve with an IPv6 DNS server." + ::= { dnsConfig 20 } + + dnsLXCADiscovery OBJECT-TYPE + SYNTAX INTEGER { + dnsLXCADiscoveryDisabled(0), + dnsLXCADiscoveryEnabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable LXCA discovery using DNS SRV records." + ::= { dnsConfig 21 } + + -- *********************************************************************** + -- SMTP Configuration + -- *********************************************************************** + smtpConfig OBJECT IDENTIFIER ::= { tcpProtocols 3 } + + + smtpServerNameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + SMTP server Host name or IP address(a.b.c.d)." + ::= { smtpConfig 1 } + + smtpServerPort OBJECT-TYPE --- NOTE: new setting for IMM1 + -- can return Not Found until implemented + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SMTP server port number." + ::= { smtpConfig 2 } + + smtpServerAuthentication OBJECT-TYPE -- IMM2 only + SYNTAX INTEGER { + enabled(0), + disabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Enable/disable SMTP-AUTH function. smtpServerAuthenticationUser and + smtpServerAuthenticationPassword must be SET before smtpServerAuthentication + is enabled or the enable will fail." + ::= { smtpConfig 3 } + + smtpServerAuthenticationUser OBJECT-TYPE -- IMM2 only + SYNTAX OCTET STRING (SIZE(0..256)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SMTP authentication user name" + ::= { smtpConfig 4 } + + smtpServerAuthenticationPassword OBJECT-TYPE -- IMM2 only + SYNTAX OCTET STRING (SIZE(0..256)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SMTP authentication password. On a read a NULL string + will be returned for security reasons." + ::= { smtpConfig 5 } + + smtpServerAuthenticationMethod OBJECT-TYPE -- IMM2 only + SYNTAX INTEGER { + plain(0), + cram-md5(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SMTP authentication method , support CRAM-MD5 and PLAIN only" + ::= { smtpConfig 6 } + + smtpServerReversePath OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..256)) -- IMM2 only + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 256 byte string that contains the SMTP Reverse Path. + The user can substitute their own sender information in place of the + IMM2 default sender information. For example imm@mycompany.com in place + of the default alertmgr@a.b.c.d." + ::= { smtpConfig 7 } + + -- *********************************************************************** + -- Telnet Configuration + -- *********************************************************************** + + tcpApplicationConfig OBJECT IDENTIFIER ::= { tcpProtocols 4 } + + telnetConnectionCounts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + one(1), + two(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of telnet connections that can be active + concurrently." + ::= { tcpApplicationConfig 1 } + + slpAddrType OBJECT-TYPE + SYNTAX INTEGER { + multicast(0), + broadcast(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Set SLP address type to 0 (multicast) or 1 (broadcast). Note that when + slpAddrType is set to broadast value then the multicast address set in in + slpMulticastAddt will be ignored." + ::= { tcpApplicationConfig 2 } + + slpMulticastAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Service Locator Protocol Multicast address" + ::= { tcpApplicationConfig 3 } + + + -- *********************************************************************** + -- The SSH Server Configuration Group NOTE: IMM2-only + -- *********************************************************************** + + sshServerConfig OBJECT IDENTIFIER ::= { tcpApplicationConfig 5 } + + + sshServerHostKeySize OBJECT-TYPE + SYNTAX INTEGER { + bits512 (1), + bits768 (2), + bits1024 (3), + bits2048 (4), + bits4096 (5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the public/private host key pair. + + NOTE: The IMM supports only the bits1048 value." + ::= { sshServerConfig 1 } + + sshServerHostKeyFingerprint OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The RSA fingerprint of the public part of the host key + pair. This value can be used with the SSH client to + verify, on the initial connection, that the Secure Shell + server responding to the request is the server running + on the IMM. Null Empty string if no RSA key exists." + ::= { sshServerConfig 2 } + + sshServerHostKeyGenerate OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Initiate the new Host Keys generation process for the + IMM SSH Server. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sshServerConfig 3 } + + sshServerHostKeyGenerateProgress OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicate the progress of the key generation process." + ::= { sshServerConfig 4 } + + sshEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable SSH." + ::= { sshServerConfig 5 } + + + -- *********************************************************************** + -- The SSL Configuration Group NOTE: IMM2-only + -- *********************************************************************** + + sslConfig OBJECT IDENTIFIER ::= { tcpApplicationConfig 6 } + + sslHTTPSServerConfigForWeb OBJECT IDENTIFIER ::= { sslConfig 1 } + + sslEnableHTTPSforWeb OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable HTTPS support for web. + Use this field to enable or disable SSL for the web interface. + The IMM must be restarted before the selected value + (enable/ disable) takes effect. + Note that in order to enable SSL, a valid SSL server certificate + must first be in place. To use SSL, a client web browser must + be configured to use SSL3 and/or TLS. Older export-grade browsers + with only SSL2 support cannot be used." + ::= { sslHTTPSServerConfigForWeb 1 } + + sslHTTPSServerWebCertificateGeneration OBJECT-TYPE + SYNTAX INTEGER { + generateNewKeyandSelfSigned(1), + generateNewKeyandCSR(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Initiate the new key and certificate generation process for the + web HTTPS. The required fields in sslCertificateData must be set + to valid contents. + generateNewKeyandSelfSigned - + Use this to generate a new encryption + key pair and install a self-signed certificate. If a key and a + certificate are present, they will be replaced. After the operation + is complete, SSL may be enabled using the new key and certificate. + generateNewKeyandCSR - + Use this to generate a new encryption key + and a certificate signing request (CSR). After the operation is + complete, the CSR file may be downloaded and sent to a certificate + authority (CA) for signing. + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sslHTTPSServerConfigForWeb 2 } + + sslHTTPSServerWebCertificateTransfer OBJECT-TYPE + SYNTAX INTEGER { + importSignedCertificate(1), + downloadCertificate(2), + downloadCSR(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "sslConfigTftpServer and sslConfigFileName must contain valid values. + importSignedCertificate - + Use this to import a signed certificate. To obtain a signed + certificate, a certificate signing request (CSR) must first + be generated and sent to a certificate authority (CA). The + imported certificate must contain a public key that corresponds + to the key pair previously generated by the generateNewKeyandCSR. + downloadCertificate - + Use this link to download a copy of the currently installed c + ertificate. The certificate will be in DER format. The contents + of the certificate can be viewed using a third-party tool such as + OpenSSL (www.openssl.org). An example of the command line for + viewing the contents of the certificate using OpenSSL would look + something like the following: + openssl x509 -in cert.der -inform DER -text + downloadCSR - + The file produced when creating a CSR is in DER or PEM format + according to sslCertificateCSRDownloadFormat. If your CA expects + the data in some other format, the file can be converted using a + third-party tool such as OpenSSL(www.openssl.org). + If the CA asks you to copy the contents of the CSR file into + a web browser window, PEM format is usually expected. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sslHTTPSServerConfigForWeb 3 } + + sslHTTPSWebCertificateStatus OBJECT-TYPE + SYNTAX INTEGER { + no-cert-installed(1), + self-signed-installed(2), + ca-signed-installed(3), + csr-generated(4), + self-signed-and-csr-generated(5), + ca-signed-and-csr-generated(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed Web certificates. + 1 = Private Key and Cert/CSR not available. + 2 = Private Key and Self-signed cert installed. + 3 = Private Key and CA-signed cert installed. + 4 = Private Key stored, CSR available for download. + 5 = Private Key and Self-signed cert installed, Private Key stored, CSR available for download. + 6 = Private Key and CA-signed cert installed, Private Key stored, CSR available for download. " + ::= { sslHTTPSServerConfigForWeb 4 } + + sslHTTPSWebCertificateExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the HTTPS Web Server certificate." + ::= { sslHTTPSServerConfigForWeb 5 } + + sslHTTPSWebCertificateRemove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove HTTPS Web Server certificate." + ::= { sslHTTPSServerConfigForWeb 6 } + + sslHTTPSServerConfigForCIMXML OBJECT IDENTIFIER ::= { sslConfig 2 } + + sslEnableHTTPSforCIMXML OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable HTTPS support for web. + Use this field to enable or disable SSL for the web interface. + The IMM must be restarted before the selected value + (enable/ disable) takes effect. + Note that in order to enable SSL, a valid SSL server certificate + must first be in place. " + ::= { sslHTTPSServerConfigForCIMXML 1 } + + sslHTTPSServerCIMXMLCertificateGeneration OBJECT-TYPE + SYNTAX INTEGER { + generateNewKeyandSelfSigned(1), + generateNewKeyandCSR(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Initiate the new key and certificate generation process for + CIMXML communication. The required fields in sslCertificateData must be set + to valid contents. + generateNewKeyandSelfSigned - + Use this to generate a new encryption + key pair and install a self-signed certificate. If a key and a + certificate are present, they will be replaced. After the operation + is complete, SSL may be enabled using the new key and certificate. + generateNewKeyandCSR - + Use this to generate a new encryption key + and a certificate signing request (CSR). After the operation is + complete, the CSR file may be downloaded and sent to a certificate + authority (CA) for signing. + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sslHTTPSServerConfigForCIMXML 2 } + + sslHTTPSServerCIMXMLCertificateTransfer OBJECT-TYPE + SYNTAX INTEGER { + importSignedCertificate(1), + downloadCertificate(2), + downloadCSR(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "sslConfigTftpServer and sslConfigFileName must contain valid values. + importSignedCertificate - + Use this to import a signed certificate. To obtain a signed + certificate, a certificate signing request (CSR) must first + be generated and sent to a certificate authority (CA). The + imported certificate must contain a public key that corresponds + to the key pair previously generated by the generateNewKeyandCSR. + downloadCertificate - + Use this link to download a copy of the currently installed c + ertificate. The certificate will be in DER format. The contents + of the certificate can be viewed using a third-party tool such as + OpenSSL (www.openssl.org). An example of the command line for + viewing the contents of the certificate using OpenSSL would look + something like the following: + openssl x509 -in cert.der -inform DER -text + downloadCSR - + The file produced when creating a CSR is in DER or PEM format + according to sslCertificateCSRDownloadFormat. If your CA expects + the data in some other format, the file can be converted using a + third-party tool such as OpenSSL(www.openssl.org). + If the CA asks you to copy the contents of the CSR file into + a web browser window, PEM format is usually expected. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sslHTTPSServerConfigForCIMXML 3 } + + sslHTTPSCIMXMLCertificateStatus OBJECT-TYPE + SYNTAX INTEGER { + no-cert-installed(1), + self-signed-installed(2), + ca-signed-installed(3), + csr-generated(4), + self-signed-and-csr-generated(5), + ca-signed-and-csr-generated(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed CIM/XML certificates. + 1 = Private Key and Cert/CSR not available. + 2 = Private Key and Self-signed cert installed. + 3 = Private Key and CA-signed cert installed. + 4 = Private Key stored, CSR available for download. + 5 = Private Key and Self-signed cert installed, Private Key stored, CSR available for download. + 6 = Private Key and CA-signed cert installed, Private Key stored, CSR available for download. " + ::= { sslHTTPSServerConfigForCIMXML 4 } + + sslHTTPSCIMXMLCertificateExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the HTTPS CIM/XML Server certificate." + ::= { sslHTTPSServerConfigForCIMXML 5 } + + sslHTTPSCIMXMLCertificateRemove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove HTTPS CIM/XML Server certificate." + ::= { sslHTTPSServerConfigForCIMXML 6 } + + sslClientConfigForLDAP OBJECT IDENTIFIER ::= { sslConfig 3 } + + sslEnableClientLDAP OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Use this field to enable or disable SSL for the LDAP Client. + The value selected takes effect immediately. Note that in order + to enable SSL, a valid SSL certificate must first be in place and at + least one SSL client trusted certificate must be imported. + Your LDAP server must support SSL3 or TLS to be compatible with the + SSL implementation used by the LDAP client." + ::= { sslClientConfigForLDAP 1 } + + sslClientLDAPCertificateGeneration OBJECT-TYPE + SYNTAX INTEGER { + generateNewKeyandSelfSigned(1), + generateNewKeyandCSR(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Initiate the new key and certificate generation process for the + LDAP Client Certificates. The required fields in sslCertificateData must be set + to valid contents. + generateNewKeyandSelfSigned - + Use this to generate a new encryption + key pair and install a self-signed certificate. If a key and a + certificate are present, they will be replaced. After the operation + is complete, SSL may be enabled using the new key and certificate. + generateNewKeyandCSR - + Use this to generate a new encryption key + and a certificate signing request (CSR). After the operation is + complete, the CSR file may be downloaded and sent to a certificate + authority (CA) for signing. + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sslClientConfigForLDAP 2 } + + sslClientLDAPCertificateDownload OBJECT-TYPE + SYNTAX INTEGER { + downloadCertificate(2), + downloadCSR(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "sslConfigTftpServer and sslConfigFileName must contain valid values. + downloadCertificate - + Use this link to download a copy of the currently installed c + ertificate. The certificate will be in DER format. The contents + of the certificate can be viewed using a third-party tool such as + OpenSSL (www.openssl.org). An example of the command line for + viewing the contents of the certificate using OpenSSL would look + something like the following: + openssl x509 -in cert.der -inform DER -text + downloadCSR - + The file produced when creating a CSR is in DER or PEM format + according to sslCertificateCSRDownloadFormat. If your CA expects + the data in some other format, the file can be converted using a + third-party tool such as OpenSSL(www.openssl.org). + If the CA asks you to copy the contents of the CSR file into + a web browser window, PEM format is usually expected. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sslClientConfigForLDAP 3 } + + sslClientLDAPCertificateImport OBJECT-TYPE + SYNTAX INTEGER { + importSignedCertificate1(1), + importTrustedCertificate1(2), + importTrustedCertificate2(3), + importTrustedCertificate3(4), + importTrustedCertificate4(5) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "sslConfigTftpServer and sslConfigFileName must contain valid values. + importSignedCertificate - + Use this to import a signed certificate. To obtain a signed + certificate, a certificate signing request (CSR) must first + be generated and sent to a certificate authority (CA). The + imported certificate must contain a public key that corresponds + to the key pair previously generated by the generateNewKeyandCSR. + importTrustedCertificateX - + Use these to import or remove trusted CA certificates. + Trusted CA certificates are used by the SSL client to authenticate + the SSL Server's (LDAP Server's) certificate. The SSL client must be + disabled prior to importing or removing trusted certificates. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { sslClientConfigForLDAP 4 } + + sslClientLDAPCertificateStatus OBJECT-TYPE + SYNTAX INTEGER { + no-cert-installed(1), + self-signed-installed(2), + ca-signed-installed(3), + csr-generated(4), + self-signed-and-csr-generated(5), + ca-signed-and-csr-generated(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed SSL Client certificates. + 1 = Private Key and Cert/CSR not available. + 2 = Private Key and Self-signed cert installed. + 3 = Private Key and CA-signed cert installed. + 4 = Private Key stored, CSR available for download. + 5 = Private Key and Self-signed cert installed, Private Key stored, CSR available for download. + 6 = Private Key and CA-signed cert installed, Private Key stored, CSR available for download. " + ::= { sslClientConfigForLDAP 5 } + + sslClientLDAPCertificateExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the LDAP Client certificate." + ::= { sslClientConfigForLDAP 6 } + + sslClientLDAPCertificateRemove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove LDAP Client certificate." + ::= { sslClientConfigForLDAP 7 } + + sslClientLDAPTrustedCertificate1Status OBJECT-TYPE + SYNTAX INTEGER { + not-installed(0), + installed(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed SSL Client trusted certificates. + 0 = certificate not installed + 1 = certificate installed. " + ::= { sslClientConfigForLDAP 8 } + + sslClientLDAPTrustedCertificate1ExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the LDAP Client certificate." + ::= { sslClientConfigForLDAP 9 } + + sslClientLDAPTrustedCertificate1Remove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove LDAP Client certificate." + ::= { sslClientConfigForLDAP 10 } + + sslClientLDAPTrustedCertificate2Status OBJECT-TYPE + SYNTAX INTEGER { + not-installed(0), + installed(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed SSL Client trusted certificates. + 0 = certificate not installed + 1 = certificate installed. " + ::= { sslClientConfigForLDAP 11 } + + sslClientLDAPTrustedCertificate2ExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the LDAP Client certificate." + ::= { sslClientConfigForLDAP 12 } + + sslClientLDAPTrustedCertificate2Remove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove LDAP Client certificate." + ::= { sslClientConfigForLDAP 13 } + + sslClientLDAPTrustedCertificate3Status OBJECT-TYPE + SYNTAX INTEGER { + not-installed(0), + installed(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed SSL Client trusted certificates. + 0 = certificate not installed + 1 = certificate installed. " + ::= { sslClientConfigForLDAP 14 } + + sslClientLDAPTrustedCertificate3ExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the LDAP Client certificate." + ::= { sslClientConfigForLDAP 15 } + + sslClientLDAPTrustedCertificate3Remove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove LDAP Client certificate." + ::= { sslClientConfigForLDAP 16 } + + sslClientLDAPTrustedCertificate4Status OBJECT-TYPE + SYNTAX INTEGER { + not-installed(0), + installed(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed SSL Client trusted certificates. + 0 = certificate not installed + 1 = certificate installed. " + ::= { sslClientConfigForLDAP 17 } + + + sslClientLDAPTrustedCertificate4ExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the LDAP Client certificate." + ::= { sslClientConfigForLDAP 18 } + + sslClientLDAPTrustedCertificate4Remove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove LDAP Client certificate." + ::= { sslClientConfigForLDAP 19 } + + sslConfigTftpServer OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "To download or import certificates, set the IP address + or host name of the TFTP server where the file should be + transferred to or from. The address must be entered in a + dotted decimal IP string (e.g. 9.37.44.2), or equivalent + for IPv6." + ::= { sslConfig 4 } + + sslConfigFileName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name on target system for the downloaded or + imported certificate." + ::= { sslConfig 5 } + + + sslCertificateData OBJECT IDENTIFIER ::= { sslConfig 6 } + + + sslCertificateDataCountry OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the country where the IMM physically + resides. + This field must contain the 2 character country code." + ::= { sslCertificateData 1} + + sslCertificateDataStateorProvince OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the state or province where the IMM + physically resides. + This field may contain a maximum of 30 characters. " + ::= { sslCertificateData 2} + + sslCertificateDataCityOrLocality OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the city or locality where the IMM + physically resides. + This field may contain a maximum of 50 characters." + ::= { sslCertificateData 3} + + sslCertificateDataOrganizationName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the company or organization that + owns the IMM. When this is used to generate a CSR, the + issuing CA may verify that the organization requesting the + certificate is legally entitled to claim ownership of the + given company or organization name. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 4} + + + sslCertificateDataIMMHostName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the IMM host name that currently + appears in the browser URL address bar. This certificate + attribute is generally referred to as the Common Name (CN). + Special care must be taken to ensure that the value entered + into the IMM host name field exactly matches the host name + as it is known by the web browser when it access the IMM. + The browser compares the host name in the resolved URL to the + name that appears in the certificate. In order to prevent + certificate warnings from the browser, the value used in this + field must match the host name used by the browser to connect + to the IMM. + For instance, if the URL address bar in the browser currently + were to appear as http://mm11.xyz.com/private/main.ssi, the + value used for the IMM Host Name field should be mm11.xyz.com. + If the URL were http://mm11/private/main.ssi, the value used + should be mm11 . + If the URL were http://192.168.70.2/private/main.ssi, + the value used should be 192.168.70.2 . + It is the users responsibility to ensure the correct value + is entered and works. + This field may contain a maximum of 60 characters. " + ::= { sslCertificateData 5} + + sslCertificateDataContact OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field to indicate the name of a contact person + responsible for the IMM. + This field may contain a maximum of 60 characters. " + ::= { sslCertificateData 6} + + sslCertificateDataEmailAddr OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field to indicate the email address of a contact + person responsible for the IMM. + This field may contain a maximum of 60 characters. " + ::= { sslCertificateData 7} + + sslCertificateDataOrganizationUnit OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field to indicate the unit within the company + or organization that owns the IMM. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 8} + + sslCertificateDataSurname OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as the + surname of a person responsible for the IMM. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 9} + + sslCertificateDataGivenName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as the + given name of a person responsible for the IMM. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 10} + + sslCertificateDataInitials OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as the + initials of a person responsible for the IMM. + This field may contain a maximum of 20 characters." + ::= { sslCertificateData 11} + + sslCertificateDataDNQualifier OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as a + Distinguished Name Qualifier for the IMM. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 12} + + sslCertificateDataCSRChallengePassword OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR. + Use this field to assign a password to the CSR. + This field may contain a maximum of 30 characters. " + ::= { sslCertificateData 13} + + sslCertificateDataCSRUnstructuredName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR. + Use this field for additional information, such as an + unstructured name assigned to the IMM. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 14} + + sslCertificateDataSubjectAltName1 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 15} + + sslCertificateDataSubjectAltName2 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 16} + + sslCertificateDataSubjectAltName3 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 17} + + sslCertificateDataSubjectAltName4 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 18} + + sslCertificateDataSubjectAltName5 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 19} + + sslCertificateDataSubjectAltName6 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 20} + + sslCertificateDataSubjectAltName7 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 21} + + sslCertificateDataSubjectAltName8 OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field to allow an SSL certificate to specify + an additional name that the certificate should match. + This field may contain a maximum of 60 characters." + ::= { sslCertificateData 22} + + sslCertificateCSRDownloadFormat OBJECT-TYPE + SYNTAX INTEGER { + der(0), + pem(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "You can download the generated CSR in DER format or PEM format. + If the CA asks you to copy the contents of the CSR file into a web browser window, + PEM format is usually expected. + If the CA expects the data in PEM format, you need choose PEM format." + ::= { sslConfig 7 } + + -- *********************************************************************** + -- Cryptography Mode NOTE: IMM2-only + -- *********************************************************************** + + cryptoSettings OBJECT IDENTIFIER ::= { tcpApplicationConfig 7 } + + cryptoMode OBJECT-TYPE + SYNTAX INTEGER { + basic(0), + nist(1), + nsaB128(2), + nsaB192(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Basic or NIST mode enabled. + The Basic mode is compatible with older firmware versions and + with browers and other network clients that do not implement + the stricter security requirements of the compliance mode. + The NIST mode is to have the IMM2 firmware comply with the + requirements of SP 800-131A. + The NSA Suite B 128-bit and 192-bit modes have the IMM2 firmware + comply with the requirements of the NSA Suite B Cryptography standards." + ::= { cryptoSettings 1 } + + cryptoSnmpv3 OBJECT-TYPE + SYNTAX INTEGER { + disallow(0), + allow(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disallow or allow SNMPv3 accounts that do not comply with + NIST compliance mode when NIST compliance has been enabled." + ::= { cryptoSettings 2 } + + cryptoInsufCompliance OBJECT IDENTIFIER ::= { cryptoSettings 3 } + + cryptoInsufComplianceTable OBJECT-TYPE + SYNTAX SEQUENCE OF CryptoInsufComplianceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains items not in compliance with the current cyrptoMode setting." + ::= { cryptoInsufCompliance 1 } + + cryptoInsufComplianceEntry OBJECT-TYPE + SYNTAX CryptoInsufComplianceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains an insufficient compliance item name." + INDEX { cryptoInsufComplianceItemIndex } + ::= { cryptoInsufComplianceTable 1 } + + CryptoInsufComplianceEntry ::= + SEQUENCE { + cryptoInsufComplianceItemIndex INTEGER, + cryptoInsufComplianceItemName OCTET STRING + } + + cryptoInsufComplianceItemIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION "The index number of one insufficient compliance item entry." + ::= { cryptoInsufComplianceEntry 1 } + + cryptoInsufComplianceItemName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of one insufficient compliance item." + ::= { cryptoInsufComplianceEntry 2 } + + + -- *********************************************************************** + -- Certificate Domain Names NOTE: IMM2-only + -- *********************************************************************** + + certDomainNames OBJECT IDENTIFIER ::= { tcpApplicationConfig 8 } + + certDomainNameTable OBJECT-TYPE + SYNTAX SEQUENCE OF CertDomainNameEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains certificate domain names and status." + ::= { certDomainNames 1 } + + certDomainNameEntry OBJECT-TYPE + SYNTAX CertDomainNameEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains a certificate domain name and status." + INDEX { certDomainNameIndex } + ::= { certDomainNameTable 1 } + + CertDomainNameEntry ::= + SEQUENCE { + certDomainNameIndex INTEGER, + certDomainName OCTET STRING, + certDomainNameStatus OCTET STRING + } + + certDomainNameIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION "The index number of one certificate domain name entry." + ::= { certDomainNameEntry 1 } + + certDomainName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Certificate Domain Name of one certificate domain name entry." + ::= { certDomainNameEntry 2 } + + certDomainNameStatus OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the Certificate Domain Name entry." + ::= { certDomainNameEntry 3 } + + addCertDomainName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Add one Certificate Domain Name to the certificate domain name table." + ::= { certDomainNames 2} + + rmCertDomainName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remove one Certificate Domain Name to the certificate domain name table." + ::= { certDomainNames 3} + + + -- *********************************************************************** + -- Storage Key Repository Servers NOTE: IMM2-only + -- *********************************************************************** + + skrServers OBJECT IDENTIFIER ::= { tcpApplicationConfig 9 } + + skrServerTable OBJECT-TYPE + SYNTAX SEQUENCE OF SkrServerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains Storage Key Repository Server hostnames and ports." + ::= { skrServers 1 } + + skrServerEntry OBJECT-TYPE + SYNTAX SkrServerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains a Storage Key Repository Server hostname and port." + INDEX { skrServerIndex } + ::= { skrServerTable 1 } + + SkrServerEntry ::= + SEQUENCE { + skrServerIndex INTEGER, + skrServerHostname OCTET STRING, + skrServerPort INTEGER + } + + skrServerIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION "The index number of one Storage Key Repository Server entry." + ::= { skrServerEntry 1 } + + skrServerHostname OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Storage Key Repository Server hostname or IP address." + ::= { skrServerEntry 2 } + + skrServerPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Storage Key Repository Server port number." + ::= { skrServerEntry 3 } + + skrServerCertAction OBJECT-TYPE + SYNTAX INTEGER { + importServerCertificate(1), + removeServerCertificate(2) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "importServerCertificate - + Import Storage Key Repository Server certificate. + For tftp mode, skrConfigFtpServer and skrConfigFileName must contain valid values. + For sftp mode, skrConfigFTPCallUserID and skrConfigFtpCallPassword must also contain valid values. + removeServerCertificate - + Remove Storage Key Repository Server certificate." + ::= { skrServers 2 } + + skrDeviceGroup OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..17)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An optional NULL terminated 16 character string that contains the Device Group that the server drives belong to." + ::= { skrServers 3 } + + + skrClientConfigCertficate OBJECT IDENTIFIER ::= { skrServers 4 } + + skrClientCertificateGeneration OBJECT-TYPE + SYNTAX INTEGER { + generateNewKeyandSelfSigned(1), + generateNewKeyandCSR(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Initiate the new key and certificate generation process for the + key repository client. The required fields in skrCertificateData must be set + to valid contents. + generateNewKeyandSelfSigned - + Use this to generate a new encryption + key pair and install a self-signed certificate. If a key and a + certificate are present, they will be replaced. After the operation + is complete, SSL may be enabled using the new key and certificate. + generateNewKeyandCSR - + Use this to generate a new encryption key + and a certificate signing request (CSR). After the operation is + complete, the CSR file may be downloaded and sent to a certificate + authority (CA) for signing. + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { skrClientConfigCertficate 1 } + + skrClientCertificateTransfer OBJECT-TYPE + SYNTAX INTEGER { + importSignedCertificate(1), + downloadCertificate(2), + downloadCSR(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "For tftp mode, skrConfigFtpServer and skrConfigFileName must contain valid values. + For sftp mode, skrConfigFTPCallUserID and skrConfigFtpCallPassword must also contain valid values. + importSignedCertificate - + Use this to import a signed certificate. To obtain a signed + certificate, a certificate signing request (CSR) must first + be generated and sent to a certificate authority (CA). The + imported certificate must contain a public key that corresponds + to the key pair previously generated by the generateNewKeyandCSR. + downloadCertificate - + Use this link to download a copy of the currently installed + certificate. The certificate will be in DER format. The contents + of the certificate can be viewed using a third-party tool such as + OpenSSL (www.openssl.org). An example of the command line for + viewing the contents of the certificate using OpenSSL would look + something like the following: + openssl x509 -in cert.der -inform DER -text + downloadCSR - + The file produced when creating a CSR is in DER or PEM format + according to sslCertificateCSRDownloadFormat. If your CA expects + the data in some other format, the file can be converted using a + third-party tool such as OpenSSL(www.openssl.org). + If the CA asks you to copy the contents of the CSR file into + a web browser window, PEM format is usually expected. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { skrClientConfigCertficate 2 } + + skrClientCertificateStatus OBJECT-TYPE + SYNTAX INTEGER { + no-cert-installed(1), + self-signed-installed(2), + ca-signed-installed(3), + csr-generated(4), + self-signed-and-csr-generated(5), + ca-signed-and-csr-generated(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the installed Web certificates. + 1 = Private Key and Cert/CSR not available. + 2 = Private Key and Self-signed cert installed. + 3 = Private Key and CA-signed cert installed. + 4 = Private Key stored, CSR available for download. + 5 = Private Key and Self-signed cert installed, Private Key stored, CSR available for download. + 6 = Private Key and CA-signed cert installed, Private Key stored, CSR available for download. " + ::= { skrClientConfigCertficate 3 } + + skrClientCertificateExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the SKR client certificate." + ::= { skrClientConfigCertficate 4 } + + skrClientCertificateRemove OBJECT-TYPE + SYNTAX INTEGER { + removeServerCertificate(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "removeServerCertificate - + Remove SKR client certificate." + ::= { skrClientConfigCertficate 5 } + + + skrCertificateData OBJECT IDENTIFIER ::= { skrServers 5 } + + skrCertificateDataCountry OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the country where the IMM physically + resides. + This field must contain the 2 character country code." + ::= { skrCertificateData 1} + + skrCertificateDataStateorProvince OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the state or province where the IMM + physically resides. + This field may contain a maximum of 30 characters. " + ::= { skrCertificateData 2} + + skrCertificateDataCityOrLocality OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the city or locality where the IMM + physically resides. + This field may contain a maximum of 50 characters." + ::= { skrCertificateData 3} + + skrCertificateDataOrganizationName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the company or organization that + owns the IMM. When this is used to generate a CSR, the + issuing CA may verify that the organization requesting the + certificate is legally entitled to claim ownership of the + given company or organization name. + This field may contain a maximum of 60 characters." + ::= { skrCertificateData 4} + + skrCertificateDataIMMHostName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Required field for generating a CSR or self-signed + certificate. + Use this field to indicate the IMM host name that currently + appears in the browser URL address bar. This certificate + attribute is generally referred to as the Common Name (CN). + Special care must be taken to ensure that the value entered + into the IMM host name field exactly matches the host name + as it is known by the web browser when it access the IMM. + The browser compares the host name in the resolved URL to the + name that appears in the certificate. In order to prevent + certificate warnings from the browser, the value used in this + field must match the host name used by the browser to connect + to the IMM. + For instance, if the URL address bar in the browser currently + were to appear as http://mm11.xyz.com/private/main.ssi, the + value used for the IMM Host Name field should be mm11.xyz.com. + If the URL were http://mm11/private/main.ssi, the value used + should be mm11 . + If the URL were http://192.168.70.2/private/main.ssi, + the value used should be 192.168.70.2 . + It is the users responsibility to ensure the correct value + is entered and works. + This field may contain a maximum of 60 characters. " + ::= { skrCertificateData 5} + + skrCertificateDataContact OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field to indicate the name of a contact person + responsible for the IMM. + This field may contain a maximum of 60 characters. " + ::= { skrCertificateData 6} + + skrCertificateDataEmailAddr OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field to indicate the email address of a contact + person responsible for the IMM. + This field may contain a maximum of 60 characters. " + ::= { skrCertificateData 7} + + skrCertificateDataOrganizationUnit OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field to indicate the unit within the company + or organization that owns the IMM. + This field may contain a maximum of 60 characters." + ::= { skrCertificateData 8} + + skrCertificateDataSurname OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as the + surname of a person responsible for the IMM. + This field may contain a maximum of 60 characters." + ::= { skrCertificateData 9} + + skrCertificateDataGivenName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as the + given name of a person responsible for the IMM. + This field may contain a maximum of 60 characters." + ::= { skrCertificateData 10} + + skrCertificateDataInitials OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as the + initials of a person responsible for the IMM. + This field may contain a maximum of 20 characters." + ::= { skrCertificateData 11} + + skrCertificateDataDNQualifier OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR or self-signed + certificate. + Use this field for additional information, such as a + Distinguished Name Qualifier for the IMM. + This field may contain a maximum of 60 characters." + ::= { skrCertificateData 12} + + skrCertificateDataCSRChallengePassword OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR. + Use this field to assign a password to the CSR. + This field may contain a maximum of 30 characters. " + ::= { skrCertificateData 13} + + skrCertificateDataCSRUnstructuredName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Optional field for generating a CSR. + Use this field for additional information, such as an + unstructured name assigned to the IMM. + This field may contain a maximum of 60 characters." + ::= { skrCertificateData 14} + + skrConfigFtpServer OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "To import certificates, set the IP address or host name of the server + where the file should be transferred from. The address must be entered + in a dotted decimal IP string (e.g. 9.37.44.2), or equivalent for IPv6." + ::= { skrServers 6 } + + skrConfigFtpServerMode OBJECT-TYPE + SYNTAX INTEGER { + tftp(1), + sftp(3)} + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the FTP mode used." + ::= { skrServers 7 } + + skrConfigFtpCallPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the port on remote TFTP/SFTP server for data + transmission (default values are 69/22, respectively)." + ::= { skrServers 8 } + + skrConfigFTPCallUserID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the user account to login remote SFTP server." + ::= { skrServers 9 } + + skrConfigFtpCallPassword OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the password to login remote SFTP server." + ::= { skrServers 10 } + + skrConfigFileName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name on target system for the imported certificate." + ::= { skrServers 11 } + + skrServerCertificateExpirationDate OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Expiration date of the SKR Server certificate." + ::= { skrServers 12 } + + + -- *********************************************************************** + -- TCP Port Assignment + -- *********************************************************************** + tcpPortAssignmentCfg OBJECT IDENTIFIER ::= { tcpProtocols 5 } + + tcpPortsRestoreDefault OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Reset all the ports to the factory defaults. " + ::= { tcpPortAssignmentCfg 1 } + + httpPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "HTTP port number. Default value is 80. Once changed, the url's have to + include :port at the end. " + ::= { tcpPortAssignmentCfg 2 } + + httpsPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SSL port number. Default value is 443. Once changed, the url's have to + include :port at the end." + ::= { tcpPortAssignmentCfg 3 } + + telnetLegacyCLIPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "telnet port number. Default value is 23." + ::= { tcpPortAssignmentCfg 4 } + + sshLegacyCLIPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SSH port number. Default value is 22." + ::= { tcpPortAssignmentCfg 6 } + + snmpAgentPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Agent port number. Default value is 161." + ::= { tcpPortAssignmentCfg 8 } + + snmpTrapsPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Traps port number. Default value is 162." + ::= { tcpPortAssignmentCfg 9 } + + remvidPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remote Console port number. Default value is 3900." + ::= { tcpPortAssignmentCfg 10 } + + ibmSystemDirectorHttpPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IBM Systems Director Http port number." + ::= { tcpPortAssignmentCfg 11 } + + + ibmSystemDirectorHttpsPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IBM Systems Director Https port number." + ::= { tcpPortAssignmentCfg 12 } + + + -- *********************************************************************** + -- LDAP Client Configuration + -- *********************************************************************** + + ldapClientCfg OBJECT IDENTIFIER ::= { tcpProtocols 6 } + + ldapServer1NameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + LDAP server host name or IP address (a.b.c.d)." + ::= { ldapClientCfg 1 } + + ldapServer1PortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "LDAP server port number." + ::= { ldapClientCfg 2 } + + ldapServer2NameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + LDAP server host name or IP address (a.b.c.d)." + ::= { ldapClientCfg 3 } + + ldapServer2PortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "LDAP server port number." + ::= { ldapClientCfg 4 } + + ldapServer3NameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + LDAP server host name or IP address (a.b.c.d)." + ::= { ldapClientCfg 5 } + + ldapServer3PortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "LDAP server port number." + ::= { ldapClientCfg 6 } + + ldapServer4NameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + LDAP server host name or IP address (a.b.c.d)." + ::= { ldapClientCfg 7 } + + ldapServer4PortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "LDAP server port number." + ::= { ldapClientCfg 8 } + + ldapRootDN OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Distinguished Name for root entry of directory tree. + An example might look like dn=foobar,dn=com." + ::= { ldapClientCfg 9 } + + ldapUserSearchBaseDN OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS deprecated + DESCRIPTION + "As part of the user authentication process, it is necessary to search + the LDAP server for one or more attributes associated with a particular + user. Any search request must specify the base DN for the actual search. + This field specifies the base DN which should be used to search the User + directory. An example might look like cn=users,dn=foobar,dn=com. If this + field is left blank, the Root DN will be used as the search base instead. + As mentioned, user searches are part of the authentication process. They + are carried out to retrieve information about the user such as login + permissions, callback number, and group memberships. For Version 2.0 LDAP + clients, it is strongly encouraged that this parameter be configured, + otherwise a search using the root DN may not succeed (as seen on Active + Directory servers). + + NOTE: This Mib object is deprecated and no longer supported." + ::= { ldapClientCfg 10 } + + ldapGroupFilter OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..511)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This filter is used for group authentication. It specifies what group or + groups that this MM belongs to. If left blank, group authentication is + disabled. Otherwise, group authentication will be performed against the + filter. The filter can be a specific group name (eg. IMMWest), a wildcard (*) + which matches everything, or a wildcard with a prefix (eg. IMM*). The default + filter is IMM*. + After user authentication, group authentication will take place, whereby an + attempt will be made to match the group or groups (that the user belongs to) + to the group filter defined here. If there is no match, the user will not pass + authentication and will be blocked. If there is a match, the login permissions + for the user will be retrieved from the matched group(s), unless the user + already has login permissions assigned directly from the user record retrieved + from the LDAP server." + ::= { ldapClientCfg 11 } + + + ldapBindingMethod OBJECT-TYPE + SYNTAX INTEGER { + anonymousAuthentication(0), + clientAuthentication(1), + userPrincipalName(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "On initial binds to the LDAP server during user authentication, there are + three options: + Anonymous authentication: Bind attempt is made without a client DN or password. + If the bind is successful, a search will be requested in order to find an entry + on the LDAP server for the user attempting to login. If an entry is found, a + second attempt to bind will be attempted, this time with the user's DN and + password. If this succeeds, the user is deemed to have passed the user + authentication phase. Group authentication is then attempted if it is enabled. + Client authentication: Bind attempt is made with client DN and password + specified by this configuration parameter. If the bind is successful, we + proceed as above. + User Principal Name (UPN): Bind attempt is made directly with the credentials + used during the login process. If this succeeds, the user is deemed to have + passed the user authentication phase. Note that for Active Directory servers, + the userid can have the form someuser@somedomain or simply someuser." + ::= { ldapClientCfg 12 } + + ldapClientAuthenticationDN OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The initial bind to the LDAP server during user authentication can be + performed with anonymous authentication, client based authentication, or UPN. + The client based option requires a client DN and password as parameters to + the bind request. These parameters are configured here. Note that the password + can be left blank." + ::= { ldapClientCfg 13 } + + ldapClientAuthenticationPassword OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..25)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The client authentication password" + ::= { ldapClientCfg 14 } + + ldapRoleBasedSecurityEnabled OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(0) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A value of true for RoleBasedSecurityEnabled indicates enhanced + will be used by the service processor. A value of false for + RoleBasedSecurityEnabled indicates the legacy bit mask based + security is being used." + ::= { ldapClientCfg 15 } + + ldapServerTargetName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When administrator chooses Enhanced Role Based Security authentication model, + he can associate one IMM with one managed target object in Snap-in (one tool + to configure LDAP users permission) via one target name. The IMM target name can + be looked as alias of IMM, administrator can change it according to his + configuration requirements. This is a string of up to 63 characters (plus the + null character)" + ::= { ldapClientCfg 16 } + + ldapUIDsearchAttribute OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When the binding method selected is Anonymous authentication or Client + authentication, the initial bind to the LDAP server is followed by a search + request aimed at retrieving specific information about the user, including the + user's DN, login permissions, and group ownerships. In order to retrieve this + information, the search request must specify the attribute name used to + represent userids on that server. Specifically, this name is used as a search + filter against the login id entered by the user. This attribute name is + configured here. If this field is left blank, a default of uid is used during + user authentication. + For example, on Active Directory servers, the attribute name used for userids + is often sAMAccoutName. + When the binding method selected is UPN or Strict UPN, this field defaults + automatically to userPrincipalName during user authentication if the userid + entered has the form userid@somedomain." + ::= { ldapClientCfg 17 } + + ldapGroupSearchAttribute OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When the MM Group Filter name is configured, it is necessary to retrieve + from the LDAP server the list of groups that a particular user belongs to. + This is required to do group authentication. In order to retrieve this list, + the search filter sent to the server must specify the attribute name associated + with groups. This field specifies this attribute name. + If this field is left blank, the attribute name in the filter will default + to memberOf." + ::= { ldapClientCfg 18 } + + ldapLoginPermissionAttribute OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When a user successfully authenticates via a LDAP server, it is necessary + to retrieve the login permissions for this user. In order to retrieve these + permissions, the search filter sent to the server must specify the attribute + name associated with login permissions. This field specifies this attribute + name." + ::= { ldapClientCfg 19 } + + ldapUseDNSOrPreConfiguredServers OBJECT-TYPE + SYNTAX INTEGER { + usePreConfiguredLDAPServers (0), + useDNSToFindLDAPServers (1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The MM contains a Version 2.0 LDAP Client that may be configured to provide + user authentication through one or more LDAP servers. The LDAP server(s) to be + used for authentication can be discovered dynamically or manually pre-configured. + + If the usePreConfiguredLDAPServers option is selected, up to 3 LDAP servers can + be configured. Simply enter the server's IP address or hostname (assuming DNS + is enabled). The port number for each server is optional. If left blank, + the default value of 389 is used for non-secured LDAP connections. For secured + connections, the default is 636. At least one server must be configured. + + If the useDNSToFindLDAPServers is selected, the mechanisms described by RFC2782 + (A DNS RR for specifying the location of services) are applied to find the + server(s). This is known as DNS SRV." + ::= { ldapClientCfg 20 } + + ldapDomainSource OBJECT-TYPE --IMM2-only + SYNTAX INTEGER { + extractSearchDomainFromLoginID (0), + useOnlyConfiguredSearchDomainBelow (1), + tryLoginFirstThenConfiguredValue (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The DNS SRV request sent to the DNS server must specify a domain name. + The LDAP client will determine where to get this domain name based on one + of the following three options: + + - extractSearchDomainFromLoginID: With this option, the LDAP client will + use the domain name in the login id. For example, if the login id is + joesmith@mycompany.com, the domain name equals mycompany.com. If the domain + name cannot be extracted, the DNS SRV will fail, causing the user + authentication to fail automatically. + + - useOnlyConfiguredSearchDomainBelow: With this option, the LDAP client + will use the domain name configured in the Search Domain parameter. + + - tryLoginFirstThenConfiguredValue: With this option, the LDAP client will + first attempt to extract the domain name from the login id. If this succeeds, + this domain name will be used in the DNS SRV request. If there is no domain + name present in the login id, the LDAP client will instead use the configured + Search Domain parameter as the domain name in the DNS SRV request. + If nothing is configured, user authentication will fail immediately." + ::= { ldapClientCfg 21 } + + ldapForestName OBJECT-TYPE -- IMM1-only, return Not Found + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "In order to discover Global Catalogs (GC), the forest name must be configured + in the ForestName property. The Global Catalogs are required for users who belong + to universal groups in cross-domains. In environments where cross-domain group + membership does not apply, this field can be left blank." + ::= { ldapClientCfg 22 } + + ldapAuthCfg OBJECT-TYPE -- IMM1-only, return Not Found + SYNTAX INTEGER { + authenticationAndAuthorization(0), + authenticationOnly(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If ldapAuthCfg is set to 0, LDAP server is used to authenticate and authorize + users. If it is set to 1, LDAP server is only used to authenticate users. + + Note:LDAP Authentication Only mode is currently supported only in an Active + Directory environment." + ::= { ldapClientCfg 23 } + + + ldapSearchDomain OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter may be used as the domain name in the DNS SRV request, + depending on how the Domain Source parameter is configured." + ::= { ldapClientCfg 24 } + + ldapServiceName OBJECT-TYPE --IMM2-only + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The DNS SRV request sent to the DNS server must also specify a service name. + The configured value will be used for this purpose. If left blank, the default + value used is 'ldap'. Note that the DNS SRV request must also specify a protocol + name. This defaults to 'tcp' and is not configurable." + ::= { ldapClientCfg 25 } + + + -- ******************************************************************************** + -- NTP Configuration + -- ******************************************************************************** + ntpConfig OBJECT IDENTIFIER ::= { tcpProtocols 8 } + + ntpEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable the NTP client. The client will update + the IMM system clock at the frequency specified." + ::= { ntpConfig 1 } + + ntpIpAddressHostname1 OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "First NTP server's IP address or hostname if DNS is enabled + and configured." + ::= { ntpConfig 2 } + + ntpIpAddressHostname2 OBJECT-TYPE --IMM2-only + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Second NTP server's IP address or hostname if DNS is enabled + and configured." + ::= { ntpConfig 4 } + + ntpIpAddressHostname3 OBJECT-TYPE --IMM2-only + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Third NTP server's IP address or hostname if DNS is enabled + and configured." + ::= { ntpConfig 6 } + + ntpIpAddressHostname4 OBJECT-TYPE --IMM2-only + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Fourth NTP server's IP address or hostname if DNS is enabled + and configured." + ::= { ntpConfig 7 } + + + ntpUpdateFrequency OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The frequency in minutes that the NTP service runs. + The value range is 3 to 1440." + ::= { ntpConfig 3 } + + ntpUpdateClock OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Update the IMM system clock with the specified NTP server. + A valid NTP server must be configured first." + ::= { ntpConfig 5 } + + + -- ******************************************************************************** + -- IPMI Configuration NOTE: IMM2-only + -- ******************************************************************************** + ipmiConfig OBJECT IDENTIFIER ::= { tcpProtocols 10 } + + ipmiEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable IPMI" + ::= { ipmiConfig 1 } + + -- ******************************************************************************** + -- Save/Restore Configuration NOTE: IMM2-only + -- ******************************************************************************** + configurationManagement OBJECT IDENTIFIER ::= { configureSP 5 } + + + configurationManagementTftpServer OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "To save or restore the system configuration, + set the IP address or host name of the TFTP server where + the file should be transferred to or from. The address must be entered in a + dotted decimal IP string (e.g. 9.37.44.2), or equivalent for IPv6." + ::= { configurationManagement 1 } + + configurationManagementFileName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..254)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name of the saved file or restore-from file." + ::= { configurationManagement 2 } + + configurationManagementSaveStart OBJECT-TYPE + SYNTAX INTEGER { + execute(1), + execute-nowait(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Start saving the configuration file to the specified target file + and system. + Using execute will cause the SNMP client to wait for the save + operation to complete. + Using execute-nowait will not cause the SNMP client to wait for + the save to complete. Instead it will save the configuration in + the background. + + Note 1: Both configurationManagementTftpServer and + configurationManagementileName must be set. + Note 2: Depending on the target, it might take up to several + seconds for the save operation to complete. + Note 3: Use configurationManagementStatus to confirm the status of + the last operaion. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { configurationManagement 3 } + + configurationManagementRestoreStart OBJECT-TYPE + SYNTAX INTEGER { + execute(1), + execute-nowait(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Start restoring the configuration file from the specified target + file and system. + Using execute will cause the SNMP client to wait for the restore + operation to complete. + Using execute-nowait will not cause the SNMP client to wait for + the restore to complete. Instead it will restore the configuration + in the background. + + Note 1: Both configurationManagementTftpServer and + configurationManagementileName must be set. + Note 2: Depending on the target, it might take up to several + seconds for the operation to complete. + Note 3: Use configurationManagementStatus to confirm the status of + the last operation. + + NOTE: Value returned for the GET command is meaningless + for this MIB object." + ::= { configurationManagement 4 } + + configurationManagementStatus OBJECT-TYPE + SYNTAX INTEGER { + success(0), + failed(1), + saving(2), + restoring(3), + unsupported(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the last configurationManagement operation which + was initiated through SNMP method." + ::= { configurationManagement 5 } + + + -- ******************************************************************************** + -- Check IMM Version NOTE: IMM2-only + -- ******************************************************************************** + immVersionCheck OBJECT-TYPE + SYNTAX INTEGER { + immVersion(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the IMM version type." + ::= { configureSP 7 } + + +-- *********************************************************************** +-- System Services +-- *********************************************************************** + -- *********************************************************************** + -- System Watch Dog Timers + -- *********************************************************************** + serverTimers OBJECT IDENTIFIER ::= { generalSystemSettings 1 } + + oSHang OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + twoAndHalfMinutes(150), + threeMinutes(180), + threeAndHalfMinutes(210), + fourMinutes(240), + tenMinutes(600) --IMM1 setting + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number, in 1 second intervals, the IMM will + check to insure the OS is operating properly. + If the operating system fails to respond within 6 seconds to one + of these checks, the remote supervisor adapter will generate + an O/S Timeout alert(if enabled) and automatically restart the + system one time. Once the system is restarted, the O/S Watchdog + is automatically disabled until the operating + system is shutdown and the server is power cycled." + ::= { serverTimers 1 } + + oSLoader OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + oneHalfMinutes(1), + oneMinutes(2), + oneAndHalfMinutes(3), + twoMinutes(4), + twoAndHalfMinutes(5), + threeMinutes(6), + threeAndHalfMinutes(7), + fourMinutes(8), + fourAndHalfMinutes(9), + fiveMinutes(10), + sevenAndHalfMinutes(15), + tenMinutes(20), + fifteenMinutes(30), + twentyMinutes(40), + thirtyMinutes(60), + oneHour(120), + twoHours(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in 30 second intervals the remote IMM will wait + between completion of POST and the end of loading the OS. + If this interval is exceeded, the IMM will + generate a Loader Timeout alert(if enabled) and automatically restart + the system one time. Once the system is restarted, the + Loader Timeout is automatically disabled until the operating + system is shutdown and the server is power cycled." + ::= { serverTimers 2 } + + + -- *********************************************************************** + -- PXE Boot + -- *********************************************************************** + networkPXEboot OBJECT-TYPE + SYNTAX INTEGER { + networkPXEBootDisabled(0), + networkPXEBootEnabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Modify the system's boot sequence for the next system restart + in order to attempt a PXE/DHCP network boot. The system's boot + sequence(set via the BIOS settings) will be altered only if the + system is not under PAP (Privileged Access Protection)." + ::= { generalSystemSettings 2 } + +-- *********************************************************************** +-- System Power Control +-- *********************************************************************** + + -- *********************************************************************** + -- Power Statistics for the system + -- *********************************************************************** + powerStatistics OBJECT IDENTIFIER ::= { systemPower 1 } + currentSysPowerStatus OBJECT-TYPE + SYNTAX INTEGER { + poweredOff(0), + sleepS3(1), + poweredOn(255) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates if the system is currently powered on, off, or in sleep state." + ::= { powerStatistics 1 } + + + powerOnHours OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of hours the system has been powered on." + ::= { powerStatistics 2 } + + restartCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the system has been restarted." + ::= { powerStatistics 3 } + + systemState OBJECT-TYPE + SYNTAX INTEGER { + systemPowerOfforStateUnknown(0), + systemPowerOnorStartingUEFI(1), + systemInUEFI(2), + uEFIErrorDetected(3), + bootingOSorInUnsupportedOS(4), + oSBooted(5), + suspendToRAM(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Shows the current operational state of the system." + ::= { powerStatistics 4 } + + -- *********************************************************************** + -- System Power off configuration + -- *********************************************************************** + powerSysConfig OBJECT IDENTIFIER ::= { systemPower 2 } + + + powerSysOffDelay OBJECT-TYPE + SYNTAX INTEGER { + noDelay(0), + oneHalfMinute(30), + oneMinute(60), + twoMinutes(120), + threeMinutes(180), + fourMinutes(240), + fiveMinute(300), + sevenAndHalfMinutes(450), + tenMinutes(600), + fifteenMinutes(900), + twentyMinutes(1200), + thirtyMinutes(1800), + oneHour(3600), + twoHours(7200) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of 1 second interval the IMM will + wait before powering off the system." + ::= { powerSysConfig 1 } + + + powerSysOnClockSetting OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The clock setting used to determine when the IMM + will power on the system. The examples and the format follow: + + (1)For example to set the value so the system will power on + March 4, 2001 at 06:00AM set the value to: '03/04/2001,06:00'. + In order to insure correct operation, it is advisable for the + user to read the date and time of the IMM + clock before setting this value to a future time. + (2)Setting the reset value will cause the + power off timer to be reset and be deactivated. For example + to reset the clock set the value to: '01/01/2000,00:00', + + field contents range + _____ ________ _____ + 1 month 01..12 (reset value - 01) + 2 separator '/' + 3 day 01..31 (reset value - 01) + 4 separator '/' + 5 year 2000..2037 (reset value - 2000) + 6 separator ',' + 7 hour 00..23 (reset value - 00) + 8 separator ':' + 9 minutes 00..59 (reset value - 00) + " + ::= { powerSysConfig 2 } + + -- *********************************************************************** + -- System Power off control + -- *********************************************************************** + powerOffSystemControl OBJECT IDENTIFIER ::= { systemPower 3 } + + powerOffWithOsShutdown OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Power off the system after performing a OS shutdown." + ::= { powerOffSystemControl 1 } + + powerOffImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Power off the system immediately." + ::= { powerOffSystemControl 2 } + + -- *********************************************************************** + -- System Power on control + -- *********************************************************************** + powerOnSystemControl OBJECT IDENTIFIER ::= { systemPower 4 } + + powerOnImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Power on the system immediately." + ::= { powerOnSystemControl 2 } + + -- *********************************************************************** + -- Schedule Power Actions + -- *********************************************************************** + powerCyclingSchedule OBJECT IDENTIFIER ::= { systemPower 5 } + + schedulePowerOffWithOsShutdown OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Power Off the system after performing a OS shutdown at specified time and day of the week. + Example: Monday,09:00 + + field contents range + _____ ________ _____ + 1 day EveryDay,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Never (reset value - Never) + 2 separator ',' + 3 hour 00..23 (reset value - 00) + 4 separator ':' + 5 minutes 00..59 (reset value - 00) + day is case insensitive. + It is invalid to set a non zero time with day as Never. + To reset, set as Never,00:00." + ::= { powerCyclingSchedule 1 } + + schedulePowerOnSystem OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Power On the system at specified time and day of the week. + Example: Monday,09:00 + + field contents range + _____ ________ _____ + 1 day EveryDay,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Never (reset value - Never) + 2 separator ',' + 3 hour 00..23 (reset value - 00) + 4 separator ':' + 5 minutes 00..59 (reset value - 00) + day is case insensitive. + It is invalid to set a non zero time with day as Never. + To reset, set as Never,00:00." + ::= { powerCyclingSchedule 2 } + + -- *********************************************************************** + -- Control Sleep State + -- *********************************************************************** + powerControlSleep OBJECT IDENTIFIER ::= { systemPower 6 } + + powerEnterSleep OBJECT-TYPE + SYNTAX INTEGER { + execute (1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Set system to enter power sleep state. + The power sleep control actions will not work if the Sleep function is not enabled." + ::= { powerControlSleep 1 } + + powerExitSleep OBJECT-TYPE + SYNTAX INTEGER { + execute (1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Set system to exit power sleep state. + The power sleep control actions will not work if the Sleep function is not enabled." + ::= { powerControlSleep 2 } + + + -- *********************************************************************** + -- Control Power Restore Policy + -- *********************************************************************** + powerRestorePolicyControl OBJECT IDENTIFIER ::= { systemPower 7 } + + powerRestorePolicy OBJECT-TYPE + SYNTAX INTEGER { + alwaysoff(0), + restore(1), + alwayson(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Power Restore Policy determines the mode of operation if a power loss occurs. This + setting can also be configured via BIOS F1 setup. + alwaysoff: System will remain off once power is restored. + restore: Restores system to the same state it was before power failed. + alwayson: System will automatically power on once power is restored." + ::= { powerRestorePolicyControl 1 } + + powerRestoreDelay OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + random(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Power Restore Delay is executed when power restore policy is set to alwayson or restore + (if the previous state was power-on). + disabled: Power on the server without after AC is restored. + random: Provide a random delay between 1 and 15 seconds from the time when AC is restored + to the time when the server is automatically powered on." + ::= { powerRestorePolicyControl 2 } + +-- *********************************************************************** +-- Restart Control +-- *********************************************************************** + + shutdownOsThenRestart OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Shutdown the OS and then restart the system and boot the OS." + ::= { restartReset 1 } + + restartSystemImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Restart the system immediately and then boot the OS." + ::= { restartReset 2 } + + + restartSPImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Restart the IMM immediately." + ::= { restartReset 3 } + + resetSPConfigAndRestart OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Will cause all the IMM information to + be reset to it's initial factory defaults(all previous + configuration information is lost) and the IMM + will be re-started." + ::= { restartReset 4 } + + scheduleShutdownOsThenRestart OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Shutdown the OS and then restart the system and boot the OS + at specified Time and Day of the week. + Example: Monday,09:00 + + field contents range + _____ ________ _____ + 1 day EveryDay,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Never (reset value - Never) + 2 separator ',' + 3 hour 00..23 (reset value - 00) + 4 separator ':' + 5 minutes 00..59 (reset value - 00) + day is case insensitive. + It is invalid to set a non zero time with day as Never. + To reset, set as Never,00:00." + ::= { restartReset 5 } + + resetPowerSchedules OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "reset all power schedules. + schedulePowerOnSystem,schedulePowerOffWithOsShutdown, scheduleShutdownOsThenRestart. + This does not reset powerSysOnClockSetting" + ::= { restartReset 6 } + + bootServerF1Setup OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Boot the server to UEFI F1 Setup. If the server is powered on when the action is initiated, + the server will be powered off with an OS shutdown, then powered back on immediately and will + automatically boot into UEFI F1 Setup. If the server is powered off when the action is + initiated, the server will be powered on immediately and will automatically boot into + UEFI F1 Setup." + ::= { restartReset 7 } + + +-- *********************************************************************** +-- Firmware Update NOTE: Supported on IMM1 only +-- *********************************************************************** + firmwareUpdateTarget OBJECT-TYPE + SYNTAX INTEGER { + immCard(0) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Target module whose firmware will be updated." + ::= { firmwareUpdate 1 } + + firmwareUpdateTftpServer OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IP address of the TFTP server where the firmware file resides. + The address must be entered in a dotted decimal IP string + (eg. 9.37.44.2)." + ::= { firmwareUpdate 2 } + + firmwareUpdateFileName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name of the firmware file." + ::= { firmwareUpdate 3 } + + firmwareUpdateStart OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Start updating the firmware of the specified IMM Card. + Note 1: The firmware update might take up to several + minutes to complete. Do not reset the IMM Card until + the control has been returned. At this point, the results + will be displayed. + Note 2: Use firmwareUpdateStatus to confirm the status of + the last firmware update initiated by SNMP method. The + IMM Card must be restarted for the new firmware to + take affect." + ::= { firmwareUpdate 4 } + + + firmwareUpdateStatus OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the last firmware update which was + initiated through SNMP method." + ::= { firmwareUpdate 5 } + + +-- *********************************************************************** +-- Service Advisor +-- +-- Note: Support is not available on all IMM2 based Servers +-- +-- *********************************************************************** + + autoCallHomeSetup OBJECT IDENTIFIER ::= { serviceAdvisor 1 } + + acceptLicenseAgreement OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Accept Terms and Conditions of Service Advisor. The user will have to accept the terms and conditions + before Service Advisor can send diagnostic data to support personnel. If IMM configuration + is reset to defaults, the user will have to accept the terms and conditions again before they can + enable Service Advisor. For more information, please refer to the BladeCenter User's Guide. + + A GET of this object may return disabled(0) or enabled(1), depending upon the current state. However, + only enabled(1) is accepted on a SET in order to accept the license agreement. A SET of disabled(0) + will return noSuchValue and is not allowed." + ::= {autoCallHomeSetup 1} + + serviceAdvisorEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable Call Home Support. The User Agreement must be accepted and the contact information + must be set before the Call Home Support function of Service Advisor can be enabled." + ::= {autoCallHomeSetup 2} + + serviceSupportCenter OBJECT IDENTIFIER ::= {serviceAdvisor 2} + + ibmSupportCenter OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The country code for the Support Center. 2 character ISO country code." + ::= {serviceSupportCenter 1} + + contactInformation OBJECT IDENTIFIER ::= {serviceAdvisor 3} + + companyName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + " The organization/company name of the contact person. 1-30 characters." + ::= {contactInformation 1} + + contactName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The name of the contact person.1-30 characters." + ::= {contactInformation 2} + + phoneNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The phone of the contact person. 5-30 characters." + ::= {contactInformation 3} + + emailAddress OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The email of the contact person. It must contain '@' and dot '.' in form userid@hostname (30 characters maximum). + The userid can be alphanumeric characters, '.', '-', or '_' but must begin and end with alphanumeric characters. + The hostname can be alphanumeric characters, '.', '-', or '_'. It must contain at least two domain items. + Every domain item should begin and end with alphanumeric character, and the last domain item should be 2-20 alphabetic characters." + ::= {contactInformation 4} + + address OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The address of the machine location. The information in this field should be of sufficient detail to allow someone to + quickly find the chassis when necessary. 1-30 characters." + ::= {contactInformation 5} + + city OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The city of the machine location. 1-30 characters." + ::= {contactInformation 6} + + state OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of the machine location. 2-3 characters." + ::= {contactInformation 7} + + postalCode OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The postal code of the location for this system. 1-9 characters, only alphanumeric characters are valid." + ::= {contactInformation 8} + + phoneExtension OBJECT-TYPE -- IMM2-only + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The phone extension of the contact person. 30 characters maximum." + ::= {contactInformation 9} + + altContactName OBJECT-TYPE -- IMM2-only + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The name of the alternate contact person. 1-30 characters." + ::= {contactInformation 10} + + altPhoneNumber OBJECT-TYPE -- IMM2-only + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The phone of the alternate contact person. 5-30 characters." + ::= {contactInformation 11} + + altPhoneExtension OBJECT-TYPE -- IMM2-only + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The phone extension of the alternate contact person. 30 characters maximum." + ::= {contactInformation 12} + + altEmailAddress OBJECT-TYPE -- IMM2-only + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The email of the alternate contact person. It must contain '@' and dot '.' in form userid@hostname (30 characters maximum). + The userid can be alphanumeric characters, '.', '-', or '_' but must begin and end with alphanumeric characters. + The hostname can be alphanumeric characters, '.', '-', or '_'. It must contain at least two domain items. + Every domain item should begin and end with alphanumeric character, and the last domain item should be 2-20 alphabetic characters." + ::= {contactInformation 13} + + machineLocationPhoneNumber OBJECT-TYPE -- IMM2-only + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The phone of the physical location where the compuer system resides. 5-30 characters." + ::= {contactInformation 14} + + httpProxyConfig OBJECT IDENTIFIER ::= {serviceAdvisor 4} + + httpProxyEnable OBJECT-TYPE + SYNTAX INTEGER{ + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable of the HTTP Proxy. Select Enable to use the proxy for call home + connections from the IMM to the Service Center. HTTP Proxy is used by the IMM when it is not connected to the internet directly." + ::= {httpProxyConfig 1} + + httpProxyLocation OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Fully qualified host name or IP address of the HTTP Proxy. Maximum of 63 characters." + ::= {httpProxyConfig 2} + + httpProxyPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port number of the HTTP Proxy. An integer value from 1 to 65535." + ::= {httpProxyConfig 3} + + httpProxyUserName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User Name of the HTTP Proxy. A maximum of 30 characters string without spaces." + ::= {httpProxyConfig 4} + + httpProxyPassword OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Password of the HTTP Proxy. A maximum of 15 characters string without spaces." + ::= {httpProxyConfig 5} + + + activityLogs OBJECT IDENTIFIER ::= { serviceAdvisor 5} + + activityLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF ActivityLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + " + Table of Service Advisor Activity Log entries information. This table displays events that were generated + by the system or user that are called home. The entries are displayed in reverse chronological order + (most recent call home entry first). For any events that happen with same Date/Time, only one event will be + called home. If a call home event that is already in the activity log is triggered again on the same event + source, it will not be called home again unless the prior entry has been acknowledged as corrected or, in the + case of IMM1, 120 hours (5 days) have passed since it initially occurred and was called home." + ::= { activityLogs 1 } + + activityLogEntry OBJECT-TYPE + SYNTAX ActivityLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + " + Activity Log table entry. Each entry has the result of the call-home attempt, + the service number assigned for the issue by the Support Center, the event ID, event source, date and + time that event occured, and a text message. + " + INDEX { activityLogIndex } + ::= { activityLogTable 1 } + + + ActivityLogEntry ::= SEQUENCE { + activityLogIndex INTEGER, + activityLogString OCTET STRING, + activityLogAcknowledge INTEGER, + activityLogAttribute OCTET STRING + } + + + activityLogIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Activity Log index number. + For consistent results, view as a table and not as individual entries." + ::= { activityLogEntry 1 } + + activityLogString OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A string of data detailing one Activity Log entry. The text message is from the original entry in the event log. + + For consistent results, view as a table and not as individual entries." + ::= { activityLogEntry 2 } + + activityLogAcknowledge OBJECT-TYPE + SYNTAX INTEGER{ + no(0), + yes(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The acknowledgement of one Activity Log entry as corrected. This field allows the users to set a reminder next to + certain events to indicate their awareness of the issue. Checking the acknowledge flag will not cause the event to be removed + from the log or close the ticket at the Support Center. This log is not cleared, so the acknowledge flag can be used to indicate a problem + can be ignored. This field can be also used to override the 120 hour (5 day) filtering of reports via the Support Center or FTP/TFTP Server + of Service Data. + For consistent results, view as a table and not as individual entries." + ::= { activityLogEntry 3 } + + activityLogAttribute OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + " + A string of data detailing one Activity Log entry's attribute. It contains states of both calling the Support Center and FTP/TFTP Server. + A PENDING indicates that the system is preparing for the event to be called home by collecting data about the systems state. A SUCCESS state + indicates that the problem was successfully transmitted to the Support Center or FTP/TFTP Server. A DISABLED state indicates that Service Advisor + has disabled calling the Support Center or FTP/TFTP Server while the hardware event is detected. A NOT SENT state indicates that the serviceable + event was not sent to prevent the same event from being sent repeatedly. The FAILED state indicates that the attempt + to transmit the event information was not successful. Additional information may be found in the Event Log. + The service number is similar to a ticket number that can be used as a reference to the issue reported by the machine + when contacting the Support Center. The event ID, event source, date and time are all information from the original entry in the event log. + The acknowledged as corrected field is a reminder to certain events to indicate their awareness of the issue. + + For consistent results, view as a table and not as individual entries." + ::= { activityLogEntry 4 } + + -- ******************************************************************************** + -- autoftp + -- ******************************************************************************** + -- + autoFTPSetup OBJECT IDENTIFIER ::= { serviceAdvisor 6 } + + autoFTPCallMode OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + ftp(1), + tftp(2), + sftp(3)} -- IMM2-only + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the automated problem reporting mode. Automated problem reporting mode allows the IMM to automatically put + service data to a specified server when a call home event is detected. For any call home events that happen with same Date/Time, + only one event will be reported. The system will also wait for an interval of 120 hours (5 days) before another identical event + can be sent for the same failed component." + ::= { autoFTPSetup 1 } + + autoFTPCallAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the remote server address of FTP and TFTP. It should be fully qualified hostname or IP address." + ::= { autoFTPSetup 2 } + autoFTPCallPort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the port on remote FTP/TFTP server for data transmission." + ::= { autoFTPSetup 3 } + + autoFTPCallUserID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the user account to login remote FTP server." + ::= { autoFTPSetup 4 } + + autoFTPCallPassword OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This field specifies the password to login remote FTP server." + ::= { autoFTPSetup 5 } + + -- ******************************************************************************** + -- Call Home Exclusion List + -- ******************************************************************************** + + callHomeExclusionEvents OBJECT IDENTIFIER ::= { serviceAdvisor 7 } + + + readCallHomeExclusionEventTable OBJECT-TYPE + SYNTAX SEQUENCE OF ReadCallHomeExclusionEventEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Call Home Exclusion Event entries information." + ::= { callHomeExclusionEvents 1 } + + readCallHomeExclusionEventEntry OBJECT-TYPE + SYNTAX ReadCallHomeExclusionEventEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Call Home Exclusion Event table entry" + INDEX { readCallHomeExclusionEventIndex } + ::= { readCallHomeExclusionEventTable 1 } + + + ReadCallHomeExclusionEventEntry ::= SEQUENCE { + readCallHomeExclusionEventIndex INTEGER, + readCallHomeExclusionEventID OCTET STRING + } + + + readCallHomeExclusionEventIndex OBJECT-TYPE + SYNTAX INTEGER (1..1000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index number of one Call Home Exclusion Event. + For consistent results, view as a table and not as individual entries." + ::= { readCallHomeExclusionEventEntry 1 } + + readCallHomeExclusionEventID OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Event ID of one Call Home Exclusion Event entry. + For consistent results, view as a table and not as individual entries." + ::= { readCallHomeExclusionEventEntry 2 } + + + addCallHomeExclusionEvent OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Add one call home Event ID into the Call Home Exclusion List. + The Event ID is an 16-digit hexadecimal number (0-F) with an optional prefix of '0x' or '0X'. + The Event ID can be full specified with the 16 hexadecimal characters or can be specified with + an asterisk ??wild card character in any of the right 8 most characters. The wild card capability + allows for excluding a group of similar events. + + If Service Advisor Terms and Conditions are accepted, an event can be added into the exclusion list. + + NOTE: Value returned for the GET command is meaningless for this MIB object." + ::= { callHomeExclusionEvents 2} + + rmCallHomeExclusionEvent OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remove one call home Event ID from the Call Home Exclusion List. + The Event ID is an 16-digit hexadecimal number (0-F) with an optional prefix of '0x' or '0X'. + The Event ID can be full specified with the 16 hexadecimal characters or can be specified with + an asterisk ??wild card character in any of the right 8 most characters. The wild card capability + allows for excluding a group of similar events. + + If Service Advisor Terms and Conditions are accepted, an event on the exclusion list can be removed. + + NOTE: Value returned for the GET command is meaningless for this MIB object." + ::= { callHomeExclusionEvents 3} + rmAllCallHomeExclusionEvent OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remove all Event IDs from the Call Home Exclusion List. + If Service Advisor Terms and Conditions are accepted, events on the exclusion list can be removed. + + NOTE: Value returned for the GET command is meaningless for this MIB object." + ::= { callHomeExclusionEvents 4} + + -- ******************************************************************************** + -- Generate Test Call Home + -- ******************************************************************************** + + testCallHome OBJECT IDENTIFIER ::= { serviceAdvisor 8 } + + generateTestCallHome OBJECT-TYPE -- IMM2-only + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Generate a Test Call Home." + ::= { testCallHome 1} + + +-- ************************************************************************* +-- Scalable Complex Information +-- ************************************************************************* + + scalableComplex OBJECT IDENTIFIER ::= { scaling 1 } + + scalableComplexIdentifier OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unique numeric identifier for a complex." + ::= { scalableComplex 1 } + + scalableComplexNumPartitions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of partitions currently defined for this complex." + ::= { scalableComplex 2 } + + scalableComplexNumNodes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of nodes existing in this complex, regardless + of their assignment to any given partition. For ITEs or blabde, + the physical slot location of the nodes can be determined from the + scalableComplexNodeTable." + ::= { scalableComplex 3 } + + + scalableComplexClear OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "This clears all partition information related to the complex. Any nodes + associated with the complex are no longer assigned to any partitions. + All nodes in the complex must be powered off prior to attempting this + operation, otherwise, the action will fail." + ::= { scalableComplex 4 } + + + -- ************************************************************************* + -- Scalable Complex Partition Information + -- ************************************************************************* + + scalableComplexPartition OBJECT IDENTIFIER ::= { scaling 2 } + + scalableComplexPartitionTable OBJECT-TYPE + SYNTAX SEQUENCE OF ScalableComplexPartitionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of scalable complex partition information." + ::= { scalableComplexPartition 1 } + + scalableComplexPartitionEntry OBJECT-TYPE + SYNTAX ScalableComplexPartitionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Scalable complex partition information." + INDEX { scalableComplexPartitionIdentifier } + ::= { scalableComplexPartitionTable 1 } + + ScalableComplexPartitionEntry ::= SEQUENCE { + scalableComplexPartitionIdentifier INTEGER, + scalableComplexPartitionMode INTEGER, + scalableComplexPartitionPriNodeKey OCTET STRING, + scalableComplexPartitionNumNodes INTEGER, + scalableComplexPartitionStatus INTEGER + } + + scalableComplexPartitionIdentifier OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unique numeric identifier for a partition defined within a complex + installed in the chassis." + ::= { scalableComplexPartitionEntry 1 } + + scalableComplexPartitionMode OBJECT-TYPE + SYNTAX INTEGER { + partition(1), + standalone(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The currently configured mode of this partition. It is recommended that + a partition be powered off prior to modification of the mode. In addition, + switching a partition mode to stand-alone will cause subsequent partition + actions to be ignored until the partition mode is restored." + ::= { scalableComplexPartitionEntry 2 } + + scalableComplexPartitionPriNodeKey OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Node Key for the primary node in the partition. The Node Key is used + to select partition for some actions that affect all nodes in the partition." + ::= { scalableComplexPartitionEntry 3 } + + scalableComplexPartitionNumNodes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of nodes currently defined for this partition." + ::= { scalableComplexPartitionEntry 4 } + + scalableComplexPartitionStatus OBJECT-TYPE + SYNTAX INTEGER { + poweredoff(1), + poweredon(2), + invalid(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current power status of this partition when the partition has a + valid partition configuration. However, in the event the partition + reports a partition consitency check problem, the invalid state is provided." + ::= { scalableComplexPartitionEntry 5 } + + + scalableComplexPartitionSelect OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(4)) + ACCESS write-only + STATUS mandatory + DESCRIPTION + "This Node Key of Primary node of the partition is used to select the + partition for which a specific action will be taken" + ::= { scalableComplexPartition 2 } + + scalableComplexPartitionAction OBJECT-TYPE + SYNTAX INTEGER { + delete(1), + poweron(2), + poweroff(3), + powercycle(4) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "This object allows various actions to be taken in relation to a particular partition + in a given complex. + + delete(1) - Deletes the partition from the complex. All nodes in the partition must + be powered off prior to attempting this operation, otherwise, the action + will fail. + + poweron(2) - Powers up a powered off partition + + poweroff(3) - Powers off an already powered on partition + + powercycle(4) - Power cycles a partition" + ::= { scalableComplexPartition 3 } + + + + -- ************************************************************************* + -- Scalable Complex Partition Create + -- ************************************************************************* + + scalableComplexPartitionCreate OBJECT IDENTIFIER ::= { scaling 3 } + + scalableComplexPartitionCreateTable OBJECT-TYPE + SYNTAX SEQUENCE OF ScalableComplexPartitionCreateEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table used to identify the nodes to be used in create of a partition. + The nodes are identified by Node key. The first node listed will be the + primary node." + ::= { scalableComplexPartitionCreate 1 } + + scalableComplexPartitionCreateEntry OBJECT-TYPE + SYNTAX ScalableComplexPartitionCreateEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Node information for partition creation." + INDEX { scalableComplexPartitionCreateIndex } + ::= { scalableComplexPartitionCreateTable 1 } + + ScalableComplexPartitionCreateEntry ::= SEQUENCE { + scalableComplexPartitionCreateIndex INTEGER, + scalableComplexPartitionCreateNodeKey OCTET STRING + } + + scalableComplexPartitionCreateIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The table index." + ::= { scalableComplexPartitionCreateEntry 1 } + + scalableComplexPartitionCreateNodeKey OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(4)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Node Key for a node included in the partition to be created. The first Node Key + in the table is used will be the primary node in the partition to be created." + ::= { scalableComplexPartitionCreateEntry 2 } + + + scalableComplexPartitionActionCreate OBJECT-TYPE + SYNTAX INTEGER { + create(1), + clear(2) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "This object is used to request creation of a new partition, using the nodes + listed in the scalableComplexPartitionCreateTable. + + None of the systems can be part of another valid partition, and there cannot + be duplicate Node Keys specified. Partition changes will fail if any of the + systems specified in the change are powered on. + + If the partition is successfully created, the scalableComplexPartitionCreateTable + entries will be cleared." + ::= { scalableComplexPartitionCreate 2 } + + + -- ************************************************************************* + -- Scalable Complex Node Information + -- ************************************************************************* + + scalableComplexNode OBJECT IDENTIFIER ::= { scaling 4 } + + scalableComplexNodeTable OBJECT-TYPE + SYNTAX SEQUENCE OF ScalableComplexNodeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of scalable complex node information. This table provides information + and control actions related to the nodes installed in the chassis. + Complex, partition and port information and control are defined + in their own tables." + ::= { scalableComplexNode 1 } + + scalableComplexNodeEntry OBJECT-TYPE + SYNTAX ScalableComplexNodeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Scalable complex node information." + INDEX { scalableComplexNodeIndex } + ::= { scalableComplexNodeTable 1 } + + ScalableComplexNodeEntry ::= SEQUENCE { + scalableComplexNodeIndex INTEGER, + scalableComplexNodeSerialNumber OCTET STRING, + scalableComplexNodeKey OCTET STRING, + scalableComplexNodePartitionID INTEGER, + scalableComplexNodeRole INTEGER, + scalableComplexNodeNumPorts INTEGER + } + + scalableComplexNodeIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The node table index." + ::= { scalableComplexNodeEntry 1 } + + scalableComplexNodeSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The machine serial number of the node which identifies the node. + Note that uniqueness is not guaranteed." + ::= { scalableComplexNodeEntry 2 } + + scalableComplexNodeKey OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Node Key for the node. The Node Key is used to select the + node for some particular action." + ::= { scalableComplexNodeEntry 3 } + + scalableComplexNodePartitionID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "For an assigned node, the identifier of the partition this node is related to. + For an unassigned node, this object has no meaning." + ::= { scalableComplexNodeEntry 4 } + + scalableComplexNodeRole OBJECT-TYPE + SYNTAX INTEGER { + primary(1), + secondary(2), + unassigned(255) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates if the node is assigned to a partition, and if so, provides an + indication of whether the node is the primary node of the partition or not." + ::= { scalableComplexNodeEntry 5 } + + scalableComplexNodeNumPorts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of remote nodes that this node has links to." + ::= { scalableComplexNodeEntry 6 } + + + scalableComplexNodeSelect OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(4)) + ACCESS write-only + STATUS mandatory + DESCRIPTION + "This Node Key is used to select the node for which a specific action + will be taken" + ::= { scalableComplexNode 2 } + + + scalableComplexNodeAction OBJECT-TYPE + SYNTAX INTEGER { + poweroff(1), + poweron(2) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "The actions that can be applied to an unassigned node. The current state is + provided by the scalableComplexNodeState object." + ::= { scalableComplexNode 3 } + + scalableComplexNodeAutoCreate OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "This object is used to create a partition from all of the nodes in the complex. + + None of the systems can be in a partition and all the systems in the complex must + be powered off." + ::= { scalableComplexNode 4 } + + + -- ************************************************************************* + -- Scalable Complex Node Port Information + -- ************************************************************************* + + scalableComplexNodePort OBJECT IDENTIFIER ::= { scaling 5 } + + scalableComplexNodePortTable OBJECT-TYPE + SYNTAX SEQUENCE OF ScalableComplexNodePortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of scalable complex node port information which provides details + related to the port connectivity. Complex, partition and node information + and control are defined in their own tables." + ::= { scalableComplexNodePort 1 } + + scalableComplexNodePortEntry OBJECT-TYPE + SYNTAX ScalableComplexNodePortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Scalable complex node port information." + INDEX { scalableComplexNodePortIndex, scalableComplexNodePortNum } + ::= { scalableComplexNodePortTable 1 } + + ScalableComplexNodePortEntry ::= SEQUENCE { + scalableComplexNodePortIndex INTEGER, + scalableComplexNodePortNum INTEGER, + scalableComplexNodePortRemNodeKey OCTET STRING, + scalableComplexNodePortRemNum INTEGER, + scalableComplexNodePortStatus INTEGER, + scalableComplexNodePortType INTEGER + } + + scalableComplexNodePortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Node Port table index." + ::= { scalableComplexNodePortEntry 1 } + + scalableComplexNodePortNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port number of a port on this node. Note that this port + number is 0-based, but since it is used as the table index + (0 is not allowed), it will be presented as one more than the + actual port number." + ::= { scalableComplexNodePortEntry 2 } + + scalableComplexNodePortRemNodeKey OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Node Key for the remote node." + + ::= { scalableComplexNodePortEntry 3 } + + scalableComplexNodePortRemNum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The zero-based port number of the remote port." + ::= { scalableComplexNodePortEntry 4 } + + scalableComplexNodePortStatus OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabled(2), + unknown(255) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current status of the port." + ::= { scalableComplexNodePortEntry 5 } + + scalableComplexNodePortType OBJECT-TYPE + SYNTAX INTEGER { + qpi(1), + exa(2), + unknown(255) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port type." + ::= { scalableComplexNodePortEntry 6 } + + +END diff --git a/pandora_console/attachment/mibs/INET-ADDRESS-MIB.mib b/pandora_console/attachment/mibs/INET-ADDRESS-MIB.mib index af1e02303a..a778cba6b7 100644 --- a/pandora_console/attachment/mibs/INET-ADDRESS-MIB.mib +++ b/pandora_console/attachment/mibs/INET-ADDRESS-MIB.mib @@ -1,425 +1,402 @@ --- ***************************************************************** --- INET-ADDRESS-MIB.my: Textual Conventions for Internet Network --- Address. --- --- July 2005, Subra Hegde --- --- Copyright (c) 2005 by cisco Systems, Inc. --- All rights reserved. --- --- ***************************************************************** - --- This MIB is extracted from RFC 4001 - -INET-ADDRESS-MIB DEFINITIONS ::= BEGIN - -IMPORTS - MODULE-IDENTITY, mib-2, Unsigned32 FROM SNMPv2-SMI - TEXTUAL-CONVENTION FROM SNMPv2-TC; - -inetAddressMIB MODULE-IDENTITY - LAST-UPDATED "200502040000Z" - ORGANIZATION - "IETF Operations and Management Area" - CONTACT-INFO - "Juergen Schoenwaelder (Editor) - International University Bremen - P.O. Box 750 561 - 28725 Bremen, Germany - - Phone: +49 421 200-3587 - EMail: j.schoenwaelder@iu-bremen.de - - Send comments to ." - DESCRIPTION - "This MIB module defines textual conventions for - representing Internet addresses. An Internet - address can be an IPv4 address, an IPv6 address, - or a DNS domain name. This module also defines - textual conventions for Internet port numbers, - autonomous system numbers, and the length of an - Internet address prefix. - - Copyright (C) The Internet Society (2005). This version - of this MIB module is part of RFC 4001, see the RFC - itself for full legal notices." - REVISION "200502040000Z" - DESCRIPTION - "Third version, published as RFC 4001. This revision - introduces the InetZoneIndex, InetScopeType, and - InetVersion textual conventions." - REVISION "200205090000Z" - DESCRIPTION - "Second version, published as RFC 3291. This - revision contains several clarifications and - introduces several new textual conventions: - InetAddressPrefixLength, InetPortNumber, - InetAutonomousSystemNumber, InetAddressIPv4z, - and InetAddressIPv6z." - REVISION "200006080000Z" - - - DESCRIPTION - "Initial version, published as RFC 2851." - ::= { mib-2 76 } - -InetAddressType ::= TEXTUAL-CONVENTION - STATUS current - DESCRIPTION - "A value that represents a type of Internet address. - - unknown(0) An unknown address type. This value MUST - be used if the value of the corresponding - InetAddress object is a zero-length string. - It may also be used to indicate an IP address - that is not in one of the formats defined - below. - - ipv4(1) An IPv4 address as defined by the - InetAddressIPv4 textual convention. - - ipv6(2) An IPv6 address as defined by the - InetAddressIPv6 textual convention. - - ipv4z(3) A non-global IPv4 address including a zone - index as defined by the InetAddressIPv4z - textual convention. - - ipv6z(4) A non-global IPv6 address including a zone - index as defined by the InetAddressIPv6z - textual convention. - - dns(16) A DNS domain name as defined by the - InetAddressDNS textual convention. - - Each definition of a concrete InetAddressType value must be - accompanied by a definition of a textual convention for use - with that InetAddressType. - - To support future extensions, the InetAddressType textual - convention SHOULD NOT be sub-typed in object type definitions. - It MAY be sub-typed in compliance statements in order to - require only a subset of these address types for a compliant - implementation. - - Implementations must ensure that InetAddressType objects - and any dependent objects (e.g., InetAddress objects) are - consistent. An inconsistentValue error must be generated - if an attempt to change an InetAddressType object would, - for example, lead to an undefined InetAddress value. In - - - particular, InetAddressType/InetAddress pairs must be - changed together if the address type changes (e.g., from - ipv6(2) to ipv4(1))." - SYNTAX INTEGER { - unknown(0), - ipv4(1), - ipv6(2), - ipv4z(3), - ipv6z(4), - dns(16) - } - -InetAddress ::= TEXTUAL-CONVENTION - STATUS current - DESCRIPTION - "Denotes a generic Internet address. - - An InetAddress value is always interpreted within the context - of an InetAddressType value. Every usage of the InetAddress - textual convention is required to specify the InetAddressType - object that provides the context. It is suggested that the - InetAddressType object be logically registered before the - object(s) that use the InetAddress textual convention, if - they appear in the same logical row. - - The value of an InetAddress object must always be - consistent with the value of the associated InetAddressType - object. Attempts to set an InetAddress object to a value - inconsistent with the associated InetAddressType - must fail with an inconsistentValue error. - - When this textual convention is used as the syntax of an - index object, there may be issues with the limit of 128 - sub-identifiers specified in SMIv2, STD 58. In this case, - the object definition MUST include a 'SIZE' clause to - limit the number of potential instance sub-identifiers; - otherwise the applicable constraints MUST be stated in - the appropriate conceptual row DESCRIPTION clauses, or - in the surrounding documentation if there is no single - DESCRIPTION clause that is appropriate." - SYNTAX OCTET STRING (SIZE (0..255)) - -InetAddressIPv4 ::= TEXTUAL-CONVENTION - DISPLAY-HINT "1d.1d.1d.1d" - STATUS current - DESCRIPTION - "Represents an IPv4 network address: - - - Octets Contents Encoding - 1-4 IPv4 address network-byte order - - The corresponding InetAddressType value is ipv4(1). - - This textual convention SHOULD NOT be used directly in object - definitions, as it restricts addresses to a specific format. - However, if it is used, it MAY be used either on its own or in - conjunction with InetAddressType, as a pair." - SYNTAX OCTET STRING (SIZE (4)) - -InetAddressIPv6 ::= TEXTUAL-CONVENTION - DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x" - STATUS current - DESCRIPTION - "Represents an IPv6 network address: - - Octets Contents Encoding - 1-16 IPv6 address network-byte order - - The corresponding InetAddressType value is ipv6(2). - - This textual convention SHOULD NOT be used directly in object - definitions, as it restricts addresses to a specific format. - However, if it is used, it MAY be used either on its own or in - conjunction with InetAddressType, as a pair." - SYNTAX OCTET STRING (SIZE (16)) - -InetAddressIPv4z ::= TEXTUAL-CONVENTION - DISPLAY-HINT "1d.1d.1d.1d%4d" - STATUS current - DESCRIPTION - "Represents a non-global IPv4 network address, together - with its zone index: - - Octets Contents Encoding - 1-4 IPv4 address network-byte order - 5-8 zone index network-byte order - - The corresponding InetAddressType value is ipv4z(3). - - The zone index (bytes 5-8) is used to disambiguate identical - address values on nodes that have interfaces attached to - different zones of the same scope. The zone index may contain - the special value 0, which refers to the default zone for each - scope. - - This textual convention SHOULD NOT be used directly in object - - - definitions, as it restricts addresses to a specific format. - However, if it is used, it MAY be used either on its own or in - conjunction with InetAddressType, as a pair." - SYNTAX OCTET STRING (SIZE (8)) - -InetAddressIPv6z ::= TEXTUAL-CONVENTION - DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d" - STATUS current - DESCRIPTION - "Represents a non-global IPv6 network address, together - with its zone index: - - Octets Contents Encoding - 1-16 IPv6 address network-byte order - 17-20 zone index network-byte order - - The corresponding InetAddressType value is ipv6z(4). - - The zone index (bytes 17-20) is used to disambiguate - identical address values on nodes that have interfaces - attached to different zones of the same scope. The zone index - may contain the special value 0, which refers to the default - zone for each scope. - - This textual convention SHOULD NOT be used directly in object - definitions, as it restricts addresses to a specific format. - However, if it is used, it MAY be used either on its own or in - conjunction with InetAddressType, as a pair." - SYNTAX OCTET STRING (SIZE (20)) - -InetAddressDNS ::= TEXTUAL-CONVENTION - DISPLAY-HINT "255a" - STATUS current - DESCRIPTION - "Represents a DNS domain name. The name SHOULD be fully - qualified whenever possible. - - The corresponding InetAddressType is dns(16). - - The DESCRIPTION clause of InetAddress objects that may have - InetAddressDNS values MUST fully describe how (and when) - these names are to be resolved to IP addresses. - - The resolution of an InetAddressDNS value may require to - query multiple DNS records (e.g., A for IPv4 and AAAA for - IPv6). The order of the resolution process and which DNS - record takes precedence depends on the configuration of the - resolver. - - - This textual convention SHOULD NOT be used directly in object - definitions, as it restricts addresses to a specific format. - However, if it is used, it MAY be used either on its own or in - conjunction with InetAddressType, as a pair." - SYNTAX OCTET STRING (SIZE (1..255)) - -InetAddressPrefixLength ::= TEXTUAL-CONVENTION - DISPLAY-HINT "d" - STATUS current - DESCRIPTION - "Denotes the length of a generic Internet network address - prefix. A value of n corresponds to an IP address mask - that has n contiguous 1-bits from the most significant - bit (MSB), with all other bits set to 0. - - An InetAddressPrefixLength value is always interpreted within - the context of an InetAddressType value. Every usage of the - InetAddressPrefixLength textual convention is required to - specify the InetAddressType object that provides the - context. It is suggested that the InetAddressType object be - logically registered before the object(s) that use the - InetAddressPrefixLength textual convention, if they appear - in the same logical row. - - InetAddressPrefixLength values larger than - the maximum length of an IP address for a specific - InetAddressType are treated as the maximum significant - value applicable for the InetAddressType. The maximum - significant value is 32 for the InetAddressType - 'ipv4(1)' and 'ipv4z(3)' and 128 for the InetAddressType - 'ipv6(2)' and 'ipv6z(4)'. The maximum significant value - for the InetAddressType 'dns(16)' is 0. - - The value zero is object-specific and must be defined as - part of the description of any object that uses this - syntax. Examples of the usage of zero might include - situations where the Internet network address prefix - is unknown or does not apply. - - The upper bound of the prefix length has been chosen to - be consistent with the maximum size of an InetAddress." - SYNTAX Unsigned32 (0..2040) - -InetPortNumber ::= TEXTUAL-CONVENTION - DISPLAY-HINT "d" - STATUS current - DESCRIPTION - "Represents a 16 bit port number of an Internet transport - - - layer protocol. Port numbers are assigned by IANA. A - current list of all assignments is available from - . - - The value zero is object-specific and must be defined as - part of the description of any object that uses this - syntax. Examples of the usage of zero might include - situations where a port number is unknown, or when the - value zero is used as a wildcard in a filter." - REFERENCE "STD 6 (RFC 768), STD 7 (RFC 793) and RFC 2960" - SYNTAX Unsigned32 (0..65535) - -InetAutonomousSystemNumber ::= TEXTUAL-CONVENTION - DISPLAY-HINT "d" - STATUS current - DESCRIPTION - "Represents an autonomous system number that identifies an - Autonomous System (AS). An AS is a set of routers under a - single technical administration, using an interior gateway - protocol and common metrics to route packets within the AS, - and using an exterior gateway protocol to route packets to - other ASes'. IANA maintains the AS number space and has - delegated large parts to the regional registries. - - Autonomous system numbers are currently limited to 16 bits - (0..65535). There is, however, work in progress to enlarge the - autonomous system number space to 32 bits. Therefore, this - textual convention uses an Unsigned32 value without a - range restriction in order to support a larger autonomous - system number space." - REFERENCE "RFC 1771, RFC 1930" - SYNTAX Unsigned32 - -InetScopeType ::= TEXTUAL-CONVENTION - STATUS current - DESCRIPTION - "Represents a scope type. This textual convention can be used - in cases where a MIB has to represent different scope types - and there is no context information, such as an InetAddress - object, that implicitly defines the scope type. - - Note that not all possible values have been assigned yet, but - they may be assigned in future revisions of this specification. - Applications should therefore be able to deal with values - not yet assigned." - REFERENCE "RFC 3513" - SYNTAX INTEGER { - -- reserved(0), - - - interfaceLocal(1), - linkLocal(2), - subnetLocal(3), - adminLocal(4), - siteLocal(5), -- site-local unicast addresses - -- have been deprecated by RFC 3879 - -- unassigned(6), - -- unassigned(7), - organizationLocal(8), - -- unassigned(9), - -- unassigned(10), - -- unassigned(11), - -- unassigned(12), - -- unassigned(13), - global(14) - -- reserved(15) - } - -InetZoneIndex ::= TEXTUAL-CONVENTION - DISPLAY-HINT "d" - STATUS current - DESCRIPTION - "A zone index identifies an instance of a zone of a - specific scope. - - The zone index MUST disambiguate identical address - values. For link-local addresses, the zone index will - typically be the interface index (ifIndex as defined in the - IF-MIB) of the interface on which the address is configured. - - The zone index may contain the special value 0, which refers - to the default zone. The default zone may be used in cases - where the valid zone index is not known (e.g., when a - management application has to write a link-local IPv6 - address without knowing the interface index value). The - default zone SHOULD NOT be used as an easy way out in - cases where the zone index for a non-global IPv6 address - is known." - REFERENCE "RFC4007" - SYNTAX Unsigned32 - -InetVersion ::= TEXTUAL-CONVENTION - STATUS current - DESCRIPTION - "A value representing a version of the IP protocol. - - unknown(0) An unknown or unspecified version of the IP - protocol. - - - ipv4(1) The IPv4 protocol as defined in RFC 791 (STD 5). - - ipv6(2) The IPv6 protocol as defined in RFC 2460. - - Note that this textual convention SHOULD NOT be used to - distinguish different address types associated with IP - protocols. The InetAddressType has been designed for this - purpose." - REFERENCE "RFC 791, RFC 2460" - SYNTAX INTEGER { - unknown(0), - ipv4(1), - ipv6(2) - } -END +INET-ADDRESS-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, mib-2, Unsigned32 FROM SNMPv2-SMI + TEXTUAL-CONVENTION FROM SNMPv2-TC; + +inetAddressMIB MODULE-IDENTITY + LAST-UPDATED "200502040000Z" + ORGANIZATION + "IETF Operations and Management Area" + CONTACT-INFO + "Juergen Schoenwaelder (Editor) + International University Bremen + P.O. Box 750 561 + 28725 Bremen, Germany + + Phone: +49 421 200-3587 + EMail: j.schoenwaelder@iu-bremen.de + + Send comments to ." + DESCRIPTION + "This MIB module defines textual conventions for + representing Internet addresses. An Internet + address can be an IPv4 address, an IPv6 address, + or a DNS domain name. This module also defines + textual conventions for Internet port numbers, + autonomous system numbers, and the length of an + Internet address prefix. + + Copyright (C) The Internet Society (2005). This version + of this MIB module is part of RFC 4001, see the RFC + itself for full legal notices." + REVISION "200502040000Z" + DESCRIPTION + "Third version, published as RFC 4001. This revision + introduces the InetZoneIndex, InetScopeType, and + InetVersion textual conventions." + REVISION "200205090000Z" + DESCRIPTION + "Second version, published as RFC 3291. This + revision contains several clarifications and + introduces several new textual conventions: + InetAddressPrefixLength, InetPortNumber, + InetAutonomousSystemNumber, InetAddressIPv4z, + and InetAddressIPv6z." + REVISION "200006080000Z" + DESCRIPTION + "Initial version, published as RFC 2851." + ::= { mib-2 76 } + +InetAddressType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A value that represents a type of Internet address. + + unknown(0) An unknown address type. This value MUST + be used if the value of the corresponding + InetAddress object is a zero-length string. + It may also be used to indicate an IP address + that is not in one of the formats defined + below. + + ipv4(1) An IPv4 address as defined by the + InetAddressIPv4 textual convention. + + ipv6(2) An IPv6 address as defined by the + InetAddressIPv6 textual convention. + + ipv4z(3) A non-global IPv4 address including a zone + index as defined by the InetAddressIPv4z + textual convention. + + ipv6z(4) A non-global IPv6 address including a zone + index as defined by the InetAddressIPv6z + textual convention. + + dns(16) A DNS domain name as defined by the + InetAddressDNS textual convention. + + Each definition of a concrete InetAddressType value must be + accompanied by a definition of a textual convention for use + with that InetAddressType. + + To support future extensions, the InetAddressType textual + convention SHOULD NOT be sub-typed in object type definitions. + It MAY be sub-typed in compliance statements in order to + require only a subset of these address types for a compliant + implementation. + + Implementations must ensure that InetAddressType objects + and any dependent objects (e.g., InetAddress objects) are + consistent. An inconsistentValue error must be generated + if an attempt to change an InetAddressType object would, + for example, lead to an undefined InetAddress value. In + + particular, InetAddressType/InetAddress pairs must be + changed together if the address type changes (e.g., from + ipv6(2) to ipv4(1))." + SYNTAX INTEGER { + unknown(0), + ipv4(1), + ipv6(2), + ipv4z(3), + ipv6z(4), + dns(16) + } + +InetAddress ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Denotes a generic Internet address. + + An InetAddress value is always interpreted within the context + of an InetAddressType value. Every usage of the InetAddress + textual convention is required to specify the InetAddressType + object that provides the context. It is suggested that the + InetAddressType object be logically registered before the + object(s) that use the InetAddress textual convention, if + they appear in the same logical row. + + The value of an InetAddress object must always be + consistent with the value of the associated InetAddressType + object. Attempts to set an InetAddress object to a value + inconsistent with the associated InetAddressType + must fail with an inconsistentValue error. + + When this textual convention is used as the syntax of an + index object, there may be issues with the limit of 128 + sub-identifiers specified in SMIv2, STD 58. In this case, + the object definition MUST include a 'SIZE' clause to + limit the number of potential instance sub-identifiers; + otherwise the applicable constraints MUST be stated in + the appropriate conceptual row DESCRIPTION clauses, or + in the surrounding documentation if there is no single + DESCRIPTION clause that is appropriate." + SYNTAX OCTET STRING (SIZE (0..255)) + +InetAddressIPv4 ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1d.1d.1d.1d" + STATUS current + DESCRIPTION + "Represents an IPv4 network address: + + Octets Contents Encoding + 1-4 IPv4 address network-byte order + + The corresponding InetAddressType value is ipv4(1). + + This textual convention SHOULD NOT be used directly in object + definitions, as it restricts addresses to a specific format. + However, if it is used, it MAY be used either on its own or in + conjunction with InetAddressType, as a pair." + SYNTAX OCTET STRING (SIZE (4)) + +InetAddressIPv6 ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x" + STATUS current + DESCRIPTION + "Represents an IPv6 network address: + + Octets Contents Encoding + 1-16 IPv6 address network-byte order + + The corresponding InetAddressType value is ipv6(2). + + This textual convention SHOULD NOT be used directly in object + definitions, as it restricts addresses to a specific format. + However, if it is used, it MAY be used either on its own or in + conjunction with InetAddressType, as a pair." + SYNTAX OCTET STRING (SIZE (16)) + +InetAddressIPv4z ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1d.1d.1d.1d%4d" + STATUS current + DESCRIPTION + "Represents a non-global IPv4 network address, together + with its zone index: + + Octets Contents Encoding + 1-4 IPv4 address network-byte order + 5-8 zone index network-byte order + + The corresponding InetAddressType value is ipv4z(3). + + The zone index (bytes 5-8) is used to disambiguate identical + address values on nodes that have interfaces attached to + different zones of the same scope. The zone index may contain + the special value 0, which refers to the default zone for each + scope. + + This textual convention SHOULD NOT be used directly in object + + definitions, as it restricts addresses to a specific format. + However, if it is used, it MAY be used either on its own or in + conjunction with InetAddressType, as a pair." + SYNTAX OCTET STRING (SIZE (8)) + +InetAddressIPv6z ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d" + STATUS current + DESCRIPTION + "Represents a non-global IPv6 network address, together + with its zone index: + + Octets Contents Encoding + 1-16 IPv6 address network-byte order + 17-20 zone index network-byte order + + The corresponding InetAddressType value is ipv6z(4). + + The zone index (bytes 17-20) is used to disambiguate + identical address values on nodes that have interfaces + attached to different zones of the same scope. The zone index + may contain the special value 0, which refers to the default + zone for each scope. + + This textual convention SHOULD NOT be used directly in object + definitions, as it restricts addresses to a specific format. + However, if it is used, it MAY be used either on its own or in + conjunction with InetAddressType, as a pair." + SYNTAX OCTET STRING (SIZE (20)) + +InetAddressDNS ::= TEXTUAL-CONVENTION + DISPLAY-HINT "255a" + STATUS current + DESCRIPTION + "Represents a DNS domain name. The name SHOULD be fully + qualified whenever possible. + + The corresponding InetAddressType is dns(16). + + The DESCRIPTION clause of InetAddress objects that may have + InetAddressDNS values MUST fully describe how (and when) + these names are to be resolved to IP addresses. + + The resolution of an InetAddressDNS value may require to + query multiple DNS records (e.g., A for IPv4 and AAAA for + IPv6). The order of the resolution process and which DNS + record takes precedence depends on the configuration of the + resolver. + + This textual convention SHOULD NOT be used directly in object + definitions, as it restricts addresses to a specific format. + However, if it is used, it MAY be used either on its own or in + conjunction with InetAddressType, as a pair." + SYNTAX OCTET STRING (SIZE (1..255)) + +InetAddressPrefixLength ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "Denotes the length of a generic Internet network address + prefix. A value of n corresponds to an IP address mask + that has n contiguous 1-bits from the most significant + bit (MSB), with all other bits set to 0. + + An InetAddressPrefixLength value is always interpreted within + the context of an InetAddressType value. Every usage of the + InetAddressPrefixLength textual convention is required to + specify the InetAddressType object that provides the + context. It is suggested that the InetAddressType object be + logically registered before the object(s) that use the + InetAddressPrefixLength textual convention, if they appear + in the same logical row. + + InetAddressPrefixLength values larger than + the maximum length of an IP address for a specific + InetAddressType are treated as the maximum significant + value applicable for the InetAddressType. The maximum + significant value is 32 for the InetAddressType + 'ipv4(1)' and 'ipv4z(3)' and 128 for the InetAddressType + 'ipv6(2)' and 'ipv6z(4)'. The maximum significant value + for the InetAddressType 'dns(16)' is 0. + + The value zero is object-specific and must be defined as + part of the description of any object that uses this + syntax. Examples of the usage of zero might include + situations where the Internet network address prefix + is unknown or does not apply. + + The upper bound of the prefix length has been chosen to + be consistent with the maximum size of an InetAddress." + SYNTAX Unsigned32 (0..2040) + +InetPortNumber ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "Represents a 16 bit port number of an Internet transport + + layer protocol. Port numbers are assigned by IANA. A + current list of all assignments is available from + . + + The value zero is object-specific and must be defined as + part of the description of any object that uses this + syntax. Examples of the usage of zero might include + situations where a port number is unknown, or when the + value zero is used as a wildcard in a filter." + REFERENCE "STD 6 (RFC 768), STD 7 (RFC 793) and RFC 2960" + SYNTAX Unsigned32 (0..65535) + +InetAutonomousSystemNumber ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "Represents an autonomous system number that identifies an + Autonomous System (AS). An AS is a set of routers under a + single technical administration, using an interior gateway + protocol and common metrics to route packets within the AS, + and using an exterior gateway protocol to route packets to + other ASes'. IANA maintains the AS number space and has + delegated large parts to the regional registries. + + Autonomous system numbers are currently limited to 16 bits + (0..65535). There is, however, work in progress to enlarge the + autonomous system number space to 32 bits. Therefore, this + textual convention uses an Unsigned32 value without a + range restriction in order to support a larger autonomous + system number space." + REFERENCE "RFC 1771, RFC 1930" + SYNTAX Unsigned32 + +InetScopeType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents a scope type. This textual convention can be used + in cases where a MIB has to represent different scope types + and there is no context information, such as an InetAddress + object, that implicitly defines the scope type. + + Note that not all possible values have been assigned yet, but + they may be assigned in future revisions of this specification. + Applications should therefore be able to deal with values + not yet assigned." + REFERENCE "RFC 3513" + SYNTAX INTEGER { + -- reserved(0), + interfaceLocal(1), + linkLocal(2), + subnetLocal(3), + adminLocal(4), + siteLocal(5), -- site-local unicast addresses + -- have been deprecated by RFC 3879 + -- unassigned(6), + -- unassigned(7), + organizationLocal(8), + -- unassigned(9), + -- unassigned(10), + -- unassigned(11), + -- unassigned(12), + -- unassigned(13), + global(14) + -- reserved(15) + } + +InetZoneIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A zone index identifies an instance of a zone of a + specific scope. + + The zone index MUST disambiguate identical address + values. For link-local addresses, the zone index will + typically be the interface index (ifIndex as defined in the + IF-MIB) of the interface on which the address is configured. + + The zone index may contain the special value 0, which refers + to the default zone. The default zone may be used in cases + where the valid zone index is not known (e.g., when a + management application has to write a link-local IPv6 + address without knowing the interface index value). The + default zone SHOULD NOT be used as an easy way out in + cases where the zone index for a non-global IPv6 address + is known." + REFERENCE "RFC4007" + SYNTAX Unsigned32 + +InetVersion ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A value representing a version of the IP protocol. + + unknown(0) An unknown or unspecified version of the IP + protocol. + + ipv4(1) The IPv4 protocol as defined in RFC 791 (STD 5). + + ipv6(2) The IPv6 protocol as defined in RFC 2460. + + Note that this textual convention SHOULD NOT be used to + distinguish different address types associated with IP + protocols. The InetAddressType has been designed for this + purpose." + REFERENCE "RFC 791, RFC 2460" + SYNTAX INTEGER { + unknown(0), + ipv4(1), + ipv6(2) + } +END diff --git a/pandora_console/attachment/mibs/IPV6-ICMP-MIB b/pandora_console/attachment/mibs/IPV6-ICMP-MIB new file mode 100644 index 0000000000..bb66da5765 --- /dev/null +++ b/pandora_console/attachment/mibs/IPV6-ICMP-MIB @@ -0,0 +1,529 @@ + IPV6-ICMP-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + Counter32, mib-2 FROM SNMPv2-SMI + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF + ipv6IfEntry FROM IPV6-MIB; + + ipv6IcmpMIB MODULE-IDENTITY + LAST-UPDATED "9801082155Z" + ORGANIZATION "IETF IPv6 Working Group" + CONTACT-INFO + " Dimitry Haskin + + Postal: Bay Networks, Inc. + 660 Techology Park Drive. + Billerica, MA 01821 + US + + Tel: +1-978-916-8124 + E-mail: dhaskin@baynetworks.com + + Steve Onishi + + Postal: Bay Networks, Inc. + 3 Federal Street + Billerica, MA 01821 + US + + Tel: +1-978-916-3816 + E-mail: sonishi@baynetworks.com" + DESCRIPTION + "The MIB module for entities implementing + the ICMPv6." + ::= { mib-2 56 } + + -- the ICMPv6 group + + ipv6IcmpMIBObjects OBJECT IDENTIFIER ::= { ipv6IcmpMIB 1 } + + -- Per-interface ICMPv6 statistics table + + ipv6IfIcmpTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ipv6IfIcmpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IPv6 ICMP statistics. This table contains statistics + of ICMPv6 messages that are received and sourced by + the entity." + ::= { ipv6IcmpMIBObjects 1 } + + ipv6IfIcmpEntry OBJECT-TYPE + SYNTAX Ipv6IfIcmpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An ICMPv6 statistics entry containing + objects at a particular IPv6 interface. + + Note that a receiving interface is + the interface to which a given ICMPv6 message + is addressed which may not be necessarily + the input interface for the message. + + Similarly, the sending interface is + the interface that sources a given + ICMP message which is usually but not + necessarily the output interface for the message." + AUGMENTS { ipv6IfEntry } + ::= { ipv6IfIcmpTable 1 } + + Ipv6IfIcmpEntry ::= SEQUENCE { + ipv6IfIcmpInMsgs + Counter32 , + ipv6IfIcmpInErrors + Counter32 , + ipv6IfIcmpInDestUnreachs + Counter32 , + ipv6IfIcmpInAdminProhibs + Counter32 , + ipv6IfIcmpInTimeExcds + Counter32 , + ipv6IfIcmpInParmProblems + Counter32 , + ipv6IfIcmpInPktTooBigs + Counter32 , + ipv6IfIcmpInEchos + Counter32 , + ipv6IfIcmpInEchoReplies + Counter32 , + ipv6IfIcmpInRouterSolicits + Counter32 , + ipv6IfIcmpInRouterAdvertisements + Counter32 , + ipv6IfIcmpInNeighborSolicits + Counter32 , + ipv6IfIcmpInNeighborAdvertisements + Counter32 , + ipv6IfIcmpInRedirects + Counter32 , + ipv6IfIcmpInGroupMembQueries + Counter32 , + ipv6IfIcmpInGroupMembResponses + Counter32 , + ipv6IfIcmpInGroupMembReductions + Counter32 , + ipv6IfIcmpOutMsgs + Counter32 , + ipv6IfIcmpOutErrors + Counter32 , + ipv6IfIcmpOutDestUnreachs + Counter32 , + ipv6IfIcmpOutAdminProhibs + Counter32 , + ipv6IfIcmpOutTimeExcds + Counter32 , + ipv6IfIcmpOutParmProblems + Counter32 , + ipv6IfIcmpOutPktTooBigs + Counter32 , + ipv6IfIcmpOutEchos + Counter32 , + ipv6IfIcmpOutEchoReplies + Counter32 , + ipv6IfIcmpOutRouterSolicits + Counter32 , + ipv6IfIcmpOutRouterAdvertisements + Counter32 , + ipv6IfIcmpOutNeighborSolicits + Counter32 , + ipv6IfIcmpOutNeighborAdvertisements + Counter32 , + ipv6IfIcmpOutRedirects + Counter32 , + ipv6IfIcmpOutGroupMembQueries + Counter32 , + ipv6IfIcmpOutGroupMembResponses + Counter32 , + ipv6IfIcmpOutGroupMembReductions + Counter32 + + } + + ipv6IfIcmpInMsgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of ICMP messages received + by the interface which includes all those + counted by ipv6IfIcmpInErrors. Note that this + interface is the interface to which the + ICMP messages were addressed which may not be + necessarily the input interface for the messages." + ::= { ipv6IfIcmpEntry 1 } + + ipv6IfIcmpInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP messages which the interface + received but determined as having ICMP-specific + errors (bad ICMP checksums, bad length, etc.)." + ::= { ipv6IfIcmpEntry 2 } + + ipv6IfIcmpInDestUnreachs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Destination Unreachable + messages received by the interface." + ::= { ipv6IfIcmpEntry 3 } + + ipv6IfIcmpInAdminProhibs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP destination + unreachable/communication administratively + prohibited messages received by the interface." + ::= { ipv6IfIcmpEntry 4 } + + ipv6IfIcmpInTimeExcds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Time Exceeded messages + received by the interface." + ::= { ipv6IfIcmpEntry 5 } + + ipv6IfIcmpInParmProblems OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Parameter Problem messages + received by the interface." + ::= { ipv6IfIcmpEntry 6 } + + ipv6IfIcmpInPktTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Packet Too Big messages + received by the interface." + ::= { ipv6IfIcmpEntry 7 } + + ipv6IfIcmpInEchos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Echo (request) messages + received by the interface." + ::= { ipv6IfIcmpEntry 8 } + + ipv6IfIcmpInEchoReplies OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Echo Reply messages received + by the interface." + ::= { ipv6IfIcmpEntry 9 } + + ipv6IfIcmpInRouterSolicits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Router Solicit messages + received by the interface." + ::= { ipv6IfIcmpEntry 10 } + + ipv6IfIcmpInRouterAdvertisements OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Router Advertisement messages + received by the interface." + ::= { ipv6IfIcmpEntry 11 } + + ipv6IfIcmpInNeighborSolicits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Neighbor Solicit messages + received by the interface." + ::= { ipv6IfIcmpEntry 12 } + + ipv6IfIcmpInNeighborAdvertisements OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Neighbor Advertisement + messages received by the interface." + ::= { ipv6IfIcmpEntry 13 } + + ipv6IfIcmpInRedirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Redirect messages received + by the interface." + ::= { ipv6IfIcmpEntry 14 } + + ipv6IfIcmpInGroupMembQueries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMPv6 Group Membership Query + messages received by the interface." + ::= { ipv6IfIcmpEntry 15} + + ipv6IfIcmpInGroupMembResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMPv6 Group Membership Response messages + received by the interface." + ::= { ipv6IfIcmpEntry 16} + + ipv6IfIcmpInGroupMembReductions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMPv6 Group Membership Reduction messages + received by the interface." + ::= { ipv6IfIcmpEntry 17} + + ipv6IfIcmpOutMsgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of ICMP messages which this + interface attempted to send. Note that this counter + includes all those counted by icmpOutErrors." + ::= { ipv6IfIcmpEntry 18 } + + ipv6IfIcmpOutErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP messages which this interface did + not send due to problems discovered within ICMP + such as a lack of buffers. This value should not + include errors discovered outside the ICMP layer + such as the inability of IPv6 to route the resultant + datagram. In some implementations there may be no + types of error which contribute to this counter's + value." + ::= { ipv6IfIcmpEntry 19 } + + ipv6IfIcmpOutDestUnreachs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Destination Unreachable + + messages sent by the interface." + ::= { ipv6IfIcmpEntry 20 } + + ipv6IfIcmpOutAdminProhibs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ICMP dest unreachable/communication + administratively prohibited messages sent." + ::= { ipv6IfIcmpEntry 21 } + + ipv6IfIcmpOutTimeExcds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Time Exceeded messages sent + by the interface." + ::= { ipv6IfIcmpEntry 22 } + + ipv6IfIcmpOutParmProblems OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Parameter Problem messages + sent by the interface." + ::= { ipv6IfIcmpEntry 23 } + + ipv6IfIcmpOutPktTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Packet Too Big messages sent + by the interface." + ::= { ipv6IfIcmpEntry 24 } + + ipv6IfIcmpOutEchos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Echo (request) messages sent + by the interface." + ::= { ipv6IfIcmpEntry 25 } + + ipv6IfIcmpOutEchoReplies OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Echo Reply messages sent + by the interface." + ::= { ipv6IfIcmpEntry 26 } + + ipv6IfIcmpOutRouterSolicits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Router Solicitation messages + sent by the interface." + ::= { ipv6IfIcmpEntry 27 } + + ipv6IfIcmpOutRouterAdvertisements OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Router Advertisement messages + sent by the interface." + ::= { ipv6IfIcmpEntry 28 } + + ipv6IfIcmpOutNeighborSolicits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Neighbor Solicitation + messages sent by the interface." + ::= { ipv6IfIcmpEntry 29 } + + ipv6IfIcmpOutNeighborAdvertisements OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMP Neighbor Advertisement + messages sent by the interface." + ::= { ipv6IfIcmpEntry 30 } + + ipv6IfIcmpOutRedirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Redirect messages sent. For + a host, this object will always be zero, + since hosts do not send redirects." + ::= { ipv6IfIcmpEntry 31 } + + ipv6IfIcmpOutGroupMembQueries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMPv6 Group Membership Query + messages sent." + ::= { ipv6IfIcmpEntry 32} + + ipv6IfIcmpOutGroupMembResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMPv6 Group Membership Response + messages sent." + ::= { ipv6IfIcmpEntry 33} + + ipv6IfIcmpOutGroupMembReductions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ICMPv6 Group Membership Reduction + messages sent." + ::= { ipv6IfIcmpEntry 34} + +-- conformance information + +ipv6IcmpConformance OBJECT IDENTIFIER ::= { ipv6IcmpMIB 2 } + +ipv6IcmpCompliances + OBJECT IDENTIFIER ::= { ipv6IcmpConformance 1 } +ipv6IcmpGroups + OBJECT IDENTIFIER ::= { ipv6IcmpConformance 2 } + +-- compliance statements + +ipv6IcmpCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement ICMPv6." + MODULE -- this module + MANDATORY-GROUPS { ipv6IcmpGroup } + ::= { ipv6IcmpCompliances 1 } + +ipv6IcmpGroup OBJECT-GROUP + OBJECTS { + ipv6IfIcmpInMsgs, + ipv6IfIcmpInErrors, + ipv6IfIcmpInDestUnreachs, + ipv6IfIcmpInAdminProhibs, + ipv6IfIcmpInTimeExcds, + ipv6IfIcmpInParmProblems, + ipv6IfIcmpInPktTooBigs, + ipv6IfIcmpInEchos, + ipv6IfIcmpInEchoReplies, + ipv6IfIcmpInRouterSolicits, + ipv6IfIcmpInRouterAdvertisements, + ipv6IfIcmpInNeighborSolicits, + ipv6IfIcmpInNeighborAdvertisements, + ipv6IfIcmpInRedirects, + ipv6IfIcmpInGroupMembQueries, + ipv6IfIcmpInGroupMembResponses, + ipv6IfIcmpInGroupMembReductions, + ipv6IfIcmpOutMsgs, + ipv6IfIcmpOutErrors, + ipv6IfIcmpOutDestUnreachs, + ipv6IfIcmpOutAdminProhibs, + ipv6IfIcmpOutTimeExcds, + ipv6IfIcmpOutParmProblems, + ipv6IfIcmpOutPktTooBigs, + ipv6IfIcmpOutEchos, + ipv6IfIcmpOutEchoReplies, + ipv6IfIcmpOutRouterSolicits, + ipv6IfIcmpOutRouterAdvertisements, + ipv6IfIcmpOutNeighborSolicits, + ipv6IfIcmpOutNeighborAdvertisements, + ipv6IfIcmpOutRedirects, + ipv6IfIcmpOutGroupMembQueries, + ipv6IfIcmpOutGroupMembResponses, + ipv6IfIcmpOutGroupMembReductions + } + STATUS current + DESCRIPTION + "The ICMPv6 group of objects providing information + specific to ICMPv6." + ::= { ipv6IcmpGroups 1 } + + END diff --git a/pandora_console/attachment/mibs/IPV6-MIB b/pandora_console/attachment/mibs/IPV6-MIB new file mode 100644 index 0000000000..6957af27fe --- /dev/null +++ b/pandora_console/attachment/mibs/IPV6-MIB @@ -0,0 +1,1443 @@ + IPV6-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + mib-2, Counter32, Unsigned32, Integer32, + Gauge32 FROM SNMPv2-SMI + DisplayString, PhysAddress, TruthValue, TimeStamp, + VariablePointer, RowPointer FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP, + NOTIFICATION-GROUP FROM SNMPv2-CONF + Ipv6IfIndex, Ipv6Address, Ipv6AddressPrefix, + Ipv6AddressIfIdentifier, + Ipv6IfIndexOrZero FROM IPV6-TC; + + ipv6MIB MODULE-IDENTITY + LAST-UPDATED "9802052155Z" + ORGANIZATION "IETF IPv6 Working Group" + CONTACT-INFO + " Dimitry Haskin + + Postal: Bay Networks, Inc. + 660 Techology Park Drive. + Billerica, MA 01821 + + US + + Tel: +1-978-916-8124 + E-mail: dhaskin@baynetworks.com + + Steve Onishi + + Postal: Bay Networks, Inc. + 3 Federal Street + Billerica, MA 01821 + US + + Tel: +1-978-916-3816 + E-mail: sonishi@baynetworks.com" + DESCRIPTION + "The MIB module for entities implementing the IPv6 + protocol." + ::= { mib-2 55 } + + -- the IPv6 general group + + ipv6MIBObjects OBJECT IDENTIFIER ::= { ipv6MIB 1 } + + ipv6Forwarding OBJECT-TYPE + SYNTAX INTEGER { + forwarding(1), -- acting as a router + + -- NOT acting as + notForwarding(2) -- a router + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The indication of whether this entity is acting + as an IPv6 router in respect to the forwarding of + datagrams received by, but not addressed to, this + entity. IPv6 routers forward datagrams. IPv6 + hosts do not (except those source-routed via the + host). + + Note that for some managed nodes, this object may + take on only a subset of the values possible. + Accordingly, it is appropriate for an agent to + return a `wrongValue' response if a management + station attempts to change this object to an + inappropriate value." + ::= { ipv6MIBObjects 1 } + + ipv6DefaultHopLimit OBJECT-TYPE + SYNTAX INTEGER(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The default value inserted into the Hop Limit + field of the IPv6 header of datagrams originated + at this entity, whenever a Hop Limit value is not + supplied by the transport layer protocol." + DEFVAL { 64 } + ::= { ipv6MIBObjects 2 } + +ipv6Interfaces OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of IPv6 interfaces (regardless of + their current state) present on this system." + ::= { ipv6MIBObjects 3 } + +ipv6IfTableLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the last + insertion or removal of an entry in the + ipv6IfTable. If the number of entries has been + unchanged since the last re-initialization of + the local network management subsystem, then this + object contains a zero value." + ::= { ipv6MIBObjects 4 } + +-- the IPv6 Interfaces table + +ipv6IfTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ipv6IfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The IPv6 Interfaces table contains information + on the entity's internetwork-layer interfaces. + An IPv6 interface constitutes a logical network + layer attachment to the layer immediately below + + IPv6 including internet layer 'tunnels', such as + tunnels over IPv4 or IPv6 itself." + ::= { ipv6MIBObjects 5 } + + ipv6IfEntry OBJECT-TYPE + SYNTAX Ipv6IfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An interface entry containing objects + about a particular IPv6 interface." + INDEX { ipv6IfIndex } + ::= { ipv6IfTable 1 } + + Ipv6IfEntry ::= SEQUENCE { + ipv6IfIndex Ipv6IfIndex, + ipv6IfDescr DisplayString, + ipv6IfLowerLayer VariablePointer, + ipv6IfEffectiveMtu Unsigned32, + ipv6IfReasmMaxSize Unsigned32, + ipv6IfIdentifier Ipv6AddressIfIdentifier, + ipv6IfIdentifierLength INTEGER, + ipv6IfPhysicalAddress PhysAddress, + ipv6IfAdminStatus INTEGER, + ipv6IfOperStatus INTEGER, + ipv6IfLastChange TimeStamp + } + + ipv6IfIndex OBJECT-TYPE + SYNTAX Ipv6IfIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique non-zero value identifying + the particular IPv6 interface." + ::= { ipv6IfEntry 1 } + + ipv6IfDescr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A textual string containing information about the + interface. This string may be set by the network + management system." + ::= { ipv6IfEntry 2 } + + ipv6IfLowerLayer OBJECT-TYPE + SYNTAX VariablePointer + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object identifies the protocol layer over + which this network interface operates. If this + network interface operates over the data-link + layer, then the value of this object refers to an + instance of ifIndex [6]. If this network interface + operates over an IPv4 interface, the value of this + object refers to an instance of ipAdEntAddr [3]. + + If this network interface operates over another + IPv6 interface, the value of this object refers to + an instance of ipv6IfIndex. If this network + interface is not currently operating over an active + protocol layer, then the value of this object + should be set to the OBJECT ID { 0 0 }." + ::= { ipv6IfEntry 3 } + + ipv6IfEffectiveMtu OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the largest IPv6 packet which can be + sent/received on the interface, specified in + octets." + ::= { ipv6IfEntry 4 } + + ipv6IfReasmMaxSize OBJECT-TYPE + SYNTAX Unsigned32 (0..65535) + UNITS "octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the largest IPv6 datagram which this + entity can re-assemble from incoming IPv6 fragmented + datagrams received on this interface." + ::= { ipv6IfEntry 5 } + + ipv6IfIdentifier OBJECT-TYPE + SYNTAX Ipv6AddressIfIdentifier + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The Interface Identifier for this interface that + + is (at least) unique on the link this interface is + attached to. The Interface Identifier is combined + with an address prefix to form an interface address. + + By default, the Interface Identifier is autoconfigured + according to the rules of the link type this + interface is attached to." + ::= { ipv6IfEntry 6 } + + ipv6IfIdentifierLength OBJECT-TYPE + SYNTAX INTEGER (0..64) + UNITS "bits" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The length of the Interface Identifier in bits." + ::= { ipv6IfEntry 7 } + + ipv6IfPhysicalAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The interface's physical address. For example, for + an IPv6 interface attached to an 802.x link, this + object normally contains a MAC address. Note that + in some cases this address may differ from the + address of the interface's protocol sub-layer. The + interface's media-specific MIB must define the bit + and byte ordering and the format of the value of + this object. For interfaces which do not have such + an address (e.g., a serial line), this object should + contain an octet string of zero length." + ::= { ipv6IfEntry 8 } + +ipv6IfAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The desired state of the interface. When a managed + system initializes, all IPv6 interfaces start with + ipv6IfAdminStatus in the down(2) state. As a result + of either explicit management action or per + configuration information retained by the managed + + system, ipv6IfAdminStatus is then changed to + the up(1) state (or remains in the down(2) state)." + ::= { ipv6IfEntry 9 } + +ipv6IfOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + + down(2), + noIfIdentifier(3), -- no interface identifier + + -- status can not be + -- determined for some + unknown(4), -- reason + + -- some component is + notPresent(5) -- missing + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current operational state of the interface. + The noIfIdentifier(3) state indicates that no valid + Interface Identifier is assigned to the interface. + This state usually indicates that the link-local + interface address failed Duplicate Address Detection. + If ipv6IfAdminStatus is down(2) then ipv6IfOperStatus + should be down(2). If ipv6IfAdminStatus is changed + to up(1) then ipv6IfOperStatus should change to up(1) + if the interface is ready to transmit and receive + network traffic; it should remain in the down(2) or + noIfIdentifier(3) state if and only if there is a + fault that prevents it from going to the up(1) state; + it should remain in the notPresent(5) state if + the interface has missing (typically, lower layer) + components." + ::= { ipv6IfEntry 10 } + +ipv6IfLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time the interface + entered its current operational state. If the + current state was entered prior to the last + re-initialization of the local network management + + subsystem, then this object contains a zero + value." + ::= { ipv6IfEntry 11 } + + -- IPv6 Interface Statistics table + + ipv6IfStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ipv6IfStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IPv6 interface traffic statistics." + ::= { ipv6MIBObjects 6 } + + ipv6IfStatsEntry OBJECT-TYPE + SYNTAX Ipv6IfStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An interface statistics entry containing objects + at a particular IPv6 interface." + AUGMENTS { ipv6IfEntry } + ::= { ipv6IfStatsTable 1 } + + Ipv6IfStatsEntry ::= SEQUENCE { + ipv6IfStatsInReceives + Counter32, + ipv6IfStatsInHdrErrors + Counter32, + ipv6IfStatsInTooBigErrors + Counter32, + ipv6IfStatsInNoRoutes + Counter32, + ipv6IfStatsInAddrErrors + Counter32, + ipv6IfStatsInUnknownProtos + Counter32, + ipv6IfStatsInTruncatedPkts + Counter32, + ipv6IfStatsInDiscards + Counter32, + ipv6IfStatsInDelivers + Counter32, + ipv6IfStatsOutForwDatagrams + Counter32, + ipv6IfStatsOutRequests + Counter32, + ipv6IfStatsOutDiscards + + Counter32, + ipv6IfStatsOutFragOKs + Counter32, + ipv6IfStatsOutFragFails + Counter32, + ipv6IfStatsOutFragCreates + Counter32, + ipv6IfStatsReasmReqds + Counter32, + ipv6IfStatsReasmOKs + Counter32, + ipv6IfStatsReasmFails + Counter32, + ipv6IfStatsInMcastPkts + Counter32, + ipv6IfStatsOutMcastPkts + Counter32 + } + + ipv6IfStatsInReceives OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of input datagrams received by + the interface, including those received in error." + ::= { ipv6IfStatsEntry 1 } + + ipv6IfStatsInHdrErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input datagrams discarded due to + errors in their IPv6 headers, including version + number mismatch, other format errors, hop count + exceeded, errors discovered in processing their + IPv6 options, etc." + ::= { ipv6IfStatsEntry 2 } + + ipv6IfStatsInTooBigErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input datagrams that could not be + forwarded because their size exceeded the link MTU + of outgoing interface." + ::= { ipv6IfStatsEntry 3 } + + ipv6IfStatsInNoRoutes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input datagrams discarded because no + route could be found to transmit them to their + destination." + ::= { ipv6IfStatsEntry 4 } + + ipv6IfStatsInAddrErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input datagrams discarded because + the IPv6 address in their IPv6 header's destination + field was not a valid address to be received at + this entity. This count includes invalid + addresses (e.g., ::0) and unsupported addresses + (e.g., addresses with unallocated prefixes). For + entities which are not IPv6 routers and therefore + do not forward datagrams, this counter includes + datagrams discarded because the destination address + was not a local address." + ::= { ipv6IfStatsEntry 5 } + + ipv6IfStatsInUnknownProtos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of locally-addressed datagrams + received successfully but discarded because of an + unknown or unsupported protocol. This counter is + incremented at the interface to which these + datagrams were addressed which might not be + necessarily the input interface for some of + the datagrams." + ::= { ipv6IfStatsEntry 6 } + + ipv6IfStatsInTruncatedPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input datagrams discarded because + datagram frame didn't carry enough data." + ::= { ipv6IfStatsEntry 7 } + + ipv6IfStatsInDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input IPv6 datagrams for which no + problems were encountered to prevent their + continued processing, but which were discarded + (e.g., for lack of buffer space). Note that this + counter does not include any datagrams discarded + while awaiting re-assembly." + ::= { ipv6IfStatsEntry 8 } + + ipv6IfStatsInDelivers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of datagrams successfully + delivered to IPv6 user-protocols (including ICMP). + This counter is incremented at the interface to + which these datagrams were addressed which might + not be necessarily the input interface for some of + the datagrams." + ::= { ipv6IfStatsEntry 9 } + + ipv6IfStatsOutForwDatagrams OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of output datagrams which this + entity received and forwarded to their final + destinations. In entities which do not act + as IPv6 routers, this counter will include + only those packets which were Source-Routed + via this entity, and the Source-Route + processing was successful. Note that for + a successfully forwarded datagram the counter + of the outgoing interface is incremented." + ::= { ipv6IfStatsEntry 10 } + + ipv6IfStatsOutRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of IPv6 datagrams which local IPv6 + user-protocols (including ICMP) supplied to IPv6 in + requests for transmission. Note that this counter + does not include any datagrams counted in + ipv6IfStatsOutForwDatagrams." + ::= { ipv6IfStatsEntry 11 } + + ipv6IfStatsOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of output IPv6 datagrams for which no + problem was encountered to prevent their + transmission to their destination, but which were + discarded (e.g., for lack of buffer space). Note + that this counter would include datagrams counted + in ipv6IfStatsOutForwDatagrams if any such packets + met this (discretionary) discard criterion." + ::= { ipv6IfStatsEntry 12 } + + ipv6IfStatsOutFragOKs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of IPv6 datagrams that have been + successfully fragmented at this output interface." + ::= { ipv6IfStatsEntry 13 } + + ipv6IfStatsOutFragFails OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of IPv6 datagrams that have been + discarded because they needed to be fragmented + at this output interface but could not be." + ::= { ipv6IfStatsEntry 14 } + + ipv6IfStatsOutFragCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of output datagram fragments that have + been generated as a result of fragmentation at + this output interface." + ::= { ipv6IfStatsEntry 15 } + + ipv6IfStatsReasmReqds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of IPv6 fragments received which needed + to be reassembled at this interface. Note that this + counter is incremented at the interface to which + these fragments were addressed which might not + be necessarily the input interface for some of + the fragments." + ::= { ipv6IfStatsEntry 16 } + + ipv6IfStatsReasmOKs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of IPv6 datagrams successfully + reassembled. Note that this counter is incremented + at the interface to which these datagrams were + addressed which might not be necessarily the input + interface for some of the fragments." + ::= { ipv6IfStatsEntry 17 } + + ipv6IfStatsReasmFails OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of failures detected by the IPv6 re- + assembly algorithm (for whatever reason: timed + out, errors, etc.). Note that this is not + necessarily a count of discarded IPv6 fragments + since some algorithms (notably the algorithm in + RFC 815) can lose track of the number of fragments + by combining them as they are received. + This counter is incremented at the interface to which + these fragments were addressed which might not be + necessarily the input interface for some of the + fragments." + ::= { ipv6IfStatsEntry 18 } + + ipv6IfStatsInMcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of multicast packets received + by the interface" + ::= { ipv6IfStatsEntry 19 } + + ipv6IfStatsOutMcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of multicast packets transmitted + by the interface" + ::= { ipv6IfStatsEntry 20 } + + -- Address Prefix table + + -- The IPv6 Address Prefix table contains information on + -- the entity's IPv6 Address Prefixes that are associated + -- with IPv6 interfaces. + + ipv6AddrPrefixTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ipv6AddrPrefixEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The list of IPv6 address prefixes of + IPv6 interfaces." + ::= { ipv6MIBObjects 7 } + + ipv6AddrPrefixEntry OBJECT-TYPE + SYNTAX Ipv6AddrPrefixEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An interface entry containing objects of + a particular IPv6 address prefix." + INDEX { ipv6IfIndex, + ipv6AddrPrefix, + ipv6AddrPrefixLength } + ::= { ipv6AddrPrefixTable 1 } + + Ipv6AddrPrefixEntry ::= SEQUENCE { + + ipv6AddrPrefix Ipv6AddressPrefix, + ipv6AddrPrefixLength INTEGER (0..128), + ipv6AddrPrefixOnLinkFlag TruthValue, + ipv6AddrPrefixAutonomousFlag TruthValue, + ipv6AddrPrefixAdvPreferredLifetime Unsigned32, + ipv6AddrPrefixAdvValidLifetime Unsigned32 + } + + ipv6AddrPrefix OBJECT-TYPE + SYNTAX Ipv6AddressPrefix + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The prefix associated with the this interface." + ::= { ipv6AddrPrefixEntry 1 } + + ipv6AddrPrefixLength OBJECT-TYPE + SYNTAX INTEGER (0..128) + UNITS "bits" + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The length of the prefix (in bits)." + ::= { ipv6AddrPrefixEntry 2 } + + ipv6AddrPrefixOnLinkFlag OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object has the value 'true(1)', if this + prefix can be used for on-link determination + and the value 'false(2)' otherwise." + ::= { ipv6AddrPrefixEntry 3 } + + ipv6AddrPrefixAutonomousFlag OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Autonomous address configuration flag. When + true(1), indicates that this prefix can be used + for autonomous address configuration (i.e. can + be used to form a local interface address). + If false(2), it is not used to autoconfigure + a local interface address." + ::= { ipv6AddrPrefixEntry 4 } + + ipv6AddrPrefixAdvPreferredLifetime OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "It is the length of time in seconds that this + prefix will remain preferred, i.e. time until + deprecation. A value of 4,294,967,295 represents + infinity. + + The address generated from a deprecated prefix + should no longer be used as a source address in + new communications, but packets received on such + an interface are processed as expected." + ::= { ipv6AddrPrefixEntry 5 } + + ipv6AddrPrefixAdvValidLifetime OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "It is the length of time in seconds that this + prefix will remain valid, i.e. time until + invalidation. A value of 4,294,967,295 represents + infinity. + + The address generated from an invalidated prefix + should not appear as the destination or source + address of a packet." + ::= { ipv6AddrPrefixEntry 6 } + + -- the IPv6 Address table + + -- The IPv6 address table contains this node's IPv6 + -- addressing information. + + ipv6AddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ipv6AddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of addressing information relevant to + this node's interface addresses." + ::= { ipv6MIBObjects 8 } + + ipv6AddrEntry OBJECT-TYPE + SYNTAX Ipv6AddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The addressing information for one of this + node's interface addresses." + INDEX { ipv6IfIndex, ipv6AddrAddress } + ::= { ipv6AddrTable 1 } + + Ipv6AddrEntry ::= + SEQUENCE { + ipv6AddrAddress Ipv6Address, + ipv6AddrPfxLength INTEGER, + ipv6AddrType INTEGER, + ipv6AddrAnycastFlag TruthValue, + ipv6AddrStatus INTEGER + } + + ipv6AddrAddress OBJECT-TYPE + SYNTAX Ipv6Address + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The IPv6 address to which this entry's addressing + information pertains." + ::= { ipv6AddrEntry 1 } + + ipv6AddrPfxLength OBJECT-TYPE + SYNTAX INTEGER(0..128) + UNITS "bits" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The length of the prefix (in bits) associated with + the IPv6 address of this entry." + ::= { ipv6AddrEntry 2 } + + ipv6AddrType OBJECT-TYPE + SYNTAX INTEGER { + -- address has been formed + -- using stateless + stateless(1), -- autoconfiguration + + -- address has been acquired + -- by stateful means + -- (e.g. DHCPv6, manual + stateful(2), -- configuration) + + -- type can not be determined + unknown(3) -- for some reason. + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of address. Note that 'stateless(1)' + refers to an address that was statelessly + autoconfigured; 'stateful(2)' refers to a address + which was acquired by via a stateful protocol + (e.g. DHCPv6, manual configuration)." + ::= { ipv6AddrEntry 3 } + + ipv6AddrAnycastFlag OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object has the value 'true(1)', if this + address is an anycast address and the value + 'false(2)' otherwise." + ::= { ipv6AddrEntry 4 } + + ipv6AddrStatus OBJECT-TYPE + SYNTAX INTEGER { + preferred(1), + deprecated(2), + invalid(3), + inaccessible(4), + unknown(5) -- status can not be determined + -- for some reason. + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Address status. The preferred(1) state indicates + that this is a valid address that can appear as + the destination or source address of a packet. + The deprecated(2) state indicates that this is + a valid but deprecated address that should no longer + be used as a source address in new communications, + but packets addressed to such an address are + processed as expected. The invalid(3) state indicates + that this is not valid address which should not + + appear as the destination or source address of + a packet. The inaccessible(4) state indicates that + the address is not accessible because the interface + to which this address is assigned is not operational." + ::= { ipv6AddrEntry 5 } + + -- IPv6 Routing objects + + ipv6RouteNumber OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current ipv6RouteTable entries. + This is primarily to avoid having to read + the table in order to determine this number." + ::= { ipv6MIBObjects 9 } + + ipv6DiscardedRoutes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of routing entries which were chosen + to be discarded even though they are valid. One + possible reason for discarding such an entry could + be to free-up buffer space for other routing + entries." + ::= { ipv6MIBObjects 10 } + + -- IPv6 Routing table + + ipv6RouteTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ipv6RouteEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IPv6 Routing table. This table contains + an entry for each valid IPv6 unicast route + that can be used for packet forwarding + determination." + ::= { ipv6MIBObjects 11 } + + ipv6RouteEntry OBJECT-TYPE + SYNTAX Ipv6RouteEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A routing entry." + INDEX { ipv6RouteDest, + ipv6RoutePfxLength, + ipv6RouteIndex } + ::= { ipv6RouteTable 1 } + + Ipv6RouteEntry ::= SEQUENCE { + ipv6RouteDest Ipv6Address, + ipv6RoutePfxLength INTEGER, + ipv6RouteIndex Unsigned32, + ipv6RouteIfIndex Ipv6IfIndexOrZero, + ipv6RouteNextHop Ipv6Address, + ipv6RouteType INTEGER, + ipv6RouteProtocol INTEGER, + ipv6RoutePolicy Integer32, + ipv6RouteAge Unsigned32, + ipv6RouteNextHopRDI Unsigned32, + ipv6RouteMetric Unsigned32, + ipv6RouteWeight Unsigned32, + ipv6RouteInfo RowPointer, + ipv6RouteValid TruthValue + } + + ipv6RouteDest OBJECT-TYPE + SYNTAX Ipv6Address + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The destination IPv6 address of this route. + This object may not take a Multicast address + value." + ::= { ipv6RouteEntry 1 } + + ipv6RoutePfxLength OBJECT-TYPE + SYNTAX INTEGER(0..128) + UNITS "bits" + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Indicates the prefix length of the destination + address." + ::= { ipv6RouteEntry 2 } + + ipv6RouteIndex OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value which uniquely identifies the route + among the routes to the same network layer + destination. The way this value is chosen is + implementation specific but it must be unique for + ipv6RouteDest/ipv6RoutePfxLength pair and remain + constant for the life of the route." + ::= { ipv6RouteEntry 3 } + + ipv6RouteIfIndex OBJECT-TYPE + SYNTAX Ipv6IfIndexOrZero + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index value which uniquely identifies the local + interface through which the next hop of this + route should be reached. The interface identified + by a particular value of this index is the same + interface as identified by the same value of + ipv6IfIndex. For routes of the discard type this + value can be zero." + ::= { ipv6RouteEntry 4 } + + ipv6RouteNextHop OBJECT-TYPE + SYNTAX Ipv6Address + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "On remote routes, the address of the next + system en route; otherwise, ::0 + ('00000000000000000000000000000000'H in ASN.1 + string representation)." + ::= { ipv6RouteEntry 5 } + + ipv6RouteType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + -- an route indicating that + -- packets to destinations + -- matching this route are + discard(2), -- to be discarded + + -- route to directly + local(3), -- connected (sub-)network + + -- route to a remote + + remote(4) -- destination + + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of route. Note that 'local(3)' refers + to a route for which the next hop is the final + destination; 'remote(4)' refers to a route for + which the next hop is not the final + destination; 'discard(2)' refers to a route + indicating that packets to destinations matching + this route are to be discarded (sometimes called + black-hole route)." + ::= { ipv6RouteEntry 6 } + + ipv6RouteProtocol OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + -- non-protocol information, + -- e.g., manually configured + local(2), -- entries + + netmgmt(3), -- static route + + -- obtained via Neighbor + -- Discovery protocol, + ndisc(4), -- e.g., result of Redirect + + -- the following are all + -- dynamic routing protocols + rip(5), -- RIPng + ospf(6), -- Open Shortest Path First + bgp(7), -- Border Gateway Protocol + idrp(8), -- InterDomain Routing Protocol + igrp(9) -- InterGateway Routing Protocol + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The routing mechanism via which this route was + learned." + ::= { ipv6RouteEntry 7 } + + ipv6RoutePolicy OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The general set of conditions that would cause the + selection of one multipath route (set of next hops + for a given destination) is referred to as 'policy'. + Unless the mechanism indicated by ipv6RouteProtocol + specified otherwise, the policy specifier is the + 8-bit Traffic Class field of the IPv6 packet header + that is zero extended at the left to a 32-bit value. + + Protocols defining 'policy' otherwise must either + define a set of values which are valid for + this object or must implement an integer- + instanced policy table for which this object's + value acts as an index." + ::= { ipv6RouteEntry 8 } + + ipv6RouteAge OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of seconds since this route was last + updated or otherwise determined to be correct. + Note that no semantics of `too old' can be implied + except through knowledge of the routing protocol + by which the route was learned." + ::= { ipv6RouteEntry 9 } + + ipv6RouteNextHopRDI OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Routing Domain ID of the Next Hop. + The semantics of this object are determined by + the routing-protocol specified in the route's + ipv6RouteProtocol value. When this object is + unknown or not relevant its value should be set + to zero." + ::= { ipv6RouteEntry 10 } + + ipv6RouteMetric OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The routing metric for this route. The + semantics of this metric are determined by the + routing protocol specified in the route's + ipv6RouteProtocol value. When this is unknown + or not relevant to the protocol indicated by + ipv6RouteProtocol, the object value should be + set to its maximum value (4,294,967,295)." + ::= { ipv6RouteEntry 11 } + + ipv6RouteWeight OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system internal weight value for this route. + The semantics of this value are determined by + the implementation specific rules. Generally, + within routes with the same ipv6RoutePolicy value, + the lower the weight value the more preferred is + the route." + ::= { ipv6RouteEntry 12 } + + ipv6RouteInfo OBJECT-TYPE + SYNTAX RowPointer + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A reference to MIB definitions specific to the + particular routing protocol which is responsible + for this route, as determined by the value + specified in the route's ipv6RouteProto value. + If this information is not present, its value + should be set to the OBJECT ID { 0 0 }, + which is a syntactically valid object identifier, + and any implementation conforming to ASN.1 + and the Basic Encoding Rules must be able to + generate and recognize this value." + ::= { ipv6RouteEntry 13 } + + ipv6RouteValid OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting this object to the value 'false(2)' has + the effect of invalidating the corresponding entry + in the ipv6RouteTable object. That is, it + effectively disassociates the destination + + identified with said entry from the route + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant ipv6RouteValid + object." + DEFVAL { true } + ::= { ipv6RouteEntry 14 } + + -- IPv6 Address Translation table + + ipv6NetToMediaTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ipv6NetToMediaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The IPv6 Address Translation table used for + mapping from IPv6 addresses to physical addresses. + + The IPv6 address translation table contain the + Ipv6Address to `physical' address equivalencies. + Some interfaces do not use translation tables + for determining address equivalencies; if all + interfaces are of this type, then the Address + Translation table is empty, i.e., has zero + entries." + ::= { ipv6MIBObjects 12 } + + ipv6NetToMediaEntry OBJECT-TYPE + SYNTAX Ipv6NetToMediaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry contains one IPv6 address to `physical' + address equivalence." + INDEX { ipv6IfIndex, + ipv6NetToMediaNetAddress } + ::= { ipv6NetToMediaTable 1 } + + Ipv6NetToMediaEntry ::= SEQUENCE { + ipv6NetToMediaNetAddress + Ipv6Address, + ipv6NetToMediaPhysAddress + + PhysAddress, + ipv6NetToMediaType + INTEGER, + ipv6IfNetToMediaState + INTEGER, + ipv6IfNetToMediaLastUpdated + TimeStamp, + ipv6NetToMediaValid + TruthValue + } + + ipv6NetToMediaNetAddress OBJECT-TYPE + SYNTAX Ipv6Address + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The IPv6 Address corresponding to + the media-dependent `physical' address." + ::= { ipv6NetToMediaEntry 1 } + + ipv6NetToMediaPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The media-dependent `physical' address." + ::= { ipv6NetToMediaEntry 2 } + + ipv6NetToMediaType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + dynamic(2), -- dynamically resolved + static(3), -- statically configured + local(4) -- local interface + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the mapping. The 'dynamic(2)' type + indicates that the IPv6 address to physical + addresses mapping has been dynamically + resolved using the IPv6 Neighbor Discovery + protocol. The static(3)' types indicates that + the mapping has been statically configured. + The local(4) indicates that the mapping is + provided for an entity's own interface address." + ::= { ipv6NetToMediaEntry 3 } + +ipv6IfNetToMediaState OBJECT-TYPE + SYNTAX INTEGER { + reachable(1), -- confirmed reachability + + stale(2), -- unconfirmed reachability + + delay(3), -- waiting for reachability + -- confirmation before entering + -- the probe state + + probe(4), -- actively probing + + invalid(5), -- an invalidated mapping + + unknown(6) -- state can not be determined + -- for some reason. + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Neighbor Unreachability Detection [8] state + for the interface when the address mapping in + this entry is used." + ::= { ipv6NetToMediaEntry 4 } + +ipv6IfNetToMediaLastUpdated OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this entry + was last updated. If this entry was updated prior + to the last re-initialization of the local network + management subsystem, then this object contains + a zero value." + ::= { ipv6NetToMediaEntry 5 } + + ipv6NetToMediaValid OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting this object to the value 'false(2)' has + the effect of invalidating the corresponding entry + in the ipv6NetToMediaTable. That is, it effectively + disassociates the interface identified with said + entry from the mapping identified with said entry. + It is an implementation-specific matter as to + + whether the agent removes an invalidated entry + from the table. Accordingly, management stations + must be prepared to receive tabular information + from agents that corresponds to entries not + currently in use. Proper interpretation of such + entries requires examination of the relevant + ipv6NetToMediaValid object." + DEFVAL { true } + ::= { ipv6NetToMediaEntry 6 } + +-- definition of IPv6-related notifications. +-- Note that we need ipv6NotificationPrefix with the 0 +-- sub-identifier to make this MIB to translate to +-- an SNMPv1 format in a reversible way. For example +-- it is needed for proxies that convert SNMPv1 traps +-- to SNMPv2 notifications without MIB knowledge. + +ipv6Notifications OBJECT IDENTIFIER + ::= { ipv6MIB 2 } +ipv6NotificationPrefix OBJECT IDENTIFIER + ::= { ipv6Notifications 0 } + +ipv6IfStateChange NOTIFICATION-TYPE + OBJECTS { + ipv6IfDescr, + ipv6IfOperStatus -- the new state of the If. + } + STATUS current + DESCRIPTION + "An ipv6IfStateChange notification signifies + that there has been a change in the state of + an ipv6 interface. This notification should + be generated when the interface's operational + status transitions to or from the up(1) state." + ::= { ipv6NotificationPrefix 1 } + +-- conformance information + +ipv6Conformance OBJECT IDENTIFIER ::= { ipv6MIB 3 } + +ipv6Compliances OBJECT IDENTIFIER ::= { ipv6Conformance 1 } +ipv6Groups OBJECT IDENTIFIER ::= { ipv6Conformance 2 } + +-- compliance statements + +ipv6Compliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement ipv6 MIB." + MODULE -- this module + MANDATORY-GROUPS { ipv6GeneralGroup, + ipv6NotificationGroup } + OBJECT ipv6Forwarding + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + access to this object" + OBJECT ipv6DefaultHopLimit + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + access to this object" + OBJECT ipv6IfDescr + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + access to this object" + OBJECT ipv6IfIdentifier + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + access to this object" + OBJECT ipv6IfIdentifierLength + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + access to this object" + + OBJECT ipv6IfAdminStatus + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + access to this object" + OBJECT ipv6RouteValid + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + access to this object" + OBJECT ipv6NetToMediaValid + MIN-ACCESS read-only + DESCRIPTION + "An agent is not required to provide write + + access to this object" + ::= { ipv6Compliances 1 } + +ipv6GeneralGroup OBJECT-GROUP + OBJECTS { ipv6Forwarding, + ipv6DefaultHopLimit, + ipv6Interfaces, + ipv6IfTableLastChange, + ipv6IfDescr, + ipv6IfLowerLayer, + ipv6IfEffectiveMtu, + ipv6IfReasmMaxSize, + ipv6IfIdentifier, + ipv6IfIdentifierLength, + ipv6IfPhysicalAddress, + ipv6IfAdminStatus, + ipv6IfOperStatus, + ipv6IfLastChange, + ipv6IfStatsInReceives, + ipv6IfStatsInHdrErrors, + ipv6IfStatsInTooBigErrors, + ipv6IfStatsInNoRoutes, + ipv6IfStatsInAddrErrors, + ipv6IfStatsInUnknownProtos, + ipv6IfStatsInTruncatedPkts, + ipv6IfStatsInDiscards, + ipv6IfStatsInDelivers, + ipv6IfStatsOutForwDatagrams, + ipv6IfStatsOutRequests, + ipv6IfStatsOutDiscards, + ipv6IfStatsOutFragOKs, + ipv6IfStatsOutFragFails, + ipv6IfStatsOutFragCreates, + ipv6IfStatsReasmReqds, + ipv6IfStatsReasmOKs, + ipv6IfStatsReasmFails, + ipv6IfStatsInMcastPkts, + ipv6IfStatsOutMcastPkts, + ipv6AddrPrefixOnLinkFlag, + ipv6AddrPrefixAutonomousFlag, + ipv6AddrPrefixAdvPreferredLifetime, + ipv6AddrPrefixAdvValidLifetime, + ipv6AddrPfxLength, + ipv6AddrType, + ipv6AddrAnycastFlag, + ipv6AddrStatus, + ipv6RouteNumber, + ipv6DiscardedRoutes, + ipv6RouteIfIndex, + ipv6RouteNextHop, + ipv6RouteType, + ipv6RouteProtocol, + ipv6RoutePolicy, + ipv6RouteAge, + ipv6RouteNextHopRDI, + ipv6RouteMetric, + ipv6RouteWeight, + ipv6RouteInfo, + ipv6RouteValid, + ipv6NetToMediaPhysAddress, + ipv6NetToMediaType, + ipv6IfNetToMediaState, + ipv6IfNetToMediaLastUpdated, + ipv6NetToMediaValid } + STATUS current + DESCRIPTION + "The IPv6 group of objects providing for basic + management of IPv6 entities." + ::= { ipv6Groups 1 } + +ipv6NotificationGroup NOTIFICATION-GROUP + NOTIFICATIONS { ipv6IfStateChange } + STATUS current + DESCRIPTION + "The notification that an IPv6 entity is required + to implement." + ::= { ipv6Groups 2 } + + END diff --git a/pandora_console/attachment/mibs/IPV6-TC b/pandora_console/attachment/mibs/IPV6-TC new file mode 100644 index 0000000000..05e1e7d980 --- /dev/null +++ b/pandora_console/attachment/mibs/IPV6-TC @@ -0,0 +1,67 @@ +IPV6-TC DEFINITIONS ::= BEGIN + +IMPORTS + Integer32 FROM SNMPv2-SMI + TEXTUAL-CONVENTION FROM SNMPv2-TC; + +-- definition of textual conventions +Ipv6Address ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2x:" + STATUS current + DESCRIPTION + "This data type is used to model IPv6 addresses. + This is a binary string of 16 octets in network + byte-order." + SYNTAX OCTET STRING (SIZE (16)) + +Ipv6AddressPrefix ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2x:" + STATUS current + DESCRIPTION + "This data type is used to model IPv6 address + prefixes. This is a binary string of up to 16 + octets in network byte-order." + SYNTAX OCTET STRING (SIZE (0..16)) + +Ipv6AddressIfIdentifier ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2x:" + STATUS current + DESCRIPTION + "This data type is used to model IPv6 address + interface identifiers. This is a binary string + of up to 8 octets in network byte-order." + SYNTAX OCTET STRING (SIZE (0..8)) + +Ipv6IfIndex ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "A unique value, greater than zero for each + internetwork-layer interface in the managed + system. It is recommended that values are assigned + contiguously starting from 1. The value for each + internetwork-layer interface must remain constant + at least from one re-initialization of the entity's + network management system to the next + + re-initialization." + SYNTAX Integer32 (1..2147483647) + +Ipv6IfIndexOrZero ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "This textual convention is an extension of the + Ipv6IfIndex convention. The latter defines + a greater than zero value used to identify an IPv6 + interface in the managed system. This extension + permits the additional value of zero. The value + zero is object-specific and must therefore be + defined as part of the description of any object + which uses this syntax. Examples of the usage of + zero might include situations where interface was + unknown, or when none or all interfaces need to be + referenced." + SYNTAX Integer32 (0..2147483647) + +END diff --git a/pandora_console/attachment/mibs/JUNIPER-MIB b/pandora_console/attachment/mibs/JUNIPER-MIB new file mode 100644 index 0000000000..16a823a475 --- /dev/null +++ b/pandora_console/attachment/mibs/JUNIPER-MIB @@ -0,0 +1,2022 @@ +-- +-- Juniper Enterprise Specific MIB: Chassis MIB +-- +-- Copyright (c) 1998-2008, Juniper Networks, Inc. +-- All rights reserved. +-- +-- The contents of this document are subject to change without notice. +-- + + +JUNIPER-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + Integer32, Gauge32, Counter32 + FROM SNMPv2-SMI + DisplayString, TimeStamp, TimeInterval, TEXTUAL-CONVENTION, DateAndTime + FROM SNMPv2-TC + jnxMibs, jnxChassisTraps, jnxChassisOKTraps + FROM JUNIPER-SMI; + +jnxBoxAnatomy MODULE-IDENTITY + + LAST-UPDATED "201010220000Z" -- Fri Oct 22 00:00:00 2008 UTC + ORGANIZATION "Juniper Networks, Inc." + CONTACT-INFO + " Juniper Technical Assistance Center + Juniper Networks, Inc. + 1194 N. Mathilda Avenue + Sunnyvale, CA 94089 + E-mail: support@juniper.net" + + DESCRIPTION + "The MIB modules representing Juniper Networks' + implementation of enterprise specific MIBs + supported by a single SNMP agent." + REVISION "201010220000Z" + DESCRIPTION + "Added load average variables" + REVISION "200403230000Z" + DESCRIPTION + "Added chassis identification objects." + REVISION "200406300000Z" -- July 30, 2004 + DESCRIPTION + "Added following new traps for chassis + alarm conditions: jnxFruFailed, jnxFruOffline + and jnxFruOnline." + REVISION "200409170000Z" -- Sep 17, 2004 + DESCRIPTION + "Added new traps for chassis + alarm condition jnxFruCheck." + REVISION "200507180000Z" -- Jul 18, 2005 + DESCRIPTION + "Added new fru type FEB in jnxFruType enumeration." + REVISION "200507190000Z" -- Jul 19, 2005 + DESCRIPTION + "Added new offline reason pfeVersionMismatch + to jnxFruOfflineReason enumeration." + REVISION "200611200000Z" -- Nov 20, 2006 + DESCRIPTION + "Added new offline reason fruFebOffline + to jnxFruOfflineReason enumeration." + REVISION "200807310000Z" -- Jul 31, 2008 + DESCRIPTION + "Added jnxBoxSystemDomainType object." + REVISION "200808010000Z" -- Aug 01, 2008 + DESCRIPTION + "Added new fru type PSD to jnxFruType enumeration and + added jcsX chassis IDs to JnxChassisId enumeration." + REVISION "200812310000Z" -- Dec 31, 2008 + DESCRIPTION "Added nodeX chassis IDs to JnxChassisId enumeration." + REVISION "200901090000Z" -- Jan 09, 2009 + DESCRIPTION + "Added sfcX and lcc4-lcc15 chassis IDs to JnxChassisId + enumeration." + + + + ::= { jnxMibs 1 } + +-- +-- Textual Conventions +-- + +JnxChassisId ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "Identifies a specific router chassis." + SYNTAX INTEGER { + unknown (1), + singleChassis (2), + scc (3), + lcc0 (4), + lcc1 (5), + lcc2 (6), + lcc3 (7), + jcs1 (8), + jcs2 (9), + jcs3 (10), + jcs4 (11), + node0 (12), + node1 (13), + sfc0 (14), + sfc1 (15), + sfc2 (16), + sfc3 (17), + sfc4 (18), + lcc4 (19), + lcc5 (20), + lcc6 (21), + lcc7 (22), + lcc8 (23), + lcc9 (24), + lcc10 (25), + lcc11 (26), + lcc12 (27), + lcc13 (28), + lcc14 (29), + lcc15 (30), + member0 (31), + member1 (32), + member2 (33), + member3 (34), + member4 (35), + member5 (36), + member6 (37), + member7 (38) + } + + + +-- Juniper Box Anatomy MIB +-- + +-- Top level objects + + jnxBoxClass OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The class of the box, indicating which product line + the box is about, for example, 'Internet Router'." + ::= { jnxBoxAnatomy 1 } + + jnxBoxDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name, model, or detailed description of the box, + indicating which product the box is about, for example + 'M40'." + ::= { jnxBoxAnatomy 2 } + + jnxBoxSerialNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number of this subject, blank if unknown + or unavailable." + ::= { jnxBoxAnatomy 3 } + + jnxBoxRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The revision of this subject, blank if unknown or + unavailable." + ::= { jnxBoxAnatomy 4 } + + jnxBoxInstalled OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when the subject was last + installed, up-and-running. Zero if unknown or + already up-and-running when the agent was up." + ::= { jnxBoxAnatomy 5 } + +-- +-- Box Containers Table +-- + + jnxContainersTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxContainersEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of containers entries." + ::= { jnxBoxAnatomy 6 } + + jnxContainersEntry OBJECT-TYPE + SYNTAX JnxContainersEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry of containers table." + INDEX { jnxContainersIndex } + ::= { jnxContainersTable 1 } + + JnxContainersEntry ::= SEQUENCE { + jnxContainersIndex Integer32, + jnxContainersView Integer32, + jnxContainersLevel Integer32, + jnxContainersWithin Integer32, + jnxContainersType OBJECT IDENTIFIER, + jnxContainersDescr DisplayString, + jnxContainersCount Integer32 + } + + jnxContainersIndex OBJECT-TYPE + SYNTAX Integer32 (1..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index for this entry." + ::= { jnxContainersEntry 1 } + + jnxContainersView OBJECT-TYPE + SYNTAX Integer32 (1..63) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The view(s) from which the specific container + appears. + + This variable indicates that the specific container + is embedded and accessible from the corresponding + view(s). + + The value is a bit map represented as a sum. + If multiple bits are set, the specified + container(s) are located and accessible from + that set of views. + + The various values representing the bit positions + and its corresponding views are: + 1 front + 2 rear + 4 top + 8 bottom + 16 leftHandSide + 32 rightHandSide + + Note 1: + LefHandSide and rightHandSide are referred + to based on the view from the front. + + Note 2: + If the specified containers are scattered + around various views, the numbering is according + to the following sequence: + front -> rear -> top -> bottom + -> leftHandSide -> rightHandSide + For each view plane, the numbering sequence is + first from left to right, and then from up to down. + + Note 3: + Even though the value in chassis hardware (e.g. + slot number) may be labelled from 0, 1, 2, and up, + all the indices in MIB start with 1 (not 0) + according to network management convention." + ::= { jnxContainersEntry 2 } + + jnxContainersLevel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The abstraction level of the box or chassis. + It is enumerated from the outside to the inside, + from the outer layer to the inner layer. + For example, top level (i.e. level 0) refers to + chassis frame, level 1 FPC slot within chassis + frame, level 2 PIC space within FPC slot." + ::= { jnxContainersEntry 3 } + + jnxContainersWithin OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of its next higher level container + housing this entry. The associated + jnxContainersIndex in the jnxContainersTable + represents its next higher level container." + ::= { jnxContainersEntry 4 } + + jnxContainersType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of this container." + ::= { jnxContainersEntry 5 } + + jnxContainersDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name or detailed description of this + subject." + ::= { jnxContainersEntry 6 } + + jnxContainersCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of containers of this level + per container of the next higher level. + e.g. if there are six level 2 containers in + level 1 container, then jnxContainersCount for + level 2 is six." + ::= { jnxContainersEntry 7 } + +-- +-- Box Contents Table +-- + + jnxContentsLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when the box contents + table last changed. Zero if unknown or already + existing when the agent was up." + ::= { jnxBoxAnatomy 7 } + + jnxContentsTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxContentsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of contents entries." + ::= { jnxBoxAnatomy 8 } + + jnxContentsEntry OBJECT-TYPE + SYNTAX JnxContentsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry of contents table." + INDEX { jnxContentsContainerIndex, + jnxContentsL1Index, + jnxContentsL2Index, + jnxContentsL3Index } + ::= { jnxContentsTable 1 } + + JnxContentsEntry ::= SEQUENCE { + jnxContentsContainerIndex Integer32, + jnxContentsL1Index Integer32, + jnxContentsL2Index Integer32, + jnxContentsL3Index Integer32, + jnxContentsType OBJECT IDENTIFIER, + jnxContentsDescr DisplayString, + jnxContentsSerialNo DisplayString, + jnxContentsRevision DisplayString, + jnxContentsInstalled TimeStamp, + jnxContentsPartNo DisplayString, + jnxContentsChassisId JnxChassisId, + jnxContentsChassisDescr DisplayString, + jnxContentsChassisCleiCode DisplayString + } + + jnxContentsContainerIndex OBJECT-TYPE + SYNTAX Integer32 (1..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The associated jnxContainersIndex in the + jnxContainersTable." + ::= { jnxContentsEntry 1 } + + jnxContentsL1Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level one index of the container + housing this subject. Zero if unavailable + or inapplicable." + ::= { jnxContentsEntry 2 } + + jnxContentsL2Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level two index of the container + housing this subject. Zero if unavailable + or inapplicable." + ::= { jnxContentsEntry 3 } + + jnxContentsL3Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level three index of the container + housing this subject. Zero if unavailable + or inapplicable." + ::= { jnxContentsEntry 4 } + + jnxContentsType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of this subject. zeroDotZero + if unknown." + ::= { jnxContentsEntry 5 } + + jnxContentsDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name or detailed description of this + subject." + ::= { jnxContentsEntry 6 } + + jnxContentsSerialNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number of this subject, blank if + unknown or unavailable." + ::= { jnxContentsEntry 7 } + + jnxContentsRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The revision of this subject, blank if unknown + or unavailable." + ::= { jnxContentsEntry 8 } + + jnxContentsInstalled OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when the subject was last + installed, up-and-running. Zero if unknown + or already up-and-running when the agent was up." + ::= { jnxContentsEntry 9 } + + jnxContentsPartNo OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The part number of this subject, blank if unknown + or unavailable." + ::= { jnxContentsEntry 10 } + + jnxContentsChassisId OBJECT-TYPE + SYNTAX JnxChassisId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the chassis on which the contents of this + row exists." + ::= { jnxContentsEntry 11 } + + jnxContentsChassisDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the chassis on which the + contents of this row exists." + ::= { jnxContentsEntry 12 } + + jnxContentsChassisCleiCode OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The clei code of this subject, blank if unknown + or unavailable. + + A CLEI code is an intelligent code that consists of 10 + alphanumeric characters with 4 data elements. The first data + element is considered the basic code with the first 2 characters + indicating the technology or equipment type, and the third and + fourth characters denoting the functional sub-category. The + second data element represents the features, and its three + characters denote functional capabilities or changes. The third + data element has one character and denotes a reference to a + manufacturer, system ID, specification, or drawing. The fourth + data element consists of two characters and contains complementary + data. These two characters provide a means of differentiating or + providing uniqueness between the eight character CLEI codes by + identifying the manufacturing vintage of the product. Names are + assigned via procedures defined in [GR485]. + + The assigned maintenance agent for the CLEI code, Telcordia + Technologies, is responsible for assigning certain equipment and + other identifiers (e.g., location, manufacturer/supplier) for the + telecommunications industry." + ::= { jnxContentsEntry 13 } + +-- +-- Box LED Indicators Table +-- + + jnxLEDLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The value of sysUpTime when the box LED table + last changed. Zero if unknown or already at + that state when the agent was up." + ::= { jnxBoxAnatomy 9 } + + jnxLEDTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxLEDEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "A list of status entries." + ::= { jnxBoxAnatomy 10 } + + jnxLEDEntry OBJECT-TYPE + SYNTAX JnxLEDEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "An entry of status table." + INDEX { jnxLEDAssociateTable, + jnxLEDAssociateIndex, + jnxLEDL1Index, + jnxLEDL2Index, + jnxLEDL3Index } + ::= { jnxLEDTable 1 } + + JnxLEDEntry ::= SEQUENCE { + jnxLEDAssociateTable INTEGER, + jnxLEDAssociateIndex Integer32, + jnxLEDL1Index Integer32, + jnxLEDL2Index Integer32, + jnxLEDL3Index Integer32, + jnxLEDOriginator OBJECT IDENTIFIER, + jnxLEDDescr DisplayString, + jnxLEDState INTEGER, + jnxLEDStateOrdered INTEGER + } + + jnxLEDAssociateTable OBJECT-TYPE + SYNTAX INTEGER { + other(1), + jnxContainersTable(2), + jnxContentsTable(3) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The associated table that this entry is + related." + ::= { jnxLEDEntry 1 } + + jnxLEDAssociateIndex OBJECT-TYPE + SYNTAX Integer32 (1..'7fffffff'h) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The index of the associated table that this + entry is related." + ::= { jnxLEDEntry 2 } + + jnxLEDL1Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The level one index of the associated + table that this entry is related. Zero + if unavailable or inapplicable." + ::= { jnxLEDEntry 3 } + + jnxLEDL2Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The level two index of the associated + table that this entry is related. Zero + if unavailable or inapplicable." + ::= { jnxLEDEntry 4 } + + jnxLEDL3Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The level three index of the associated + table that this entry is related. Zero + if unavailable or inapplicable." + ::= { jnxLEDEntry 5 } + + jnxLEDOriginator OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The originator of the this entry." + ::= { jnxLEDEntry 6 } + + jnxLEDDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The name or detailed description of this subject." + ::= { jnxLEDEntry 7 } + + jnxLEDState OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- unknown or unavailable + green(2), -- ok, good, normally working, + -- or on-line as a standby backup if + -- there is an active primary + yellow(3), -- alarm, warning, marginally working + red(4), -- alert, failed, not working + blue(5), -- ok, on-line as an active primary + amber(6) -- alarm, off-line, not running + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The state of the LED indicator." + ::= { jnxLEDEntry 8 } + + jnxLEDStateOrdered OBJECT-TYPE + SYNTAX INTEGER { + blue(1), -- ok, on-line as an active primary + green(2), -- ok, good, normally working, + -- or on-line as a standby backup if + -- there is an active primary + amber(3), -- alarm, off-line, not running + yellow(4), -- alarm, warning, marginally working + red(5), -- alert, failed, not working + other(6) -- unknown or unavailable + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The state of the LED indicator. Identical to jnxLEDState, but + with enums ordered from 'most operational' to 'least + operational' states." + ::= { jnxLEDEntry 9 } +-- +-- Box Filled Status Table +-- +-- This table show the empty/filled status of the container in the +-- box containers table. +-- + + jnxFilledLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when the box filled + status table last changed. Zero if unknown or + already at that state when the agent was up." + ::= { jnxBoxAnatomy 11 } + + jnxFilledTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxFilledEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of filled status entries." + ::= { jnxBoxAnatomy 12 } + + jnxFilledEntry OBJECT-TYPE + SYNTAX JnxFilledEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry of filled status table." + INDEX { jnxFilledContainerIndex, + jnxFilledL1Index, + jnxFilledL2Index, + jnxFilledL3Index } + ::= { jnxFilledTable 1 } + + JnxFilledEntry ::= SEQUENCE { + jnxFilledContainerIndex Integer32, + jnxFilledL1Index Integer32, + jnxFilledL2Index Integer32, + jnxFilledL3Index Integer32, + jnxFilledDescr DisplayString, + jnxFilledState INTEGER, + jnxFilledChassisId JnxChassisId, + jnxFilledChassisDescr DisplayString + } + + jnxFilledContainerIndex OBJECT-TYPE + SYNTAX Integer32 (1..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The associated jnxContainersIndex in the + jnxContainersTable." + ::= { jnxFilledEntry 1 } + + jnxFilledL1Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level one index of the container + housing this subject. Zero if unavailable + or inapplicable." + ::= { jnxFilledEntry 2 } + + jnxFilledL2Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level two index of the container + housing this subject. Zero if unavailable + or inapplicable." + ::= { jnxFilledEntry 3 } + + jnxFilledL3Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level three index of the container + housing this subject. Zero if unavailable + or inapplicable." + ::= { jnxFilledEntry 4 } + + jnxFilledDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name or detailed description of this + subject." + ::= { jnxFilledEntry 5 } + + jnxFilledState OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + empty(2), + filled(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The filled state of this subject." + ::= { jnxFilledEntry 6 } + + jnxFilledChassisId OBJECT-TYPE + SYNTAX JnxChassisId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the chassis on which the contents of this + row exists." + ::= { jnxFilledEntry 7 } + + jnxFilledChassisDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the chassis on which the + contents of this row exists." + ::= { jnxFilledEntry 8 } + + +-- +-- Box Operating Status Table +-- +-- This table reveals the operating status of some subjects +-- of interest in the box contents table. +-- + + jnxOperatingTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxOperatingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of operating status entries." + ::= { jnxBoxAnatomy 13 } + + jnxOperatingEntry OBJECT-TYPE + SYNTAX JnxOperatingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry of operating status table." + INDEX { jnxOperatingContentsIndex, + jnxOperatingL1Index, + jnxOperatingL2Index, + jnxOperatingL3Index } + ::= { jnxOperatingTable 1 } + + JnxOperatingEntry ::= SEQUENCE { + jnxOperatingContentsIndex Integer32, + jnxOperatingL1Index Integer32, + jnxOperatingL2Index Integer32, + jnxOperatingL3Index Integer32, + jnxOperatingDescr DisplayString, + jnxOperatingState INTEGER, + jnxOperatingTemp Gauge32, + jnxOperatingCPU Gauge32, + jnxOperatingISR Gauge32, + jnxOperatingDRAMSize Integer32, + jnxOperatingBuffer Gauge32, + jnxOperatingHeap Gauge32, + jnxOperatingUpTime TimeInterval, + jnxOperatingLastRestart TimeStamp, + jnxOperatingMemory Integer32, + jnxOperatingStateOrdered INTEGER, + jnxOperatingChassisId JnxChassisId, + jnxOperatingChassisDescr DisplayString, + jnxOperatingRestartTime DateAndTime, + jnxOperating1MinLoadAvg Gauge32, + jnxOperating5MinLoadAvg Gauge32, + jnxOperating15MinLoadAvg Gauge32 + } + + jnxOperatingContentsIndex OBJECT-TYPE + SYNTAX Integer32 (1..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The associated jnxContentsContainerIndex in the + jnxContentsTable." + ::= { jnxOperatingEntry 1 } + + jnxOperatingL1Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level one index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 2 } + + jnxOperatingL2Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level two index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 3 } + + jnxOperatingL3Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level three index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 4 } + + jnxOperatingDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name or detailed description of this subject." + ::= { jnxOperatingEntry 5 } + + jnxOperatingState OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + running(2), -- up and running, + -- as a active primary + ready(3), -- ready to run, not running yet + reset(4), -- held in reset, not ready yet + runningAtFullSpeed(5), + -- valid for fans only + down(6), -- down or off, for power supply + standby(7) -- running as a standby backup + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The operating state of this subject." + ::= { jnxOperatingEntry 6 } + + jnxOperatingTemp OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The temperature in Celsius (degrees C) of this + subject. Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 7 } + + jnxOperatingCPU OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU utilization in percentage of this + subject. Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 8 } + + jnxOperatingISR OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU utilization in percentage of this subject + spending in interrupt service routine (ISR). + Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 9 } + + jnxOperatingDRAMSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The DRAM size in bytes of this subject. + Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 10 } + + jnxOperatingBuffer OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The buffer pool utilization in percentage + of this subject. Zero if unavailable or + inapplicable." + ::= { jnxOperatingEntry 11 } + + jnxOperatingHeap OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The heap utilization in percentage of + this subject. Zero if unavailable or + inapplicable." + ::= { jnxOperatingEntry 12 } + + jnxOperatingUpTime OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The time interval in 10-millisecond period + that this subject has been up and running. + Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 13 } + + jnxOperatingLastRestart OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when this subject + last restarted. Zero if unavailable or + inapplicable." + ::= { jnxOperatingEntry 14 } + + jnxOperatingMemory OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The installed memory size in Megabytes + of this subject. Zero if unavailable or + inapplicable." + ::= { jnxOperatingEntry 15 } + + jnxOperatingStateOrdered OBJECT-TYPE + SYNTAX INTEGER { + running(1), -- up and running, + -- as a active primary + standby(2), -- running as a standby backup + ready(3), -- ready to run, not running yet + runningAtFullSpeed(4), + -- valid for fans only + reset(5), -- held in reset, not ready yet + down(6), -- down or off, for power supply + unknown(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The operating state of this subject. Identical to + jnxOperatingState, but with enums ordered from 'most + operational' to 'least operational' states." + ::= { jnxOperatingEntry 16 } + + jnxOperatingChassisId OBJECT-TYPE + SYNTAX JnxChassisId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the chassis on which the contents of this + row exists." + ::= { jnxOperatingEntry 17 } + + jnxOperatingChassisDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the chassis on which the + contents of this row exists." + ::= { jnxOperatingEntry 18 } + + jnxOperatingRestartTime OBJECT-TYPE + SYNTAX DateAndTime + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time at which this entity + last restarted." + ::= { jnxOperatingEntry 19 } + + jnxOperating1MinLoadAvg OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU Load Average over the last 1 minutes + Here it will be shown as percentage value + Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 20 } + + jnxOperating5MinLoadAvg OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU Load Average over the last 5 minutes + Here it will be shown as percentage value + Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 21 } + + jnxOperating15MinLoadAvg OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU Load Average over the last 15 minutes + Here it will be shown as percentage value + Zero if unavailable or inapplicable." + ::= { jnxOperatingEntry 22 } + +-- +-- Box Redundancy Information Table +-- +-- This table shows the internal configuration setting for the +-- available redundant subsystems or components in the box. +-- + + jnxRedundancyTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxRedundancyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of redundancy information entries." + ::= { jnxBoxAnatomy 14 } + + jnxRedundancyEntry OBJECT-TYPE + SYNTAX JnxRedundancyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the redundancy information table." + INDEX { jnxRedundancyContentsIndex, + jnxRedundancyL1Index, + jnxRedundancyL2Index, + jnxRedundancyL3Index } + ::= { jnxRedundancyTable 1 } + + JnxRedundancyEntry ::= SEQUENCE { + jnxRedundancyContentsIndex Integer32, + jnxRedundancyL1Index Integer32, + jnxRedundancyL2Index Integer32, + jnxRedundancyL3Index Integer32, + jnxRedundancyDescr DisplayString, + jnxRedundancyConfig INTEGER, + jnxRedundancyState INTEGER, + jnxRedundancySwitchoverCount Counter32, + jnxRedundancySwitchoverTime TimeStamp, + jnxRedundancySwitchoverReason INTEGER, + jnxRedundancyKeepaliveHeartbeat Integer32, + jnxRedundancyKeepaliveTimeout Integer32, + jnxRedundancyKeepaliveElapsed Integer32, + jnxRedundancyKeepaliveLoss Counter32, + jnxRedundancyChassisId JnxChassisId, + jnxRedundancyChassisDescr DisplayString + } + + jnxRedundancyContentsIndex OBJECT-TYPE + SYNTAX Integer32 (1..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The associated jnxContentsContainerIndex in the + jnxContentsTable." + ::= { jnxRedundancyEntry 1 } + + jnxRedundancyL1Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level one index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxRedundancyEntry 2 } + + jnxRedundancyL2Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level two index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxRedundancyEntry 3 } + + jnxRedundancyL3Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level three index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxRedundancyEntry 4 } + + jnxRedundancyDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name or detailed description of this subject." + ::= { jnxRedundancyEntry 5 } + + jnxRedundancyConfig OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + master(2), -- election priority set as a master + backup(3), -- election priority set as a backup + disabled(4), -- election disabled + notApplicable(5) -- any among the available can be master + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The election priority of redundancy configuration for + this subject. The value 'notApplicable' means no + specific instance is configured to be master or + backup; whichever component boots up first becomes a + master." + ::= { jnxRedundancyEntry 6 } + + jnxRedundancyState OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + master(2), -- master + backup(3), -- backup + disabled(4) -- disabled + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current running state for this subject." + ::= { jnxRedundancyEntry 7 } + + jnxRedundancySwitchoverCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of switchover as perceived by + this subject since routing engine is up and running. + The switchover is defined as a change in state of + jnxRedundancyState from master to backup or vice + versa. Its value is reset when the routing engine + is reset or rebooted." + ::= { jnxRedundancyEntry 8 } + + jnxRedundancySwitchoverTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when the jnxRedundancyState + of this subject was last switched over from master + to backup or vice versa. Zero if unknown or never + switched over since the routing engine is up and + running." + ::= { jnxRedundancyEntry 9 } + + jnxRedundancySwitchoverReason OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- others + neverSwitched(2), -- never switched + userSwitched(3), -- user-initiated switchover + autoSwitched(4) -- automatic switchover + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The reason of the last switchover for this subject." + ::= { jnxRedundancyEntry 10 } + + jnxRedundancyKeepaliveHeartbeat OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The period of sending keepalive messages between + the master and backup subsystems. It is a system-wide + preset value in seconds used by internal mastership + resolution. Zero if unavailable or inapplicable." + ::= { jnxRedundancyEntry 11 } + + jnxRedundancyKeepaliveTimeout OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timeout period in seconds, by the keepalive + watchdog timer, before initiating a switch over to + the backup subsystem. Zero if unavailable or + inapplicable." + ::= { jnxRedundancyEntry 12 } + + jnxRedundancyKeepaliveElapsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The elapsed time in seconds by this subject since + receiving the last keepalive message from the other + subsystems. Zero if unavailable or inapplicable." + ::= { jnxRedundancyEntry 13 } + + jnxRedundancyKeepaliveLoss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of losses on keepalive messages + between the master and backup subsystems as perceived + by this subject since the system is up and running. + Zero if unavailable or inapplicable." + ::= { jnxRedundancyEntry 14 } + + jnxRedundancyChassisId OBJECT-TYPE + SYNTAX JnxChassisId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the chassis on which the contents of this + row exists." + ::= { jnxRedundancyEntry 15 } + + jnxRedundancyChassisDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the chassis on which the + contents of this row exists." + ::= { jnxRedundancyEntry 16 } + + +-- +-- FRU (Field Replaceable Unit) Status Table +-- +-- This table shows the status of the FRUs in the chassis. +-- + + jnxFruTable OBJECT-TYPE + SYNTAX SEQUENCE OF JnxFruEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of FRU status entries." + ::= { jnxBoxAnatomy 15 } + + jnxFruEntry OBJECT-TYPE + SYNTAX JnxFruEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the FRU status table." + INDEX { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index } + ::= { jnxFruTable 1 } + + JnxFruEntry ::= SEQUENCE { + jnxFruContentsIndex Integer32, + jnxFruL1Index Integer32, + jnxFruL2Index Integer32, + jnxFruL3Index Integer32, + jnxFruName DisplayString, + jnxFruType INTEGER, + jnxFruSlot Integer32, + jnxFruState INTEGER, + jnxFruTemp Gauge32, + jnxFruOfflineReason INTEGER, + jnxFruLastPowerOff TimeStamp, + jnxFruLastPowerOn TimeStamp, + jnxFruPowerUpTime TimeInterval, + jnxFruChassisId JnxChassisId, + jnxFruChassisDescr DisplayString, + jnxFruPsdAssignment Integer32 + } + + jnxFruContentsIndex OBJECT-TYPE + SYNTAX Integer32 (1..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The associated jnxContentsContainerIndex in the + jnxContentsTable." + ::= { jnxFruEntry 1 } + + jnxFruL1Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level one index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxFruEntry 2 } + + jnxFruL2Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level two index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxFruEntry 3 } + + jnxFruL3Index OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level three index associated with this + subject. Zero if unavailable or inapplicable." + ::= { jnxFruEntry 4 } + + jnxFruName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name or detailed description of this subject." + ::= { jnxFruEntry 5 } + + jnxFruType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- unknown or others + clockGenerator(2), -- CG + flexiblePicConcentrator(3), -- FPC + switchingAndForwardingModule(4), -- SFM + controlBoard(5), -- CBD, SCB + routingEngine(6), -- RE + powerEntryModule(7), -- PEM + frontPanelModule(8), -- FPM + switchInterfaceBoard(9), -- SIB + processorMezzanineBoardForSIB(10), -- SPMB + portInterfaceCard(11), -- PIC + craftInterfacePanel(12), -- CIP + fan(13), -- fan + lineCardChassis(14), -- LCC + forwardingEngineBoard(15), -- FEB + protectedSystemDomain(16), -- PSD + powerDistributionUnit(17), -- PDU + powerSupplyModule(18) -- PSM + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The FRU type for this subject." + ::= { jnxFruEntry 6 } + + jnxFruSlot OBJECT-TYPE + SYNTAX Integer32 (0..'7fffffff'h) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The slot number of this subject. This is equivalent + to jnxFruL1Index in meaning. Zero if unavailable or + inapplicable." + ::= { jnxFruEntry 7 } + + jnxFruState OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + empty(2), + present(3), + ready(4), + announceOnline(5), + online(6), + anounceOffline(7), + offline(8), + diagnostic(9), + standby(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state for this subject." + ::= { jnxFruEntry 8 } + + jnxFruTemp OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The temperature in Celsius (degrees C) of this + subject. Zero if unavailable or inapplicable." + ::= { jnxFruEntry 9 } + + jnxFruOfflineReason OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), -- unknown or other + none(2), -- none + error(3), -- error + noPower(4), -- no power + configPowerOff(5), -- configured to power off + configHoldInReset(6), -- configured to hold in reset + cliCommand(7), -- offlined by cli command + buttonPress(8), -- offlined by button press + cliRestart(9), -- restarted by cli command + overtempShutdown(10), -- overtemperature shutdown + masterClockDown(11), -- master clock down + singleSfmModeChange(12), -- single SFM mode change + packetSchedulingModeChange(13), -- packet scheduling mode change + physicalRemoval(14), -- physical removal + unresponsiveRestart(15), -- restarting unresponsive board + sonetClockAbsent(16), -- sonet out clock absent + rddPowerOff(17), -- RDD power off + majorErrors(18), -- major errors + minorErrors(19), -- minor errors + lccHardRestart(20), -- LCC hard restart + lccVersionMismatch(21), -- LCC version mismatch + powerCycle(22), -- power cycle + reconnect(23), -- reconnect + overvoltage(24), -- overvoltage + pfeVersionMismatch(25), -- PFE version mismatch + febRddCfgChange(26), -- FEB redundancy cfg changed + fpcMisconfig(27), -- FPC is misconfigured + fruReconnectFail(28), -- FRU did not reconnect + fruFwddReset(29), -- FWDD reset the fru + fruFebSwitch(30), -- FEB got switched + fruFebOffline(31), -- FEB was offlined + fruInServSoftUpgradeError(32), -- In Service Software Upgrade Error + fruChasdPowerRatingExceed(33), -- Chassis power rating exceeded + fruConfigOffline(34), -- Configured offline + fruServiceRestartRequest(35), -- restarting request from a service + spuResetRequest(36), -- SPU reset request + spuFlowdDown(37), -- SPU flowd down + spuSpi4Down(38), -- SPU SPI4 down + spuWatchdogTimeout(39), -- SPU Watchdog timeout + spuCoreDump(40), -- SPU kernel core dump + fpgaSpi4LinkDown(41), -- FPGA SPI4 link down + i3Spi4LinkDown(42), -- I3 SPI4 link down + cppDisconnect(43), -- CPP disconnect + cpuNotBoot(44), -- CPU not boot + spuCoreDumpComplete(45), -- SPU kernel core dump complete + rstOnSpcSpuFailure(46), -- Rst on SPC SPU failure + softRstOnSpcSpuFailure(47), -- Soft Reset on SPC SPU failure + hwAuthenticationFailure(48), -- HW authentication failure + reconnectFpcFail(49), -- Reconnect FPC fail + fpcAppFailed(50), -- FPC app failed + fpcKernelCrash(51), -- FPC kernel crash + spuFlowdDownNoCore(52), -- SPU flowd down, no core dump + spuFlowdCoreDumpIncomplete(53), -- SPU flowd crash with incomplete core dump + spuFlowdCoreDumpComplete(54), -- SPU flowd crash with complete core dump + spuIdpdDownNoCore(55), -- SPU idpd down, no core dump + spuIdpdCoreDumpIncomplete(56), -- SPU idpd crash with incomplete core dump + spuIdpdCoreDumpComplete(57), -- SPU idpd crash with complete core dump + spuCoreDumpIncomplete(58), -- SPU kernel crash with incomplete core dump + spuIdpdDown(59), -- SPU idpd down + fruPfeReset(60), -- PFE reset + fruReconnectNotReady(61), -- FPC not ready to reconnect + fruSfLinkDown(62), -- FE - Fabric links down + fruFabricDown(63), -- Fabric transitioned from up to down + fruAntiCounterfeitRetry(64), -- FPC offlined due to Anti Counterfeit Retry + fruFPCChassisClusterDisable(65), -- FPC offlined due to Chassis Cluster Disable + spuFipsError(66), -- SPU fips error + fruFPCFabricDownOffline(67), -- FPC offlined due to Fabric down + febCfgChange(68), -- FEB config change + routeLocalizationRoleChange(69), -- Route localization role change + fruFpcUnsupported(70), -- FPC unsupported + psdVersionMismatch(71), -- PSD version mismatch + fruResetThresholdExceeded(72), -- FRU Reset Threshold Exceeded + picBounce(73), -- PIC Bounce + badVoltage(74), -- bad voltage + fruFPCReducedFabricBW(75), -- FPC offlined due to Reduced Fabric Bandwidth + fruAutoheal(76) -- FRU offlined due to software autoheal action + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The offline reason of this subject." + ::= { jnxFruEntry 10 } + + jnxFruLastPowerOff OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when this subject was last + powered off. Zero if unavailable or inapplicable." + ::= { jnxFruEntry 11 } + + jnxFruLastPowerOn OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when this subject was last + powered on. Zero if unavailable or inapplicable." + ::= { jnxFruEntry 12 } + + jnxFruPowerUpTime OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time interval in 10-millisecond period + that this subject has been up and running + since the last power on time. Zero if + unavailable or inapplicable." + ::= { jnxFruEntry 13 } + + jnxFruChassisId OBJECT-TYPE + SYNTAX JnxChassisId + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the chassis on which the contents of this + row exists." + ::= { jnxFruEntry 14 } + + jnxFruChassisDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the chassis on which the + contents of this row exists." + ::= { jnxFruEntry 15 } + + jnxFruPsdAssignment OBJECT-TYPE + SYNTAX Integer32 (0..31) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The PSD assignment of this subject. Zero if unavailable or + not applicable." + ::= { jnxFruEntry 16 } + +-- +-- definition of Kernel Memory Used related stuff +-- + + jnxBoxKernelMemoryUsedPercent OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of kernel memory used + of this subject. 0 if unavailable or + inapplicable." + ::= { jnxBoxAnatomy 16 } + +-- +-- definition of system domain information +-- + + jnxBoxSystemDomainType OBJECT-TYPE + SYNTAX INTEGER { + notApplicable(1), + rootSystemDomain(2), + protectedSystemDomain(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system domain type of this subject, notApplicable will + be returned if this feature is not supported." + ::= { jnxBoxAnatomy 17 } + + +-- +-- definition of chassis related traps +-- + -- Traps for chassis alarm conditions + + jnxPowerSupplyFailure NOTIFICATION-TYPE + OBJECTS { jnxContentsContainerIndex, + jnxContentsL1Index, + jnxContentsL2Index, + jnxContentsL3Index, + jnxContentsDescr, + jnxOperatingState } + STATUS current + DESCRIPTION + "A jnxPowerSupplyFailure trap signifies that + the SNMP entity, acting in an agent role, has + detected that the specified power supply in the + chassis has been in the failure (bad DC output) + condition." + ::= { jnxChassisTraps 1 } + + jnxFanFailure NOTIFICATION-TYPE + OBJECTS { jnxContentsContainerIndex, + jnxContentsL1Index, + jnxContentsL2Index, + jnxContentsL3Index, + jnxContentsDescr, + jnxOperatingState } + STATUS current + DESCRIPTION + "A jnxFanFailure trap signifies that the SNMP + entity, acting in an agent role, has detected + that the specified cooling fan or impeller in + the chassis has been in the failure (not spinning) + condition." + ::= { jnxChassisTraps 2 } + + jnxOverTemperature NOTIFICATION-TYPE + OBJECTS { jnxContentsContainerIndex, + jnxContentsL1Index, + jnxContentsL2Index, + jnxContentsL3Index, + jnxContentsDescr, + jnxOperatingTemp } + STATUS current + DESCRIPTION + "A jnxOverTemperature trap signifies that the + SNMP entity, acting in an agent role, has + detected that the specified hardware component + in the chassis has experienced over temperature + condition." + ::= { jnxChassisTraps 3 } + + jnxRedundancySwitchover NOTIFICATION-TYPE + OBJECTS { jnxRedundancyContentsIndex, + jnxRedundancyL1Index, + jnxRedundancyL2Index, + jnxRedundancyL3Index, + jnxRedundancyDescr, + jnxRedundancyConfig, + jnxRedundancyState, + jnxRedundancySwitchoverCount, + jnxRedundancySwitchoverTime, + jnxRedundancySwitchoverReason } + STATUS current + DESCRIPTION + "A jnxRedundancySwitchover trap signifies that + the SNMP entity, acting in an agent role, has + detected that the specified hardware component + in the chassis has experienced a redundancy + switchover event defined as a change in state + of jnxRedundancyState from master to backup or + vice versa." + ::= { jnxChassisTraps 4 } + + jnxFruRemoval NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxFruRemoval trap signifies that the SNMP + entity, acting in an agent role, has detected + that the specified FRU (Field Replaceable Unit) + has been removed from the chassis." + ::= { jnxChassisTraps 5 } + + jnxFruInsertion NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxFruInsertion trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified FRU (Field Replaceable Unit) has been + inserted into the chassis." + ::= { jnxChassisTraps 6 } + + jnxFruPowerOff NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot, + jnxFruOfflineReason, + jnxFruLastPowerOff, + jnxFruLastPowerOn } + STATUS current + DESCRIPTION + "A jnxFruPowerOff trap signifies that the SNMP + entity, acting in an agent role, has detected + that the specified FRU (Field Replaceable Unit) + has been powered off in the chassis." + ::= { jnxChassisTraps 7 } + + jnxFruPowerOn NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot, + jnxFruOfflineReason, + jnxFruLastPowerOff, + jnxFruLastPowerOn } + STATUS current + DESCRIPTION + "A jnxFruPowerOn trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified FRU (Field Replaceable Unit) has been + powered on in the chassis." + ::= { jnxChassisTraps 8 } + + jnxFruFailed NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "This indicates the specified FRU (Field Replaceable Unit) + has failed in the chassis. Most probably this is due toi + some hard error such as fru is not powering up or not + able to load ukernel. In these cases, fru is replaced." + ::= { jnxChassisTraps 9 } + + jnxFruOffline NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot, + jnxFruOfflineReason, + jnxFruLastPowerOff, + jnxFruLastPowerOn } + STATUS current + DESCRIPTION + "A jnxFruOffline trap signifies that the SNMP + entity, acting in an agent role, has detected + that the specified FRU (Field Replaceable Unit) + has gone offline in the chassis." + ::= { jnxChassisTraps 10 } + + jnxFruOnline NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxFruOnline trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified FRU (Field Replaceable Unit) has + gone online in the chassis." + ::= { jnxChassisTraps 11 } + + jnxFruCheck NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxFruCheck trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified FRU (Field Replaceable Unit) has + encountered some operational errors and gone into + check state in the chassis." + ::= { jnxChassisTraps 12 } + + jnxFEBSwitchover NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxFEBSwitchover trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified FEB (Forwarding Engine Board) has + switched over." + ::= { jnxChassisTraps 13 } + + + jnxHardDiskFailed NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxHardDiskFailed trap signifies that the SNMP + entity, acting in an agent role, has detected that + the Disk in the specified Routing Engine has + encountered some operational errors and gone into + failed state in the chassis." + ::= { jnxChassisTraps 14 } + + jnxHardDiskMissing NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A DiskMissing trap signifies that the SNMP + entity, acting in an agent role, has detected that + hard disk in the specified outing Engine is missing + from boot device list." + ::= { jnxChassisTraps 15 } + + jnxBootFromBackup NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxBootFromBackup trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified routing-engine/member has booted from + the back up root partition" + ::= { jnxChassisTraps 16 } + + jnxFmLinkErr NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A LinkErr trap signifies that the SNMP + entity, acting in an agent role, has detected + link errors." + ::= { jnxChassisTraps 17 } + + jnxFmCellDropErr NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A CellDropErr trap signifies that the SNMP + entity, acting in an agent role, has detected + cell drop errors." + ::= { jnxChassisTraps 18 } + + jnxExtSrcLockLost NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A ExtSrcLockLost trap signifies that the SNMP + entity, acting in an agent role, has detected that + a lock for an external clock source has been lost." + ::= { jnxChassisTraps 19 } + + + -- Traps for chassis alarm cleared conditions + + jnxPowerSupplyOK NOTIFICATION-TYPE + OBJECTS { jnxContentsContainerIndex, + jnxContentsL1Index, + jnxContentsL2Index, + jnxContentsL3Index, + jnxContentsDescr, + jnxOperatingState } + STATUS current + DESCRIPTION + "A jnxPowerSupplyOK trap signifies that the + SNMP entity, acting in an agent role, has + detected that the specified power supply in the + chassis has recovered from the failure (bad DC output) + condition." + ::= { jnxChassisOKTraps 1 } + + jnxFanOK NOTIFICATION-TYPE + OBJECTS { jnxContentsContainerIndex, + jnxContentsL1Index, + jnxContentsL2Index, + jnxContentsL3Index, + jnxContentsDescr, + jnxOperatingState } + STATUS current + DESCRIPTION + "A jnxFanOK trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified cooling fan or impeller in the chassis + has recovered from the failure (not spinning) condition." + ::= { jnxChassisOKTraps 2 } + + jnxTemperatureOK NOTIFICATION-TYPE + OBJECTS { jnxContentsContainerIndex, + jnxContentsL1Index, + jnxContentsL2Index, + jnxContentsL3Index, + jnxContentsDescr, + jnxOperatingTemp } + STATUS current + DESCRIPTION + "A jnxTemperatureOK trap signifies that the + SNMP entity, acting in an agent role, has + detected that the specified hardware component + in the chassis has recovered from over temperature + condition." + ::= { jnxChassisOKTraps 3 } + + jnxFruOK NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A jnxFruOK trap signifies that the SNMP + entity, acting in an agent role, has detected that + the specified FRU (Field Replaceable Unit) has + recovered from previous operational errors and it + is in ok state in the chassis." + ::= { jnxChassisOKTraps 4 } + + jnxExtSrcLockAcquired NOTIFICATION-TYPE + OBJECTS { jnxFruContentsIndex, + jnxFruL1Index, + jnxFruL2Index, + jnxFruL3Index, + jnxFruName, + jnxFruType, + jnxFruSlot } + STATUS current + DESCRIPTION + "A ExtSrcLockAcquired trap signifies that the SNMP + entity, acting in an agent role, has detected that + a lock for an external clock source has been acquired." + ::= { jnxChassisOKTraps 5 } + + +END diff --git a/pandora_console/attachment/mibs/JUNIPER-SMI b/pandora_console/attachment/mibs/JUNIPER-SMI new file mode 100644 index 0000000000..47c1dda303 --- /dev/null +++ b/pandora_console/attachment/mibs/JUNIPER-SMI @@ -0,0 +1,266 @@ +-- +-- Juniper Enterprise Specific MIB: Structure of Management Information +-- +-- Copyright (c) 2002-2010, Juniper Networks, Inc. +-- All rights reserved. +-- +-- The contents of this document are subject to change without notice. +-- + + +JUNIPER-SMI DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-IDENTITY, enterprises + FROM SNMPv2-SMI; + +juniperMIB MODULE-IDENTITY + LAST-UPDATED "201007090000Z" + ORGANIZATION "Juniper Networks, Inc." + CONTACT-INFO + " Juniper Technical Assistance Center + Juniper Networks, Inc. + 1194 N. Mathilda Avenue + Sunnyvale, CA 94089 + E-mail: support@juniper.net" + DESCRIPTION + "The Structure of Management Information for Juniper Networks." + REVISION "201007090000Z" -- Jul 09, 2010 + DESCRIPTION + "Added jnxLicenseMibRoot branch." + REVISION "200910290000Z" -- Oct 29, 2009 + DESCRIPTION + "Added jnxCosNotifications branch." + REVISION "201006180000Z" -- Jun 18, 2010 + DESCRIPTION + "Added jnxLicenseMibRoot branch." + REVISION "200304170100Z" -- 17-Apr-03 + DESCRIPTION + "Added jnxExperiment branch." + REVISION "200508170100Z" -- 17-Aug-05 + DESCRIPTION + "Added jnxNsm branch." + REVISION "200612140100Z" -- 14-Dec-06 + DESCRIPTION + "Added jnxCA branch." + REVISION "200701010000Z" -- 1-Jan-07 + DESCRIPTION + "Added jnxUtilMibRoot branch." + REVISION "200710090000Z" -- 9-Oct-07 + DESCRIPTION + "Added jnxAdvancedInsightMgr branch." + REVISION "200912310000Z" -- 31-Dec-09 + DESCRIPTION + "Added jnxBxMibRoot branch." + REVISION "201007140000Z" -- 14-Jul-10 + DESCRIPTION + "Added jnxSubscriberMibRoot branch." + REVISION "201101260000Z" -- 26-Jan-11 + DESCRIPTION + "Added jnxDcfMibRoot branch." + REVISION "201202100000Z" -- 10-Feb-12 + DESCRIPTION + "Added jnxMediaFlow branch." + ::= { enterprises 2636 } + +-- +-- Juniper MIB tree structure +-- + +jnxProducts OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The root of Juniper's Product OIDs." + ::= { juniperMIB 1 } + + -- + -- Note, jnxProducts.1 is reserved for Junos-based products + -- + -- The following OIDs are used as the basis for identifying other + -- Juniper products. + -- + -- jnxMediaFlow refers to the root MIB object for Juniper's + -- Media Flow Controller, a non-JUNOS based product. + jnxMediaFlow OBJECT IDENTIFIER ::= { jnxProducts 2 } + + -- + -- Top-level object identifier registry used by the JunosSpace Products. + + --#if REL13.1 + jnxJunosSpace OBJECT IDENTIFIER ::= { jnxProducts 3 } + + jnxReservedProducts3 OBJECT IDENTIFIER ::= { jnxProducts 4 } + jnxReservedProducts4 OBJECT IDENTIFIER ::= { jnxProducts 5 } + jnxReservedProducts5 OBJECT IDENTIFIER ::= { jnxProducts 6 } + + + +jnxServices OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The root of Juniper's Services OIDs." + ::= { juniperMIB 2 } + +jnxMibs OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The root of Juniper's MIB objects." + ::= { juniperMIB 3 } + + -- + -- Note, jnxMibs.1-38 is already in use. + -- + jnxJsMibRoot OBJECT IDENTIFIER ::= { jnxMibs 39 } + jnxExMibRoot OBJECT IDENTIFIER ::= { jnxMibs 40 } + jnxWxMibRoot OBJECT IDENTIFIER ::= { jnxMibs 41 } + jnxDcfMibRoot OBJECT IDENTIFIER ::= { jnxMibs 42 } + jnxReservedMibs5 OBJECT IDENTIFIER ::= { jnxMibs 43 } + + -- PFE data + jnxPfeMibRoot OBJECT IDENTIFIER ::= { jnxMibs 44 } + + -- juniper Bfd Mib + jnxBfdMibRoot OBJECT IDENTIFIER ::= { jnxMibs 45 } + + -- XSTP mibs + jnxXstpMibs OBJECT IDENTIFIER ::= { jnxMibs 46 } + + -- juniper Utility Mib + jnxUtilMibRoot OBJECT IDENTIFIER ::= { jnxMibs 47 } + + -- juniper l2ald Mib + jnxl2aldMibRoot OBJECT IDENTIFIER ::= { jnxMibs 48 } + + -- juniper L2tp Mib + jnxL2tpMibRoot OBJECT IDENTIFIER ::= { jnxMibs 49 } + + -- juniper RPM Mib + jnxRpmMibRoot OBJECT IDENTIFIER ::= { jnxMibs 50 } + + -- juniper User AAA Mib + jnxUserAAAMibRoot OBJECT IDENTIFIER ::= { jnxMibs 51 } + + -- juniper Generic IPSEC MIB + jnxIpSecMibRoot OBJECT IDENTIFIER ::= { jnxMibs 52 } + + -- juniper L2 control protocols MIB + jnxL2cpMibRoot OBJECT IDENTIFIER ::= { jnxMibs 53 } + + -- juniper pwTDM MIB + jnxPwTdmMibRoot OBJECT IDENTIFIER ::= { jnxMibs 54 } + + -- juniper pwTC MIB + jnxPwTCMibRoot OBJECT IDENTIFIER ::= { jnxMibs 55 } + + -- juniper OTN MIB + jnxOtnMibRoot OBJECT IDENTIFIER ::= { jnxMibs 56 } + + -- juniper power supply management MIB + jnxPsuMIBRoot OBJECT IDENTIFIER ::= { jnxMibs 58 } + + -- juniper NAT MIB + jnxSvcsMibRoot OBJECT IDENTIFIER ::= { jnxMibs 59 } + + -- juniper DOM MIB + jnxDomMibRoot OBJECT IDENTIFIER ::= { jnxMibs 60 } + + -- juniper JDHCPD MIB Release 10.4 + jnxJdhcpMibRoot OBJECT IDENTIFIER ::= { jnxMibs 61 } + + -- juniper JDHCPDv6 MIB Release 10.4 + jnxJdhcpv6MibRoot OBJECT IDENTIFIER ::= { jnxMibs 62 } + + -- juniper License management MIB + jnxLicenseMibRoot OBJECT IDENTIFIER ::= { jnxMibs 63 } + + -- juniper Subscriber MIB + jnxSubscriberMibRoot OBJECT IDENTIFIER ::= { jnxMibs 64 } + + --#if REL11.1 + -- juniper MAG MIB + jnxMagMibRoot OBJECT IDENTIFIER ::= { jnxMibs 65 } + + --#if REL12.3 + -- Root of juniper MobileGateway MIBs + jnxMobileGatewayMibRoot OBJECT IDENTIFIER ::= { jnxMibs 66 } + + --#if REL11.4 + -- juniper PPPOE MIB + jnxPppoeMibRoot OBJECT IDENTIFIER ::= { jnxMibs 67 } + + --#if REL11.4 + -- juniper PPP MIB + jnxPppMibRoot OBJECT IDENTIFIER ::= { jnxMibs 68 } + + + +jnxTraps OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The root of Juniper's Trap OIDs." + ::= { juniperMIB 4 } + + jnxChassisTraps OBJECT IDENTIFIER ::= { jnxTraps 1 } + jnxChassisOKTraps OBJECT IDENTIFIER ::= { jnxTraps 2 } + jnxRmonTraps OBJECT IDENTIFIER ::= { jnxTraps 3 } + jnxLdpTraps OBJECT IDENTIFIER ::= { jnxTraps 4 } + jnxCmNotifications OBJECT IDENTIFIER ::= { jnxTraps 5 } + jnxSonetNotifications OBJECT IDENTIFIER ::= { jnxTraps 6 } + jnxPMonNotifications OBJECT IDENTIFIER ::= { jnxTraps 7 } + jnxCollectorNotifications OBJECT IDENTIFIER ::= { jnxTraps 8 } + jnxPingNotifications OBJECT IDENTIFIER ::= { jnxTraps 9 } + jnxSpNotifications OBJECT IDENTIFIER ::= { jnxTraps 10 } + jnxDfcNotifications OBJECT IDENTIFIER ::= { jnxTraps 11 } + jnxSyslogNotifications OBJECT IDENTIFIER ::= { jnxTraps 12 } + jnxEventNotifications OBJECT IDENTIFIER ::= { jnxTraps 13 } + jnxVccpNotifications OBJECT IDENTIFIER ::= { jnxTraps 14 } + jnxOtnNotifications OBJECT IDENTIFIER ::= { jnxTraps 15 } + -- jnxSAIDPNotifications is for Stand alone IDP devices + jnxSAIDPNotifications OBJECT IDENTIFIER ::= { jnxTraps 16 } + jnxCosNotifications OBJECT IDENTIFIER ::= { jnxTraps 17 } + jnxDomNotifications OBJECT IDENTIFIER ::= { jnxTraps 18 } + + +-- This is the top-level object identifier registry used by Juniper +-- products for SNMP modules containing experimental MIB definitions. +-- In this context, experimental MIBs are defined as: +-- 1) IETF work-in-process MIBs which have not been assigned a permanent +-- object identifier by the IANA. +-- 2) Juniper work-in-process MIBs that have not achieved final +-- production quality or field experience. +-- NOTE: Support for MIBs under the this OID subtree is temporary and +-- changes to objects may occur without notice." + +jnxExperiment OBJECT IDENTIFIER ::= { juniperMIB 5 } + +-- +-- This is the top-level object identifier registry used by Juniper +-- NSM products. +-- +jnxNsm OBJECT IDENTIFIER ::= { juniperMIB 6 } + +-- +-- This is the top-level object identifier registry used by the +-- JuniperRoot Certificate Authority. +-- +jnxCA OBJECT IDENTIFIER ::= { juniperMIB 7 } + +-- +-- This is the top-level object identifier registry used by the +-- Carrier AAA software product (Parksteet). +-- +jnxAAA OBJECT IDENTIFIER ::= { juniperMIB 8 } + +-- +-- This is the top-level object identifier registry used by the +-- Advanced Insight Manager. +-- +jnxAdvancedInsightMgr OBJECT IDENTIFIER ::= { juniperMIB 9 } + +-- +-- This is the top-level object identifier registry used by the +-- BX series Products. +-- +jnxBxMibRoot OBJECT IDENTIFIER ::= { juniperMIB 10 } + +END diff --git a/pandora_console/attachment/mibs/MIB-Dell-10892 b/pandora_console/attachment/mibs/MIB-Dell-10892 new file mode 100644 index 0000000000..663dca2e53 --- /dev/null +++ b/pandora_console/attachment/mibs/MIB-Dell-10892 @@ -0,0 +1,14508 @@ +------------------------------------------------------------------------------- +-- +-- Title: Systems Management Instrumentation MIB +-- +-- Version: 5.9.0 +-- +-- Release Date: February 2009 +-- +-- Description: This MIB defines MIB objects that make system instrumentation +-- data available to SNMP management applications. +-- +-- Copyright (c) 2000-2009 Dell Inc. +-- All Rights Reserved. +-- +-- Note: The information and functionality described by this MIB file, +-- like many MIB files, is subject to change without notice. +-- Please examine the version number of this MIB and compare it +-- to the version number you are expecting. +-- +-- OID Format Legend: +-- = attribute ID +-- = index ID +-- +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Begin MIB +------------------------------------------------------------------------------- + +MIB-Dell-10892 DEFINITIONS ::= BEGIN + +IMPORTS + enterprises, IpAddress + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + TRAP-TYPE + FROM RFC-1215 + DisplayString + FROM RFC1213-MIB; + + +------------------------------------------------------------------------------- +-- Object Identifiers +------------------------------------------------------------------------------- + +-- Enterprise ID +dell OBJECT IDENTIFIER ::= { enterprises 674 } + +-- Server3 Branch +server3 OBJECT IDENTIFIER ::= { dell 10892 } + +-- Server3 Groups +baseboardGroup OBJECT IDENTIFIER ::= { server3 1 } +-- drsOutOfBandGroup OBJECT IDENTIFIER ::= { server3 2 } +-- (drsOutOfBandGroup is defined in another MIB file.) + +-- Server3 Baseboard Groups for Instrumentation +mIBVersionGroup OBJECT IDENTIFIER ::= { baseboardGroup 1 } +systemManagementSoftwareGroup OBJECT IDENTIFIER ::= { baseboardGroup 100 } +systemStateGroup OBJECT IDENTIFIER ::= { baseboardGroup 200 } +chassisInformationGroup OBJECT IDENTIFIER ::= { baseboardGroup 300 } +operatingSystemGroup OBJECT IDENTIFIER ::= { baseboardGroup 400 } +systemResourceGroup OBJECT IDENTIFIER ::= { baseboardGroup 500 } +powerGroup OBJECT IDENTIFIER ::= { baseboardGroup 600 } +thermalGroup OBJECT IDENTIFIER ::= { baseboardGroup 700 } +userSecurityGroup OBJECT IDENTIFIER ::= { baseboardGroup 800 } +remoteFlashBIOSGroup OBJECT IDENTIFIER ::= { baseboardGroup 900 } +portGroup OBJECT IDENTIFIER ::= { baseboardGroup 1000 } +deviceGroup OBJECT IDENTIFIER ::= { baseboardGroup 1100 } +slotGroup OBJECT IDENTIFIER ::= { baseboardGroup 1200 } +memoryGroup OBJECT IDENTIFIER ::= { baseboardGroup 1300 } +biosSetUpControlGroup OBJECT IDENTIFIER ::= { baseboardGroup 1400 } +lraGroup OBJECT IDENTIFIER ::= { baseboardGroup 1500 } +cooGroup OBJECT IDENTIFIER ::= { baseboardGroup 1600 } +-- remoteAccessGroup OBJECT IDENTIFIER ::= { baseboardGroup 1700 } +-- (remoteAccessGroup is defined in dcs3rmt.mib) +clusterGroup OBJECT IDENTIFIER ::= { baseboardGroup 1800 } +bmcGroup OBJECT IDENTIFIER ::= { baseboardGroup 1900 } +-- fruGroup OBJECT IDENTIFIER ::= { baseboardGroup 2000 } +-- (fruGroup is defined in dcs3fru.mib) +alertGroup OBJECT IDENTIFIER ::= { baseboardGroup 5000 } + + +------------------------------------------------------------------------------- +-- Textual Conventions +------------------------------------------------------------------------------- + +DellString ::= DisplayString (SIZE (0..64)) +DellSecurityString ::= DisplayString (SIZE (0..255)) +DellCostofOwnershipString ::= DisplayString (SIZE (0..64)) +DellMACAddress ::= OCTET STRING (SIZE(6)) +DellObjectRange ::= INTEGER (1..128) +DellUnsigned8BitRange ::= INTEGER (0..255) +DellUnsigned16BitRange ::= INTEGER (0..65535) +DellUnsigned32BitRange ::= INTEGER (0..4294967295) +DellSigned32BitRange ::= INTEGER (-2147483647..2147483647) +DellBoolean ::= INTEGER (0..1) -- 0 = FALSE, 1 = TRUE + +-- This definition is required because SNMP V1 does not support 64 bit ranges. +-- The information sent back by this subagent will have the most significant +-- byte of the information as the first byte (i.e. network byte order). +-- E.G. The integer value 0x1029384754657687 will be sent as: +-- Byte: 1 2 3 4 ... +-- Hex: 10 29 38 47 ... +-- Binary: 0001 0000 0010 1001 0011 1000 0100 0111 ... +DellUnsigned64BitRange ::= OCTET STRING (SIZE(8)) + +-- DellDateName dates are defined in the displayable format +-- yyyymmddHHMMSS.uuuuuu+ooo +-- where yyyy is the year, mm is the month number, dd is the day of the month, +-- HHMMSS are the hours, minutes and seconds, respectively, uuuuuu is the +-- number of microseconds, and +ooo is the offset from UTC in minutes. If east +-- of UTC, the number is preceded by a plus (+) sign, and if west of UTC, the +-- number is preceded by a minus (-) sign. +-- +-- For example, Wednesday, May 25, 1994, at 1:30:15 PM EDT +-- would be represented as: 19940525133015.000000-300 +-- +-- Values must be zero-padded if necessary, like "05" in the example above. +-- If a value is not supplied for a field, each character in the field +-- must be replaced with asterisk ('*') characters. +DellDateName ::= DisplayString (SIZE (25)) + +-- Note About Bit Fields: +-- Attributes with definitions of xxxCapabilities, xxxCapabilitiesUnique, +-- xxxSettings, xxxSettingsUnique and xxxFeatureFlags are integers +-- representing a series of bit definitions. They are NOT enumerations and +-- should be treated as bit fields. The value is passed as a decimal value; +-- it should be converted to hex, and the appropriate bits should be parsed +-- from that. Some of the more common bit combinations are defined in some +-- variables, but not all combinations are or will be defined. + +-- +-- Generic State Capabilities +-- +DellStateCapabilities ::= INTEGER { + -- If set to 0 (zero), object has no state capabilities + unknownCapabilities(1), -- object's state capabilities are unknown + -- The object's state capabilities allow it to be set to: + enableCapable(2), -- be disabled (offline) or be enabled (online) + notReadyCapable(4), -- not ready + enableAndNotReadyCapable(6) +} + +-- +-- Generic State Settings +-- +DellStateSettings ::= INTEGER { + -- If set to 0 (zero), object has no state settings enabled and is disabled + unknown(1), -- object's state is unknown + enabled(2), -- object's state is disabled (offline) if bit is off + -- or enabled (online) if bit is on + notReady(4), -- object's state is not ready + enabledAndNotReady(6) +} + +-- +-- Probe Capabilities +-- +DellProbeCapabilities ::= INTEGER { + -- If set to 0 (zero) the object has no probe capabilities + -- The object's probe capabilities allow it to be set to: + upperNonCriticalThresholdSetCapable(1), -- upper noncritical threshold can be set + lowerNonCriticalThresholdSetCapable(2), -- lower noncritical threshold can be set + upperNonCriticalThresholdDefaultCapable(4), -- upper noncritical threshold can be set to default + lowerNonCriticalThresholdDefaultCapable(8) -- lower noncritical threshold can be set to default +} + +-- +-- Status +-- +DellStatus ::= INTEGER { + other(1), -- status is not one of the following: + unknown(2), -- status of object is unknown (not known or monitored) + ok(3), -- status of object is OK (normal) + nonCritical(4), -- status of object is noncritical (warning) + critical(5), -- status of object is critical (failure) + nonRecoverable(6) -- status of object is non-recoverable (dead) +} + +-- +-- Redundancy Status +-- +DellStatusRedundancy ::= INTEGER { + other(1), -- redundancy status is not one of the following: + unknown(2), -- redundancy status is unknown (not known or monitored) + full(3), -- object is fully redundant + degraded(4), -- object's redundancy has been degraded + lost(5), -- object's redundancy has been lost + notRedundant(6), -- redundancy status does not apply or object is not redundant + redundancyOffline(7) -- redundancy object taken offline +} + +-- +-- Probe Status +-- +DellStatusProbe ::= INTEGER { + other(1), -- probe status is not one of the following: + unknown(2), -- probe status is unknown (not known or monitored) + ok(3), -- probe is reporting a value within the thresholds + nonCriticalUpper(4), -- probe has crossed upper noncritical threshold + criticalUpper(5), -- probe has crossed upper critical threshold + nonRecoverableUpper(6), -- probe has crossed upper non-recoverable threshold + nonCriticalLower(7), -- probe has crossed lower noncritical threshold + criticalLower(8), -- probe has crossed lower critical threshold + nonRecoverableLower(9), -- probe has crossed lower non-recoverable threshold + failed(10) -- probe is not functional +} + + +------------------------------------------------------------------------------- +-- +-- MIB Groups +-- +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- MIB Version Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1..0 +------------------------------------------------------------------------------- + +mIBMajorVersionNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0001.0001 This attribute defines the major version number for the version +of this MIB supported by the systems management software." + ::= { mIBVersionGroup 1 } +mIBMinorVersionNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0001.0002 This attribute defines the minor version number for the version +of this MIB supported by the systems management software." + ::= { mIBVersionGroup 2 } +mIBMaintenanceVersionNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0001.0003 This attribute defines the maintenance version number for the +version of this MIB supported by the systems management software." + ::= { mIBVersionGroup 3 } + + +------------------------------------------------------------------------------- +-- System Management Software Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.100..0 +------------------------------------------------------------------------------- + +SMSSupportedTypes ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + supportsSNMP(1), -- supports SNMP + supportsDMI(2), -- supports DMI + supportsSNMPandDMI(3), -- supports SNMP and DMI + supportsCIMOM(4), -- supports CIM + supportsSNMPandCIMOM(5), -- supports SNMP and CIM + supportsSNMPandDMIandCIMOM(7) -- supports SNMP, DMI and CIM +} +SMSFeatureFlags ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- If 0 (zero), none of the following features are enabled: + webOneToOneManagementPreferred(1) -- web 1:1 management preferred +} +SMSSNMPAgentFeatureFlags ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- If 0 (zero), none of the following features are enabled: + supportsSparseTables(1) -- SNMP agent supports sparse tables +} + +systemManagementSoftwareName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0001 This attribute defines the product name of the +systems management software." + ::= { systemManagementSoftwareGroup 1 } +systemManagementSoftwareVersionNumberName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0002 This attribute defines the version number of the +instrumentation component of the systems management software." + ::= { systemManagementSoftwareGroup 2 } +systemManagementSoftwareBuildNumber OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0003 This attribute defines the build number of the +instrumentation component of the systems management software." + ::= { systemManagementSoftwareGroup 3 } +systemManagementSoftwareDescriptionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0004 This attribute defines the description of the +systems management software." + ::= { systemManagementSoftwareGroup 4 } +systemManagementSoftwareSupportedProtocol OBJECT-TYPE + SYNTAX SMSSupportedTypes + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0005 This attribute defines the protocols supported by the +instrumentation component of the systems management software." + ::= { systemManagementSoftwareGroup 5 } +systemManagementSoftwarePreferredProtocol OBJECT-TYPE + SYNTAX SMSSupportedTypes + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0006 This attribute defines the protocol preferred by the +instrumentation component of the systems management software." + ::= { systemManagementSoftwareGroup 6 } +systemManagementSoftwareUpdateLevelName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0007 This attribute defines the update level of the +instrumentation component of the systems management software." + ::= { systemManagementSoftwareGroup 7 } +systemManagementSoftwareURLName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0008 This attribute defines the Universal Resource Locator (URL) +of the systems management software." + ::= { systemManagementSoftwareGroup 8 } +systemManagementSoftwareLanguageName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0009 This attribute defines the language of the +systems management software." + ::= { systemManagementSoftwareGroup 9 } +systemManagementSoftwareGlobalVersionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0010 This attribute defines the global version of the +systems management software." + ::= { systemManagementSoftwareGroup 10 } +systemManagementSoftwareFeatureFlags OBJECT-TYPE + SYNTAX SMSFeatureFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0011 This attribute defines the features of the systems management +software. If the value is zero, none of the features are enabled. +Note: This attribute is a bit field, so the value returned may be +a combination of the bit masks defined in SMSFeatureFlags." + ::= { systemManagementSoftwareGroup 11 } +systemManagementSoftwareSNMPAgentFeatureFlags OBJECT-TYPE + SYNTAX SMSSNMPAgentFeatureFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0012 This attribute defines the features of the SNMP agent +software provided by the operating system. If the value is zero, +none of the features are enabled. Note: This attribute is a bit field, +so the value returned may be a combination of the bit masks defined +in SMSSNMPAgentFeatureFlags." + ::= { systemManagementSoftwareGroup 12 } +systemManagementSoftwareManufacturerName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0100.0013 This attribute defines the manufacturer of the +systems management software." + ::= { systemManagementSoftwareGroup 13 } + + +------------------------------------------------------------------------------- +-- System State Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.200 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- System State Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.200.10.1.. +------------------------------------------------------------------------------- + +SystemStateTableEntry ::= SEQUENCE { + systemStatechassisIndex DellObjectRange, + systemStateGlobalSystemStatus DellStatus, + systemStateChassisState DellStateSettings, + systemStateChassisStatus DellStatus, + systemStatePowerUnitStateDetails OCTET STRING (SIZE(1..128)), + systemStatePowerUnitStatusRedundancy DellStatusRedundancy, + systemStatePowerUnitStatusDetails OCTET STRING (SIZE(1..128)), + systemStatePowerSupplyStateDetails OCTET STRING (SIZE(1..128)), + systemStatePowerSupplyStatusCombined DellStatus, + systemStatePowerSupplyStatusDetails OCTET STRING (SIZE(1..128)), + systemStateVoltageStateDetails OCTET STRING (SIZE(1..128)), + systemStateVoltageStatusCombined DellStatus, + systemStateVoltageStatusDetails OCTET STRING (SIZE(1..128)), + systemStateAmperageStateDetails OCTET STRING (SIZE(1..128)), + systemStateAmperageStatusCombined DellStatus, + systemStateAmperageStatusDetails OCTET STRING (SIZE(1..128)), + systemStateCoolingUnitStateDetails OCTET STRING (SIZE(1..128)), + systemStateCoolingUnitStatusRedundancy DellStatusRedundancy, + systemStateCoolingUnitStatusDetails OCTET STRING (SIZE(1..128)), + systemStateCoolingDeviceStateDetails OCTET STRING (SIZE(1..128)), + systemStateCoolingDeviceStatusCombined DellStatus, + systemStateCoolingDeviceStatusDetails OCTET STRING (SIZE(1..128)), + systemStateTemperatureStateDetails OCTET STRING (SIZE(1..128)), + systemStateTemperatureStatusCombined DellStatus, + systemStateTemperatureStatusDetails OCTET STRING (SIZE(1..128)), + systemStateMemoryDeviceStateDetails OCTET STRING (SIZE(1..128)), + systemStateMemoryDeviceStatusCombined DellStatus, + systemStateMemoryDeviceStatusDetails OCTET STRING (SIZE(1..128)), + systemStateChassisIntrusionStateDetails OCTET STRING (SIZE(1..128)), + systemStateChassisIntrusionStatusCombined DellStatus, + systemStateChassisIntrusionStatusDetails OCTET STRING (SIZE(1..128)), + systemStateACPowerSwitchStateDetails OCTET STRING (SIZE(1..128)), + systemStateACPowerSwitchStatusRedundancy DellStatusRedundancy, + systemStateACPowerSwitchStatusDetails OCTET STRING (SIZE(1..128)), + systemStateACPowerCordStateDetails OCTET STRING (SIZE(1..128)), + systemStateACPowerCordStatusCombined DellStatus, + systemStateACPowerCordStatusDetails OCTET STRING (SIZE(1..128)), + systemStateRedundantMemoryUnitStateDetails OCTET STRING (SIZE(1..128)), + systemStateRedundantMemoryUnitStatusRedundancy DellStatusRedundancy, + systemStateRedundantMemoryUnitStatusDetails OCTET STRING (SIZE(1..128)), + systemStateEventLogStatus DellStatus, + systemStatePowerUnitStatusCombined DellStatus, + systemStatePowerUnitStatusList OCTET STRING (SIZE(1..128)), + systemStateCoolingUnitStatusCombined DellStatus, + systemStateCoolingUnitStatusList OCTET STRING (SIZE(1..128)), + systemStateACPowerSwitchStatusCombined DellStatus, + systemStateACPowerSwitchStatusList OCTET STRING (SIZE(1..128)), + systemStateRedundantMemoryUnitStatusCombined DellStatus, + systemStateRedundantMemoryUnitStatusList OCTET STRING (SIZE(1..128)), + systemStateProcessorDeviceStatusCombined DellStatus, + systemStateProcessorDeviceStatusList OCTET STRING (SIZE(1..128)), + systemStateBatteryStatusCombined DellStatus, + systemStateBatteryStatusList OCTET STRING (SIZE(1..128)) +} + +systemStateTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemStateTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0200.0010 This object defines the System State Table." + ::= { systemStateGroup 10 } +systemStateTableEntry OBJECT-TYPE + SYNTAX SystemStateTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0200.0010.0001 This object defines the System State Table Entry." + INDEX { systemStatechassisIndex } + ::= { systemStateTable 1 } + +systemStatechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0001 This attribute defines the index (one based) of this +chassis." + ::= { systemStateTableEntry 1 } +systemStateGlobalSystemStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0002 This attribute defines the global system status +of all chassis being monitored by the systems management software." + ::= { systemStateTableEntry 2 } +systemStateChassisState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0003 This attribute defines the state settings of this +chassis." + ::= { systemStateTableEntry 3 } +systemStateChassisStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0004 This attribute defines the status of this chassis." + ::= { systemStateTableEntry 4 } +systemStatePowerUnitStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0005 This attribute lists the state settings of each +power unit of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of a power unit. The first byte returned represents the state settings +of the first power unit, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 5 } +systemStatePowerUnitStatusRedundancy OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0006 This attribute defines the combined redundancy status +of all power units of this chassis." + ::= { systemStateTableEntry 6 } +systemStatePowerUnitStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0007 This attribute lists the redundancy status of each +power unit of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the redundancy status +of a power unit. The first byte returned represents the redundancy status +of the first power unit, etc. The bytes have the same definition type as +DellStatusRedundancy." + ::= { systemStateTableEntry 7 } +systemStatePowerSupplyStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0008 This attribute lists the state settings of each +power supply of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of a power supply. The first byte returned represents the state settings +of the first power supply, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 8 } +systemStatePowerSupplyStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0009 This attribute defines the combined status of all +power supplies of this chassis." + ::= { systemStateTableEntry 9 } +systemStatePowerSupplyStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0010 This attribute lists the status of each power supply +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of a power supply. +The first byte returned represents the status of the first power supply, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 10 } +systemStateVoltageStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0011 This attribute lists the state settings of each +voltage probe of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of a voltage probe. The first byte returned represents the state settings +of the first voltage probe, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 11 } +systemStateVoltageStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0012 This attribute defines the combined status of all +voltage probes of this chassis." + ::= { systemStateTableEntry 12 } +systemStateVoltageStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0013 This attribute lists the status of each voltage probe +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of a voltage probe. +The first byte returned represents the status of the first voltage probe, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 13 } +systemStateAmperageStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0014 This attribute lists the state settings of each +amperage probe of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of an amperage probe. The first byte returned represents the state settings +of the first amperage probe, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 14 } +systemStateAmperageStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0015 This attribute defines the combined status of all +amperage probes of this chassis." + ::= { systemStateTableEntry 15 } +systemStateAmperageStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0016 This attribute lists the status of each amperage probe +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of an amperage probe. +The first byte returned represents the status of the first amperage probe, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 16 } +systemStateCoolingUnitStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0017 This attribute lists the state settings of each +cooling unit of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of a cooling unit. The first byte returned represents the state settings +of the first cooling unit, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 17 } +systemStateCoolingUnitStatusRedundancy OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0018 This attribute defines the combined redundancy status +of all cooling units of this chassis." + ::= { systemStateTableEntry 18 } +systemStateCoolingUnitStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only STATUS mandatory + DESCRIPTION +"0200.0010.0001.0019 This attribute lists the redundancy status of each +cooling unit of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the redundancy status +of a cooling unit. The first byte returned represents the redundancy status +of the first cooling unit, etc. The bytes have the same definition type as +DellStatusRedundancy." + ::= { systemStateTableEntry 19 } +systemStateCoolingDeviceStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0020 This attribute lists the state settings of each +cooling device of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of a cooling device. The first byte returned represents the state settings +of the first cooling device, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 20 } +systemStateCoolingDeviceStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0021 This attribute defines the combined status of all +cooling devices of this chassis." + ::= { systemStateTableEntry 21 } +systemStateCoolingDeviceStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0022 This attribute lists the status of each cooling device +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of a cooling device. +The first byte returned represents the status of the first cooling device, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 22 } +systemStateTemperatureStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0023 This attribute lists the state settings of each +temperature probe of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of a temperature probe. The first byte returned represents the state settings +of the first temperature probe, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 23 } +systemStateTemperatureStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0024 This attribute defines the combined status of all +temperature probes of this chassis." + ::= { systemStateTableEntry 24 } +systemStateTemperatureStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0025 This attribute lists the status of each temperature probe +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of a temperature probe. +The first byte returned represents the status of the first temperature probe, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 25 } +systemStateMemoryDeviceStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0026 This attribute lists the state settings of each +memory device of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of a memory device. The first byte returned represents the state settings +of the first memory device, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 26 } +systemStateMemoryDeviceStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0027 This attribute defines the combined status of all +memory devices of this chassis." + ::= { systemStateTableEntry 27 } +systemStateMemoryDeviceStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0028 This attribute lists the status of each memory device +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of a memory device. +The first byte returned represents the status of the first memory device, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 28 } +systemStateChassisIntrusionStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0029 This attribute lists the state settings of each +intrusion detection device of this chassis. The results are returned as +a binary octet string where each byte of the octet string represents the +state settings of an intrusion detection device. The first byte returned +represents the state settings of the first intrusion detection device, etc. +The bytes have the same definition type as DellStateSettings." + ::= { systemStateTableEntry 29 } +systemStateChassisIntrusionStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0030 This attribute defines the combined status of all +intrusion detection devices of this chassis." + ::= { systemStateTableEntry 30 } +systemStateChassisIntrusionStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0031 This attribute lists the status of each intrusion +detection device of this chassis. The results are returned as a binary +octet string where each byte of the octet string represents the status +of an intrusion detection device. The first byte returned represents the +status of the first intrusion detection device, etc. The bytes have the +same definition type as DellStatus." + ::= { systemStateTableEntry 31 } +systemStateACPowerSwitchStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0032 This attribute lists the state settings of each +AC power switch of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the state settings +of an AC power switch. The first byte returned represents the state settings +of the first AC power switch, etc. The bytes have the same definition type +as DellStateSettings." + ::= { systemStateTableEntry 32 } +systemStateACPowerSwitchStatusRedundancy OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0033 This attribute defines the combined redundancy status +of all AC power switches of this chassis." + ::= { systemStateTableEntry 33 } +systemStateACPowerSwitchStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0034 This attribute lists the redundancy status of each +AC power switch of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the redundancy status +of an AC power switch. The first byte returned represents the redundancy +status of the first AC power switch, etc. The bytes have the same definition +type as DellStatusRedundancy." + ::= { systemStateTableEntry 34 } +systemStateACPowerCordStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0035 This attribute lists the state settings of each +AC power cord associated with an AC power switch of this chassis. +The results are returned as a binary octet string where each byte of +the octet string represents the state settings of an AC power cord. +The first byte returned represents the state settings of the first +AC power cord, etc. The bytes have the same definition type as +DellStateSettings." + ::= { systemStateTableEntry 35 } +systemStateACPowerCordStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0036 This attribute defines the combined status of all +AC power cords for any AC power switches of this chassis." + ::= { systemStateTableEntry 36 } +systemStateACPowerCordStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0037 This attribute lists the status of each AC power cord +associated with an AC power switch of this chassis. The results are returned +as a binary octet string where each byte of the octet string represents +the status of an AC power cord. The first byte returned represents the status +of the first AC power cord, etc. The bytes have the same definition type +as DellStatus." + ::= { systemStateTableEntry 37 } +systemStateRedundantMemoryUnitStateDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0038 This attribute lists the state settings of each +redundant memory unit of this chassis. The results are returned as +a binary octet string where each byte of the octet string represents +the state settings of a redundant memory unit. The first byte returned +represents the state settings of the first redundant memory unit, etc. +The bytes have the same definition type as DellStateSettings." + ::= { systemStateTableEntry 38 } +systemStateRedundantMemoryUnitStatusRedundancy OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0039 This attribute defines the combined redundancy status +of all redundant memory units of this chassis." + ::= { systemStateTableEntry 39 } +systemStateRedundantMemoryUnitStatusDetails OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0040 This attribute lists the redundancy status of each +redundant memory unit of this chassis. The results are returned as a binary +octet string where each byte of the octet string represents the redundancy +status of a redundant memory unit. The first byte returned represents the +redundancy status of the first redundant memory unit, etc. The bytes have +the same definition type as DellStatusRedundancy." + ::= { systemStateTableEntry 40 } +systemStateEventLogStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0041 This attribute defines the overall status of the +(ESM) event log of this chassis." + ::= { systemStateTableEntry 41 } +systemStatePowerUnitStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0042 This attribute defines the combined status +of all power units of this chassis." + ::= { systemStateTableEntry 42 } +systemStatePowerUnitStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0043 This attribute lists the status of each +power unit of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the status +of a power unit. The first byte returned represents the status +of the first power unit, etc. The bytes have the same definition type +as DellStatus." + ::= { systemStateTableEntry 43 } +systemStateCoolingUnitStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0044 This attribute defines the combined status +of all cooling units of this chassis." + ::= { systemStateTableEntry 44 } +systemStateCoolingUnitStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0045 This attribute lists the status of each +cooling unit of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the status +of a cooling unit. The first byte returned represents the status +of the first cooling unit, etc. The bytes have the same definition type +as DellStatus." + ::= { systemStateTableEntry 45 } +systemStateACPowerSwitchStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0046 This attribute defines the combined status +of all AC power switches of this chassis." + ::= { systemStateTableEntry 46 } +systemStateACPowerSwitchStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0047 This attribute lists the status of each +AC power switch of this chassis. The results are returned as a binary octet +string where each byte of the octet string represents the status +of an AC power switch. The first byte returned represents the status +of the first AC power switch, etc. The bytes have the same definition type +as DellStatus." + ::= { systemStateTableEntry 47 } +systemStateRedundantMemoryUnitStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0048 This attribute defines the combined status +of all redundant memory units of this chassis." + ::= { systemStateTableEntry 48 } +systemStateRedundantMemoryUnitStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0049 This attribute lists the status of each +redundant memory unit of this chassis. The results are returned as a binary +octet string where each byte of the octet string represents the status +of a redundant memory unit. The first byte returned represents the status +of the first redundant memory unit, etc. The bytes have the same definition +type as DellStatus." + ::= { systemStateTableEntry 49 } +systemStateProcessorDeviceStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0050 This attribute defines the combined status of all +processor devices of this chassis." + ::= { systemStateTableEntry 50 } +systemStateProcessorDeviceStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0051 This attribute lists the status of each processor device +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of a processor device. +The first byte returned represents the status of the first processor device, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 51 } +systemStateBatteryStatusCombined OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0052 This attribute defines the combined status of all +batteries of this chassis." + ::= { systemStateTableEntry 52 } +systemStateBatteryStatusList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0200.0010.0001.0053 This attribute lists the status of each battery +of this chassis. The results are returned as a binary octet string where +each byte of the octet string represents the status of a battery. +The first byte returned represents the status of the first battery, +etc. The bytes have the same definition type as DellStatus." + ::= { systemStateTableEntry 53 } + + +------------------------------------------------------------------------------- +-- Chassis Information Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300 +------------------------------------------------------------------------------- + + +DellStateCapabilitiesLogUnique ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- log state capabilities are unknown + onlineCapable(2), -- log can be enabled (online) or disabled (offline) + notReadyCapable(4), -- log can be not ready + resetCapable(8) -- log can be reset +} +DellStateSettingsLogUnique ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- log state settings are unknown + online(2), -- log is enabled (online) + notReady(4), -- log is not ready + reset(8) -- reset log +} +DellLogFormat ::= INTEGER { + raw(1), -- format is Raw + ascii(2), -- format is ASCII + uniCode(3) -- format is Unicode +} + + +------------------------------------------------------------------------------- +-- Chassis Information Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.10.1.. +------------------------------------------------------------------------------- + +DellChassisType ::= INTEGER { + other(1), -- type is other than following values + unknown(2), -- type is unknown + desktop(3), -- type is Desktop + lowProfileDesktop(4), -- type is Low Profile Desktop + pizzaBox(5), -- type is Pizza Box + miniTower(6), -- type is MiniTower + tower(7), -- type is Tower + portable(8), -- type is Portable + lapTop(9), -- type is Laptop + noteBook(10), -- type is Notebook + handHeld(11), -- type is Handheld + dockingStation(12), -- type is Docking Station + allInOne(13), -- type is All-In-One + subNoteBook(14), -- type is SubNotebook + spaceSaving(15), -- type is Spacesaver + lunchBox(16), -- type is Lunchbox + mainSystemChassis(17), -- type is Main System Chassis + expansionChassis(18), -- type is Expansion Chassis + subChassis(19), -- type is SubChassis + busExpansionChassis(20), -- type is Bus Expansion Chassis + peripheralChassis(21), -- type is Peripheral Chassis + raidChassis(22), -- type is RAID Chassis + rackMountChassis(23), -- type is Rack-mounted Chassis + sealedCasePC(24), -- type is Sealed-case PC + multiSystemChassis(25) -- type is Multi-system Chassis +} +DellChassisSystemClass ::= INTEGER { + other(1), -- class is other than following values + unknown(2), -- class is unknown + workstationClass(3), -- class is Workstation + serverClass(4), -- class is Server + desktopClass(5), -- class is Desktop + portableClass(6), -- class is Portable + netPCClass(7), -- class is Net PC + storageClass(8) -- class is Storage +} +DellConnectionStatus ::= INTEGER { + unknown(2), -- status is unknown + ok(3), -- status is OK + failure(4) -- status is Failure +} +DellFanControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no Fan Control capabilities + unknown(1), -- fan control capabilities are unknown + lowSpeedCapable(2), -- fan can be set to low speed + highSpeedCapable(4), -- fan can be set to high speed + lowOrHighSpeedCapable(6) -- fan can be set to low or high speed +} +DellFanControlSettings ::= INTEGER { + -- If 0 (zero), there are no Fan Control settings + unknown(1), -- fan control settings are unknown + lowSpeed(2), -- fan set to low speed + highSpeed(4) -- fan set to high speed +} +DellLEDControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no LED Control capabilities + unknown(1), -- LED control capabilities are unknown + alertOnErrorCapable(2), -- LED can alert on error condition + alertOnWarningAndErrorCapable(4), -- LED can alert on error and warning condition + alertOnWarningOrErrorCapable(6) -- LED can alert on error or warning condition +} +DellLEDControlSettings ::= INTEGER { + -- If 0 (zero), there are no LED Control settings + unknown(1), -- LED control settings are unknown + alertOnError(2), -- LED set to alert on error condition + alertOnWarningAndError(4) -- LED set to alert on error or warning condition +} +DellHDFaultLEDControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no Hard Drive Fault LED Control capabilities + unknownCapabilities(1), -- LED control capabilities are unknown + enableCapable(2), -- LED can be be enabled (online) or disabled (offline) + notReadyCapable(4), -- LED can be not ready + resetCapable(8) -- LED can be reset +} +DellHDFaultLEDControlSettings ::= INTEGER { + -- If 0 (zero), there are no Hard Drive Fault LED Control settings + unknown(1), -- LED control settings are unknown + enabled(2), -- LED is enabled (online) + notReady(4), -- LED is not ready + reset(8), -- reset LED + resetAndEnable(10) -- reset and enable LED +} +DellChassisIdentifyControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no Chassis Identify Control capabilities + unknownCapabilities(1), -- chassis identify capabilities are unknown + -- The objects capabilities allow it to be set to: + enableCapable(2), -- chassis identify can be enabled (online) or disabled (offline) + notReadyCapable(4), -- chassis identify can be not ready + identifyCapable(8) -- chassis idenfity can be made to identify chassis +} +DellChassisIdentifyControlSettings ::= INTEGER { + -- If 0 (zero), there are no Chassis Identify Control settings + unknown(1), -- chassis identify settings are unknown + enabled(2), -- chassis identify is enabled (online) + notReady(4), -- chassis identify is not ready + identifyChassis(8), -- identify chassis + identifyChassisAndEnable(10) -- identify chassis and enabled +} +DellHostControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no Host Control capabilities + manualRebootCapable(1), -- host can be rebooted + manualPowerOFFCapable(2), -- host can be powered off + manualPowerCycleCapable(4), -- host can be power cycled + manualAllExceptOperatingSystemShutdownCapable(7), -- all host control capabilities except OS shutdown + manualOperatingSystemShutdownCapable(8), -- operating system can be shutdown + manualFullyCapable(15) -- all host control capabilities +} +DellHostControlSettings ::= INTEGER { + -- If 0 (zero), there are no Host Control settings + manualReboot(1), -- reboot host + manualPowerOFF(2), -- power off host + manualPowerCycle(4), -- power cycle host + manualOperatingSystemShutdown(8), -- shutdown operating system on host + manualOperatingSystemShutdownThenReboot(9), -- shutdown operating system on host then reboot host + manualOperatingSystemShutdownThenPowerOFF(10), -- shutdown operating system on host then power off host + manualOperatingSystemShutdownThenPowerCycle(12) -- shutdown operating system on host then power cycle host +} +DellWatchDogControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no Watchdog Control capabilities + automaticRebootCapable(1), -- watchdog can reboot host + automaticPowerCycleCapable(2), -- watchdog can power cycle host + automaticNotificationCapable(4), -- watchdog can notify + automaticWatchDogTimerCapable(8), -- watchdog supports timer + automaticPowerOffCapable(16), -- watchdog can power off host + automaticAllExceptNotificationCapable(27), -- all capabilities except notification + automaticFullyCapable(31) -- all watchdog control capabilities +} +DellWatchControlSettings ::= INTEGER { + -- If 0 (zero), there are no Watchdog Control settings + automaticRebootEnabled(1), -- watchdog set for automatic reboot + automaticPowerCycleEnabled(2), -- watchdog set for automatic power cycle + automaticNotificationEnabled(4), -- watchdog set for automatic notification + automaticPowerOffEnabled(8) -- watchdog set for automatic power off +} +DellWatchDogTimerCapabilities ::= INTEGER { + -- If 0 (zero), there are no Watchdog Timer capabilities + type1Capable(1), -- watchdog can time in range of 20-480 seconds + type2Capable(2), -- watchdog can time in 30, 60, 120 and 480 second intervals + type3Capable(4) -- watchdog can time in 60 second intervals +} +DellPowerButtonControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no Power Button Control capabilities + unknownCapabilities(1), -- power button capabilities are unknown + enableCapable(2) -- power button can be enabled or disabled +} +DellPowerButtonControlSettings ::= INTEGER { + -- If 0 (zero), there are no Power Button Control settings + unknown(1), -- power button settings are unknown + enabled(2), -- power button is enabled + disabled(4) -- power button disabled +} +DellNMIButtonControlCapabilities ::= INTEGER { + -- If 0 (zero), there are no NMI Button Control capabilities + unknownCapabilities(1), -- NMI button capabilities are unknown + enableCapable(2) -- NMI button can be enabled or disabled +} +DellNMIButtonControlSettings ::= INTEGER { + -- If 0 (zero), there are no NMI Button Control settings + unknown(1), -- NMI button settings are unknown + enabled(2), -- NMI button is enabled + disabled(4) -- NMI button disabled +} +DellSystemProperties ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- none(0), - no properties + energySmart(1) -- Energy Smart system +} + +ChassisInformationTableEntry ::= SEQUENCE { + chassisIndexChassisInformation DellObjectRange, + chassisStateCapabilities DellStateCapabilities, + chassisStateSettings DellStateSettings, + chassisStatus DellStatus, + chassisparentIndexReference DellObjectRange, + chassisType DellChassisType, + chassisName DellString, + chassisManufacturerName DellString, + chassisModelName DellString, + chassisAssetTagName DisplayString (SIZE (0..10)), + chassisServiceTagName DisplayString (SIZE (0..7)), + chassisID DellUnsigned8BitRange, + chassisIDExtension DellUnsigned16BitRange, + chassisSystemClass DellChassisSystemClass, + chassisSystemName DellString, + chassisSystemBootDateName DellDateName, + chassisSystemDateName DellDateName, + chassisSystemLocationName DellString, + chassisSystemPrimaryUserName DellString, + chassisSystemUserPhoneNumberName DellString, + chassisConnectionStatusUnique DellConnectionStatus, + chassisFanControlCapabilitiesUnique DellFanControlCapabilities, + chassisFanControlSettingsUnique DellFanControlSettings, + chassisLEDControlCapabilitiesUnique DellLEDControlCapabilities, + chassisLEDControlSettingsUnique DellLEDControlSettings, + chassisHDFaultClearControlCapabilities DellHDFaultLEDControlCapabilities, + chassisHDFaultClearControlSettings DellHDFaultLEDControlSettings, + chassisIdentifyFlashControlCapabilities DellChassisIdentifyControlCapabilities, + chassisIdentifyFlashControlSettings DellChassisIdentifyControlSettings, + chassisLockPresent DellBoolean, + chassishostControlCapabilitiesUnique DellHostControlCapabilities, + chassishostControlSettingsUnique DellHostControlSettings, + chassiswatchDogControlCapabilitiesUnique DellWatchDogControlCapabilities, + chassiswatchDogControlSettingsUnique DellWatchControlSettings, + chassiswatchDogControlExpiryTimeCapabilitiesUnique DellWatchDogTimerCapabilities, + chassiswatchDogControlExpiryTime DellUnsigned16BitRange, + chassisallowSETCommandsfromSNMP DellBoolean, + chassisPowerButtonControlCapabilitiesUnique DellPowerButtonControlCapabilities, + chassisPowerButtonControlSettingsUnique DellPowerButtonControlSettings, + chassisResellerName DisplayString (SIZE (0..128)), + chassisResellerContactInformationName DisplayString (SIZE (0..128)), + chassisResellerProductName DisplayString (SIZE (0..128)), + chassisResellerSystemID DellUnsigned16BitRange, + chassisNMIButtonControlCapabilitiesUnique DellNMIButtonControlCapabilities, + chassisNMIButtonControlSettingsUnique DellNMIButtonControlSettings, + chassisSystemProperties DellSystemProperties, + chassisSystemRevisionNumber DellUnsigned8BitRange, + chassisSystemRevisionName DellString +} + +chassisInformationTable OBJECT-TYPE + SYNTAX SEQUENCE OF ChassisInformationTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0010 This object defines the Chassis Information Table." + ::= { chassisInformationGroup 10 } +chassisInformationTableEntry OBJECT-TYPE + SYNTAX ChassisInformationTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0010.0001 This object defines the Chassis Information Table Entry." + INDEX { chassisIndexChassisInformation } + ::= { chassisInformationTable 1 } + +chassisIndexChassisInformation OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0001 This attribute defines the index (one based) of the +chassis." + ::= { chassisInformationTableEntry 1 } +chassisStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0002 This attribute defines the state capabilities of the +chassis." + ::= { chassisInformationTableEntry 2 } +chassisStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0003 This attribute defines the state settings of the +chassis." + ::= { chassisInformationTableEntry 3 } +chassisStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0004 This attribute defines the status of the chassis." + ::= { chassisInformationTableEntry 4 } +chassisparentIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0005 This attribute defines the index (one based) to the +parent chassis of this chassis, if any." + ::= { chassisInformationTableEntry 5 } +chassisType OBJECT-TYPE + SYNTAX DellChassisType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0006 This attribute defines the chassis type of the chassis." + ::= { chassisInformationTableEntry 6 } +chassisName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0007 This attribute defines the user-assigned name of the +chassis." + ::= { chassisInformationTableEntry 7 } +chassisManufacturerName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0008 This attribute defines the name of the manufacturer +of the chassis." + ::= { chassisInformationTableEntry 8 } +chassisModelName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0009 This attribute defines the system model type of the +chassis." + ::= { chassisInformationTableEntry 9 } +chassisAssetTagName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..10)) + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0010 This attribute defines the asset tag name of the +chassis." + ::= { chassisInformationTableEntry 10 } +chassisServiceTagName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0011 This attribute defines the service tag name of the +chassis." + ::= { chassisInformationTableEntry 11 } +chassisID OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0012 This attribute defines the system ID. If the value +is 254 (0xFE), the attribute chassisIDExtension provides the system ID." + ::= { chassisInformationTableEntry 12 } +chassisIDExtension OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0013 This attribute defines the system ID extension." + ::= { chassisInformationTableEntry 13 } +chassisSystemClass OBJECT-TYPE + SYNTAX DellChassisSystemClass + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0014 This attribute defines the system class." + ::= { chassisInformationTableEntry 14 } +chassisSystemName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0015 This attribute defines the host name of the system." + ::= { chassisInformationTableEntry 15 } +chassisSystemBootDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0016 This attribute defines boot time of the system. +Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes and ss are the seconds. +uuuuuu is the number of microseconds, and +fff or -fff is the offset from +UTC in minutes." + ::= { chassisInformationTableEntry 16 } +chassisSystemDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0017 This attribute defines the current time of the system. +Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes and ss are the seconds. +uuuuuu is the number of microseconds, and +fff or -fff is the offset from +UTC in minutes." + ::= { chassisInformationTableEntry 17 } +chassisSystemLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0018 This attribute defines the location of the system." + ::= { chassisInformationTableEntry 18 } +chassisSystemPrimaryUserName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0019 This attribute defines the name of the primary user +of the system." + ::= { chassisInformationTableEntry 19 } +chassisSystemUserPhoneNumberName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0020 This attribute defines the phone number of the primary +user of the system." + ::= { chassisInformationTableEntry 20 } +chassisConnectionStatusUnique OBJECT-TYPE + SYNTAX DellConnectionStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0021 This attribute defines the status of the connection +of the chassis." + ::= { chassisInformationTableEntry 21 } +chassisFanControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellFanControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0022 This attribute defines the capabilities of the +fan control hardware in the chassis." + ::= { chassisInformationTableEntry 22 } +chassisFanControlSettingsUnique OBJECT-TYPE + SYNTAX DellFanControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0023 This attribute defines the reading and setting of the +fan control hardware in the chassis." + ::= { chassisInformationTableEntry 23 } +chassisLEDControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellLEDControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0024 This attribute defines the capabilities of the +LED control hardware in the chassis." + ::= { chassisInformationTableEntry 24 } +chassisLEDControlSettingsUnique OBJECT-TYPE + SYNTAX DellLEDControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0025 This attribute defines the reading and setting of the +LED control hardware in the chassis." + ::= { chassisInformationTableEntry 25 } +chassisHDFaultClearControlCapabilities OBJECT-TYPE + SYNTAX DellHDFaultLEDControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0026 This attribute defines if the chassis allows reset +of the chassis hard disk drive fault LED." + ::= { chassisInformationTableEntry 26 } +chassisHDFaultClearControlSettings OBJECT-TYPE + SYNTAX DellHDFaultLEDControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0027 This attribute allows reset of a chassis hard disk +drive fault LED." + ::= { chassisInformationTableEntry 27 } +chassisIdentifyFlashControlCapabilities OBJECT-TYPE + SYNTAX DellChassisIdentifyControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0028 This attribute defines if the chassis allows setting +of the chassis front panel LED to flash." + ::= { chassisInformationTableEntry 28 } +chassisIdentifyFlashControlSettings OBJECT-TYPE + SYNTAX DellChassisIdentifyControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0029 This attribute setting causes the chassis front panel +LED to flash." + ::= { chassisInformationTableEntry 29 } +chassisLockPresent OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0030 If true, a chassis lock is present on the chassis." + ::= { chassisInformationTableEntry 30 } +chassishostControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellHostControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.031 This attribute defines the capabilities of the +host control function." + ::= { chassisInformationTableEntry 31 } +chassishostControlSettingsUnique OBJECT-TYPE + SYNTAX DellHostControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0032 This attribute defines the settings of the +host control function." + ::= { chassisInformationTableEntry 32 } +chassiswatchDogControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellWatchDogControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0033 This attribute defines the capabilities of the +watchdog control function." + ::= { chassisInformationTableEntry 33 } +chassiswatchDogControlSettingsUnique OBJECT-TYPE + SYNTAX DellWatchControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0034 This attribute defines the settings of the +watchdog control function." + ::= { chassisInformationTableEntry 34 } +chassiswatchDogControlExpiryTimeCapabilitiesUnique OBJECT-TYPE + SYNTAX DellWatchDogTimerCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0035 This attribute defines the capabilities of the +watchdog control expiry timer function." + ::= { chassisInformationTableEntry 35 } +chassiswatchDogControlExpiryTime OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0036 This attribute defines the current watchdog timer +value in seconds." + ::= { chassisInformationTableEntry 36 } +chassisallowSETCommandsfromSNMP OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0037 This attribute defines if SNMP SET type commands +are allowed or not." + ::= { chassisInformationTableEntry 37 } +chassisPowerButtonControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellPowerButtonControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0038 This attribute defines the capabilities of the +power button control hardware in the chassis." + ::= { chassisInformationTableEntry 38 } +chassisPowerButtonControlSettingsUnique OBJECT-TYPE + SYNTAX DellPowerButtonControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0039 This attribute defines the reading and setting of +the power button control hardware in the chassis." + ::= { chassisInformationTableEntry 39 } +chassisResellerName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0040 This attribute defines the name of the system reseller." + ::= { chassisInformationTableEntry 40 } +chassisResellerContactInformationName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0041 This attribute defines the contact information +for the system reseller." + ::= { chassisInformationTableEntry 41 } +chassisResellerProductName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0042 This attribute defines the reseller's product name +for the system." + ::= { chassisInformationTableEntry 42 } +chassisResellerSystemID OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0043 This attribute defines the reseller's system ID +for the system." + ::= { chassisInformationTableEntry 43 } +chassisNMIButtonControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellNMIButtonControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0044 This attribute defines the capabilities of the +NMI button control hardware in the chassis." + ::= { chassisInformationTableEntry 44 } +chassisNMIButtonControlSettingsUnique OBJECT-TYPE + SYNTAX DellNMIButtonControlSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0045 This attribute defines the reading and setting of +the NMI button control hardware in the chassis." + ::= { chassisInformationTableEntry 45 } +chassisSystemProperties OBJECT-TYPE + SYNTAX DellSystemProperties + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0046 This attribute defines the properties of the system." + ::= { chassisInformationTableEntry 46 } +chassisSystemRevisionNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0047 This attribute defines the revision number of the system +where zero indicates the original version of the system. The revision number +is not available on all systems." + ::= { chassisInformationTableEntry 47 } +chassisSystemRevisionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0010.0001.0048 This attribute defines the revision name of the system, +if applicable." + ::= { chassisInformationTableEntry 48 } + + +------------------------------------------------------------------------------- +-- Universal Unique ID (UUID) Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.20.1... +------------------------------------------------------------------------------- + +DellUUIDType ::= INTEGER { + other(1), -- type is other than following values + unknown(2), -- type is unknown + motherBoard(3), -- type is Motherboard + systemBackPlane(4), -- type is System Backplane + powerSupplyParallelingBoard(5), -- type is Power Supply Paralleling Board + peripheralBayBackPlane(6), -- type is Peripheral Bay Backplane + secondaryBackPlane(7) -- type is Secondary Backplane +} + +UUIDTableEntry ::= SEQUENCE { + uUIDchassisIndex DellObjectRange, + uUIDIndex DellObjectRange, + uUIDType DellUUIDType, + uUIDValue OCTET STRING (SIZE(16)) +} + +uUIDTable OBJECT-TYPE + SYNTAX SEQUENCE OF UUIDTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0020 This object defines the Universal Unique ID (UUID) Table." + ::= { chassisInformationGroup 20 } +uUIDTableEntry OBJECT-TYPE + SYNTAX UUIDTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0020.0001 This object defines the UUID Table Entry." + INDEX { uUIDchassisIndex, + uUIDIndex } + ::= { uUIDTable 1 } + +uUIDchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { uUIDTableEntry 1 } +uUIDIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0020.0001.0002 This attribute defines the index (one based) of the UUID." + ::= { uUIDTableEntry 2 } +uUIDType OBJECT-TYPE + SYNTAX DellUUIDType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0020.0001.0003 This attribute defines the type of the UUID." + ::= { uUIDTableEntry 3 } +uUIDValue OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0020.0001.0004 This attribute defines the value of the UUID." + ::= { uUIDTableEntry 4 } + + +------------------------------------------------------------------------------- +-- Power On Self Test (POST) Log Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.30.1... +------------------------------------------------------------------------------- + +PostLogTableEntry ::= SEQUENCE { + postLogchassisIndex DellObjectRange, + postLogRecordIndex DellUnsigned32BitRange, + postLogStateCapabilitiesUnique DellStateCapabilitiesLogUnique, + postLogStateSettingsUnique DellStateSettingsLogUnique, + postLogRecord DisplayString (SIZE (0..1024)), + postLogFormat DellLogFormat +} + +postLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF PostLogTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0030 This object defines the Power On Self Test (POST) Log Table." + ::= { chassisInformationGroup 30 } +postLogTableEntry OBJECT-TYPE + SYNTAX PostLogTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0030.0001 This object defines the POST Log Table Entry." + INDEX { postLogchassisIndex, + postLogRecordIndex } + ::= { postLogTable 1 } + +postLogchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { postLogTableEntry 1 } +postLogRecordIndex OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0030.0001.0002 This attribute defines the index (one based) of the +POST log record." + ::= { postLogTableEntry 2 } +postLogStateCapabilitiesUnique OBJECT-TYPE + SYNTAX DellStateCapabilitiesLogUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0030.0001.0003 This attribute defines the state capabilities of the +object that is writing the POST log." + ::= { postLogTableEntry 3 } +postLogStateSettingsUnique OBJECT-TYPE + SYNTAX DellStateSettingsLogUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0030.0001.0004 This attribute defines the state settings of the +object that is writing the POST log." + ::= { postLogTableEntry 4 } +postLogRecord OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0030.0001.0005 This attribute defines the data of the POST log record." + ::= { postLogTableEntry 5 } +postLogFormat OBJECT-TYPE + SYNTAX DellLogFormat + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0030.0001.0006 This attribute defines the format of the POST log record." + ::= { postLogTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Event (ESM) Log Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.40.1... +------------------------------------------------------------------------------- + +EventLogTableEntry ::= SEQUENCE { + eventLogchassisIndex DellObjectRange, + eventLogRecordIndex DellUnsigned32BitRange, + eventLogStateCapabilitiesUnique DellStateCapabilitiesLogUnique, + eventLogStateSettingsUnique DellStateSettingsLogUnique, + eventLogRecord DisplayString (SIZE (0..1024)), + eventLogFormat DellLogFormat, + eventLogSeverityStatus DellStatus, + eventLogDateName DellDateName +} + +eventLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF EventLogTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0040 This object defines the Event (ESM) Log Table." + ::= { chassisInformationGroup 40 } +eventLogTableEntry OBJECT-TYPE + SYNTAX EventLogTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0040.0001 This object defines the Event (ESM) Log Table Entry." + INDEX { eventLogchassisIndex, + eventLogRecordIndex } + ::= { eventLogTable 1 } + +eventLogchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { eventLogTableEntry 1 } +eventLogRecordIndex OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0002 This attribute defines the index (one based) of the +event log record." + ::= { eventLogTableEntry 2 } +eventLogStateCapabilitiesUnique OBJECT-TYPE + SYNTAX DellStateCapabilitiesLogUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0003 This attribute defines the state capabilities of the +object that is writing the event log." + ::= { eventLogTableEntry 3 } +eventLogStateSettingsUnique OBJECT-TYPE + SYNTAX DellStateSettingsLogUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0004 This attribute defines the state settings of the +object that is writing the event log." + ::= { eventLogTableEntry 4 } +eventLogRecord OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0005 This attribute defines the data of the event log record." + ::= { eventLogTableEntry 5 } +eventLogFormat OBJECT-TYPE + SYNTAX DellLogFormat + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0006 This attribute defines the format of the event log record." + ::= { eventLogTableEntry 6 } +eventLogSeverityStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0007 This attribute defines the severity of the +event log record." + ::= { eventLogTableEntry 7 } +eventLogDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0040.0001.0008 This attribute defines the date and time of the +event log record." + ::= { eventLogTableEntry 8 } + + +------------------------------------------------------------------------------- +-- System BIOS Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.50.1... +------------------------------------------------------------------------------- + +SystemBIOSTableEntry ::= SEQUENCE { + systemBIOSchassisIndex DellObjectRange, + systemBIOSIndex DellObjectRange, + systemBIOSStateCapabilities DellStateCapabilities, + systemBIOSStateSettings DellStateSettings, + systemBIOSStatus DellStatus, + systemBIOSSize DellUnsigned32BitRange, + systemBIOSReleaseDateName DellDateName, + systemBIOSVersionName DellString, + systemBIOSStartingAddress DellUnsigned64BitRange, + systemBIOSEndingAddress DellUnsigned64BitRange, + systemBIOSManufacturerName DellString, + systemBIOSCharacteristics DellUnsigned64BitRange, + systemBIOSCharacteristicsExt1 DellUnsigned8BitRange, + systemBIOSCharacteristicsExt2 DellUnsigned8BitRange +} + +systemBIOSTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemBIOSTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0050 This object defines the System BIOS Table." + ::= { chassisInformationGroup 50 } +systemBIOSTableEntry OBJECT-TYPE + SYNTAX SystemBIOSTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0050.0001 This object defines the System BIOS Table Entry." + INDEX { systemBIOSchassisIndex, + systemBIOSIndex } + ::= { systemBIOSTable 1 } + +systemBIOSchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemBIOSTableEntry 1 } +systemBIOSIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0002 This attribute defines the index (one based) of the +system BIOS." + ::= { systemBIOSTableEntry 2 } +systemBIOSStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0003 This attribute defines the state capabilities of the +system BIOS." + ::= { systemBIOSTableEntry 3 } +systemBIOSStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0004 This attribute defines the state settings of the +system BIOS." + ::= { systemBIOSTableEntry 4 } +systemBIOSStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0005 This attribute defines the status of the system BIOS." + ::= { systemBIOSTableEntry 5 } +systemBIOSSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0006 This attribute defines the image size of the +system BIOS in KBytes. Zero indicates size is unknown." + ::= { systemBIOSTableEntry 6 } +systemBIOSReleaseDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0007 This attribute defines the release date name of the +system BIOS." + ::= { systemBIOSTableEntry 7 } +systemBIOSVersionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0008 This attribute defines the version name of the +system BIOS." + ::= { systemBIOSTableEntry 8 } +systemBIOSStartingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0009 This attribute defines the starting address of the +system BIOS. Zero indicates the starting address is unknown." + ::= { systemBIOSTableEntry 9 } +systemBIOSEndingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0010 This attribute defines the ending address of the +system BIOS. Zero indicates the starting address is unknown." + ::= { systemBIOSTableEntry 10 } +systemBIOSManufacturerName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0011 This attribute defines the name of the manufacturer +of the system BIOS." + ::= { systemBIOSTableEntry 11 } +systemBIOSCharacteristics OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0012 This attribute defines characteristics of the +system BIOS. This attribute is a bit field where a bit has the meaning +defined below when set to 1 (one). Bit 63 is the first bit in the value, +and bit 0 is the last bit in the value. See the description of +DellUnsigned64BitRange at the beginning of this file for more information +on the format of the value. + +NOTE: Bits 48-63 need to be examined in the context of the system ID. +The system ID is available in the attribute chassisID. If the value +for chassisID is non-zero, bits 48-63 have the meaning defined below. + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 Reserved + Bit 1 Reserved + Bit 2 Unknown + Bit 3 BIOS Characteristics Not Supported + Bit 4 ISA is supported + Bit 5 MCA is supported + Bit 6 EISA is supported + Bit 7 PCI is supported + Bit 8 PC Card (PCMCIA) is supported + Bit 9 Plug and Play is supported + Bit 10 APM is supported + Bit 11 BIOS is Upgradeable (Flash) + Bit 12 BIOS shadowing is allowed + Bit 13 VL-VESA is supported + Bit 14 ESCD support is available + Bit 15 Boot from CD is supported + Bit 16 Selectable Boot is supported + Bit 17 BIOS ROM is socketed + Bit 18 Boot From PC Card (PCMCIA) is supported + Bit 19 EDD (Enhanced Disk Drive) Specification is supported + Bit 20 Int 13h - Japanese Floppy for NEC 9800 1.2mb (3.5 in, 1k Bytes/Sector, 360 RPM) is supported + Bit 21 Int 13h - Japanese Floppy for Toshiba 1.2mb (3.5 in, 360 RPM) is supported + Bit 22 Int 13h - 5.25 in / 360 KB Floppy Services are supported + Bit 23 Int 13h - 5.25 in /1.2MB Floppy Services are supported + Bit 24 Int 13h - 3.5 in / 720 KB Floppy Services are supported + Bit 25 Int 13h - 3.5 in / 2.88 MB Floppy Services are supported + Bit 26 Int 5h, Print Screen Service is supported + Bit 27 Int 9h, 8042 Keyboard services are supported + Bit 28 Int 14h, Serial Services are supported + Bit 29 Int 17h, Printer Services are supported + Bit 30 Int 10h, CGA/Mono Video Services are supported + Bit 31 NEC PC-98 + Bit 32-47 Reserved + Bit 48 Built-in NIC supports Magic Packet + Bit 49 System supports Wake-on-LAN + Bit 50 System supports chassis intrusion + Bit 51 Built-in NIC supports pattern-matching + Bit 52 System BIOS supports a 7-character service tag + Bit 53-63 Reserved" + ::= { systemBIOSTableEntry 12 } +systemBIOSCharacteristicsExt1 OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0013 This attribute defines additional characteristics of the +system BIOS. This attribute is a bit field where a bit has the meaning +defined below when set to 1 (one). + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 ACPI supported + Bit 1 USB Legacy is supported + Bit 2 AGP is supported + Bit 3 I2O boot is supported + Bit 4 LS-120 boot is supported + Bit 5 ATAPI ZIP Drive boot is supported + Bit 6 1394 boot is supported + Bit 7 Smart Battery supported" + ::= { systemBIOSTableEntry 13 } +systemBIOSCharacteristicsExt2 OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0050.0001.0014 This attribute defines additional characteristics of the +system BIOS. This attribute is a bit field where a bit has the meaning +defined below when set to 1 (one). + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 BIOS Boot Specification supported + Bit 1 Function key-initiated Network Service boot supported + Bit 2 Targeted Content Distribution supported + Bit 3-7 Reserved" + ::= { systemBIOSTableEntry 14 } + + +------------------------------------------------------------------------------- +-- Firmware Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.60.1... +------------------------------------------------------------------------------- + +DellFirmwareType ::= INTEGER { + other(1), -- type is other than following values + unknown(2), -- type is unknown + systemBIOS(3), -- type is System BIOS + embeddedSystemManagementController(4), -- type is Embedded System Management Controller + powerSupplyParallelingBoard(5), -- type is Power Supply Paralleling Board + systemBackPlane(6), -- type is System (Primary) Backplane + powerVault2XXSKernel(7), -- type is PowerVault 2XXS Kernel + powerVault2XXSApplication(8), -- type is PowerVault 2XXS Application + frontPanel(9), -- type is Front Panel Controller + baseboardManagementController(10), -- type is Baseboard Management Controller + hotPlugPCI(11), -- type is Hot Plug PCI Controller + sensorData(12), -- type is Sensor Data Records + peripheralBay(13), -- type is Peripheral Bay Backplane + secondaryBackPlane(14), -- type is Secondary Backplane for ESM 2 systems + secondaryBackPlaneESM3And4(15), -- type is Secondary Backplane for ESM 3 and 4 systems + rac(16), -- type is Remote Access Controller + iDRAC(17) -- type is Integrated Dell Remote Access Controller +} + +FirmwareTableEntry ::= SEQUENCE { + firmwarechassisIndex DellObjectRange, + firmwareIndex DellObjectRange, + firmwareStateCapabilities DellStateCapabilities, + firmwareStateSettings DellStateSettings, + firmwareStatus DellStatus, + firmwareSize DellUnsigned16BitRange, + firmwareType DellFirmwareType, + firmwareTypeName DellString, + firmwareUpdateCapabilities DellUnsigned16BitRange, + firmwareDateName OCTET STRING (SIZE(8)), + firmwareVersionName DellString +} + +firmwareTable OBJECT-TYPE + SYNTAX SEQUENCE OF FirmwareTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0060 This object defines the Firmware Table." + ::= { chassisInformationGroup 60 } +firmwareTableEntry OBJECT-TYPE + SYNTAX FirmwareTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0060.0001 This object defines the Firmware Table Entry." + INDEX { firmwarechassisIndex, + firmwareIndex } + ::= { firmwareTable 1 } + +firmwarechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { firmwareTableEntry 1 } +firmwareIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0002 This attribute defines the index (one based) of the +firmware." + ::= { firmwareTableEntry 2 } +firmwareStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0003 This attribute defines the state capabilities of the +firmware." + ::= { firmwareTableEntry 3 } +firmwareStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0004 This attribute defines the state settings of the +firmware." + ::= { firmwareTableEntry 4 } +firmwareStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0005 This attribute defines the status of the firmware." + ::= { firmwareTableEntry 5 } +firmwareSize OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0006 This attribute defines the image size of the firmware +in KBytes. Zero indicates size is unknown." + ::= { firmwareTableEntry 6 } +firmwareType OBJECT-TYPE + SYNTAX DellFirmwareType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0007 This attribute defines the type of firmware." + ::= { firmwareTableEntry 7 } +firmwareTypeName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0008 This attribute defines the type name of the firmware." + ::= { firmwareTableEntry 8 } +firmwareUpdateCapabilities OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0009 This attribute defines the bitmap of supported methods +for firmware update." + ::= { firmwareTableEntry 9 } +firmwareDateName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(8)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0010 This attribute defines the release date of the firmware." + ::= { firmwareTableEntry 10 } +firmwareVersionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0060.0001.0011 This attribute defines the version of the firmware." + ::= { firmwareTableEntry 11 } + + +------------------------------------------------------------------------------- +-- Intrusion Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.70.1... +------------------------------------------------------------------------------- + +DellIntrusionReading ::= INTEGER { + chassisNotBreached(1), -- chassis not breached and no uncleared breaches + chassisBreached(2), -- chassis currently breached + chassisBreachedPrior(3), -- chassis breached prior to boot and has not been cleared + chassisBreachSensorFailure(4) -- intrusion sensor has failed +} +DellIntrusionType ::= INTEGER { + chassisBreachDetectionWhenPowerON(1), -- type is detect intrusion while power on + chassisBreachDetectionWhenPowerOFF(2) -- type is detect intrusion while power off +} + +IntrusionTableEntry ::= SEQUENCE { + intrusionchassisIndex DellObjectRange, + intrusionIndex DellObjectRange, + intrusionStateCapabilities DellStateCapabilities, + intrusionStateSettings DellStateSettings, + intrusionStatus DellStatus, + intrusionReading DellIntrusionReading, + intrusionType DellIntrusionType, + intrusionLocationName DellString +} + +intrusionTable OBJECT-TYPE + SYNTAX SEQUENCE OF IntrusionTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0070 This object defines the Intrusion Table." + ::= { chassisInformationGroup 70 } +intrusionTableEntry OBJECT-TYPE + SYNTAX IntrusionTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0070.0001 This object defines the Intrusion Table Entry." + INDEX { intrusionchassisIndex, + intrusionIndex } + ::= { intrusionTable 1 } + +intrusionchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { intrusionTableEntry 1 } +intrusionIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0002 This attribute defines the index (one based) of the +intrusion sensor." + ::= { intrusionTableEntry 2 } +intrusionStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0003 This attribute defines the state capabilities of the +intrusion sensor." + ::= { intrusionTableEntry 3 } +intrusionStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0004 This attribute defines the state settings of the +intrusion sensor." + ::= { intrusionTableEntry 4 } +intrusionStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0005 This attribute defines the status of the +intrusion sensor." + ::= { intrusionTableEntry 5 } +intrusionReading OBJECT-TYPE + SYNTAX DellIntrusionReading + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0006 This attribute defines the reading of the +intrusion sensor." + ::= { intrusionTableEntry 6 } +intrusionType OBJECT-TYPE + SYNTAX DellIntrusionType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0007 This attribute defines the type of the +intrusion sensor." + ::= { intrusionTableEntry 7 } +intrusionLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0070.0001.0008 This attribute defines the location of the +intrusion sensor." + ::= { intrusionTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Base Board Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.300.80.1... +------------------------------------------------------------------------------- + +DellBaseBoardType ::= INTEGER { + unknown(1), -- type is unknown + other(2), -- type is other than following values + serverBlade(3), -- type is Server Blade + connectivitySwitch(4), -- type is Connectivity Switch + systemManagementModule(5), -- type is System Management Module + processorModule(6), -- type is Processor Module + ioModule(7), -- type is I/O Module + memoryModule(8), -- type is Memory Module + daughterBoard(9), -- type is Daughter Board + motherboard(10), -- type is Motherboard + processorMemoryModule(11), -- type is Processor/Memory Module + processorIOModule(12), -- type is Processor/IO Module + interconnectBoard(13) -- type is Interconnect Board +} +DellBaseBoardFeatureFlags ::= INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- If 0 (zero), base board has none of the following features: + boardIsHostingBoard(1), -- board is Hosting Board + boardRequiresDaughterBoard(2), -- board requires at least one Daughter Board or Auxiliary Card + boardIsRemovable(4), -- board is Removable + boardIsReplaceable(8), -- board is Replaceable + boardIsHotSwappable(16) -- board is Hot Swappable +} + +BaseBoardTableEntry ::= SEQUENCE { + baseBoardChassisIndex DellObjectRange, + baseBoardIndex DellObjectRange, + baseBoardStateCapabilities DellStateCapabilities, + baseBoardStateSettings DellStateSettings, + baseBoardStatus DellStatus, + baseBoardFeatureFlags DellBaseBoardFeatureFlags, + baseBoardType DellBaseBoardType, + baseBoardTypeName DellString, + baseBoardLocationName DellString, + baseBoardManufacturerName DellString, + baseBoardProductName DellString, + baseBoardVersionName DellString, + baseBoardServiceTagName DellString, + baseBoardPiecePartIDName DellString, + baseBoardAssetTagName DellString +} + +baseBoardTable OBJECT-TYPE + SYNTAX SEQUENCE OF BaseBoardTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0080 This object defines the Base Board Table." + ::= { chassisInformationGroup 80 } +baseBoardTableEntry OBJECT-TYPE + SYNTAX BaseBoardTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0300.0080.0001 This object defines the Base Board Table Entry." + INDEX { baseBoardChassisIndex, + baseBoardIndex } + ::= { baseBoardTable 1 } + +baseBoardChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { baseBoardTableEntry 1 } +baseBoardIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0002 This attribute defines the index (one based) of the +base board." + ::= { baseBoardTableEntry 2 } +baseBoardStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0003 This attribute defines the state capabilities of the +base board." + ::= { baseBoardTableEntry 3 } +baseBoardStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0004 This attribute defines the state settings of the +base board." + ::= { baseBoardTableEntry 4 } +baseBoardStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0005 This attribute defines the status of the base board." + ::= { baseBoardTableEntry 5 } +baseBoardFeatureFlags OBJECT-TYPE + SYNTAX DellBaseBoardFeatureFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0006 This attribute defines the features of the base board." + ::= { baseBoardTableEntry 6 } +baseBoardType OBJECT-TYPE + SYNTAX DellBaseBoardType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0007 This attribute defines the type of the base board." + ::= { baseBoardTableEntry 7 } +baseBoardTypeName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0008 This attribute defines the type name of the base board." + ::= { baseBoardTableEntry 8 } +baseBoardLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0009 This attribute defines the location of the base board." + ::= { baseBoardTableEntry 9 } +baseBoardManufacturerName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0010 This attribute defines the name of the manufacturer +of the base board." + ::= { baseBoardTableEntry 10 } +baseBoardProductName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0011 This attribute defines the product name of the +base board." + ::= { baseBoardTableEntry 11 } +baseBoardVersionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0012 This attribute defines the version of the base board." + ::= { baseBoardTableEntry 12 } +baseBoardServiceTagName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0013 This attribute defines the service tag of the base board." + ::= { baseBoardTableEntry 13 } +baseBoardPiecePartIDName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0014 This attribute defines the Piece Part ID (PPID) of the +base board." + ::= { baseBoardTableEntry 14 } +baseBoardAssetTagName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0300.0080.0001.0015 This attribute defines the asset tag of the base board." + ::= { baseBoardTableEntry 15 } + + +------------------------------------------------------------------------------- +-- Operating System Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.400 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Operating System Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.400.10.1.. +------------------------------------------------------------------------------- + +OperatingSystemTableEntry ::= SEQUENCE { + operatingSystemchassisIndex DellObjectRange, + operatingSystemStateCapabilities DellStateCapabilities, + operatingSystemStateSettings DellStateSettings, + operatingSystemStatus DellStatus, + operatingSystemIsPrimary DellBoolean, + operatingSystemOperatingSystemName DisplayString (SIZE (0..255)), + operatingSystemOperatingSystemVersionName DisplayString (SIZE (0..255)) +} + +operatingSystemTable OBJECT-TYPE + SYNTAX SEQUENCE OF OperatingSystemTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0400.0010 This object defines the Operating System Table." + ::= { operatingSystemGroup 10 } +operatingSystemTableEntry OBJECT-TYPE + SYNTAX OperatingSystemTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0400.0010.0001 This object defines the Operating System Table Entry." + INDEX { operatingSystemchassisIndex } + ::= { operatingSystemTable 1 } + +operatingSystemchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { operatingSystemTableEntry 1 } +operatingSystemStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0010.0001.0002 This attribute defines the state capabilities of the +operating system." + ::= { operatingSystemTableEntry 2 } +operatingSystemStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0400.0010.0001.0003 This attribute defines the state settings of the +operating system." + ::= { operatingSystemTableEntry 3 } +operatingSystemStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0010.0001.0004 This attribute defines the status of the +operating system." + ::= { operatingSystemTableEntry 4 } +operatingSystemIsPrimary OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0010.0001.0005 This attribute defines if this operating system is the +primary operating system or not." + ::= { operatingSystemTableEntry 5 } +operatingSystemOperatingSystemName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0010.0001.0006 This attribute defines the name of the operating system." + ::= { operatingSystemTableEntry 6 } +operatingSystemOperatingSystemVersionName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0010.0001.0007 This attribute defines the version of the operating system." + ::= { operatingSystemTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Operating System Memory Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.400.20.1.. +------------------------------------------------------------------------------- + +OperatingSystemMemoryTableEntry ::= SEQUENCE { + operatingSystemMemorychassisIndex DellObjectRange, + operatingSystemMemoryStateCapabilities DellStateCapabilities, + operatingSystemMemoryStateSettings DellStateSettings, + operatingSystemMemoryStatus DellStatus, + operatingSystemMemoryTotalPhysicalSize DellUnsigned32BitRange, + operatingSystemMemoryAvailablePhysicalSize DellUnsigned32BitRange, + operatingSystemMemoryTotalPageFileSize DellUnsigned32BitRange, + operatingSystemMemoryAvailablePageFileSize DellUnsigned32BitRange, + operatingSystemMemoryTotalVirtualSize DellUnsigned32BitRange, + operatingSystemMemoryAvailableVirtualSize DellUnsigned32BitRange +} + +operatingSystemMemoryTable OBJECT-TYPE + SYNTAX SEQUENCE OF OperatingSystemMemoryTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0400.0020 This object defines the Operating System Memory Table." + ::= { operatingSystemGroup 20 } +operatingSystemMemoryTableEntry OBJECT-TYPE + SYNTAX OperatingSystemMemoryTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0400.0020.0001 This object defines the Operating System Memory Table Entry." + INDEX { operatingSystemMemorychassisIndex } + ::= { operatingSystemMemoryTable 1 } + +operatingSystemMemorychassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { operatingSystemMemoryTableEntry 1 } +operatingSystemMemoryStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0002 This attribute defines the state capabilities of the +operating system memory." + ::= { operatingSystemMemoryTableEntry 2 } +operatingSystemMemoryStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0003 This attribute defines the state settings of the +operating system memory." + ::= { operatingSystemMemoryTableEntry 3 } +operatingSystemMemoryStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0004 This attribute defines the status of the +operating system memory." + ::= { operatingSystemMemoryTableEntry 4 } +operatingSystemMemoryTotalPhysicalSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0005 This attribute defines the total physical memory +for the operating system memory in KBytes." + ::= { operatingSystemMemoryTableEntry 5 } +operatingSystemMemoryAvailablePhysicalSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0006 This attribute defines the available physical memory +for the operating system memory in KBytes." + ::= { operatingSystemMemoryTableEntry 6 } +operatingSystemMemoryTotalPageFileSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0007 This attribute defines the total page file memory +for the operating system memory in KBytes." + ::= { operatingSystemMemoryTableEntry 7 } +operatingSystemMemoryAvailablePageFileSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0008 This attribute defines the available page file memory +for the operating system memory in KBytes." + ::= { operatingSystemMemoryTableEntry 8 } +operatingSystemMemoryTotalVirtualSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0009 This attribute defines the total virtual memory +for the operating system memory in KBytes." + ::= { operatingSystemMemoryTableEntry 9 } +operatingSystemMemoryAvailableVirtualSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0400.0020.0001.0010 This attribute defines the available virtual memory +for the operating system memory in KBytes." + ::= { operatingSystemMemoryTableEntry 10 } + + +------------------------------------------------------------------------------- +-- System Resource Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.500 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- System Resource Map Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.500.10.1... +------------------------------------------------------------------------------- + +DellSystemResourceMapType ::= INTEGER { + other(1), -- type is other than following values + unknown(2), -- type is unknown + typeOne(3) -- type is type 1 (one) +} + +SystemResourceMapTableEntry ::= SEQUENCE { + systemResourceMapchassisIndex DellObjectRange, + systemResourceMapIndex DellObjectRange, + systemResourceMapStateCapabilities DellStateCapabilities, + systemResourceMapStateSettings DellStateSettings, + systemResourceMapStatus DellStatus, + systemResourceMapType DellSystemResourceMapType +} + +systemResourceMapTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemResourceMapTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0010 This object defines the System Resource Map Table." + ::= { systemResourceGroup 10 } +systemResourceMapTableEntry OBJECT-TYPE + SYNTAX SystemResourceMapTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0010.0001 This object defines the System Resource Map Table Entry." + INDEX { systemResourceMapchassisIndex, + systemResourceMapIndex } + ::= { systemResourceMapTable 1 } + +systemResourceMapchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemResourceMapTableEntry 1 } +systemResourceMapIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0010.0001.0002 This attribute defines the index (one based) of the +system resource map." + ::= { systemResourceMapTableEntry 2 } +systemResourceMapStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0010.0001.0003 This attribute defines the state capabilities of the +system resource map." + ::= { systemResourceMapTableEntry 3 } +systemResourceMapStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0500.0010.0001.0004 This attribute defines the state settings of the +system resource map." + ::= { systemResourceMapTableEntry 4 } +systemResourceMapStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0010.0001.0005 This attribute defines the status of the +system resource map." + ::= { systemResourceMapTableEntry 5 } +systemResourceMapType OBJECT-TYPE + SYNTAX DellSystemResourceMapType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0010.0001.0006 This attribute defines the type of the system resource map." + ::= { systemResourceMapTableEntry 6 } + + +------------------------------------------------------------------------------- +-- System Resource Owner Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.500.20.1... +------------------------------------------------------------------------------- + +DellResourceOwnerInterfaceType ::= INTEGER { + typeIsOther(1), -- type is other than following values + typeIsUnknown(2), -- type is unknown + typeIsInternal(3), -- type is Internal + typeIsISA(4), -- type is ISA Bus + typeIsEISA(5), -- type is EISA Bus + typeIsMCA(6), -- type is MCA Bus + typeIsTurboChannel(7), -- type is TurboChannel Bus + typeIsPCI(8) -- type is PCI Bus +} + +SystemResourceOwnerTableEntry ::= SEQUENCE { + systemResourceOwnerchassisIndex DellObjectRange, + systemResourceOwnerIndex DellObjectRange, + systemResourceOwnerStateCapabilities DellStateCapabilities, + systemResourceOwnerStateSettings DellStateSettings, + systemResourceOwnerStatus DellStatus, + systemResourceOwnerInterfaceType DellResourceOwnerInterfaceType, + systemResourceMapIndexReference DellObjectRange, + systemResourceOwnerDescriptionName DellString, + systemResourceOwnerInterfaceInstance DellObjectRange +} + +systemResourceOwnerTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemResourceOwnerTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0020 This object defines the System Resource Owner Table." + ::= { systemResourceGroup 20 } +systemResourceOwnerTableEntry OBJECT-TYPE + SYNTAX SystemResourceOwnerTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0020.0001 This object defines the System Resource Owner Table Entry." + INDEX { systemResourceOwnerchassisIndex, + systemResourceOwnerIndex } + ::= { systemResourceOwnerTable 1 } + +systemResourceOwnerchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemResourceOwnerTableEntry 1 } +systemResourceOwnerIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0002 This attribute defines the index of (one based) of the +system resource owner." + ::= { systemResourceOwnerTableEntry 2 } +systemResourceOwnerStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0003 This attribute defines the state capabilities of the +system resource owner." + ::= { systemResourceOwnerTableEntry 3 } +systemResourceOwnerStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0004 This attribute defines the state settings of the +system resource owner." + ::= { systemResourceOwnerTableEntry 4 } +systemResourceOwnerStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0005 This attribute defines the status of the +system resource owner." + ::= { systemResourceOwnerTableEntry 5 } +systemResourceOwnerInterfaceType OBJECT-TYPE + SYNTAX DellResourceOwnerInterfaceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0006 This attribute defines the interface type of the +system resource owner." + ::= { systemResourceOwnerTableEntry 6 } +systemResourceMapIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0007 This attribute defines the index to the associated +system resource map." + ::= { systemResourceOwnerTableEntry 7 } +systemResourceOwnerDescriptionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0008 This attribute defines the description of the +system resource owner." + ::= { systemResourceOwnerTableEntry 8 } +systemResourceOwnerInterfaceInstance OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0020.0001.0009 This attribute defines the index to the associated +system resource owner interface type." + ::= { systemResourceOwnerTableEntry 9 } + + +------------------------------------------------------------------------------- +-- System Resource I/O Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.500.30.1... +------------------------------------------------------------------------------- + +DellResourceShareDisposition ::= INTEGER { + shareIsOther(1), -- disposition is other than following values + shareIsUnknown(2), -- disposition is unknown + shareIsDeviceExclusive(3), -- disposition is Device Exclusive + shareIsDriverExclusive(4), -- disposition is Driver Exclusive + shareIsShared(5) -- disposition is Shared +} + +SystemResourceIOPortTableEntry ::= SEQUENCE { + systemResourceIOPortchassisIndex DellObjectRange, + systemResourceIOPortIndex DellObjectRange, + systemResourceIOPortStateCapabilities DellStateCapabilities, + systemResourceIOPortStateSettings DellStateSettings, + systemResourceIOPortStatus DellStatus, + systemResourceIOPortOwnerIndexReference DellObjectRange, + systemResourceIOPortShareDisposition DellResourceShareDisposition, + systemResourceIOPortStartingAddress DellUnsigned64BitRange, + systemResourceIOPortEndingAddress DellUnsigned64BitRange +} + +systemResourceIOPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemResourceIOPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0030 This object defines the System Resource I/O Port Table." + ::= { systemResourceGroup 30 } +systemResourceIOPortTableEntry OBJECT-TYPE + SYNTAX SystemResourceIOPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0030.0001 This object defines the System Resource I/O Port Table Entry." + INDEX { systemResourceIOPortchassisIndex, + systemResourceIOPortIndex } + ::= { systemResourceIOPortTable 1 } + +systemResourceIOPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemResourceIOPortTableEntry 1 } +systemResourceIOPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0002 This attribute defines the index (one based) of the +system resource I/O port." + ::= { systemResourceIOPortTableEntry 2 } +systemResourceIOPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0003 This attribute defines the state capabilities of the +system resource I/O port." + ::= { systemResourceIOPortTableEntry 3 } +systemResourceIOPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0004 This attribute defines the state settings of the +system resource I/O port." + ::= { systemResourceIOPortTableEntry 4 } +systemResourceIOPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0005 This attribute defines the status of the +system resource I/O port." + ::= { systemResourceIOPortTableEntry 5 } +systemResourceIOPortOwnerIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0006 This attribute defines the index to the associated +system resource owner for this system resource I/O port." + ::= { systemResourceIOPortTableEntry 6 } +systemResourceIOPortShareDisposition OBJECT-TYPE + SYNTAX DellResourceShareDisposition + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0007 This attribute defines the share disposition of the +system resource I/O port." + ::= { systemResourceIOPortTableEntry 7 } +systemResourceIOPortStartingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0008 This attribute defines the 64-bit starting address +of the system resource I/O port." + ::= { systemResourceIOPortTableEntry 8 } +systemResourceIOPortEndingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0030.0001.0009 This attribute defines the 64-bit ending address +of the system resource I/O port." + ::= { systemResourceIOPortTableEntry 9 } + + +------------------------------------------------------------------------------- +-- System Resource Memory Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.500.40.1... +------------------------------------------------------------------------------- + +DellResourceMemoryFlags ::= INTEGER { + memoryIsReadOnly(1), -- memory is read-only + memoryIsWriteOnly(2), -- memory is write-only + memoryIsReadAndWrite(3), -- memory is read-write + memoryIsPreFetchable(4), -- memory is prefetchable + memoryIsCombinedWritable(8), -- memory is combined writable + memoryIsF24(16) -- memory is F24 +} + +SystemResourceMemoryTableEntry ::= SEQUENCE { + systemResourceMemorychassisIndex DellObjectRange, + systemResourceMemoryIndex DellObjectRange, + systemResourceMemoryStateCapabilities DellStateCapabilities, + systemResourceMemoryStateSettings DellStateSettings, + systemResourceMemoryStatus DellStatus, + systemResourceMemoryOwnerIndexReference DellObjectRange, + systemResourceMemoryShareDisposition DellResourceShareDisposition, + systemResourceMemoryStartingAddress DellUnsigned64BitRange, + systemResourceMemoryEndingAddress DellUnsigned64BitRange, + systemResourceMemoryFlags DellResourceMemoryFlags +} + +systemResourceMemoryTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemResourceMemoryTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0040 This object defines the System Resource Memory Table." + ::= { systemResourceGroup 40 } +systemResourceMemoryTableEntry OBJECT-TYPE + SYNTAX SystemResourceMemoryTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0040.0001 This object defines the System Resource Memory Table Entry." + INDEX { systemResourceMemorychassisIndex, + systemResourceMemoryIndex } + ::= { systemResourceMemoryTable 1 } + +systemResourceMemorychassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemResourceMemoryTableEntry 1 } +systemResourceMemoryIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0002 This attribute defines the index (one based) of the +system resource memory." + ::= { systemResourceMemoryTableEntry 2 } +systemResourceMemoryStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0003 This attribute defines the state capabilities of the +system resource memory." + ::= { systemResourceMemoryTableEntry 3 } +systemResourceMemoryStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0004 This attribute defines the state settings of the +system resource memory." + ::= { systemResourceMemoryTableEntry 4 } +systemResourceMemoryStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0005 This attribute defines the status of the +system resource memory." + ::= { systemResourceMemoryTableEntry 5 } +systemResourceMemoryOwnerIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0006 This attribute defines the index to the associated +system resource owner for this system resource memory." + ::= { systemResourceMemoryTableEntry 6 } +systemResourceMemoryShareDisposition OBJECT-TYPE + SYNTAX DellResourceShareDisposition + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0007 This attribute defines the share disposition of the +system resource memory." + ::= { systemResourceMemoryTableEntry 7 } +systemResourceMemoryStartingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0008 This attribute defines the 64-bit starting address +of the system resource memory." + ::= { systemResourceMemoryTableEntry 8 } +systemResourceMemoryEndingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0009 This attribute defines the 64-bit ending address +of the system resource memory." + ::= { systemResourceMemoryTableEntry 9 } +systemResourceMemoryFlags OBJECT-TYPE + SYNTAX DellResourceMemoryFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0040.0001.0010 This attribute defines the permission flags of the +system resource memory." + ::= { systemResourceMemoryTableEntry 10 } + + +------------------------------------------------------------------------------- +-- System Resource Interrupts Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.500.50.1... +------------------------------------------------------------------------------- + +DellResourceInterruptType ::= INTEGER { + interruptIsLevelSensitive(1), -- type is Level Sensitive + interruptIsLatched(2) -- type is Latched +} +DellResourceInterruptTrigger ::= INTEGER { + interruptIsActiveWhenLow(1), -- trigger is active on low signal + interruptIsActiveWhenHigh(2) -- trigger is active on high signal +} + +SystemResourceInterruptTableEntry ::= SEQUENCE { + systemResourceInterruptchassisIndex DellObjectRange, + systemResourceInterruptIndex DellObjectRange, + systemResourceInterruptStateCapabilities DellStateCapabilities, + systemResourceInterruptStateSettings DellStateSettings, + systemResourceInterruptStatus DellStatus, + systemResourceInterruptOwnerIndexReference DellObjectRange, + systemResourceInterruptShareDisposition DellResourceShareDisposition, + systemResourceInterruptLevel DellUnsigned32BitRange, + systemResourceInterruptType DellResourceInterruptType, + systemResourceInterruptTrigger DellResourceInterruptTrigger +} + +systemResourceInterruptTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemResourceInterruptTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0050 This object defines the System Resource Interrupts Table." + ::= { systemResourceGroup 50 } +systemResourceInterruptTableEntry OBJECT-TYPE + SYNTAX SystemResourceInterruptTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0050.0001 This object defines the System Resource Interrupts Table Entry." + INDEX { systemResourceInterruptchassisIndex, + systemResourceInterruptIndex } + ::= { systemResourceInterruptTable 1 } + +systemResourceInterruptchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemResourceInterruptTableEntry 1 } +systemResourceInterruptIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0002 This attribute defines the index (one based) of the +system resource interrupt." + ::= { systemResourceInterruptTableEntry 2 } +systemResourceInterruptStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0003 This attribute defines the state capabilities of the +system resource interrupt." + ::= { systemResourceInterruptTableEntry 3 } +systemResourceInterruptStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0004 This attribute defines the state settings of the +system resource interrupt." + ::= { systemResourceInterruptTableEntry 4 } +systemResourceInterruptStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0005 This attribute defines the status of the +system resource interrupt." + ::= { systemResourceInterruptTableEntry 5 } +systemResourceInterruptOwnerIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0006 This attribute defines the index to the associated +system resource owner for this system resource interrupt." + ::= { systemResourceInterruptTableEntry 6 } +systemResourceInterruptShareDisposition OBJECT-TYPE + SYNTAX DellResourceShareDisposition + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0007 This attribute defines the share disposition of the +system resource interrupt." + ::= { systemResourceInterruptTableEntry 7 } +systemResourceInterruptLevel OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0008 This attribute defines the interrupt request level (IRQ) +of the system resource interrupt." + ::= { systemResourceInterruptTableEntry 8 } +systemResourceInterruptType OBJECT-TYPE + SYNTAX DellResourceInterruptType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0009 This attribute defines the interrupt type of the +system resource interrupt." + ::= { systemResourceInterruptTableEntry 9 } +systemResourceInterruptTrigger OBJECT-TYPE + SYNTAX DellResourceInterruptTrigger + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0050.0001.0010 This attribute defines the interrupt trigger of the +system resource interrupt." + ::= { systemResourceInterruptTableEntry 10 } + + +------------------------------------------------------------------------------- +-- System Resource DMA Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.500.60.1... +------------------------------------------------------------------------------- + +DellResourceDMATransferWidth ::= INTEGER { + dmaTransferWidthIsOther(1), -- width is other than following values + dmaTransferWidthIsunknown(2), -- width is unknown + dmaTransferWidthIs8Bits(3), -- width is 8 bits + dmaTransferWidthIs16Bits(4), -- width is 16 bits + dmaTransferWidthIs32Bits(5), -- width is 32 bits + dmaTransferWidthIs64Bits(6), -- width is 64 bits + dmaTransferWidthIs128Bits(7) -- width is 128 bits +} +DellResourceDMABusMaster ::= INTEGER { + dmaIsOther(1), -- bus master capability is other than following values + dmaIsUnknown(2), -- bus master capability is unknown + dmaIsNotABusmaster(3), -- DMA has no bus master capability + dmaIsABusmaster(4) -- DMA has bus master capability +} + +SystemResourceDMATableEntry ::= SEQUENCE { + systemResourceDMAchassisIndex DellObjectRange, + systemResourceDMAIndex DellObjectRange, + systemResourceDMAStateCapabilities DellStateCapabilities, + systemResourceDMAStateSettings DellStateSettings, + systemResourceDMAStatus DellStatus, + systemResourceDMAOwnerIndexReference DellObjectRange, + systemResourceDMAShareDisposition DellResourceShareDisposition, + systemResourceDMAMaximumTransferSize DellUnsigned32BitRange, + systemResourceDMATransferWidth DellResourceDMATransferWidth, + systemResourceDMABusMaster DellResourceDMABusMaster +} + +systemResourceDMATable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemResourceDMATableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0060 This object defines the System Resource DMA Table." + ::= { systemResourceGroup 60 } +systemResourceDMATableEntry OBJECT-TYPE + SYNTAX SystemResourceDMATableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0500.0060.0001 This object defines the System Resource DMA Table Entry." + INDEX { systemResourceDMAchassisIndex, + systemResourceDMAIndex } + ::= { systemResourceDMATable 1 } + +systemResourceDMAchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemResourceDMATableEntry 1 } +systemResourceDMAIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0002 This attribute defines the index (one based) of the +system resource DMA." + ::= { systemResourceDMATableEntry 2 } +systemResourceDMAStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0003 This attribute defines the state capabilities of the +system resource DMA." + ::= { systemResourceDMATableEntry 3 } +systemResourceDMAStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0004 This attribute defines the state settings of the +system resource DMA." + ::= { systemResourceDMATableEntry 4 } +systemResourceDMAStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0005 This attribute defines the status of the +system resource DMA." + ::= { systemResourceDMATableEntry 5 } +systemResourceDMAOwnerIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0006 This attribute defines the index to the associated +system resource owner for this system resource DMA." + ::= { systemResourceDMATableEntry 6 } +systemResourceDMAShareDisposition OBJECT-TYPE + SYNTAX DellResourceShareDisposition + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0007 This attribute defines the share disposition of the +system resource DMA." + ::= { systemResourceDMATableEntry 7 } +systemResourceDMAMaximumTransferSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0008 This attribute defines the maximum size of a memory +transfer in bytes for the system resource DMA." + ::= { systemResourceDMATableEntry 8 } +systemResourceDMATransferWidth OBJECT-TYPE + SYNTAX DellResourceDMATransferWidth + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0009 This attribute defines the tranfer width of the +system resource DMA." + ::= { systemResourceDMATableEntry 9 } +systemResourceDMABusMaster OBJECT-TYPE + SYNTAX DellResourceDMABusMaster + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0500.0060.0001.0010 This attribute defines the bus master capabilities +of the system resource DMA." + ::= { systemResourceDMATableEntry 10 } + + +------------------------------------------------------------------------------- +-- Power Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Power Unit Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.10.1... +------------------------------------------------------------------------------- + +PowerUnitTableEntry ::= SEQUENCE { + powerUnitchassisIndex DellObjectRange, + powerUnitIndex DellObjectRange, + powerUnitStateCapabilities DellStateCapabilities, + powerUnitStateSettings DellStateSettings, + powerUnitRedundancyStatus DellStatusRedundancy, + powerSupplyCountForRedundancy DellObjectRange, + powerUnitName DellString, + powerUnitStatus DellStatus +} + +powerUnitTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerUnitTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0010 This object defines the Power Unit Table." + ::= { powerGroup 10 } +powerUnitTableEntry OBJECT-TYPE + SYNTAX PowerUnitTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0010.0001 This object defines the Power Unit Table Entry." + INDEX { powerUnitchassisIndex, + powerUnitIndex } + ::= { powerUnitTable 1 } + +powerUnitchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0001 This attribute defines the index (one based) of the +chassis." + ::= { powerUnitTableEntry 1 } +powerUnitIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0002 This attribute defines the index (one based) of the +power unit." + ::= { powerUnitTableEntry 2 } +powerUnitStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0003 This attribute defines the state capabilities of the +power unit." + ::= { powerUnitTableEntry 3 } +powerUnitStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0004 This attribute defines the state settings of the +power unit." + ::= { powerUnitTableEntry 4 } +powerUnitRedundancyStatus OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0005 This attribute defines the redundancy status of the +power unit." + ::= { powerUnitTableEntry 5 } +powerSupplyCountForRedundancy OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0006 This attribute defines the total number of power supplies +required for this power unit to have full redundancy." + ::= { powerUnitTableEntry 6 } +powerUnitName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0007 This attribute defines the name of the power unit." + ::= { powerUnitTableEntry 7 } +powerUnitStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0010.0001.0008 This attribute defines the status of the power unit." + ::= { powerUnitTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Power Supply Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.12.1... +------------------------------------------------------------------------------- + +DellPowerSupplyStateCapabilitiesUnique ::= INTEGER { + -- If 0 (zero), there are no power supply state capabilities + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- state capabilities are unknown + onlineCapable(2), -- power supply can be enabled (online) or disabled (offline) + notReadyCapable(4) -- power supply can be not ready +} +DellPowerSupplyStateSettingsUnique ::= INTEGER { + -- If 0 (zero), there are no power supply state settings + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- state settings are unknown + onLine(2), -- power supply is enabled (online) + notReady(4), -- power supply is not ready + fanFailure(8), -- power supply fan has failed + onlineAndFanFailure(10), + powerSupplyIsON(16), -- power supply is supplying power + powerSupplyIsOK(32), -- power supply is indicating it is OK + acSwitchIsON(64), -- power supply is indicating AC power switch is on + onlineandAcSwitchIsON(66), + acPowerIsON(128), -- power supply is indicating AC power is on + onlineAndAcPowerIsON(130), + onlineAndPredictiveFailure(210), + acPowerAndSwitchAreOnPowerSupplyIsOnIsOkAndOnline(242) +} +DellPowerSupplyType ::= INTEGER { + powerSupplyTypeIsOther(1), -- type is other than following values + powerSupplyTypeIsUnknown(2), -- type is unknown + powerSupplyTypeIsLinear(3), -- type is Linear + powerSupplyTypeIsSwitching(4), -- type is Switching + powerSupplyTypeIsBattery(5), -- type is Battery + powerSupplyTypeIsUPS(6), -- type is Uninterruptible Power Supply + powerSupplyTypeIsConverter(7), -- type is Converter + powerSupplyTypeIsRegulator(8), -- type is Regulator + powerSupplyTypeIsAC(9), -- type is AC + powerSupplyTypeIsDC(10), -- type is DC + powerSupplyTypeIsVRM(11) -- type is VRM +} +DellPowerSupplySensorState ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + presenceDetected(1), -- state is Presence detected + psFailureDetected(2), -- state is PS Failure detected + predictiveFailure(4), -- state is Predictive Failure + psACLost(8), -- state is PS AC lost + acLostOrOutOfRange(16), -- state is AC lost or out-of-range + acOutOfRangeButPresent(32), -- state is AC out-of-range, but present + configurationError(64) -- state is Configuration error +} +DellPowerSupplyConfigurationErrorType ::= INTEGER { + vendorMismatch(1), -- error type is Vendor mismatch + revisionMismatch(2), -- error type is Revision mismatch + processorMissing(3) -- error type is Processor missing +} + +PowerSupplyTableEntry ::= SEQUENCE { + powerSupplychassisIndex DellObjectRange, + powerSupplyIndex DellObjectRange, + powerSupplyStateCapabilitiesUnique DellPowerSupplyStateCapabilitiesUnique, + powerSupplyStateSettingsUnique DellPowerSupplyStateSettingsUnique, + powerSupplyStatus DellStatus, + powerSupplyOutputWatts DellSigned32BitRange, + powerSupplyType DellPowerSupplyType, + powerSupplyLocationName DellString, + powerSupplyInputVoltage DellSigned32BitRange, + powerSupplypowerUnitIndexReference DellObjectRange, + powerSupplySensorState DellPowerSupplySensorState, + powerSupplyConfigurationErrorType DellPowerSupplyConfigurationErrorType, + powerSupplyPowerMonitorCapable DellBoolean +} + +powerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerSupplyTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0012 This object defines the Power Supply Table." + ::= { powerGroup 12 } +powerSupplyTableEntry OBJECT-TYPE + SYNTAX PowerSupplyTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0012.0001 This object defines the Power Supply Table Entry." + INDEX { powerSupplychassisIndex, + powerSupplyIndex } + ::= { powerSupplyTable 1 } + +powerSupplychassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0001 This attribute defines the index (one based) of the +chassis." + ::= { powerSupplyTableEntry 1 } +powerSupplyIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0002 This attribute defines the index (one based) of the +power supply." + ::= { powerSupplyTableEntry 2 } +powerSupplyStateCapabilitiesUnique OBJECT-TYPE + SYNTAX DellPowerSupplyStateCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0003 This attribute defines the state capabilities of the +power supply." + ::= { powerSupplyTableEntry 3 } +powerSupplyStateSettingsUnique OBJECT-TYPE + SYNTAX DellPowerSupplyStateSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0004 This attribute defines the state settings of the +power supply." + ::= { powerSupplyTableEntry 4 } +powerSupplyStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0005 This attribute defines the status of the power supply." + ::= { powerSupplyTableEntry 5 } +powerSupplyOutputWatts OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0006 This attribute defines the maximum sustained output +wattage of the power supply, in tenths of watts." + ::= { powerSupplyTableEntry 6 } +powerSupplyType OBJECT-TYPE + SYNTAX DellPowerSupplyType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0007 This attribute defines the type of the power supply." + ::= { powerSupplyTableEntry 7 } +powerSupplyLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0008 This attribute defines the location of the power supply." + ::= { powerSupplyTableEntry 8 } +powerSupplyInputVoltage OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0009 This attribute defines the input voltage to the power +supply, in volts." + ::= { powerSupplyTableEntry 9 } +powerSupplypowerUnitIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0010 This attribute defines the index to the associated +power unit if the power supply is part of a power unit." + ::= { powerSupplyTableEntry 10 } +powerSupplySensorState OBJECT-TYPE + SYNTAX DellPowerSupplySensorState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0011 This attribute defines the state reported by the +power supply sensor. This attribute supplements the attribute +powerSupplyStateSettingsUnique." + ::= { powerSupplyTableEntry 11 } +powerSupplyConfigurationErrorType OBJECT-TYPE + SYNTAX DellPowerSupplyConfigurationErrorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0012 This attribute defines the type of configuration error +reported by the power supply sensor. When the configurationError bit is on +in the value for the attribute powerSupplySensorState, a value is returned +for this attribute; otherwise, a value is not returned for this attribute." + ::= { powerSupplyTableEntry 12 } +powerSupplyPowerMonitorCapable OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0012.0001.0013 This attribute defines a boolean value that reports +whether the power supply is capable of monitoring power consumption." + ::= { powerSupplyTableEntry 13 } + + +------------------------------------------------------------------------------- +-- Voltage Probe Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.20.1... +------------------------------------------------------------------------------- + +DellVoltageType ::= INTEGER { + voltageProbeTypeIsOther(1), -- type is other than following values + voltageProbeTypeIsUnknown(2), -- type is unknown + voltageProbeTypeIs1Point5Volt(3), -- type is 1.5 volt probe + voltageProbeTypeIs3Point3Volt(4), -- type is 3.3 volt probe + voltageProbeTypeIs5Volt(5), -- type is 5 volt probe + voltageProbeTypeIsMinus5Volt(6), -- type is -5 volt probe + voltageProbeTypeIs12Volt(7), -- type is 12 volt probe + voltageProbeTypeIsMinus12Volt(8), -- type is -12 volt probe + voltageProbeTypeIsIO(9), -- type is I/O probe + voltageProbeTypeIsCore(10), -- type is Core probe + voltageProbeTypeIsFLEA(11), -- type is FLEA (standby) probe + voltageProbeTypeIsBattery(12), -- type is Battery probe + voltageProbeTypeIsTerminator(13), -- type is SCSI Termination probe + voltageProbeTypeIs2Point5Volt(14), -- type is 2.5 volt probe + voltageProbeTypeIsGTL(15), -- type is GTL (ground termination logic) probe + voltageProbeTypeIsDiscrete(16) -- type is voltage probe with discrete reading +} +DellVoltageDiscreteReading ::= INTEGER { + voltageIsGood(1), -- voltage reading is Good + voltageIsBad(2) -- voltage reading is Bad +} + +VoltageProbeTableEntry ::= SEQUENCE { + voltageProbechassisIndex DellObjectRange, + voltageProbeIndex DellObjectRange, + voltageProbeStateCapabilities DellStateCapabilities, + voltageProbeStateSettings DellStateSettings, + voltageProbeStatus DellStatusProbe, + voltageProbeReading DellSigned32BitRange, + voltageProbeType DellVoltageType, + voltageProbeLocationName DellString, + voltageProbeUpperNonRecoverableThreshold DellSigned32BitRange, + voltageProbeUpperCriticalThreshold DellSigned32BitRange, + voltageProbeUpperNonCriticalThreshold DellSigned32BitRange, + voltageProbeLowerNonCriticalThreshold DellSigned32BitRange, + voltageProbeLowerCriticalThreshold DellSigned32BitRange, + voltageProbeLowerNonRecoverableThreshold DellSigned32BitRange, + voltageProbeProbeCapabilities DellProbeCapabilities, + voltageProbeDiscreteReading DellVoltageDiscreteReading +} + +voltageProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF VoltageProbeTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0020 This object defines the Voltage Probe Table." + ::= { powerGroup 20 } +voltageProbeTableEntry OBJECT-TYPE + SYNTAX VoltageProbeTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0020.001 This object defines the Voltage Probe Table Entry." + INDEX { voltageProbechassisIndex, + voltageProbeIndex } + ::= { voltageProbeTable 1 } + +voltageProbechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0001 This attribute defines the index (one based) of the +chassis." + ::= { voltageProbeTableEntry 1 } +voltageProbeIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0002 This attribute defines the index (one based) of the +voltage probe." + ::= { voltageProbeTableEntry 2 } +voltageProbeStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0003 This attribute defines the state capabilities of the +voltage probe." + ::= { voltageProbeTableEntry 3 } +voltageProbeStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0004 This attribute defines the state settings of the +voltage probe." + ::= { voltageProbeTableEntry 4 } +voltageProbeStatus OBJECT-TYPE + SYNTAX DellStatusProbe + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0005 This attribute defines the probe status of the +voltage probe." + ::= { voltageProbeTableEntry 5 } +voltageProbeReading OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0006 This attribute defines the reading for a voltage +probe of type other than voltageProbeTypeIsDiscrete. When the value +for voltageProbeType is other than voltageProbeTypeIsDiscrete, the value +returned for this attribute is the voltage that the probe is reading +in millivolts. When the value for voltageProbeType is +voltageProbeTypeIsDiscrete, a value is not returned for this attribute." + ::= { voltageProbeTableEntry 6 } +voltageProbeType OBJECT-TYPE + SYNTAX DellVoltageType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0007 This attribute defines the type of the voltage probe." + ::= { voltageProbeTableEntry 7 } +voltageProbeLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0008 This attribute defines the location name of the +voltage probe." + ::= { voltageProbeTableEntry 8 } +voltageProbeUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0009 This attribute defines the upper nonrecoverable threshold +of the voltage probe. The value is an integer representing the voltage +of the threshold in millivolts." + ::= { voltageProbeTableEntry 9 } +voltageProbeUpperCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0010 This attribute defines the upper critical threshold +of the voltage probe. The value is an integer representing the voltage +of the threshold in millivolts." + ::= { voltageProbeTableEntry 10 } +voltageProbeUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0011 This attribute defines the upper noncritical threshold +of the voltage probe. The value is an integer representing the voltage +of the threshold in millivolts." + ::= { voltageProbeTableEntry 11 } +voltageProbeLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0012 This attribute defines the lower noncritical threshold +of the voltage probe. The value is an integer representing the voltage +of the threshold in millivolts." + ::= { voltageProbeTableEntry 12 } +voltageProbeLowerCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0013 This attribute defines the lower critical threshold +of the voltage probe. The value is an integer representing the voltage +of the threshold in millivolts." + ::= { voltageProbeTableEntry 13 } +voltageProbeLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0014 This attribute defines the lower nonrecoverable threshold +of the voltage probe. The value is an integer representing the voltage +of the threshold in millivolts." + ::= { voltageProbeTableEntry 14 } +voltageProbeProbeCapabilities OBJECT-TYPE + SYNTAX DellProbeCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0015 This attribute defines the probe capabilities of the +voltage probe." + ::= { voltageProbeTableEntry 15 } +voltageProbeDiscreteReading OBJECT-TYPE + SYNTAX DellVoltageDiscreteReading + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0020.0001.0016 This attribute defines the reading for a voltage +probe of type voltageProbeTypeIsDiscrete. When the value for voltageProbeType +is other than voltageProbeTypeIsDiscrete, a value is not returned for this +attribute. When the value for voltageProbeType is voltageProbeTypeIsDiscrete, +the value returned for this attribute is the discrete reading for the probe." + ::= { voltageProbeTableEntry 16 } + + +------------------------------------------------------------------------------- +-- Amperage Probe Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.30.1... +------------------------------------------------------------------------------- + +DellAmperageProbeType ::= INTEGER { + amperageProbeTypeIsOther(1), -- type is other than following values + amperageProbeTypeIsUnknown(2), -- type is unknown + amperageProbeTypeIs1Point5Volt(3), -- type is 1.5 amperage probe + amperageProbeTypeIs3Point3volt(4), -- type is 3.3 amperage probe + amperageProbeTypeIs5Volt(5), -- type is 5 amperage probe + amperageProbeTypeIsMinus5Volt(6), -- type is -5 amperage probe + amperageProbeTypeIs12Volt(7), -- type is 12 amperage probe + amperageProbeTypeIsMinus12Volt(8), -- type is -12 amperage probe + amperageProbeTypeIsIO(9), -- type is I/O probe + amperageProbeTypeIsCore(10), -- type is Core probe + amperageProbeTypeIsFLEA(11), -- type is FLEA (standby) probe + amperageProbeTypeIsBattery(12), -- type is Battery probe + amperageProbeTypeIsTerminator(13), -- type is SCSI Termination probe + amperageProbeTypeIs2Point5Volt(14), -- type is 2.5 amperage probe + amperageProbeTypeIsGTL(15), -- type is GTL (ground termination logic) probe + amperageProbeTypeIsDiscrete(16), -- type is amperage probe with discrete reading + amperageProbeTypeIsPowerSupplyAmps(23), -- type is Power Supply probe with reading in Amps + amperageProbeTypeIsPowerSupplyWatts(24), -- type is Power Supply probe with reading in Watts + amperageProbeTypeIsSystemAmps(25), -- type is System probe with reading in Amps + amperageProbeTypeIsSystemWatts(26) -- type is System probe with reading in Watts +} +DellAmperageDiscreteReading ::= INTEGER { + amperageIsGood(1), -- amperage reading is Good + amperageIsBad(2) -- amperage reading is Bad +} + +AmperageProbeTableEntry ::= SEQUENCE { + amperageProbechassisIndex DellObjectRange, + amperageProbeIndex DellObjectRange, + amperageProbeStateCapabilities DellStateCapabilities, + amperageProbeStateSettings DellStateSettings, + amperageProbeStatus DellStatusProbe, + amperageProbeReading DellSigned32BitRange, + amperageProbeType DellAmperageProbeType, + amperageProbeLocationName DellString, + amperageProbeUpperNonRecoverableThreshold DellSigned32BitRange, + amperageProbeUpperCriticalThreshold DellSigned32BitRange, + amperageProbeUpperNonCriticalThreshold DellSigned32BitRange, + amperageProbeLowerNonCriticalThreshold DellSigned32BitRange, + amperageProbeLowerCriticalThreshold DellSigned32BitRange, + amperageProbeLowerNonRecoverableThreshold DellSigned32BitRange, + amperageProbeProbeCapabilities DellProbeCapabilities, + amperageProbeDiscreteReading DellAmperageDiscreteReading +} + +amperageProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF AmperageProbeTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0030 This object defines the Amperage Probe Table." + ::= { powerGroup 30 } +amperageProbeTableEntry OBJECT-TYPE + SYNTAX AmperageProbeTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0030.0001 This object defines the Amperage Probe Table Entry." + INDEX { amperageProbechassisIndex, + amperageProbeIndex } + ::= { amperageProbeTable 1 } + +amperageProbechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0001 This attribute defines the index (one based) of the +chassis." + ::= { amperageProbeTableEntry 1 } +amperageProbeIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0002 This attribute defines the index (one based) of the +amperage probe." + ::= { amperageProbeTableEntry 2 } +amperageProbeStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0003 This attribute defines the state capabilities of the +amperage probe." + ::= { amperageProbeTableEntry 3 } +amperageProbeStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0004 This attribute defines the state settings of the +amperage probe." + ::= { amperageProbeTableEntry 4 } +amperageProbeStatus OBJECT-TYPE + SYNTAX DellStatusProbe + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0005 This attribute defines the probe status of the +amperage probe." + ::= { amperageProbeTableEntry 5 } +amperageProbeReading OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0006 This attribute defines the reading for an amperage +probe of type other than amperageProbeTypeIsDiscrete. + +When the value for amperageProbeType is amperageProbeTypeIsPowerSupplyAmps +or amperageProbeTypeIsSystemAmps, the value returned for this attribute +is the power usage that the probe is reading in tenths of Amps. + +When the value for amperageProbeType is amperageProbeTypeIsPowerSupplyWatts +or amperageProbeTypeIsSystemWatts, the value returned for this attribute +is the power usage that the probe is reading in Watts. + +When the value for amperageProbeType is other than amperageProbeTypeIsDiscrete, +amperageProbeTypeIsPowerSupplyAmps, amperageProbeTypeIsPowerSupplyWatts, +amperageProbeTypeIsSystemAmps or amperageProbeTypeIsSystemWatts, +the value returned for this attribute is the amperage that the probe is +reading in Milliamps. + +When the value for amperageProbeType is amperageProbeTypeIsDiscrete, +a value is not returned for this attribute." + ::= { amperageProbeTableEntry 6 } +amperageProbeType OBJECT-TYPE + SYNTAX DellAmperageProbeType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0007 This attribute defines the type of the amperage probe." + ::= { amperageProbeTableEntry 7 } +amperageProbeLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0008 This attribute defines the location of the amperage probe." + ::= { amperageProbeTableEntry 8 } +amperageProbeUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0009 This attribute defines the upper nonrecoverable threshold +of the amperage probe. The value is an integer representing the amperage +of the threshold in milliamps." + ::= { amperageProbeTableEntry 9 } +amperageProbeUpperCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0010 This attribute defines the upper critical threshold +of the amperage probe. The value is an integer representing the amperage +of the threshold in milliamps." + ::= { amperageProbeTableEntry 10 } +amperageProbeUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0011 This attribute defines the upper noncritical threshold +of the amperage probe. The value is an integer representing the amperage +of the threshold in milliamps." + ::= { amperageProbeTableEntry 11 } +amperageProbeLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0012 This attribute defines the lower noncritical threshold +of the amperage probe. The value is an integer representing the amperage +of the threshold in milliamps." + ::= { amperageProbeTableEntry 12 } +amperageProbeLowerCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0013 This attribute defines the lower critical threshold +of the amperage probe. The value is an integer representing the amperage +of the threshold in milliamps." + ::= { amperageProbeTableEntry 13 } +amperageProbeLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0014 This attribute defines the lower nonrecoverable threshold +of the amperage probe. The value is an integer representing the amperage +of the threshold in milliamps." + ::= { amperageProbeTableEntry 14 } +amperageProbeProbeCapabilities OBJECT-TYPE + SYNTAX DellProbeCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0015 This attribute defines the probe capabilities of the +amperage probe." + ::= { amperageProbeTableEntry 15 } +amperageProbeDiscreteReading OBJECT-TYPE + SYNTAX DellAmperageDiscreteReading + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0030.0001.0016 This attribute defines the reading for an amperage +probe of type amperageProbeTypeIsDiscrete. When the value for amperageProbeType +is other than amperageProbeTypeIsDiscrete, a value is not returned for this +attribute. When the value for amperageProbeType is amperageProbeTypeIsDiscrete, +the value returned for this attribute is the discrete reading for the probe." + ::= { amperageProbeTableEntry 16 } + + +------------------------------------------------------------------------------- +-- AC Power Switch Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.40.1... +------------------------------------------------------------------------------- + +DellACPowerSwitchCapabilities ::= INTEGER { + -- If 0 (zero), there are no AC Power Switch capabilities + -- Note: These values are bit masks, so combination values are possible. + unknownCapabilities(1), -- capabilities are unknown + -- The objects capabilities allow it to be set to: + inputSourceCord1NoReturnCapable(2), -- input source can be cord 1, with no return + inputSourceCord1ReturnCapable(4), -- input source can be cord 1, with return + inputSourceCord2NoReturnCapable(8), -- input source can be cord 2, with no return + inputSourceCord1NoReturnCord1ReturnAndCord2NoReturnCapable(14), + inputSourceCord2ReturnCapable(16), -- input source can be cord 2, with return + inputSourceAllExceptSharedCapable(30), + inputSourceSharedCapable(32), -- input source can be shared + inputSourceAllCapable(62) +} +DellACPowerSwitchSettings ::= INTEGER { + -- If 0 (zero), there are no AC Power Switch settings + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- settings are unknown + -- Input source settings are mutually-exclusive + inputSourceCord1NoReturn(2), -- input source is cord 1, with no return + inputSourceCord1Return(4), -- input source is cord 1, with return + inputSourceCord2NoReturn(8), -- input source is cord 2, with no return + inputSourceCord2Return(16), -- input source is cord 2, with return + inputSourceShared(32) -- input source is shared +} +DellACPowerSwitchRedundancyMode ::= INTEGER { + nonRedundant(1), -- AC power switch not expecting redundancy + redundant(2) -- AC power switch is expecting redundancy +} + +ACPowerSwitchTableEntry ::= SEQUENCE { + aCPowerSwitchchassisIndex DellObjectRange, + aCPowerSwitchIndex DellObjectRange, + aCPowerSwitchCapabilities DellACPowerSwitchCapabilities, + aCPowerSwitchSettings DellACPowerSwitchSettings, + aCPowerSwitchRedundancyStatus DellStatusRedundancy, + aCPowerCordCountForRedundancy DellObjectRange, + aCPowerSwitchName DellString, + aCPowerSwitchRedundancyMode DellACPowerSwitchRedundancyMode, + aCPowerSwitchStatus DellStatus +} + +aCPowerSwitchTable OBJECT-TYPE + SYNTAX SEQUENCE OF ACPowerSwitchTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0040 This object defines the AC Power Switch Table." + ::= { powerGroup 40 } +aCPowerSwitchTableEntry OBJECT-TYPE + SYNTAX ACPowerSwitchTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0040.0001 This object defines the AC Power Switch Table Entry." + INDEX { aCPowerSwitchchassisIndex, + aCPowerSwitchIndex } + ::= { aCPowerSwitchTable 1 } + +aCPowerSwitchchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { aCPowerSwitchTableEntry 1 } +aCPowerSwitchIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0002 This attribute defines the index (one based) of the +AC power switch." + ::= { aCPowerSwitchTableEntry 2 } +aCPowerSwitchCapabilities OBJECT-TYPE + SYNTAX DellACPowerSwitchCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0003 This attribute defines the capabilities of the +AC power switch." + ::= { aCPowerSwitchTableEntry 3 } +aCPowerSwitchSettings OBJECT-TYPE + SYNTAX DellACPowerSwitchSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0004 This attribute defines the settings of the +AC power switch." + ::= { aCPowerSwitchTableEntry 4 } +aCPowerSwitchRedundancyStatus OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0005 This attribute defines the redundancy status of the +AC power switch." + ::= { aCPowerSwitchTableEntry 5 } +aCPowerCordCountForRedundancy OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0006 This attribute defines the total number of AC power +cords required for this AC power switch to have full redundancy." + ::= { aCPowerSwitchTableEntry 6 } +aCPowerSwitchName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0007 This attribute defines the name of the AC power switch." + ::= { aCPowerSwitchTableEntry 7 } +aCPowerSwitchRedundancyMode OBJECT-TYPE + SYNTAX DellACPowerSwitchRedundancyMode + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0008 This attribute defines the redundancy mode of the +AC power switch." + ::= { aCPowerSwitchTableEntry 8 } +aCPowerSwitchStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0040.0001.0009 This attribute defines the status of the AC power switch." + ::= { aCPowerSwitchTableEntry 9 } + + +------------------------------------------------------------------------------- +-- AC Power Cord Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.42.1... +------------------------------------------------------------------------------- + +DellACPowerCordStateCapabilities ::= INTEGER { + -- If 0 (zero), there are no AC Power Cord state capabilities + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- state capabilities are unknown + enableCapable(2), -- AC power cord can be enabled (online) or disabled (offline) + notReadyCapable(4) -- AC power cord can be not ready +} +DellACPowerCordStateSettings ::= INTEGER { + -- If 0 (zero), there are no AC Power Cord state settings + -- Note: These values are bit masks, so combination values are possible. + unknown(1), -- state settings are unknown + enabled(2), -- AC power cord is enabled (online) + notReady(4), -- AC power cord is not ready + acPowerCordHasPower(8), -- AC power cord has power + acPowerCordIsEnabledAndHasPower(10), + acPowerCordIsActiveSource(16), -- AC power cord is active source of AC power + acPowerCordIsEnabledHasPowerAndIsActiveSource(26) +} + +ACPowerCordTableEntry ::= SEQUENCE { + aCPowerCordchassisIndex DellObjectRange, + aCPowerCordIndex DellObjectRange, + aCPowerCordStateCapabilities DellACPowerCordStateCapabilities, + aCPowerCordStateSettings DellACPowerCordStateSettings, + aCPowerCordStatus DellStatus, + aCPowerCordaCPowerSwitchIndexReference DellObjectRange, + aCPowerCordLocationName DellString +} + +aCPowerCordTable OBJECT-TYPE + SYNTAX SEQUENCE OF ACPowerCordTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0042 This object defines the AC Power Cord Table." + ::= { powerGroup 42 } +aCPowerCordTableEntry OBJECT-TYPE + SYNTAX ACPowerCordTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0042.0001 This object defines the AC Power Cord Table Entry." + INDEX { aCPowerCordchassisIndex, + aCPowerCordIndex } + ::= { aCPowerCordTable 1 } + +aCPowerCordchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0042.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { aCPowerCordTableEntry 1 } +aCPowerCordIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0042.0001.0002 This attribute defines the index (one based) of the +AC power cord." + ::= { aCPowerCordTableEntry 2 } +aCPowerCordStateCapabilities OBJECT-TYPE + SYNTAX DellACPowerCordStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0042.0001.0003 This attribute defines the state capabilities of the +AC power cord." + ::= { aCPowerCordTableEntry 3 } +aCPowerCordStateSettings OBJECT-TYPE + SYNTAX DellACPowerCordStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0042.0001.0004 This attribute defines the state settings of the +AC power cord." + ::= { aCPowerCordTableEntry 4 } +aCPowerCordStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0042.0001.0005 This attribute defines the status of the AC power cord." + ::= { aCPowerCordTableEntry 5 } +aCPowerCordaCPowerSwitchIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0042.0001.0006 This attribute defines the index (one based) to the +associated AC power switch for this AC power cord." + ::= { aCPowerCordTableEntry 6 } +aCPowerCordLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0042.0001.0007 This attribute defines the location of the +AC power cord." + ::= { aCPowerCordTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Battery Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.50.1... +------------------------------------------------------------------------------- + +DellBatteryReading ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + predictiveFailure(1), -- battery predictive failure + failed(2), -- battery failed + presenceDetected(4) -- battery presence detected +} + +BatteryTableEntry ::= SEQUENCE { + batteryChassisIndex DellObjectRange, + batteryIndex DellObjectRange, + batteryStateCapabilities DellStateCapabilities, + batteryStateSettings DellStateSettings, + batteryStatus DellStatus, + batteryReading DellBatteryReading, + batteryLocationName DellString +} + +batteryTable OBJECT-TYPE + SYNTAX SEQUENCE OF BatteryTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0050 This object defines the Battery Table." + ::= { powerGroup 50 } +batteryTableEntry OBJECT-TYPE + SYNTAX BatteryTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0050.0001 This object defines the Battery Table Entry." + INDEX { batteryChassisIndex, + batteryIndex } + ::= { batteryTable 1 } + +batteryChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0050.0001.0001 This attribute defines the index (one based) of the +chassis that contains the battery." + ::= { batteryTableEntry 1 } +batteryIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0050.0001.0002 This attribute defines the index (one based) of the +battery." + ::= { batteryTableEntry 2 } +batteryStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0050.0001.0003 This attribute defines the state capabilities of the +battery." + ::= { batteryTableEntry 3 } +batteryStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0050.0001.0004 This attribute defines the state settings of the +battery." + ::= { batteryTableEntry 4 } +batteryStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0050.0001.0005 This attribute defines the status of the battery." + ::= { batteryTableEntry 5 } +batteryReading OBJECT-TYPE + SYNTAX DellBatteryReading + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0050.0001.0006 This attribute defines the reading of the battery." + ::= { batteryTableEntry 6 } +batteryLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0050.0001.0007 This attribute defines the location of the battery." + ::= { batteryTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Power Usage Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.600.60.1... +------------------------------------------------------------------------------- + +PowerUsageTableEntry ::= SEQUENCE { + powerUsageChassisIndex DellObjectRange, + powerUsageIndex DellObjectRange, + powerUsageStateCapabilities DellStateCapabilities, + powerUsageStateSettings DellStateSettings, + powerUsageStatus DellStatus, + powerUsageEntityName DellString, + powerUsageCumulativeWattage DellUnsigned32BitRange, + powerUsageCumulativeWattageStartDateName DellDateName, + powerUsagePeakWatts DellUnsigned32BitRange, + powerUsagePeakWattsStartDateName DellDateName, + powerUsagePeakWattsReadingDateName DellDateName, + powerUsagePeakAmps DellUnsigned32BitRange, + powerUsagePeakAmpsStartDateName DellDateName, + powerUsagePeakAmpsReadingDateName DellDateName +} + +powerUsageTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerUsageTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0060 This object defines the Power Usage Table." + ::= { powerGroup 60 } +powerUsageTableEntry OBJECT-TYPE + SYNTAX PowerUsageTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0600.0060.0001 This object defines the Power Usage Table Entry." + INDEX { powerUsageChassisIndex, + powerUsageIndex } + ::= { powerUsageTable 1 } + +powerUsageChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { powerUsageTableEntry 1 } +powerUsageIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0002 This attribute defines the index (one based) of the +power usage information." + ::= { powerUsageTableEntry 2 } +powerUsageStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0003 This attribute defines the state capabilities of the +power usage information." + ::= { powerUsageTableEntry 3 } +powerUsageStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0004 This attribute defines the state settings of the +power usage information." + ::= { powerUsageTableEntry 4 } +powerUsageStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0005 This attribute defines the status of the +power usage information." + ::= { powerUsageTableEntry 5 } +powerUsageEntityName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0006 This attribute defines the name of the entity +associated with this power usage information." + ::= { powerUsageTableEntry 6 } +powerUsageCumulativeWattage OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0007 This attribute defines the total wattage used +(in Watt-hours) by this entity since the date and time specified +by the powerUsageCumulativeWattageStartDateName attribute." + ::= { powerUsageTableEntry 7 } +powerUsageCumulativeWattageStartDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0008 This attribute defines the date and time at +which the data collection started for the value reported by the +powerUsageCumulativeWattage attribute." + ::= { powerUsageTableEntry 8 } +powerUsagePeakWatts OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0009 This attribute defines the peak wattage reading +(in Watts) for this entity since the date and time specified by the +powerUsagePeakWattsStartDateName attribute." + ::= { powerUsageTableEntry 9 } +powerUsagePeakWattsStartDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0010 This attribute defines the date and time at +which the data collection started for the value reported by the +powerUsagePeakWatts attribute." + ::= { powerUsageTableEntry 10 } +powerUsagePeakWattsReadingDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0011 This attribute defines the date and time at +which the value reported by the powerUsagePeakWatts attribute was +measured." + ::= { powerUsageTableEntry 11 } +powerUsagePeakAmps OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0012 This attribute defines the peak amperage reading +(in tenths of Amps) for this entity since the date and time specified +by the powerUsagePeakAmpsStartDateName attribute." + ::= { powerUsageTableEntry 12 } +powerUsagePeakAmpsStartDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0013 This attribute defines the date and time at +which the data collection started for the value reported by the +powerUsagePeakAmps attribute." + ::= { powerUsageTableEntry 13 } +powerUsagePeakAmpsReadingDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0600.0060.0001.0014 This attribute defines the date and time at +which the value reported by the powerUsagePeakAmps attribute was +measured." + ::= { powerUsageTableEntry 14 } + + +------------------------------------------------------------------------------- +-- Thermal Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.700 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Cooling Unit Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.700.10.1... +------------------------------------------------------------------------------- + +CoolingUnitTableEntry ::= SEQUENCE { + coolingUnitchassisIndex DellObjectRange, + coolingUnitIndex DellObjectRange, + coolingUnitStateCapabilties DellStateCapabilities, + coolingUnitStateSettings DellStateSettings, + coolingUnitRedundancyStatus DellStatusRedundancy, + coolingDeviceCountForRedundancy DellObjectRange, + coolingUnitName DellString, + coolingUnitStatus DellStatus +} + +coolingUnitTable OBJECT-TYPE + SYNTAX SEQUENCE OF CoolingUnitTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0700.0010 This object defines the Cooling Unit Table." + ::= { thermalGroup 10 } +coolingUnitTableEntry OBJECT-TYPE + SYNTAX CoolingUnitTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0700.0010.0001 This object defines the Cooling Unit Table Entry." + INDEX { coolingUnitchassisIndex, + coolingUnitIndex } + ::= { coolingUnitTable 1 } + +coolingUnitchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0001 This attribute defines the index (one based) of the +assoicated chassis." + ::= { coolingUnitTableEntry 1 } +coolingUnitIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0002 This attribute defines the index (one based) of the +cooling unit." + ::= { coolingUnitTableEntry 2 } +coolingUnitStateCapabilties OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0003 This attribute defines the state capabilities of the +cooling unit." + ::= { coolingUnitTableEntry 3 } +coolingUnitStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0004 This attribute defines the state settings of the +cooling unit." + ::= { coolingUnitTableEntry 4 } +coolingUnitRedundancyStatus OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0005 This attribute defines the redundancy status of the +cooling unit." + ::= { coolingUnitTableEntry 5 } +coolingDeviceCountForRedundancy OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0006 This attribute defines the total number of cooling devices +required for this cooling unit to have full redundancy." + ::= { coolingUnitTableEntry 6 } +coolingUnitName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0007 This attribute defines the name of the cooling unit." + ::= { coolingUnitTableEntry 7 } +coolingUnitStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0010.0001.0008 This attribute defines the status of the cooling unit." + ::= { coolingUnitTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Cooling Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.700.12.1... +------------------------------------------------------------------------------- + +DellCoolingDeviceType ::= INTEGER { + coolingDeviceTypeIsOther(1), -- type is other than following values + coolingDeviceTypeIsUnknown(2), -- type is unknown + coolingDeviceTypeIsAFan(3), -- type is Fan + coolingDeviceTypeIsABlower(4), -- type is Centrifugal Blower + coolingDeviceTypeIsAChipFan(5), -- type is Fan on Integrated Circuit + coolingDeviceTypeIsACabinetFan(6), -- type is Cabinet Fan + coolingDeviceTypeIsAPowerSupplyFan(7), -- type is Power Supply Fan + coolingDeviceTypeIsAHeatPipe(8), -- type is Heat Pipe + coolingDeviceTypeIsRefrigeration(9), -- type is Integrated Refrigeration Unit + coolingDeviceTypeIsActiveCooling(10), -- type is Active Cooling Device + coolingDeviceTypeIsPassiveCooling(11) -- type is Passive Cooling Device +} +DellCoolingDeviceSubType ::= INTEGER { + coolingDeviceSubTypeIsOther(1), -- subtype is other than following values + coolingDeviceSubTypeIsUnknown(2), -- subtype is unknown + coolingDeviceSubTypeIsAFanThatReadsInRPM(3),-- subtype is Fan that reads RPM + coolingDeviceSubTypeIsAFanReadsONorOFF(4), -- subtype is Fan that reads Off or On + coolingDeviceSubTypeIsAPowerSupplyFanThatReadsinRPM(5), -- subtype is Power Supply Fan that reads RPM + coolingDeviceSubTypeIsAPowerSupplyFanThatReadsONorOFF(6),-- subtype is Power Supply Fan that reads Off or On + coolingDeviceSubTypeIsDiscrete(16) -- subtype is cooling device with discrete reading +} +DellCoolingDeviceDiscreteReading ::= INTEGER { + coolingDeviceIsGood(1), -- cooling device is Good + coolingDeviceIsBad(2) -- cooling device is Bad +} + +CoolingDeviceTableEntry ::= SEQUENCE { + coolingDevicechassisIndex DellObjectRange, + coolingDeviceIndex DellObjectRange, + coolingDeviceStateCapabilities DellStateCapabilities, + coolingDeviceStateSettings DellStateSettings, + coolingDeviceStatus DellStatusProbe, + coolingDeviceReading DellSigned32BitRange, + coolingDeviceType DellCoolingDeviceType, + coolingDeviceLocationName DellString, + coolingDeviceUpperNonRecoverableThreshold DellSigned32BitRange, + coolingDeviceUpperCriticalThreshold DellSigned32BitRange, + coolingDeviceUpperNonCriticalThreshold DellSigned32BitRange, + coolingDeviceLowerNonCriticalThreshold DellSigned32BitRange, + coolingDeviceLowerCriticalThreshold DellSigned32BitRange, + coolingDeviceLowerNonRecoverableThreshold DellSigned32BitRange, + coolingDevicecoolingUnitIndexReference DellObjectRange, + coolingDeviceSubType DellCoolingDeviceSubType, + coolingDeviceProbeCapabilities DellProbeCapabilities, + coolingDeviceDiscreteReading DellCoolingDeviceDiscreteReading +} + +coolingDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF CoolingDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0700.0012 This object defines the Cooling Device Table." + ::= { thermalGroup 12 } +coolingDeviceTableEntry OBJECT-TYPE + SYNTAX CoolingDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0700.0012.0001 This object defines the Cooling Device Table Entry." + INDEX { coolingDevicechassisIndex, + coolingDeviceIndex } + ::= { coolingDeviceTable 1 } + +coolingDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { coolingDeviceTableEntry 1 } +coolingDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0002 This attribute defines the index (one based) of the +cooling device." + ::= { coolingDeviceTableEntry 2 } +coolingDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0003 This attribute defines the state capabilities of the +cooling device." + ::= { coolingDeviceTableEntry 3 } +coolingDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0004 This attribute defines the state settings of the +cooling device." + ::= { coolingDeviceTableEntry 4 } +coolingDeviceStatus OBJECT-TYPE + SYNTAX DellStatusProbe + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0005 This attribute defines the probe status of the +cooling device." + ::= { coolingDeviceTableEntry 5 } +coolingDeviceReading OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0006 This attribute defines the reading for a cooling device +of subtype other than coolingDeviceSubTypeIsDiscrete. When the value +for coolingDeviceSubType is other than coolingDeviceSubTypeIsDiscrete, the +value returned for this attribute is the speed in RPM or the OFF/ON value +of the cooling device. When the value for coolingDeviceSubType is +coolingDeviceSubTypeIsDiscrete, a value is not returned for this attribute." + ::= { coolingDeviceTableEntry 6 } +coolingDeviceType OBJECT-TYPE + SYNTAX DellCoolingDeviceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0007 This attribute defines the type of the cooling device." + ::= { coolingDeviceTableEntry 7 } +coolingDeviceLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0008 This attribute defines the location name of the +cooling device." + ::= { coolingDeviceTableEntry 8 } +coolingDeviceUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0009 This attribute defines the upper nonrecoverable threshold +of the cooling device. The value is an integer representing fan speed +in revolutions per minute (RPM). It is not applicable to OFF/ON type +cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 9 } +coolingDeviceUpperCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0010 This attribute defines the upper critical threshold +of the cooling device. The value is an integer representing fan speed +in revolutions per minute (RPM). It is not applicable to OFF/ON type +cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 10 } +coolingDeviceUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0011 This attribute defines the upper noncritical threshold +of the cooling device. The value is an integer representing fan speed +in revolutions per minute (RPM). It is not applicable to OFF/ON type +cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 11 } +coolingDeviceLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0012 This attribute defines the lower noncritical threshold +of the cooling device. The value is an integer representing fan speed +in revolutions per minute (RPM). It is not applicable to OFF/ON type +cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 12 } +coolingDeviceLowerCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0013 This attribute defines the lower critical threshold +of the cooling device. The value is an integer representing fan speed +in revolutions per minute (RPM). It is not applicable to OFF/ON type +cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 13 } +coolingDeviceLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0014 This attribute defines the lower nonrecoverable threshold +of the cooling device. The value is an integer representing fan speed +in revolutions per minute (RPM). It is not applicable to OFF/ON type +cooling devices or non-cooling device types." + ::= { coolingDeviceTableEntry 14 } +coolingDevicecoolingUnitIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0015 This attribute defines the index to the associated +cooling unit." + ::= { coolingDeviceTableEntry 15 } +coolingDeviceSubType OBJECT-TYPE + SYNTAX DellCoolingDeviceSubType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0016 This attribute defines the subtype of the cooling device." + ::= { coolingDeviceTableEntry 16 } +coolingDeviceProbeCapabilities OBJECT-TYPE + SYNTAX DellProbeCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0017 This attribute defines the probe capabilities of the +cooling device." + ::= { coolingDeviceTableEntry 17 } +coolingDeviceDiscreteReading OBJECT-TYPE + SYNTAX DellCoolingDeviceDiscreteReading + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0012.0001.0018 This attribute defines the reading for a cooling device +of type coolingDeviceSubTypeIsDiscrete. When the value for +coolingDeviceSubType is other than coolingDeviceSubTypeIsDiscrete, a value +is not returned for this attribute. When the value for coolingDeviceSubType +is coolingDeviceSubTypeIsDiscrete, the value returned for this attribute +is the discrete reading for the cooling device." + ::= { coolingDeviceTableEntry 18 } + + +------------------------------------------------------------------------------- +-- Temperature Probe Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.700.20.1... +------------------------------------------------------------------------------- + +DellTemperatureProbeType ::= INTEGER { + temperatureProbeTypeIsOther(1), -- type is other than following values + temperatureProbeTypeIsUnknown(2), -- type is unknown + temperatureProbeTypeIsAmbientESM(3), -- type is Ambient Embedded Systems Management temperature probe + temperatureProbeTypeIsDiscrete(16) -- type is temperature probe with discrete reading +} +DellTemperatureDiscreteReading ::= INTEGER { + temperatureIsGood(1), -- temperature reading is Good + temperatureIsBad(2) -- temperature reading is Bad +} + +TemperatureProbeTableEntry ::= SEQUENCE { + temperatureProbechassisIndex DellObjectRange, + temperatureProbeIndex DellObjectRange, + temperatureProbeStateCapabilities DellStateCapabilities, + temperatureProbeStateSettings DellStateSettings, + temperatureProbeStatus DellStatusProbe, + temperatureProbeReading DellSigned32BitRange, + temperatureProbeType DellTemperatureProbeType, + temperatureProbeLocationName DellString, + temperatureProbeUpperNonRecoverableThreshold DellSigned32BitRange, + temperatureProbeUpperCriticalThreshold DellSigned32BitRange, + temperatureProbeUpperNonCriticalThreshold DellSigned32BitRange, + temperatureProbeLowerNonCriticalThreshold DellSigned32BitRange, + temperatureProbeLowerCriticalThreshold DellSigned32BitRange, + temperatureProbeLowerNonRecoverableThreshold DellSigned32BitRange, + temperatureProbeProbeCapabilities DellProbeCapabilities, + temperatureProbeDiscreteReading DellTemperatureDiscreteReading +} + +temperatureProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF TemperatureProbeTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0700.0020 This object defines the Temperature Probe Table." + ::= { thermalGroup 20 } +temperatureProbeTableEntry OBJECT-TYPE + SYNTAX TemperatureProbeTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0700.0020.0001 This object defines the Temperature Probe Table Entry." + INDEX { temperatureProbechassisIndex, + temperatureProbeIndex } + ::= { temperatureProbeTable 1 } + +temperatureProbechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { temperatureProbeTableEntry 1 } +temperatureProbeIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0002 This attribute defines the index (one based) of the +temperature probe." + ::= { temperatureProbeTableEntry 2 } +temperatureProbeStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0003 This attribute defines the state capabilities of the +temperature probe." + ::= { temperatureProbeTableEntry 3 } +temperatureProbeStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0004 This attribute defines the state settings of the +temperature probe." + ::= { temperatureProbeTableEntry 4 } +temperatureProbeStatus OBJECT-TYPE + SYNTAX DellStatusProbe + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0005 This attribute defines the probe status of the +temperature probe." + ::= { temperatureProbeTableEntry 5 } +temperatureProbeReading OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0006 This attribute defines the reading for a temperature +probe of type other than temperatureProbeTypeIsDiscrete. When the value +for temperatureProbeType is other than temperatureProbeTypeIsDiscrete, +the value returned for this attribute is the temperature that the probe +is reading in tenths of degrees Centigrade. When the value for +temperatureProbeType is temperatureProbeTypeIsDiscrete, a value is not +returned for this attribute." + ::= { temperatureProbeTableEntry 6 } +temperatureProbeType OBJECT-TYPE + SYNTAX DellTemperatureProbeType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0007 This attribute defines the type of the temperature probe." + ::= { temperatureProbeTableEntry 7 } +temperatureProbeLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0008 This attribute defines the location name of the +temperature probe." + ::= { temperatureProbeTableEntry 8 } +temperatureProbeUpperNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0009 This attribute defines the upper nonrecoverable threshold +of the temperature probe. The value is an integer representing the temperature +of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 9 } +temperatureProbeUpperCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0010 This attribute defines the upper critical threshold +of the temperature probe. The value is an integer representing the temperature +of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 10 } +temperatureProbeUpperNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0011 This attribute defines the upper noncritical threshold +of the temperature probe. The value is an integer representing the temperature +of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 11 } +temperatureProbeLowerNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0012 This attribute defines the lower noncritical threshold +of the temperature probe. The value is an integer representing the temperature +of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 12 } +temperatureProbeLowerCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0013 This attribute defines the lower critical threshold +of the temperature probe. The value is an integer representing the temperature +of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 13 } +temperatureProbeLowerNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0014 This attribute defines the lower nonrecoverable threshold +of the temperature probe. The value is an integer representing the temperature +of the threshold in tenths of degrees Centigrade." + ::= { temperatureProbeTableEntry 14 } +temperatureProbeProbeCapabilities OBJECT-TYPE + SYNTAX DellProbeCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0015 This attribute defines the probe capabilities of the +temperature probe." + ::= { temperatureProbeTableEntry 15 } +temperatureProbeDiscreteReading OBJECT-TYPE + SYNTAX DellTemperatureDiscreteReading + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0700.0020.0001.0016 This attribute defines the reading for a temperature +probe of type temperatureProbeTypeIsDiscrete. When the value for +temperatureProbeType is other than temperatureProbeTypeIsDiscrete, a value +is not returned for this attribute. When the value for temperatureProbeType +is temperatureProbeTypeIsDiscrete, the value returned for this attribute +is the discrete reading for the probe." + ::= { temperatureProbeTableEntry 16 } + + +------------------------------------------------------------------------------- +-- User Security Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.800 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- User Security Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.800.10.1... +------------------------------------------------------------------------------- + +UserSecurityTableEntry ::= SEQUENCE { + userSecuritychassisIndex DellObjectRange, + userSecurityIndex DellObjectRange, + userSecurityUserName DellSecurityString, + userSecurityControlName DellSecurityString, + userSecurityRequestName DellSecurityString +} + +userSecurityTable OBJECT-TYPE + SYNTAX SEQUENCE OF UserSecurityTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0800.0010 This object defines the User Security Table." + ::= { userSecurityGroup 10 } +userSecurityTableEntry OBJECT-TYPE + SYNTAX UserSecurityTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0800.0010.0001 This object defines the User Security Table Entry." + INDEX { userSecuritychassisIndex, + userSecurityIndex } + ::= { userSecurityTable 1 } + +userSecuritychassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0800.0010.0001.0001 This attribute defines the index (one based) of the +assoicated chassis." + ::= { userSecurityTableEntry 1 } +userSecurityIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0800.0010.0001.0002 This attribute defines the index (one based) of the +user." + ::= { userSecurityTableEntry 2 } +userSecurityUserName OBJECT-TYPE + SYNTAX DellSecurityString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0800.0010.0001.0003 This attribute defines the name of the user +that is authorized to perform Set operations on this system." + ::= { userSecurityTableEntry 3 } +userSecurityControlName OBJECT-TYPE + SYNTAX DellSecurityString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0800.0010.0001.0004 This attribute defines the control string +that is used for managing users in this table." + ::= { userSecurityTableEntry 4 } +userSecurityRequestName OBJECT-TYPE + SYNTAX DellSecurityString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0800.0010.0001.0005 This attribute defines the request string +that is used for Set requests on this system." + ::= { userSecurityTableEntry 5 } + + +------------------------------------------------------------------------------- +-- Remote Flash BIOS Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.900 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Remote Flash BIOS Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.900.10.1... +------------------------------------------------------------------------------- + +DellRemoteFlashBIOSStateCapabilitiesUnique ::= INTEGER { + -- If 0 (zero), there are no remote flash BIOS state capabilities + unknown(1), -- state capabilities are unknown + enableCapable(2), -- remote flash BIOS can be enabled (online) or be disabled (offline) + notReadyCapable(4), -- remote flash BIOS can be not ready + cancelCapable(8), -- remote flash BIOS can be canceled + enableAndCancelCapable(10) -- remote flash BIOS can be enabled and canceled +} +DellRemoteFlashBIOSStateSettingsUnique ::= INTEGER { + -- If 0 (zero), there are no remote flash BIOS state settings + unknown(1), -- state settings are unknown + enabled(2), -- remote flash BIOS is enabled + notReady(4), -- remote flash BIOS is not ready + canceled(8), -- remote flash BIOS is canceled + pending(16), -- remote flash BIOS is pending + other(32) -- state settings are other than above +} +DellRemoteFlashBIOSCompletionCode ::= INTEGER { + completionCodeIsOther(1), -- code is other than following values + completionCodeIsUnknown(2), -- code is unknown + completionCodeIsOK(3), -- code is completed successfully + completionCodeIsBadImage(4), -- code is bad flash BIOS image + completionCodeIsNoFileAccess(5), -- code is flash BIOS image could not be accessed + completionCodeIsNotReady(6), -- code is flash BIOS memory not ready + completionCodeIsDisabled(7), -- code is flash BIOS is currently disabled + completionCodeIsNoBattery(8), -- code is battery must be installed + completionCodeIsNoChargedBattery(9), -- code is fully charged battery must be installed + completionCodeIsNoExternalPower(10), -- code is external power adapter must be connected + completionCodeIsNo12VoltSet(11), -- code is that 12 volts could not be set + completionCodeIsNo12VoltRemoval(12), -- code is that 12 volts could not be removed + completionCodeIsFlashMemoryFailed(13), -- code is flash memory failure occured + completionCodeIsGeneralFailure(14), -- code is general failure occurred + completionCodeIsDataMiscompare(15), -- code is data miscompare error occurred + completionCodeIsNoImageFound(16), -- code is flash BIOS image could not be found in memory + completionCodeIsNoUpdatePerformed(17) -- code is no update operation has been performed +} + +RemoteFlashBIOSTableEntry ::= SEQUENCE { + remoteFlashBIOSchassisIndex DellObjectRange, + remoteFlashBIOSIndex DellObjectRange, + remoteFlashBIOSStateCapabilitiesUnique DellRemoteFlashBIOSStateCapabilitiesUnique, + remoteFlashBIOSStateSettingsUnique DellRemoteFlashBIOSStateSettingsUnique, + remoteFlashBIOSStatus DellStatus, + remoteFlashBIOSLastBIOSDateName DellDateName, + remoteFlashBIOSCompletionCode DellRemoteFlashBIOSCompletionCode, + remoteFlashBIOSMinimumContiguousMemory DellUnsigned32BitRange +} + +remoteFlashBIOSTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteFlashBIOSTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0900.0010 This object defines the Remote Flash BIOS Table." + ::= { remoteFlashBIOSGroup 10 } +remoteFlashBIOSTableEntry OBJECT-TYPE + SYNTAX RemoteFlashBIOSTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"0900.0010.0001 This object defines the Remote Flash BIOS Table Entry." + INDEX { remoteFlashBIOSchassisIndex, + remoteFlashBIOSIndex } + ::= { remoteFlashBIOSTable 1 } + +remoteFlashBIOSchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { remoteFlashBIOSTableEntry 1 } +remoteFlashBIOSIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0002 This attribute defines the index (one based) of the +remote flash BIOS function." + ::= { remoteFlashBIOSTableEntry 2 } +remoteFlashBIOSStateCapabilitiesUnique OBJECT-TYPE + SYNTAX DellRemoteFlashBIOSStateCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0003 This attribute defines the state capabilities of the +remote flash BIOS function." + ::= { remoteFlashBIOSTableEntry 3 } +remoteFlashBIOSStateSettingsUnique OBJECT-TYPE + SYNTAX DellRemoteFlashBIOSStateSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0004 This attribute defines the state settings of the +remote flash BIOS function." + ::= { remoteFlashBIOSTableEntry 4 } +remoteFlashBIOSStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0005 This attribute defines the status of the +remote flash BIOS function." + ::= { remoteFlashBIOSTableEntry 5 } +remoteFlashBIOSLastBIOSDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0006 This attribute defines the date of last BIOS update. +Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes and ss are the seconds. +uuuuuu is the number of microseconds, and +fff or -fff is the offset from +UTC in minutes." + ::= { remoteFlashBIOSTableEntry 6 } +remoteFlashBIOSCompletionCode OBJECT-TYPE + SYNTAX DellRemoteFlashBIOSCompletionCode + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0007 This attribute defines the completion code of the +last BIOS update." + ::= { remoteFlashBIOSTableEntry 7 } +remoteFlashBIOSMinimumContiguousMemory OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"0900.0010.0001.0008 This attribute defines the minimum size of contiguous +memory required for the remote flash BIOS function in KBbytes." + ::= { remoteFlashBIOSTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Port Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000 +------------------------------------------------------------------------------- + + +DellGenericPortConnectorType ::= INTEGER { + portConnectorTypeIsOther(1), -- type is other than following values + portConnectorTypeIsNone(2), -- type is no port connector + portConnectorTypeIsCentronics(3), -- type is Centronics, IEEE1284-B Receptical + portConnectorTypeIsMiniCentronics(4), -- type is MiniCentronics, IEEE1284-C Receptical + portConnectorTypeIsProprietary(5), -- type is Proprietary + portConnectorTypeIsDB25Male(6), -- type is Male DB-25, IEEE1284-A Plug + portConnectorTypeIsDB25Female(7), -- type is Female DB-25, IEEE1284-A Receptical + portConnectorTypeIsDB15Male(8), -- type is Male DB-15 + portConnectorTypeIsDB15Female(9), -- type is Female DB-15 + portConnectorTypeIsDB9Male(10), -- type is Male DB-9 + portConnectorTypeIsDB9Female(11), -- type is Female DB-9 + portConnectorTypeIsRJ11(12), -- type is RJ-11 + portConnectorTypeIsRJ45(13), -- type is RJ-45 + portConnectorTypeIsMiniSCSI50Pin(14), -- type is 50 pin MiniSCSI + portConnectorTypeIsMiniDIN(15), -- type is Mini DIN + portConnectorTypeIsMicroDIN(16), -- type is Micro DIN + portConnectorTypeIsPS2(17), -- type is PS/2 + portConnectorTypeIsInfrared(18), -- type is Infrared + portConnectorTypeIsHPHIL(19), -- type is HP-HIL + portConnectorTypeIsAccessBussUSB(20), -- type is Access Bus USB + portConnectorTypeISSASCSI(21), -- type is SSA SCSI + portConnectorTypeIsCirdin8Male(22), -- type is Male Circular DIN-8 + portConnectorTypeIsCirdin8Female(23), -- type is Female Circular DIN-8 + portConnectorTypeIsIDE(24), -- type is IDE + portConnectorTypeIsFloppy(25), -- type is Floppy + portConnectorTypeIsDIN9Pin(26), -- type is 9-pin Dual Inline + portConnectorTypeIsDIN25Pin(27), -- type is 25-pin Dual Inline + portConnectorTypeIsDIN50Pin(28), -- type is 50-pin Dual Inline + portConnectorTypeIsDIN68Pin(29), -- type is 68-pin Dual Inline + portConnectorTypeIsCDROMLineOut(30), -- type is CDROM Line Output + portConnectorTypeIsMiniCentronics14(31), -- type is MiniCentronics 14 + portConnectorTypeIsMiniCentronics26(32), -- type is MiniCentronics 26 + portConnectorTypeIsMiniJack(33), -- type is Minijack, headphones + portConnectorTypeIsBNC(34), -- type is BNC + portConnectorTypeIs1394(35), -- type is 1394, firewire + portConnectorTypeIsPC98(36), -- type is PC-98 + portConnectorTypeIsPC98Hireso(37), -- type is PC-98 Hireso + portConnectorTypeIsPCH98(38), -- type is PCH98 + portConnectorTypeIsPC98Note(39), -- type is PC-98 Note + portConnectorTypeIsPC98Full(40) -- type is PC-98 Full +} +DellPortSecurityState ::= INTEGER { + other(1), -- security state is other than following values + unknown(2), -- security state is unknown + none(3), -- security state is no security + externalIsDisabled(4), -- security state is external interface is disabled + externalIsEnabled(5), -- security state is external interface is enabled + bootByPass(6) -- security state is boot bypass +} + + +------------------------------------------------------------------------------- +-- Pointing Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.10.1... +------------------------------------------------------------------------------- + +DellPointingPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsSerial(3), -- type is Serial + connectorPortTypeIsPS2(4), -- type is PS/2 + connectorPortTypeIsInfrared(5), -- type is Infrared + connectorPortTypeIsHPHIL(6), -- type is HP-HIL + connectorPortTypeIsBusMouse(7), -- type is Bus Mouse + connectorPortTypeIsADB(8), -- type is ADB + connectorPortTypeIsDB9(9), -- type is DB-9 + connectorPortTypeIsMicroDIN(10), -- type is Micro DIN + connectorPortTypeIsAccessBusUSB(11), -- type is Access Bus USB + connectorPortTypeIsPC98(12) -- type is PC-98 +} + +PointingPortTableEntry ::= SEQUENCE { + pointingPortchassisIndex DellObjectRange, + pointingPortIndex DellObjectRange, + pointingPortStateCapabilities DellStateCapabilities, + pointingPortStateSettings DellStateSettings, + pointingPortStatus DellStatus, + pointingPortSecurityState DellPortSecurityState, + pointingPortConnectorType DellPointingPortConnectorType, + pointingPortName DellString, + pointingPortBIOSConnectorType DellGenericPortConnectorType +} + +pointingPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF PointingPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0010 This object defines the Pointing Port Table." + ::= { portGroup 10 } +pointingPortTableEntry OBJECT-TYPE + SYNTAX PointingPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0010.0001 This object defines the Pointing Port Table Entry." + INDEX { pointingPortchassisIndex, + pointingPortIndex } + ::= { pointingPortTable 1 } + +pointingPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { pointingPortTableEntry 1 } +pointingPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0002 This attribute defines the index (one based) of the +pointing port." + ::= { pointingPortTableEntry 2 } +pointingPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0003 This attribute defines the state capabilities of the +pointing port." + ::= { pointingPortTableEntry 3 } +pointingPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0004 This attribute defines the state settings of the +pointing port." + ::= { pointingPortTableEntry 4 } +pointingPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0005 This attribute defines the status of the +pointing port." + ::= { pointingPortTableEntry 5 } +pointingPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0006 This attribute defines the security state of the +pointing port." + ::= { pointingPortTableEntry 6 } +pointingPortConnectorType OBJECT-TYPE + SYNTAX DellPointingPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0007 This attribute defines the connector type of the +pointing port." + ::= { pointingPortTableEntry 7 } +pointingPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0008 This attribute defines name of the pointing port." + ::= { pointingPortTableEntry 8 } +pointingPortBIOSConnectorType OBJECT-TYPE + SYNTAX DellGenericPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0010.0001.0009 This attribute defines the BIOS connector type of the +pointing port." + ::= { pointingPortTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Keyboard Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.20.1... +------------------------------------------------------------------------------- + +DellKeyboardPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsMiniDIN(3), -- type is Mini DIN + connectorPortTypeIsMicroDIN(4), -- type is Micro DIN + connectorPortTypeIsPS2(5), -- type is PS/2 + connectorPortTypeIsInfrared(6), -- type is Infrared + connectorPortTypeIsHPHIL(7), -- type is HP-HIL + connectorPortTypeIsDB9(8), -- type is DB-9 + connectorPortTypeIsAccessBusUSB(9), -- type is Access Bus USB + connectorPortTypeIsPC98(10) -- type is PC-98 +} + +KeyboardPortTableEntry ::= SEQUENCE { + keyboardPortchassisIndex DellObjectRange, + keyboardPortIndex DellObjectRange, + keyboardPortStateCapabilities DellStateCapabilities, + keyboardPortStateSettings DellStateSettings, + keyboardPortStatus DellStatus, + keyboardPortSecurityState DellPortSecurityState, + keyboardPortConnectorType DellKeyboardPortConnectorType, + keyboardPortName DellString, + keyboardPortBIOSConnectorType DellGenericPortConnectorType +} + +keyboardPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF KeyboardPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0020 This object defines the Keyboard Port Table." + ::= { portGroup 20 } +keyboardPortTableEntry OBJECT-TYPE + SYNTAX KeyboardPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0020.0001 This object defines the Keyboard Port Table Entry." + INDEX { keyboardPortchassisIndex, + keyboardPortIndex } + ::= { keyboardPortTable 1 } + +keyboardPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { keyboardPortTableEntry 1 } +keyboardPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0002 This attribute defines the index (one based) of the +keyboard port." + ::= { keyboardPortTableEntry 2 } +keyboardPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0003 This attribute defines the state capabilities of the +keyboard port." + ::= { keyboardPortTableEntry 3 } +keyboardPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0004 This attribute defines the state settings of the +keyboard port." + ::= { keyboardPortTableEntry 4 } +keyboardPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0005 This attribute defines the status of the +keyboard port." + ::= { keyboardPortTableEntry 5 } +keyboardPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0006 This attribute defines the security state of the +keyboard port." + ::= { keyboardPortTableEntry 6 } +keyboardPortConnectorType OBJECT-TYPE + SYNTAX DellKeyboardPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0007 This attribute defines the connector type of the +keyboard port." + ::= { keyboardPortTableEntry 7 } +keyboardPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0008 This attribute defines name of the keyboard port." + ::= { keyboardPortTableEntry 8 } +keyboardPortBIOSConnectorType OBJECT-TYPE + SYNTAX DellGenericPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0020.0001.0009 This attribute defines the BIOS connector type of the +keyboard port." + ::= { keyboardPortTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Processor Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.30.1... +------------------------------------------------------------------------------- + +DellProcessorPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsDaughterdBoard(3), -- type is Daughter Board + connectorPortTypeIsZIFSocket(4), -- type is Zero Insertion Force Socket + connectorPortTypeIsAPiggyBackBoard(5), -- type is Replacement/Piggy Back Board + connectorPortTypeIsNone(6), -- type is None (soldered in place) + connectorPortTypeIsLIFSocket(7), -- type is Low Force Insertion Socket + connectorPortTypeIsSlot1(8), -- type is Slot 1 + connectorPortTypeIsSlot2(9), -- type is Slot 2 + connectorPortTypeIs370PinSocket(10) -- type is 370 Pin Socket +} + +ProcessorPortTableEntry ::= SEQUENCE { + processorPortchassisIndex DellObjectRange, + processorPortIndex DellObjectRange, + processorPortStateCapabilities DellStateCapabilities, + processorPortStateSettings DellStateSettings, + processorPortStatus DellStatus, + processorPortSecurityState DellPortSecurityState, + processorPortConnectorType DellProcessorPortConnectorType, + processorPortName DellString, + processorPortBIOSConnectorType DellGenericPortConnectorType +} + +processorPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF ProcessorPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0030 This object defines the Processor Port Table." + ::= { portGroup 30 } +processorPortTableEntry OBJECT-TYPE + SYNTAX ProcessorPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0030.0001 This object defines the Processor Port Table Entry." + INDEX { processorPortchassisIndex, + processorPortIndex } + ::= { processorPortTable 1 } + +processorPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { processorPortTableEntry 1 } +processorPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0002 This attribute defines the index (one based) of the +processor port." + ::= { processorPortTableEntry 2 } +processorPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0003 This attribute defines the state capabilities of the +processor port." + ::= { processorPortTableEntry 3 } +processorPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0004 This attribute defines the state settings of the +processor port." + ::= { processorPortTableEntry 4 } +processorPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0005 This attribute defines the status of the +processor port." + ::= { processorPortTableEntry 5 } +processorPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0006 This attribute defines the security state of the +processor port." + ::= { processorPortTableEntry 6 } +processorPortConnectorType OBJECT-TYPE + SYNTAX DellProcessorPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0007 This attribute defines the connector type of the +processor port." + ::= { processorPortTableEntry 7 } +processorPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0008 This attribute defines name of the processor port." + ::= { processorPortTableEntry 8 } +processorPortBIOSConnectorType OBJECT-TYPE + SYNTAX DellGenericPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0030.0001.0009 This attribute defines the BIOS connector type of the +processor port." + ::= { processorPortTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Memory Device Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.40.1... +------------------------------------------------------------------------------- + +DellMemoryDevicePortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsSIMM(3), -- type is SIMM + connectorPortTypeIsSIP(4), -- type is SIP + connectorPortTypeIsAChip(5), -- type is Chip + connectorPortTypeIsDIP(6), -- type is DIP + connectorPortTypeIsZIP(7), -- type is ZIP + connectorPortTypeIsAProprietaryCard(8), -- type is Proprietary Card + connectorPortTypeIsDIMM(9), -- type is DIMM + connectorPortTypeIsTSOP(10), -- type is TSOP + connectorPortTypeIsARowOfChips(11), -- type is Row of Chips + connectorPortTypeIsRIMM(12), -- type is RIMM + connectorPortTypeIsSODIMM(13), -- type is SODIMM + connectorPortTypeIsSRIMM(14) -- type is SRIMM +} + +MemoryDevicePortTableEntry ::= SEQUENCE { + memoryDevicePortchassisIndex DellObjectRange, + memoryDevicePortIndex DellObjectRange, + memoryDevicePortStateCapabilities DellStateCapabilities, + memoryDevicePortStateSettings DellStateSettings, + memoryDevicePortStatus DellStatus, + memoryDevicePortSecurityState DellPortSecurityState, + memoryDevicePortConnectorType DellMemoryDevicePortConnectorType, + memoryDevicePortName DellString, + memoryDevicePortBIOSConnectorType DellGenericPortConnectorType, + memoryDevicePortPhysicalMemoryArrayIndexReference DellUnsigned32BitRange, + memoryDevicePortPhysicalMemoryCardIndexReference DellUnsigned32BitRange +} + +memoryDevicePortTable OBJECT-TYPE + SYNTAX SEQUENCE OF MemoryDevicePortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0040 This object defines the Memory Device Port Table." + ::= { portGroup 40 } +memoryDevicePortTableEntry OBJECT-TYPE + SYNTAX MemoryDevicePortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0040.0001 This object defines the Memory Device Port Table Entry." + INDEX { memoryDevicePortchassisIndex, + memoryDevicePortIndex } + ::= { memoryDevicePortTable 1 } + +memoryDevicePortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { memoryDevicePortTableEntry 1 } +memoryDevicePortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0002 This attribute defines the index (one based) of the +memory device port." + ::= { memoryDevicePortTableEntry 2 } +memoryDevicePortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0003 This attribute defines the state capabilities of the +memory device port." + ::= { memoryDevicePortTableEntry 3 } +memoryDevicePortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0004 This attribute defines the state settings of the +memory device port." + ::= { memoryDevicePortTableEntry 4 } +memoryDevicePortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0005 This attribute defines the status of the +memory device port." + ::= { memoryDevicePortTableEntry 5 } +memoryDevicePortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0006 This attribute defines the security state of the +memory device port." + ::= { memoryDevicePortTableEntry 6 } +memoryDevicePortConnectorType OBJECT-TYPE + SYNTAX DellMemoryDevicePortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0007 This attribute defines the connector type of the +memory device port." + ::= { memoryDevicePortTableEntry 7 } +memoryDevicePortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0008 This attribute defines name of the memory device port." + ::= { memoryDevicePortTableEntry 8 } +memoryDevicePortBIOSConnectorType OBJECT-TYPE + SYNTAX DellGenericPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0009 This attribute defines the BIOS connector type of the +memory device port." + ::= { memoryDevicePortTableEntry 9 } +memoryDevicePortPhysicalMemoryArrayIndexReference OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0010 This attribute defines the index (one based) of the +Physical Memory Array Table entry for the physical memory array with the +same chassis index that this memory device port is associated with." + ::= { memoryDevicePortTableEntry 10 } +memoryDevicePortPhysicalMemoryCardIndexReference OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0040.0001.0011 This attribute defines the index (one based) of the +Physical Memory Card Table entry for the physical memory card with the +same chassis index that this memory device port is associated with (if any)." + ::= { memoryDevicePortTableEntry 11 } + + +------------------------------------------------------------------------------- +-- Monitor Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.50.1... +------------------------------------------------------------------------------- + +DellMonitorPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsDB15PinMale(3), -- type is Male DB-15 + connectorPortTypeIsDB15PinFemale(4) -- type is Female DB-15 +} + +MonitorPortTableEntry ::= SEQUENCE { + monitorPortchassisIndex DellObjectRange, + monitorPortIndex DellObjectRange, + monitorPortStateCapabilities DellStateCapabilities, + monitorPortStateSettings DellStateSettings, + monitorPortStatus DellStatus, + monitorPortSecurityState DellPortSecurityState, + monitorPortConnectorType DellMonitorPortConnectorType, + monitorPortName DellString, + monitorPortBIOSConnectorType DellGenericPortConnectorType +} + +monitorPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF MonitorPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0050 This object defines the Monitor Port Table." + ::= { portGroup 50 } +monitorPortTableEntry OBJECT-TYPE + SYNTAX MonitorPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0050.0001 This object defines the Monitor Port Table Entry." + INDEX { monitorPortchassisIndex, + monitorPortIndex } + ::= { monitorPortTable 1 } + +monitorPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { monitorPortTableEntry 1 } +monitorPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0002 This attribute defines the index (one based) of the +monitor port." + ::= { monitorPortTableEntry 2 } +monitorPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0003 This attribute defines the state capabilities of the +monitor port." + ::= { monitorPortTableEntry 3 } +monitorPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0004 This attribute defines the state settings of the +monitor port." + ::= { monitorPortTableEntry 4 } +monitorPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0005 This attribute defines the status of the +monitor port." + ::= { monitorPortTableEntry 5 } +monitorPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0006 This attribute defines the security state of the +monitor port." + ::= { monitorPortTableEntry 6 } +monitorPortConnectorType OBJECT-TYPE + SYNTAX DellMonitorPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0007 This attribute defines the connector type of the +monitor port." + ::= { monitorPortTableEntry 7 } +monitorPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0008 This attribute defines name of the monitor port." + ::= { monitorPortTableEntry 8 } +monitorPortBIOSConnectorType OBJECT-TYPE + SYNTAX DellGenericPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0050.0001.0009 This attribute defines the BIOS connector type of the +monitor port." + ::= { monitorPortTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Small Computer Systems Interface (SCSI) Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.60.1... +------------------------------------------------------------------------------- + +DellSCSIPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following valaues + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsDIN25pin(3), -- type is DIN 25-pin + connectorPortTypeIsDIN50pin(4), -- type is DIN 50-pin + connectorPortTypeIsDIN68pin(5) -- type is DIN 68-pin +} + +SCSIPortTableEntry ::= SEQUENCE { + sCSIPortchassisIndex DellObjectRange, + sCSIPortIndex DellObjectRange, + sCSIPortStateCapabilities DellStateCapabilities, + sCSIPortStateSettings DellStateSettings, + sCSIPortStatus DellStatus, + sCSIPortSecurityState DellPortSecurityState, + sCSIPortConnectorType DellSCSIPortConnectorType, + sCSIPortName DellString, + sCSIPortBIOSConnectorType DellGenericPortConnectorType +} + +sCSIPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF SCSIPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0060 This object defines the Small Computer Systems Interface (SCSI) +Port Table." + ::= { portGroup 60 } +sCSIPortTableEntry OBJECT-TYPE + SYNTAX SCSIPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0060.0001 This object defines the Small Computer Systems Interface (SCSI) +Port Table Entry." + INDEX { sCSIPortchassisIndex, + sCSIPortIndex } + ::= { sCSIPortTable 1 } + +sCSIPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { sCSIPortTableEntry 1 } +sCSIPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0002 This attribute defines the index (one based) of the +SCSI port." + ::= { sCSIPortTableEntry 2 } +sCSIPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0003 This attribute defines the state capabilities of the +SCSI port." + ::= { sCSIPortTableEntry 3 } +sCSIPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0004 This attribute defines the state settings of the +SCSI port." + ::= { sCSIPortTableEntry 4 } +sCSIPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0005 This attribute defines the status of the +SCSI port." + ::= { sCSIPortTableEntry 5 } +sCSIPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0006 This attribute defines the security state of the +SCSI port." + ::= { sCSIPortTableEntry 6 } +sCSIPortConnectorType OBJECT-TYPE + SYNTAX DellSCSIPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0007 This attribute defines the connector type of the +SCSI port." + ::= { sCSIPortTableEntry 7 } +sCSIPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0008 This attribute defines name of the SCSI port." + ::= { sCSIPortTableEntry 8 } +sCSIPortBIOSConnectorType OBJECT-TYPE + SYNTAX DellGenericPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0060.0001.0009 This attribute defines the BIOS connector type of the +SCSI port." + ::= { sCSIPortTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Parallel Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.70.1... +------------------------------------------------------------------------------- + +DellParallelPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsDB25PinFemale(3), -- type is Female DB-25, IEEE1284-A Receptical + connectorPortTypeIsDB25PinMale(4), -- type is Male DB-25, IEEE1284-A Plug + connectorPortTypeIsCentronics(5), -- type is Centronics, IEEE1284-B Receptical + connectorPortTypeIsMiniCentronics(6), -- type is MiniCentronics, IEEE1284-C Receptical + connectorPortTypeIsProprietary(7), -- type is Proprietary + connectorPortTypeIsCentronics14(8), -- type is Centronics 14 + connectorPortTypeIsDB36PinFemale(9), -- type is Female DB-36 + connectorPortTypeIsMiniCentronics20(10) -- type is MiniCentronics 20 +} +DellParallelPortConnectorPinout ::= INTEGER { + connectorPortPinoutIsOther(1), -- pinout is other than following values + connectorPortPinoutIsUnknown(2), -- pinout is unknown + connectorPortPinoutIsXTorAT(3), -- pinout is XT or AT pinout compatible + connectorPortPinoutIsPS2(4), -- pinout is PS/2 pinout compatible + connectorPortPinoutIsIEEE1284(5), -- pinout is IEEE 1284 pinout compatible + connectorPortPinoutIsProprietary(6), -- pinout is Proprietary + connectorPortPinoutIsPC98(7), -- pinout is PC-98 pinout compatible + connectorPortPinoutIsPC98Hireso(8), -- pinout is PC-98 Hireso pinout compatible + connectorPortPinoutIsPC98Note(9), -- pinout is PC-98 Note pinout compatible + connectorPortPinoutIsPC98Full(10) -- pinout is PC-98 Full pinout compatible +} +DellParallelPortCapabilitiesUnique ::= INTEGER { + -- If 0 (zero), there are no parallel port capabilities + unknown(1), -- capabilities are unknown + atCapable(2), -- port is AT mode capable + ps2Capable(4), -- port is PS/2 mode capable + ecpCapable(8), -- port is ECP mode capable + eppCapable(16), -- port is EPP mode capable + atOrPS2OrECPOrEPPCapable(30), -- port is AT, PS/2, ECP and EPP mode capable + pc98Capable(32), -- port is PC98 mode capable + pc98HiresoCapable(64), -- port is PC98 Hireso mode capable + pc98HCapable(128) -- port is PC98H mode capable +} + +ParallelPortTableEntry ::= SEQUENCE { + parallelPortchassisIndex DellObjectRange, + parallelPortIndex DellObjectRange, + parallelPortStateCapabilities DellStateCapabilities, + parallelPortStateSettings DellStateSettings, + parallelPortStatus DellStatus, + parallelPortSecurityState DellPortSecurityState, + parallelPortConnectorType DellParallelPortConnectorType, + parallelPortName DellString, + parallelPortConnectorPinOut DellParallelPortConnectorPinout, + parallelPortCapabilitiesUnique DellParallelPortCapabilitiesUnique, + parallelPortBaseIOAddress DellUnsigned64BitRange, + parallelPortIRQLevel DellUnsigned8BitRange, + parallelPortDMASupport DellBoolean +} + +parallelPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParallelPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0070 This object defines the Parallel Port Table." + ::= { portGroup 70 } +parallelPortTableEntry OBJECT-TYPE + SYNTAX ParallelPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0070.0001 This object defines the Parallel Port Table Entry." + INDEX { parallelPortchassisIndex, + parallelPortIndex } + ::= { parallelPortTable 1 } + +parallelPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { parallelPortTableEntry 1 } +parallelPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0002 This attribute defines the index (one based) of the +parallel port." + ::= { parallelPortTableEntry 2 } +parallelPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0003 This attribute defines the state capabilities of the +parallel port." + ::= { parallelPortTableEntry 3 } +parallelPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0004 This attribute defines the state settings of the +parallel port." + ::= { parallelPortTableEntry 4 } +parallelPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0005 This attribute defines the status of the +parallel port." + ::= { parallelPortTableEntry 5 } +parallelPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0006 This attribute defines the security state of the +parallel port." + ::= { parallelPortTableEntry 6 } +parallelPortConnectorType OBJECT-TYPE + SYNTAX DellParallelPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0007 This attribute defines the connector type of the +parallel port." + ::= { parallelPortTableEntry 7 } +parallelPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0008 This attribute defines the name of the +parallel port." + ::= { parallelPortTableEntry 8 } +parallelPortConnectorPinOut OBJECT-TYPE + SYNTAX DellParallelPortConnectorPinout + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0009 This attribute defines the pinout of the +parallel port." + ::= { parallelPortTableEntry 9 } +parallelPortCapabilitiesUnique OBJECT-TYPE + SYNTAX DellParallelPortCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0010 This attribute defines the mode capabilities of the +parallel port." + ::= { parallelPortTableEntry 10 } +parallelPortBaseIOAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0011 This attribute defines the base Input/Output address of +the parallel port." + ::= { parallelPortTableEntry 11 } +parallelPortIRQLevel OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0012 This attribute defines the Interrupt Request Level of +the parallel port." + ::= { parallelPortTableEntry 12 } +parallelPortDMASupport OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0070.0001.0013 This attribute defines if DMA is supported by the +parallel port." + ::= { parallelPortTableEntry 13 } + + +------------------------------------------------------------------------------- +-- Serial Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.80.1... +------------------------------------------------------------------------------- + +DellSerialPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsDB9PinMale(3), -- type is Male DB-9 + connectorPortTypeIsDB9PinFemale(4), -- type is Female DB-9 + connectorPortTypeIsDB25PinMale(5), -- type is Male DB-25 + connectorPortTypeIsDB25PinFemale(6), -- type is Female DB-25 + connectorPortTypeIsRJ11(7), -- type is RJ-11 + connectorPortTypeIsRJ45(8), -- type is RJ-45 + connectorPortTypeIsProprietary(9), -- type is Proprietary + connectorPortTypeIsCirdin8Male(10), -- type is Male Circular DIN-8 + connectorPortTypeIsCirdin8Female(11), -- type is Female Circular DIN-8 + connectorPortTypeIsMiniCentronics14(12), -- type is MiniCentronics 14 + connectorPortTypeIsMiniCentronics26(13) -- type is MiniCentronics 26 +} +DellSerialPortCapabilitiesUnique ::= INTEGER { + other(1), -- capabilities are other than following values + unknown(2), -- capabilities are unknown + xtorATCapable(4), -- port is XT or AT mode capable + c16450Capable(8), -- port is 16450 capable + c16550Capable(16), -- port is 16550 capable + c16550aCapable(32), -- port is 16550A capable + c8251Capable(64), -- port is 8251 capable + c8251FIFOCapable(128) -- port is 8251 FIFO capable +} + +SerialPortTableEntry ::= SEQUENCE { + serialPortchassisIndex DellObjectRange, + serialPortIndex DellObjectRange, + serialPortStateCapabilities DellStateCapabilities, + serialPortStateSettings DellStateSettings, + serialPortStatus DellStatus, + serialPortSecurityState DellPortSecurityState, + serialPortConnectorType DellSerialPortConnectorType, + serialPortName DellString, + serialPortMaximumSpeed DellUnsigned32BitRange, + serialPortCapabilitiesUnique DellSerialPortCapabilitiesUnique, + serialPortBaseIOAddress DellUnsigned64BitRange, + serialPortIRQLevel DellUnsigned8BitRange +} + +serialPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF SerialPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0080 This object defines the Serial Port Table." + ::= { portGroup 80 } +serialPortTableEntry OBJECT-TYPE + SYNTAX SerialPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0080.0001 This object defines the Serial Port Table Entry." + INDEX { serialPortchassisIndex, + serialPortIndex } + ::= { serialPortTable 1 } + +serialPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { serialPortTableEntry 1 } +serialPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0002 This attribute defines the index (one based) of the +serial port." + ::= { serialPortTableEntry 2 } +serialPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0003 This attribute defines the state capabilities of the +serial port." + ::= { serialPortTableEntry 3 } +serialPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0004 This attribute defines the state settings of the +serial port." + ::= { serialPortTableEntry 4 } +serialPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0005 This attribute defines the status of the +serial port." + ::= { serialPortTableEntry 5 } +serialPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0006 This attribute defines the security state of the +serial port." + ::= { serialPortTableEntry 6 } +serialPortConnectorType OBJECT-TYPE + SYNTAX DellSerialPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0007 This attribute defines the connector type of the +serial port." + ::= { serialPortTableEntry 7 } +serialPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0008 This attribute defines the name of the +serial port." + ::= { serialPortTableEntry 8 } +serialPortMaximumSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0009 This attribute defines the maximum speed the serial +port can support in bits per second. 0 (zero) indicates maximum speed +is unknown." + ::= { serialPortTableEntry 9 } +serialPortCapabilitiesUnique OBJECT-TYPE + SYNTAX DellSerialPortCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0010 This attribute defines the mode capabilities of the +serial port." + ::= { serialPortTableEntry 10 } +serialPortBaseIOAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0011 This attribute defines the base Input/Output address of +the serial port." + ::= { serialPortTableEntry 11 } +serialPortIRQLevel OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0080.0001.0012 This attribute defines the Interrupt Request Level of +the serial port." + ::= { serialPortTableEntry 12 } + + +------------------------------------------------------------------------------- +-- Universal Serial Bus (USB) Port Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1000.90.1... +------------------------------------------------------------------------------- + +DellUSBPortConnectorType ::= INTEGER { + connectorPortTypeIsOther(1), -- type is other than following values + connectorPortTypeIsUnknown(2), -- type is unknown + connectorPortTypeIsUSB(3) -- type is Universal Serial Bus +} + +USBPortTableEntry ::= SEQUENCE { + uSBPortchassisIndex DellObjectRange, + uSBPortIndex DellObjectRange, + uSBPortStateCapabilities DellStateCapabilities, + uSBPortStateSettings DellStateSettings, + uSBPortStatus DellStatus, + uSBPortSecurityState DellPortSecurityState, + uSBPortConnectorType DellUSBPortConnectorType, + uSBPortName DellString, + uSBPortBIOSConnectorType DellGenericPortConnectorType +} + +uSBPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF USBPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0090 This object defines the Universal Serial Bus (USB) Port Table." + ::= { portGroup 90 } +uSBPortTableEntry OBJECT-TYPE + SYNTAX USBPortTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1000.0090.0001 This object defines the USB Port Table Entry." + INDEX { uSBPortchassisIndex, + uSBPortIndex } + ::= { uSBPortTable 1 } + +uSBPortchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { uSBPortTableEntry 1 } +uSBPortIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0002 This attribute defines the index (one based) of the +USB port." + ::= { uSBPortTableEntry 2 } +uSBPortStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0003 This attribute defines the state capabilities of the +USB port." + ::= { uSBPortTableEntry 3 } +uSBPortStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0004 This attribute defines the state settings of the +USB port." + ::= { uSBPortTableEntry 4 } +uSBPortStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0005 This attribute defines the status of the USB port." + ::= { uSBPortTableEntry 5 } +uSBPortSecurityState OBJECT-TYPE + SYNTAX DellPortSecurityState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0006 This attribute defines the security state of the +USB port." + ::= { uSBPortTableEntry 6 } +uSBPortConnectorType OBJECT-TYPE + SYNTAX DellUSBPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0007 This attribute defines the connector type of the +USB port." + ::= { uSBPortTableEntry 7 } +uSBPortName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0008 This attribute defines name of the USB port." + ::= { uSBPortTableEntry 8 } +uSBPortBIOSConnectorType OBJECT-TYPE + SYNTAX DellGenericPortConnectorType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1000.0090.0001.0009 This attribute defines the BIOS connector type of the +USB port." + ::= { uSBPortTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Device Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Pointing Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.10.1... +------------------------------------------------------------------------------- + +DellPointingDeviceType ::= INTEGER { + deviceTypeIsOther(1), -- type is other than following values + deviceTypeIsUnknown(2), -- type is Unknown + deviceTypeIsAMouse(3), -- type is Mouse + deviceTypeIsATrackBall(4), -- type is Track Ball + deviceTypeIsATrackPoint(5), -- type is Track Point + deviceTypeIsAGlidePoint(6), -- type is Glide Point + deviceTypeIsATouchPad(7) -- type is Touch Pad +} + +PointingDeviceTableEntry ::= SEQUENCE { + pointingDevicechassisIndex DellObjectRange, + pointingDeviceIndex DellObjectRange, + pointingDeviceStateCapabilities DellStateCapabilities, + pointingDeviceStateSettings DellStateSettings, + pointingDeviceStatus DellStatus, + pointingPortIndexReference DellObjectRange, + pointingDeviceType DellPointingDeviceType, + pointingDeviceNumberofButtons DellUnsigned8BitRange +} + +pointingDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF PointingDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0010 This object defines the Pointing Device Table." + ::= { deviceGroup 10 } +pointingDeviceTableEntry OBJECT-TYPE + SYNTAX PointingDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0010.0001 This object defines the Pointing Device Table Entry." + INDEX { pointingDevicechassisIndex, + pointingDeviceIndex } + ::= { pointingDeviceTable 1 } + +pointingDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { pointingDeviceTableEntry 1 } +pointingDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0002 This attribute defines the index (one based) of the +pointing device." + ::= { pointingDeviceTableEntry 2 } +pointingDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0003 This attribute defines the state capabilities of the +pointing device." + ::= { pointingDeviceTableEntry 3 } +pointingDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0004 This attribute defines the state settings of the +pointing device." + ::= { pointingDeviceTableEntry 4 } +pointingDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0005 This attribute defines the status of the pointing device." + ::= { pointingDeviceTableEntry 5 } +pointingPortIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0006 This attribute defines the index (one based) of the +associated pointing port in the same chassis." + ::= { pointingDeviceTableEntry 6 } +pointingDeviceType OBJECT-TYPE + SYNTAX DellPointingDeviceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0007 This attribute defines the type of the pointing device." + ::= { pointingDeviceTableEntry 7 } +pointingDeviceNumberofButtons OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0010.0001.0008 This attribute defines the number of buttons on the +pointing device." + ::= { pointingDeviceTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Keyboard Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.20.1... +------------------------------------------------------------------------------- + +KeyboardDeviceTableEntry ::= SEQUENCE { + keyboardDevicechassisIndex DellObjectRange, + keyboardDeviceIndex DellObjectRange, + keyboardDeviceStateCapabilities DellStateCapabilities, + keyboardDeviceStateSettings DellStateSettings, + keyboardDeviceStatus DellStatus, + keyboardPortIndexReference DellObjectRange, + keyboardDeviceTypeName DellString, + keyboardDeviceLayoutName DellString +} + +keyboardDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF KeyboardDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0020 This object defines the Keyboard Device Table." + ::= { deviceGroup 20 } +keyboardDeviceTableEntry OBJECT-TYPE + SYNTAX KeyboardDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0020.0001 This object defines the Keyboard Device Table Entry." + INDEX { keyboardDevicechassisIndex, + keyboardDeviceIndex } + ::= { keyboardDeviceTable 1 } + +keyboardDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { keyboardDeviceTableEntry 1 } +keyboardDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0002 This attribute defines the index (one based) of the +keyboard device." + ::= { keyboardDeviceTableEntry 2 } +keyboardDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0003 This attribute defines the state capabilities of the +keyboard device." + ::= { keyboardDeviceTableEntry 3 } +keyboardDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0004 This attribute defines the state settings of the +keyboard device." + ::= { keyboardDeviceTableEntry 4 } +keyboardDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0005 This attribute defines the status of the keyboard device." + ::= { keyboardDeviceTableEntry 5 } +keyboardPortIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0006 This attribute defines the index (one based) of the +associated keyboard device in the same chassis." + ::= { keyboardDeviceTableEntry 6 } +keyboardDeviceTypeName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0007 This attribute defines the name of the keyboard device +type." + ::= { keyboardDeviceTableEntry 7 } +keyboardDeviceLayoutName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0020.0001.0008 This attribute defines the name of the keyboard device +layout." + ::= { keyboardDeviceTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Processor Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.30.1... +------------------------------------------------------------------------------- + +DellProcessorDeviceType ::= INTEGER { + deviceTypeIsOther(1), -- type is other than following values + deviceTypeIsUnknown(2), -- type is unknown + deviceTypeIsCPU(3), -- type is Central Processing Unit + deviceTypeIsMathProcessor(4), -- type is Math Processor + deviceTypeIsDSP(5), -- type is Digital Signal Processor + deviceTypeIsAVideoProcessor(6) -- type is Video Processor +} +DellProcessorDeviceFamily ::= INTEGER { + deviceFamilyIsOther(1), -- family is Other + deviceFamilyIsUnknown(2), -- family is Unknown + deviceFamilyIs8086(3), -- family is 8086 + deviceFamilyIs80286(4), -- family is 80286 + deviceFamilyIsIntel386(5), -- family is Intel386 processor + deviceFamilyIsIntel486(6), -- family is Intel486 processor + deviceFamilyIs8087(7), -- family is 8087 + deviceFamilyIs80287(8), -- family is 80287 + deviceFamilyIs80387(9), -- family is 80387 + deviceFamilyIs80487(10), -- family is 80487 + deviceFamilyIsPentium(11), -- family is Pentium processor Family + deviceFamilyIsPentiumPro(12), -- family is Pentium Pro processor + deviceFamilyIsPentiumII(13), -- family is Pentium II processor + deviceFamilyIsPentiumMMX(14), -- family is Pentium processor with MMX technology + deviceFamilyIsCeleron(15), -- family is Celeron processor + deviceFamilyIsPentiumIIXeon(16), -- family is Pentium II Xeon processor + deviceFamilyIsPentiumIII(17), -- family is Pentium III processor + deviceFamilyIsPentiumIIIXeon(18), -- family is Pentium III Xeon processor + deviceFamilyIsPentiumIIISpeedStep(19), -- family is Pentium III Processor with Intel SpeedStep Technology + deviceFamilyIsItanium(20), -- family is Itanium processor + deviceFamilyIsIntelXeon(21), -- family is Intel Xeon + deviceFamilyIsPentium4(22), -- family is Pentium 4 Processor + deviceFamilyIsIntelXeonMP(23), -- family is Intel Xeon processor MP + deviceFamilyIsIntelItanium2(24), -- family is Intel Itanium 2 processor + deviceFamilyIsK5(25), -- family is K5 Family + deviceFamilyIsK6(26), -- family is K6 Family + deviceFamilyIsK6-2(27), -- family is K6-2 + deviceFamilyIsK6-3(28), -- family is K6-3 + deviceFamilyIsAMDAthlon(29), -- family is AMD Athlon Processor Family + deviceFamilyIsAMD2900(30), -- family is AMD2900 Family + deviceFamilyIsK6-2Plus(31), -- family is K6-2+ + deviceFamilyIsPowerPC(32), -- family is Power PC Family + deviceFamilyIsPowerPC601(33), -- family is Power PC 601 + deviceFamilyIsPowerPC603(34), -- family is Power PC 603 + deviceFamilyIsPowerPC603Plus(35), -- family is Power PC 603+ + deviceFamilyIsPowerPC604(36), -- family is Power PC 604 + deviceFamilyIsPowerPC620(37), -- family is Power PC 620 + deviceFamilyIsPowerPCx704(38), -- family is Power PC x704 + deviceFamilyIsPowerPC750(39), -- family is Power PC 750 + deviceFamilyIsAlpha(48), -- family is Alpha Family + deviceFamilyIsAlpha21064(49), -- family is Alpha 21064 + deviceFamilyIsAlpha21066(50), -- family is Alpha 21066 + deviceFamilyIsAlpha21164(51), -- family is Alpha 21164 + deviceFamilyIsAlpha21164PC(52), -- family is Alpha 21164PC + deviceFamilyIsAlpha21164a(53), -- family is Alpha 21164a + deviceFamilyIsAlpha21264(54), -- family is Alpha 21264 + deviceFamilyIsAlpha21364(55), -- family is Alpha 21364 + deviceFamilyIsMIPS(64), -- family is MIPS Family + deviceFamilyIsMIPSR4000(65), -- family is MIPS R4000 + deviceFamilyIsMIPSR4200(66), -- family is MIPS R4200 + deviceFamilyIsMIPSR4400(67), -- family is MIPS R4400 + deviceFamilyIsMIPSR4600(68), -- family is MIPS R4600 + deviceFamilyIsMIPSR10000(69), -- family is MIPS R10000 + deviceFamilyIsSPARC(80), -- family is SPARC Family + deviceFamilyIsSuperSPARC(81), -- family is SuperSPARC + deviceFamilyIsmicroSPARCII(82), -- family is microSPARC II + deviceFamilyIsmicroSPARCIIep(83), -- family is microSPARC IIep + deviceFamilyIsUltraSPARC(84), -- family is UltraSPARC + deviceFamilyIsUltraSPARCII(85), -- family is UltraSPARC II + deviceFamilyIsUltraSPARCIIi(86), -- family is UltraSPARC IIi + deviceFamilyIsUltraSPARCIII(87), -- family is UltraSPARC III + deviceFamilyIsUltraSPARCIIIi(88), -- family is UltraSPARC IIIi + deviceFamilyIs68040(96), -- family is 68040 Family + deviceFamilyIs68xxx(97), -- family is 68xxx + deviceFamilyIs68000(98), -- family is 68000 + deviceFamilyIs68010(99), -- family is 68010 + deviceFamilyIs68020(100), -- family is 68020 + deviceFamilyIs68030(101), -- family is 68030 + deviceFamilyIsHobbit(112), -- family is Hobbit Family + deviceFamilyIsCrusoeTM5000(120), -- family is Crusoe TM5000 Family + deviceFamilyIsCrusoeTM3000(121), -- family is Crusoe TM3000 Family + deviceFamilyIsEfficeonTM8000(122), -- family is Efficeon TM8000 Family + deviceFamilyIsWeitek(128), -- family is Weitek + deviceFamilyIsAMDAthlon64(131), -- family is AMD Athlon 64 Processor Family + deviceFamilyIsAMDOpteron(132), -- family is AMD Opteron Processor Family + deviceFamilyIsAMDSempron(133), -- family is AMD Sempron Processor Family + deviceFamilyIsAMDTurion64Mobile(134), -- family is AMD Turion 64 Mobile Technology + deviceFamilyIsDualCoreAMDOpteron(135), -- family is Dual-Core AMD Opteron(TM) Processor Family + deviceFamilyIsAMDAthlon64X2DualCore(136), -- family is AMD Athlon 64 X2 Dual-Core Processor Family + deviceFamilyIsAMDTurion64X2Mobile(137), -- family is AMD Turion(TM) 64 X2 Mobile Technology + deviceFamilyIsQuadCoreAMDOpteron(138), -- family is Quad-Core AMD Opteron(TM) Processor Family + deviceFamilyIsThirdGenerationAMDOpteron(139), -- family is Third-Generation AMD Opteron(TM) Processor Family + deviceFamilyIsPA-RISC(144), -- family is PA-RISC Family + deviceFamilyIsPA-RISC8500(145), -- family is PA-RISC 8500 + deviceFamilyIsPA-RISC8000(146), -- family is PA-RISC 8000 + deviceFamilyIsPA-RISC7300LC(147), -- family is PA-RISC 7300LC + deviceFamilyIsPA-RISC7200(148), -- family is PA-RISC 7200 + deviceFamilyIsPA-RISC7100LC(149), -- family is PA-RISC 7100LC + deviceFamilyIsPA-RISC7100(150), -- family is PA-RISC 7100 + deviceFamilyIsV30(160), -- family is V30 Family + deviceFamilyIsDualCoreIntelXeon5200(171), -- family is Dual-Core Intel(R) Xeon(R) processor 5200 Series + deviceFamilyIsDualCoreIntelXeon7200(172), -- family is Dual-Core Intel(R) Xeon(R) processor 7200 Series + deviceFamilyIsQuadCoreIntelXeon7300(173), -- family is Quad-Core Intel(R) Xeon(R) processor 7300 Series + deviceFamilyIsQuadCoreIntelXeon7400(174), -- family is Quad-Core Intel(R) Xeon(R) processor 7400 Series + deviceFamilyIsMultiCoreIntelXeon7400(175), -- family is Multi-Core Intel(R) Xeon(R) processor 7400 Series + deviceFamilyIsM1(176), -- family is M1 Family + deviceFamilyIsM2(177), -- family is M2 Family + deviceFamilyIsAS400(180), -- family is AS400 Family + deviceFamilyIsAMDAthlonXP(182), -- family is AMD Athlon XP Processor Family + deviceFamilyIsAMDAthlonMP(183), -- family is AMD Athlon MP Processor Family + deviceFamilyIsAMDDuron(184), -- family is AMD Duron Processor Family + deviceFamilyIsIntelPentiumM(185), -- family is Intel Pentium M processor + deviceFamilyIsIntelCeleronD(186), -- family is Intel Celeron D processor + deviceFamilyIsIntelPentiumD(187), -- family is Intel Pentium D processor + deviceFamilyIsIntelPentiumExtreme(188), -- family is Intel Pentium Processor Extreme Edition + deviceFamilyIsIntelCoreSolo(189), -- family is Intel(R) Core(TM) Solo processor + deviceFamilyIsIntelCore2(190), -- family is Intel(R) Core(TM)2 processor + deviceFamilyIsIntelCore2Duo(191), -- family is Intel(R) Core(TM)2 Duo processor + deviceFamilyIsIntelCorei7(198), -- family is Intel(R) Core(TM) i7 processor + deviceFamilyIsDualCoreIntelCeleron(199), -- family is Dual-Core Intel(R) Celeron(R) Processor + deviceFamilyIsIBM390(200), -- family is IBM390 Family + deviceFamilyIsG4(201), -- family is G4 + deviceFamilyIsG5(202), -- family is G5 + deviceFamilyIsESA390G6(203), -- family is ESA/390 G6 + deviceFamilyIszArchitectur(204), -- family is z/Architectur base + deviceFamilyIsVIAC7-M(210), -- family is VIA C7(TM)-M Processor Family + deviceFamilyIsVIAC7-D(211), -- family is VIA C7(TM)-D Processor Family + deviceFamilyIsVIAC7(212), -- family is VIA C7(TM) Processor Family + deviceFamilyIsVIAEden(213), -- family is VIA Eden(TM) Processor Family + deviceFamilyIsMultiCoreIntelXeon(214), -- family is Multi-Core Intel(R) Xeon(R) processor + deviceFamilyIsDualCoreIntelXeon3xxx(215), -- family is Dual-Core Intel(R) Xeon(R) processor 3xxx Series + deviceFamilyIsQuadCoreIntelXeon3xxx(216), -- family is Quad-Core Intel(R) Xeon(R) processor 3xxx Series + deviceFamilyIsDualCoreIntelXeon5xxx(218), -- family is Dual-Core Intel(R) Xeon(R) processor 5xxx Series + deviceFamilyIsQuadCoreIntelXeon5xxx(219), -- family is Quad-Core Intel(R) Xeon(R) processor 5xxx Series + deviceFamilyIsDualCoreIntelXeon7xxx(221), -- family is Dual-Core Intel(R) Xeon(R) processor 7xxx Series + deviceFamilyIsQuadCoreIntelXeon7xxx(222), -- family is Quad-Core Intel(R) Xeon(R) processor 7xxx Series + deviceFamilyIsMultiCoreIntelXeon7xxx(223), -- family is Multi-Core Intel(R) Xeon(R) processor 7xxx Series + deviceFamilyIsi860(250), -- family is i860 + deviceFamilyIsi960(251) -- family is i960 +} +DellProcessorDeviceStatusState ::= INTEGER { + other(1), -- state is other than following values + unknown(2), -- state is unknown + enabled(3), -- state is enabled + userDisabled(4), -- state is disabled by user via BIOS setup + biosDisabled(5), -- state is disabled by BIOS (POST error) + idle(6) -- state is idle +} +DellProcessorUpgradeInformation ::= INTEGER { + processorUpgradeIsOther(1), -- upgrade is other than following values + processorUpgradeIsUnknown(2), -- upgrade is unknown + processorUpgradeIsByDaughterBoard(3), -- upgrade is by Daughter Board + processorUpgradeIsByZIFSocket(4), -- upgrade is by ZIF socket + processorUpgradeIsByReplacement(5), -- upgrade is by Replacement/Piggy Back + processorUpgradeIsNone(6), -- upgrade is None + processorUpgradeIsByLIFSocket(7), -- upgrade is by LIF Socket + processorUpgradeIsBySlot1(8), -- upgrade is by Slot 1 + processorUpgradeIsBySlot2(9), -- upgrade is by Slot 2 + processorUpgradeIsBy370PinSocket(10), -- upgrade is by 370 Pin Socket + processorUpgradeIsBySlotA(11), -- upgrade is by Slot A + processorUpgradeIsBySlotM(12), -- upgrade is by Slot M + processorUpgradeIsByScoket423(13), -- upgrade is by Socket 423 + processorUpgradeIsBySocketA(14), -- upgrade is by Socket A (Socket 462) + processorUpgradeIsBySocket478(15), -- upgrade is by Socket 478 + processorUpgradeIsBySocket754(16), -- upgrade is by Socket 754 + processorUpgradeIsBySocket940(17), -- upgrade is by Socket 940 + processorUpgradeIsBySocket939(18), -- upgrade is by Socket 939 + processorUpgradeIsBySocketmPGA604(19), -- upgrade is by Socket mPGA604 + processorUpgradeIsBySocketLGA771(20), -- upgrade is by Socket LGA771 + processorUpgradeIsBySocketLGA775(21), -- upgrade is by Socket LGA775 + processorUpgradeIsBySocketS1(22), -- upgrade is by Socket S1 + processorUpgradeIsBySocketAM2(23), -- upgrade is by Socket AM2 + processorUpgradeIsBySocketF(24), -- upgrade is by Socket F (1207) + processorUpgradeIsBySocketLGA1366(25) -- upgrade is by Socket LGA1366 +} + +ProcessorDeviceTableEntry ::= SEQUENCE { + processorDevicechassisIndex DellObjectRange, + processorDeviceIndex DellObjectRange, + processorDeviceStateCapabilities DellStateCapabilities, + processorDeviceStateSettings DellStateSettings, + processorDeviceStatus DellStatus, + processorPortIndexReference DellObjectRange, + processorDeviceType DellProcessorDeviceType, + processorDeviceManufacturerName DellString, + processorDeviceStatusState DellProcessorDeviceStatusState, + processorDeviceFamily DellProcessorDeviceFamily, + processorDeviceMaximumSpeed DellUnsigned32BitRange, + processorDeviceCurrentSpeed DellUnsigned32BitRange, + processorDeviceExternalClockSpeed DellUnsigned32BitRange, + processorDeviceVoltage DellSigned32BitRange, + processorDeviceUpgradeInformation DellProcessorUpgradeInformation, + processorDeviceVersionName DellString, + processorDeviceCoreCount DellUnsigned32BitRange, + processorDeviceCoreEnabledCount DellUnsigned32BitRange, + processorDeviceThreadCount DellUnsigned32BitRange, + processorDeviceCharacteristics DellUnsigned16BitRange, + processorDeviceExtendedCapabilities DellUnsigned16BitRange, + processorDeviceExtendedSettings DellUnsigned16BitRange, + processorDeviceBrandName DellString, + processorDeviceModelName DellString, + processorDeviceSteppingName DellString +} + +processorDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF ProcessorDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0030 This object defines the Processor Device Table." + ::= { deviceGroup 30 } +processorDeviceTableEntry OBJECT-TYPE + SYNTAX ProcessorDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0030.0001 This object defines the Processor Device Table Entry." + INDEX { processorDevicechassisIndex, + processorDeviceIndex } + ::= { processorDeviceTable 1 } + +processorDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { processorDeviceTableEntry 1 } +processorDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0002 This attribute defines the index (one based) of the +processor device." + ::= { processorDeviceTableEntry 2 } +processorDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0003 This attribute defines the state capabilities of the +processor device." + ::= { processorDeviceTableEntry 3 } +processorDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0004 This attribute defines the state settings of the +processor device." + ::= { processorDeviceTableEntry 4 } +processorDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0005 This attribute defines the status of the +processor device." + ::= { processorDeviceTableEntry 5 } +processorPortIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0006 This attribute defines the index (one based) of the +associated processor port in the same chassis." + ::= { processorDeviceTableEntry 6 } +processorDeviceType OBJECT-TYPE + SYNTAX DellProcessorDeviceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0007 This attribute defines the type of the processor device." + ::= { processorDeviceTableEntry 7 } +processorDeviceManufacturerName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0008 This attribute defines the name of the manufacturer +of the processor device." + ::= { processorDeviceTableEntry 8 } +processorDeviceStatusState OBJECT-TYPE + SYNTAX DellProcessorDeviceStatusState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0009 This attribute defines the status state of the +processor device." + ::= { processorDeviceTableEntry 9 } +processorDeviceFamily OBJECT-TYPE + SYNTAX DellProcessorDeviceFamily + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0010 This attribute defines the family of the +processor device." + ::= { processorDeviceTableEntry 10 } +processorDeviceMaximumSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0011 This attribute defines the maximum speed of the +processor device in MHz. Zero indicates the maximum speed is unknown." + ::= { processorDeviceTableEntry 11 } +processorDeviceCurrentSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0012 This attribute defines the current speed of the +processor device in MHz. Zero indicates the current speed is unknown." + ::= { processorDeviceTableEntry 12 } +processorDeviceExternalClockSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0013 This attribute defines the speed of the +external clock for the processor device in MHz. Zero indicates +the external clock speed is unknown." + ::= { processorDeviceTableEntry 13 } +processorDeviceVoltage OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0014 This attribute defines the voltage powering the +processor device in millivolts. Zero indicates the voltage is unknown." + ::= { processorDeviceTableEntry 14 } +processorDeviceUpgradeInformation OBJECT-TYPE + SYNTAX DellProcessorUpgradeInformation + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0015 This attribute defines the processor upgrade +information for the processor device." + ::= { processorDeviceTableEntry 15 } +processorDeviceVersionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0016 This attribute defines the version of the +processor device. On some systems, this value contains the +brand and stepping information; on other systems, this value +contains the model and stepping information." + ::= { processorDeviceTableEntry 16 } +processorDeviceCoreCount OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0017 This attribute defines the number of processor cores +detected for the processor device." + ::= { processorDeviceTableEntry 17 } +processorDeviceCoreEnabledCount OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0018 This attribute defines the number of processor cores +enabled for the processor device." + ::= { processorDeviceTableEntry 18 } +processorDeviceThreadCount OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0019 This attribute defines the number of processor threads +detected for the processor device." + ::= { processorDeviceTableEntry 19 } +processorDeviceCharacteristics OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0020 This attribute defines characteristics of the +processor device. This attribute is a bit field where a bit has the meaning +defined below when set to 1 (one). + +NOTE: Bits 2-15 need to be examined in the context of bit 1. +If bit 1 is set, the processor charactistics are unknown and bits 2-15 cannot +be used to determine if the functions associated with the bits are supported. + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 Reserved + Bit 1 Unknown + Bit 2 64-bit capable + Bit 3-15 Reserved" + ::= { processorDeviceTableEntry 20 } +processorDeviceExtendedCapabilities OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0021 This attribute defines extended capabilities of the +processor device. This attribute is a bit field where a bit has the meaning +defined below when set to 1 (one). + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 Virtualization Technology (VT) supported + Bit 1 Demand-Based Switching (DBS) supported + Bit 2 eXecute Disable (XD) supported + Bit 3 Hyper-Threading (HT) supported" + ::= { processorDeviceTableEntry 21 } +processorDeviceExtendedSettings OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0022 This attribute defines extended settings of the +processor device. This attribute is a bit field where a bit has the meaning +defined below when set to 1 (one). + + Bit + Position Meaning if Set + -------- -------------- + Bit 0 Virtualization Technology (VT) enabled + Bit 1 Demand Based Switching (DBS) enabled + Bit 2 eXecute Disable (XD) enabled + Bit 3 Hyper-Threading (HT) enabled" + ::= { processorDeviceTableEntry 22 } +processorDeviceBrandName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0023 This attribute defines the brand of the +processor device." + ::= { processorDeviceTableEntry 23 } +processorDeviceModelName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0024 This attribute defines the model of the +processor device." + ::= { processorDeviceTableEntry 24 } +processorDeviceSteppingName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0030.0001.0025 This attribute defines the stepping of the +processor device." + ::= { processorDeviceTableEntry 25 } + + +------------------------------------------------------------------------------- +-- Processor Device Status Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.32.1... +------------------------------------------------------------------------------- + +DellProcessorDeviceStatusReading ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + internalError(1), -- Internal Error + thermalTrip(2), -- Thermal Trip + configurationError(32), -- Configuration Error + processorPresent(128), -- Processor Present + processorDisabled(256), -- Processor Disabled + terminatorPresent(512), -- Terminator Present + processorThrottled(1024) -- Processor Throttled +} + +ProcessorDeviceStatusTableEntry ::= SEQUENCE { + processorDeviceStatusChassisIndex DellObjectRange, + processorDeviceStatusIndex DellObjectRange, + processorDeviceStatusStateCapabilities DellStateCapabilities, + processorDeviceStatusStateSettings DellStateSettings, + processorDeviceStatusStatus DellStatus, + processorDeviceStatusReading DellProcessorDeviceStatusReading, + processorDeviceStatusLocationName DellString, + processorDeviceStatusPortIndexReference DellObjectRange +} + +processorDeviceStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF ProcessorDeviceStatusTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0032 This object defines the Processor Device Status Table." + ::= { deviceGroup 32 } +processorDeviceStatusTableEntry OBJECT-TYPE + SYNTAX ProcessorDeviceStatusTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0032.0001 This object defines the Processor Device Status Table Entry." + INDEX { processorDeviceStatusChassisIndex, + processorDeviceStatusIndex } + ::= { processorDeviceStatusTable 1 } + +processorDeviceStatusChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { processorDeviceStatusTableEntry 1 } +processorDeviceStatusIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0002 This attribute defines the index (one based) of the +processor device status probe." + ::= { processorDeviceStatusTableEntry 2 } +processorDeviceStatusStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0003 This attribute defines the state capabilities of the +processor device status probe." + ::= { processorDeviceStatusTableEntry 3 } +processorDeviceStatusStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0004 This attribute defines the state settings of the +processor device status probe." + ::= { processorDeviceStatusTableEntry 4 } +processorDeviceStatusStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0005 This attribute defines the status of the +processor device status probe. This status will be joined into +the processorDeviceStatus attribute." + ::= { processorDeviceStatusTableEntry 5 } +processorDeviceStatusReading OBJECT-TYPE + SYNTAX DellProcessorDeviceStatusReading + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0006 This attribute defines the reading of the +processor device status probe." + ::= { processorDeviceStatusTableEntry 6 } +processorDeviceStatusLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0007 This attribute defines the location name of the +processor device status probe." + ::= { processorDeviceStatusTableEntry 7 } +processorDeviceStatusPortIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0032.0001.0008 This attribute defines the index (one based) of the +associated processor port in the same chassis." + ::= { processorDeviceStatusTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Cache Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.40.1... +------------------------------------------------------------------------------- + +DellCacheDeviceType ::= INTEGER { + deviceTypeIsOther(1), -- type is other than following values + deviceTypeIsUnknown(2), -- type is unknown + deviceTypeIsInstruction(3), -- type is instruction + deviceTypeIsData(4), -- type is data + deviceTypeIsUnified(5) -- type is unified +} +DellCacheDeviceLevel ::= INTEGER { + deviceLevelIsOther(1), -- level is other than following values + deviceLevelIsUnknown(2), -- level is unknown + deviceLevelIsPrimary(3), -- level is primary + deviceLevelIsSecondary(4), -- level is secondary + deviceLevelIsTertiary(5) -- level is tertiary +} +DellCacheDeviceWritePolicy ::= INTEGER { + deviceWritePolicyIsOther(1), -- policy is other than following values + deviceWritePolicyIsUnknown(2), -- policy is unknown + deviceWritePolicyIsWriteBack(3), -- policy is write back + deviceWritePolicyIsWriteThrough(4), -- policy is write through + deviceWritePolicyIsVariesByAddress(5), -- policy is varies by address + deviceWritePolicyIsDeterminedByIO(6) -- policy is determined by I/O query +} +DellCacheDeviceStatusState ::= INTEGER { + other(1), -- state is other than following values + unknown(2), -- state is unknown + enabled(3), -- state is enabled + userDisabled(4), -- state is disabled by user + biosDisabled(5) -- state is BIOS disabled +} +DellCacheDeviceECCType ::= INTEGER { + deviceECCTypeIsOther(1), -- ECC type is other than following values + deviceECCTypeIsUnknown(2), -- ECC type is unknown + deviceECCTypeIsNone(3), -- ECC type is none + deviceECCTypeIsParity(4), -- ECC type is parity + deviceECCTypeIsSingleBitECC(5), -- ECC type is single bit ECC + deviceECCTypeIsMultiBitECC(6), -- ECC type is multibit ECC + deviceECCTypeIsCRC(7) -- ECC type is CRC +} +DellCacheDeviceAssociativity ::= INTEGER { + deviceAssociativityIsOther(1), -- associativity is Other + deviceAssociativityIsUnknown(2), -- associativity is Unknown + deviceAssociativityIsDirectMapped(3), -- associativity is Direct Mapped + deviceAssociativityIsTwoWaySetAssociative(4), -- associativity is 2-way Set-Associative + deviceAssociativityIsFourWaySetAssociative(5), -- associativity is 4-way Set-Associative + deviceAssociativityIsFullyAssociative(6), -- associativity is Fully Associative + deviceAssociativityIsEightWaySetAssociative(7), -- associativity is 8-way Set-Associative + deviceAssociativityIsSixteenWaySetAssociative(8), -- associativity is 16-way Set-Associative + deviceAssociativityIs12WaySetAssociative(9), -- associativity is 12-way Set-Associative + deviceAssociativityIs24WaySetAssociative(10), -- associativity is 24-way Set-Associative + deviceAssociativityIs32WaySetAssociative(11), -- associativity is 32-way Set-Associative + deviceAssociativityIs48WaySetAssociative(12), -- associativity is 48-way Set-Associative + deviceAssociativityIs64WaySetAssociative(13) -- associativity is 64-way Set-Associative +} +DellCacheDeviceLocation ::= INTEGER { + deviceLocationIsOther(1), -- location is other than following values + deviceLocationIsUnknown(2), -- location is unknown + deviceLocationIsInternal(3), -- location is internal + deviceLocationIsExternal(4) -- location is external +} +DellCacheDeviceSRAMType ::= INTEGER { + deviceSRAMTypeIsOther(1), -- SRAM type is other than following values + deviceSRAMTypeIsUnknown(2), -- SRAM type is unknown + deviceSRAMTypeIsNonBurst(3), -- SRAM type is nonburst + deviceSRAMTypeIsBurst(4), -- SRAM type is burst + deviceSRAMTypeIsPipeBurst(5), -- SRAM type is pipeburst + deviceSRAMTypeIsSynchronous(6), -- SRAM type is synchronous + deviceSRAMTypeIsAsynchronous(7) -- SRAM type is asynchronous +} + +CacheDeviceTableEntry ::= SEQUENCE { + cacheDevicechassisIndex DellObjectRange, + cacheDeviceIndex DellObjectRange, + cacheDeviceStateCapabilities DellStateCapabilities, + cacheDeviceStateSettings DellStateSettings, + cacheDeviceStatus DellStatus, + cacheDeviceprocessorDeviceIndexReference DellObjectRange, + cacheDeviceType DellCacheDeviceType, + cacheDeviceLocation DellCacheDeviceLocation, + cacheDeviceStatusState DellCacheDeviceStatusState, + cacheDeviceExternalSocketName DellString, + cacheDeviceLevel DellCacheDeviceLevel, + cacheDeviceMaximumSize DellUnsigned32BitRange, + cacheDeviceCurrentSize DellUnsigned32BitRange, + cacheDeviceSpeed DellUnsigned32BitRange, + cacheDeviceWritePolicy DellCacheDeviceWritePolicy, + cacheDeviceIsSocketed DellBoolean, + cacheDeviceECCType DellCacheDeviceECCType, + cacheDeviceAssociativity DellCacheDeviceAssociativity, + cacheDeviceSupportedType DellCacheDeviceSRAMType, + cacheDeviceCurrentType DellCacheDeviceSRAMType +} + +cacheDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF CacheDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0040 This object defines the Cache Device Table." + ::= { deviceGroup 40 } +cacheDeviceTableEntry OBJECT-TYPE + SYNTAX CacheDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0040.0001 This object defines the Cache Device Table Entry." + INDEX { cacheDevicechassisIndex, + cacheDeviceIndex } + ::= { cacheDeviceTable 1 } + +cacheDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cacheDeviceTableEntry 1 } +cacheDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0002 This attribute defines the index (one based) of the +cache device." + ::= { cacheDeviceTableEntry 2 } +cacheDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0003 This attribute defines the state capabilities of the +cache device." + ::= { cacheDeviceTableEntry 3 } +cacheDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0004 This attribute defines the state settings of the +cache device." + ::= { cacheDeviceTableEntry 4 } +cacheDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0005 This attribute defines the status of the cache device." + ::= { cacheDeviceTableEntry 5 } +cacheDeviceprocessorDeviceIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0006 This attribute defines the index (one based) of the +processor device associated with the cache device." + ::= { cacheDeviceTableEntry 6 } +cacheDeviceType OBJECT-TYPE + SYNTAX DellCacheDeviceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0007 This attribute defines the type of cache device." + ::= { cacheDeviceTableEntry 7 } +cacheDeviceLocation OBJECT-TYPE + SYNTAX DellCacheDeviceLocation + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0008 This attribute defines the location of the cache device." + ::= { cacheDeviceTableEntry 8 } +cacheDeviceStatusState OBJECT-TYPE + SYNTAX DellCacheDeviceStatusState + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0009 This attribute defines the status state of the +cache device." + ::= { cacheDeviceTableEntry 9 } +cacheDeviceExternalSocketName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0010 This attribute defines the name of the external socket +name of the cache device if the cache device is socketed." + ::= { cacheDeviceTableEntry 10 } +cacheDeviceLevel OBJECT-TYPE + SYNTAX DellCacheDeviceLevel + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0011 This attribute defines the level of the cache device." + ::= { cacheDeviceTableEntry 11 } +cacheDeviceMaximumSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0012 This attribute defines the maximum size of the +cache device in KBytes. Zero indicates the maximum size is unknown." + ::= { cacheDeviceTableEntry 12 } +cacheDeviceCurrentSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0013 This attribute defines the current size of the +cache device in KBytes. Zero indicates the current size is unknown." + ::= { cacheDeviceTableEntry 13 } +cacheDeviceSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0014 This attribute defines the speed of the +cache device in nanoseconds. Zero indicates the speed is unknown." + ::= { cacheDeviceTableEntry 14 } +cacheDeviceWritePolicy OBJECT-TYPE + SYNTAX DellCacheDeviceWritePolicy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0015 This attribute defines the write policy of the +cache device." + ::= { cacheDeviceTableEntry 15 } +cacheDeviceIsSocketed OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0016 This attribute defines if the cache device is +socketed or not." + ::= { cacheDeviceTableEntry 16 } +cacheDeviceECCType OBJECT-TYPE + SYNTAX DellCacheDeviceECCType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0017 This attribute defines the type of error correction +in use by the cache device." + ::= { cacheDeviceTableEntry 17 } +cacheDeviceAssociativity OBJECT-TYPE + SYNTAX DellCacheDeviceAssociativity + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0018 This attribute defines the type of associativity +in use by the cache device." + ::= { cacheDeviceTableEntry 18 } +cacheDeviceSupportedType OBJECT-TYPE + SYNTAX DellCacheDeviceSRAMType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0019 This attribute defines the supported SRAM type of the +cache device." + ::= { cacheDeviceTableEntry 19 } +cacheDeviceCurrentType OBJECT-TYPE + SYNTAX DellCacheDeviceSRAMType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0040.0001.0020 This attribute defines the current SRAM type of the +cache device." + ::= { cacheDeviceTableEntry 20 } + + +------------------------------------------------------------------------------- +-- Memory Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.50.1... +------------------------------------------------------------------------------- + +DellMemoryDeviceFormFactor ::= INTEGER { + deviceFormFactorIsOther(1), -- form factor is other than following values + deviceFormFactorIsUnknown(2), -- form factor is unknown + deviceFormFactorIsSIMM(3), -- form factor is SIMM + deviceFormFactorIsSIP(4), -- form factor is SIP + deviceFormFactorIsAChip(5), -- form factor is Chip + deviceFormFactorIsDIP(6), -- form factor is DIP + deviceFormFactorIsZIP(7), -- form factor is ZIP + deviceFormFactorIsAProprietaryCard(8), -- form factor is Proprietary Card + deviceFormFactorIsDIMM(9), -- form factor is DIMM + deviceFormFactorIsTSOP(10), -- form factor is TSOP + deviceFormFactorIsARowOfChips(11), -- form factor is Row of Chips + deviceFormFactorIsRIMM(12), -- form factor is RIMM + deviceFormFactorIsSODIMM(13), -- form factor is SODIMM + deviceFormFactorIsSRIMM(14), -- form factor is SRIMM + deviceFormFactorIsFBDIMM(15) -- form factor is FB-DIMM +} +DellMemoryDeviceType ::= INTEGER { + deviceTypeIsOther(1), -- type is other than following values + deviceTypeIsUnknown(2), -- type is unknown + deviceTypeIsDRAM(3), -- type is DRAM + deviceTypeIsEDRAM(4), -- type is EDRAM + deviceTypeIsVRAM(5), -- type is VRAM + deviceTypeIsSRAM(6), -- type is SRAM + deviceTypeIsRAM(7), -- type is RAM + deviceTypeIsROM(8), -- type is ROM + deviceTypeIsFLASH(9), -- type is FLASH + deviceTypeIsEEPROM(10), -- type is EEPROM + deviceTypeIsFEPROM(11), -- type is FEPROM + deviceTypeIsEPROM(12), -- type is EPROM + deviceTypeIsCDRAM(13), -- type is CDRAM + deviceTypeIs3DRAM(14), -- type is 3DRAM + deviceTypeIsSDRAM(15), -- type is SDRAM + deviceTypeIsSGRAM(16), -- type is SGRAM + deviceTypeIsRDRAM(17), -- type is RDRAM + deviceTypeIsDDR(18), -- type is DDR + deviceTypeIsDDR2(19), -- type is DDR2 + deviceTypeIsDDR2FBDIMM(20), -- type is DDR2 FB-DIMM + deviceTypeIsDDR3(24) -- type is DDR3 +} +DellMemoryDeviceTypeDetails ::= INTEGER { + deviceTypeDetailIsOther(1), -- type detail is other than following values + deviceTypeDetailIsUnknown(2), -- type detail is unknown + deviceTypeDetailIsFastPaged(3), -- type detail is Fast Paged + deviceTypeDetailIsStaticColumn(4), -- type detail is Static Column + deviceTypeDetailIsPseudoStatic(5), -- type detail is Pseudo-static + deviceTypeDetailIsRAMBUS(6), -- type detail is RAMBUS + deviceTypeDetailIsSynchronous(7), -- type detail is Synchronous + deviceTypeDetailIsCMOS(8), -- type detail is CMOS + deviceTypeDetailIsEDO(9), -- type detail is EDO + deviceTypeDetailIsWindowDRAM(10), -- type detail is Window DRAM + deviceTypeDetailIsCacheDRAM(11), -- type detail is Cache DRAM + deviceTypeDetailIsNonVolatile(12), -- type detail is Non-volatile + deviceTypeDetailIsRegistered(13), -- type detail is Registered + deviceTypeDetailIsNonRegistered(14) -- type detail is Non-registered +} +DellMemoryDeviceFailureModes ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- If value is 0 (zero), memory device has no faults. + eccSingleBitCorrectionWarningRate(1), -- ECC single bit correction warning rate exceeded + eccSingleBitCorrectionFailureRate(2), -- ECC single bit correction failure rate exceeded + eccMultiBitFault(4), -- ECC multibit fault encountered + eccSingleBitCorrectionLoggingDisabled(8), -- ECC single bit correction logging disabled + deviceDisabledBySpareActivation(16) -- device disabled because of spare activation +} + +MemoryDeviceTableEntry ::= SEQUENCE { + memoryDevicechassisIndex DellObjectRange, + memoryDeviceIndex DellObjectRange, + memoryDeviceStateCapabilities DellStateCapabilities, + memoryDeviceStateSettings DellStateSettings, + memoryDeviceStatus DellStatus, + memoryDeviceMemoryPortIndexReference DellObjectRange, + memoryDeviceType DellMemoryDeviceType, + memoryDeviceLocationName DellString, + memoryDeviceErrorCount DellSigned32BitRange, + memoryDeviceBankLocationName DellString, + memoryDeviceTypeDetails DellMemoryDeviceTypeDetails, + memoryDeviceFormFactor DellMemoryDeviceFormFactor, + memoryDeviceSet DellUnsigned32BitRange, + memoryDeviceSize DellUnsigned32BitRange, + memoryDeviceSpeed DellUnsigned32BitRange, + memoryDeviceTotalBusWidth DellUnsigned32BitRange, + memoryDeviceTotalDataBusWidth DellUnsigned32BitRange, + memoryDeviceSingleBitErrorCount DellSigned32BitRange, + memoryDeviceMultiBitErrorCount DellSigned32BitRange, + memoryDeviceFailureModes DellMemoryDeviceFailureModes, + memoryDeviceManufacturerName DellString, + memoryDevicePartNumberName DellString, + memoryDeviceSerialNumberName DellString, + memoryDeviceAssetTagName DellString, + memoryDeviceSpeedName DellString +} + +memoryDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF MemoryDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0050 This object defines the Memory Device Table." + ::= { deviceGroup 50 } +memoryDeviceTableEntry OBJECT-TYPE + SYNTAX MemoryDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0050.0001 This object defines the Memory Device Table Entry." + INDEX { memoryDevicechassisIndex, + memoryDeviceIndex } + ::= { memoryDeviceTable 1 } + +memoryDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { memoryDeviceTableEntry 1 } +memoryDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0002 This attribute defines the index (one based) of the +memory device." + ::= { memoryDeviceTableEntry 2 } +memoryDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0003 This attribute defines the state capabilities of the +memory device." + ::= { memoryDeviceTableEntry 3 } +memoryDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0004 This attribute defines the state settings of the +memory device." + ::= { memoryDeviceTableEntry 4 } +memoryDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0005 This attribute defines the status of the memory device." + ::= { memoryDeviceTableEntry 5 } +memoryDeviceMemoryPortIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0006 This attribute defines the index (one based) of the +memory port that this memory device is part of." + ::= { memoryDeviceTableEntry 6 } +memoryDeviceType OBJECT-TYPE + SYNTAX DellMemoryDeviceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0007 This attribute defines the type of the memory device." + ::= { memoryDeviceTableEntry 7 } +memoryDeviceLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0008 This attribute defines the location of the memory device." + ::= { memoryDeviceTableEntry 8 } +memoryDeviceErrorCount OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS deprecated + DESCRIPTION +"1100.0050.0001.0009 This attribute defines the total number of ECC corrections +for the memory device. Writing a 0 (zero) to this variable will reset +the error counts for the device. + +**NOTE: This attribute is deprecated and replaced by memoryDeviceFailureModes. +The value will always be zero. Writing a 0 (zero) has no effect." + ::= { memoryDeviceTableEntry 9 } +memoryDeviceBankLocationName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0010 This attribute defines the location of the bank for the +memory device." + ::= { memoryDeviceTableEntry 10 } +memoryDeviceTypeDetails OBJECT-TYPE + SYNTAX DellMemoryDeviceTypeDetails + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0011 This attribute defines the detailed type of the +memory device." + ::= { memoryDeviceTableEntry 11 } +memoryDeviceFormFactor OBJECT-TYPE + SYNTAX DellMemoryDeviceFormFactor + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0012 This attribute defines the form factor of the +memory device." + ::= { memoryDeviceTableEntry 12 } +memoryDeviceSet OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0013 This attribute defines if the memory device is a part +of a set. Zero indicates it is not part of a set; 2,147,483,647 indicates +it is unknown if it is a part of a set." + ::= { memoryDeviceTableEntry 13 } +memoryDeviceSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0014 This attribute defines the size in KBytes of the +memory device. Zero indicates no memory installed; 2,147,483,647 indicates +an unknown memory size." + ::= { memoryDeviceTableEntry 14 } +memoryDeviceSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0015 This attribute defines the speed in nanoseconds +of the memory device. Zero indicates an unknown speed." + ::= { memoryDeviceTableEntry 15 } +memoryDeviceTotalBusWidth OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0016 This attribute defines the total number bits, +including ECC, used by the memory device. 2,147,483,647 indicates +an unknown number of bits." + ::= { memoryDeviceTableEntry 16 } +memoryDeviceTotalDataBusWidth OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0017 This attribute defines the total number of data bits +used by the memory device. 2,147,483,647 indicates an unknown number of bits." + ::= { memoryDeviceTableEntry 17 } +memoryDeviceSingleBitErrorCount OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS deprecated + DESCRIPTION +"1100.0050.0001.0018 This attribute defines the total number of single bit +ECC corrections for the memory device. + +**NOTE: This attribute is deprecated and replaced by memoryDeviceFailureModes. +The value will always be zero." + ::= { memoryDeviceTableEntry 18 } +memoryDeviceMultiBitErrorCount OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS deprecated + DESCRIPTION +"1100.0050.0001.0019 This attribute defines the total number of multibit +ECC errors for the memory device. + +**NOTE: This attribute is deprecated and replaced by memoryDeviceFailureModes. +The value will always be zero." + ::= { memoryDeviceTableEntry 19 } +memoryDeviceFailureModes OBJECT-TYPE + SYNTAX DellMemoryDeviceFailureModes + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0020 This attribute defines the failure modes of the +memory device when the memoryDeviceStatus attribute is not ok(3). It is +a bit field that can be used to report more than one type of failure mode +by using a combination of the defined bit masks. + +**NOTE: This attribute replaces the memory device error count attributes. +When the memoryDeviceStatus attribute is not ok(3), this attribute should be +used to determine the reason for that instead of the error count attributes." + ::= { memoryDeviceTableEntry 20 } +memoryDeviceManufacturerName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0021 This attribute defines the manufacturer of the +memory device." + ::= { memoryDeviceTableEntry 21 } +memoryDevicePartNumberName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0022 This attribute defines the manufacturer's part number +for the memory device." + ::= { memoryDeviceTableEntry 22 } +memoryDeviceSerialNumberName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0023 This attribute defines the serial number of the +memory device." + ::= { memoryDeviceTableEntry 23 } +memoryDeviceAssetTagName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0024 This attribute defines the asset tag of the +memory device." + ::= { memoryDeviceTableEntry 24 } +memoryDeviceSpeedName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0050.0001.0025 This attribute defines the speed of the memory device +in string format with units specified in string." + ::= { memoryDeviceTableEntry 25 } + + +------------------------------------------------------------------------------- +-- Memory Device Mapped Address Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.60.1... +------------------------------------------------------------------------------- + +MemoryDeviceMappedAddressTableEntry ::= SEQUENCE { + memoryDeviceMappedAddresschassisIndex DellObjectRange, + memoryDeviceMappedAddressIndex DellObjectRange, + memoryDeviceMappedAddressStateCapabilities DellStateCapabilities, + memoryDeviceMappedAddressStateSettings DellStateSettings, + memoryDeviceMappedAddressStatus DellStatus, + memoryDeviceIndexReference DellObjectRange, + memoryDeviceMappedAddressRowPosition DellUnsigned32BitRange, + memoryDeviceMappedAddressInterleavePosition DellUnsigned32BitRange, + memoryDeviceMappedAddressInterleaveDepth DellUnsigned32BitRange, + memoryDeviceMappedAddressStartingAddress DellUnsigned64BitRange, + memoryDeviceMappedAddressEndingAddress DellUnsigned64BitRange +} + +memoryDeviceMappedAddressTable OBJECT-TYPE + SYNTAX SEQUENCE OF MemoryDeviceMappedAddressTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0060 This object defines the Memory Device Mapped Address Table." + ::= { deviceGroup 60 } +memoryDeviceMappedAddressTableEntry OBJECT-TYPE + SYNTAX MemoryDeviceMappedAddressTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0060.0001 This object defines the Memory Device Mapped Address +Table Entry." + INDEX { memoryDeviceMappedAddresschassisIndex, + memoryDeviceMappedAddressIndex } + ::= { memoryDeviceMappedAddressTable 1 } + +memoryDeviceMappedAddresschassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { memoryDeviceMappedAddressTableEntry 1 } +memoryDeviceMappedAddressIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0002 This attribute defines the index (one based) of the +memory device mapped address." + ::= { memoryDeviceMappedAddressTableEntry 2 } +memoryDeviceMappedAddressStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0003 This attribute defines the state capabilities of the +memory device mapped address." + ::= { memoryDeviceMappedAddressTableEntry 3 } +memoryDeviceMappedAddressStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0004 This attribute defines the state settings of the +memory device mapped address." + ::= { memoryDeviceMappedAddressTableEntry 4 } +memoryDeviceMappedAddressStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0005 This attribute defines the status of the +memory device mapped address." + ::= { memoryDeviceMappedAddressTableEntry 5 } +memoryDeviceIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0006 This attribute defines the index (one based) of the +memory device associated with the memory device mapped address." + ::= { memoryDeviceMappedAddressTableEntry 6 } +memoryDeviceMappedAddressRowPosition OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0007 This attribute defines the position of the referenced +memory in a row of the memory device mapped address. +2,147,483,647 indicates an unknown position." + ::= { memoryDeviceMappedAddressTableEntry 7 } +memoryDeviceMappedAddressInterleavePosition OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0008 This attribute defines the position of the referenced +memory in an interleave of the memory device mapped address. +2,147,483,647 indicates an unknown position." + ::= { memoryDeviceMappedAddressTableEntry 8 } +memoryDeviceMappedAddressInterleaveDepth OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0009 This attribute defines the maximum number of +consecutive rows from the referenced memory device that are accessed +in a single interleaved transfer in the memory device mapped address. +2,147,483,647 indicates an unknown number of rows." + ::= { memoryDeviceMappedAddressTableEntry 9 } +memoryDeviceMappedAddressStartingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0010 This attribute defines the physical starting address +in KBytes of the memory device mapped address." + ::= { memoryDeviceMappedAddressTableEntry 10 } +memoryDeviceMappedAddressEndingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0060.0001.0011 This attribute defines the physical ending address +in KBytes of the memory device mapped address." + ::= { memoryDeviceMappedAddressTableEntry 11 } + + +------------------------------------------------------------------------------- +-- Generic Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.70.1... +------------------------------------------------------------------------------- + +DellGenericDeviceType ::= INTEGER { + deviceTypeIsOther(1), -- type is other than following values + deviceTypeIsUnknown(2), -- type is unknown + deviceTypeIsAVideoDevice(3), -- type is Video Device + deviceTypeIsASCSIController(4), -- type is SCSI Controller + deviceTypeIsAnEthernetDevice(5), -- type is Ethernet + deviceTypeIsTokenRingDevice(6), -- type is Token Ring + deviceTypeIsASoundDevice(7) -- type is Sound Device +} + +GenericDeviceTableEntry ::= SEQUENCE { + genericDevicechassisIndex DellObjectRange, + genericDeviceIndex DellObjectRange, + genericDeviceStateCapabilities DellStateCapabilities, + genericDeviceStateSettings DellStateSettings, + genericDeviceStatus DellStatus, + genericDeviceSystemSlotIndexReference DellObjectRange, + genericDeviceType DellGenericDeviceType, + genericDeviceName DellString +} + +genericDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF GenericDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0070 This object defines the Generic Device Table." + ::= { deviceGroup 70 } +genericDeviceTableEntry OBJECT-TYPE + SYNTAX GenericDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0070.0001 This object defines the Generic Device Table Entry." + INDEX { genericDevicechassisIndex, + genericDeviceIndex } + ::= { genericDeviceTable 1 } + +genericDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { genericDeviceTableEntry 1 } +genericDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0002 This attribute defines the index (one based) of the +generic device." + ::= { genericDeviceTableEntry 2 } +genericDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0003 This attribute defines the state capabilities of the +generic device." + ::= { genericDeviceTableEntry 3 } +genericDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0004 This attribute defines the state settings of the +generic device." + ::= { genericDeviceTableEntry 4 } +genericDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0005 This attribute defines the status of the +generic device." + ::= { genericDeviceTableEntry 5 } +genericDeviceSystemSlotIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0006 This attribute defines the index (one based) of the +system slot that the generic device is in." + ::= { genericDeviceTableEntry 6 } +genericDeviceType OBJECT-TYPE + SYNTAX DellGenericDeviceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0007 This attribute defines the type of the generic device." + ::= { genericDeviceTableEntry 7 } +genericDeviceName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0070.0001.0008 This attribute defines the name of the generic device." + ::= { genericDeviceTableEntry 8 } + + +------------------------------------------------------------------------------- +-- PCI Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.80.1... +------------------------------------------------------------------------------- + +PCIDeviceTableEntry ::= SEQUENCE { + pCIDevicechassisIndex DellObjectRange, + pCIDeviceIndex DellObjectRange, + pCIDeviceStateCapabilities DellStateCapabilities, + pCIDeviceStateSettings DellStateSettings, + pCIDeviceStatus DellStatus, + pCIDeviceSystemSlotIndexReference DellObjectRange, + pCIDeviceDataBusWidth DellUnsigned32BitRange, + pCIDeviceManufacturerName DellString, + pCIDeviceDescriptionName DellString, + pCIDeviceSpeed DellUnsigned32BitRange, + pCIDeviceAdapterFault DellBoolean +} + +pCIDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF PCIDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0080 This object defines the PCI Device Table." + ::= { deviceGroup 80 } +pCIDeviceTableEntry OBJECT-TYPE + SYNTAX PCIDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0080.0001 This object defines the PCI Device Table Entry." + INDEX { pCIDevicechassisIndex, + pCIDeviceIndex } + ::= { pCIDeviceTable 1 } + +pCIDevicechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { pCIDeviceTableEntry 1 } +pCIDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0002 This attribute defines the index (one based) of the +PCI device." + ::= { pCIDeviceTableEntry 2 } +pCIDeviceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0003 This attribute defines the state capabilities of the +PCI device." + ::= { pCIDeviceTableEntry 3 } +pCIDeviceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0004 This attribute defines the state settings of the +PCI device." + ::= { pCIDeviceTableEntry 4 } +pCIDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0005 This attribute defines the status of the PCI device." + ::= { pCIDeviceTableEntry 5 } +pCIDeviceSystemSlotIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0006 This attribute defines the index (one based) of the +system slot that the PCI Device is in." + ::= { pCIDeviceTableEntry 6 } +pCIDeviceDataBusWidth OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0007 This attribute defines the width of the data bus +of the PCI device." + ::= { pCIDeviceTableEntry 7 } +pCIDeviceManufacturerName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0008 This attribute defines the name of the manufacturer +of the PCI device." + ::= { pCIDeviceTableEntry 8 } +pCIDeviceDescriptionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0009 This attribute defines the description of the PCI device." + ::= { pCIDeviceTableEntry 9 } +pCIDeviceSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0010 This attribute defines the bus speed in MHz of the +PCI device. Zero indicates the speed is unknown." + ::= { pCIDeviceTableEntry 10 } +pCIDeviceAdapterFault OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0080.0001.0011 This attribute defines if the PCI device has detected +a fault or not." + ::= { pCIDeviceTableEntry 11 } + + +------------------------------------------------------------------------------- +-- PCI Device Configuration Space Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.82.1... +------------------------------------------------------------------------------- + +PCIDeviceConfigurationSpaceTableEntry ::= SEQUENCE { + pCIDeviceConfigurationSpacechassisIndex DellObjectRange, + pCIDeviceConfigurationSpaceIndex DellObjectRange, + pCIDeviceConfigurationSpaceStateCapabilities DellStateCapabilities, + pCIDeviceConfigurationSpaceStateSettings DellStateSettings, + pCIDeviceConfigurationSpaceStatus DellStatus, + pCIDeviceIndexReference DellObjectRange, + pCIDeviceConfigurationSpaceBusNumber DellUnsigned32BitRange, + pCIDeviceConfigurationSpaceDeviceNumber DellUnsigned32BitRange, + pCIDeviceConfigurationSpaceFunctionNumber DellUnsigned32BitRange, + pCIDeviceConfigurationSpaceHeader OCTET STRING(SIZE(0..1025)) +} + +pCIDeviceConfigurationSpaceTable OBJECT-TYPE + SYNTAX SEQUENCE OF PCIDeviceConfigurationSpaceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0082 This object defines the PCI Device Configuration Space Table." + ::= { deviceGroup 82 } +pCIDeviceConfigurationSpaceTableEntry OBJECT-TYPE + SYNTAX PCIDeviceConfigurationSpaceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0082.0001 This object defines the PCI Device Configuration Space Table +Entry." + INDEX { pCIDeviceConfigurationSpacechassisIndex, + pCIDeviceConfigurationSpaceIndex } + ::= { pCIDeviceConfigurationSpaceTable 1 } + +pCIDeviceConfigurationSpacechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { pCIDeviceConfigurationSpaceTableEntry 1 } +pCIDeviceConfigurationSpaceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0002 This attribute defines the index (one based) of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 2 } +pCIDeviceConfigurationSpaceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0003 This attribute defines the state capabilities of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 3 } +pCIDeviceConfigurationSpaceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0004 This attribute defines the state settings of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 4 } +pCIDeviceConfigurationSpaceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0005 This attribute defines the status of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 5 } +pCIDeviceIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0006 This attribute defines the index (one based) of the +PCI device that this PCI device configuration space applies to." + ::= { pCIDeviceConfigurationSpaceTableEntry 6 } +pCIDeviceConfigurationSpaceBusNumber OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0007 This attribute defines the bus number of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 7 } +pCIDeviceConfigurationSpaceDeviceNumber OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0008 This attribute defines the device number of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 8 } +pCIDeviceConfigurationSpaceFunctionNumber OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0009 This attribute defines the function number of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 9 } +pCIDeviceConfigurationSpaceHeader OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..1025)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0082.0001.0010 This attribute defines the header of the +PCI device configuration space." + ::= { pCIDeviceConfigurationSpaceTableEntry 10 } + + +------------------------------------------------------------------------------- +-- Network Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.90.1... +------------------------------------------------------------------------------- + +DellNetworkDeviceConnectionStatus ::= INTEGER { + -- unknown(0), - unable to determine connection status + connected(1), -- media reports connected + disconnected(2), -- media reports disconnected + driverBad(3), -- driver cannot be opened to determine status + driverDisabled(4), -- driver is disabled + hardwareInitalizing(10), -- hardware is initializing + hardwareResetting(11), -- hardware is resetting + hardwareClosing(12), -- hardware is closing down + hardwareNotReady(13) -- hardware is not ready +} +DellNetworkDeviceTeamingFlags ::= INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- undefined(0), - teaming flags are undefined + noTeam(1), -- device is not part of any team + teamingEnabled(2), -- teaming is enabled + adapterFaultToleranceMode(4), -- adapter fault tolerance teaming mode + loadBalancingMode(8) -- load balancing teaming mode +} +DellNetworkDeviceTOECapabilityFlags ::= INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- none(0), - querying for TOE capability is not supported + unknown(1), -- querying for TOE capability is supported but query returned an error + available(2), -- device has TOE capability + notAvailable(4), -- device does not have TOE capability + cannotBeDetermined(8), -- querying for TOE capability is supported but an error prevented querying + driverNotResponding(16) -- querying for TOE capability is supported but driver did not respond to query +} +DellNetworkDeviceRDMACapabilityFlags ::= INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- none(0), - querying for RDMA capability is not supported + unknown(1), -- querying for RDMA capability is supported but query returned an error + available(2), -- device has RDMA capability + notAvailable(4), -- device does not have RDMA capability + cannotBeDetermined(8), -- querying for RDMA capability is supported but an error prevented querying + driverNotResponding(16) -- querying for RDMA capability is supported but driver did not respond to query +} +DellNetworkDeviceiSCSICapabilityFlags ::= INTEGER { + -- Note: These values are bit fields, so combination values are possible. + -- none(0), - querying for iSCSI capability is not supported + unknown(1), -- querying for iSCSI capability is supported but query returned an error + available(2), -- device has iSCSI capability + notAvailable(4), -- device does not have iSCSI capability + cannotBeDetermined(8), -- querying for iSCSI capability is supported but an error prevented querying + driverNotResponding(16) -- querying for iSCSI capability is supported but driver did not respond to query +} + +NetworkDeviceTableEntry ::= SEQUENCE { + networkDeviceChassisIndex DellObjectRange, + networkDeviceIndex DellObjectRange, + networkDeviceStatus DellStatus, + networkDeviceConnectionStatus DellNetworkDeviceConnectionStatus, + networkDeviceDescriptionName DellString, + networkDeviceProductName DellString, + networkDeviceVendorName DellString, + networkDeviceServiceName DellString, + networkDeviceDriverImagePathName DellString, + networkDeviceDriverVersionName DellString, + networkDeviceIPAddress IpAddress, + networkDeviceIPSubnetMask IpAddress, + networkDeviceDefaultGatewayIPAddress IpAddress, + networkDeviceDHCPServerIPAddress IpAddress, + networkDeviceCurrentMACAddress DellMACAddress, + networkDevicePermanentMACAddress DellMACAddress, + networkDevicePCIBusNumber DellUnsigned8BitRange, + networkDevicePCIDeviceNumber DellUnsigned8BitRange, + networkDevicePCIFunctionNumber DellUnsigned8BitRange, + networkDeviceIRQ DellUnsigned16BitRange, + networkDeviceBaseIOPortAddress DellUnsigned32BitRange, + networkDeviceTeamingFlags DellNetworkDeviceTeamingFlags, + networkDeviceTOECapabilityFlags DellNetworkDeviceTOECapabilityFlags, + networkDeviceTOEEnabled DellBoolean, + networkDeviceRDMACapabilityFlags DellNetworkDeviceRDMACapabilityFlags, + networkDeviceRDMAEnabled DellBoolean, + networkDeviceiSCSICapabilityFlags DellNetworkDeviceiSCSICapabilityFlags, + networkDeviceiSCSIEnabled DellBoolean +} + +networkDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF NetworkDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0090 This object defines the Network Device Table." + ::= { deviceGroup 90 } +networkDeviceTableEntry OBJECT-TYPE + SYNTAX NetworkDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0090.0001 This object defines the Network Device Table Entry." + INDEX { networkDeviceChassisIndex, + networkDeviceIndex } + ::= { networkDeviceTable 1 } + +networkDeviceChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0001 This attribute defines the index (one based) of the +chassis that contains the network device." + ::= { networkDeviceTableEntry 1 } +networkDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0002 This attribute defines the index (one based) of the +network device." + ::= { networkDeviceTableEntry 2 } +networkDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0003 This attribute defines the status of the network device." + ::= { networkDeviceTableEntry 3 } +networkDeviceConnectionStatus OBJECT-TYPE + SYNTAX DellNetworkDeviceConnectionStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0004 This attribute defines the connection status of the +network device." + ::= { networkDeviceTableEntry 4 } +networkDeviceDescriptionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0005 This attribute defines the description of the +network device." + ::= { networkDeviceTableEntry 5 } +networkDeviceProductName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0006 This attribute defines the product name of the +network device." + ::= { networkDeviceTableEntry 6 } +networkDeviceVendorName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0007 This attribute defines the name of the vendor of the +network device." + ::= { networkDeviceTableEntry 7 } +networkDeviceServiceName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0008 This attribute defines the service name of the +network device." + ::= { networkDeviceTableEntry 8 } +networkDeviceDriverImagePathName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0009 This attribute defines the path to the binary image +of the driver for the network device." + ::= { networkDeviceTableEntry 9 } +networkDeviceDriverVersionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0010 This attribute defines the version of the driver +for the network device." + ::= { networkDeviceTableEntry 10 } +networkDeviceIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0011 This attribute defines the IP address of the +network device." + ::= { networkDeviceTableEntry 11 } +networkDeviceIPSubnetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0012 This attribute defines the IP subnet mask for the +IP address currently assigned to the network device." + ::= { networkDeviceTableEntry 12 } +networkDeviceDefaultGatewayIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0013 This attribute defines the IP address of the +default gateway for the network device." + ::= { networkDeviceTableEntry 13 } +networkDeviceDHCPServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0014 This attribute defines the IP address of the +DHCP server that was used to obtain the IP address of the network device +if DHCP is used to configure the network device." + ::= { networkDeviceTableEntry 14 } +networkDeviceCurrentMACAddress OBJECT-TYPE + SYNTAX DellMACAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0015 This attribute defines the current MAC address of the +network device." + ::= { networkDeviceTableEntry 15 } +networkDevicePermanentMACAddress OBJECT-TYPE + SYNTAX DellMACAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0016 This attribute defines the permanent MAC address of the +network device." + ::= { networkDeviceTableEntry 16 } +networkDevicePCIBusNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0017 This attribute defines the PCI bus number of the +network device." + ::= { networkDeviceTableEntry 17 } +networkDevicePCIDeviceNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0018 This attribute defines the PCI device number of the +network device." + ::= { networkDeviceTableEntry 18 } +networkDevicePCIFunctionNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0019 This attribute defines the PCI function number of the +network device." + ::= { networkDeviceTableEntry 19 } +networkDeviceIRQ OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0020 This attribute defines the interrupt request number +of the network device." + ::= { networkDeviceTableEntry 20 } +networkDeviceBaseIOPortAddress OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0021 This attribute defines the base input/outport port +address of the network device." + ::= { networkDeviceTableEntry 21 } +networkDeviceTeamingFlags OBJECT-TYPE + SYNTAX DellNetworkDeviceTeamingFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0022 This attribute defines the teaming features of the +network device." + ::= { networkDeviceTableEntry 22 } +networkDeviceTOECapabilityFlags OBJECT-TYPE + SYNTAX DellNetworkDeviceTOECapabilityFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0023 This attribute defines the TCP/IP Offload Engine (TOE) +capability flags of the network device." + ::= { networkDeviceTableEntry 23 } +networkDeviceTOEEnabled OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0024 This attribute defines if TOE is enabled for the +network device." + ::= { networkDeviceTableEntry 24 } +networkDeviceRDMACapabilityFlags OBJECT-TYPE + SYNTAX DellNetworkDeviceRDMACapabilityFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0025 This attribute defines the Remote Direct Memory Access +(RDMA) capability flags of the network device." + ::= { networkDeviceTableEntry 25 } +networkDeviceRDMAEnabled OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0026 This attribute defines if RDMA is enabled for the +network device." + ::= { networkDeviceTableEntry 26 } +networkDeviceiSCSICapabilityFlags OBJECT-TYPE + SYNTAX DellNetworkDeviceiSCSICapabilityFlags + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0027 This attribute defines the Internet Small Computer +System Interface (iSCSI) capability flags of the network device." + ::= { networkDeviceTableEntry 27 } +networkDeviceiSCSIEnabled OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0090.0001.0028 This attribute defines if iSCSI is enabled for the +network device." + ::= { networkDeviceTableEntry 28 } + + +------------------------------------------------------------------------------- +-- Managed System Services Device Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1100.100.1... +------------------------------------------------------------------------------- + +DellManagedSystemServicesDeviceType ::= INTEGER { + -- baseDevice(0), - type is base device + optionalDevice(1) -- type is optional device +} + +ManagedSystemServicesDeviceTableEntry ::= SEQUENCE { + managedSystemServicesDeviceChassisIndex DellObjectRange, + managedSystemServicesDeviceIndex DellObjectRange, + managedSystemServicesDeviceStatus DellStatus, + managedSystemServicesDeviceType DellManagedSystemServicesDeviceType, + managedSystemServicesDeviceStoragePresent DellBoolean, + managedSystemServicesDeviceStorageSize DellUnsigned32BitRange +} + +managedSystemServicesDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF ManagedSystemServicesDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0100 This object defines the Managed System Services Device Table." + ::= { deviceGroup 100 } +managedSystemServicesDeviceTableEntry OBJECT-TYPE + SYNTAX ManagedSystemServicesDeviceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1100.0100.0001 This object defines the Managed System Services Device Table +Entry." + INDEX { managedSystemServicesDeviceChassisIndex, + managedSystemServicesDeviceIndex } + ::= { managedSystemServicesDeviceTable 1 } + +managedSystemServicesDeviceChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0100.0001.0001 This attribute defines the index (one-based) of the +chassis that contains the managed system services device." + ::= { managedSystemServicesDeviceTableEntry 1 } +managedSystemServicesDeviceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0100.0001.0002 This attribute defines the index (one-based) of the +managed system services device." + ::= { managedSystemServicesDeviceTableEntry 2 } +managedSystemServicesDeviceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0100.0001.0003 This attribute defines the status of the +managed system services device." + ::= { managedSystemServicesDeviceTableEntry 3 } +managedSystemServicesDeviceType OBJECT-TYPE + SYNTAX DellManagedSystemServicesDeviceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0100.0001.0004 This attribute defines the type of the +managed system services device." + ::= { managedSystemServicesDeviceTableEntry 4 } +managedSystemServicesDeviceStoragePresent OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0100.0001.0005 This attribute defines whether storage is present +on the managed system services device." + ::= { managedSystemServicesDeviceTableEntry 5 } +managedSystemServicesDeviceStorageSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1100.0100.0001.0006 This attribute defines the size in MB (megabytes) +of the storage present on the managed system services device." + ::= { managedSystemServicesDeviceTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Slot Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1200 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- System Slot Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1200.10.1... +------------------------------------------------------------------------------- + +DellSystemSlotStateCapabilities ::= INTEGER { + systemSlotHotPlugIsUnknown(1), -- state capabilities are unknown + systemSlotHotPlugIsHotPluggableCapable(2), -- slot can support Hot Plug + systemSlotHotPlugCanBePoweredOn(4), -- slot power (and corresponding LED) can be powered on + systemSlotHotPlugCanSignalAttention(8), -- slot attention state (and corresponding LED) can be set + systemSlotHotPlugCanSignalPowerFault(16), -- slot power on fault (and corresponding LED) can be detected due to a short or overcurrent + systemSlotHotPlugCanSignalAdapterPresent(32), -- slot adapter (card) present in slot (may not be powered) can be detected + systemSlotHotPlugCanSignalPowerButtonPressed(64), -- slot power button can be pressed to signal a toggle of the power state + canSupportAllHotPlugCapabilities(126), -- slot can support all Hot Plug capabilities + systemSlotCanProvide5Volts(128), -- slot can provide 5 volt supply + systemSlotCanProvide3Point3Volts(256), -- slot can provide 3.3 volt supply + systemSlotCanSignalIfShared(512), -- slot opening if shared with another slot can be detected + systemSlotCanSupportCard16(1024), -- slot can support PC Card-16 + systemSlotCanSupportCardBus(2048), -- slot can support CardBus + systemSlotCanSupportZoomVideo(4096), -- slot can support Zoom Video + systemSlotCanSupportModemRingResume(8192), -- slot can support Modem Ring Resume + systemSlotCanSupportPMESignal(16384), -- slot can support Power Management Enable (PME#) signal + canSupportAllSlotCapabilities(32640), -- slot can support all Slot capabilities + canSupportAllSlotAndAllHotPlugCapabilities(32766) -- slot can support all Slot and all Hot Plug capabilities +} +DellSystemSlotStateSettings ::= INTEGER { + systemSlotHotPlugIsUnknown(1), -- state settings are unknown + systemSlotHotPlugIsHotPluggable(2), -- slot supports Hot Plug + systemSlotHotPlugIsPoweredOn(4), -- slot has power (and corresponding LED) ON + systemSlotHotPlugIsAtAttention(8), -- slot is at attention state (and corresponding LED) is ON + systemSlotHotPlugHasPowerFaulted(16), -- slot has power on fault (and corresponding LED) was detected due to a short or overcurrent + systemSlotHotPlugAdapterIsPresent(32), -- slot adapter (card) present in slot (may not be powered on) + systemSlotHotPlugAdapterPresentAndPoweredOn(36), -- slot adapter (card) present in slot and powered on + systemSlotHotPlugPowerButtonPressed(64), -- slot power button pressed to signal toggle of power state + systemSlotProvides5Volts(128), -- slot provides 5 volt supply + systemSlotProvides3Point3Volts(256), -- slot provides 3.3 volt supply + systemSlotIsShared(512), -- slot opening is shared with another slot (e.g. PCI/EISA shared slot) + systemSlotSupportsCard16(1024), -- slot supports PC Card-16 + systemSlotSupportsCardBus(2048), -- slot supports CardBus + systemSlotSupportsZoomVideo(4096), -- slot supports Zoom Video + systemSlotSupportsModemRingResume(8192), -- slot supports Modem Ring Resume + systemSlotSupportsPMESignal(16384), -- slot supports Power Management Enable (PME#) signal + supportsPMEand3P3Vand5VandHotPluggable(16770), + supportsPMEand3P3Vand5VhasAdapterOn(16804), + supportsPMEand3P3Vand5VhasAdapterOnandisHotPluggable(16806), + supportsPMEand3P3VIsSharedand5VhasAdapterOnandHotPlugable(17316) +} +DellSystemSlotType ::= INTEGER { + systemSlotIsOther(1), -- type is Other + systemSlotIsUnknown(2), -- type is Unknown + systemSlotIsISA(3), -- type is ISA + systemSlotIsMCA(4), -- type is MCA + systemSlotIsEISA(5), -- type is EISA + systemSlotIsPCI(6), -- type is PCI + systemSlotIsPCMCIA(7), -- type is PCMCIA + systemSlotIsVLVESA(8), -- type is VL-VESA + systemSlotIsProprietary(9), -- type is Proprietary + systemSlotIsProcessorCard(10), -- type is Processor Card Slot + systemSlotIsProprietaryMemory(11), -- type is Proprietary Memory Card Slot + systemSlotIsIORiserCard(12), -- type is I/O Riser Card Slot + systemSlotIsNuBUS(13), -- type is NuBus + systemSlotIsPCI66MHz(14), -- type is PCI - 66MHz Capable + systemSlotIsAGP(15), -- type is AGP + systemSlotIsAGP2X(16), -- type is AGP 2X + systemSlotIsAGP4X(17), -- type is AGP 4X + systemSlotIsPC98C20(18), -- type is PC-98/C20 + systemSlotIsPC98C24(19), -- type is PC-98/C24 + systemSlotIsPC98E(20), -- type is PC-98/E + systemSlotIsPC98LocalBus(21), -- type is PC-98/Local Bus + systemSlotIsPC98Card(22), -- type is PC-98/Card + systemSlotIsPCIX(23), -- type is PCI-X + systemSlotIsPCIExpress(24), -- type is PCI Express + systemSlotIsAGP8X(25), -- type is AGP 8X + systemSlotIsPCIExpressX1(166), -- type is PCI Express x1 + systemSlotIsPCIExpressX2(167), -- type is PCI Express x2 + systemSlotIsPCIExpressX4(168), -- type is PCI Express x4 + systemSlotIsPCIExpressX8(169), -- type is PCI Express x8 + systemSlotIsPCIExpressX16(170), -- type is PCI Express x16 + systemSlotIsPCIExpressGen2(171), -- type is PCI Express Gen 2 + systemSlotIsPCIExpressGen2X1(172), -- type is PCI Express Gen 2 x1 + systemSlotIsPCIExpressGen2X2(173), -- type is PCI Express Gen 2 x2 + systemSlotIsPCIExpressGen2X4(174), -- type is PCI Express Gen 2 x4 + systemSlotIsPCIExpressGen2X8(175), -- type is PCI Express Gen 2 x8 + systemSlotIsPCIExpressGen2X16(176) -- type is PCI Express Gen 2 x16 +} +DellSystemSlotUsage ::= INTEGER { + systemSlotUsageIsOther(1), -- usage is other than following values + systemSlotUsageIsUnknown(2), -- usage is unknown + systemSlotUsageIsAvailable(3), -- usage is available + systemSlotUsageIsInUse(4) -- usage is in use +} +DellSystemSlotLength ::= INTEGER { + systemSlotLengthIsOther(1), -- length is other than following values + systemSlotLengthIsUnknown(2), -- length is unknown + systemSlotLengthIsShort(3), -- length is Short + systemSlotLengthIsLong(4) -- length is Long +} +DellSystemSlotCategory ::= INTEGER { + systemSlotCategoryIsOther(1), -- category is other than following values + systemSlotCategoryIsUnknown(2), -- category is unknown + systemSlotCategoryIsBusConnector(3), -- category is Bus Connector + systemSlotCategoryIsPCMCIA(4), -- category is PCMCIA + systemSlotCategoryIsMotherboard(5) -- category is Motherboard +} +DellSystemSlotHotPlugBusWidth ::= INTEGER { +-- Bus Width meanings of type "n bits" are for parallel bus such as PCI. +-- Bus Width meanings of type "nx or xn" are for serial bus such as PCI Express. + busWidthIsOther(1), -- bus width is other than following values + busWidthIsUnknown(2), -- bus width is unknown + busWidthIs8bits(3), -- bus width is 8 bits + busWidthIs16bits(4), -- bus width is 16 bits + busWidthIs32bits(5), -- bus width is 32 bits + busWidthIs64bits(6), -- bus width is 64 bits + busWidthIs128bits(7), -- bus width is 128 bits + busWidthIs1xOrx1(8), -- bus width is 1x or x1 + busWidthIs2xOrx2(9), -- bus width is 2x or x2 + busWidthIs4xOrx4(10), -- bus width is 4x or x4 + busWidthIs8xOrx8(11), -- bus width is 8x or x8 + busWidthIs12xOrx12(12), -- bus width is 12x or x12 + busWidthIs16xOrx16(13), -- bus width is 16x or x16 + busWidthIs32xOrx32(14) -- bus width is 32x or x32 +} + +SystemSlotTableEntry ::= SEQUENCE { + systemSlotchassisIndex DellObjectRange, + systemSlotIndex DellObjectRange, + systemSlotStateCapabilitiesUnique DellSystemSlotStateCapabilities, + systemSlotStateSettingsUnique DellSystemSlotStateSettings, + systemSlotStatus DellStatus, + systemSlotCurrentUsage DellSystemSlotUsage, + systemSlotType DellSystemSlotType, + systemSlotSlotExternalSlotName DellString, + systemSlotLength DellSystemSlotLength, + systemSlotSlotID DellUnsigned32BitRange, + systemSlotCategory DellSystemSlotCategory, + systemSlotHotPlugBusWidth DellSystemSlotHotPlugBusWidth, + systemSlotHotPlugSlotSpeed DellUnsigned32BitRange, + systemSlotHotPlugAdapterSpeed DellUnsigned32BitRange +} + +systemSlotTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemSlotTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1200.0010 This object defines the System Slot Table." + ::= { slotGroup 10 } +systemSlotTableEntry OBJECT-TYPE + SYNTAX SystemSlotTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1200.0010.0001 This object defines the System Slot Table Entry." + INDEX { systemSlotchassisIndex, + systemSlotIndex } + ::= { systemSlotTable 1 } + +systemSlotchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { systemSlotTableEntry 1 } +systemSlotIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0002 This attribute defines the index (one based) of the +system slot." + ::= { systemSlotTableEntry 2 } +systemSlotStateCapabilitiesUnique OBJECT-TYPE + SYNTAX DellSystemSlotStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0003 This attribute defines the state capabilities of the +system slot." + ::= { systemSlotTableEntry 3 } +systemSlotStateSettingsUnique OBJECT-TYPE + SYNTAX DellSystemSlotStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0004 This attribute defines the state settings of the +system slot." + ::= { systemSlotTableEntry 4 } +systemSlotStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0005 This attribute defines the status of the system slot." + ::= { systemSlotTableEntry 5 } +systemSlotCurrentUsage OBJECT-TYPE + SYNTAX DellSystemSlotUsage + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0006 This attribute defines the current usage of the +system slot." + ::= { systemSlotTableEntry 6 } +systemSlotType OBJECT-TYPE + SYNTAX DellSystemSlotType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0007 This attribute defines the type of the system slot." + ::= { systemSlotTableEntry 7 } +systemSlotSlotExternalSlotName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0008 This attribute defines the name of the external +connector name of the system slot." + ::= { systemSlotTableEntry 8 } +systemSlotLength OBJECT-TYPE + SYNTAX DellSystemSlotLength + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0009 This attribute defines the length of the system slot." + ::= { systemSlotTableEntry 9 } +systemSlotSlotID OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0010 This attribute defines the slot identification number +of the system slot." + ::= { systemSlotTableEntry 10 } +systemSlotCategory OBJECT-TYPE + SYNTAX DellSystemSlotCategory + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0011 This attribute defines the category of the system slot." + ::= { systemSlotTableEntry 11 } +systemSlotHotPlugBusWidth OBJECT-TYPE + SYNTAX DellSystemSlotHotPlugBusWidth + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0012 This attribute defines the bus width of the hot plug +system slot." + ::= { systemSlotTableEntry 12 } +systemSlotHotPlugSlotSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0013 This attribute defines the slot speed in MHz of the +hot plug system slot. Zero indicates the slot speed is unknown." + ::= { systemSlotTableEntry 13 } +systemSlotHotPlugAdapterSpeed OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1200.0010.0001.0014 This attribute defines the adapter speed in MHz of the +hot plug system slot. Zero indicates the adapter speed is unknown." + ::= { systemSlotTableEntry 14 } + + +------------------------------------------------------------------------------- +-- Memory Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1300 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Physical Memory Array Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1300.10.1... +------------------------------------------------------------------------------- + +DellPhysicalMemoryArrayLocation ::= INTEGER { + memoryArrayLocationIsOther(1), -- location is other than following values + memoryArrayLocationIsUnknown(2), -- location is unknown + memoryArrayLocationIsSystemOrMotherboard(3),-- location is System Board or Motherboard + memoryArrayLocationIsISA(4), -- location is ISA add-on card + memoryArrayLocationIsEISA(5), -- location is EISA add-on card + memoryArrayLocationIsPCI(6), -- location is PCI add-on card + memoryArrayLocationIsMCA(7), -- location is MCA add-on card + memoryArrayLocationIsPCMCIA(8), -- location is PCMCIA add-on card + memoryArrayLocationIsProprietary(9), -- location is Proprietary add-on card + memoryArrayLocationIsNUBUS(10), -- location is NUBUS bus + memoryArrayLocationIsPC98C20(11), -- location is PC-98/C20 add-on card + memoryArrayLocationIsPC98C24(12), -- location is PC-98/C24 add-on card + memoryArrayLocationIsPC98E(13), -- location is PC-98/E add-on card + memoryArrayLocationIsPC98LocalBus(14), -- location is PC-98/Local Bus add-on card + memoryArrayLocationIsPC98Card(15) -- location is PC-98/Card slot add-on card +} +DellPhysicalMemoryArrayUse ::= INTEGER { + memoryArrayUseIsOther(1), -- use is other than following values + memoryArrayUseIsUnknown(2), -- use is unknown + memoryArrayUseIsSystemMemory(3), -- use is System Memory + memoryArrayUseIsVideoMemory(4), -- use is Video Memory + memoryArrayUseIsFLASHMemory(5), -- use is Flash Memory + memoryArrayUseIsNonVolatileRAMMemory(6), -- use is Nonvolatile RAM + memoryArrayUseIsCacheMemory(7) -- use is Cache Memory +} +DellPhysicalMemoryArrayECCType ::= INTEGER { + memoryArrayECCTypeIsOther(1), -- ECC type is other than following values + memoryArrayECCTypeIsUnknown(2), -- ECC type is unknown + memoryArrayECCTypeIsNone(3), -- ECC type is none + memoryArrayECCTypeIsParity(4), -- ECC type is Parity + memoryArrayECCTypeIsSingleBitECC(5), -- ECC type is Single bit ECC + memoryArrayECCTypeIsMultiBitECC(6), -- ECC type is Multibit ECC + memoryArrayECCTypeIsCRC(7) -- ECC type is CRC +} + +PhysicalMemoryArrayTableEntry ::= SEQUENCE { + physicalMemoryArraychassisIndex DellObjectRange, + physicalMemoryArrayIndex DellObjectRange, + physicalMemoryArrayStateCapabilities DellStateCapabilities, + physicalMemoryArrayStateSettings DellStateSettings, + physicalMemoryArrayStatus DellStatus, + physicalMemoryArrayUse DellPhysicalMemoryArrayUse, + physicalMemoryArrayECCType DellPhysicalMemoryArrayECCType, + physicalMemoryArrayLocation DellPhysicalMemoryArrayLocation, + physicalMemoryArrayMaximumSize DellUnsigned32BitRange, + physicalMemoryArrayTotalNumberSockets DellUnsigned32BitRange, + physicalMemoryArrayInUseNumberSockets DellUnsigned32BitRange, + physicalMemoryArrayECCErrorNonRecoverableThreshold DellSigned32BitRange, + physicalMemoryArrayECCErrorCriticalThreshold DellSigned32BitRange, + physicalMemoryArrayECCErrorNonCriticalThreshold DellSigned32BitRange, + physicalMemoryArrayRedundantMemoryUnitIndexReference DellObjectRange +} + +physicalMemoryArrayTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhysicalMemoryArrayTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0010 This object defines the Physical Memory Array Table." + ::= { memoryGroup 10 } +physicalMemoryArrayTableEntry OBJECT-TYPE + SYNTAX PhysicalMemoryArrayTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0010.0001 This object defines the Physical Memory Array Table Entry." + INDEX { physicalMemoryArraychassisIndex, + physicalMemoryArrayIndex } + ::= { physicalMemoryArrayTable 1 } + +physicalMemoryArraychassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { physicalMemoryArrayTableEntry 1 } +physicalMemoryArrayIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0002 This attribute defines the index (one based) of the +physical memory array." + ::= { physicalMemoryArrayTableEntry 2 } +physicalMemoryArrayStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0003 This attribute defines the state capabilities of the +physical memory array." + ::= { physicalMemoryArrayTableEntry 3 } +physicalMemoryArrayStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0004 This attribute defines the state settings of the +physical memory array." + ::= { physicalMemoryArrayTableEntry 4 } +physicalMemoryArrayStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0005 This attribute defines the status of the physical +memory array." + ::= { physicalMemoryArrayTableEntry 5 } +physicalMemoryArrayUse OBJECT-TYPE + SYNTAX DellPhysicalMemoryArrayUse + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0006 This attribute defines the use of the physical +memory array." + ::= { physicalMemoryArrayTableEntry 6 } +physicalMemoryArrayECCType OBJECT-TYPE + SYNTAX DellPhysicalMemoryArrayECCType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0007 This attribute defines the error correction type used +by the physical memory array." + ::= { physicalMemoryArrayTableEntry 7 } +physicalMemoryArrayLocation OBJECT-TYPE + SYNTAX DellPhysicalMemoryArrayLocation + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0008 This attribute defines the location of the physical +memory array." + ::= { physicalMemoryArrayTableEntry 8 } +physicalMemoryArrayMaximumSize OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0009 This attribute defines the maximum size in KBytes +of the physical memory array. Zero inicates no memory is installed. +2,147,483,647 indicates an unknown maximum size." + ::= { physicalMemoryArrayTableEntry 9 } +physicalMemoryArrayTotalNumberSockets OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0010 This attribute defines the total number of memory +sockets available for the physical memory array. 2,147,483,647 indicates +an unknown number of sockets." + ::= { physicalMemoryArrayTableEntry 10 } +physicalMemoryArrayInUseNumberSockets OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0011 This attribute defines the total number of memory +sockets in use by the physical memory array. 2,147,483,647 indicates +an unknown number of sockets." + ::= { physicalMemoryArrayTableEntry 11 } +physicalMemoryArrayECCErrorNonRecoverableThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0012 This attribute defines the value of the physical +memory array ECC error nonrecoverable threshold. The value is an integer +representing the number of errors detected." + ::= { physicalMemoryArrayTableEntry 12 } +physicalMemoryArrayECCErrorCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.00013 This attribute defines the value of the physical +memory array ECC error critical threshold. The value is an integer +representing the number of errors detected." + ::= { physicalMemoryArrayTableEntry 13 } +physicalMemoryArrayECCErrorNonCriticalThreshold OBJECT-TYPE + SYNTAX DellSigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0010.0001.00014 This attribute defines the value of the physical +memory array ECC error noncritical threshold. The value is an integer +representing the number of errors detected." + ::= { physicalMemoryArrayTableEntry 14 } +physicalMemoryArrayRedundantMemoryUnitIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0010.0001.0015 This attribute defines the index to the associated +redundant memory unit if this physical memory array is part of a redundant +memory unit." + ::= { physicalMemoryArrayTableEntry 15 } + + +------------------------------------------------------------------------------- +-- Physical Memory Array Mapped Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1300.20.1... +------------------------------------------------------------------------------- + +PhysicalMemoryArrayMappedTableEntry ::= SEQUENCE { + physicalMemoryArrayMappedchassisIndex DellObjectRange, + physicalMemoryArrayMappedIndex DellObjectRange, + physicalMemoryArrayMappedStateCapabilities DellStateCapabilities, + physicalMemoryArrayMappedStateSettings DellStateSettings, + physicalMemoryArrayMappedStatus DellStatus, + physicalMemoryArrayIndexReference DellObjectRange, + physicalMemoryArrayMappedStartingAddress DellUnsigned64BitRange, + physicalMemoryArrayMappedEndingAddress DellUnsigned64BitRange, + physicalMemoryArrayMappedPartitionWidth DellUnsigned32BitRange +} + +physicalMemoryArrayMappedTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhysicalMemoryArrayMappedTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0020 This object defines the Physical Memory Array Mapped Table." + ::= { memoryGroup 20 } +physicalMemoryArrayMappedTableEntry OBJECT-TYPE + SYNTAX PhysicalMemoryArrayMappedTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0020.0001 This object defines the Physical Memory Array Mapped +Table Entry." + INDEX { physicalMemoryArrayMappedchassisIndex, + physicalMemoryArrayMappedIndex } + ::= { physicalMemoryArrayMappedTable 1 } + +physicalMemoryArrayMappedchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { physicalMemoryArrayMappedTableEntry 1 } +physicalMemoryArrayMappedIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0002 This attribute defines the index (one based) of the +physical memory array mapped address." + ::= { physicalMemoryArrayMappedTableEntry 2 } +physicalMemoryArrayMappedStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0003 This attribute defines the state capabilities of the +physical memory array mapped address." + ::= { physicalMemoryArrayMappedTableEntry 3 } +physicalMemoryArrayMappedStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0004 This attribute defines the state settings of the +physical memory array mapped address." + ::= { physicalMemoryArrayMappedTableEntry 4 } +physicalMemoryArrayMappedStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0005 This attribute defines the status of the +physical memory array mapped address." + ::= { physicalMemoryArrayMappedTableEntry 5 } +physicalMemoryArrayIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0006 This attribute defines the index (one based) of the +associated physical memory array." + ::= { physicalMemoryArrayMappedTableEntry 6 } +physicalMemoryArrayMappedStartingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0007 This attribute defines the physical starting address +in KBytes of the physical memory array mapped address." + ::= { physicalMemoryArrayMappedTableEntry 7 } +physicalMemoryArrayMappedEndingAddress OBJECT-TYPE + SYNTAX DellUnsigned64BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0008 This attribute defines the physical ending address +in KBytes of the physical memory array mapped address." + ::= { physicalMemoryArrayMappedTableEntry 8 } +physicalMemoryArrayMappedPartitionWidth OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0020.0001.0009 This attribute defines the number of memory devices +that form a single row in the memory array mapped address. 2,147,483,647 +indicates an unknown number of memory devices." + ::= { physicalMemoryArrayMappedTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Physical Memory Configuration Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1300.30.1... +------------------------------------------------------------------------------- + +DellPhysicalMemoryConfigStateCapabilities ::= INTEGER { + -- If set to 0 (zero), there are no State capabilities + unknownCapabilities(1), -- state capabilities are unknown + enableCapable(2), -- memory config can be enabled and disabled + notReadyCapable(4) -- memory config can be not ready +} +DellPhysicalMemoryConfigStateSettings ::= INTEGER { + -- If set to 0 (zero), there are no State settings enabled + unknown(1), -- state settings are unknown + enabled(2), -- memory config is enabled + notReady(4), -- memory config is not ready + redundantMemoryIsActive(8), -- redundant memory is active (in use) + enabledAndRedundantMemoryIsActive(10) +} +DellPhysicalMemoryConfigRedundantCapabilities ::= INTEGER { + -- If set to 0 (zero), there are no Redundant Memory capabilities + unknownCapabilities(1), -- redundant capabilities are unknown + spareCapable(2), -- Spare redundant memory feature is supported + mirrorCapable(4), -- Mirror redundant memory feature is supported + spareAndMirrorCapable(6), + raidCapable(8) -- RAID redundant memory feature is supported +} +DellPhysicalMemoryConfigRedundantSettings ::= INTEGER { + -- If set to 0 (zero), there are no Redundant Memory settings enabled + unknown(1), -- redundant settings are unknown + -- The following settings are mutually exclusive: + spareEnabled(2), -- Spare redundant memory feature is enabled + mirrorEnabled(4), -- Mirror redundant memory feature is enabled + raidEnabled(8) -- RAID redundant memory feature is enabled +} + +PhysicalMemoryConfigTableEntry ::= SEQUENCE { + physicalMemoryConfigChassisIndex DellObjectRange, + physicalMemoryConfigIndex DellObjectRange, + physicalMemoryConfigStateCapabilities DellPhysicalMemoryConfigStateCapabilities, + physicalMemoryConfigStateSettings DellPhysicalMemoryConfigStateSettings, + physicalMemoryConfigStatus DellStatus, + physicalMemoryConfigRedundantCapabilities DellPhysicalMemoryConfigRedundantCapabilities, + physicalMemoryConfigRedundantSettings DellPhysicalMemoryConfigRedundantSettings +} + +physicalMemoryConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhysicalMemoryConfigTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0030 This object defines the Physical Memory Configuration Table." + ::= { memoryGroup 30 } +physicalMemoryConfigTableEntry OBJECT-TYPE + SYNTAX PhysicalMemoryConfigTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0030.0001 This object defines the Physical Memory Configuration +Table Entry." + INDEX { physicalMemoryConfigChassisIndex, + physicalMemoryConfigIndex } + ::= { physicalMemoryConfigTable 1 } + +physicalMemoryConfigChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { physicalMemoryConfigTableEntry 1 } +physicalMemoryConfigIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0030.0001.0002 This attribute defines the index (one based) of the +physical memory configuration." + ::= { physicalMemoryConfigTableEntry 2 } +physicalMemoryConfigStateCapabilities OBJECT-TYPE + SYNTAX DellPhysicalMemoryConfigStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0030.0001.0003 This attribute defines the state capabilities of the +physical memory configuration." + ::= { physicalMemoryConfigTableEntry 3 } +physicalMemoryConfigStateSettings OBJECT-TYPE + SYNTAX DellPhysicalMemoryConfigStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0030.0001.0004 This attribute defines the state settings of the +physical memory configuration." + ::= { physicalMemoryConfigTableEntry 4 } +physicalMemoryConfigStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0030.0001.0005 This attribute defines the status of the +physical memory configuration." + ::= { physicalMemoryConfigTableEntry 5 } +physicalMemoryConfigRedundantCapabilities OBJECT-TYPE + SYNTAX DellPhysicalMemoryConfigRedundantCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0030.0001.0006 This attribute defines the redundant capabilities of the +physical memory." + ::= { physicalMemoryConfigTableEntry 6 } +physicalMemoryConfigRedundantSettings OBJECT-TYPE + SYNTAX DellPhysicalMemoryConfigRedundantSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0030.0001.0007 This attribute defines the redundant settings of the +physical memory." + ::= { physicalMemoryConfigTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Physical Memory Logging Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1300.40.1... +------------------------------------------------------------------------------- + +DellPhysicalMemoryLoggingCapabilities ::= INTEGER { + -- If set to 0 (zero), there are no Logging capabilities + unknownCapabilities(1), -- logging capabilities are unknown + enableCapable(2) -- logging can be enabled or disabled +} +DellPhysicalMemoryLoggingSettings ::= INTEGER { + -- If set to 0 (zero), there are no Logging settings enabled + unknown(1), -- logging settings are unknown + enabled(2) -- logging is enabled +} + +PhysicalMemoryLoggingTableEntry ::= SEQUENCE { + physicalMemoryLoggingChassisIndex DellObjectRange, + physicalMemoryLoggingIndex DellObjectRange, + physicalMemoryLoggingCapabilities DellPhysicalMemoryLoggingCapabilities, + physicalMemoryLoggingSettings DellPhysicalMemoryLoggingSettings, + physicalMemoryLoggingStatus DellStatus +} + +physicalMemoryLoggingTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhysicalMemoryLoggingTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0040 This object defines the Physical Memory Logging Table." + ::= { memoryGroup 40 } +physicalMemoryLoggingTableEntry OBJECT-TYPE + SYNTAX PhysicalMemoryLoggingTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0040.0001 This object defines the Physical Memory Logging Table Entry." + INDEX { physicalMemoryLoggingChassisIndex, + physicalMemoryLoggingIndex } + ::= { physicalMemoryLoggingTable 1 } + +physicalMemoryLoggingChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { physicalMemoryLoggingTableEntry 1 } +physicalMemoryLoggingIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0040.0001.0002 This attribute defines the index (one based) of the +physical memory logging." + ::= { physicalMemoryLoggingTableEntry 2 } +physicalMemoryLoggingCapabilities OBJECT-TYPE + SYNTAX DellPhysicalMemoryLoggingCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0040.0001.0003 This attribute defines the capabilities of the +physical memory logging." + ::= { physicalMemoryLoggingTableEntry 3 } +physicalMemoryLoggingSettings OBJECT-TYPE + SYNTAX DellPhysicalMemoryLoggingSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0040.0001.0004 This attribute defines the settings of the +physical memory logging." + ::= { physicalMemoryLoggingTableEntry 4 } +physicalMemoryLoggingStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0040.0001.0005 This attribute defines the status of the +physical memory logging." + ::= { physicalMemoryLoggingTableEntry 5 } + + +------------------------------------------------------------------------------- +-- Redundant Memory Unit Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1300.50.1... +------------------------------------------------------------------------------- + +RedundantMemoryUnitTableEntry ::= SEQUENCE { + redundantMemoryUnitChassisIndex DellObjectRange, + redundantMemoryUnitIndex DellObjectRange, + redundantMemoryUnitStateCapabilities DellStateCapabilities, + redundantMemoryUnitStateSettings DellStateSettings, + redundantMemoryUnitRedundancyStatus DellStatusRedundancy, + redundantMemoryUnitName DellString, + redundantMemoryUnitStatus DellStatus +} + +redundantMemoryUnitTable OBJECT-TYPE + SYNTAX SEQUENCE OF RedundantMemoryUnitTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0050 This object defines the Redundant Memory Unit Table." + ::= { memoryGroup 50 } +redundantMemoryUnitTableEntry OBJECT-TYPE + SYNTAX RedundantMemoryUnitTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0050.0001 This object defines the Redundant Memory Unit Table Entry." + INDEX { redundantMemoryUnitChassisIndex, + redundantMemoryUnitIndex } + ::= { redundantMemoryUnitTable 1 } + +redundantMemoryUnitChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0050.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { redundantMemoryUnitTableEntry 1 } +redundantMemoryUnitIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0050.0001.0002 This attribute defines the index (one based) of the +redundant memory unit." + ::= { redundantMemoryUnitTableEntry 2 } +redundantMemoryUnitStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0050.0001.0003 This attribute defines the state capabilities of the +redundant memory unit." + ::= { redundantMemoryUnitTableEntry 3 } +redundantMemoryUnitStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0050.0001.0004 This attribute defines the state settings of the +redundant memory unit." + ::= { redundantMemoryUnitTableEntry 4 } +redundantMemoryUnitRedundancyStatus OBJECT-TYPE + SYNTAX DellStatusRedundancy + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0050.0001.0005 This attribute defines the redundancy status of the +redundant memory unit." + ::= { redundantMemoryUnitTableEntry 5 } +redundantMemoryUnitName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0050.0001.0006 This attribute defines the name of the +redundant memory unit." + ::= { redundantMemoryUnitTableEntry 6 } +redundantMemoryUnitStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0050.0001.0007 This attribute defines the status of the +redundant memory unit." + ::= { redundantMemoryUnitTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Physical Memory Card Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1300.60.1... +------------------------------------------------------------------------------- + +PhysicalMemoryCardTableEntry ::= SEQUENCE { + physicalMemoryCardChassisIndex DellObjectRange, + physicalMemoryCardIndex DellObjectRange, + physicalMemoryCardStateCapabilities DellStateCapabilities, + physicalMemoryCardStateSettings DellStateSettings, + physicalMemoryCardStatus DellStatus, + physicalMemoryCardName DellString, + physicalMemoryCardTotalNumberSockets DellUnsigned32BitRange, + physicalMemoryCardInUseNumberSockets DellUnsigned32BitRange, + physicalMemoryCardPhyMemArrayIndexReference DellObjectRange +} + +physicalMemoryCardTable OBJECT-TYPE + SYNTAX SEQUENCE OF PhysicalMemoryCardTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0060 This object defines the Physical Memory Card Table." + ::= { memoryGroup 60 } +physicalMemoryCardTableEntry OBJECT-TYPE + SYNTAX PhysicalMemoryCardTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1300.0060.0001 This object defines the Physical Memory Card Table Entry." + INDEX { physicalMemoryCardChassisIndex, + physicalMemoryCardIndex } + ::= { physicalMemoryCardTable 1 } + +physicalMemoryCardChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { physicalMemoryCardTableEntry 1 } +physicalMemoryCardIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0002 This attribute defines the index (one based) of the +physical memory card." + ::= { physicalMemoryCardTableEntry 2 } +physicalMemoryCardStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0003 This attribute defines the state capabilities of the +physical memory card." + ::= { physicalMemoryCardTableEntry 3 } +physicalMemoryCardStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0004 This attribute defines the state settings of the +physical memory card." + ::= { physicalMemoryCardTableEntry 4 } +physicalMemoryCardStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0005 This attribute defines the status of the +physical memory card." + ::= { physicalMemoryCardTableEntry 5 } +physicalMemoryCardName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0006 This attribute defines the name of the +physical memory card." + ::= { physicalMemoryCardTableEntry 6 } +physicalMemoryCardTotalNumberSockets OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0007 This attribute defines the total number of memory +sockets available on the physical memory card. 2,147,483,647 indicates +an unknown number of sockets." + ::= { physicalMemoryCardTableEntry 7 } +physicalMemoryCardInUseNumberSockets OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0008 This attribute defines the number of memory +sockets in use on the physical memory card. Zero indicates that the +physical memory card is not installed or has a configuration error. +2,147,483,647 indicates an unknown number of sockets." + ::= { physicalMemoryCardTableEntry 8 } +physicalMemoryCardPhyMemArrayIndexReference OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1300.0060.0001.0009 This attribute defines the index (one based) of the +Physical Memory Array Table entry for the physical memory array with the +same chassis index that this physical memory card is associated with." + ::= { physicalMemoryCardTableEntry 9 } + + +------------------------------------------------------------------------------- +-- BIOS Setup Control Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- BIOS Setup Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.10.1.. +------------------------------------------------------------------------------- + +DellSpeakerControlCapabilitiesUnique ::= INTEGER { + unknown(1), -- speaker control capabilities are unknown + enableCapable(2), -- speaker can be enabled or disabled + lowCapable(4), -- speaker volume can be set to low + mediumCapable(8), -- speaker volume can be set to medium + highCapable(16), -- speaker volume can be set to high + allVolumeCapable(30) -- speaker volume can be set to low, medium or high +} +DellSpeakerControlSettingsUnique ::= INTEGER { + unknown(1), -- speaker control settings are unknown + enabled(2), -- speaker is enabled + low(4), -- speaker volume is low + medium(8), -- speaker volume is medium + high(16) -- speaker volume is high +} +DellNIFwakeonLanControlCapabilitiesUnique ::= INTEGER { + unknown(1), -- wake on LAN capabilities are unknown + enableCapable(2), -- wake on LAN can be enabled or disabled + addInCardCapable(4), -- wake on LAN by add in card capable + onBoardCapable(8), -- wake on LAN by onboard NIF capable + bothCapable(14) +} +DellNIFwakeonLanControlSettingsUnique ::= INTEGER { + unknown(1), -- wake on LAN settings are unknown + enabled(2), -- wake on LAN is enabled + addInCard(4), -- wake on LAN is by add in card + onBoard(8), -- wake on LAN is by onboard NIF + addInCardOrOnBoard(12) -- wake on LAN is by either add in card or onboard NIF +} +DellBootSequenceControlCapabilitiesUnique ::= INTEGER { + bootSequenceUnknown(1), -- boot sequence capabilities are unknown + bootFromDisketteFirstCapable(2), -- boot sequence can be diskette first + bootFromHardDriveFirstCapable(4), -- boot sequence can be IDE hard drive first + bootFromDisketteORHardDriveFirstCapable(6), -- boot sequence can be diskette or IDE hard drive first + bootFromDeviceListCapable(8), -- boot sequence can be device list + bootFromCDROMFirstCapable(16), -- boot sequence can be CD ROM first + allFirstCapable(30) -- boot sequence can be any of the above methods first +} +DellBootSequenceControlSettingsUnique ::= INTEGER { + bootSequenceUnknown(1), -- boot sequence settings are unknown + bootFromDisketteFirst(2), -- boot sequence is diskette first + bootFromHardDriveFirst(4), -- boot sequence is IDE hard drive first + bootFromDeviceList(8), -- boot sequence is device list + bootFromCDROMFirst(16) -- boot sequence is CD ROM first +} +DellBIOSPasswordControlCapabilitiesUnique ::= INTEGER { + passwordControlCapabilitiesUnknown(1), -- BIOS password capabilities are unknown + passwordControlEnableCapable(2), -- BIOS password can be enabled + passwordControlJumperDisableCapable(4), -- BIOS password can be jumper disabled + passwordControlEnableAndJumperDisableCapable(6) +} +DellBIOSPasswordControlSettingsUnique ::= INTEGER { + passwordControlSettingsUnknown(1), -- BIOS password settings are unknown + passwordControlEnabled(2), -- BIOS password is enabled + passwordControlJumperDisabled(4) -- BIOS password has been disabled by jumper +} +DellTPMSecurityControlCapabilities ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + offCapable(1), -- TPM security can be Off + onWithPrebootMeasurementsCapable(2), -- TPM security can be On with Pre-boot Measurements + onWithoutPrebootMeasurementsCapable(4) -- TPM security can be On without Pre-boot Measurements +} +DellTPMSecurityControlSetting ::= INTEGER { + -- off(0), - TPM security is Off + onWithPrebootMeasurements(1), -- TPM security is On with Pre-boot Measurements + onWithoutPrebootMeasurements(2) -- TPM security is On without Pre-boot Measurements +} + +BiosSetUpControlTableEntry ::= SEQUENCE { + biosSetUpControlchassisIndex DellObjectRange, + bSUCpointingDeviceControlCapabilities DellStateCapabilities, + bSUCpointingDeviceControlSettings DellStateSettings, + bSUCpointingDeviceControlStatus DellStatus, + bSUCpointingDeviceControlName DellString, + bSUCnumLockControlCapabilities DellStateCapabilities, + bSUCnumLockControlSettings DellStateSettings, + bSUCnumLockControlStatus DellStatus, + bSUCnumLockControlName DellString, + bSUCprocessorSerialNumberControlCapabilities DellStateCapabilities, + bSUCprocessorSerialNumberControlSettings DellStateSettings, + bSUCprocessorSerialNumberControlStatus DellStatus, + bSUCprocessorSerialNumberControlName DellString, + bSUCspeakerControlCapabilitiesUnique DellSpeakerControlCapabilitiesUnique, + bSUCspeakerControlSettingsUnique DellSpeakerControlSettingsUnique, + bSUCspeakerControlStatus DellStatus, + bSUCspeakerControlName DellString, + bSUCnIFwakeonLanControlCapabilitiesUnique DellNIFwakeonLanControlCapabilitiesUnique, + bSUCnIFwakeonLanControlSettingsUnique DellNIFwakeonLanControlSettingsUnique, + bSUCnIFwakeonLanControlStatus DellStatus, + bSUCnIFwakeonLanControlName DellString, + bSUCbootSequenceControlCapabilitiesUnique DellBootSequenceControlCapabilitiesUnique, + bSUCbootSequenceControlSettingsUnique DellBootSequenceControlSettingsUnique, + bSUCbootSequenceControlStatus DellStatus, + bSUCbootSequenceControlName DellString, + bSUCadministratorPasswordControlCapabilitiesUnique DellBIOSPasswordControlCapabilitiesUnique, + bSUCadministratorPasswordControlSettingsUnique DellBIOSPasswordControlSettingsUnique, + bSUCadministratorPasswordControlStatus DellStatus, + bSUCadministratorPasswordPasswordVerifyName DellString, + bSUCadministratorPasswordNewPasswordName DellString, + bSUCuserPasswordControlCapabilitiesUnique DellBIOSPasswordControlCapabilitiesUnique, + bSUCuserPasswordControlSettingsUnique DellBIOSPasswordControlSettingsUnique, + bSUCuserPasswordControlStatus DellStatus, + bSUCuserPasswordPasswordVerifyName DellString, + bSUCuserPasswordNewPasswordName DellString, + bSUCtpmSecurityControlCapabilities DellTPMSecurityControlCapabilities, + bSUCtpmSecurityControlSetting DellTPMSecurityControlSetting, + bSUCtpmSecurityControlStatus DellStatus, + bSUCtpmSecurityControlName DellString +} + +biosSetUpControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF BiosSetUpControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0010 This object defines the BIOS Setup Control Table." + ::= { biosSetUpControlGroup 10 } +biosSetUpControlTableEntry OBJECT-TYPE + SYNTAX BiosSetUpControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0010.0001 This object defines the BIOS Setup Control Table Entry." + INDEX { biosSetUpControlchassisIndex } + ::= { biosSetUpControlTable 1 } + +biosSetUpControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { biosSetUpControlTableEntry 1 } +bSUCpointingDeviceControlCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0002 This attribute defines the BIOS setup control capabilities +of the pointing Device." + ::= { biosSetUpControlTableEntry 2 } +bSUCpointingDeviceControlSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0003 This attribute defines the BIOS setup control settings +of the pointing device." + ::= { biosSetUpControlTableEntry 3 } +bSUCpointingDeviceControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0004 This attribute defines the BIOS setup control status +of the pointing device." + ::= { biosSetUpControlTableEntry 4 } +bSUCpointingDeviceControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0005 This attribute defines the BIOS setup control name +of the pointing device." + ::= { biosSetUpControlTableEntry 5 } +bSUCnumLockControlCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0006 This attribute defines the BIOS setup control capabilities +of the numeric lock." + ::= { biosSetUpControlTableEntry 6 } +bSUCnumLockControlSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0007 This attribute defines the BIOS setup control settings +of the numeric lock." + ::= { biosSetUpControlTableEntry 7 } +bSUCnumLockControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0008 This attribute defines the BIOS setup control status +of the numeric lock." + ::= { biosSetUpControlTableEntry 8 } +bSUCnumLockControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0009 This attribute defines the BIOS setup control name +of the numeric lock." + ::= { biosSetUpControlTableEntry 9 } +bSUCprocessorSerialNumberControlCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0010 This attribute defines the BIOS setup control capabilities +of the processor serial number." + ::= { biosSetUpControlTableEntry 10 } +bSUCprocessorSerialNumberControlSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0011 This attribute defines the BIOS setup control settings +of the processor serial number." + ::= { biosSetUpControlTableEntry 11 } +bSUCprocessorSerialNumberControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0012 This attribute defines the BIOS setup control status +of the processor serial number." + ::= { biosSetUpControlTableEntry 12 } +bSUCprocessorSerialNumberControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0013 This attribute defines the BIOS setup control name +of the processor serial number." + ::= { biosSetUpControlTableEntry 13 } +bSUCspeakerControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellSpeakerControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0014 This attribute defines the BIOS setup control capabilities +of the speaker." + ::= { biosSetUpControlTableEntry 14 } +bSUCspeakerControlSettingsUnique OBJECT-TYPE + SYNTAX DellSpeakerControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0015 This attribute defines the BIOS setup control settings +of the speaker." + ::= { biosSetUpControlTableEntry 15 } +bSUCspeakerControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0016 This attribute defines the BIOS setup control status +of the speaker." + ::= { biosSetUpControlTableEntry 16 } +bSUCspeakerControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0017 This attribute defines the BIOS setup control name +of the speaker." + ::= { biosSetUpControlTableEntry 17 } +bSUCnIFwakeonLanControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellNIFwakeonLanControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0018 This attribute defines the BIOS setup control capabilities +of the NIF wake on Lan." + ::= { biosSetUpControlTableEntry 18 } +bSUCnIFwakeonLanControlSettingsUnique OBJECT-TYPE + SYNTAX DellNIFwakeonLanControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0019 This attribute defines the BIOS setup control settings +of the NIF wake on Lan." + ::= { biosSetUpControlTableEntry 19 } +bSUCnIFwakeonLanControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0020 This attribute defines the BIOS setup control status +of the NIF wake on Lan." + ::= { biosSetUpControlTableEntry 20 } +bSUCnIFwakeonLanControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0021 This attribute defines the BIOS setup control name +of the NIF wake on Lan." + ::= { biosSetUpControlTableEntry 21 } +bSUCbootSequenceControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellBootSequenceControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0022 This attribute defines the BIOS setup control capabilities +of the boot sequence." + ::= { biosSetUpControlTableEntry 22 } +bSUCbootSequenceControlSettingsUnique OBJECT-TYPE + SYNTAX DellBootSequenceControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0023 This attribute defines the BIOS setup control settings +of the boot sequence." + ::= { biosSetUpControlTableEntry 23 } +bSUCbootSequenceControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0024 This attribute defines the BIOS setup control status +of the boot sequence." + ::= { biosSetUpControlTableEntry 24 } +bSUCbootSequenceControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0025 This attribute defines the BIOS setup control name +of the boot sequence." + ::= { biosSetUpControlTableEntry 25 } +bSUCadministratorPasswordControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellBIOSPasswordControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0026 This attribute defines the BIOS setup control capabilities +of the administrator password." + ::= { biosSetUpControlTableEntry 26 } +bSUCadministratorPasswordControlSettingsUnique OBJECT-TYPE + SYNTAX DellBIOSPasswordControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0027 This attribute defines the BIOS setup control settings +of the administrator password." + ::= { biosSetUpControlTableEntry 27 } +bSUCadministratorPasswordControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0028 This attribute defines the BIOS setup control status +of the administrator password." + ::= { biosSetUpControlTableEntry 28 } +bSUCadministratorPasswordPasswordVerifyName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0029 This attribute defines the BIOS setup control value +of the current administrator password." + ::= { biosSetUpControlTableEntry 29 } +bSUCadministratorPasswordNewPasswordName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0030 This attribute defines the BIOS setup control value +of the new administrator password. To set a new administrator password, +a successful set of the current administrator password must have been +done immediately preceeding this set." + ::= { biosSetUpControlTableEntry 30 } +bSUCuserPasswordControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellBIOSPasswordControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0031 This attribute defines the BIOS setup control capabilities +of the user password." + ::= { biosSetUpControlTableEntry 31 } +bSUCuserPasswordControlSettingsUnique OBJECT-TYPE + SYNTAX DellBIOSPasswordControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0032 This attribute defines the BIOS setup control settings +of the user password." + ::= { biosSetUpControlTableEntry 32 } +bSUCuserPasswordControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0033 This attribute defines the BIOS setup control status +of the user password." + ::= { biosSetUpControlTableEntry 33 } +bSUCuserPasswordPasswordVerifyName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0034 This attribute defines the BIOS setup control value +of the current user password." + ::= { biosSetUpControlTableEntry 34 } +bSUCuserPasswordNewPasswordName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0035 This attribute defines the BIOS setup control value +of the new user password. To set a new user password, a successful set of the +current user password must have been done immediately preceeding this set." + ::= { biosSetUpControlTableEntry 35 } +bSUCtpmSecurityControlCapabilities OBJECT-TYPE + SYNTAX DellTPMSecurityControlCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0036 This attribute defines the BIOS setup control capabilities +of Trusted Platform Module (TPM) security." + ::= { biosSetUpControlTableEntry 36 } +bSUCtpmSecurityControlSetting OBJECT-TYPE + SYNTAX DellTPMSecurityControlSetting + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0037 This attribute defines the BIOS setup control setting +of Trusted Platform Module (TPM) security." + ::= { biosSetUpControlTableEntry 37 } +bSUCtpmSecurityControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0038 This attribute defines the BIOS setup control status +of Trusted Platform Module (TPM) security." + ::= { biosSetUpControlTableEntry 38 } +bSUCtpmSecurityControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0010.0001.0039 This attribute defines the BIOS setup control name +of Trusted Platform Module (TPM) security." + ::= { biosSetUpControlTableEntry 39 } + + +------------------------------------------------------------------------------- +-- Small Computer Systems Interface (SCSI) Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.20.1... +------------------------------------------------------------------------------- + +SCSIControlTableEntry ::= SEQUENCE { + sCSIControlchassisIndex DellObjectRange, + sCSIControlIndex DellObjectRange, + sCSIControlCapabilities DellStateCapabilities, + sCSIControlSettings DellStateSettings, + sCSIControlStatus DellStatus, + sCSIControlName DellString +} + +sCSIControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF SCSIControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0020 This object defines the Small Computer Systems Interface (SCSI) +Control Table." + ::= { biosSetUpControlGroup 20 } +sCSIControlTableEntry OBJECT-TYPE + SYNTAX SCSIControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0020.0001 This object defines the Small Computer Systems Interface (SCSI) +Control Table Entry." + INDEX { sCSIControlchassisIndex, + sCSIControlIndex } + ::= { sCSIControlTable 1 } + +sCSIControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0020.0001.0001 This attribute defines the index (one based) of the +assoicated chassis." + ::= { sCSIControlTableEntry 1 } +sCSIControlIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0020.0001.0002 This attribute defines the index (one based) of the +SCSI control." + ::= { sCSIControlTableEntry 2 } +sCSIControlCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0020.0001.0003 This attribute defines the state capabilities of the +SCSI control." + ::= { sCSIControlTableEntry 3 } +sCSIControlSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0020.0001.0004 This attribute defines the state settings of the +SCSI control." + ::= { sCSIControlTableEntry 4 } +sCSIControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0020.0001.0005 This attribute defines the status of the +SCSI control." + ::= { sCSIControlTableEntry 5 } +sCSIControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0020.0001.0006 This attribute defines the BIOS setup control name +of the SCSI device." + ::= { sCSIControlTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Parallel Port Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.30.1... +------------------------------------------------------------------------------- + +DellParallelPortControlCapabilitiesUnique ::= INTEGER { + unknown(1), -- parallel port capabilities are unknown + enableCapable(2), -- parallel port can be enabled or disabled + lpt1Capable(4), -- parallel port can be set to LPT1 + lpt1andEnableCapable(6), -- parallel port can be enabled and set to LPT1 + lpt2Capable(8), -- parallel port can be set to LPT2 + lpt2andEnableCapable(10), -- parallel port can be enabled and set to LPT2 + lpt3Capable(16), -- parallel port can be set to LPT3 + lpt3andEnableCapable(18), -- parallel port can be enabled and set to LPT3 + allParallelPortCapable(30) -- parallel port can be enabled and set to LPT1, LPT2 or LPT3 +} +DellParallelPortControlSettingsUnique ::= INTEGER { + unknown(1), -- parallel port settings are unknown + enabled(2), -- parallel port enabled + lpt1(4), -- parallel port set to LPT1 + lpt1Enabled(6), -- parallel port enabled and set to LPT1 + lpt2(8), -- parallel port set to LPT2 + lpt2Enabled(10), -- parallel port enabled and set to LPT2 + lpt3(16), -- parallel port set to LPT3 + lpt3Enabled(18) -- parallel port enabled and set to LPT3 +} +DellParallelPortControlModeCapabilitiesUnique ::= INTEGER { + unknown(1), -- mode capabilities are unknown + atCapable(2), -- parallel port can be set to AT mode + ps2Capable(4), -- parallel port can be set to PS/2 mode + atAndPS2Capable(6), -- parallel port can be set to AT mode or PS/2 mode + ecpCapable(8), -- parallel port can be set to ECP mode + eppCapable(16), -- parallel port can be set to EPP mode + allModeCapable(30) -- parallel port can be set to all modes +} +DellParallelPortControlModeSettingsUnique ::= INTEGER { + unknown(1), -- mode settings are unknown + atModeEnabled(2), -- parallel port set to AT mode + ps2ModeEnabled(4), -- parallel port set to PS/2 mode + ecpModeEnabled(8), -- parallel port set to ECP mode + eppModeEnabled(16) -- parallel port set to EPP mode +} + +ParallelPortControlTableEntry ::= SEQUENCE { + parallelPortControlchassisIndex DellObjectRange, + parallelPortControlIndex DellObjectRange, + parallelPortControlCapabilitiesUnique DellParallelPortControlCapabilitiesUnique, + parallelPortControlSettingsUnique DellParallelPortControlSettingsUnique, + parallelPortControlStatus DellStatus, + parallelPortControlName DellString, + parallelPortControlModeCapabilitiesUnique DellParallelPortControlModeCapabilitiesUnique, + parallelPortControlModeSettingsUnique DellParallelPortControlModeSettingsUnique +} + +parallelPortControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParallelPortControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0030 This object defines the Parallel Port Control Table." + ::= { biosSetUpControlGroup 30 } +parallelPortControlTableEntry OBJECT-TYPE + SYNTAX ParallelPortControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0030.0001 This object defines the Parallel Port Control Table Entry." + INDEX { parallelPortControlchassisIndex, + parallelPortControlIndex } + ::= { parallelPortControlTable 1 } + +parallelPortControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { parallelPortControlTableEntry 1 } +parallelPortControlIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0002 This attribute defines the index (one based) of the +parallel port control." + ::= { parallelPortControlTableEntry 2 } +parallelPortControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellParallelPortControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0003 This attribute defines the port capabilities of the +parallel port control." + ::= { parallelPortControlTableEntry 3 } +parallelPortControlSettingsUnique OBJECT-TYPE + SYNTAX DellParallelPortControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0004 This attribute defines the port settings of the +parallel port control." + ::= { parallelPortControlTableEntry 4 } +parallelPortControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0005 This attribute defines the status of the +parallel port control." + ::= { parallelPortControlTableEntry 5 } +parallelPortControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0006 This attribute defines the BIOS setup control name +of the parallel port." + ::= { parallelPortControlTableEntry 6 } +parallelPortControlModeCapabilitiesUnique OBJECT-TYPE + SYNTAX DellParallelPortControlModeCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0007 This attribute defines the mode capabilities of the +parallel port control." + ::= { parallelPortControlTableEntry 7 } +parallelPortControlModeSettingsUnique OBJECT-TYPE + SYNTAX DellParallelPortControlModeSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0030.0001.0008 This attribute defines the mode settings of the +parallel port control." + ::= { parallelPortControlTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Serial Port Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.40.1... +------------------------------------------------------------------------------- + +DellSerialPortControlCapabilitiesUnique ::= INTEGER { + unknown(1), -- serial port capabilities are unknown + enableCapable(2), -- serial port can be enabled or disabled + com1Capable(4), -- serial port can be set to COM1 + enableAndCom1Capable(6), -- serial port can be enabled and set to COM1 + com2Capable(8), -- serial port can be set to COM2 + enableAndCom2Capable(10), -- serial port can be enabled and set to COM2 + com3Capable(16), -- serial port can be set to COM3 + enableAndCom3Capable(18), -- serial port can be enabled and set to COM3 + com4Capable(32), -- serial port can be set to COM4 + enableAndCom4Capable(34), -- serial port can be enabled and set to COM4 + autoConfigCapable(64), -- serial port can be autoconfigured + com1OrCom3CapableAndAutoConfigCapable(86), + com2OrCom4CapableAndAutoConfigCapable(106), + allcomCapable(126) -- serial port supports all capabilities +} +DellSerialPortControlSettingsUnique ::= INTEGER { + unknown(1), -- serial port settings are unknown + enabled(2), -- serial port enabled + com1(4), -- serial port set to COM1 + com1Enabled(6), -- serial port enabled and set to COM1 + com2(8), -- serial port set to COM2 + com2Enabled(10), -- serial port enabled and set to COM2 + com3(16), -- serial port set to COM3 + com3Enabled(18), -- serial port enabled and set to COM3 + com4(32), -- serial port set to COM4 + com4Enabled(34), -- serial port enabled and set to COM4 + comPortsAutoConfig(64), -- serial port set to autoconfiguration + enabledAndAutoConfig(66) -- serial port enabled and set to autoconfiguration +} + +SerialPortControlTableEntry ::= SEQUENCE { + serialPortControlchassisIndex DellObjectRange, + serialPortControlIndex DellObjectRange, + serialPortControlCapabilitiesUnique DellSerialPortControlCapabilitiesUnique, + serialPortControlSettingsUnique DellSerialPortControlSettingsUnique, + serialPortControlStatus DellStatus, + serialPortControlName DellString +} + +serialPortControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF SerialPortControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0040 This object defines the Serial Port Control Table." + ::= { biosSetUpControlGroup 40 } +serialPortControlTableEntry OBJECT-TYPE + SYNTAX SerialPortControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0040.0001 This object defines the Serial Port Control Table Entry." + INDEX { serialPortControlchassisIndex, + serialPortControlIndex } + ::= { serialPortControlTable 1 } + +serialPortControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { serialPortControlTableEntry 1 } +serialPortControlIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0040.0001.0002 This attribute defines the index (one based) of the +serial port control." + ::= { serialPortControlTableEntry 2 } +serialPortControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellSerialPortControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0040.0001.0003 This attribute defines the port capabilities of the +serial port control." + ::= { serialPortControlTableEntry 3 } +serialPortControlSettingsUnique OBJECT-TYPE + SYNTAX DellSerialPortControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0040.0001.0004 This attribute defines the port settings of the +serial port control." + ::= { serialPortControlTableEntry 4 } +serialPortControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0040.0001.0005 This attribute defines the status of the +serial port control." + ::= { serialPortControlTableEntry 5 } +serialPortControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0040.0001.0006 This attribute defines the BIOS setup control name +of the serial port." + ::= { serialPortControlTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Universal Serial Bus (USB) Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.50.1... +------------------------------------------------------------------------------- + +UsbControlTableEntry ::= SEQUENCE { + usbControlchassisIndex DellObjectRange, + usbControlIndex DellObjectRange, + usbControlCapabilities DellStateCapabilities, + usbControlSettings DellStateSettings, + usbControlStatus DellStatus, + usbControlName DellString +} + +usbControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF UsbControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0050 This object defines the Universal Serial Bus (USB) Control Table." + ::= { biosSetUpControlGroup 50 } +usbControlTableEntry OBJECT-TYPE + SYNTAX UsbControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0050.0001 This object defines the Universal Serial Bus (USB) Control +Table Entry." + INDEX { usbControlchassisIndex, + usbControlIndex } + ::= { usbControlTable 1 } + +usbControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0050.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { usbControlTableEntry 1 } +usbControlIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0050.0001.0002 This attribute defines the index (one based) of the +USB control." + ::= { usbControlTableEntry 2 } +usbControlCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0050.0001.0003 This attribute defines the state capabilities of the +USB control." + ::= { usbControlTableEntry 3 } +usbControlSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0050.0001.0004 This attribute defines the state settings of the +USB control." + ::= { usbControlTableEntry 4 } +usbControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0050.0001.0005 This attribute defines the status of the USB control." + ::= { usbControlTableEntry 5 } +usbControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0050.0001.0006 This attribute defines the BIOS setup control name +of the USB device." + ::= { usbControlTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Integrated Device Electronics (IDE) Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.60.1... +------------------------------------------------------------------------------- + +DellideControlCapabilitiesUnique ::= INTEGER { + unknown(1), -- IDE capabilities are unknown + ideControlAutoConfigOrEnableCapable(2) -- IDE can be autoconfigured or enabled/disabled +} +DellideControlSettingsUnique ::= INTEGER { + unknown(1), -- IDE settings are unknown + ideControlAutoConfigEnabledOrEnabled(2) -- IDE set to autoconfigured or enabled +} + +IdeControlTableEntry ::= SEQUENCE { + ideControlchassisIndex DellObjectRange, + ideControlIndex DellObjectRange, + ideControlCapabilitiesUnique DellideControlCapabilitiesUnique, + ideControlSettingsUnique DellideControlSettingsUnique, + ideControlStatus DellStatus, + ideControlName DellString +} + +ideControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF IdeControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0060 This object defines the Integrated Device Electronics (IDE) +Control Table." + ::= { biosSetUpControlGroup 60 } +ideControlTableEntry OBJECT-TYPE + SYNTAX IdeControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0060.0001 This object defines the Integrated Device Electronics (IDE) +Control Table Entry." + INDEX { ideControlchassisIndex, + ideControlIndex } + ::= { ideControlTable 1 } + +ideControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { ideControlTableEntry 1 } +ideControlIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0060.0001.0002 This attribute defines the index (one based) of the +IDE control." + ::= { ideControlTableEntry 2 } +ideControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellideControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0060.0001.0003 This attribute defines the capabilities of the +IDE control." + ::= { ideControlTableEntry 3 } +ideControlSettingsUnique OBJECT-TYPE + SYNTAX DellideControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0060.0001.0004 This attribute defines the settings of the +IDE control." + ::= { ideControlTableEntry 4 } +ideControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0060.0001.0005 This attribute defines the state of the IDE control." + ::= { ideControlTableEntry 5 } +ideControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0060.0001.0006 This attribute defines the BIOS setup control name +of the IDE device." + ::= { ideControlTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Diskette Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.70.1... +------------------------------------------------------------------------------- + +DellDisketteControlCapabilitiesUnique ::= INTEGER { + unknown(1), -- diskette capabilities are unknown + disketteAutoConfigOrEnableCapable(2), -- diskette can be enabled or disabled + disketteReadOnlyCapable(4), -- diskette can be set to read only + disketteAutoConfigOrEnableCapableandReadOnlyCapable(6) +} +DellDisketteControlSettingsUnique ::= INTEGER { + unknown(1), -- Diskette Control state is unknown + disketteAutoConfigEnabledOrEnabled(2), -- Diskette Control is autoconfigurable or enabled + disketteisReadOnly(4) -- Diskette is in read only operation +} + +DisketteControlTableEntry ::= SEQUENCE { + disketteControlchassisIndex DellObjectRange, + disketteControlIndex DellObjectRange, + disketteControlCapabilitiesUnique DellDisketteControlCapabilitiesUnique, + disketteControlSettingsUnique DellDisketteControlSettingsUnique, + disketteControlStatus DellStatus, + disketteControlName DellString +} + +disketteControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF DisketteControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0070 This object defines the Diskette Control Table." + ::= { biosSetUpControlGroup 70 } +disketteControlTableEntry OBJECT-TYPE + SYNTAX DisketteControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0070.0001 This object defines the Diskette Control Table Entry." + INDEX { disketteControlchassisIndex, + disketteControlIndex } + ::= { disketteControlTable 1 } + +disketteControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0070.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { disketteControlTableEntry 1 } +disketteControlIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0070.0001.0002 This attribute defines the index (one based) of the +diskette control." + ::= { disketteControlTableEntry 2 } +disketteControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellDisketteControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0070.0001.0003 This attribute defines the capabilities of the +diskette control." + ::= { disketteControlTableEntry 3 } +disketteControlSettingsUnique OBJECT-TYPE + SYNTAX DellDisketteControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0070.0001.0004 This attribute defines the settings of the +diskette control." + ::= { disketteControlTableEntry 4 } +disketteControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0070.0001.0005 This attribute defines the status of the +diskette control." + ::= { disketteControlTableEntry 5 } +disketteControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0070.0001.0006 This attribute defines the BIOS setup control name +of the diskette device." + ::= { disketteControlTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Network Interface Control Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1400.80.1... +------------------------------------------------------------------------------- + +DellNetworkInterfaceControlCapabilitiesUnique ::= INTEGER { + unknown(1), -- network interface capabilities are unknown + enableCapable(2), -- network interface can be enabled or disabled + enableWithoutPXECapable(4) -- network interface can be enabled without PXE +} +DellNetworkInterfaceControlSettingsUnique ::= INTEGER { + unknown(1), -- network interface settings are unknown + enabled(2), -- network interface enabled + enabledWithoutPXE(4) -- network interface enabled without PXE +} + +NetworkInterfaceControlTableEntry ::= SEQUENCE { + networkInterfaceControlchassisIndex DellObjectRange, + networkInterfaceControlIndex DellObjectRange, + networkInterfaceControlCapabilitiesUnique DellNetworkInterfaceControlCapabilitiesUnique, + networkInterfaceControlSettingsUnique DellNetworkInterfaceControlSettingsUnique, + networkInterfaceControlStatus DellStatus, + networkInterfaceControlName DellString +} + +networkInterfaceControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF NetworkInterfaceControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0080 This object defines the Network Interface Control Table." + ::= { biosSetUpControlGroup 80 } +networkInterfaceControlTableEntry OBJECT-TYPE + SYNTAX NetworkInterfaceControlTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1400.0080.0001 This object defines the Network Interface Control Table Entry." + INDEX { networkInterfaceControlchassisIndex, + networkInterfaceControlIndex } + ::= { networkInterfaceControlTable 1 } + +networkInterfaceControlchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0080.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { networkInterfaceControlTableEntry 1 } +networkInterfaceControlIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0080.0001.0002 This attribute defines the index (one based) of the +network interface control." + ::= { networkInterfaceControlTableEntry 2 } +networkInterfaceControlCapabilitiesUnique OBJECT-TYPE + SYNTAX DellNetworkInterfaceControlCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0080.0001.0003 This attribute defines the capabilities of the +network interface control." + ::= { networkInterfaceControlTableEntry 3 } +networkInterfaceControlSettingsUnique OBJECT-TYPE + SYNTAX DellNetworkInterfaceControlSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0080.0001.0004 This attribute defines the settings of the +network interface control." + ::= { networkInterfaceControlTableEntry 4 } +networkInterfaceControlStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1400.0080.0001.0005 This attribute defines the status of the +network interface control." + ::= { networkInterfaceControlTableEntry 5 } +networkInterfaceControlName OBJECT-TYPE + SYNTAX DellString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1400.0080.0001.0006 This attribute defines the BIOS setup control name +of the network interface." + ::= { networkInterfaceControlTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Local Response Agent (LRA) Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1500 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Local Response Agent (LRA) Global Settings Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1500.10.1.. +------------------------------------------------------------------------------- + +DellLocalResponseAgentCapabilitiesUnique ::= INTEGER { + -- If set to 0 (zero), LRA has no capabilities + speakerControlCapable(1), -- LRA capable of speaker beep + consoleAlertCapable(2), -- LRA capable of console alert + broadcastMessageCapable(4), -- LRA capable of broadcast message + osShutDownCapable(8), -- LRA capable of operating system shutdown + rebootCapable(16), -- LRA capable of system reboot + powerCycleCapable(32), -- LRA capable of system power cycle + powerOFFCapable(64), -- LRA capable of system power off + executeApplicationCapable(256), -- LRA capable of executing user-specified application + lraFullyCapable(383) -- all LRA capabilities +} +DellLRAThermalShutdownCapabilitiesUnique ::= INTEGER { + -- If set to 0 (zero), LRA has no thermal shutdown capabilities + unknownCapabilities(1), -- thermal shutdown capabilities are unknown + enableCapable(2), -- thermal shutdown can be enabled or disabled + warningCapable(4), -- thermal shutdown can be set to activate on warning + enableOnWarningCapable(6), + failureCapable(8), -- thermal shutdown can be set to activate on failure + enableOnFailureCapable(10), + enableOnWarningOrFailureCapable(14) +} +DellLRAThermalShutdownStateSettingsUnique ::= INTEGER { + -- If set to 0 (zero), LRA thermal shutdown is disabled + unknown(1), -- thermal shutdown settings are unknown + activatedOnWarning(6), -- thermal shutdown set to activate on warning + activatedOnFailure(10) -- thermal shutdown set to activate on failure +} + +LRAGlobalSettingsTableEntry ::= SEQUENCE { + lRAGlobalchassisIndex DellObjectRange, + lRAGlobalState DellStateSettings, + lRAGlobalSettingsDisableTimeoutValue DellUnsigned32BitRange, + lRAGlobalSettingsCapabilitiesUnique DellLocalResponseAgentCapabilitiesUnique, + lRAGlobalThermalShutdownCapabilitiesUnique DellLRAThermalShutdownCapabilitiesUnique, + lRAGlobalThermalShutdownStateSettingsUnique DellLRAThermalShutdownStateSettingsUnique +} + +lRAGlobalSettingsTable OBJECT-TYPE + SYNTAX SEQUENCE OF LRAGlobalSettingsTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1500.0010 This object defines the Local Response Agent (LRA) Global Settings +Table." + ::= { lraGroup 10 } +lRAGlobalSettingsTableEntry OBJECT-TYPE + SYNTAX LRAGlobalSettingsTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1500.0010.0001 This object defines the Local Response Agent (LRA) Global +Settings Table Entry." + INDEX { lRAGlobalchassisIndex } + ::= { lRAGlobalSettingsTable 1 } + +lRAGlobalchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1500.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { lRAGlobalSettingsTableEntry 1 } +lRAGlobalState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1500.0010.0001.0002 This attribute defines the state settings of the +Local Response Agent." + ::= { lRAGlobalSettingsTableEntry 2 } +lRAGlobalSettingsDisableTimeoutValue OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1500.0010.0001.0003 This attribute defines the timeout duration in seconds +that the Local Response Agent will be disabled after a machine shutdown and +reboot." + ::= { lRAGlobalSettingsTableEntry 3 } +lRAGlobalSettingsCapabilitiesUnique OBJECT-TYPE + SYNTAX DellLocalResponseAgentCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1500.0010.0001.0004 This attribute defines the global settings capabilities +that all Local Response Agents may or may not allow to be set or reset." + ::= { lRAGlobalSettingsTableEntry 4 } +lRAGlobalThermalShutdownCapabilitiesUnique OBJECT-TYPE + SYNTAX DellLRAThermalShutdownCapabilitiesUnique + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1500.0010.0001.0005 This attribute defines the thermal shutdown capabilities +of the Local Response Agent." + ::= { lRAGlobalSettingsTableEntry 5 } +lRAGlobalThermalShutdownStateSettingsUnique OBJECT-TYPE + SYNTAX DellLRAThermalShutdownStateSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1500.0010.0001.0006 This attribute defines the thermal shutdown settings +of the Local Response Agent." + ::= { lRAGlobalSettingsTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Local Response Agent (LRA) Action Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1500.20.1... +------------------------------------------------------------------------------- + +DellLocalResponseAgentSettingsUnique ::= INTEGER { + speakerControl(1), -- issue speaker beep + consoleAlert(2), -- issue console alert + broadcastMessage(4), -- issue broadcast message + osShutDown(8), -- issue operating system shutdown + reboot(16), -- issue system reboot + powerCycle(32), -- issue system power cycle + powerOFF(64), -- issue system power off + executeApplication(256), -- execute user-specified application + allLRASettingsUnique(383) -- all LRA settings +} + +LRAActionTableTableEntry ::= SEQUENCE { + lRAActionTablechassisIndex DellObjectRange, + lRAActionTableActionNumberIndex DellUnsigned16BitRange, + lRAActionTableUserApplicationName DisplayString (SIZE (0..256)), + lRAActionTableSettingsUnique DellLocalResponseAgentSettingsUnique +} + +lRAActionTableTable OBJECT-TYPE + SYNTAX SEQUENCE OF LRAActionTableTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1500.0020 This object defines the Local Response Agent (LRA) Action Table." + ::= { lraGroup 20 } +lRAActionTableTableEntry OBJECT-TYPE + SYNTAX LRAActionTableTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1500.0020.0001 This object defines the Local Response Agent (LRA) Action +Table Entry." + INDEX { lRAActionTablechassisIndex, + lRAActionTableActionNumberIndex } + ::= { lRAActionTableTable 1 } + +lRAActionTablechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1500.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { lRAActionTableTableEntry 1 } +lRAActionTableActionNumberIndex OBJECT-TYPE + SYNTAX DellUnsigned16BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1500.0020.0001.0002 This attribute defines the action number index +of the LRA action. The currently supported values are: + 160 temperature failure action definition + 168 cooling device failure action definition + 172 voltage failure action definition + 200 temperature warning action definition + 202 voltage warning action definition + 204 cooling device warning action definition + 206 amperage failure action definition + 208 amperage warning action definition + 210 redundancy unit redundancy lost action definition + 212 redundancy unit redundancy degraded action definition + 214 power supply failure action definition + 220 chassis intrusion action definition + 228 memory device noncritical action definition + 474 memory device critical action definition + 1006 automatic system recovery (ASR) action definition + 1353 power supply warning action definition + 1553 log near full action definition + 1554 log full action definition + 1603 processor warning action definition + 1604 processor failure action definition + 1703 battery warning action definition + 1704 battery failure action definition" + ::= { lRAActionTableTableEntry 2 } +lRAActionTableUserApplicationName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..256)) + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1500.0020.0001.0003 This attribute defines the name of the user application +executable path and file name to execute by the Local Response Agent if the +value executeApplication was set." + ::= { lRAActionTableTableEntry 3 } +lRAActionTableSettingsUnique OBJECT-TYPE + SYNTAX DellLocalResponseAgentSettingsUnique + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1500.0020.0001.0004 This attribute defines the settings for the LRA action." + ::= { lRAActionTableTableEntry 4 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600 +------------------------------------------------------------------------------- + + +DellCooOwnershipCodes ::= INTEGER { + other(1), -- ownership code is other than following values + unknown(2), -- ownership code is unknown + owned(3), -- ownership code is owned + leased(4), -- ownership code is leased + rented(5), -- ownership code is rented + offOfLease(6), -- ownership code is off of lease + transfer(7) -- ownership code is transfer +} +DellCooHourDayDurationType ::= INTEGER { + unknown(1), -- duration type is unknown + hours(2), -- duration type is hours + days(3) -- duration type is days +} +DellCooDayMonthDurationType ::= INTEGER { + unknown(1), -- duration type is unknown + days(3), -- duration type is days + months(4) -- duration type is months +} +DellCooMonthYearDurationType ::= INTEGER { + unknown(1), -- duration type is unknown + months(4), -- duration type is months + years(5) -- duration type is years +} + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.10.1.. +------------------------------------------------------------------------------- + +CooTableEntry ::= SEQUENCE { + coochassisIndex DellObjectRange, + cooState DellStateSettings, + cooAquisitionPurchaseCost DellUnsigned32BitRange, + cooAquisitionWayBillNumber DellUnsigned32BitRange, + cooAquisitionInstallDateName DellDateName, + cooAquisitionPurchaseOrder DellUnsigned32BitRange, + cooAquisitionPurchaseDateName DellDateName, + cooAquisitionSigningAuthorityName DellCostofOwnershipString, + cooOriginalMachineConfigurationExpensed DellBoolean, + cooOriginalMachineConfigurationVendorName DellCostofOwnershipString, + cooCostCenterInformationVendorName DellCostofOwnershipString, + cooUserInformationUserName DellCostofOwnershipString, + cooExtendedWarrantyStartDateName DellDateName, + cooExtendedWarrantyEndDateName DellDateName, + cooExtendedWarrantyCost DellUnsigned32BitRange, + cooExtendedWarrantyProviderName DellCostofOwnershipString, + cooOwnershipCode DellCooOwnershipCodes, + cooCorporateOwnerName DellCostofOwnershipString, + cooHazardousWasteCodeName DellCostofOwnershipString, + cooDeploymentDateLength DellUnsigned32BitRange, + cooDeploymentDurationType DellCooHourDayDurationType, + cooTrainingName DellCostofOwnershipString, + cooOutsourcingProblemDescriptionName DellCostofOwnershipString, + cooOutsourcingServiceFeeName DellCostofOwnershipString, + cooOutsourcingSigningAuthorityName DellCostofOwnershipString, + cooOutsourcingProviderFeeName DellCostofOwnershipString, + cooOutsourcingProviderServiceLevelName DellCostofOwnershipString, + cooInsuranceCompanyName DellCostofOwnershipString, + cooBoxAssetTagName DellCostofOwnershipString, + cooBoxSystemName DellCostofOwnershipString, + cooBoxCPUSerialNumberName DellCostofOwnershipString, + cooOperatingSystemUpgradeTypeName DellCostofOwnershipString, + cooOperatingSystemUpgradePatchLevelName DellCostofOwnershipString, + cooOperatingSystemUpgradeDate DellCostofOwnershipString, + cooDepreciationDuration DellUnsigned32BitRange, + cooDepreciationDurationType DellCooMonthYearDurationType, + cooDepreciationPercentage DellUnsigned32BitRange, + cooDepreciationMethodName DellCostofOwnershipString, + cooRegistrationIsRegistered DellBoolean +} + +cooTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0010 This object defines the Cost Of Ownership (COO) Table." + ::= { cooGroup 10 } +cooTableEntry OBJECT-TYPE + SYNTAX CooTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0010.0001 This object defines the Cost Of Ownership (COO) Table Entry." + INDEX { coochassisIndex } + ::= { cooTable 1 } + +coochassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooTableEntry 1 } +cooState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0002 This attribute defines the state settings of the +COO information." + ::= { cooTableEntry 2 } +cooAquisitionPurchaseCost OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0003 This attribute defines the purchase cost of the system." + ::= { cooTableEntry 3 } +cooAquisitionWayBillNumber OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0004 This attribute defines the waybill number of the system." + ::= { cooTableEntry 4 } +cooAquisitionInstallDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0005 This attribute defines the install date and time of the +system. Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooTableEntry 5 } +cooAquisitionPurchaseOrder OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0006 This attribute defines the purchase order number of the +system." + ::= { cooTableEntry 6 } +cooAquisitionPurchaseDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0007 This attribute defines the purchase date and time of the +system. Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooTableEntry 7 } +cooAquisitionSigningAuthorityName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0008 This attribute defines the name of the signing authority +for the system." + ::= { cooTableEntry 8 } +cooOriginalMachineConfigurationExpensed OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0009 This attribute defines if the purchase of the system +was expensed or not." + ::= { cooTableEntry 9 } +cooOriginalMachineConfigurationVendorName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0010 This attribute defines the name of the vendor of the +system." + ::= { cooTableEntry 10 } +cooCostCenterInformationVendorName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0011 This attribute defines the cost center name of the +system." + ::= { cooTableEntry 11 } +cooUserInformationUserName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0012 This attribute defines the name of the user of the +system." + ::= { cooTableEntry 12 } +cooExtendedWarrantyStartDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0013 This attribute defines the extended warranty start date +and time for the system. Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooTableEntry 13 } +cooExtendedWarrantyEndDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0014 This attribute defines the extended warranty end date +and time for the system. Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooTableEntry 14 } +cooExtendedWarrantyCost OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0015 This attribute defines the extended warranty cost +for the system." + ::= { cooTableEntry 15 } +cooExtendedWarrantyProviderName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0016 This attribute defines the name of the extended warranty +provider for the system." + ::= { cooTableEntry 16 } +cooOwnershipCode OBJECT-TYPE + SYNTAX DellCooOwnershipCodes + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0017 This attribute defines the ownership code for the system." + ::= { cooTableEntry 17 } +cooCorporateOwnerName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0018 This attribute defines the name of the corporate owner +of the system." + ::= { cooTableEntry 18 } +cooHazardousWasteCodeName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0019 This attribute defines the hazardous waste code name +for the system." + ::= { cooTableEntry 19 } +cooDeploymentDateLength OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0020 This attribute defines the deployment time length +for the system." + ::= { cooTableEntry 20 } +cooDeploymentDurationType OBJECT-TYPE + SYNTAX DellCooHourDayDurationType + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0021 This attribute defines the deployment duration time unit +for the Dell System." + ::= { cooTableEntry 21 } +cooTrainingName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0022 This attribute defines the training name for the system." + ::= { cooTableEntry 22 } +cooOutsourcingProblemDescriptionName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0023 This attribute defines the outsourcing problem description +for the system." + ::= { cooTableEntry 23 } +cooOutsourcingServiceFeeName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0024 This attribute defines the outsourcing service fee +for the system." + ::= { cooTableEntry 24 } +cooOutsourcingSigningAuthorityName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0025 This attribute defines the name of the person who has +signing authority for service." + ::= { cooTableEntry 25 } +cooOutsourcingProviderFeeName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0026 This attribute defines any additional outsourcing +charge for service." + ::= { cooTableEntry 26 } +cooOutsourcingProviderServiceLevelName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0027 This attribute defines the service level agreement +for service." + ::= { cooTableEntry 27 } +cooInsuranceCompanyName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0028 This attribute defines the name of the company +insuring the system." + ::= { cooTableEntry 28 } +cooBoxAssetTagName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0029 This attribute defines the name the system asset tag." + ::= { cooTableEntry 29 } +cooBoxSystemName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0030 This attribute defines the name of the system." + ::= { cooTableEntry 30 } +cooBoxCPUSerialNumberName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0031 This attribute defines the name of the CPU serial +number in the system." + ::= { cooTableEntry 31 } +cooOperatingSystemUpgradeTypeName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0032 This attribute defines the name the operating system +on the system." + ::= { cooTableEntry 32 } +cooOperatingSystemUpgradePatchLevelName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0033 This attribute defines the operating system patch level +of the system." + ::= { cooTableEntry 33 } +cooOperatingSystemUpgradeDate OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0034 This attribute defines the operating system upgrade date +of the system." + ::= { cooTableEntry 34 } +cooDepreciationDuration OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0035 This attribute defines the depreciation duration time +for the system." + ::= { cooTableEntry 35 } +cooDepreciationDurationType OBJECT-TYPE + SYNTAX DellCooMonthYearDurationType + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0036 This attribute defines the depreciation duration time +unit for the system." + ::= { cooTableEntry 36 } +cooDepreciationPercentage OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0037 This attribute defines the percentage of depreciation +for the system." + ::= { cooTableEntry 37 } +cooDepreciationMethodName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0038 This attribute defines the method of Depreciation +for the system." + ::= { cooTableEntry 38 } +cooRegistrationIsRegistered OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0010.0001.0039 This attribute defines if the system is registered +or not." + ::= { cooTableEntry 39 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Service Contract Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.20.1... +------------------------------------------------------------------------------- + +CooServiceContractTableEntry ::= SEQUENCE { + cooServiceContractchassisIndex DellObjectRange, + cooServiceContractIndex DellObjectRange, + cooServiceContractState DellStateSettings, + cooServiceContractWasRenewed DellBoolean, + cooServiceContractTypeName DellCostofOwnershipString, + cooServiceContractVendorName DellCostofOwnershipString +} + +cooServiceContractTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooServiceContractTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0020 This object defines the Cost Of Ownership (COO) Service Contract +Table." + ::= { cooGroup 20 } +cooServiceContractTableEntry OBJECT-TYPE + SYNTAX CooServiceContractTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0020.0001 This object defines the Cost Of Ownership (COO) Service +Contract Table Entry." + INDEX { cooServiceContractchassisIndex, + cooServiceContractIndex } + ::= { cooServiceContractTable 1 } + +cooServiceContractchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooServiceContractTableEntry 1 } +cooServiceContractIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0020.0001.0002 This attribute defines the index (one based) of the +COO service contract." + ::= { cooServiceContractTableEntry 2 } +cooServiceContractState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0020.0001.0003 This attribute defines the state settings of the +COO service contract." + ::= { cooServiceContractTableEntry 3 } +cooServiceContractWasRenewed OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0020.0001.0004 This attribute defines if the COO service contract +was renewed not." + ::= { cooServiceContractTableEntry 4 } +cooServiceContractTypeName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0020.0001.0005 This attribute defines the name of the type of +COO service contract." + ::= { cooServiceContractTableEntry 5 } +cooServiceContractVendorName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0020.0001.0006 This attribute defines the name of the provider of the +COO service contract." + ::= { cooServiceContractTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Cost Event Log Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.30.1... +------------------------------------------------------------------------------- + +CooCostEventLogTableEntry ::= SEQUENCE { + cooCostEventLogchassisIndex DellObjectRange, + cooCostEventLogIndex DellObjectRange, + cooCostEventLogState DellStateSettings, + cooCostEventLogDuration DellUnsigned32BitRange, + cooCostEventLogDurationType DellCooHourDayDurationType, + cooCostEventLogDescriptionName DellCostofOwnershipString +} + +cooCostEventLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooCostEventLogTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0030 This object defines the Cost Of Ownership (COO) Cost Event Log +Table." + ::= { cooGroup 30 } +cooCostEventLogTableEntry OBJECT-TYPE + SYNTAX CooCostEventLogTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0030.0001 This object defines the Cost Of Ownership (COO) Cost Event +Log Table Entry." + INDEX { cooCostEventLogchassisIndex, + cooCostEventLogIndex } + ::= { cooCostEventLogTable 1 } + +cooCostEventLogchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooCostEventLogTableEntry 1 } +cooCostEventLogIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0030.0001.0002 This attribute defines the index (one based) of the +COO cost event log entry." + ::= { cooCostEventLogTableEntry 2 } +cooCostEventLogState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0030.0001.0003 This attribute defines the state settings of the +COO cost event log entry." + ::= { cooCostEventLogTableEntry 3 } +cooCostEventLogDuration OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0030.0001.0004 This attribute defines the duration of the +COO cost event." + ::= { cooCostEventLogTableEntry 4 } +cooCostEventLogDurationType OBJECT-TYPE + SYNTAX DellCooHourDayDurationType + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0030.0001.0005 This attribute defines the duration type of the +COO cost event." + ::= { cooCostEventLogTableEntry 5 } +cooCostEventLogDescriptionName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0030.0001.0006 This attribute defines the description of the +COO cost event." + ::= { cooCostEventLogTableEntry 6 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Warranty Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.40.1... +------------------------------------------------------------------------------- + +CooWarrantyTableEntry ::= SEQUENCE { + cooWarrantychassisIndex DellObjectRange, + cooWarrantyIndex DellObjectRange, + cooWarrantyState DellStateSettings, + cooWarrantyDuration DellUnsigned32BitRange, + cooWarrantyDurationType DellCooDayMonthDurationType, + cooWarrantyEndDateName DellDateName, + cooWarrantyCost DellUnsigned32BitRange +} + +cooWarrantyTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooWarrantyTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0040 This object defines the Cost Of Ownership (COO) Warranty Table." + ::= { cooGroup 40 } +cooWarrantyTableEntry OBJECT-TYPE + SYNTAX CooWarrantyTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0040.0001 This object defines the Cost Of Ownership (COO) Warranty +Table Entry." + INDEX { cooWarrantychassisIndex, + cooWarrantyIndex } + ::= { cooWarrantyTable 1 } + +cooWarrantychassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0040.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooWarrantyTableEntry 1 } +cooWarrantyIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0040.0001.0002 This attribute defines the index (one based) of the +COO warranty." + ::= { cooWarrantyTableEntry 2 } +cooWarrantyState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0040.0001.0003 This attribute defines the state settings of the +COO warranty." + ::= { cooWarrantyTableEntry 3 } +cooWarrantyDuration OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0040.0001.0004 This attribute defines the duration of the COO warranty." + ::= { cooWarrantyTableEntry 4 } +cooWarrantyDurationType OBJECT-TYPE + SYNTAX DellCooDayMonthDurationType + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0040.0001.0005 This attribute defines the duration type of the +COO warranty." + ::= { cooWarrantyTableEntry 5 } +cooWarrantyEndDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0040.0001.0006 This attribute defines the end date of the COO warranty. +Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooWarrantyTableEntry 6 } +cooWarrantyCost OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0040.0001.0007 This attribute defines the cost of the COO warranty." + ::= { cooWarrantyTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Lease Information Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.50.1... +------------------------------------------------------------------------------- + +CooLeaseInformationTableEntry ::= SEQUENCE { + cooLeaseInformationchassisIndex DellObjectRange, + cooLeaseInformationIndex DellObjectRange, + cooLeaseInformationState DellStateSettings, + cooLeaseInformationMultipleSchedules DellBoolean, + cooLeaseInformationBuyOutAmount DellUnsigned32BitRange, + cooLeaseInformationLeaseRateFactor DellUnsigned32BitRange, + cooLeaseInformationEndDateName DellDateName, + cooLeaseInformationFairMarketValue DellUnsigned32BitRange, + cooLeaseInformationLessorName DellCostofOwnershipString +} + +cooLeaseInformationTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooLeaseInformationTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0050 This object defines the Cost Of Ownership (COO) Lease Information +Table." + ::= { cooGroup 50 } +cooLeaseInformationTableEntry OBJECT-TYPE + SYNTAX CooLeaseInformationTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0050.0001 This object defines the Cost Of Ownership (COO) Lease +Information Table Entry." + INDEX { cooLeaseInformationchassisIndex, + cooLeaseInformationIndex } + ::= { cooLeaseInformationTable 1 } + +cooLeaseInformationchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooLeaseInformationTableEntry 1 } +cooLeaseInformationIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0002 This attribute defines the index (one based) of the +COO lease information." + ::= { cooLeaseInformationTableEntry 2 } +cooLeaseInformationState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0003 This attribute defines the state settings of the +COO lease information." + ::= { cooLeaseInformationTableEntry 3 } +cooLeaseInformationMultipleSchedules OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0004 This attribute defines if there are multiple schedules +for this lease." + ::= { cooLeaseInformationTableEntry 4 } +cooLeaseInformationBuyOutAmount OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0005 This attribute defines buy out amount for this lease." + ::= { cooLeaseInformationTableEntry 5 } +cooLeaseInformationLeaseRateFactor OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0006 This attribute defines the rate factor for this lease." + ::= { cooLeaseInformationTableEntry 6 } +cooLeaseInformationEndDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0007 This attribute defines the end date for this lease. +Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooLeaseInformationTableEntry 7 } +cooLeaseInformationFairMarketValue OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0008 This attribute defines the fair market value +for this lease." + ::= { cooLeaseInformationTableEntry 8 } +cooLeaseInformationLessorName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0050.0001.0009 This attribute defines the name of the lessor +for this lease." + ::= { cooLeaseInformationTableEntry 9 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Schedule Number Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.60.1... +------------------------------------------------------------------------------- + +CooScheduleNumberTableEntry ::= SEQUENCE { + cooScheduleNumberchassisIndex DellObjectRange, + cooScheduleNumberIndex DellObjectRange, + cooScheduleNumberState DellStateSettings, + cooScheduleNumberLeaseInformationIndexReference DellUnsigned32BitRange, + cooScheduleNumberDescriptionName DellCostofOwnershipString +} + +cooScheduleNumberTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooScheduleNumberTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0060 This object defines the Cost Of Ownership (COO) Schedule Number +Table." + ::= { cooGroup 60 } +cooScheduleNumberTableEntry OBJECT-TYPE + SYNTAX CooScheduleNumberTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0060.0001 This object defines the Cost Of Ownership (COO) Schedule Number +Table Entry." + INDEX { cooScheduleNumberchassisIndex, + cooScheduleNumberIndex } + ::= { cooScheduleNumberTable 1 } + +cooScheduleNumberchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0060.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooScheduleNumberTableEntry 1 } +cooScheduleNumberIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0060.0001.0002 This attribute defines the index (one based) of the +COO schedule number." + ::= { cooScheduleNumberTableEntry 2 } +cooScheduleNumberState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0060.0001.0003 This attribute defines the state settings of the +COO schedule number." + ::= { cooScheduleNumberTableEntry 3 } +cooScheduleNumberLeaseInformationIndexReference OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0060.0001.0004 This attribute defines the index (one based) of the +COO lease information associated with the COO schedule number." + ::= { cooScheduleNumberTableEntry 4 } +cooScheduleNumberDescriptionName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0060.0001.0005 This attribute defines the description of the +COO schedule number." + ::= { cooScheduleNumberTableEntry 5 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Options Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.70.1... +------------------------------------------------------------------------------- + +CooOptionsTableEntry ::= SEQUENCE { + cooOptionschassisIndex DellObjectRange, + cooOptionsIndex DellObjectRange, + cooOptionsState DellStateSettings, + cooOptionsLeaseInformationIndexReference DellUnsigned32BitRange, + cooOptionsDescriptionName DellCostofOwnershipString +} + +cooOptionsTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooOptionsTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0070 This object defines the Cost Of Ownership (COO) Options Table." + ::= { cooGroup 70 } +cooOptionsTableEntry OBJECT-TYPE + SYNTAX CooOptionsTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0070.0001 This object defines the Cost Of Ownership (COO) Options Table +Entry." + INDEX { cooOptionschassisIndex, + cooOptionsIndex } + ::= { cooOptionsTable 1 } + +cooOptionschassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0070.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooOptionsTableEntry 1 } +cooOptionsIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0070.0001.0002 This attribute defines the index (one based) of the +COO options." + ::= { cooOptionsTableEntry 2 } +cooOptionsState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0070.0001.0003 This attribute defines the state settings of the +COO options." + ::= { cooOptionsTableEntry 3 } +cooOptionsLeaseInformationIndexReference OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0070.0001.0004 This attribute defines the index (one based) of the +COO lease information associated with the COO options." + ::= { cooOptionsTableEntry 4 } +cooOptionsDescriptionName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0070.0001.0005 This attribute defines the description of the +COO options." + ::= { cooOptionsTableEntry 5 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Maintenance Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.80.1... +------------------------------------------------------------------------------- + +CooMaintenanceTableEntry ::= SEQUENCE { + cooMaintenancechassisIndex DellObjectRange, + cooMaintenanceIndex DellObjectRange, + cooMaintenanceState DellStateSettings, + cooMaintenanceStartDateName DellDateName, + cooMaintenanceEndDateName DellDateName, + cooMaintenanceProviderName DellCostofOwnershipString, + cooMaintenanceRestrictionsName DellCostofOwnershipString +} + +cooMaintenanceTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooMaintenanceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0080 This object defines the Cost Of Ownership (COO) Maintenance Table." + ::= { cooGroup 80 } +cooMaintenanceTableEntry OBJECT-TYPE + SYNTAX CooMaintenanceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0080.0001 This object defines the Cost Of Ownership (COO) Maintenance +Table Entry." + INDEX { cooMaintenancechassisIndex, + cooMaintenanceIndex } + ::= { cooMaintenanceTable 1 } + +cooMaintenancechassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0080.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooMaintenanceTableEntry 1 } +cooMaintenanceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0080.0001.0002 This attribute defines the index (one based) of the +COO maintenance." + ::= { cooMaintenanceTableEntry 2 } +cooMaintenanceState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0080.0001.0003 This attribute defines the state settings of the +COO maintenance." + ::= { cooMaintenanceTableEntry 3 } +cooMaintenanceStartDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0080.0001.0004 This attribute defines the start date of the +COO maintenance. Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooMaintenanceTableEntry 4 } +cooMaintenanceEndDateName OBJECT-TYPE + SYNTAX DellDateName + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0080.0001.0005 This attribute defines the end date of the +COO maintenance. Dates are defined in the ASCII format: + yyyyMMddhhmmss.uuuuuu+fff or yyyyMMddhhmmss.uuuuuu-fff +where yyyy is the year, MM is the month, dd is the day, hh are the hours, +mm are the minutes, ss are the seconds, uuuuuu are the microseconds and ++fff or -fff is the offset from UTC in minutes." + ::= { cooMaintenanceTableEntry 5 } +cooMaintenanceProviderName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0080.0001.0006 This attribute defines the name of the provider of the +COO maintenance." + ::= { cooMaintenanceTableEntry 6 } +cooMaintenanceRestrictionsName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0080.0001.0007 This attribute defines the text of the maintenance +agreement restrictions." + ::= { cooMaintenanceTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Repair Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.90.1... +------------------------------------------------------------------------------- + +CooRepairTableEntry ::= SEQUENCE { + cooRepairchassisIndex DellObjectRange, + cooRepairIndex DellObjectRange, + cooRepairState DellStateSettings, + cooRepairCounter DellUnsigned32BitRange, + cooRepairVendorName DellCostofOwnershipString +} + +cooRepairTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooRepairTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0090 This object defines the Cost Of Ownership (COO) Repair Table." + ::= { cooGroup 90 } +cooRepairTableEntry OBJECT-TYPE + SYNTAX CooRepairTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0090.0001 This object defines the Cost Of Ownership (COO) Repair Table +Entry." + INDEX { cooRepairchassisIndex, + cooRepairIndex } + ::= { cooRepairTable 1 } + +cooRepairchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0090.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooRepairTableEntry 1 } +cooRepairIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0090.0001.0002 This attribute defines the index (one based) of the +COO repair." + ::= { cooRepairTableEntry 2 } +cooRepairState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0090.0001.0003 This attribute defines the state setting of the +COO repair." + ::= { cooRepairTableEntry 3 } +cooRepairCounter OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0090.0001.0004 This attribute defines the number of repairs this +system has had." + ::= { cooRepairTableEntry 4 } +cooRepairVendorName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0090.0001.0005 This attribute defines the repair vendors's name." + ::= { cooRepairTableEntry 5 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Support Information Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.100.1... +------------------------------------------------------------------------------- + +CooSupportInformationTableEntry ::= SEQUENCE { + cooSupportInformationchassisIndex DellObjectRange, + cooSupportInformationIndex DellObjectRange, + cooSupportInformationState DellStateSettings, + cooSupportInformationIsOutsourced DellBoolean, + cooSupportInformationType DellUnsigned32BitRange, + cooSupportInformationHelpDeskName DellCostofOwnershipString, + cooSupportInformationFixTypeName DellCostofOwnershipString +} + +cooSupportInformationTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooSupportInformationTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0100 This object defines the Cost Of Ownership (COO) Support +Information Table." + ::= { cooGroup 100 } +cooSupportInformationTableEntry OBJECT-TYPE + SYNTAX CooSupportInformationTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0100.0001 This object defines the Cost Of Ownership (COO) Support +Information Table Entry." + INDEX { cooSupportInformationchassisIndex, + cooSupportInformationIndex } + ::= { cooSupportInformationTable 1 } + +cooSupportInformationchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0100.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooSupportInformationTableEntry 1 } +cooSupportInformationIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0100.0001.0002 This attribute defines the index (one based) of the +COO support information." + ::= { cooSupportInformationTableEntry 2 } +cooSupportInformationState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0100.0001.0003 This attribute defines the state setting of the +COO support information." + ::= { cooSupportInformationTableEntry 3 } +cooSupportInformationIsOutsourced OBJECT-TYPE + SYNTAX DellBoolean + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0100.0001.0004 This attribute defines if support is outsourced or not." + ::= { cooSupportInformationTableEntry 4 } +cooSupportInformationType OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0100.0001.0005 This attribute defines the type of the conmponent, +system or network problem that occurred." + ::= { cooSupportInformationTableEntry 5 } +cooSupportInformationHelpDeskName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0100.0001.0006 This attribute defines the help desk support +information provided." + ::= { cooSupportInformationTableEntry 6 } +cooSupportInformationFixTypeName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0100.0001.0007 This attribute defines the method used to fix +the problem." + ::= { cooSupportInformationTableEntry 7 } + + +------------------------------------------------------------------------------- +-- Cost Of Ownership (COO) Trouble Ticket Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1600.110.1... +------------------------------------------------------------------------------- + +CooTroubleTicketTableEntry ::= SEQUENCE { + cooTroubleTicketchassisIndex DellObjectRange, + cooTroubleTicketIndex DellObjectRange, + cooTroubleTicketState DellStateSettings, + cooTroubleTicketSupportInformationIndexReference DellUnsigned32BitRange, + cooTroubleTicketNumberName DellCostofOwnershipString +} + +cooTroubleTicketTable OBJECT-TYPE + SYNTAX SEQUENCE OF CooTroubleTicketTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0110 This object defines the Cost Of Ownership (COO) Trouble Ticket +Table." + ::= { cooGroup 110 } +cooTroubleTicketTableEntry OBJECT-TYPE + SYNTAX CooTroubleTicketTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1600.0110.0001 This object defines the Cost Of Ownership (COO) Trouble Ticket +Table Entry." + INDEX { cooTroubleTicketchassisIndex, + cooTroubleTicketIndex } + ::= { cooTroubleTicketTable 1 } + +cooTroubleTicketchassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0110.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { cooTroubleTicketTableEntry 1 } +cooTroubleTicketIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0110.0001.0002 This attribute defines the index (one based) of the +COO trouble ticket." + ::= { cooTroubleTicketTableEntry 2 } +cooTroubleTicketState OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1600.0110.0001.0003 This attribute defines the state settings of the +COO trouble ticket." + ::= { cooTroubleTicketTableEntry 3 } +cooTroubleTicketSupportInformationIndexReference OBJECT-TYPE + SYNTAX DellUnsigned32BitRange + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0110.0001.0004 This attribute defines the index (one based) of the +COO support information associated with the COO trouble ticket." + ::= { cooTroubleTicketTableEntry 4 } +cooTroubleTicketNumberName OBJECT-TYPE + SYNTAX DellCostofOwnershipString + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1600.0110.0001.0005 This attribute defines the name of the +COO trouble ticket." + ::= { cooTroubleTicketTableEntry 5 } + + +------------------------------------------------------------------------------- +-- Remote Access Group (in another MIB file) +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1700 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Cluster Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1800 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Cluster Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1800.10.1... +------------------------------------------------------------------------------- + +DellClusterType ::= INTEGER { + unknown(1), -- cluster type is unknown + highAvailabilityCluster(2) -- cluster type is High Availability Cluster +} + +ClusterTableEntry ::= SEQUENCE { + clusterChassisIndex DellObjectRange, + clusterIndex DellObjectRange, + clusterStateCapabilities DellStateCapabilities, + clusterStateSettings DellStateSettings, + clusterStatus DellStatus, + clusterType DellClusterType, + clusterTypeDescriptionName DellString, + clusterName DellString +} + +clusterTable OBJECT-TYPE + SYNTAX SEQUENCE OF ClusterTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1800.0010 This object defines the Cluster Table." + ::= { clusterGroup 10 } +clusterTableEntry OBJECT-TYPE + SYNTAX ClusterTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1800.0010.0001 This object defines the Cluster Table Entry." + INDEX { clusterChassisIndex, + clusterIndex } + ::= { clusterTable 1 } + +clusterChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { clusterTableEntry 1 } +clusterIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0002 This attribute defines the index (one based) of the +cluster." + ::= { clusterTableEntry 2 } +clusterStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0003 This attribute defines the state capabilities of the +cluster." + ::= { clusterTableEntry 3 } +clusterStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0004 This attribute defines the state settings of the + cluster." + ::= { clusterTableEntry 4 } +clusterStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0005 This attribute defines the status of the cluster." + ::= { clusterTableEntry 5 } +clusterType OBJECT-TYPE + SYNTAX DellClusterType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0006 This attribute defines the type of the cluster." + ::= { clusterTableEntry 6 } +clusterTypeDescriptionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0007 This attribute defines the description name for the +type of the cluster." + ::= { clusterTableEntry 7 } +clusterName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1800.0010.0001.0008 This attribute defines the name of the cluster." + ::= { clusterTableEntry 8 } + + +------------------------------------------------------------------------------- +-- Baseboard Management Controller (BMC) Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1900 +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Baseboard Management Controller (BMC) Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1900.10.1... +------------------------------------------------------------------------------- + +DellManagementControllerType ::= INTEGER { + -- legacyBMC(0), - type is legacy Baseboard Management Controller + iDRAC(8), -- type is Integrated Dell Remote Access Controller + iDRAC6(10), -- type is Integrated Dell Remote Access Controller 6 + iDRAC6Modular(11), -- type is Integrated Dell Remote Access Controller 6 (Modular) + iDRAC6BMC(13) -- type is Integrated Dell Remote Access Controller 6 (BMC mode) +} + +BmcTableEntry ::= SEQUENCE { + bmcChassisIndex DellObjectRange, + bmcIndex DellObjectRange, + bmcStateCapabilities DellStateCapabilities, + bmcStateSettings DellStateSettings, + bmcStatus DellStatus, + bmcDisplayName DellString, + bmcDescriptionName DisplayString (SIZE (0..255)), + bmcIPMIVersionName DellString, + bmcGUID OCTET STRING (SIZE(16)), + bmcType DellManagementControllerType, + bmcModuleName DellString, + bmcIPv4URLName DisplayString (SIZE (0..1024)), + bmcIPv6URLName DisplayString (SIZE (0..1024)) +} + +bmcTable OBJECT-TYPE + SYNTAX SEQUENCE OF BmcTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1900.0010 This object defines the Baseboard Management Controller (BMC) +Table." + ::= { bmcGroup 10 } +bmcTableEntry OBJECT-TYPE + SYNTAX BmcTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1900.0010.0001 This object defines the Baseboard Management Controller (BMC) +Table Entry." + INDEX { bmcChassisIndex, + bmcIndex } + ::= { bmcTable 1 } + +bmcChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { bmcTableEntry 1 } +bmcIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0002 This attribute defines the index (one based) of the BMC." + ::= { bmcTableEntry 2 } +bmcStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0003 This attribute defines the state capabilities of the BMC." + ::= { bmcTableEntry 3 } +bmcStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0004 This attribute defines the state settings of the BMC." + ::= { bmcTableEntry 4 } +bmcStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0005 This attribute defines the status of the BMC." + ::= { bmcTableEntry 5 } +bmcDisplayName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0006 This attribute defines the display name of the BMC." + ::= { bmcTableEntry 6 } +bmcDescriptionName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0007 This attribute defines the description of the BMC." + ::= { bmcTableEntry 7 } +bmcIPMIVersionName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0008 This attribute defines the version of the +Intelligent Platform Management Interface (IPMI) specification +that the BMC supports." + ::= { bmcTableEntry 8 } +bmcGUID OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0009 This attribute defines the Globally Unique ID (GUID) +of the BMC." + ::= { bmcTableEntry 9 } +bmcType OBJECT-TYPE + SYNTAX DellManagementControllerType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.00010 This attribute defines the type of the BMC." + ::= { bmcTableEntry 10 } +bmcModuleName OBJECT-TYPE + SYNTAX DellString + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0011 This attribute defines the module name for the BMC. +The module name is present only on certain systems such as blade systems." + ::= { bmcTableEntry 11 } +bmcIPv4URLName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0012 This attribute defines the IPv4 URL for the BMC. +The URL is not present on all systems." + ::= { bmcTableEntry 12 } +bmcIPv6URLName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0010.0001.0013 This attribute defines the IPv6 URL for the BMC. +The URL is not present on all systems." + ::= { bmcTableEntry 13 } + + +------------------------------------------------------------------------------- +-- Baseboard Management Controller (BMC) Serial Interface Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1900.20.1.... +------------------------------------------------------------------------------- + +DellBMCSerialConnectionModeCapabilities ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- none(0), - no mode capabilities + modemBasic(1), -- Modem Basic mode capable + modemPPP(2), -- Modem PPP mode capable + modemTerminal(4), -- Modem Terminal mode capable + directBasic(8), -- Direct Basic mode capable + directPPP(16), -- Direct PPP mode capable + directTerminal(32) -- Direct Terminal mode capable +} +DellBMCSerialConnectionModeSettings ::= INTEGER { + -- Note: These values are bit masks, so combination values are possible. + -- none(0), - no modes enabled + modemBasic(1), -- Modem Basic mode enabled + modemPPP(2), -- Modem PPP mode enabled + modemTerminal(4), -- Modem Terminal mode enabled + directBasic(8), -- Direct Basic mode enabled + directPPP(16), -- Direct PPP mode enabled + directTerminal(32) -- Direct Terminal mode enabled +} +DellBMCSerialFlowControlType ::= INTEGER { + -- none(0), - no flow control used + rtsCts(1), -- RTS/CTS (hardware) flow control + xonXoff(2) -- XON/XOFF flow control +} +DellBMCSerialBitRateType ::= INTEGER { + bps9600(6), -- 9600 bps (bits per second) + bps19200(7), -- 19200 bps + bps38400(8), -- 38400 bps + bps57600(9), -- 57600 bps + bps115200(10) -- 115200 bps +} + +BmcSerialInterfaceTableEntry ::= SEQUENCE { + bmcSerialInterfaceChassisIndex DellObjectRange, + bmcSerialInterfaceBMCIndex DellObjectRange, + bmcSerialInterfaceIndex DellObjectRange, + bmcSerialInterfaceStateCapabilities DellStateCapabilities, + bmcSerialInterfaceStateSettings DellStateSettings, + bmcSerialInterfaceStatus DellStatus, + bmcSerialInterfaceChannelNumber DellUnsigned8BitRange, + bmcSerialInterfaceConnectionModeCapabilities DellBMCSerialConnectionModeCapabilities, + bmcSerialInterfaceConnectionModeSettings DellBMCSerialConnectionModeSettings, + bmcSerialInterfaceFlowControl DellBMCSerialFlowControlType, + bmcSerialInterfaceBitRate DellBMCSerialBitRateType +} + +bmcSerialInterfaceTable OBJECT-TYPE + SYNTAX SEQUENCE OF BmcSerialInterfaceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1900.0020 This object defines the Baseboard Management Controller (BMC) +Serial Interface Table." + ::= { bmcGroup 20 } +bmcSerialInterfaceTableEntry OBJECT-TYPE + SYNTAX BmcSerialInterfaceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1900.0020.0001 This object defines the Baseboard Management Controller (BMC) +Serial Interface Table Entry." + INDEX { bmcSerialInterfaceChassisIndex, + bmcSerialInterfaceBMCIndex, + bmcSerialInterfaceIndex } + ::= { bmcSerialInterfaceTable 1 } + +bmcSerialInterfaceChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { bmcSerialInterfaceTableEntry 1 } +bmcSerialInterfaceBMCIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0002 This attribute defines the index (one based) of the +assoiciated BMC." + ::= { bmcSerialInterfaceTableEntry 2 } +bmcSerialInterfaceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0003 This attribute defines the index (one based) of the +BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 3 } +bmcSerialInterfaceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0004 This attribute defines the state capabilities of the +BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 4 } +bmcSerialInterfaceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0005 This attribute defines the state settings of the +BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 5 } +bmcSerialInterfaceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0006 This attribute defines the status of the +BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 6 } +bmcSerialInterfaceChannelNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0007 This attribute defines the BMC channel number of the +BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 7 } +bmcSerialInterfaceConnectionModeCapabilities OBJECT-TYPE + SYNTAX DellBMCSerialConnectionModeCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0008 This attribute defines the connection mode capabilities +of the BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 8 } +bmcSerialInterfaceConnectionModeSettings OBJECT-TYPE + SYNTAX DellBMCSerialConnectionModeSettings + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0009 This attribute defines the connection mode settings +of the BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 9 } +bmcSerialInterfaceFlowControl OBJECT-TYPE + SYNTAX DellBMCSerialFlowControlType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0010 This attribute defines the flow control type of the +BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 10 } +bmcSerialInterfaceBitRate OBJECT-TYPE + SYNTAX DellBMCSerialBitRateType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0020.0001.0011 This attribute defines the bit rate of the +BMC serial interface." + ::= { bmcSerialInterfaceTableEntry 11 } + + +------------------------------------------------------------------------------- +-- Baseboard Management Controller (BMC) LAN Interface Table +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.1900.30.1.... +------------------------------------------------------------------------------- + +DellBMCLANIPAddressSourceType ::= INTEGER { + -- unspecified(0), - source is unspecified + static(1), -- static IP address + dhcp(2), -- DHCP used to obtain IP address + biosOrSystemSoftware(3), -- BIOS or system software provided IP Address + other(4) -- other protocol used to obtain IP address +} + +BmcLANInterfaceTableEntry ::= SEQUENCE { + bmcLANInterfaceChassisIndex DellObjectRange, + bmcLANInterfaceBMCIndex DellObjectRange, + bmcLANInterfaceIndex DellObjectRange, + bmcLANInterfaceStateCapabilities DellStateCapabilities, + bmcLANInterfaceStateSettings DellStateSettings, + bmcLANInterfaceStatus DellStatus, + bmcLANInterfaceChannelNumber DellUnsigned8BitRange, + bmcLANInterfaceIPAddressSource DellBMCLANIPAddressSourceType, + bmcLANInterfaceIPAddress IpAddress, + bmcLANInterfaceSubnetMaskAddress IpAddress, + bmcLANInterfaceDefaultGatewayAddress IpAddress, + bmcLANInterfaceMACAddress DellMACAddress, + bmcLANInterfaceAlertCommunityName DisplayString (SIZE (0..32)) +} + +bmcLANInterfaceTable OBJECT-TYPE + SYNTAX SEQUENCE OF BmcLANInterfaceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1900.0030 This object defines the Baseboard Management Controller (BMC) +LAN Interface Table." + ::= { bmcGroup 30 } +bmcLANInterfaceTableEntry OBJECT-TYPE + SYNTAX BmcLANInterfaceTableEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION +"1900.0030.0001 This object defines the Baseboard Management Controller (BMC) +LAN Interface Table Entry." + INDEX { bmcLANInterfaceChassisIndex, + bmcLANInterfaceBMCIndex, + bmcLANInterfaceIndex } + ::= { bmcLANInterfaceTable 1 } + +bmcLANInterfaceChassisIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0001 This attribute defines the index (one based) of the +associated chassis." + ::= { bmcLANInterfaceTableEntry 1 } +bmcLANInterfaceBMCIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0002 This attribute defines the index (one based) of the +assoiciated BMC." + ::= { bmcLANInterfaceTableEntry 2 } +bmcLANInterfaceIndex OBJECT-TYPE + SYNTAX DellObjectRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0003 This attribute defines the index (one based) of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 3 } +bmcLANInterfaceStateCapabilities OBJECT-TYPE + SYNTAX DellStateCapabilities + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0004 This attribute defines the state capabilities of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 4 } +bmcLANInterfaceStateSettings OBJECT-TYPE + SYNTAX DellStateSettings + ACCESS read-write + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0005 This attribute defines the state settings of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 5 } +bmcLANInterfaceStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0006 This attribute defines the status of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 6 } +bmcLANInterfaceChannelNumber OBJECT-TYPE + SYNTAX DellUnsigned8BitRange + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0007 This attribute defines the BMC channel number of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 7 } +bmcLANInterfaceIPAddressSource OBJECT-TYPE + SYNTAX DellBMCLANIPAddressSourceType + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0008 This attribute defines the source type of the +IP address of the BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 8 } +bmcLANInterfaceIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0009 This attribute defines the IP address of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 9 } +bmcLANInterfaceSubnetMaskAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0010 This attribute defines the subnet mask of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 10 } +bmcLANInterfaceDefaultGatewayAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0011 This attribute defines the IP address of the +default gateway for the BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 11 } +bmcLANInterfaceMACAddress OBJECT-TYPE + SYNTAX DellMACAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0012 This attribute defines the MAC address of the +BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 12 } +bmcLANInterfaceAlertCommunityName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"1900.0030.0001.0013 This attribute defines the SNMP community used for +BMC LAN alerts (traps) sent on the BMC LAN interface." + ::= { bmcLANInterfaceTableEntry 13 } + + +------------------------------------------------------------------------------- +-- Alert Group +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.5000 +------------------------------------------------------------------------------- + +alertVariables OBJECT IDENTIFIER ::= { alertGroup 10 } + + +------------------------------------------------------------------------------- +-- Alert Variables +-- +-- OID Format: 1.3.6.1.4.1.674.10892.1.5000.10..0 +------------------------------------------------------------------------------- + +alertSystem OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"5000.0010.0001 Name of the system generating the alert." + ::= { alertVariables 1 } +alertTableIndexOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION +"5000.0010.0002 OID for the index attribute in the table that contains the object +causing the alert. This value can be used to uniquely identify the object +causing the alert and to correlate different alerts caused by an object. +If not applicable, the value will be 0.0." + ::= { alertVariables 2 } +alertMessage OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"5000.0010.0003 Message describing the alert." + ::= { alertVariables 3 } +alertCurrentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"5000.0010.0004 Current status of object causing the alert." + ::= { alertVariables 4 } +alertPreviousStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION +"5000.0010.0005 Previous status of object causing the alert." + ::= { alertVariables 5 } +alertData OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + ACCESS read-only + STATUS mandatory + DESCRIPTION +"5000.0010.0006 Alert data." + ::= { alertVariables 6 } + + +------------------------------------------------------------------------------- +-- +-- Traps +-- +------------------------------------------------------------------------------- + + +------------------------------------------------------------------------------- +-- Miscellaneous Traps +------------------------------------------------------------------------------- + +alertSystemUp TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Server Administrator has completed its initialization." + + --Novell NMS trap annotation + --#TYPE "Server Administrator Startup Complete" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1001 + +alertThermalShutdown TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Thermal shutdown protection has been initiated." + + --Novell NMS trap annotation + --#TYPE "Server Thermal Shutdown" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE NONOPERATIONAL + + ::= 1004 + +alertAutomaticSystemRecovery TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Automatic system recovery (ASR) was performed." + + --Novell NMS trap annotation + --#TYPE "Server Automatic System Recovery" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1006 + +alertUserHostSystemReset TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"User has initiated host system reset." + + --Novell NMS trap annotation + --#TYPE "Server User Host System Reset" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1007 + +alertSystemPeakPowerNewPeak TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"System peak power sensor has detected a new peak value." + + --Novell NMS trap annotation + --#TYPE "Server System Peak Power New Peak" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1013 + +------------------------------------------------------------------------------- +-- Temperature Probe Traps +------------------------------------------------------------------------------- + +alertTemperatureProbeNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Temperature probe has returned to a normal value." + + --Novell NMS trap annotation + --#TYPE "Server Temperature Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1052 + +alertTemperatureProbeWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Temperature probe has detected a warning value." + + --Novell NMS trap annotation + --#TYPE "Server Temperature Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1053 + +alertTemperatureProbeFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Temperature probe has detected a failure value." + + --Novell NMS trap annotation + --#TYPE "Server Temperature Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1054 + +alertTemperatureProbeNonRecoverable TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Temperature probe has detected a non-recoverable value." + + --Novell NMS trap annotation + --#TYPE "Server Temperature Nonrecoverable" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1055 + +------------------------------------------------------------------------------- +-- Cooling Device Traps +------------------------------------------------------------------------------- + +alertCoolingDeviceNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Cooling device sensor has returned to a normal value." + + --Novell NMS trap annotation + --#TYPE "Server Cooling Device Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1102 + +alertCoolingDeviceWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Cooling device sensor has detected a warning value." + + --Novell NMS trap annotation + --#TYPE "Server Cooling Device Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1103 + +alertCoolingDeviceFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Cooling device sensor has detected a failure value." + + --Novell NMS trap annotation + --#TYPE "Server Cooling Device Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1104 + +alertCoolingDeviceNonRecoverable TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Cooling device sensor has detected a non-recoverable value." + + --Novell NMS trap annotation + --#TYPE "Server Cooling Device Nonrecoverable" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1105 + +------------------------------------------------------------------------------- +-- Voltage Probe Traps +------------------------------------------------------------------------------- + +alertVoltageProbeNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Voltage probe has returned to a normal value." + + --Novell NMS trap annotation + --#TYPE "Server Voltage Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1152 + +alertVoltageProbeWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Voltage probe has detected a warning value." + + --Novell NMS trap annotation + --#TYPE "Server Voltage Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1153 + +alertVoltageProbeFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Voltage probe has detected a failure value." + + --Novell NMS trap annotation + --#TYPE "Server Voltage Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1154 + +alertVoltageProbeNonRecoverable TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Voltage probe has detected a non-recoverable value." + + --Novell NMS trap annotation + --#TYPE "Server Voltage Nonrecoverable" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1155 + +------------------------------------------------------------------------------- +-- Amperage Probe Traps +------------------------------------------------------------------------------- + +alertAmperageProbeNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Amperage probe has returned to a normal value." + + --Novell NMS trap annotation + --#TYPE "Server Amperage Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1202 + +alertAmperageProbeWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Amperage probe has detected a warning value." + + --Novell NMS trap annotation + --#TYPE "Server Amperage Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1203 + +alertAmperageProbeFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Amperage probe has detected a failure value." + + --Novell NMS trap annotation + --#TYPE "Server Amperage Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1204 + +alertAmperageProbeNonRecoverable TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Amperage probe has detected a non-recoverable value." + + --Novell NMS trap annotation + --#TYPE "Server Amperage Nonrecoverable" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1205 + +------------------------------------------------------------------------------- +-- Chassis Intrusion Traps +------------------------------------------------------------------------------- + +alertChassisIntrusionNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Chassis intrusion has returned to normal." + + --Novell NMS trap annotation + --#TYPE "Server Chassis Intrusion Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1252 + +alertChassisIntrusionDetected TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Chassis intrusion has been detected." + + --Novell NMS trap annotation + --#TYPE "Server Chassis Intrusion Detected" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1254 + +------------------------------------------------------------------------------- +-- Redundancy Traps +------------------------------------------------------------------------------- + +alertRedundancyNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Redundancy has returned to normal." + + --Novell NMS trap annotation + --#TYPE "Server Redundancy Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1304 + +alertRedundancyDegraded TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Redundancy has been degraded." + + --Novell NMS trap annotation + --#TYPE "Server Redundancy Degraded" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1305 + +alertRedundancyLost TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Redundancy has been lost." + + --Novell NMS trap annotation + --#TYPE "Server Redundancy Lost" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MAJOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1306 + +------------------------------------------------------------------------------- +-- Power Supply Traps +------------------------------------------------------------------------------- + +alertPowerSupplyNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Power supply has returned to normal." + + --Novell NMS trap annotation + --#TYPE "Server Power Supply Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1352 + +alertPowerSupplyWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Power supply has detected a warning." + + --Novell NMS trap annotation + --#TYPE "Server Power Supply Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1353 + +alertPowerSupplyFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Power supply has detected a failure." + + --Novell NMS trap annotation + --#TYPE "Server Power Supply Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1354 + +------------------------------------------------------------------------------- +-- Memory Device Traps +------------------------------------------------------------------------------- + +alertMemoryDeviceWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Memory device status is noncritical." + + --Novell NMS trap annotation + --#TYPE "Server Memory Device Noncritical" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1403 + +alertMemoryDeviceFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Memory device status is critical." + + --Novell NMS trap annotation + --#TYPE "Server Memory Device Critical" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1404 + +alertMemoryDeviceNonRecoverable TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Memory device status is non-recoverable." + + --Novell NMS trap annotation + --#TYPE "Server Memory Device Nonrecoverable" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1405 + +------------------------------------------------------------------------------- +-- Fan Enclosure Traps +------------------------------------------------------------------------------- + +alertFanEnclosureInsertion TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Fan enclosure has been inserted into system." + + --Novell NMS trap annotation + --#TYPE "Server Fan Enclosure Insertion" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1452 + +alertFanEnclosureRemoval TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Fan enclosure has been removed from system." + + --Novell NMS trap annotation + --#TYPE "Server Fan Enclosure Removal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1453 + +alertFanEnclosureExtendedRemoval TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Fan enclosure has been removed from system for an extended amount of time." + + --Novell NMS trap annotation + --#TYPE "Server Fan Enclosure Extended Removal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1454 + +------------------------------------------------------------------------------- +-- AC Power Cord Traps +------------------------------------------------------------------------------- + +alertACPowerCordNoPowerNonRedundant TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"AC power cord does not have power, and the reduncancy mode +for its AC power switch has been set to non-redundant." + + --Novell NMS trap annotation + --#TYPE "Server AC Cord No Power Non-redundant" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1501 + +alertACPowerCordNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"AC power cord has regained power." + + --Novell NMS trap annotation + --#TYPE "Server AC Cord Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1502 + +alertACPowerCordFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"AC power cord has lost power." + + --Novell NMS trap annotation + --#TYPE "Server AC Cord Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1504 + +------------------------------------------------------------------------------- +-- Hardware Log Traps +------------------------------------------------------------------------------- + +alertLogNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Log size is no longer near or at capacity." + + --Novell NMS trap annotation + --#TYPE "Server Hardware Log Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1552 + +alertLogWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Log size is near capacity." + + --Novell NMS trap annotation + --#TYPE "Server Hardware Log Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1553 + +alertLogFull TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Log size is at capacity." + + --Novell NMS trap annotation + --#TYPE "Server Hardware Log Full" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1554 + +------------------------------------------------------------------------------- +-- Processor Device Status Traps +------------------------------------------------------------------------------- + +alertProcessorDeviceStatusNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Processor device status has returned to normal." + + --Novell NMS trap annotation + --#TYPE "Server Processor Device Status Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1602 + +alertProcessorDeviceStatusWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Processor device status has detected a warning." + + --Novell NMS trap annotation + --#TYPE "Server Processor Device Status Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1603 + +alertProcessorDeviceStatusFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Processor device status has detected a failure." + + --Novell NMS trap annotation + --#TYPE "Server Processor Device Status Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1604 + +------------------------------------------------------------------------------- +-- Device Traps +------------------------------------------------------------------------------- + +alertDeviceAdd TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Device added to system." + + --Novell NMS trap annotation + --#TYPE "Server Device Add" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1651 + +alertDeviceRemove TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Device removed from system." + + --Novell NMS trap annotation + --#TYPE "Server Device Remove" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1652 + +alertDeviceConfigError TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Device configuration error detected." + + --Novell NMS trap annotation + --#TYPE "Server Device Config Error" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1653 + +------------------------------------------------------------------------------- +-- Battery Traps +------------------------------------------------------------------------------- + +alertBatteryNormal TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Battery has returned to normal." + + --Novell NMS trap annotation + --#TYPE "Server Battery Normal" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY INFORMATIONAL + --#TIMEINDEX 99 + --#STATE OPERATIONAL + + ::= 1702 + +alertBatteryWarning TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Battery has detected a warning." + + --Novell NMS trap annotation + --#TYPE "Server Battery Warning" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY MINOR + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1703 + +alertBatteryFailure TRAP-TYPE + ENTERPRISE baseboardGroup + VARIABLES { alertSystem, + alertTableIndexOID, + alertMessage, + alertCurrentStatus, + alertPreviousStatus, + alertData } + DESCRIPTION +"Battery has detected a failure." + + --Novell NMS trap annotation + --#TYPE "Server Battery Failure" + --#SUMMARY "%s" + --#ARGUMENTS {2} + --#SEVERITY CRITICAL + --#TIMEINDEX 99 + --#STATE DEGRADED + + ::= 1704 + + +END + +------------------------------------------------------------------------------- +-- End MIB +------------------------------------------------------------------------------- + + diff --git a/pandora_console/attachment/mibs/MIOX25-MIB b/pandora_console/attachment/mibs/MIOX25-MIB new file mode 100644 index 0000000000..df533412e2 --- /dev/null +++ b/pandora_console/attachment/mibs/MIOX25-MIB @@ -0,0 +1,707 @@ +-- Changes for RFC 1461 (Multiprotocol Interconnect over X.25) +-- ** No changes needed. ** +-- dperkins@scruznet.com + +MIOX25-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter, + TimeTicks + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString, transmission, + ifIndex + FROM RFC1213-MIB + InstancePointer + FROM RFC1316-MIB + X121Address + FROM RFC1382-MIB + PositiveInteger + FROM RFC1381-MIB; + + -- IP over X.25 MIB + + miox OBJECT IDENTIFIER ::= { transmission 38 } + + mioxPle OBJECT IDENTIFIER ::= { miox 1 } + mioxPeer OBJECT IDENTIFIER ::= { miox 2 } + + -- ########################################################### + -- Ple Table + -- ########################################################### + + -- Systems that implement RFC 1356 must also implement + -- all objects in this group. + + mioxPleTable OBJECT-TYPE + SYNTAX SEQUENCE OF MioxPleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains information relative to + an interface to an X.25 Packet Level Entity + (PLE)." + ::= { mioxPle 1 } + + mioxPleEntry OBJECT-TYPE + SYNTAX MioxPleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "These objects manage the encapsulation of + other protocols within X.25." + INDEX { ifIndex } + ::= { mioxPleTable 1 } + + MioxPleEntry ::= SEQUENCE { + mioxPleMaxCircuits + INTEGER, + mioxPleRefusedConnections + Counter, + mioxPleEnAddrToX121LkupFlrs + Counter, + mioxPleLastFailedEnAddr + OCTET STRING, + mioxPleEnAddrToX121LkupFlrTime + TimeTicks, + mioxPleX121ToEnAddrLkupFlrs + Counter, + mioxPleLastFailedX121Address + X121Address, + mioxPleX121ToEnAddrLkupFlrTime + TimeTicks, + mioxPleQbitFailures + Counter, + mioxPleQbitFailureRemoteAddress + X121Address, + mioxPleQbitFailureTime + TimeTicks, + mioxPleMinimumOpenTimer + PositiveInteger, + mioxPleInactivityTimer + PositiveInteger, + mioxPleHoldDownTimer + PositiveInteger, + mioxPleCollisionRetryTimer + PositiveInteger, + mioxPleDefaultPeerId + InstancePointer + } + + mioxPleMaxCircuits OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum number of X.25 circuits that + can be open at one time for this interface. + A value of zero indicates the interface will + not allow any additional circuits (as it may + soon be shutdown). A value of 2147483647 + allows an unlimited number of circuits." + ::= { mioxPleEntry 1 } + + mioxPleRefusedConnections OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of X.25 calls from a remote + systems to this system that were cleared by + this system. The interface instance should + identify the X.25 interface the call came in + on." + ::= { mioxPleEntry 2 } + + mioxPleEnAddrToX121LkupFlrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times a translation from an + Encapsulated Address to an X.121 address + failed to find a corresponding X.121 + address. Encapsulated addresses can be + looked up in the mioxPeerTable or translated + via an algorithm as for the DDN. Addresses + that are successfully recognized do not + increment this counter. Addresses that are + not recognized (reflecting an abnormal + packet delivery condition) increment this + counter. + + If an address translation fails, it may be + difficult to determine which PLE entry + should count the failure. In such cases the + first likely entry in this table should be + selected. Agents should record the failure + even if they are unsure which PLE should be + associated with the failure." + ::= { mioxPleEntry 3 } + + mioxPleLastFailedEnAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(2..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The last Encapsulated address that failed + to find a corresponding X.121 address and + caused mioxPleEnAddrToX121LkupFlrs to be + incremented. The first octet of this object + contains the encapsulation type, the + remaining octets contain the address of that + type that failed. Thus for an IP address, + the length will be five octets, the first + octet will contain 204 (hex CC), and the + last four octets will contain the IP + address. For a snap encapsulation, the + first byte would be 128 (hex 80) and the + rest of the octet string would have the snap + header." + ::= { mioxPleEntry 4 } + + mioxPleEnAddrToX121LkupFlrTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The most recent value of sysUpTime when the + translation from an Encapsulated Address to + X.121 address failed to find a corresponding + X.121 address." + ::= { mioxPleEntry 5 } + + mioxPleX121ToEnAddrLkupFlrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the translation from an + X.121 address to an Encapsulated Address + failed to find a corresponding Encapsulated + Address. Addresses successfully recognized + by an algorithm do not increment this + counter. This counter reflects the number + of times call acceptance encountered the + abnormal condition of not recognizing the + peer." + ::= { mioxPleEntry 6 } + + mioxPleLastFailedX121Address OBJECT-TYPE + SYNTAX X121Address + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The last X.121 address that caused + mioxPleX121ToEnAddrLkupFlrs to increase." + ::= { mioxPleEntry 7 } + + mioxPleX121ToEnAddrLkupFlrTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The most recent value of sysUpTime when the + translation from an X.121 address to an + Encapsulated Address failed to find a + corresponding Encapsulated Address." + ::= { mioxPleEntry 8 } + + mioxPleQbitFailures OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times a connection was closed + because of a Q-bit failure." + ::= { mioxPleEntry 9 } + + mioxPleQbitFailureRemoteAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The remote address of the most recent + (last) connection that was closed because of + a Q-bit failure." + ::= { mioxPleEntry 10 } + + mioxPleQbitFailureTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The most recent value of sysUpTime when a + connection was closed because of a Q-bit + failure. This will also be the last time + that mioxPleQbitFailures was incremented." + ::= { mioxPleEntry 11 } + + mioxPleMinimumOpenTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The minimum time in milliseconds this + interface will keep a connection open before + allowing it to be closed. A value of zero + indicates no timer." + DEFVAL { 0 } + ::= { mioxPleEntry 12 } + + mioxPleInactivityTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The amount of time time in milliseconds + this interface will keep an idle connection + open before closing it. A value of + 2147483647 indicates no timer." + DEFVAL { 10000 } + ::= { mioxPleEntry 13 } + + mioxPleHoldDownTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The hold down timer in milliseconds. This + is the minimum amount of time to wait before + trying another call to a host that was + previously unsuccessful. A value of + 2147483647 indicates the host will not be + retried." + DEFVAL { 0 } + ::= { mioxPleEntry 14 } + + mioxPleCollisionRetryTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Collision Retry Timer in milliseconds. + The time to delay between call attempts when + the maximum number of circuits is exceeded + in a call attempt." + DEFVAL { 0 } + ::= { mioxPleEntry 15 } + + mioxPleDefaultPeerId OBJECT-TYPE + SYNTAX InstancePointer + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This identifies the instance of the index + in the mioxPeerTable for the default + parameters to use with this interface. + + The entry identified by this object may have + a zero length Encapsulation address and a + zero length X.121 address. + + These default parameters are used with + connections to hosts that do not have + entries in the mioxPeerTable. Such + connections occur when using ddn-x25 IP-X.25 + address mapping or when accepting + connections from other hosts not in the + mioxPeerTable. + + The mioxPeerEncTable entry with the same + index as the mioxPeerTable entry specifies + the call encapsulation types this PLE will + accept for peers not in the mioxPeerTable. + If the mioxPeerEncTable doesn't contain any + entries, this PLE will not accept calls from + entries not in the mioxPeerTable." + ::= { mioxPleEntry 16 } + + -- ########################################################### + -- Peer Table + -- ########################################################### + + + -- Systems that implement RFC 1356 must also implement + -- all objects in this group. + + mioxPeerTable OBJECT-TYPE + SYNTAX SEQUENCE OF MioxPeerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains information about the + possible peers this machine may exchange + packets with." + ::= { mioxPeer 1 } + + mioxPeerEntry OBJECT-TYPE + SYNTAX MioxPeerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Per peer information." + INDEX { mioxPeerIndex } + ::= { mioxPeerTable 1 } + + MioxPeerEntry ::= SEQUENCE { + mioxPeerIndex + PositiveInteger, + mioxPeerStatus + INTEGER, + mioxPeerMaxCircuits + PositiveInteger, + mioxPeerIfIndex + PositiveInteger, + mioxPeerConnectSeconds + Counter, + mioxPeerX25CallParamId + InstancePointer, + mioxPeerEnAddr + OCTET STRING, + mioxPeerX121Address + X121Address, + mioxPeerX25CircuitId + InstancePointer, + mioxPeerDescr + DisplayString + } + + mioxPeerIndex OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index value that distinguished one entry + from another. This index is independent of + any other index." + ::= { mioxPeerEntry 1 } + + -- Systems can claim conformance with this MIB without + -- implementing sets to mioxPeerStatus with a value of + -- clearCall or makeCall. + -- All other defined values must be accepted. + -- Implementors should realize that allowing these values + -- provides richer management, and implementations + -- are encouraged to accept these values. + + mioxPeerStatus OBJECT-TYPE + SYNTAX INTEGER { + valid (1), + createRequest (2), + underCreation (3), + invalid (4), + clearCall (5), + makeCall (6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This reports the status of a peer entry. + A value of valid indicates a normal entry + that is in use by the agent. A value of + underCreation indicates a newly created + entry which isn't yet in use because the + creating management station is still setting + values. + + The value of invalid indicates the entry is + no longer in use and the agent is free to + delete the entry at any time. A management + station is also free to use an entry in the + invalid state. + + Entries are created by setting a value of + createRequest. Only non-existent or invalid + entries can be set to createRequest. Upon + receiving a valid createRequest, the agent + will create an entry in the underCreation + state. This object can not be set to a + value of underCreation directly, entries can + only be created by setting a value of + createRequest. Entries that exist in other + than the invalid state can not be set to + createRequest. + + Entries with a value of underCreation are + not used by the system and the management + station can change the values of other + objects in the table entry. Management + stations should also remember to configure + values in the mioxPeerEncTable with the same + peer index value as this peer entry. + + An entry in the underCreation state can be + set to valid or invalid. Entries in the + underCreation state will stay in that state + until 1) the agent times them out, 2) they + are set to valid, 3) they are set to + invalid. If an agent notices an entry has + been in the underCreation state for an + abnormally long time, it may decide the + management station has failed and invalidate + the entry. A prudent agent will understand + that the management station may need to wait + for human input and will allow for that + possibility in its determination of this + abnormally long period. + + Once a management station has completed all + fields of an entry, it will set a value of + valid. This causes the entry to be + activated. + + Entries in the valid state may also be set + to makeCall or clearCall to make or clear + X.25 calls to the peer. After such a set + request the entry will still be in the valid + state. Setting a value of makeCall causes + the agent to initiate an X.25 call request + to the peer specified by the entry. Setting + a value of clearCall causes the agent to + initiate clearing one X.25 call present to + the peer. Each set request will initiate + another call or clear request (up to the + maximum allowed); this means that management + stations that fail to get a response to a + set request should query to see if a call + was in fact placed or cleared before + retrying the request. Entries not in the + valid state can not be set to makeCall or + clearCall. + + The values of makeCall and clearCall provide + for circuit control on devices which perform + Ethernet Bridging using static circuit + assignment without address recognition; + other devices which dynamically place calls + based on destination addresses may reject + such requests. + + An agent that (re)creates a new entry + because of a set with createRequest, should + also (re)create a mioxPeerEncTable entry + with a mioxPeerEncIndex of 1, and a + mioxPeerEncType of 204 (hex CC)." + ::= { mioxPeerEntry 2 } + + mioxPeerMaxCircuits OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum number of X.25 circuits allowed + to this peer." + DEFVAL { 1 } + ::= { mioxPeerEntry 3 } + + mioxPeerIfIndex OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the ifIndex object for the + interface to X.25 to use to call the peer." + DEFVAL { 1 } + ::= { mioxPeerEntry 4 } + + mioxPeerConnectSeconds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of seconds a call to this peer + was active. This counter will be + incremented by one for every second a + connection to a peer was open. If two calls + are open at the same time, one second of + elapsed real time will results in two + seconds of connect time." + ::= { mioxPeerEntry 5 } + + mioxPeerX25CallParamId OBJECT-TYPE + SYNTAX InstancePointer + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The instance of the index object in the + x25CallParmTable from RFC 1382 for the X.25 + call parameters used to communicate with the + remote host. The well known value {0 0} + indicates no call parameters specified." + DEFVAL { {0 0} } + ::= { mioxPeerEntry 6 } + + mioxPeerEnAddr OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Encapsulation address of the remote + host mapped by this table entry. A length + of zero indicates the remote IP address is + unknown or unspecified for use as a PLE + default. + + The first octet of this object contains the + encapsulation type, the remaining octets + contain an address of that type. Thus for + an IP address, the length will be five + octets, the first octet will contain 204 + (hex CC), and the last four octets will + contain the IP address. For a snap + encapsulation, the first byte would be 128 + (hex 80) and the rest of the octet string + would have the snap header." + DEFVAL { ''h } + ::= { mioxPeerEntry 7 } + + mioxPeerX121Address OBJECT-TYPE + SYNTAX X121Address + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The X.25 address of the remote host mapped + by this table entry. A zero length string + indicates the X.25 address is unspecified + for use as the PLE default." + DEFVAL { ''h } + ::= { mioxPeerEntry 8 } + + -- Systems can claim conformance to this MIB without + -- implementing sets to mioxPeerX25CircuitId. + -- However systems that use PVCs with RFC1356 + -- are encouraged to implement sets. + mioxPeerX25CircuitId OBJECT-TYPE + SYNTAX InstancePointer + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object identifies the instance of the + index for the X.25 circuit open to the peer + mapped by this table entry. The well known + value {0 0} indicates no connection + currently active. For multiple connections, + this identifies the index of a multiplexing + table entry for the connections. This can + only be written to configure use of PVCs + which means the identified circuit table + entry for a write must be a PVC." + DEFVAL { {0 0} } + ::= { mioxPeerEntry 9 } + + mioxPeerDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object returns any identification + information about the peer. An agent may + supply the comment information found in the + configuration file entry for this peer. A + zero length string indicates no information + available." + DEFVAL { ''h } + ::= { mioxPeerEntry 10 } + + -- ########################################################### + -- Peer Encapsulation Table + -- ########################################################### + + mioxPeerEncTable OBJECT-TYPE + SYNTAX SEQUENCE OF MioxPeerEncEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains the list of + encapsulations used to communicate with a + peer. This table has two indexes, the first + identifies the peer, the second + distinguishes encapsulation types. + + The first index identifies the corresponding + entry in the mioxPeerTable. The second + index gives the priority of the different + encapsulations. + + The encapsulation types are ordered in + priority order. For calling a peer, the + first entry (mioxPeerEncIndex of 1) is tried + first. If the call doesn't succeed because + the remote host clears the call due to + incompatible call user data, the next entry + in the list is tried. Each entry is tried + until the list is exhausted. + + For answering a call, the encapsulation type + requested by the peer must be found the list + or the call will be refused. If there are + no entries in this table for a peer, all + call requests from the peer will be refused. + + Objects in this table can only be set when + the mioxPeerStatus object with the same + index has a value of underCreation. When + that status object is set to invalid and + deleted, the entry in this table with that + peer index must also be deleted." + ::= { mioxPeer 2 } + + mioxPeerEncEntry OBJECT-TYPE + SYNTAX MioxPeerEncEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Per connection information." + INDEX { mioxPeerIndex, mioxPeerEncIndex} + ::= { mioxPeerEncTable 1 } + + MioxPeerEncEntry ::= SEQUENCE { + mioxPeerEncIndex + PositiveInteger, + mioxPeerEncType + INTEGER + } + + mioxPeerEncIndex OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The second index in the table which + distinguishes different encapsulation + types." + ::= { mioxPeerEncEntry 1 } + + mioxPeerEncType OBJECT-TYPE + SYNTAX INTEGER (0..256) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the encapsulation type. For + IP encapsulation this will have a value of + 204 (hex CC). For SNAP encapsulated + packets, this will have a value of 128 (hex + 80). For CLNP, ISO 8473, this will have a + value of 129 (hex 81). For ES-ES, ISO 9542, + this will have a value of 130 (hex 82). A + value of 197 (hex C5) identifies the Blacker + X.25 encapsulation. A value of 0, + identifies the Null encapsulation. + + This value can only be written when the + mioxPeerStatus object with the same + mioxPeerIndex has a value of underCreation. + Setting this object to a value of 256 + deletes the entry. When deleting an entry, + all other entries in the mioxPeerEncTable + with the same mioxPeerIndex and with an + mioxPeerEncIndex higher then the deleted + entry, will all have their mioxPeerEncIndex + values decremented by one." + ::= { mioxPeerEncEntry 2 } + + -- ########################################################### + +END diff --git a/pandora_console/attachment/mibs/MSFT-MIB b/pandora_console/attachment/mibs/MSFT-MIB new file mode 100644 index 0000000000..c54db5686e --- /dev/null +++ b/pandora_console/attachment/mibs/MSFT-MIB @@ -0,0 +1,18 @@ +MSFT-MIB DEFINITIONS ::= BEGIN + + +IMPORTS + enterprises + FROM RFC1155-SMI; + +microsoft OBJECT IDENTIFIER ::= { enterprises 311 } +software OBJECT IDENTIFIER ::= { microsoft 1 } +systems OBJECT IDENTIFIER ::= { software 1 } +os OBJECT IDENTIFIER ::= { systems 3 } +windowsNT OBJECT IDENTIFIER ::= { os 1 } +windows OBJECT IDENTIFIER ::= { os 2 } +workstation OBJECT IDENTIFIER ::= { windowsNT 1 } +server OBJECT IDENTIFIER ::= { windowsNT 2 } +dc OBJECT IDENTIFIER ::= { windowsNT 3 } + +END diff --git a/pandora_console/attachment/mibs/MSSQL-MIB b/pandora_console/attachment/mibs/MSSQL-MIB new file mode 100644 index 0000000000..699b82c158 --- /dev/null +++ b/pandora_console/attachment/mibs/MSSQL-MIB @@ -0,0 +1,837 @@ + +MSSQLSERVER-MIB DEFINITIONS ::= BEGIN + + IMPORTS + enterprises + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString + FROM RFC-1213; + + microsoft OBJECT IDENTIFIER ::= { enterprises 311 } + software OBJECT IDENTIFIER ::= { microsoft 1 } + apps OBJECT IDENTIFIER ::= { software 4 } + mssqlServer OBJECT IDENTIFIER ::= { apps 1 } + mssqlServerObjects OBJECT IDENTIFIER ::= { mssqlServer 1 } + + -- sqlserver MIB + + mssqlSrvTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlSrvEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains a single row for the SQL Server + installed on the system." + ::= { mssqlServerObjects 1 } + + mssqlSrvEntry OBJECT-TYPE + SYNTAX MssqlSrvEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlSrvTable entries." + INDEX { mssqlSrvVendorName } + ::= { mssqlSrvTable 1 } + + MssqlSrvEntry ::= + SEQUENCE { + mssqlSrvVendorName + DisplayString, + mssqlSrvProductName + DisplayString, + mssqlSrvVersion + DisplayString, + mssqlSrvContact + DisplayString, + mssqlSrvState + INTEGER + } + + mssqlSrvVendorName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the database server vendor." + ::= { mssqlSrvEntry 1 } + + mssqlSrvProductName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product name of the database server." + ::= { mssqlSrvEntry 2 } + + mssqlSrvVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The version of installed SQL Server." + ::= { mssqlSrvEntry 3 } + + mssqlSrvContact OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contact person for this SQL Server installation." + ::= { mssqlSrvEntry 4 } + + mssqlSrvState OBJECT-TYPE + SYNTAX INTEGER { + running(1), + paused(2), + stopped(3), + starting(4), + stopping(5), + continuing(6), + pausing(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of SQL Server. Unknown(1) means we are + unable to determine the state of the server, Running(2) + means the server is available and can be used, Paused(3) + means the server is running, but new connections cannot + currently be established, and Stopped(4) means the server + is not running and unavailable." + ::= { mssqlSrvEntry 5 } + + ---------------------------------------------------------------- + + mssqlSrvInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlSrvInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains general information regarding + the active SQL Server process, including performance + counters." + ::= { mssqlServerObjects 2 } + + mssqlSrvInfoEntry OBJECT-TYPE + SYNTAX MssqlSrvInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlSrvInfoTable entries." + INDEX { mssqlSrvInfoServerName } + ::= { mssqlSrvInfoTable 1 } + + MssqlSrvInfoEntry ::= + SEQUENCE { + mssqlSrvInfoServerName + DisplayString, + mssqlSrvInfoStartupTime + DisplayString, + mssqlSrvInfoTrans + Gauge, + mssqlSrvInfoPageReads + Counter, + mssqlSrvInfoSinglePageWrites + Counter, + mssqlSrvInfoBatchWrites + Counter, + mssqlSrvInfoLazyWrites + Counter, + mssqlSrvInfoLogWrites + Counter, + mssqlSrvInfoOutstandingReads + Counter, + mssqlSrvInfoOutstandingWrites + Counter, + mssqlSrvInfoCacheHitRatio + Gauge, + mssqlSrvInfoFreeBuffers + Gauge, + mssqlSrvInfoNetworkReads + Counter, + mssqlSrvInfoNetworkWrites + Counter, + mssqlSrvInfoRAPhysicalReads + Counter, + mssqlSrvInfoUserConnections + Gauge, + mssqlSrvInfoTotalLocks + Gauge, + mssqlSrvInfoTotalBlockingLocks + Gauge, + mssqlSrvInfoUsersBlocked + Gauge + } + + mssqlSrvInfoServerName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the local SQL Server." + ::= { mssqlSrvInfoEntry 1 } + + mssqlSrvInfoStartupTime OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date and time at which the current running + SQL Server process was last started." + ::= { mssqlSrvInfoEntry 2 } + + mssqlSrvInfoTrans OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of command batches completed since + SQL Server was last started." + ::= { mssqlSrvInfoEntry 3 } + + mssqlSrvInfoPageReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of physical page reads completed + since SQL Server was started." + ::= { mssqlSrvInfoEntry 4 } + + mssqlSrvInfoSinglePageWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of single page writes completed + since the SQL Server was started (does not + include log writes, cache flushes (Lazy Writer), + or batch writes)." + ::= { mssqlSrvInfoEntry 5 } + + mssqlSrvInfoBatchWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of pages written to disk using batch + I/O since SQL Server was started." + ::= { mssqlSrvInfoEntry 6 } + + mssqlSrvInfoLazyWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of pages flushed to disk by the + Lazy Writer since SQL Server was started." + ::= { mssqlSrvInfoEntry 7 } + + mssqlSrvInfoLogWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of log pages physically written + to disk since SQL Server was started." + ::= { mssqlSrvInfoEntry 8 } + + mssqlSrvInfoOutstandingReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of physical reads pending." + ::= { mssqlSrvInfoEntry 9 } + + mssqlSrvInfoOutstandingWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of physical writes pending." + ::= { mssqlSrvInfoEntry 10 } + + mssqlSrvInfoCacheHitRatio OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The percentage of time that a requested data + page was found in the data cache (instead of + being read from disk)." + ::= { mssqlSrvInfoEntry 11 } + + mssqlSrvInfoFreeBuffers OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of data cache buffers currently + in the free pool." + ::= { mssqlSrvInfoEntry 12 } + + mssqlSrvInfoNetworkReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of tabular data stream (TDS) packets read + from the network since SQL Server was started." + ::= { mssqlSrvInfoEntry 13 } + + mssqlSrvInfoNetworkWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of tabular data stream (TDS) packets written + to the network since SQL Server was started." + ::= { mssqlSrvInfoEntry 14 } + + mssqlSrvInfoRAPhysicalReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Physical reads (each consisting of 8 - 2K pages) issued by + Read Ahead Manager since SQL Server was started." + ::= { mssqlSrvInfoEntry 15 } + + mssqlSrvInfoUserConnections OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of open user connections." + ::= { mssqlSrvInfoEntry 16 } + + mssqlSrvInfoTotalLocks OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of all locks being used by SQL Server." + ::= { mssqlSrvInfoEntry 17 } + + mssqlSrvInfoTotalBlockingLocks OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of all locks blocking other processes." + ::= { mssqlSrvInfoEntry 18 } + + mssqlSrvInfoUsersBlocked OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of users blocked by other users." + ::= { mssqlSrvInfoEntry 19 } + + ---------------------------------------------------------------- + + mssqlSrvConfigParamTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlSrvConfigParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains entries for the SQL Server + configuration parameters." + ::= { mssqlServerObjects 3 } + + mssqlSrvConfigParamEntry OBJECT-TYPE + SYNTAX MssqlSrvConfigParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlSrvConfigParamTable entries. The SQL Server configuration + parameter name is used as the index value." + INDEX { OCTET STRING } + ::= { mssqlSrvConfigParamTable 1 } + + MssqlSrvConfigParamEntry ::= + SEQUENCE { + mssqlSrvConfigParamName + DisplayString, + mssqlSrvConfigParamMax + INTEGER, + mssqlSrvConfigParamMin + INTEGER, + mssqlSrvConfigParamConfigValue + INTEGER, + mssqlSrvConfigParamRunValue + INTEGER + } + + mssqlSrvConfigParamName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name of SQL Server configuration parameter." + ::= { mssqlSrvConfigParamEntry 1 } + + mssqlSrvConfigParamMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum configurable value for the associated + SQL Server configuration parameter." + ::= { mssqlSrvConfigParamEntry 2 } + + mssqlSrvConfigParamMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minimum configurable value for the associated + SQL Server configuration parameter." + ::= { mssqlSrvConfigParamEntry 3 } + + mssqlSrvConfigParamConfigValue OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current configured value for the associated + SQL Server configuration parameter." + ::= { mssqlSrvConfigParamEntry 4 } + + mssqlSrvConfigParamRunValue OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current run value for the associated + SQL Server configuration parameter." + ::= { mssqlSrvConfigParamEntry 5 } + + ---------------------------------------------------------------- + + mssqlSrvDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlSrvDeviceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains entries for each SQL Server + device on the system." + ::= { mssqlServerObjects 4 } + + mssqlSrvDeviceEntry OBJECT-TYPE + SYNTAX MssqlSrvDeviceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlSrvDeviceTable entries." + INDEX { mssqlSrvDeviceLogicalName } + ::= { mssqlSrvDeviceTable 1 } + + MssqlSrvDeviceEntry ::= + SEQUENCE { + mssqlSrvDeviceLogicalName + DisplayString, + mssqlSrvDevicePhysicalName + DisplayString, + mssqlSrvDeviceDescription + DisplayString + } + + mssqlSrvDeviceLogicalName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The logical name of the defined database or dump device." + ::= { mssqlSrvDeviceEntry 1 } + + mssqlSrvDevicePhysicalName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The physical name including the file system path and file name." + ::= { mssqlSrvDeviceEntry 2 } + + mssqlSrvDeviceDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Detailed description of the device including the type of + device, size, and the media type." + ::= { mssqlSrvDeviceEntry 3 } + +---------------------------------------------------------------- + + mssqlDbTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlDbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains a list of SQL Server databases. The + table contains a single row for each database (whether + the database is actually accessible or not)." + ::= { mssqlServerObjects 5 } + + mssqlDbEntry OBJECT-TYPE + SYNTAX MssqlDbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlDbTable entries." + INDEX { mssqlDbId, mssqlDbState } + ::= { mssqlDbTable 1 } + + MssqlDbEntry ::= + SEQUENCE { + mssqlDbId + INTEGER, + mssqlDbName + DisplayString, + mssqlDbState + INTEGER + } + + mssqlDbId OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The dbid of the database." + ::= { mssqlDbEntry 1 } + + mssqlDbName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the database." + ::= { mssqlDbEntry 2 } + + mssqlDbState OBJECT-TYPE + SYNTAX INTEGER { + active(1), + singleUser(2), + dboonly(3), + readOnly(4), + offline(5), + suspect(6), + loading(7), + publishing(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the database. Valid states are defined as follows: + Active(1), Single User(2), DBO Only(3), Read Only(4), Offline(5), + Suspect(6), Loading(7), and Publishing(8)." + ::= { mssqlDbEntry 3 } + + ---------------------------------------------------------------- + + mssqlDbInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlDbInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains detailed information about SQL Server + databases. In order for this table to be populated, the + database must be accessible (as determined by checking + mssqlDbState)." + ::= { mssqlServerObjects 6 } + + mssqlDbInfoEntry OBJECT-TYPE + SYNTAX MssqlDbInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlDbInfoTable entries." + INDEX { mssqlDbInfoDbId } + ::= { mssqlDbInfoTable 1 } + + MssqlDbInfoEntry ::= + SEQUENCE { + mssqlDbInfoDbId + INTEGER, + mssqlDbInfoDbName + DisplayString, + mssqlDbInfoCreationDateTime + DisplayString, + mssqlDbInfoOwner + DisplayString, + mssqlDbInfoSize + INTEGER, + mssqlDbInfoUnallocatedSpace + INTEGER, + mssqlDbInfoReservedSpace + INTEGER, + mssqlDbInfoDataSpace + INTEGER, + mssqlDbInfoIndexSpace + INTEGER, + mssqlDbInfoUnusedSpace + INTEGER, + mssqlDbInfoLastTrLogDump + DisplayString, + mssqlDbInfoLogSize + INTEGER, + mssqlDbInfoLogSpaceUsed + INTEGER + } + + mssqlDbInfoDbId OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The dbid of the database associated with this row." + ::= { mssqlDbInfoEntry 1 } + + mssqlDbInfoDbName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the database associated with this row." + ::= { mssqlDbInfoEntry 2 } + + mssqlDbInfoCreationDateTime OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date and time that the database associated with + this row was created." + ::= { mssqlDbInfoEntry 3 } + + mssqlDbInfoOwner OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The owner of the database associated with this row." + ::= { mssqlDbInfoEntry 4 } + + mssqlDbInfoSize OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in KB of the database associated with this row." + ::= { mssqlDbInfoEntry 5 } + + mssqlDbInfoUnallocatedSpace OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unallocated space in KB of the database associated + with this row." + ::= { mssqlDbInfoEntry 6 } + + mssqlDbInfoReservedSpace OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The reserved space in KB of the database associated with + this row." + ::= { mssqlDbInfoEntry 7 } + + mssqlDbInfoDataSpace OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The used data space in KB of the database associated + with this row." + ::= { mssqlDbInfoEntry 8 } + + mssqlDbInfoIndexSpace OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The used index space in KB of the database associated + with this row." + ::= { mssqlDbInfoEntry 9 } + + mssqlDbInfoUnusedSpace OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The unused space in KB of the database associated + with this row." + ::= { mssqlDbInfoEntry 10 } + + mssqlDbInfoLastTrLogDump OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date and time that the latest transaction log dump + for this database was taken." + ::= { mssqlDbInfoEntry 11 } + + mssqlDbInfoLogSize OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in KB of the transaction log for the database + associated with this row." + ::= { mssqlDbInfoEntry 12 } + + mssqlDbInfoLogSpaceUsed OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The percentage of transaction log space for the + database associated with this row." + ::= { mssqlDbInfoEntry 13 } + + ---------------------------------------------------------------- + + mssqlDbOptionTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlDbOptionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains the list of possible database + options and indicates which are set for a given dastabase." + ::= { mssqlServerObjects 7 } + + mssqlDbOptionEntry OBJECT-TYPE + SYNTAX MssqlDbOptionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlDbOptionTable entries. The dbid of the database + is used as the index value associated with this row." + INDEX { mssqlDbOptionDbId, INTEGER } + ::= { mssqlDbOptionTable 1 } + + MssqlDbOptionEntry ::= + SEQUENCE { + mssqlDbOptionDbId + INTEGER, + mssqlDbOptionDbName + DisplayString, + mssqlDbOptionSetName + DisplayString + } + + mssqlDbOptionDbId OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The dbid of the database associated with this row." + ::= { mssqlDbOptionEntry 1 } + + mssqlDbOptionDbName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the database associated with this row." + ::= { mssqlDbOptionEntry 2 } + + mssqlDbOptionSetName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the database option that is set for + the database associated with this row." + ::= { mssqlDbOptionEntry 3 } + + ---------------------------------------------------------------- + + mssqlDbDeviceTable OBJECT-TYPE + SYNTAX SEQUENCE OF MssqlDbDeviceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains entries for each device fragment + on which a particular SQL Server database has been + created or altered." + ::= { mssqlServerObjects 8 } + + mssqlDbDeviceEntry OBJECT-TYPE + SYNTAX MssqlDbDeviceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "mssqlDbDeviceTable entries. The dbid of the database + is used as index value associated with this row." + INDEX { mssqlDbDeviceDbId, INTEGER } + ::= { mssqlDbDeviceTable 1 } + + MssqlDbDeviceEntry ::= + SEQUENCE { + mssqlDbDeviceDbId + INTEGER, + mssqlDbDeviceDbName + DisplayString, + mssqlDbDeviceFragmentName + DisplayString, + mssqlDbDeviceFragmentSize + INTEGER, + mssqlDbDeviceFragmentUsage + DisplayString + } + + mssqlDbDeviceDbId OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The dbid of the database associated with this row." + ::= { mssqlDbDeviceEntry 1 } + + mssqlDbDeviceDbName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the database associated with this row." + ::= { mssqlDbDeviceEntry 2 } + + mssqlDbDeviceFragmentName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of a device fragment on which the database + has been created or altered." + ::= { mssqlDbDeviceEntry 3 } + + mssqlDbDeviceFragmentSize OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in KB of the device fragment on which the + database has been created or altered." + ::= { mssqlDbDeviceEntry 4 } + + mssqlDbDeviceFragmentUsage OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates if the device fragment contains data, + log, or data and log." + ::= { mssqlDbDeviceEntry 5 } + +---------------------------------------------------------------- + +END diff --git a/pandora_console/attachment/mibs/MTA-MIB b/pandora_console/attachment/mibs/MTA-MIB new file mode 100644 index 0000000000..48f584b863 --- /dev/null +++ b/pandora_console/attachment/mibs/MTA-MIB @@ -0,0 +1,659 @@ +-- Changes to rfc1566 (MTA SNMPv2 MIB): +-- Added the following imports: MODULE-COMPLIANCE and OBJECT-GROUP +-- from SNMPv2-CONF; and MODULE-IDENTITY from SNMPv2-SMI. +-- dperkins@scruznet.com + + + MTA-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE, Counter32, Gauge32, MODULE-IDENTITY + FROM SNMPv2-SMI + DisplayString, TimeInterval + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF + mib-2 + FROM RFC1213-MIB + applIndex + FROM APPLICATION-MIB; + + mta MODULE-IDENTITY + LAST-UPDATED "9311280000Z" + ORGANIZATION "IETF Mail and Directory Management Working Group" + CONTACT-INFO + " Ned Freed + + Postal: Innosoft International, Inc. + 250 West First Street, Suite 240 + Claremont, CA 91711 + US + + Tel: +1 909 624 7907 + Fax: +1 909 621 5319 + + E-Mail: ned@innosoft.com" + DESCRIPTION + "The MIB module describing Message Transfer Agents (MTAs)" + ::= { mib-2 28 } + + mtaTable OBJECT-TYPE + SYNTAX SEQUENCE OF MtaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table holding information specific to an MTA." + ::= {mta 1} + + mtaEntry OBJECT-TYPE + SYNTAX MtaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entry associated with each MTA." + INDEX {applIndex} + ::= {mtaTable 1} + + MtaEntry ::= SEQUENCE { + mtaReceivedMessages + Counter32, + mtaStoredMessages + Gauge32, + mtaTransmittedMessages + Counter32, + mtaReceivedVolume + Counter32, + mtaStoredVolume + Gauge32, + mtaTransmittedVolume + Counter32, + mtaReceivedRecipients + Counter32, + mtaStoredRecipients + Gauge32, + mtaTransmittedRecipients + Counter32 + } + + mtaReceivedMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of messages received since MTA initialization." + ::= {mtaEntry 1} + + mtaStoredMessages OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of messages currently stored in the MTA." + ::= {mtaEntry 2} + + mtaTransmittedMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of messages transmitted since MTA initialization." + ::= {mtaEntry 3} + + mtaReceivedVolume OBJECT-TYPE + SYNTAX Counter32 + UNITS "K-octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total volume of messages received since MTA + initialization, measured in kilo-octets. This volume should + include all transferred data that is logically above the mail + transport protocol level. For example, an SMTP-based MTA + should use the number of kilo-octets in the message header + and body, while an X.400-based MTA should use the number of + kilo-octets of P2 data." + ::= {mtaEntry 4} + + mtaStoredVolume OBJECT-TYPE + SYNTAX Gauge32 + UNITS "K-octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total volume of messages currently stored in the MTA, + measured in kilo-octets. This volume should include all + stored data that is logically above the mail transport + protocol level. For example, an SMTP-based MTA should + use the number of kilo-octets in the message header and + body, while an X.400-based MTA would use the number of + kilo-octets of P2 data." + ::= {mtaEntry 5} + + mtaTransmittedVolume OBJECT-TYPE + SYNTAX Counter32 + UNITS "K-octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total volume of messages transmitted since MTA + initialization, measured in kilo-octets. This volume should + include all transferred data that is logically above the mail + transport protocol level. For example, an SMTP-based MTA + should use the number of kilo-octets in the message header + and body, while an X.400-based MTA should use the number of + kilo-octets of P2 data." + ::= {mtaEntry 6} + + mtaReceivedRecipients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of recipients specified in all messages + received since MTA initialization. Recipients this MTA + had no responsibility for should not be counted even if + information about such recipients is available." + ::= {mtaEntry 7} + + mtaStoredRecipients OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of recipients specified in all messages + currently stored in the MTA. Recipients this MTA had no + responsibility for should not be counted." + ::= {mtaEntry 8} + + mtaTransmittedRecipients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of recipients specified in all messages + transmitted since MTA initialization. Recipients this MTA + had no responsibility for should not be counted." + ::= {mtaEntry 9} + + + -- MTAs typically group inbound reception, queue storage, and + -- outbound transmission in some way. In the most extreme case + -- information will be maintained for each different entity that + -- receives messages and for each entity the MTA stores messages for + -- and delivers messages to. Other MTAs may elect to treat all + -- reception equally, all queue storage equally, all deliveries + -- equally, or some combination of this. + + -- In any case, a grouping abstraction is an extremely useful for + -- breaking down the activities of an MTA. For purposes of labelling + -- this will be called a "group" in this MIB. + + -- Each group contains all the variables needed to monitor all aspects + -- of an MTA's operation. However, the fact that all groups contain + -- all possible variables does not imply that all groups must use all + -- possible variables. For example, a single group might be used to + -- monitor only one kind of event (inbound processing, outbound + -- processing, or storage). In this sort of configuration all unused + -- counters would be inaccessible; e.g., returning either a + -- noSuchName error (for an SNMPv1 get), or a noSuchInstance + -- exception (for an SNMPv2 get). + + -- Groups are not necessarily mutually exclusive. A given event may + -- be recorded by more than one group, a message may be seen as + -- stored by more than one group, and so on. Groups should be all + -- inclusive, however: if groups are implemented all aspects of an + -- MTA's operation should be registered in at least one group. This + -- freedom lets implementors use different sets of groups to + -- provide differents "views" of an MTA. + + -- The possibility of overlap between groups means that summing + -- variables across groups may not produce values equal to those in + -- the mtaTable. mtaTable should always provide accurate information + -- about the MTA as a whole. + + -- The term "channel" is often used in MTA implementations; channels + -- are usually, but not always, equivalent to a group. However, + -- this MIB does not use the term "channel" because there is no + -- requirement that an MTA supporting this MIB has to map its + -- "channel" abstraction one-to-one onto the MIB's group abstration. + + mtaGroupTable OBJECT-TYPE + SYNTAX SEQUENCE OF MtaGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table holding information specific to each MTA group." + ::= {mta 2} + + mtaGroupEntry OBJECT-TYPE + SYNTAX MtaGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entry associated with each MTA group." + INDEX {applIndex, mtaGroupIndex} + ::= {mtaGroupTable 1} + + MtaGroupEntry ::= SEQUENCE { + mtaGroupIndex + INTEGER, + mtaGroupReceivedMessages + Counter32, + mtaGroupRejectedMessages + Counter32, + mtaGroupStoredMessages + Gauge32, + mtaGroupTransmittedMessages + Counter32, + mtaGroupReceivedVolume + Counter32, + mtaGroupStoredVolume + Gauge32, + mtaGroupTransmittedVolume + Counter32, + mtaGroupReceivedRecipients + Counter32, + mtaGroupStoredRecipients + Gauge32, + mtaGroupTransmittedRecipients + Counter32, + mtaGroupOldestMessageStored + TimeInterval, + mtaGroupInboundAssociations + Gauge32, + mtaGroupOutboundAssociations + Gauge32, + mtaGroupAccumulatedInboundAssociations + Counter32, + mtaGroupAccumulatedOutboundAssociations + Counter32, + mtaGroupLastInboundActivity + TimeInterval, + mtaGroupLastOutboundActivity + TimeInterval, + mtaGroupRejectedInboundAssociations + Counter32, + mtaGroupFailedOutboundAssociations + Counter32, + mtaGroupInboundRejectionReason + DisplayString, + mtaGroupOutboundConnectFailureReason + DisplayString, + mtaGroupScheduledRetry + TimeInterval, + mtaGroupMailProtocol + OBJECT IDENTIFIER, + mtaGroupName + DisplayString + } + + mtaGroupIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The index associated with a group for a given MTA." + ::= {mtaGroupEntry 1} + + mtaGroupReceivedMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of messages received to this group since MTA + initialization." + ::= {mtaGroupEntry 2} + + mtaGroupRejectedMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of messages rejected by this group since MTA + initialization." + ::= {mtaGroupEntry 3} + + mtaGroupStoredMessages OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of messages currently stored in this + group's queue." + ::= {mtaGroupEntry 4} + + mtaGroupTransmittedMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of messages transmitted by this group since MTA + initialization." + ::= {mtaGroupEntry 5} + + mtaGroupReceivedVolume OBJECT-TYPE + SYNTAX Counter32 + UNITS "K-octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total volume of messages received to this group since + MTA initialization, measured in kilo-octets. This volume + should include all transferred data that is logically above + the mail transport protocol level. For example, an + SMTP-based MTA should use the number of kilo-octets in the + message header and body, while an X.400-based MTA should use + the number of kilo-octets of P2 data." + ::= {mtaGroupEntry 6} + + mtaGroupStoredVolume OBJECT-TYPE + SYNTAX Gauge32 + UNITS "K-octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total volume of messages currently stored in this + group's queue, measured in kilo-octets. This volume should + include all stored data that is logically above the mail + transport protocol level. For example, an SMTP-based + MTA should use the number of kilo-octets in the message + header and body, while an X.400-based MTA would use the + number of kilo-octets of P2 data." + ::= {mtaGroupEntry 7} + + mtaGroupTransmittedVolume OBJECT-TYPE + SYNTAX Counter32 + UNITS "K-octets" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total volume of messages transmitted by this group + since MTA initialization, measured in kilo-octets. This + volume should include all transferred data that is logically + above the mail transport protocol level. For example, an + SMTP-based MTA should use the number of kilo-octets in the + message header and body, while an X.400-based MTA should use + the number of kilo-octets of P2 data." + ::= {mtaGroupEntry 8} + + mtaGroupReceivedRecipients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of recipients specified in all messages + received to this group since MTA initialization. + Recipients this MTA had no responsibility for should not + be counted." + ::= {mtaGroupEntry 9} + + mtaGroupStoredRecipients OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of recipients specified in all messages + currently stored in this group's queue. Recipients this + MTA had no responsibility for should not be counted." + ::= {mtaGroupEntry 10} + + mtaGroupTransmittedRecipients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of recipients specified in all messages + transmitted by this group since MTA initialization. + Recipients this MTA had no responsibility for should not + be counted." + ::= {mtaGroupEntry 11} + + mtaGroupOldestMessageStored OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time since the oldest message in this group's queue was + placed in the queue." + ::= {mtaGroupEntry 12} + + mtaGroupInboundAssociations OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current associations to the group, where the + group is the responder." + ::= {mtaGroupEntry 13} + + mtaGroupOutboundAssociations OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current associations to the group, where the + group is the initiator." + ::= {mtaGroupEntry 14} + + mtaGroupAccumulatedInboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of associations to the group since MTA + initialization, where the group is the responder." + ::= {mtaGroupEntry 15} + + mtaGroupAccumulatedOutboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of associations from the group since MTA + initialization, where the group was the initiator." + ::= {mtaGroupEntry 16} + + mtaGroupLastInboundActivity OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time since the last time that this group had an active + inbound association for purposes of message reception." + ::= {mtaGroupEntry 17} + + mtaGroupLastOutboundActivity OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time since the last time that this group had an + outbound association for purposes of message delivery." + ::= {mtaGroupEntry 18} + + mtaGroupRejectedInboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of inbound associations the group has + rejected, since MTA initialization." + ::= {mtaGroupEntry 19} + + mtaGroupFailedOutboundAssociations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number associations where the group was the + initiator and association establishment has failed, + since MTA initialization." + ::= {mtaGroupEntry 20} + + mtaGroupInboundRejectionReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The failure reason, if any, for the last association this + group refused to respond to. An empty string indicates that + the last attempt was successful. If no association attempt + has been made since the MTA was initializaed the value + should be 'never'." + ::= {mtaGroupEntry 21} + + mtaGroupOutboundConnectFailureReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The failure reason, if any, for the last association attempt + this group initiated. An empty string indicates that the last + attempt was successful. If no association attempt has been + made since the MTA was initialized the value should be + 'never'." + ::= {mtaGroupEntry 22} + + mtaGroupScheduledRetry OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time when this group is scheduled to next attempt to + make an association." + ::= {mtaGroupEntry 23} + + mtaGroupMailProtocol OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An identification of the protocol being used by this group. + For an group employing OSI protocols, this will be the + Application Context. For Internet applications, the IANA + maintains a registry of the OIDs which correspond to well-known + message transfer protocols. If the application protocol is + not listed in the registry, an OID value of the form + {applTCPProtoID port} or {applUDProtoID port} are used for + TCP-based and UDP-based protocols, respectively. In either + case 'port' corresponds to the primary port number being + used by the group. applTCPProtoID and applUDPProtoID are + defined in [5]." + ::= {mtaGroupEntry 24} + + mtaGroupName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A descriptive name for the group. If this group connects to + a single remote MTA this should be the name of that MTA. If + this in turn is an Internet MTA this should be the domain name. + For an OSI MTA it should be the string encoded distinguished + name of the managed object using the format defined in RFC-1485. + For X.400(1984) MTAs which do not have a Distinguished Name, + the RFC-1327 syntax 'mta in globalid' should be used." + ::= {mtaGroupEntry 25} + + mtaGroupAssociationTable OBJECT-TYPE + SYNTAX SEQUENCE OF MtaGroupAssociationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table holding information regarding the associations + for each MTA group." + ::= {mta 3} + + mtaGroupAssociationEntry OBJECT-TYPE + SYNTAX MtaGroupAssociationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entry holding information regarding the associations + for each MTA group." + INDEX {applIndex, mtaGroupIndex, mtaGroupAssociationIndex} + ::= {mtaGroupAssociationTable 1} + + MtaGroupAssociationEntry ::= SEQUENCE { + mtaGroupAssociationIndex + INTEGER + } + + mtaGroupAssociationIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reference into association table to allow correlation of + this group's active associations with the association table." + ::= {mtaGroupAssociationEntry 1} + + -- Conformance information + + mtaConformance OBJECT IDENTIFIER ::= {mta 4} + + mtaGroups OBJECT IDENTIFIER ::= {mtaConformance 1} + mtaCompliances OBJECT IDENTIFIER ::= {mtaConformance 2} + + + -- Compliance statements + + mtaCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement the Mail Monitoring MIB for basic + monitoring of MTAs." + MODULE -- this module + MANDATORY-GROUPS {mtaGroup} + ::= {mtaCompliances 1} + + + mtaAssocCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement the Mail Monitoring MIB for monitoring of + MTAs and their associations." + MODULE -- this module + MANDATORY-GROUPS {mtaGroup, mtaAssocGroup} + ::= {mtaCompliances 2} + + -- Units of conformance + + mtaGroup OBJECT-GROUP + OBJECTS { + mtaReceivedMessages, mtaStoredMessages, + mtaTransmittedMessages, mtaReceivedVolume, mtaStoredVolume, + mtaTransmittedVolume, mtaReceivedRecipients, + mtaStoredRecipients, mtaTransmittedRecipients, + mtaGroupReceivedMessages, mtaGroupRejectedMessages, + mtaGroupStoredMessages, mtaGroupTransmittedMessages, + mtaGroupReceivedVolume, mtaGroupStoredVolume, + mtaGroupTransmittedVolume, mtaGroupReceivedRecipients, + mtaGroupStoredRecipients, mtaGroupTransmittedRecipients, + mtaGroupOldestMessageStored, mtaGroupInboundAssociations, + mtaGroupOutboundAssociations, + mtaGroupAccumulatedInboundAssociations, + mtaGroupAccumulatedOutboundAssociations, + mtaGroupLastInboundActivity, mtaGroupLastOutboundActivity, + mtaGroupRejectedInboundAssociations, + mtaGroupFailedOutboundAssociations, + mtaGroupInboundRejectionReason, + mtaGroupOutboundConnectFailureReason, + mtaGroupScheduledRetry, mtaGroupMailProtocol, mtaGroupName} + STATUS current + DESCRIPTION + "A collection of objects providing basic monitoring of MTAs." + ::= {mtaGroups 1} + + mtaAssocGroup OBJECT-GROUP + OBJECTS { + mtaGroupAssociationIndex} + STATUS current + DESCRIPTION + "A collection of objects providing monitoring of MTA + associations." + ::= {mtaGroups 2} + + END diff --git a/pandora_console/attachment/mibs/NETAPP-MIB b/pandora_console/attachment/mibs/NETAPP-MIB new file mode 100644 index 0000000000..0ab82784e5 --- /dev/null +++ b/pandora_console/attachment/mibs/NETAPP-MIB @@ -0,0 +1,27966 @@ + -- ======================================================== -- + -- NetApp Custom MIB -- + -- -- + -- This MIB contains only information specific to -- + -- NetApp products. Other supported mibs are -- + -- not included in this file. -- + -- ======================================================= -- + + -- Version 2.0.3, November 2009 (See NOTE below) + + -- Copyright (c) 1995-2008 NetApp, Inc. + -- All rights reserved. + + -- This NetApp SNMP Management Information Base + -- (Specification) embodies NetApp's confidential + -- and proprietary intellectual property. NetApp + -- retains all title and ownership in the Specification, + -- including any revisions. + + -- This Specification is supplied "AS IS," and NetApp + -- makes no warranty, either express or implied, as to the use, + -- operation, condition, or performance of the Specification. + + -- NOTE: Please maintain the format of the line above + -- containing the MIB's version number as: + -- + -- Version , (See NOTE below) + -- + -- This line is parsed during the release process + -- to extract the version of the MIB. + -- Keep the MODULE-IDENTITY in sync with the Version Date. + -- + + -- ======================================================= -- + -- List of modifications for upgrade to SMIv2 (RFC2578): + -- + -- Standardized capitalization for grmMonitor + -- subtyping not allowed in SEQUENCE + -- hyphens not allowed in value types. + -- Changed dmpSubtreeEntry to dmpEntry + -- Removed lastdump and placed entries in dmpEntry + -- Removed lastsuccess and placed entries in dmpEntry + -- Renamed initiatorListMemberEntry to initiatorListEntry + -- Moved enclTempSensorsCurrentTemp to correct location in enclEntry + -- Add enclSASConn... to enclEntry + -- Added Counter64 support + -- Renamed the following netcache OIDS: + -- ncStreamingOndemandBytesToClients to ncStreamingOBTClients + -- ncStreamingOndemandBytesFromClients to ncStreamingOBFClients + -- ncStreamingOndemandBytesToServers to ncStreamingOBTServers + -- ncStreamingOndemandBytesFromServers to ncStreamingOBFServers + -- ncStreamingQuickTimeBytesToClients to ncStreamingQTBTClients + -- ncStreamingQuickTimeBytesFromClients to ncStreamingQTBFClients + -- ncStreamingQuickTimeBytesToServers to ncStreamingQTBTServers + -- ncStreamingQuickTimeBytesFromServers to ncStreamingQTBFServers + -- ncStreamingRtspWMBytesFromClients to ncStreamingRtspWMBFClients + -- ncStreamingRtspWMBytesFromServers to ncStreamingRtspWMBFServers + + -- Conform to RFC3584 "Coexistence between V1, V2, and V3 of + -- the Internet-standard Network Management Framework + -- 2.1.1. Required changes + -- 1 - IMPORTS statement must reference SNMPv2-SMI + -- 2 - The MODULE-IDENTITY macro must be invoked. + -- 3 - SYNTAX Counter32 replaces Counter + -- 4 - SYNTAX Gauge32 replaces Gauge + -- 5 - MAX-ACCESS replaces ACCESS + -- 6 - STATUS current replaces STATUS mandatory + -- STATUS current replaces STATUS optional + -- 2.1.1 - Desirable changes + -- 2 - Integer32 replaces INTEGER in places that don't have ranges + -- 2.1.2 - Trap and Notification Definitions + -- 1 - IMPORTS must reference SMIv2-SMI + -- 2 - ENTERPRISE is removed + -- 3 - VARIABLES clause must be renamed to OBJECTS clause + -- 4 - STATUS clause must be added + + -- Add enclXXXpart + -- ======================================================= -- + + NETAPP-MIB DEFINITIONS ::= BEGIN + + IMPORTS + enterprises, Counter32, IpAddress, TimeTicks, Gauge32, + NOTIFICATION-TYPE, MODULE-IDENTITY, snmpModules, + OBJECT-TYPE, Counter64, Integer32 + FROM SNMPv2-SMI + PhysAddress, DisplayString + FROM RFC1213-MIB; + + -- MIB-II (same prefix as MIB-I) + + netappModuleId MODULE-IDENTITY + LAST-UPDATED "200911010000Z" + ORGANIZATION "NetApp" + CONTACT-INFO "www.netapp.com" + DESCRIPTION "The mib module for netapp SNMPv2 entities" + + ::= { snmpModules 789 } + + -- the NetApp MIB + + -- NetApp conventions + + netapp OBJECT IDENTIFIER ::= { enterprises 789 } + + -- the current netapp mib + + netapp1 OBJECT IDENTIFIER ::= { netapp 1 } + + -- + -- This is the tree under which values for the sysObjectID + -- are allocated. + -- + + netappProducts OBJECT IDENTIFIER ::= { netapp 2 } + + -- + -- This is the tree under which values for the DataFabric Manager + -- are allocated. Those values are defined in separate mib file, + -- distributed with DataFabric Manager product. + -- + + netappDataFabricManager OBJECT IDENTIFIER ::= { netapp 3 } + + -- + -- This is the tree under which values for the NetApp Support Console + -- are allocated. Those values are defined in separate mib file, + -- distributed with the Support Console + -- + + netappSupportConsole OBJECT IDENTIFIER ::= { netapp 4 } + + -- + -- We distinguish between filers and NetCaches. + -- + + netappFiler OBJECT IDENTIFIER ::= { netappProducts 1 } + netappNetCache OBJECT IDENTIFIER ::= { netappProducts 2 } + netappClusteredFiler OBJECT IDENTIFIER ::= { netappProducts 3 } + netappNode OBJECT IDENTIFIER ::= { netappProducts 4 } + + -- top-level netapp groups + + product OBJECT IDENTIFIER ::= { netapp1 1 } + + sysStat OBJECT IDENTIFIER ::= { netapp1 2 } + + nfs OBJECT IDENTIFIER ::= { netapp1 3 } + + quota OBJECT IDENTIFIER ::= { netapp1 4 } + + filesys OBJECT IDENTIFIER ::= { netapp1 5 } + + raid OBJECT IDENTIFIER ::= { netapp1 6 } + + cifs OBJECT IDENTIFIER ::= { netapp1 7 } + + netcache OBJECT IDENTIFIER ::= { netapp1 8 } + + snapmirror OBJECT IDENTIFIER ::= { netapp1 9 } + + ndmp OBJECT IDENTIFIER ::= { netapp1 10 } + + fabric OBJECT IDENTIFIER ::= { netapp1 11 } + + dafs OBJECT IDENTIFIER ::= { netapp1 12 } + + vi OBJECT IDENTIFIER ::= { netapp1 13 } + + backup OBJECT IDENTIFIER ::= { netapp1 14 } + + vfiler OBJECT IDENTIFIER ::= { netapp1 16 } + + blocks OBJECT IDENTIFIER ::= { netapp1 17 } + + nfscache OBJECT IDENTIFIER ::= { netapp1 18 } + + snapvault OBJECT IDENTIFIER ::= { netapp1 19 } + + ftpd OBJECT IDENTIFIER ::= { netapp1 20 } + + storage OBJECT IDENTIFIER ::= { netapp1 21 } + + network OBJECT IDENTIFIER ::= { netapp1 22 } + + sis OBJECT IDENTIFIER ::= { netapp1 23 } + + compress OBJECT IDENTIFIER ::= { netapp1 24 } + + extcache OBJECT IDENTIFIER ::= { netapp1 26 } + + + -- -- -- -- -- -- -- -- + -- the product group -- + -- -- -- -- -- -- -- -- + + productType OBJECT-TYPE + SYNTAX INTEGER { + eisaBased(1), + pciBased(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product type representing the target platform." + ::= { product 1 } + + productVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Version String for the Software Running on + this platform." + ::= { product 2 } + + productId OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The System ID of this system." + ::= { product 3 } + + productVendor OBJECT-TYPE + SYNTAX INTEGER { + netapp(1), + dell(2), + ibm(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor id of this system, indicating the company + that has supplied the product." + ::= { product 4 } + + productModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The model name of the system. Examples + are FAS980 and FAS3050." + ::= { product 5 } + + productFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Version string for the Firmware running on + this platform." + ::= { product 6 } + + productGuiUrl OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The complete URL used to access the administrative GUI + for a browser-based interface." + ::= { product 7 } + + productApiUrl OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The complete URL used to access the administrative API + for a programmatic interface." + ::= { product 8 } + + productSerialNum OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product serial number. Returns unknown if it + cannot be determined." + ::= { product 9 } + + productPartnerSerialNum OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The partner's serial number, not applicable + if there is no partner, and unknown if it + cannot be determined." + ::= { product 10 } + + productCPUArch OBJECT-TYPE + SYNTAX INTEGER { + x86(1), + alpha(2), + mips(3), + sparc(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU architecture type of this appliance" + + + + ::= { product 11 } + + productTrapData OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This returns a static string. This object is used + as a placeholder for enterprise traps." + ::= { product 12 } + + productMachineType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The machine type of the system. Examples + are FAS980 and FAS3050." + ::= { product 13 } + + productLicenseTable OBJECT-TYPE + SYNTAX SEQUENCE OF ProductLicenseEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Returns information about the current list of + licensed services, the type of license, and, + if it is a time limited license, the expiration date. + It also tells the services that are not licensed for + the appliance, or if a time limited licensed service + has expired." + ::= { product 14 } + + productLicenseEntry OBJECT-TYPE + SYNTAX ProductLicenseEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of licenses." + INDEX { productLicenseIndex } + ::= { productLicenseTable 1 } + + ProductLicenseEntry ::= + SEQUENCE { + productLicenseIndex + Integer32, + licenseService + DisplayString, + licenseIsLicensed + Integer32, + licenseIsExpired + Integer32, + licenseIsSite + Integer32, + licenseExpirationTimeStamp + Integer32 + } + + productLicenseIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the product license table." + + ::= { productLicenseEntry 1 } + + licenseService OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the service." + + ::= { productLicenseEntry 2 } + + licenseIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True if the service is licensed and has not + expired, false otherwise." + + ::= { productLicenseEntry 3 } + + licenseIsExpired OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True if the promotional/time-expiring/demo license + has expired, false otherwise." + + ::= { productLicenseEntry 4 } + + licenseIsSite OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True if the service is a site license, false + otherwise." + + ::= { productLicenseEntry 5 } + + licenseExpirationTimeStamp OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Expected expiration timestamp in seconds since + January 1, 1970, if it's a promotional/time-expiring + license. 0 for all other licenses." + + ::= { productLicenseEntry 6 } + + -- -- -- -- -- -- -- -- + -- the sysStat group -- + -- -- -- -- -- -- -- -- + + cpu OBJECT IDENTIFIER ::= { sysStat 1 } + + misc OBJECT IDENTIFIER ::= { sysStat 2 } + + cf OBJECT IDENTIFIER ::= { sysStat 3 } + + environment OBJECT IDENTIFIER ::= { sysStat 4 } + + nvram OBJECT IDENTIFIER ::= { sysStat 5 } + + cp OBJECT IDENTIFIER ::= { sysStat 6 } + + autosupport OBJECT IDENTIFIER ::= { sysStat 7 } + + + -- the cpu group for sysStat + + cpuUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) that the + CPU has been up since the last boot." + ::= { cpu 1 } + + cpuBusyTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) that the + CPU has been doing useful work since the last + boot." + ::= { cpu 2 } + + cpuBusyTimePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percent of time that the CPU has been doing + useful work since the last time a client requested + the cpuBusyTimePerCent." + ::= { cpu 3 } + + cpuIdleTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) that the + CPU has been idle since the last boot." + ::= { cpu 4 } + + cpuIdleTimePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percent of time that the CPU has been idle + since the last time a client requested the + cpuBusyTimePerCent." + ::= { cpu 5 } + + cpuCount OBJECT-TYPE + SYNTAX Integer32 (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CPUs in the system." + + ::= { cpu 6 } + + cpuSwitchInvocations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of sk_switch invocations." + ::= { cpu 7 } + + cpuContextSwitches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of hardware context switches." + ::= { cpu 8 } + + cpuInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of interrupts during a CP." + ::= { cpu 9 } + + + cpuNonCPInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of interrupts not during a CP." + ::= { cpu 10 } + + cpuCPInterruptPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The percentage of time handling CP interrupts." + ::= { cpu 11 } + + cpuNonCPInterruptPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The percentage of time handling non-cp interrupts." + ::= { cpu 12 } + + cpuTotalDomainSwitches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The total number of Domain Switches." + ::= { cpu 13 } + + -- the misc group for sysStat + + miscNfsOps OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of Server side NFS calls since + the last boot" + ::= { misc 1 } + + miscNetRcvdKB OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of KBytes received on all the + network interfaces, since the last boot." + ::= { misc 2 } + + miscNetSentKB OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of KBytes transmitted on all the + network interfaces, since the last boot." + ::= { misc 3 } + + miscGlobalStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + ok(3), + nonCritical(4), + critical(5), + nonRecoverable(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates the overall status of the appliance. + The algorithm to determine the value uses both + hardware status (e.g. the number of failed fans) and + volume status (e.g. number of volumes that are full). + The algorithm is subject to change in future releases, + but the range of values will not change." + ::= { misc 4 } + + miscHighNfsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side NFS calls since + the last boot. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 5 } + + miscLowNfsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side NFS calls since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + + ::= { misc 6 } + + miscHighCifsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side CIFS calls since + the last boot. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 7 } + + miscLowCifsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side CIFS calls since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + + ::= { misc 8 } + + miscHighHttpOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of HTTP operations received + since the last boot. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 9 } + + miscLowHttpOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of HTTP operations received + since the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + + ::= { misc 10 } + + + miscHighNetRcvdBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received on all the + network interfaces, since the last boot. This + object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 11 } + + miscLowNetRcvdBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received on all the + network interfaces, since the last boot. This + object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 12 } + + miscHighNetSentBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes transmitted on all the + network interfaces, since the last boot. This + object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 13 } + + miscLowNetSentBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes transmitted on all the + network interfaces, since the last boot. This + object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 14 } + + miscHighDiskReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from disk + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 15 } + + miscLowDiskReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from disk since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 16 } + + + miscHighDiskWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to disk + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 17 } + + miscLowDiskWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to disk since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 18 } + + miscHighTapeReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from tape + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 19 } + + miscLowTapeReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from tape since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 20 } + + miscHighTapeWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to tape + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 21 } + + miscLowTapeWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to tape since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 22 } + + miscCacheAge OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Age in minutes of the oldest read-only blocks + in the buffer cache. This indicates how fast + read operations are cycling through system + memory; when the appliance is reading very + large files (larger than the machine's memory + size), buffer cache age will be very low." + ::= { misc 23 } + + miscCorrectedMachineChecks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of corrected machine checks since + the last boot." + + ::= { misc 24 } + + miscGlobalStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the global status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(3)." + ::= { misc 25 } + + miscWindowsSetupWizardVersion OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version number of Windows Setup Wizard + required to configure the appliance. Windows + Setup Wizard with a version number lower than + this integer is not capable of configuring the + appliance." + ::= { misc 26 } + + misc64NfsOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side NFS calls since + the last boot. This object returns all of the + 64 bit unsigned integer." + ::= { misc 27 } + + misc64CifsOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side CIFS calls since + the last boot. This object returns all of the + 64 bit unsigned integer." + ::= { misc 28 } + + misc64HttpOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of HTTP operations received + since the last boot. This object returns all of + the 64 bit unsigned integer." + ::= { misc 29 } + + misc64NetRcvdBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received on all the + network interfaces, since the last boot. This + object returns all of the 64 bit unsigned integer." + ::= { misc 30 } + + misc64NetSentBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes transmitted on all the + network interfaces, since the last boot. This + object returns all of the 64 bit unsigned integer." + ::= { misc 31 } + + misc64DiskReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from disk + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 32 } + + misc64DiskWriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to disk + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 33 } + + misc64TapeReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from tape + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 34 } + + misc64TapeWriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to tape + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 35 } + + -- the Clustered Failover group + + cfSettings OBJECT-TYPE + SYNTAX INTEGER { + notConfigured(1), + enabled(2), + disabled(3), + takeoverByPartnerDisabled(4), + thisNodeDead(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Clustered Failover configuration settings. + The value notConfigured(1) indicates that the + cluster is not licensed. The thisNodeDead(5) + setting indicates that this node has been + taken over." + ::= { cf 1 } + + cfState OBJECT-TYPE + SYNTAX INTEGER { + dead(1), + canTakeover(2), + cannotTakeover(3), + takeover(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Clustered Failover state." + ::= { cf 2 } + + cfCannotTakeoverCause OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + unknownReason(2), + disabledByOperator(3), + interconnectOffline(4), + disabledByPartner(5), + takeoverFailed(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The reason this node cannot takeover its + partner" + ::= { cf 3 } + + cfPartnerStatus OBJECT-TYPE + SYNTAX INTEGER { + maybeDown(1), + ok(2), + dead(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the status last returned by the + Clustered Failover partner." + ::= { cf 4 } + + cfPartnerLastStatusUpdate OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If non-zero, the absolute time of the last + update from the Clustered Failover partner." + ::= { cf 5 } + + cfPartnerName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hostname for Clustered Failover partner." + ::= { cf 6 } + + cfPartnerSysid OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System ID for Clustered Failover partner." + ::= { cf 7 } + + cfInterconnectStatus OBJECT-TYPE + SYNTAX INTEGER { + notPresent(1), + down(2), + partialFailure(3), + up(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of the interconnect. + The partialFailure(3) status indicates that + one of the links in the interconnect hardware + is down." + ::= { cf 8 } + + -- the environment group for sysStat + + envOverTemperature OBJECT-TYPE + SYNTAX INTEGER { + no(1), + yes(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of whether the hardware is + currently operating outside of its recommended + temperature range. The hardware will shutdown + if the temperature exceeds critical thresholds." + + ::= { environment 1 } + + envFailedFanCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of chassis fans which + are not operating within the recommended + RPM range." + + ::= { environment 2 } + + envFailedFanMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Text message describing the current condition of + chassis fans. This is useful only if + envFailedFanCount is not zero." + + ::= { environment 3 } + + + envFailedPowerSupplyCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of power supplies which + are in degraded mode." + + ::= { environment 4 } + + envFailedPowerSupplyMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Text message describing the state of any + power supplies which are currently degraded. + This is useful only if envFailedPowerSupplyCount + is not zero." + + ::= { environment 5 } + + -- -- -- -- -- -- -- + -- the nvram group for sysStat + + nvramBatteryStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + partiallyDischarged(2), + fullyDischarged(3), + notPresent(4), + nearEndOfLife(5), + atEndOfLife(6), + unknown(7), + overCharged(8), + fullyCharged(9) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of the current status of the + NVRAM battery or batteries. Batteries which + are fully or partially discharged may not + fully protect the system during a crash. + + The end-of-life status values are based on + the manufacturer's recommended life for the + batteries." + + ::= { nvram 1 } + + -- -- -- -- -- -- -- + -- the cp group for sysStat + + cpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) since boot + during which the system has had a consistency point + (cp) operation in progress." + ::= { cp 1 } + + cpFromTimerOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by timer." + ::= { cp 2 } + + cpFromSnapshotOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by snapshot operation." + ::= { cp 3 } + + cpFromLowWaterOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by low water mark." + ::= { cp 4 } + + cpFromHighWaterOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by high water mark." + ::= { cp 5 } + + cpFromLogFullOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by nv-log full." + ::= { cp 6 } + + cpFromCpOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of back to back consistency point + operations since boot." + ::= { cp 7 } + + cpTotalOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of consistency point operations + since boot." + ::= { cp 8 } + + cpFromFlushOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by flushing unlogged write data." + ::= { cp 9 } + + cpFromSyncOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by file system sync requests." + ::= { cp 10 } + + cpFromLowVbufOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by low virtual buffers." + ::= { cp 11 } + + cpFromCpDeferredOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of back to back consistency point + operations since boot that were deferred." + ::= { cp 12 } + + cpFromLowDatavecsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by low datavecs." + ::= { cp 13 } + + -- -- -- -- -- -- -- + -- the autosupport group for sysStat + + autosupportStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + smtpFailure(2), + postFailure(3), + smtpPostFailure(4), + unknown(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of the current status of + autosupport on the appliance. describes + the success or failure of most recent + attempts to send autosupports." + + ::= { autosupport 1 } + + autosupportStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the autosupport status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(1)." + + ::= { autosupport 2 } + + autosupportSuccessfulSends OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of autosupport messages + successfully sent since the last reset." + + ::= { autosupport 3 } + + autosupportFailedSends OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of autosupport messages + not sent successfully since the last reset." + + ::= { autosupport 4 } + + + -- -- -- -- -- -- -- + -- the NFS group -- + -- -- -- -- -- -- -- + + curNfs OBJECT IDENTIFIER ::= { nfs 1 } + + totNfs OBJECT IDENTIFIER ::= { nfs 2 } + + nfsOptions OBJECT IDENTIFIER ::= { nfs 3 } + + + -- the curNfs group + + -- this group contains NFS statistics since the last + -- time the statistics were cleared + + rpcServ OBJECT IDENTIFIER ::= { curNfs 1 } + + nfsServ OBJECT IDENTIFIER ::= { curNfs 2 } + + nfsPerClient OBJECT IDENTIFIER ::= { curNfs 3 } + + + + -- the rpcServ group + + rpcCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received, since + the last time the statistics were cleared." + ::= { rpcServ 1 } + + rpcBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer, since the last time the statistics were + cleared." + ::= { rpcServ 2 } + + rpcNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call was not available + when it was thought to be received, since the + last time the statistics were cleared." + ::= { rpcServ 3 } + + rpcBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received with a length + shorter than a minimum-sized RPC call, since the + last time the statistics were cleared." + ::= { rpcServ 4 } + + rpcServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received whose header + could not be XDR decoded, since the last time + the statistics were cleared." + ::= { rpcServ 5 } + + rcpTcpCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received for the + TCP protocol, since the last time the statistics + were cleared." + ::= { rpcServ 6 } + + rcpTcpBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer for the TCP protocol, since the last + time the statistics were cleared." + ::= { rpcServ 7 } + + rcpTcpNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call for the TCP + protocol was not available when it was thought + to be received, since the last time the + statistics were cleared." + ::= { rpcServ 8 } + + rcpTcpBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the TCP protocol + received with a length shorter than a minimum-sized + RPC call, since the last time the statistics + were cleared." + ::= { rpcServ 9 } + + rcpTcpServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the TCP protocol + received whose header could not be XDR decoded, + since the last time the statistics were cleared." + ::= { rpcServ 10 } + + rpcUdpCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received for the + UDP protocol, since the last time the statistics + were cleared." + ::= { rpcServ 11 } + + rpcUdpBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer for the UDP protocol, since the last + time the statistics were cleared." + ::= { rpcServ 12 } + + rpcUdpNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call for the UDP + protocol was not available when it was thought + to be received, since the last time the + statistics were cleared." + ::= { rpcServ 13 } + + rpcUdpBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the UDP protocol + received with a length shorter than a minimum-sized + RPC call, since the last time the statistics + were cleared." + ::= { rpcServ 14 } + + rpcUdpServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the UDP protocol + received whose header could not be XDR decoded, + since the last time the statistics were cleared." + ::= { rpcServ 15 } + + + -- the nfsServ group + + nfsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received, since + the last time the statistics were cleared." + ::= { nfsServ 1 } + + nfsServBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of received NFS calls rejected, + since the last time the statistics were cleared." + ::= { nfsServ 2 } + + nfsV2 OBJECT IDENTIFIER ::= { nfsServ 3 } + + nfsV3 OBJECT IDENTIFIER ::= { nfsServ 4 } + + replyCache OBJECT IDENTIFIER ::= { nfsServ 5 } + + nfsrwStats OBJECT IDENTIFIER ::= { nfsServ 6 } + + + -- the nfsV2 group + + -- this group contains statistics for NFS + -- Version 2 calls processed since the last + -- time the statistics were cleared + + v2Calls OBJECT IDENTIFIER ::= { nfsV2 1 } + + v2Percent OBJECT IDENTIFIER ::= { nfsV2 2 } + + v2CachedCalls OBJECT IDENTIFIER ::= { nfsV2 3 } + + v2CachedPerCent OBJECT IDENTIFIER ::= { nfsV2 4 } + + + + -- the v2Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure + -- since the last time the statistics were cleared + + v2cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + since the last time the statistics were cleared." + ::= { v2Calls 1 } + + v2cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 2 } + + v2cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 3 } + + v2cRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 4 } + + v2cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 5 } + + v2cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, since the last time the + statistics were cleared." + ::= { v2Calls 6 } + + v2cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 7 } + + v2cWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 8 } + + v2cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 9 } + + v2cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 10 } + + v2cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 11 } + + v2cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 12 } + + v2cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 13 } + + v2cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 14 } + + v2cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 15 } + + v2cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 16 } + + v2cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 17 } + + v2cStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, since the last time + the statistics were cleared." + ::= { v2Calls 18 } + + + + -- the v2Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- as a percentage of total NFS calls received, + -- since the last time the statistics were cleared + + v2pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure + as a percentage of total NFS calls received, + since the last time the statistics were cleared." + ::= { v2Percent 1 } + + v2pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 2 } + + v2pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 3 } + + v2pRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 4 } + + v2pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 5 } + + v2pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure as a percentage of total NFS + calls received, since the last time the + statistics were cleared." + ::= { v2Percent 6 } + + v2pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 7 } + + v2pWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 8 } + + v2pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 9 } + + v2pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 10 } + + v2pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 11 } + + v2pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 12 } + + v2pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 13 } + + v2pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 14 } + + v2pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 15 } + + v2pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 16 } + + v2pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 17 } + + v2pStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure as a percentage of + total NFS calls received, since the last + time the statistics were cleared." + ::= { v2Percent 18 } + + + + -- the v2CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last time the statistics + -- were cleared + + v2ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v2CachedCalls 1 } + + v2ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 2 } + + v2ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 3 } + + v2ccRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 4 } + + v2ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 5 } + + v2ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 6 } + + v2ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 7 } + + v2ccWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 8 } + + v2ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 9 } + + v2ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 10 } + + v2ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 11 } + + v2ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 12 } + + v2ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 13 } + + v2ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 14 } + + v2ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 15 } + + v2ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 16 } + + v2ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 17 } + + v2ccStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from disk, + since the last time the statistics were cleared." + ::= { v2CachedCalls 18 } + + + + -- the v2CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last time the statistics were cleared + + v2cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v2CachedPerCent 1 } + + v2cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 2 } + + v2cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 3 } + + v2cpRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 4 } + + v2cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 5 } + + v2cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 6 } + + v2cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 7 } + + v2cpWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 8 } + + v2cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 9 } + + v2cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 10 } + + v2cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 11 } + + v2cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 12 } + + v2cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 13 } + + v2cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 14 } + + v2cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 15 } + + v2cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 16 } + + v2cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 17 } + + v2cpStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from + disk, as a percentage of the total number + of calls received for this procedure, since + the last time the statistics were cleared." + ::= { v2CachedPerCent 18 } + + + + -- the nfsV3 group + + -- this group contains statistics for NFS + -- Version 3 calls processed since the last + -- time the statistics were cleared + + v3Calls OBJECT IDENTIFIER ::= { nfsV3 1 } + + v3Percent OBJECT IDENTIFIER ::= { nfsV3 2 } + + v3CachedCalls OBJECT IDENTIFIER ::= { nfsV3 3 } + + v3CachedPerCent OBJECT IDENTIFIER ::= { nfsV3 4 } + + + + -- the v3Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure + -- since the last time the statistics were cleared + + v3cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + since the last time the statistics were cleared." + ::= { v3Calls 1 } + + v3cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 2 } + + v3cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 3 } + + v3cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 4 } + + v3cAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 5 } + + v3cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 6 } + + v3cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 7 } + + v3cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 8 } + + v3cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 9 } + + v3cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 10 } + + v3cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 11 } + + v3cMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 12 } + + v3cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 13 } + + v3cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 14 } + + v3cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, since the last time + the statistics were cleared." + ::= { v3Calls 15 } + + v3cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 16 } + + v3cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 17 } + + v3cReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, since the last + time the statistics were cleared." + ::= { v3Calls 18 } + + v3cFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, since the + last time the statistics were cleared." + ::= { v3Calls 19 } + + v3cFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, since the last time + the statistics were cleared." + ::= { v3Calls 20 } + + v3cPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, since the last time + the statistics were cleared." + ::= { v3Calls 21 } + + v3cCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, since + the last time the statistics were cleared." + ::= { v3Calls 22 } + + + + -- the v3Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- as a percentage of total NFS calls received, + -- since the last time the statistics were cleared + + v3pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + as a percentage of the total NFS calls + received, since the last time the statistics + were cleared." + ::= { v3Percent 1 } + + v3pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 2 } + + v3pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 3 } + + v3pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 4 } + + v3pAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access + Permission) procedure, as a percentage of + the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 5 } + + v3pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last time the + statistics were cleared." + ::= { v3Percent 6 } + + v3pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 7 } + + v3pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 8 } + + v3pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 9 } + + v3pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 10 } + + v3pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last time the + statistics were cleared." + ::= { v3Percent 11 } + + v3pMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, as a percentage of the + total NFS calls received, since the last + time the statistics were cleared." + ::= { v3Percent 12 } + + v3pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 13 } + + v3pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 14 } + + v3pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, as a percentage of + the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 15 } + + v3pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, as a percentage of + the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 16 } + + v3pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 17 } + + v3pReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, as a percentage + of the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 18 } + + v3pFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, as a percentage + of the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 19 } + + v3pFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, as a percentage of the + total NFS calls received, since the last time + the statistics were cleared." + ::= { v3Percent 20 } + + v3pPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, as a percentage of the + total NFS calls received, since the last time + the statistics were cleared." + ::= { v3Percent 21 } + + v3pCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, as a + percentage of the total NFS calls received, + since the last time the statistics were cleared." + ::= { v3Percent 22 } + + + + -- the v3CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last time the statistics + -- were cleared + + v3ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 1 } + + v3ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 2 } + + v3ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 3 } + + v3ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 4 } + + v3ccAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 5 } + + v3ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 6 } + + v3ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 7 } + + v3ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 8 } + + v3ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 9 } + + v3ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 10 } + + v3ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 11 } + + v3ccMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 12 } + + v3ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 13 } + + v3ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 14 } + + v3ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 15 } + + v3ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 16 } + + v3ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From + Directory) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 17 } + + v3ccReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 18 } + + v3ccFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last time the statistics + were cleared." + ::= { v3CachedCalls 19 } + + v3ccFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last time the statistics + were cleared." + ::= { v3CachedCalls 20 } + + v3ccPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + since the last time the statistics were cleared." + ::= { v3CachedCalls 21 } + + v3ccCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that did + not result in the filesystem blocking to read + from disk, since the last time the statistics + were cleared." + ::= { v3CachedCalls 22 } + + + + -- the v3CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last time the statistics were cleared + + v3cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 1 } + + v3cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 2 } + + v3cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 3 } + + v3cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 4 } + + v3cpAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 5 } + + v3cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 6 } + + v3cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 7 } + + v3cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 8 } + + v3cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 9 } + + v3cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 10 } + + v3cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 11 } + + v3cpMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 12 } + + v3cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 13 } + + v3cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 14 } + + v3cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 15 } + + v3cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 16 } + + v3cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 17 } + + v3cpReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 18 } + + v3cpFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read from + disk, as a percentage of the total number of + calls received for this procedure, since the + last time the statistics were cleared." + ::= { v3CachedPerCent 19 } + + v3cpFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 20 } + + v3cpPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 21 } + + v3cpCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that + did not result in the filesystem blocking to + read from disk, as a percentage of the total + number of calls received for this procedure, + since the last time the statistics were cleared." + ::= { v3CachedPerCent 22 } + + + + -- the replyCache group + + -- this group contains statistics related to the + -- Reply Cache processing, since the last time the + -- statistics were cleared + + rcInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped, + for calls already in progress, since the last + time the statistics were cleared." + ::= { replyCache 1 } + + rcDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped, + for replies already generated within a short + interval, since the last time the statistics + were cleared. These stats are deprecated. + A value of zero will always be returned + for these stats." + ::= { replyCache 2 } + + rcMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for which + there were no corresponding entries already in + the Reply Cache, since the last time the + statistics were cleared." + ::= { replyCache 3 } + + rcNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received that + resulted in replies being replayed from + the Reply Cache, since the last time the + statistics were cleared." + ::= { replyCache 4 } + + rcNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for calls + that resulted in this request being processed + as a new request even when a corresponding + entry existed in the Reply Cache, since the + last time the statistics were cleared." + ::= { replyCache 5 } + + rcTcpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for calls already in + progress, since the last time the statistics + were cleared." + ::= { replyCache 6 } + + rcTcpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for replies already + generated within a short interval, since the + last time the statistics were cleared. These + stats are deprecated. A value of zero will + always be returned for these stats." + ::= { replyCache 7 } + + rcTcpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for which there were no + corresponding entries already in the Reply + Cache, since the last time the statistics + were cleared." + ::= { replyCache 8 } + + rcTcpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol that resulted in replies being + replayed from the Reply Cache, since the last + time the statistics were cleared." + ::= { replyCache 9 } + + rcTcpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last time the statistics were + cleared." + ::= { replyCache 10 } + + rcUdpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for calls already in + progress, since the last time the statistics + were cleared." + ::= { replyCache 11 } + + rcUdpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for replies already + generated within a short interval, since the + last time the statistics were cleared. These + stats are deprecated. A value of zero will + always be returned for these stats." + ::= { replyCache 12 } + + rcUdpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for which there were no + corresponding entries already in the Reply + Cache, since the last time the statistics + were cleared." + ::= { replyCache 13 } + + rcUdpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol that resulted in replies being + replayed from the Reply Cache, since the last + time the statistics were cleared." + ::= { replyCache 14 } + + rcUdpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last time the statistics were + cleared." + ::= { replyCache 15 } + + -- the nfsrwStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 and 3 read and write calls made + -- since the last time the stats were zeroed. + + v2ReadStats OBJECT IDENTIFIER ::= { nfsrwStats 1 } + + v2WriteStats OBJECT IDENTIFIER ::= { nfsrwStats 2 } + + v3ReadStats OBJECT IDENTIFIER ::= { nfsrwStats 3 } + + v3WriteStats OBJECT IDENTIFIER ::= { nfsrwStats 4 } + + + -- v2ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 read calls since they were last + -- zeroed. + + v2Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 0-511 bytes." + ::= { v2ReadStats 1 } + + v2Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v2ReadStats 2 } + + v2Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v2ReadStats 3 } + + v2Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v2ReadStats 4 } + + v2Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v2ReadStats 5 } + + v2Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v2ReadStats 6 } + + v2Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v2ReadStats 7 } + + v2Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v2ReadStats 8 } + + v2Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v2ReadStats 9 } + + + -- the v2WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 write calls since they were last + -- zeroed. + + v2Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 0-511 bytes." + ::= { v2WriteStats 1 } + + v2Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v2WriteStats 2 } + + v2Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v2WriteStats 3 } + + v2Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v2WriteStats 4 } + + v2Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v2WriteStats 5 } + + v2Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v2WriteStats 6 } + + v2Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v2WriteStats 7 } + + v2Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v2WriteStats 8 } + + v2Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v2WriteStats 9 } + + + -- the v3ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 read calls since they were last + -- zeroed. + + v3Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { v3ReadStats 1 } + + v3Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v3ReadStats 2 } + + v3Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v3ReadStats 3 } + + v3Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v3ReadStats 4 } + + v3Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v3ReadStats 5 } + + v3Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v3ReadStats 6 } + + v3Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v3ReadStats 7 } + + v3Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v3ReadStats 8 } + + v3Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v3ReadStats 9 } + + + -- the v3WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 write calls since they were last + -- zeroed. + + v3Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 0-511 bytes." + ::= { v3WriteStats 1 } + + v3Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v3WriteStats 2 } + + v3Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v3WriteStats 3 } + + v3Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v3WriteStats 4 } + + v3Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v3WriteStats 5 } + + v3Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v3WriteStats 6 } + + v3Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v3WriteStats 7 } + + v3Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v3WriteStats 8 } + + v3Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v3WriteStats 9 } + + + -- the per-client nfs statistics table + + pclTable OBJECT-TYPE + SYNTAX SEQUENCE OF PclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-client NFS statistics + since the last time the statistics were cleared." + ::= { nfsPerClient 1 } + + pclEntry OBJECT-TYPE + SYNTAX PclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of NFS statistics for the + referenced NFS client since the last time the + statistics were cleared." + INDEX { pclIpAddr } + ::= { pclTable 1 } + + PclEntry ::= + SEQUENCE { + pclIpAddr + IpAddress, + pclRpcCalls + Counter32, + pclRpcBadCalls + Counter32, + pclRpcNullRecvs + Counter32, + pclRpcBadLens + Counter32, + pclRpcServXDRCalls + Counter32, + pclNfsCalls + Counter32, + pclNfsServBadCalls + Counter32, + pclNfsV2Nulls + Counter32, + pclNfsV2Getattrs + Counter32, + pclNfsV2Setattrs + Counter32, + pclNfsV2Roots + Counter32, + pclNfsV2Lookups + Counter32, + pclNfsV2Readlinks + Counter32, + pclNfsV2Reads + Counter32, + pclNfsV2Wrcaches + Counter32, + pclNfsV2Writes + Counter32, + pclNfsV2Creates + Counter32, + pclNfsV2Removes + Counter32, + pclNfsV2Renames + Counter32, + pclNfsV2Links + Counter32, + pclNfsV2Symlinks + Counter32, + pclNfsV2Mkdirs + Counter32, + pclNfsV2Rmdirs + Counter32, + pclNfsV2Readdirs + Counter32, + pclNfsV2Statfss + Counter32, + pclNfsV3Nulls + Counter32, + pclNfsV3Getattrs + Counter32, + pclNfsV3Setattrs + Counter32, + pclNfsV3Lookups + Counter32, + pclNfsV3Accesss + Counter32, + pclNfsV3Readlinks + Counter32, + pclNfsV3Reads + Counter32, + pclNfsV3Writes + Counter32, + pclNfsV3Creates + Counter32, + pclNfsV3Mkdirs + Counter32, + pclNfsV3Symlinks + Counter32, + pclNfsV3Mknods + Counter32, + pclNfsV3Removes + Counter32, + pclNfsV3Rmdirs + Counter32, + pclNfsV3Renames + Counter32, + pclNfsV3Links + Counter32, + pclNfsV3Readdirs + Counter32, + pclNfsV3ReaddirPluss + Counter32, + pclNfsV3Fsstats + Counter32, + pclNfsV3Fsinfos + Counter32, + pclNfsV3Pathconfs + Counter32, + pclNfsV3Commits + Counter32, + pclPerCent + Integer32, + pclNfsV2NullPerCent + Integer32, + pclNfsV2GetattrPerCent + Integer32, + pclNfsV2SetattrPerCent + Integer32, + pclNfsV2RootPerCent + Integer32, + pclNfsV2LookupPerCent + Integer32, + pclNfsV2ReadlinkPerCent + Integer32, + pclNfsV2ReadPerCent + Integer32, + pclNfsV2WrcachePerCent + Integer32, + pclNfsV2WritePerCent + Integer32, + pclNfsV2CreatePerCent + Integer32, + pclNfsV2RemovePerCent + Integer32, + pclNfsV2RenamePerCent + Integer32, + pclNfsV2LinkPerCent + Integer32, + pclNfsV2SymlinkPerCent + Integer32, + pclNfsV2MkdirPerCent + Integer32, + pclNfsV2RmdirPerCent + Integer32, + pclNfsV2ReaddirPerCent + Integer32, + pclNfsV2StatfsPerCent + Integer32, + pclNfsV3NullPerCent + Integer32, + pclNfsV3GetattrPerCent + Integer32, + pclNfsV3SetattrPerCent + Integer32, + pclNfsV3LookupPerCent + Integer32, + pclNfsV3AccessPerCent + Integer32, + pclNfsV3ReadlinkPerCent + Integer32, + pclNfsV3ReadPerCent + Integer32, + pclNfsV3WritePerCent + Integer32, + pclNfsV3CreatePerCent + Integer32, + pclNfsV3MkdirPerCent + Integer32, + pclNfsV3SymlinkPerCent + Integer32, + pclNfsV3MknodPerCent + Integer32, + pclNfsV3RemovePerCent + Integer32, + pclNfsV3RmdirPerCent + Integer32, + pclNfsV3RenamePerCent + Integer32, + pclNfsV3LinkPerCent + Integer32, + pclNfsV3ReaddirPerCent + Integer32, + pclNfsV3ReaddirPlusPerCent + Integer32, + pclNfsV3FsstatPerCent + Integer32, + pclNfsV3FsinfoPerCent + Integer32, + pclNfsV3PathconfPerCent + Integer32, + pclNfsV3CommitPerCent + Integer32, + pclNfsV2Read512Calls + Counter32, + pclNfsV2Read1KCalls + Counter32, + pclNfsV2Read2KCalls + Counter32, + pclNfsV2Read4KCalls + Counter32, + pclNfsV2Read8KCalls + Counter32, + pclNfsV2Read16KCalls + Counter32, + pclNfsV2Read32KCalls + Counter32, + pclNfsV2Read64KCalls + Counter32, + pclNfsV2Read128KCalls + Counter32, + pclNfsV2Write512Calls + Counter32, + pclNfsV2Write1KCalls + Counter32, + pclNfsV2Write2KCalls + Counter32, + pclNfsV2Write4KCalls + Counter32, + pclNfsV2Write8KCalls + Counter32, + pclNfsV2Write16KCalls + Counter32, + pclNfsV2Write32KCalls + Counter32, + pclNfsV2Write64KCalls + Counter32, + pclNfsV2Write128KCalls + Counter32, + pclNfsV3Read512Calls + Counter32, + pclNfsV3Read1KCalls + Counter32, + pclNfsV3Read2KCalls + Counter32, + pclNfsV3Read4KCalls + Counter32, + pclNfsV3Read8KCalls + Counter32, + pclNfsV3Read16KCalls + Counter32, + pclNfsV3Read32KCalls + Counter32, + pclNfsV3Read64KCalls + Counter32, + pclNfsV3Read128KCalls + Counter32, + pclNfsV3Write512Calls + Counter32, + pclNfsV3Write1KCalls + Counter32, + pclNfsV3Write2KCalls + Counter32, + pclNfsV3Write4KCalls + Counter32, + pclNfsV3Write8KCalls + Counter32, + pclNfsV3Write16KCalls + Counter32, + pclNfsV3Write32KCalls + Counter32, + pclNfsV3Write64KCalls + Counter32, + pclNfsV3Write128KCalls + Counter32 + } + + pclIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of the referenced client." + ::= { pclEntry 1 } + + pclRpcCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received from + the referenced client, since the last time the + statistics were cleared." + ::= { pclEntry 2 } + + pclRpcBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls received from the + referenced client that were rejected by the + RPC layer, since the last time the + statistics were cleared." + ::= { pclEntry 3 } + + pclRpcNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call was not available + when it was thought to be received from + referenced client, since the last time the + statistics were cleared." + ::= { pclEntry 4 } + + pclRpcBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received from the + referenced client with a length shorter + than a minimum-sized RPC call, since the + last time the statistics were cleared." + ::= { pclEntry 5 } + + pclRpcServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received from the + referenced client whose header could not + be XDR decoded, since the last time the + statistics were cleared." + ::= { pclEntry 6 } + + pclNfsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received from + the referenced client, since the last time + the statistics were cleared." + ::= { pclEntry 7 } + + pclNfsServBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received from + the referenced client that were rejected, since + the last time the statistics were cleared." + ::= { pclEntry 8 } + + pclNfsV2Nulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_NULL + (Do Nothing) procedure, since the last time the + statistics were cleared." + ::= { pclEntry 9 } + + pclNfsV2Getattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_GETATTR + (Get File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 10 } + + pclNfsV2Setattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_SETATTR + (Set File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 11 } + + pclNfsV2Roots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_ROOT + (Get Filesystem Root) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 12 } + + pclNfsV2Lookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_LOOKUP + (Look Up File Name) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 13 } + + pclNfsV2Readlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_READLINK + (Read From Symbolic Link) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 14 } + + pclNfsV2Reads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_READ + (Read From File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 15 } + + pclNfsV2Wrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_WRITECACHE + (Write to Cache) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 16 } + + pclNfsV2Writes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_WRITE + (Write to File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 17 } + + pclNfsV2Creates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_CREATE + (Create File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 18 } + + pclNfsV2Removes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_REMOVE + (Remove File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 19 } + + pclNfsV2Renames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_RENAME + (Rename File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 20 } + + pclNfsV2Links OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_LINK + (Create Link to File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 21 } + + pclNfsV2Symlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_SYMLINK + (Create Symbolic Link) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 22 } + + pclNfsV2Mkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_MKDIR + (Create Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 23 } + + pclNfsV2Rmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_RMDIR + (Remove Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 24 } + + pclNfsV2Readdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_READDIR + (Read From Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 25 } + + pclNfsV2Statfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_STATFS + (Get Filesystem Attributes) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 26 } + + pclNfsV3Nulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_NULL + (Do Nothing) procedure, since the last time the + statistics were cleared." + ::= { pclEntry 27 } + + pclNfsV3Getattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_GETATTR + (Get File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 28 } + + pclNfsV3Setattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_SETATTR + (Set File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 29 } + + pclNfsV3Lookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_LOOKUP + (Lookup Filename) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 30 } + + pclNfsV3Accesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_ACCESS + (Check Access Permission) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 31 } + + pclNfsV3Readlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_READLINK + (Read from Symbolic Link) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 32 } + + pclNfsV3Reads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_READ + (Read From File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 33 } + + pclNfsV3Writes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_WRITE + (Write to File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 34 } + + pclNfsV3Creates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_CREATE + (Create a File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 35 } + + pclNfsV3Mkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_MKDIR + (Create a Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 36 } + + pclNfsV3Symlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_SYMLINK + (Create a Symbolic Link) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 37 } + + pclNfsV3Mknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_MKNOD + (Create a Special Device) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 38 } + + pclNfsV3Removes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_REMOVE + (Remove a File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 39 } + + pclNfsV3Rmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_RMDIR + (Remove a Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 40 } + + pclNfsV3Renames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_RENAME + (Rename a File or Directory) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 41 } + + pclNfsV3Links OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_LINK + (Create Link to an Object) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 42 } + + pclNfsV3Readdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_READDIR + (Read From Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 43 } + + pclNfsV3ReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the + NFSPROC3_READDIRPLUS (Extended Read from + Directory) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 44 } + + pclNfsV3Fsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_FSSTAT + (Get Dynamic File System Information) procedure, + since the last time the statistics were cleared." + ::= { pclEntry 45 } + + pclNfsV3Fsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_FSINFO + (Get Static File System Information) procedure, + since the last time the statistics were cleared." + ::= { pclEntry 46 } + + pclNfsV3Pathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_PATHCONF + (Retrieve POSIX Information) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 47 } + + pclNfsV3Commits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_COMMIT + (Commit Cached Data on a Server to Stable Storage) + procedure, since the last time the statistics were + cleared." + ::= { pclEntry 48 } + + pclPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of the total NFS calls for the + referenced client as a percentage of the + total NFS calls received from all + clients, since the last time the + statistics were cleared." + ::= { pclEntry 49 } + + pclNfsV2NullPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_NULL (Do Nothing) procedure, + as a percentage of the total calls + received from this client, since the + last time the statistics were cleared." + ::= { pclEntry 50 } + + pclNfsV2GetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_GETATTR (Get File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 51 } + + pclNfsV2SetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_SETATTR (Set File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 52 } + + pclNfsV2RootPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_ROOT (Get Filesystem Root) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 53 } + + pclNfsV2LookupPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_LOOKUP (Look Up File Name) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 54 } + + pclNfsV2ReadlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_READLINK (Read From Symbolic + Link) procedure, as a percentage of the + total calls received from this client, + since the last time the statistics were + cleared." + ::= { pclEntry 55 } + + pclNfsV2ReadPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_READ (Read From File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 56 } + + pclNfsV2WrcachePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_WRITECACHE (Write to Cache) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 57 } + + pclNfsV2WritePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_WRITE (Write to File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 58 } + + pclNfsV2CreatePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_CREATE (Create File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 59 } + + pclNfsV2RemovePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_REMOVE (Remove File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 60 } + + pclNfsV2RenamePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_RENAME (Rename File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 61 } + + pclNfsV2LinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_LINK (Create Link to File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 62 } + + pclNfsV2SymlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 63 } + + pclNfsV2MkdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_MKDIR (Create Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 64 } + + pclNfsV2RmdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_RMDIR (Remove Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 65 } + + pclNfsV2ReaddirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_READDIR (Read From Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 66 } + + pclNfsV2StatfsPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, as a percentage + of the total calls received from this + client, since the last time the + statistics were cleared." + ::= { pclEntry 67 } + + pclNfsV3NullPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_NULL (Do Nothing) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 68 } + + pclNfsV3GetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_GETATTR (Get File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 69 } + + pclNfsV3SetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_SETATTR (Set File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 70 } + + pclNfsV3LookupPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_LOOKUP (Lookup Filename) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 71 } + + pclNfsV3AccessPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_ACCESS (Check Access Permission) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 72 } + + pclNfsV3ReadlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 73 } + + pclNfsV3ReadPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READ (Read From File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 74 } + + pclNfsV3WritePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_WRITE (Write to File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 75 } + + pclNfsV3CreatePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_CREATE (Create a File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 76 } + + pclNfsV3MkdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_MKDIR (Create a Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 77 } + + pclNfsV3SymlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 78 } + + pclNfsV3MknodPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_MKNOD (Create a Special + Device) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 79 } + + pclNfsV3RemovePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_REMOVE (Remove a File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 80 } + + pclNfsV3RmdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_RMDIR (Remove a Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 81 } + + pclNfsV3RenamePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_RENAME (Rename a File or + Directory) procedure, as a percentage of + the total calls received from this client, + since the last time the statistics were + cleared." + ::= { pclEntry 82 } + + pclNfsV3LinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_LINK (Create Link to an Object) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 83 } + + pclNfsV3ReaddirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READDIR (Read From Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 84 } + + pclNfsV3ReaddirPlusPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READDIRPLUS (Extended Read from + Directory) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 85 } + + pclNfsV3FsstatPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, as a + percentage of the total calls received + from this client, since the last time + the statistics were cleared." + ::= { pclEntry 86 } + + pclNfsV3FsinfoPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_FSINFO (Get Static File System + Information) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 87 } + + pclNfsV3PathconfPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 88 } + + pclNfsV3CommitPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, as + a percentage of the total calls received + from this client, since the last time the + statistics were cleared." + ::= { pclEntry 89 } + + pclNfsV2Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 90 } + + pclNfsV2Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 91 } + + pclNfsV2Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 92 } + + pclNfsV2Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 93 } + + pclNfsV2Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 94 } + + pclNfsV2Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 95 } + + pclNfsV2Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 96 } + + pclNfsV2Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 97 } + + pclNfsV2Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 98 } + + pclNfsV2Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 99 } + + pclNfsV2Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 100 } + + pclNfsV2Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 101 } + + pclNfsV2Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 102 } + + pclNfsV2Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 103 } + + pclNfsV2Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 104 } + + pclNfsV2Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 105 } + + pclNfsV2Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 106 } + + pclNfsV2Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 107 } + + pclNfsV3Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 108 } + + pclNfsV3Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 109 } + + pclNfsV3Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 110 } + + pclNfsV3Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 111 } + + pclNfsV3Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 112 } + + pclNfsV3Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 113 } + + pclNfsV3Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 114 } + + pclNfsV3Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 115 } + + pclNfsV3Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 116 } + + pclNfsV3Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 117 } + + pclNfsV3Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 118 } + + pclNfsV3Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 119 } + + pclNfsV3Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 120 } + + pclNfsV3Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 121 } + + pclNfsV3Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 122 } + + pclNfsV3Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 123 } + + pclNfsV3Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 124 } + + pclNfsV3Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 125 } + + + pclNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the pclTable table." + + ::= { nfsPerClient 2 } + + + + -- the totNfs group + + -- this group contains the NFS statistics since the + -- last boot + + trpcServ OBJECT IDENTIFIER ::= { totNfs 1 } + + tnfsServ OBJECT IDENTIFIER ::= { totNfs 2 } + + + + -- the trpcServ group + + trpcCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received, + since the last boot." + ::= { trpcServ 1 } + + trpcBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer, since the last boot." + ::= { trpcServ 2 } + + trpcNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call was not + available when it was thought to be received, + since the last boot." + ::= { trpcServ 3 } + + trpcBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received with a length + shorter than a minimum-sized RPC call, since + the last boot." + ::= { trpcServ 4 } + + trpcServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received whose header + could not be XDR decoded, since the last boot." + ::= { trpcServ 5 } + + + + -- the tnfsServ group + + tnfsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received, since + last boot." + ::= { tnfsServ 1 } + + tnfsServBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of received NFS calls rejected, + since last boot." + ::= { tnfsServ 2 } + + tnfsV2 OBJECT IDENTIFIER ::= { tnfsServ 3 } + + tnfsV3 OBJECT IDENTIFIER ::= { tnfsServ 4 } + + treplyCache OBJECT IDENTIFIER ::= { tnfsServ 5 } + + tnfsrwStats OBJECT IDENTIFIER ::= { tnfsServ 6 } + + + + -- the tnfsV2 group + + -- this group contains statistics for NFS + -- Version 2 calls processed since the last boot + + tv2Calls OBJECT IDENTIFIER ::= { tnfsV2 1 } + + tv2Percent OBJECT IDENTIFIER ::= { tnfsV2 2 } + + tv2CachedCalls OBJECT IDENTIFIER ::= { tnfsV2 3 } + + tv2CachedPerCent OBJECT IDENTIFIER ::= { tnfsV2 4 } + + + -- the tv2Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure + -- since the last boot + + tv2cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + since the last boot." + ::= { tv2Calls 1 } + + tv2cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, since the last boot." + ::= { tv2Calls 2 } + + tv2cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, since the the last boot." + ::= { tv2Calls 3 } + + tv2cRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, since the last boot." + ::= { tv2Calls 4 } + + tv2cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, since the last boot." + ::= { tv2Calls 5 } + + tv2cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, since the last boot." + ::= { tv2Calls 6 } + + tv2cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, since the last boot." + ::= { tv2Calls 7 } + + tv2cWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, since the last boot." + ::= { tv2Calls 8 } + + tv2cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, since the last boot." + ::= { tv2Calls 9 } + + tv2cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, since the last boot." + ::= { tv2Calls 10 } + + tv2cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, since the last boot." + ::= { tv2Calls 11 } + + tv2cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, since the last boot." + ::= { tv2Calls 12 } + + tv2cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, since the last boot." + ::= { tv2Calls 13 } + + tv2cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, since the last boot." + ::= { tv2Calls 14 } + + tv2cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, since the last boot." + ::= { tv2Calls 15 } + + tv2cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, since the last boot." + ::= { tv2Calls 16 } + + tv2cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, since the last boot." + ::= { tv2Calls 17 } + + tv2cStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, since the last boot." + ::= { tv2Calls 18 } + + + + -- the tv2Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- as a percentage of total NFS calls received, + -- since the last boot + + tv2pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure + as a percentage of total NFS calls received, + since the last boot." + ::= { tv2Percent 1 } + + tv2pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 2 } + + tv2pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 3 } + + tv2pRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 4 } + + tv2pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 5 } + + tv2pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure as a percentage of total NFS + calls received, since the last boot." + ::= { tv2Percent 6 } + + tv2pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 7 } + + tv2pWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 8 } + + tv2pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 9 } + + tv2pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 10 } + + tv2pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 11 } + + tv2pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 12 } + + tv2pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 13 } + + tv2pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 14 } + + tv2pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 15 } + + tv2pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 16 } + + tv2pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 17 } + + tv2pStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure as a percentage of + total NFS calls received, since the last boot." + ::= { tv2Percent 18 } + + + + -- the tv2CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last boot + + tv2ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem blocking + to read from disk, since the last boot." + ::= { tv2CachedCalls 1 } + + tv2ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 2 } + + tv2ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 3 } + + tv2ccRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 4 } + + tv2ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 5 } + + tv2ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 6 } + + tv2ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 7 } + + tv2ccWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 8 } + + tv2ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 9 } + + tv2ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 10 } + + tv2ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 11 } + + tv2ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 12 } + + tv2ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 13 } + + tv2ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 14 } + + tv2ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 15 } + + tv2ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 16 } + + tv2ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 17 } + + tv2ccStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 18 } + + + + -- the tv2CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last boot + + tv2cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv2CachedPerCent 1 } + + tv2cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 2 } + + tv2cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 3 } + + tv2cpRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 4 } + + tv2cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 5 } + + tv2cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 6 } + + tv2cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 7 } + + tv2cpWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 8 } + + tv2cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 9 } + + tv2cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 10 } + + tv2cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 11 } + + tv2cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 12 } + + tv2cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 13 } + + tv2cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 14 } + + tv2cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 15 } + + tv2cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 16 } + + tv2cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 17 } + + tv2cpStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from + disk, as a percentage of the total number + of calls received for this procedure, + since the last boot." + ::= { tv2CachedPerCent 18 } + + + -- the tnfsV3 group + + -- this group contains statistics for NFS + -- Version 3 calls processed since the last boot + + tv3Calls OBJECT IDENTIFIER ::= { tnfsV3 1 } + + tv3Percent OBJECT IDENTIFIER ::= { tnfsV3 2 } + + tv3CachedCalls OBJECT IDENTIFIER ::= { tnfsV3 3 } + + tv3CachedPerCent OBJECT IDENTIFIER ::= { tnfsV3 4 } + + + -- the tv3Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure + -- since the last boot + + tv3cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + since the last boot." + ::= { tv3Calls 1 } + + tv3cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, since the last boot." + ::= { tv3Calls 2 } + + tv3cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, since the last boot." + ::= { tv3Calls 3 } + + tv3cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, since the last boot." + ::= { tv3Calls 4 } + + tv3cAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, since the last boot." + ::= { tv3Calls 5 } + + tv3cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, since the last boot." + ::= { tv3Calls 6 } + + tv3cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, since the last boot." + ::= { tv3Calls 7 } + + tv3cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, since the last boot." + ::= { tv3Calls 8 } + + tv3cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, since the last boot." + ::= { tv3Calls 9 } + + tv3cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, since the last boot." + ::= { tv3Calls 10 } + + tv3cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, since the last boot." + ::= { tv3Calls 11 } + + tv3cMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, since the last boot." + ::= { tv3Calls 12 } + + tv3cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, since the last boot." + ::= { tv3Calls 13 } + + tv3cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, since the last boot." + ::= { tv3Calls 14 } + + tv3cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, since the last boot." + ::= { tv3Calls 15 } + + tv3cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, since the last boot." + ::= { tv3Calls 16 } + + tv3cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, since the last boot." + ::= { tv3Calls 17 } + + tv3cReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, since the last boot." + ::= { tv3Calls 18 } + + tv3cFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, since the + last boot." + ::= { tv3Calls 19 } + + tv3cFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, since the last boot." + ::= { tv3Calls 20 } + + tv3cPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, since the last boot." + ::= { tv3Calls 21 } + + tv3cCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, since + the last boot." + ::= { tv3Calls 22 } + + + + -- the tv3Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- as a percentage of total NFS calls received, + -- since the last boot + + tv3pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + as a percentage of the total NFS calls + received, since the last boot." + ::= { tv3Percent 1 } + + tv3pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 2 } + + tv3pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 3 } + + tv3pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 4 } + + tv3pAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access + Permission) procedure, as a percentage of + the total NFS calls received, since the last boot." + ::= { tv3Percent 5 } + + tv3pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last boot." + ::= { tv3Percent 6 } + + tv3pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 7 } + + tv3pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 8 } + + tv3pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 9 } + + tv3pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 10 } + + tv3pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last boot." + ::= { tv3Percent 11 } + + tv3pMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, as a percentage of the + total NFS calls received, since the last boot." + ::= { tv3Percent 12 } + + tv3pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 13 } + + tv3pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 14 } + + tv3pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, as a percentage of + the total NFS calls received, since the + last boot." + ::= { tv3Percent 15 } + + tv3pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, as a percentage of + the total NFS calls received, since the + last boot." + ::= { tv3Percent 16 } + + tv3pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 17 } + + tv3pReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, as a percentage + of the total NFS calls received, since the + last boot." + ::= { tv3Percent 18 } + + tv3pFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, as a percentage + of the total NFS calls received, since the + last boot." + ::= { tv3Percent 19 } + + tv3pFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, as a percentage of the + total NFS calls received, since the last boot." + ::= { tv3Percent 20 } + + tv3pPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, as a percentage of the + total NFS calls received, since the last boot." + ::= { tv3Percent 21 } + + tv3pCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, as a + percentage of the total NFS calls received, + since the last boot." + ::= { tv3Percent 22 } + + + + -- the tv3CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last boot + + tv3ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem blocking + to read from disk, since the last boot." + ::= { tv3CachedCalls 1 } + + tv3ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 2 } + + tv3ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 3 } + + tv3ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 4 } + + tv3ccAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 5 } + + tv3ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last boot." + ::= { tv3CachedCalls 6 } + + tv3ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 7 } + + tv3ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 8 } + + tv3ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 9 } + + tv3ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 10 } + + tv3ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last boot." + ::= { tv3CachedCalls 11 } + + tv3ccMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, since + the last boot." + ::= { tv3CachedCalls 12 } + + tv3ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 13 } + + tv3ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 14 } + + tv3ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 15 } + + tv3ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 16 } + + tv3ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 17 } + + tv3ccReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 18 } + + tv3ccFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last boot." + ::= { tv3CachedCalls 19 } + + tv3ccFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last boot." + ::= { tv3CachedCalls 20 } + + tv3ccPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 21 } + + tv3ccCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that did + not result in the filesystem blocking to read + from disk, since the last boot." + ::= { tv3CachedCalls 22 } + + + + -- the tv3CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last boot + + tv3cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 1 } + + tv3cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 2 } + + tv3cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 3 } + + tv3cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 4 } + + tv3cpAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 5 } + + tv3cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + last boot." + ::= { tv3CachedPerCent 6 } + + tv3cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 7 } + + tv3cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 8 } + + tv3cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 9 } + + tv3cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 10 } + + tv3cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 11 } + + tv3cpMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 12 } + + tv3cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 13 } + + tv3cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 14 } + + tv3cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 15 } + + tv3cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 16 } + + tv3cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 17 } + + tv3cpReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READIRPLUS (Extended Read + from Directory) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 18 } + + tv3cpFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read from + disk, as a percentage of the total number of + calls received for this procedure, since the + last boot." + ::= { tv3CachedPerCent 19 } + + tv3cpFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 20 } + + tv3cpPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 21 } + + tv3cpCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that + did not result in the filesystem blocking to + read from disk, as a percentage of the total + number of calls received for this procedure, + since the last boot." + ::= { tv3CachedPerCent 22 } + + + -- the treplyCache group + + -- this group contains statistics related to the + -- Reply Cache processing, since the last boot + + trcInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped, for + calls already in progress, since the last boot." + ::= { treplyCache 1 } + + trcDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped, + for replies already generated within a short + interval, since the last boot. These stats are + deprecated. A value of zero will always be + returned for these stats." + ::= { treplyCache 2 } + + trcMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for which + there were no corresponding entries already in + the Reply Cache, since the last boot." + ::= { treplyCache 3 } + + trcNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received that + resulted in replies being replayed from + the Reply Cache, since the last boot." + ::= { treplyCache 4 } + + trcNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for calls + that resulted in this request being processed + as a new request even when a corresponding + entry existed in the Reply Cache, since the + last boot." + ::= { treplyCache 5 } + + trcTcpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for calls already in + progress, since the last boot." + ::= { treplyCache 6 } + + trcTcpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for replies already + generated within a short interval, since the + last boot. These stats are deprecated. A value + of zero will always be returned for these stats." + ::= { treplyCache 7 } + + trcTcpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for which there were no corresponding + entries already in the Reply Cache, since the + last boot." + ::= { treplyCache 8 } + + trcTcpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol that resulted in replies being + replayed from the Reply Cache, since the + last boot." + ::= { treplyCache 9 } + + trcTcpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last boot." + ::= { treplyCache 10 } + + trcUdpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for calls already in + progress, since the last boot." + ::= { treplyCache 11 } + + trcUdpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for replies already + generated within a short interval, since the + last boot. These stats are deprecated. A value + of zero will always be returned for these stats." + ::= { treplyCache 12 } + + trcUdpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for which there were no corresponding + entries already in the Reply Cache, since the + last boot." + ::= { treplyCache 13 } + + trcUdpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol that resulted in replies being + replayed from the Reply Cache, since the + last boot." + ::= { treplyCache 14 } + + trcUdpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last boot." + ::= { treplyCache 15 } + + -- the tnfsrwStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 and 3 read and write calls since + -- last boot. + + tv2ReadStats OBJECT IDENTIFIER ::= { tnfsrwStats 1 } + + tv2WriteStats OBJECT IDENTIFIER ::= { tnfsrwStats 2 } + + tv3ReadStats OBJECT IDENTIFIER ::= { tnfsrwStats 3 } + + tv3WriteStats OBJECT IDENTIFIER ::= { tnfsrwStats 4 } + + + -- the tv2ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 read calls since last boot. + + tv2Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv2ReadStats 1 } + + tv2Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv2ReadStats 2 } + + tv2Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv2ReadStats 3 } + + + tv2Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv2ReadStats 4 } + + tv2Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv2ReadStats 5 } + + tv2Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv2ReadStats 6 } + + tv2Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv2ReadStats 7 } + + tv2Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv2ReadStats 8 } + + tv2Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv2ReadStats 9 } + + + -- the tv2WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 write calls since last boot. + + tv2Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv2WriteStats 1 } + + tv2Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv2WriteStats 2 } + + tv2Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv2WriteStats 3 } + + + tv2Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv2WriteStats 4 } + + tv2Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv2WriteStats 5 } + + tv2Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv2WriteStats 6 } + + tv2Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv2WriteStats 7 } + + tv2Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv2WriteStats 8 } + + tv2Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv2WriteStats 9 } + + + -- the tv3ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 read calls since last boot. + + tv3Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv3ReadStats 1 } + + tv3Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv3ReadStats 2 } + + tv3Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv3ReadStats 3 } + + + tv3Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv3ReadStats 4 } + + tv3Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv3ReadStats 5 } + + tv3Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv3ReadStats 6 } + + tv3Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv3ReadStats 7 } + + tv3Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv3ReadStats 8 } + + tv3Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv3ReadStats 9 } + + + -- the tv3WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 write calls since last boot. + + tv3Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv3WriteStats 1 } + + tv3Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv3WriteStats 2 } + + tv3Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv3WriteStats 3 } + + tv3Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv3WriteStats 4 } + + tv3Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv3WriteStats 5 } + + tv3Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv3WriteStats 6 } + + tv3Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv3WriteStats 7 } + + tv3Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv3WriteStats 8 } + + tv3Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv3WriteStats 9 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the nfsOptions group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + nfsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the nfs protocol is licensed on the + filer." + ::= { nfsOptions 1 } + + + -- -- -- -- -- -- -- + -- the quota group -- + -- -- -- -- -- -- -- + + quotaState OBJECT-TYPE + SYNTAX INTEGER { + quotaStateOff(1), + quotaStateOn(2), + quotaStateInit(3) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Indicates whether the root volume's quotas are ON, + OFF or initializing. This object is deprecated - + use qvStateTable.qvStateStat instead." + ::= { quota 1 } + + quotaInitPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Indicates percentage of root volume quota + computation done while quotas are in initializing + state. This object is deprecated - use + qvStateTable.qvInitPercent instead." + ::= { quota 2 } + + + -- the old volume-unaware quota report table. DEPRECATED + + qrTable OBJECT-TYPE + SYNTAX SEQUENCE OF QrEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for each user or group with + a quota in /etc/quotas. All quotas are displayed + regardless of volume, and no volume information + is given. This table is deprecated - use qrVTable + instead." + ::= { quota 3 } + + qrEntry OBJECT-TYPE + SYNTAX QrEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for a referenced entry + with a quota in the file /etc/quotas. + All quotas are displayed regardless of volume, + and no volume information is given. This object is + deprecated - use qrVEntry instead." + + INDEX { qrIndex } + ::= { qrTable 1 } + + QrEntry ::= + SEQUENCE { + qrIndex + Integer32, + qrType + Integer32, + qrId + Integer32, + qrKBytesUsed + Integer32, + qrKBytesLimit + Integer32, + qrFilesUsed + Integer32, + qrFileLimit + Integer32, + qrPathName + DisplayString + } + + qrIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry in the + file /etc/quotas." + ::= { qrEntry 1 } + + qrType OBJECT-TYPE + SYNTAX INTEGER { + qrTypeUser(1), + qrTypeGroup(2), + qrTypeTree(3), + qrTypeUnknown(4) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Identifies the kind of quota for this qrEntry." + ::= { qrEntry 2 } + + qrId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The UID (user's numerical ID) or the GID (numerical + ID of the group that a user belongs to), as + applicable, associated with this qrEntry." + ::= { qrEntry 3 } + + qrKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of KBytes used for this + qrEntry." + ::= { qrEntry 4 } + + qrKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of KBytes that can be used for this + qrEntry." + ::= { qrEntry 5 } + + qrFilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of files used for this + qrEntry." + ::= { qrEntry 6 } + + qrFileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of files that can be used for this + qrEntry." + ::= { qrEntry 7 } + + qrPathName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A textual string that contains the path + corresponding to this qrEntry." + ::= { qrEntry 8 } + + -- quota volume state table + + qvStateTable OBJECT-TYPE + SYNTAX SEQUENCE OF QvStateEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current quota state of + each volume in the system." + ::= { quota 4 } + + qvStateEntry OBJECT-TYPE + SYNTAX QvStateEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current quota state of + each volume in the system." + INDEX { qvStateVolume } + ::= { qvStateTable 1 } + + QvStateEntry ::= + SEQUENCE { + qvStateVolume + Integer32, + qvStateName + DisplayString, + qvStateStat + Integer32, + qvStateInitPercent + Integer32 + } + + qvStateVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this volume. The mapping + of this number to actual volumes may change if + volumes are added or deleted. Use qvStateName to + unambiguously identify a volume. The mapping + established by this object is the same as + the mapping of qrVVolume (below) to actual volumes. + For instance, if a qvStateVolume value of '5' + represents the volume 'vol2', a value of '5' + in qrVVolume also represents the volume 'vol2'." + ::= { qvStateEntry 1 } + + qvStateName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the name of this volume." + ::= { qvStateEntry 2 } + + qvStateStat OBJECT-TYPE + SYNTAX INTEGER { + quotaStateOff(1), + quotaStateOn(2), + quotaStateInit(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether quotas are ON, OFF or + initializing." + ::= { qvStateEntry 3 } + + qvStateInitPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates percentage of quota computation done + while quotas are in initializing state." + ::= { qvStateEntry 4 } + + + -- multi-volume-aware quota table + -- THIS IS DEPRECATED, please use qrV2Table instead + + qrVTable OBJECT-TYPE + SYNTAX SEQUENCE OF QrVEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for each user or group with + a quota in /etc/quotas." + ::= { quota 5 } + + + qrVEntry OBJECT-TYPE + SYNTAX QrVEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for a referenced entry + with a quota in the file /etc/quotas. Indices + select the volume of the quota and the quota entry + itself." + INDEX { qrVVolume, qrVIndex } + ::= { qrVTable 1 } + + QrVEntry ::= + SEQUENCE { + qrVIndex + Integer32, + qrVType + Integer32, + qrVId + Integer32, + qrVKBytesUsed + Integer32, + qrVKBytesLimit + Integer32, + qrVFilesUsed + Integer32, + qrVFileLimit + Integer32, + qrVPathName + DisplayString, + qrVVolume + Integer32, + qrVTree + DisplayString, + qrVIdType + Integer32, + qrVSid + DisplayString, + qrVKBytesThreshold + Integer32, + qrVKBytesLimitSoft + Integer32, + qrVFileLimitSoft + Integer32 + } + + qrVIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry in the + file /etc/quotas in the given volume." + ::= { qrVEntry 1 } + + qrVType OBJECT-TYPE + SYNTAX INTEGER { + qrVTypeUser(1), + qrVTypeGroup(2), + qrVTypeTree(3), + qrVTypeUserDefault(4), + qrVTypeGroupDefault(5), + qrVTypeUnknown(6) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Identifies the kind of quota for this qrVEntry." + ::= { qrVEntry 2 } + + qrVId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The UID (user's numerical ID) or the GID (numerical + ID of the group that a user belongs to), as + applicable, associated with this qrVEntry. Check + the qrVIdType field to see if this field is valid." + ::= { qrVEntry 3 } + + qrVKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of KBytes used for this + qrVEntry." + ::= { qrVEntry 4 } + + qrVKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of KBytes that can be used for this + qrVEntry." + ::= { qrVEntry 5 } + + qrVFilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of files used for this + qrVEntry." + ::= { qrVEntry 6 } + + qrVFileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of files that can be used for this + qrVEntry." + ::= { qrVEntry 7 } + + qrVPathName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A textual string that contains the path + corresponding to this qrVEntry." + ::= { qrVEntry 8 } + + qrVVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies the volume for which + this quota is in effect on. The volume that this + value represents can be determined by checking + the value of qvStateName (above) with + qvStateVolume set to the value found here." + ::= { qrVEntry 9 } + + qrVTree OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A string that indicates which qtree this quota + belongs to." + ::= { qrVEntry 10 } + + qrVIdType OBJECT-TYPE + SYNTAX INTEGER { + qrVIdValid(1), + qrVSidValid(2) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A value that indicates which ID field is valid." + ::= { qrVEntry 11} + + qrVSid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The one or more IDs associated with this qrVEntry. + If the qrVentry is associated with a Windows ID, the + text form of the Windows ID (the SID) is here. If + the qrVEntry is associated with more than one id, + this contains a blank separated list of those IDs. + Check the qrVIdType field to see if this field is + valid." + ::= { qrVEntry 12 } + + qrVKBytesThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message." + ::= { qrVEntry 13 } + + qrVKBytesLimitSoft OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of KBytes that can be used for this + qrVEntry before a warning message and SNMP + trap is produced." + ::= { qrVEntry 14 } + + qrVFileLimitSoft OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of files that can be used for this + qrVEntry before a warning message and SNMP + trap is produced." + ::= { qrVEntry 15 } + + -- + -- multi-volume-aware quota table with 64 bit values + -- + + qrV2Table OBJECT-TYPE + SYNTAX SEQUENCE OF QrV2Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current file and + space consumption for each user or group with + a quota in /etc/quotas." + ::= { quota 6 } + + + qrV2Entry OBJECT-TYPE + SYNTAX QrV2Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current file and + space consumption for a referenced entry + with a quota in the file /etc/quotas. Indices + select the volume of the quota and the quota entry + itself." + INDEX { qrV2Volume, qrV2Index } + ::= { qrV2Table 1 } + + QrV2Entry ::= + SEQUENCE { + qrV2Index + Integer32, + qrV2Type + Integer32, + qrV2Id + Integer32, + qrV2HighKBytesUsed + Integer32, + qrV2LowKBytesUsed + Integer32, + qrV2QuotaUnlimited + Integer32, + qrV2HighKBytesLimit + Integer32, + qrV2LowKBytesLimit + Integer32, + qrV2FilesUsed + Integer32, + qrV2FileQuotaUnlimited + Integer32, + qrV2FileLimit + Integer32, + qrV2PathName + DisplayString, + qrV2Volume + Integer32, + qrV2Tree + DisplayString, + qrV2IdType + Integer32, + qrV2Sid + DisplayString, + qrV2ThresholdUnlimited + Integer32, + qrV2HighKBytesThreshold + Integer32, + qrV2LowKBytesThreshold + Integer32, + qrV2SoftQuotaUnlimited + Integer32, + qrV2HighKBytesSoftLimit + Integer32, + qrV2LowKBytesSoftLimit + Integer32, + qrV2SoftFileQuotaUnlimited + Integer32, + qrV2SoftFileLimit + Integer32, + qrV264KBytesUsed + Counter64, + qrV264KBytesLimit + Counter64, + qrV264KBytesThreshold + Counter64, + qrV264KBytesSoftLimit + Counter64 + } + + qrV2Index OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry in the + file /etc/quotas in the given volume." + ::= { qrV2Entry 1 } + + qrV2Type OBJECT-TYPE + SYNTAX INTEGER { + qrV2TypeUser(1), + qrV2TypeGroup(2), + qrV2TypeTree(3), + qrV2TypeUserDefault(4), + qrV2TypeGroupDefault(5), + qrV2TypeUnknown(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the kind of quota for this qrV2Entry." + ::= { qrV2Entry 2 } + + qrV2Id OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The UID (user's numerical ID) or the GID (numerical + ID of the group that a user belongs to), as + applicable, associated with this qrV2Entry. Check + the qrV2IdType field to see if this field is valid." + ::= { qrV2Entry 3 } + + qrV2HighKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of KBytes used for this + qrV2Entry. This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 4 } + + qrV2LowKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of KBytes used for this + qrV2Entry. This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 5 } + + qrV2QuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + size based quota limit for this qrV2Entry is unlimited. + If false(1) then qrV2*KBytesLimit OID's are valid, + if true(0) then qrV2*KBytesLimit OID's are unused + and will return 0." + ::= { qrV2Entry 6 } + + qrV2HighKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry. This object returns the most significant + 32 bits of the 64 bit unsigned integer. This will + return 0 if qrV2QuotaUnlimited is true." + ::= { qrV2Entry 7 } + + qrV2LowKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry. This object returns the least significant + 32 bits of the 64 bit unsigned integer. This will + return 0 if qrV2QuotaUnlimited is true." + ::= { qrV2Entry 8 } + + qrV2FilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of files used for this + qrV2Entry." + ::= { qrV2Entry 9 } + + qrV2FileQuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + file based quota limit for this qrV2Entry is unlimited. + If false(1) then qrV2FileLimit is valid, if true(0) + qrV2FileLimit will return 0." + ::= { qrV2Entry 10 } + + + qrV2FileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of files that can be used for this + qrV2Entry." + ::= { qrV2Entry 11 } + + qrV2PathName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string that contains the path + corresponding to this qrV2Entry." + ::= { qrV2Entry 12 } + + qrV2Volume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume for which + this quota is in effect on. The volume that this + value represents can be determined by checking + the value of qvStateName (above) with + qvStateVolume set to the value found here." + ::= { qrV2Entry 13 } + + qrV2Tree OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string that indicates which qtree this quota + belongs to." + ::= { qrV2Entry 14 } + + qrV2IdType OBJECT-TYPE + SYNTAX INTEGER { + qrV2IdValid(1), + qrV2SidValid(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value that indicates which ID field is valid." + ::= { qrV2Entry 15 } + + qrV2Sid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The one or more IDs associated with this qrV2Entry. + If the qrV2entry is associated with a Windows ID, the + text form of the Windows ID (the SID) is here. If + the qrV2Entry is associated with more than one id, + this contains a blank separated list of those IDs. + Check the qrV2IdType field to see if this field is + valid." + ::= { qrV2Entry 16 } + + qrV2ThresholdUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + size based threshold limit for this qrV2Entry is + unlimited. If false(1) then qrV2*KBytesThreshold OID's + are valid, if true(0) then qrV2*KBytesThreshold OID's + are unused and will return 0." + ::= { qrV2Entry 17 } + + qrV2HighKBytesThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message. This object returns the + most significant 32 bits of the 64 bit unsigned + integer. This will return 0 if qrV2ThresholdUnlimited + is true." + ::= { qrV2Entry 18 } + + qrV2LowKBytesThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message. This object returns the + least significant 32 bits of the 64 bit unsigned + integer. This will return 0 if qrV2ThresholdUnlimited + is true." + ::= { qrV2Entry 19 } + + qrV2SoftQuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + size based soft quota limit for this qrV2Entry is + unlimited. If false(1) then qrV2*KBytesSoftLimit OID's + are valid, if true(0) the qrV2*KBytesSoftLimit OID's + are unused and will return 0." + ::= { qrV2Entry 20 } + + qrV2HighKBytesSoftLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 21 } + + qrV2LowKBytesSoftLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 22 } + + qrV2SoftFileQuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + file based soft quota limit for this qrV2Entry is + unlimited. If false(1) then qrV2SoftFileLimit is valid, + if true(0) qrV2SoftFileLimit is unused and will + return 0." + ::= { qrV2Entry 23 } + + qrV2SoftFileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of files that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This will return 0 if + qrV2SoftFileQuotaUnlimited is true." + ::= { qrV2Entry 24 } + + qrV264KBytesUsed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of KBytes used for this + qrV2Entry. This object returns all of the 64 bit + unsigned integer." + + ::= { qrV2Entry 25 } + + qrV264KBytesLimit OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry. This object returns all of the 64 + bit unsigned integer. This will return 0 if + qrV2QuotaUnlimited is true." + ::= { qrV2Entry 26 } + + qrV264KBytesThreshold OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message. This object returns the + all of the 64 bit unsigned integer. This will return + 0 if qrV2ThresholdUnlimited is true." + ::= { qrV2Entry 27 } + + qrV264KBytesSoftLimit OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This object returns all of the + 64 bit unsigned integer." + ::= { qrV2Entry 28 } + + -- -- -- -- -- -- -- -- -- + -- the file system group -- + -- -- -- -- -- -- -- -- -- + + filesysMaxfilesAvail OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The count of the maximum number of + files allowable on the root volume. This + object is deprecated - use + dfEntry.dfMaxFilesAvail instead." + ::= { filesys 1 } + + filesysMaxfilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The count of the number of files + currently in use on the root volume. + This object is deprecated - use + dfEntry.dfMaxFilesUsed instead." + ::= { filesys 2 } + + filesysMaxfilesPossible OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The largest value to which the + filesysMaxfilesAvail parameter above can + be increased by reconfiguration on the + root volume. This object is deprecated - + use dfEntry.dfMaxFilesPossible." + ::= { filesys 3 } + + dfTable OBJECT-TYPE + SYNTAX SEQUENCE OF DfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the available disk space + on the file systems. The tables shows the + available disk space for volumes as well as + aggregates." + ::= { filesys 4 } + + snapshot OBJECT IDENTIFIER ::= { filesys 5 } + + -- the display file system table + + dfEntry OBJECT-TYPE + SYNTAX DfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the available disk space on + the referenced file system." + INDEX { dfIndex } + ::= { dfTable 1 } + + DfEntry ::= + SEQUENCE { + dfIndex + Integer32, + dfFileSys + DisplayString, + dfKBytesTotal + Integer32, + dfKBytesUsed + Integer32, + dfKBytesAvail + Integer32, + dfPerCentKBytesCapacity + Integer32, + dfInodesUsed + Integer32, + dfInodesFree + Integer32, + dfPerCentInodeCapacity + Integer32, + dfMountedOn + DisplayString, + dfMaxFilesAvail + Integer32, + dfMaxFilesUsed + Integer32, + dfMaxFilesPossible + Integer32, + dfHighTotalKBytes + Integer32, + dfLowTotalKBytes + Integer32, + dfHighUsedKBytes + Integer32, + dfLowUsedKBytes + Integer32, + dfHighAvailKBytes + Integer32, + dfLowAvailKBytes + Integer32, + dfStatus + Integer32, + dfMirrorStatus + Integer32, + dfPlexCount + Integer32, + dfType + Integer32, + dfHighSisSharedKBytes + Integer32, + dfLowSisSharedKBytes + Integer32, + dfHighSisSavedKBytes + Integer32, + dfLowSisSavedKBytes + Integer32, + dfPerCentSaved + Integer32, + df64TotalKBytes + Counter64, + df64UsedKBytes + Counter64, + df64AvailKBytes + Counter64, + df64SisSharedKBytes + Counter64, + df64SisSavedKBytes + Counter64 + } + + dfIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { dfEntry 1 } + + dfFileSys OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name for the referenced file system." + ::= { dfEntry 2 } + + dfKBytesTotal OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total capacity in KBytes for the + referenced file system." + ::= { dfEntry 3 } + + dfKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system." + ::= { dfEntry 4 } + + dfKBytesAvail OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total disk space in KBytes that is + free for use on the referenced file system." + ::= { dfEntry 5 } + + dfPerCentKBytesCapacity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space currently + in use on the referenced file system." + ::= { dfEntry 6 } + + dfInodesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of inodes in use on the + referenced file system." + ::= { dfEntry 7 } + + dfInodesFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of inodes that are + available for use on the referenced + file system." + ::= { dfEntry 8 } + + dfPerCentInodeCapacity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space currently + in use based on inode counts, on the + referenced file system." + ::= { dfEntry 9 } + + dfMountedOn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the file on which this file + system is mounted." + ::= { dfEntry 10 } + + dfMaxFilesAvail OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The count of the maximum number of + files allowable on the referenced file + system." + ::= { dfEntry 11 } + + dfMaxFilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The count of the number of files + currently in use on the referenced file + system." + ::= { dfEntry 12 } + + dfMaxFilesPossible OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The largest value to which the + filesysMaxfilesAvail parameter above can + be increased by reconfiguration on the + referenced file system." + ::= { dfEntry 13 } + + dfHighTotalKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total capacity in KBytes for the + referenced file system. This object returns + the most significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 14 } + + dfLowTotalKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total capacity in KBytes for the + referenced file system. This object returns + the least significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 15 } + + dfHighUsedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { dfEntry 16 } + + dfLowUsedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { dfEntry 17 } + + dfHighAvailKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is free + for use on the referenced file system. + This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= { dfEntry 18 } + + dfLowAvailKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is free + for use on the referenced file system. + This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= { dfEntry 19 } + + + dfStatus OBJECT-TYPE + SYNTAX INTEGER { + unmounted(1), + mounted(2), + frozen(3), + destroying(4), + creating(5), + mounting(6), + unmounting(7), + nofsinfo(8), + replaying(9), + replayed(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the file system." + ::= { dfEntry 20 } + + dfMirrorStatus OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), + uninitialized(2), + needcpcheck(3), + cpcheckwait(4), + unmirrored(5), + normal(6), + degraded(7), + resyncing(8), + failed(9), + limbo(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Overall mirror status of the file system." + ::= { dfEntry 21 } + + dfPlexCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of plexes in this file system." + ::= { dfEntry 22 } + + dfType OBJECT-TYPE + SYNTAX INTEGER { + traditionalVolume(1), + flexibleVolume(2), + aggregate(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the type of container." + ::= { dfEntry 23 } + + dfHighSisSharedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that is + shared by more that one instance on the + referenced file system. This object returns + the most significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 24 } + + dfLowSisSharedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that is + shared by more that one instance on the + referenced file system. This object returns + the least significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 25 } + + dfHighSisSavedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is saved + by storing only one copy of the duplicated + blocks on the referenced file system. The + object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { dfEntry 26 } + + dfLowSisSavedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is saved + by storing only one copy of the duplicated + blocks on the referenced file system. The + object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { dfEntry 27 } + + dfPerCentSaved OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space saved by + eliminating the duplicated blocks on the + referenced file system." + ::= { dfEntry 28 } + + df64TotalKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total capacity in KBytes for the + referenced file system. This object returns + all of the 64 bit unsigned integer." + ::= { dfEntry 29 } + + df64UsedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns all of the 64 bit unsigned integer." + ::= { dfEntry 30 } + + df64AvailKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is free + for use on the referenced file system. + This object returns all of the 64 bit + unsigned integer." + ::= { dfEntry 31 } + + df64SisSharedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that is + shared by more that one instance on the + referenced file system. This object returns + all of the 64 bit unsigned integer." + ::= { dfEntry 32 } + + df64SisSavedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is saved + by storing only one copy of the duplicated + blocks on the referenced file system. The + object returns all of the 64 bit unsigned + integer." + ::= { dfEntry 33 } + + -- the old single-volume snapshot table. DEPRECATED + + slTable OBJECT-TYPE + SYNTAX SEQUENCE OF SlEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the snapshots on the + root volume. This table is deprecated - use + slVTable instead." + ::= { snapshot 1 } + + slEntry OBJECT-TYPE + SYNTAX SlEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report on a given snapshot on the + root volume. This object is deprecated - use + slVEntry instead." + INDEX { slIndex } + ::= { slTable 1 } + + SlEntry ::= + SEQUENCE { + slIndex + Integer32, + slMonth + Integer32, + slDay + Integer32, + slHour + Integer32, + slMinutes + Integer32, + slName + DisplayString + } + + slIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { slEntry 1 } + + slMonth OBJECT-TYPE + SYNTAX INTEGER { + january(1), + february(2), + march(3), + april(4), + may(5), + june(6), + july(7), + august(8), + september(9), + october(10), + november(11), + december(12) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The month in which the snapshot was created." + ::= { slEntry 2 } + + slDay OBJECT-TYPE + SYNTAX Integer32 (1..31) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The day on which the snapshot was created." + ::= { slEntry 3 } + + slHour OBJECT-TYPE + SYNTAX Integer32 (0..23) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The hour in which the snapshot was created." + ::= { slEntry 4 } + + slMinutes OBJECT-TYPE + SYNTAX Integer32 (0..59) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The minute in which the snapshot was created." + ::= { slEntry 5 } + + slName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The name of the referenced snapshot." + ::= { slEntry 6 } + + + -- The multivolume / aggregate snapshot table. + + slVTable OBJECT-TYPE + SYNTAX SEQUENCE OF SlVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the snapshots on the + file systems." + ::= { snapshot 2 } + + slVEntry OBJECT-TYPE + SYNTAX SlVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report on a given snapshot on the + file system. Indices select the volume of + the snapshot and the snapshot entry itself." + INDEX { slVVolume, slVIndex } + ::= { slVTable 1 } + + SlVEntry ::= + SEQUENCE { + slVIndex + Integer32, + slVMonth + Integer32, + slVDay + Integer32, + slVHour + Integer32, + slVMinutes + Integer32, + slVName + DisplayString, + slVVolume + Integer32, + slVNumber + Integer32, + slVVolumeName + DisplayString, + slVType + Integer32 + } + + slVIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { slVEntry 1 } + + slVMonth OBJECT-TYPE + SYNTAX INTEGER { + january(1), + february(2), + march(3), + april(4), + may(5), + june(6), + july(7), + august(8), + september(9), + october(10), + november(11), + december(12) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The month in which the snapshot was created." + ::= { slVEntry 2 } + + slVDay OBJECT-TYPE + SYNTAX Integer32 (1..31) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The day on which the snapshot was created." + ::= { slVEntry 3 } + + slVHour OBJECT-TYPE + SYNTAX Integer32 (0..23) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The hour in which the snapshot was created." + ::= { slVEntry 4 } + + slVMinutes OBJECT-TYPE + SYNTAX Integer32 (0..59) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minute in which the snapshot was created." + ::= { slVEntry 5 } + + slVName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the referenced snapshot." + ::= { slVEntry 6 } + + slVVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume / aggregate that + contains this snapshot." + ::= { slVEntry 7 } + + slVNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of snapshots for this volume / aggregate." + ::= { slVEntry 8 } + + slVVolumeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume / aggregate. This does not + have a /vol/ prefix." + + ::= { slVEntry 9 } + + slVType OBJECT-TYPE + SYNTAX INTEGER { + traditionalVolume(1), + flexibleVolume(2), + aggregate(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the type of container for this + snapshot." + + ::= { slVEntry 10 } + + + -- The snapshot content table. + + slQTable OBJECT-TYPE + SYNTAX SEQUENCE OF SlQEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the snapshots and their contents + on the file systems." + ::= { snapshot 3 } + + slQEntry OBJECT-TYPE + SYNTAX SlQEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report on a given snapshot for a given + qtree on the file system. Indices select the volume + and qtree of the snapshot and the snapshot entry + itself." + + INDEX { slQVolume, slQQtree, slQIndex } + ::= { slQTable 1 } + + SlQEntry ::= + SEQUENCE { + slQIndex + Integer32, + slQVolume + Integer32, + slQQtree + Integer32, + slQSnapshotName + DisplayString, + slQSnapshotTime + Integer32, + slQQtreeName + DisplayString, + slQQtreeContent + Integer32, + slQSource + OCTET STRING, + slQSourceTime + Integer32, + slQVolumeName + DisplayString + } + + slQIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { slQEntry 1 } + + slQVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that contains + this snapshot." + ::= { slQEntry 2 } + + slQQtree OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the qtree that contains + this snapshot." + ::= { slQEntry 3 } + + slQSnapshotName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the referenced snapshot." + ::= { slQEntry 4 } + + slQSnapshotTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time of the snapshot on the system. The time in + seconds since January 1, 1970." + ::= { slQEntry 5 } + + slQQtreeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string that indicates which qtree is in this + snapshot" + ::= { slQEntry 6 } + + slQQtreeContent OBJECT-TYPE + SYNTAX INTEGER { + replica(1), + transitioning(2), + original(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The content of the qtree tree" + ::= { slQEntry 7 } + + slQSource OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The source of this qtree for a replicated qtree. + '-' for a original qtree." + ::= { slQEntry 8 } + + slQSourceTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time of the source snapshot for a replicated qtree. + Time of the current snapshot for an original qtree. + The time in seconds since January 1, 1970. 0 if the + qtree is in a transitioning stage" + + ::= { slQEntry 9 } + + slQVolumeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume. This does not have a /vol/ + prefix." + ::= { slQEntry 10 } + + + dfNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the dfTable table." + + ::= { filesys 6 } + + -- -- -- -- -- -- -- -- -- -- -- -- + -- file system status information -- + -- -- -- -- -- -- -- -- -- -- -- -- + + fsStatus OBJECT IDENTIFIER ::= { filesys 7 } + + fsOverallStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + nearlyFull(2), + full(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of overall file system + health. 'ok' indicates that all file systems + have adequate space. 'nearlyFull' means + that one or more is nearly full (more than + 95% full). 'full' means that one or more + are more than 98% full." + ::= { fsStatus 1 } + + fsStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string indicating any file systems which + are full or nearly full." + ::= { fsStatus 2 } + + fsMaxUsedBytesPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of space currently in use + by the file system which is most full." + ::= { fsStatus 3 } + + fsMaxUsedInodesPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of inodes currently in use + by the file system which is most full." + ::= { fsStatus 4 } + + fsMaxUsedReservedPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of reserved space currently + in use by the file system which is most full." + ::= { fsStatus 5 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- All volumes, including those offline and those + -- owned by the cluster partner. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + volTable OBJECT-TYPE + SYNTAX SEQUENCE OF VolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "List the volumes defined on the system, + including offline volumes." + + ::= { filesys 8 } + + volEntry OBJECT-TYPE + SYNTAX VolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular volume." + INDEX { volIndex } + ::= { volTable 1 } + + VolEntry ::= + SEQUENCE { + volIndex Integer32, + volName DisplayString, + volFSID DisplayString, + volOwningHost Integer32, + volState DisplayString, + volStatus DisplayString, + volOptions DisplayString, + volUUID DisplayString, + volAggrName DisplayString, + volType Integer32, + volClone Integer32, + volCloneOf DisplayString, + volCloneSnap DisplayString + } + + volIndex OBJECT-TYPE + SYNTAX Integer32 (1..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this volume. The + volIndex is not related to any other table + defined in this MIB, and may change as + volumes are created and destroyed." + ::= { volEntry 1 } + + volName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the volume. This includes no /vol/ + prefix." + ::= { volEntry 2 } + + volFSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unique identifier for this volume." + ::= { volEntry 3 } + + volOwningHost OBJECT-TYPE + SYNTAX INTEGER { + local(1), + partner(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indication of which host owns this volume." + ::= { volEntry 4 } + + volState OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "State of the volume, such as 'online' or + 'offline'." + ::= { volEntry 5 } + + volStatus OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the volume, such as 'normal' or + 'reconstructing'. May include several values + separated by comma and space." + ::= { volEntry 6 } + + volOptions OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Options associated with the volume, such + as 'root' and 'nosnapdir=off'. May include + several values separated by comma." + ::= { volEntry 7 } + + volUUID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique id associated with the volume." + ::= { volEntry 8 } + + volAggrName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the aggregate this flexible volume is a + part of." + ::= { volEntry 9 } + + volType OBJECT-TYPE + SYNTAX INTEGER { + traditional(1), + flexible(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this volume, older volumes are + traditional while newer volumes contained in + aggregates are flexible." + ::= { volEntry 10 } + + volClone OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True indicates flexible volume is a clone." + ::= { volEntry 11 } + + volCloneOf OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of flexible volume this flexible volume is + a clone of." + ::= { volEntry 12 } + + volCloneSnap OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of original cloned snapshot." + ::= { volEntry 13 } + + volNumber OBJECT-TYPE + SYNTAX Integer32 (0..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of volumes in the volTable." + + ::= { filesys 9 } + + + qtreeTable OBJECT-TYPE + SYNTAX SEQUENCE OF QtreeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of the qtrees on the system." + + ::= { filesys 10 } + + qtreeEntry OBJECT-TYPE + SYNTAX QtreeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular qtree." + + INDEX { qtreeVolume, qtreeIndex } + ::= { qtreeTable 1 } + + QtreeEntry ::= + SEQUENCE { + qtreeIndex Integer32, + qtreeVolume Integer32, + qtreeVolumeName DisplayString, + qtreeId Integer32, + qtreeName DisplayString, + qtreeStyle Integer32, + qtreeStatus Integer32, + qtreeOplock Integer32 + } + + qtreeIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the qtree table." + + ::= { qtreeEntry 1 } + + qtreeVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that contains + this qtree." + + ::= { qtreeEntry 2 } + + qtreeVolumeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume that contains this qtree. + This includes no /vol/prefix." + + ::= { qtreeEntry 3 } + + qtreeId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Id number of the qtree." + + ::= { qtreeEntry 4 } + + qtreeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the qtree." + + ::= { qtreeEntry 5 } + + qtreeStyle OBJECT-TYPE + SYNTAX INTEGER { + unix(1), + ntfs(2), + mixed(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The security style of the qtree." + + ::= { qtreeEntry 6 } + + qtreeStatus OBJECT-TYPE + SYNTAX INTEGER { + normal(1), + snapmirrored(2), + snapvaulted(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the qtree." + + ::= { qtreeEntry 7 } + + qtreeOplock OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of whether the oplocks is enabled or not + for this qtree." + + ::= { qtreeEntry 8 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- All aggregates, including those offline and those + -- owned by the cluster partner. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + aggrTable OBJECT-TYPE + SYNTAX SEQUENCE OF AggrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "List the aggregates defined on the system, + including offline aggregates." + + ::= { filesys 11 } + + aggrEntry OBJECT-TYPE + SYNTAX AggrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular aggregate." + INDEX { aggrIndex } + ::= { aggrTable 1 } + + AggrEntry ::= + SEQUENCE { + aggrIndex Integer32, + aggrName DisplayString, + aggrFSID DisplayString, + aggrOwningHost Integer32, + aggrState DisplayString, + aggrStatus DisplayString, + aggrOptions DisplayString, + aggrUUID DisplayString, + aggrFlexvollist OCTET STRING, + aggrType Integer32, + aggrRaidType DisplayString + } + + aggrIndex OBJECT-TYPE + SYNTAX Integer32 (1..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this aggregate. The + aggrIndex is not related to any other table + defined in this MIB, and may change as + aggregates are created and destroyed." + ::= { aggrEntry 1 } + + aggrName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the aggregate. This includes no /vol/ + prefix." + ::= { aggrEntry 2 } + + aggrFSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unique identifier for this aggregate." + ::= { aggrEntry 3 } + + aggrOwningHost OBJECT-TYPE + SYNTAX INTEGER { + local(1), + partner(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indication of which host owns this aggregate." + ::= { aggrEntry 4 } + + aggrState OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "State of the aggregate, such as 'online' or + 'offline'." + ::= { aggrEntry 5 } + + aggrStatus OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the aggregate, such as 'normal' or + 'reconstructing'. May include several values + separated by comma and space." + ::= { aggrEntry 6 } + + aggrOptions OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Options associated with the aggregate." + ::= { aggrEntry 7 } + + aggrUUID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique id associated with the aggregate." + ::= { aggrEntry 8 } + + aggrFlexvollist OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "List of all the flexible volumes within this + aggregate." + ::= { aggrEntry 9 } + + aggrType OBJECT-TYPE + SYNTAX INTEGER { + traditional(1), + aggregate(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this container, containers + containing flexible volumes are aggregate." + ::= { aggrEntry 10 } + + aggrRaidType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of raid protection of the aggregate, such as + 'raid0', 'mirrored raid0', 'raid4', 'mirrored raid4', + 'raid_dp', 'mirrored raid_dp'." + ::= { aggrEntry 11 } + + aggrNumber OBJECT-TYPE + SYNTAX Integer32 (0..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of aggregates in the aggrTable." + ::= { filesys 12 } + + -- -- -- -- -- -- -- + -- the RAID group -- + -- -- -- -- -- -- -- + + -- Old root volume raid table. DEPRECATED + + raidTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Display RAID configuration information for the + root volume. This table is deprecated - use + raidVTable instead." + ::= { raid 1 } + + raidEntry OBJECT-TYPE + SYNTAX RaidEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Display RAID configuration information for + the referenced disk drive. This only works for + disks contained within the root volume, and will + include spare drives. This object is + deprecated - use raidVEntry instead." + INDEX { raidIndex } + ::= { raidTable 1 } + + RaidEntry ::= + SEQUENCE { + raidIndex + Integer32, + raidDiskName + DisplayString, + raidStatus + Integer32, + raidDiskId + Integer32, + raidScsiAdapter + DisplayString, + raidScsiId + Integer32, + raidUsedMb + Integer32, + raidUsedBlocks + Integer32, + raidTotalMb + Integer32, + raidTotalBlocks + Integer32, + raidCompletionPerCent + Integer32 + } + + raidIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive." + ::= { raidEntry 1 } + + raidDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The name identifying the referenced disk drive." + ::= { raidEntry 2 } + + raidStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + reconstructionInProgress(2), + parityReconstructionInProgress(3), + parityVerificationInProgress(4), + scrubbingInProgress(5), + failed(6), + addingSpare(7), + spare(8), + prefailed(9), + offline(10) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The status of the referenced disk drive." + ::= { raidEntry 3 } + + raidDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { raidEntry 4 } + + raidScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { raidEntry 5 } + + raidScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { raidEntry 6 } + + raidUsedMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of MBytes currently in use on + the referenced disk drive." + ::= { raidEntry 7 } + + raidUsedBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of Blocks currently in use on + the referenced disk drive." + ::= { raidEntry 8 } + + raidTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { raidEntry 9 } + + raidTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { raidEntry 10 } + + raidCompletionPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "In the case when reconstruction/adding a + spare, verification or scrubbing is in progress, + the percent of such reconstruction, verification + or scrubbing that has been completed on the + referenced disk drive." + ::= { raidEntry 11 } + + + -- Multivolume raidTable. + + + raidVTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information." + ::= { raid 2 } + + raidVEntry OBJECT-TYPE + SYNTAX RaidVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information for + the referenced volume, raid group, and disk drive." + INDEX { raidVVol, raidVGroup, raidVIndex } + ::= { raidVTable 1 } + + RaidVEntry ::= + SEQUENCE { + raidVIndex + Integer32, + raidVDiskName + DisplayString, + raidVStatus + Integer32, + raidVDiskId + Integer32, + raidVScsiAdapter + DisplayString, + raidVScsiId + Integer32, + raidVUsedMb + Integer32, + raidVUsedBlocks + Integer32, + raidVTotalMb + Integer32, + raidVTotalBlocks + Integer32, + raidVCompletionPerCent + Integer32, + raidVVol + Integer32, + raidVGroup + Integer32, + raidVDiskNumber + Integer32, + raidVGroupNumber + Integer32, + raidVDiskPort + Integer32, + raidVSecondaryDiskName + DisplayString, + raidVSecondaryDiskPort + Integer32, + raidVShelf + Integer32, + raidVBay + Integer32, + raidVPlex + Integer32, + raidVPlexGroup + Integer32, + raidVPlexNumber + Integer32, + raidVPlexName + DisplayString, + raidVSectorSize + Integer32, + raidVDiskSerialNumber + DisplayString, + raidVDiskVendor + DisplayString, + raidVDiskModel + DisplayString, + raidVDiskFirmwareRevision + DisplayString, + raidVDiskRPM + DisplayString, + raidVDiskType + DisplayString, + raidVDiskPool + DisplayString, + raidVDiskCopyDestDiskName + DisplayString + } + + raidVIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this disk drive within + the given volume and RAID group." + ::= { raidVEntry 1 } + + raidVDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk drive." + ::= { raidVEntry 2 } + + raidVStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + reconstructionInProgress(2), + parityReconstructionInProgress(3), + parityVerificationInProgress(4), + scrubbingInProgress(5), + failed(6), + prefailed(9), + offline(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced disk drive." + ::= { raidVEntry 3 } + + raidVDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { raidVEntry 4 } + + raidVScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { raidVEntry 5 } + + raidVScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { raidVEntry 6 } + + raidVUsedMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes currently in use on + the referenced disk drive." + ::= { raidVEntry 7 } + + raidVUsedBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks currently in use on + the referenced disk drive." + ::= { raidVEntry 8 } + + raidVTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { raidVEntry 9 } + + raidVTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { raidVEntry 10 } + + raidVCompletionPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "In the case when rapid raid recovery, disk copy, + reconstruction/adding a spare, verification or + scrubbing is in progress, the percent of such + copy, reconstruction, verification or scrubbing + that has been completed on the referenced disk + drive." + ::= { raidVEntry 11 } + + raidVVol OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that this entry + belongs to. The first volume is '1'." + ::= { raidVEntry 12 } + + raidVGroup OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the RAID group within the + given volume that this entry belongs to. The + first RAID group is '1', and number across all plexes." + ::= { raidVEntry 13 } + + raidVDiskNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks within this RAID group." + ::= { raidVEntry 14 } + + raidVGroupNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RAID groups within this volume." + ::= { raidVEntry 15 } + + raidVDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidVEntry 16 } + + raidVSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { raidVEntry 17 } + + raidVSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidVEntry 18 } + + raidVShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { raidVEntry 19 } + + raidVBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { raidVEntry 20 } + + + raidVPlex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the plex within the + given volume that this entry belongs to. The + first plex is '1'." + ::= { raidVEntry 21 } + + raidVPlexGroup OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the RAID group within + the given plex that this entry belongs to. The + first RAID group is '1'." + ::= { raidVEntry 22 } + + raidVPlexNumber OBJECT-TYPE + SYNTAX Integer32 (1..2) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of plexes within this volume. + This number is always 1 or 2." + ::= { raidVEntry 23 } + + raidVPlexName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the plex that this entry + belongs to. A plex name can be anything, but + is usually a string like 'plex0' or 'plex1'." + ::= { raidVEntry 24 } + + raidVSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { raidVEntry 25 } + + raidVDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { raidVEntry 26 } + + raidVDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { raidVEntry 27 } + + raidVDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { raidVEntry 28 } + + raidVDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { raidVEntry 29 } + + raidVDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { raidVEntry 30 } + + raidVDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { raidVEntry 31 } + + raidVDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this entry + belongs to." + ::= { raidVEntry 32 } + + raidVDiskCopyDestDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When raidVStatus value is prefailed, this string identifies + the name of the disk which is the copy target of the + referenced prefailed disk." + ::= { raidVEntry 33 } + + -- Spare disk table. + + spareTable OBJECT-TYPE + SYNTAX SEQUENCE OF SpareEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display spare disk configuration information." + ::= { raid 3 } + + spareEntry OBJECT-TYPE + SYNTAX SpareEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display configuration information for + the referenced spare disk drive." + INDEX { spareIndex } + ::= { spareTable 1 } + + SpareEntry ::= + SEQUENCE { + spareIndex + Integer32, + spareDiskName + DisplayString, + spareStatus + Integer32, + spareDiskId + Integer32, + spareScsiAdapter + DisplayString, + spareScsiId + Integer32, + spareTotalMb + Integer32, + spareTotalBlocks + Integer32, + spareDiskPort + Integer32, + spareSecondaryDiskName + DisplayString, + spareSecondaryDiskPort + Integer32, + spareShelf + Integer32, + spareBay + Integer32, + sparePool + DisplayString, + spareSectorSize + Integer32, + spareDiskSerialNumber + DisplayString, + spareDiskVendor + DisplayString, + spareDiskModel + DisplayString, + spareDiskFirmwareRevision + DisplayString, + spareDiskRPM + DisplayString, + spareDiskType + DisplayString + } + + spareIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive in the list of spare disk + drives." + ::= { spareEntry 1 } + + spareDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced spare disk + drive." + ::= { spareEntry 2 } + + spareStatus OBJECT-TYPE + SYNTAX INTEGER { + spare(1), + addingspare(2), + bypassed(3), + unknown(4), + offline(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced spare disk drive." + ::= { spareEntry 3 } + + spareDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced spare disk + drive." + ::= { spareEntry 4 } + + spareScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced spare disk drive." + ::= { spareEntry 5 } + + spareScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced spare disk drive + on the referenced SCSI adapter." + ::= { spareEntry 6 } + + spareTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced spare disk drive." + ::= { spareEntry 7 } + + spareTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced spare disk drive." + ::= { spareEntry 8 } + + spareDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { spareEntry 9 } + + spareSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { spareEntry 10 } + + spareSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { spareEntry 11 } + + spareShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { spareEntry 12 } + + spareBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { spareEntry 13 } + + sparePool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this + entry belongs to." + ::= { spareEntry 14 } + + spareSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { spareEntry 15 } + + spareDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { spareEntry 16 } + + spareDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { spareEntry 17 } + + spareDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { spareEntry 18 } + + spareDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { spareEntry 19 } + + spareDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { spareEntry 20 } + + spareDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { spareEntry 21 } + + -- Disk summaries + + diskSummary OBJECT IDENTIFIER ::= { raid 4 } + + diskTotalCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of disks on the system." + + ::= { diskSummary 1 } + + diskActiveCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are currently active, + including parity disks." + + ::= { diskSummary 2 } + + diskReconstructingCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are + currently being reconstructed." + + ::= { diskSummary 3 } + + diskReconstructingParityCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of parity disks which are + currently being reconstructed." + + ::= { diskSummary 4 } + + diskVerifyingParityCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of parity disks which are + currently being verified." + + ::= { diskSummary 5 } + + diskScrubbingCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are + currently being scrubbed." + + ::= { diskSummary 6 } + + diskFailedCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are + currently broken." + + ::= { diskSummary 7 } + + diskSpareCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of available spare disks." + + ::= { diskSummary 8 } + + diskAddingSpareCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of spare disks which are + currently being added into a RAID group." + + ::= { diskSummary 9 } + + diskFailedMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If diskFailedCount is non-zero, this is + a string describing the failed disk or + disks. Each failed disk is described with + a sentence like + + Parity disk in volume vol0, RAID group 1, failed. + + or + + Disk on adapter 8a, shelf 1, bay 0, failed." + + ::= { diskSummary 10 } + + diskPrefailedCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are prefailed and marked + for rapid raid recovery." + + ::= { diskSummary 11 } + + raidVNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the raidVTable table. + This is the number of volumes in the system." + + ::= { raid 5 } + + spareNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the spareTable table." + + ::= { raid 6 } + + otherDiskNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the otherDiskTable table." + + ::= { raid 7 } + + raidPNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the raidPTable table. + This is the number of volumes in the system." + + ::= { raid 8 } + + -- Other (out-of-service) disk table. + + otherDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF OtherDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display out-of-service disk configuration information." + ::= { raid 9 } + + otherDiskEntry OBJECT-TYPE + SYNTAX OtherDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display configuration information for + the referenced disk drive." + INDEX { otherDiskIndex } + ::= { otherDiskTable 1 } + + OtherDiskEntry ::= + SEQUENCE { + otherDiskIndex + Integer32, + otherDiskDiskName + DisplayString, + otherDiskStatus + Integer32, + otherDiskDiskId + Integer32, + otherDiskScsiAdapter + DisplayString, + otherDiskScsiId + Integer32, + otherDiskTotalMb + Integer32, + otherDiskTotalBlocks + Integer32, + otherDiskDiskPort + Integer32, + otherDiskSecondaryDiskName + DisplayString, + otherDiskSecondaryDiskPort + Integer32, + otherDiskShelf + Integer32, + otherDiskBay + Integer32, + otherDiskPool + DisplayString, + otherDiskSectorSize + Integer32, + otherDiskSerialNumber + DisplayString, + otherDiskVendor + DisplayString, + otherDiskModel + DisplayString, + otherDiskFirmwareRevision + DisplayString, + otherDiskRPM + DisplayString, + otherDiskType + DisplayString + } + + otherDiskIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive in the list of out-of-service + disk drives. Out-of-service disks include all disks + that are not in service in a raid group or available + as a spare disk." + ::= { otherDiskEntry 1 } + + otherDiskDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk + drive." + ::= { otherDiskEntry 2 } + + otherDiskStatus OBJECT-TYPE + SYNTAX INTEGER { + broken(1), + bypassed(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced disk drive." + ::= { otherDiskEntry 3 } + + otherDiskDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { otherDiskEntry 4 } + + otherDiskScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { otherDiskEntry 5 } + + otherDiskScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { otherDiskEntry 6 } + + otherDiskTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { otherDiskEntry 7 } + + otherDiskTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { otherDiskEntry 8 } + + otherDiskDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { otherDiskEntry 9 } + + otherDiskSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { otherDiskEntry 10 } + + otherDiskSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { otherDiskEntry 11 } + + otherDiskShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { otherDiskEntry 12 } + + otherDiskBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { otherDiskEntry 13 } + + otherDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this + entry belongs to." + ::= { otherDiskEntry 14 } + + otherDiskSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { otherDiskEntry 15 } + + otherDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { otherDiskEntry 16 } + + otherDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { otherDiskEntry 17 } + + otherDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { otherDiskEntry 18 } + + otherDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { otherDiskEntry 19 } + + otherDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { otherDiskEntry 20 } + + otherDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { otherDiskEntry 21 } + + -- Multivolume and multiplex raidTable. + + raidPTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information." + ::= { raid 10 } + + raidPEntry OBJECT-TYPE + SYNTAX RaidPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information for + the referenced volume, plex, raid group, and disk drive." + INDEX { raidPVol, raidPPlex, raidPGroup, raidPIndex } + ::= { raidPTable 1 } + + RaidPEntry ::= + SEQUENCE { + raidPIndex + Integer32, + raidPStatus + Integer32, + raidPVol + Integer32, + raidPPlex + Integer32, + raidPGroup + Integer32, + raidPPlexNumber + Integer32, + raidPGroupNumber + Integer32, + raidPDiskNumber + Integer32, + raidPPlexName + DisplayString, + raidPDiskName + DisplayString, + raidPDiskPort + Integer32, + raidPSecondaryDiskName + DisplayString, + raidPSecondaryDiskPort + Integer32, + raidPScsiAdapter + DisplayString, + raidPScsiId + Integer32, + raidPDiskId + Integer32, + raidPShelf + Integer32, + raidPBay + Integer32, + raidPSectorSize + Integer32, + raidPUsedMb + Integer32, + raidPUsedBlocks + Integer32, + raidPTotalMb + Integer32, + raidPTotalBlocks + Integer32, + raidPCompletionPerCent + Integer32, + raidPDiskSerialNumber + DisplayString, + raidPDiskVendor + DisplayString, + raidPDiskModel + DisplayString, + raidPDiskFirmwareRevision + DisplayString, + raidPDiskRPM + DisplayString, + raidPDiskType + DisplayString, + raidPDiskPool + DisplayString, + raidPDiskCopyDestDiskName + DisplayString + } + + raidPIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this disk drive within + the given volume and RAID group." + ::= { raidPEntry 1 } + + raidPStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + reconstructionInProgress(2), + parityReconstructionInProgress(3), + parityVerificationInProgress(4), + scrubbingInProgress(5), + failed(6), + prefailed(9), + offline(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced disk drive." + ::= { raidPEntry 2 } + + raidPVol OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that this entry + belongs to. The first volume is '1'." + ::= { raidPEntry 3 } + + raidPPlex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the plex that this entry + belongs to. The first plex is '1'." + ::= { raidPEntry 4 } + + raidPGroup OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the RAID group within the + given plex that this entry belongs to. The + first RAID group is '1'." + ::= { raidPEntry 5 } + + raidPPlexNumber OBJECT-TYPE + SYNTAX Integer32 (1..2) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of plexes within this volume. + This number is always 1 or 2." + ::= { raidPEntry 6 } + + raidPGroupNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RAID groups within this plex." + ::= { raidPEntry 7 } + + raidPDiskNumber OBJECT-TYPE + SYNTAX Integer32 (1..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks within this RAID group." + ::= { raidPEntry 8 } + + raidPPlexName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the plex that this entry + belongs to. A plex name can be anything, but + is usually a string like 'plex0' or 'plex1'." + ::= { raidPEntry 9 } + + raidPDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk drive." + ::= { raidPEntry 10 } + + raidPDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidPEntry 11 } + + raidPSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { raidPEntry 12 } + + raidPSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidPEntry 13 } + + raidPScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { raidPEntry 14 } + + raidPScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { raidPEntry 15 } + + raidPDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { raidPEntry 16 } + + raidPShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { raidPEntry 17 } + + raidPBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { raidPEntry 18 } + + + raidPSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { raidPEntry 19 } + + raidPUsedMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes currently in use on + the referenced disk drive." + ::= { raidPEntry 20 } + + raidPUsedBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks currently in use on + the referenced disk drive." + ::= { raidPEntry 21 } + + raidPTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { raidPEntry 22 } + + raidPTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { raidPEntry 23 } + + raidPCompletionPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "In the case when rapid raid recovery, disk copy, + reconstruction or adding a spare, verification or + scrubbing is in progress, the percent of such copy, + reconstruction, verification or scrubbing that has + been completed on the referenced disk drive." + ::= { raidPEntry 24 } + + raidPDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { raidPEntry 25 } + + raidPDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { raidPEntry 26 } + + raidPDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { raidPEntry 27 } + + raidPDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { raidPEntry 28 } + + raidPDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { raidPEntry 29 } + + raidPDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { raidPEntry 30 } + + raidPDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this entry + belongs to." + ::= { raidPEntry 31 } + + raidPDiskCopyDestDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When raidPStatus value is prefailed, this string identifies + the name of the disk which is the copy target of the + referenced prefailed disk." + ::= { raidPEntry 32 } + + -- RAID Plex table. + + plexTable OBJECT-TYPE + SYNTAX SEQUENCE OF PlexEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing plex specific information." + ::= {raid 11} + + -- display plexes + + plexEntry OBJECT-TYPE + SYNTAX PlexEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report on file system plexes." + INDEX { plexIndex } + ::= { plexTable 1 } + + PlexEntry ::= + SEQUENCE { + plexIndex + Integer32, + plexName + DisplayString, + plexVolName + DisplayString, + plexStatus + Integer32, + plexPercentResyncing + Integer32 + } + + plexIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced plex." + ::= { plexEntry 1 } + + plexName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the plex." + ::= { plexEntry 2 } + + plexVolName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The volume to which this plex belongs." + ::= { plexEntry 3 } + + plexStatus OBJECT-TYPE + SYNTAX INTEGER { + offline(1), + resyncing(2), + online(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the plex." + ::= { plexEntry 4 } + + plexPercentResyncing OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If the plex is resyncing, the percent + completion of the resync." + ::= { plexEntry 5 } + + --out-of-dateDisks + + outOfDateDiskCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the outOfDateDiskTable table." + + ::= { raid 12 } + + -- out-of-date disk table. + + outOfDateDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF OutOfDateDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display out-of-date disk information." + ::= { raid 13 } + + outOfDateDiskEntry OBJECT-TYPE + SYNTAX OutOfDateDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display information for the referenced + out-of-date disk." + INDEX { outOfDateDiskIndex } + ::= { outOfDateDiskTable 1 } + + OutOfDateDiskEntry ::= + SEQUENCE { + outOfDateDiskIndex + Integer32, + outOfDateDiskDiskName + DisplayString, + outOfDateDiskDiskId + Integer32, + outOfDateDiskScsiAdapter + DisplayString, + outOfDateDiskScsiId + Integer32, + outOfDateDiskTotalMb + Integer32, + outOfDateDiskTotalBlocks + Integer32, + outOfDateDiskDiskPort + Integer32, + outOfDateDiskSecondaryDiskName + DisplayString, + outOfDateDiskSecondaryDiskPort + Integer32, + outOfDateDiskShelf + Integer32, + outOfDateDiskBay + Integer32, + outOfDateDiskPool + DisplayString, + outOfDateDiskSectorSize + Integer32, + outOfDateDiskSerialNumber + DisplayString, + outOfDateDiskVendor + DisplayString, + outOfDateDiskModel + DisplayString, + outOfDateDiskFirmwareRevision + DisplayString, + outOfDateDiskRPM + DisplayString, + outOfDateDiskType + DisplayString + } + + outOfDateDiskIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive in the list of out-of-date + diskdrives." + ::= { outOfDateDiskEntry 1 } + + outOfDateDiskDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk + drive." + ::= { outOfDateDiskEntry 2 } + + outOfDateDiskDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { outOfDateDiskEntry 3 } + + outOfDateDiskScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { outOfDateDiskEntry 4 } + + outOfDateDiskScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { outOfDateDiskEntry 5 } + + outOfDateDiskTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { outOfDateDiskEntry 6 } + + outOfDateDiskTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { outOfDateDiskEntry 7 } + + outOfDateDiskDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { outOfDateDiskEntry 8 } + + outOfDateDiskSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { outOfDateDiskEntry 9 } + + outOfDateDiskSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { outOfDateDiskEntry 10 } + + outOfDateDiskShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { outOfDateDiskEntry 11 } + + outOfDateDiskBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { outOfDateDiskEntry 12 } + + outOfDateDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this + entry belongs to." + ::= { outOfDateDiskEntry 13 } + + outOfDateDiskSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { outOfDateDiskEntry 14 } + + outOfDateDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { outOfDateDiskEntry 15 } + + outOfDateDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { outOfDateDiskEntry 16 } + + outOfDateDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { outOfDateDiskEntry 17 } + + outOfDateDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { outOfDateDiskEntry 18 } + + outOfDateDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { outOfDateDiskEntry 19 } + + outOfDateDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { outOfDateDiskEntry 20 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the CIFS group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + cifsOptions OBJECT IDENTIFIER ::= { cifs 1 } + + cifsInfo OBJECT IDENTIFIER ::= { cifs 2 } + + cifsStats OBJECT IDENTIFIER ::= { cifs 3 } + + cifsMisc OBJECT IDENTIFIER ::= { cifs 4 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsOptions group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the CIFS protocol is active on the + filer." + ::= { cifsOptions 1 } + + cifsIsLoginEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether new CIFS connections to the filer + are currently allowed." + ::= { cifsOptions 2 } + + + cifsHostName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The host name used by the CIFS protocol on this + filer." + ::= { cifsOptions 3 } + + + cifsAltNames OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Alternate names recognized by the filer." + ::= { cifsOptions 4 } + + + cifsDomainJoined OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Has the filer joined an NT domain? + If this value is true, cifsDomainName + will contain the name of the domain. + Otherwise, the filer may have joined + a WorkGroup, and cifsWGName will contain + the name of the WorkGroup. " + ::= { cifsOptions 5 } + + + cifsDomainName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The domain name used by the CIFS + protocol on this filer." + ::= { cifsOptions 6 } + + + cifsWGName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The workgroup name (if any) used by + the CIFS protocol on this filer." + ::= { cifsOptions 7 } + + + cifsDCName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the Domain Controller used by + this filer to authenticate users and file + requests." + ::= { cifsOptions 8 } + + + cifsIsWinsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True if WINS name resolution is enabled + on the filer." + ::= { cifsOptions 9 } + + + cifsWinsServers OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name(s) of the WINS servers registered + with the filer." + ::= { cifsOptions 10 } + + + cifsSecurityModel OBJECT-TYPE + SYNTAX INTEGER { + unix(1), + pc(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Which type of authentication semantics + (Unix or PC) are in use for PC access to + Unix files on the filer. If Unix semantics + are in use, no ACL on a Unix file is ever + checked. If PC semantics are in use, the + share level ACL on the share containing the + file is used for authentication instead of + the group portion of the permissions on + the file." + ::= { cifsOptions 11 } + + + cifsPCGenericUser OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the generic PC user, if any. This + username is used for CIFS access by Unix users + who have not authenticated through CIFS or NT." + ::= { cifsOptions 12 } + + + cifsOplocksEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether oplocks are enabled on the filer." + ::= { cifsOptions 15 } + + + cifsLevel2OplocksEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether level 2 oplocks are enabled on the filer." + ::= { cifsOptions 16 } + + + cifsPreserveCase OBJECT-TYPE + SYNTAX INTEGER { + noPreserveCase(1), + preserveCase(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If this option is set to preserve-case + (the default), all filename references + will be case preserving. Otherwise, + they are forced to lowercase." + ::= { cifsOptions 17 } + + + cifsSymlinksEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If this option is enabled, CIFS accesses will + follow symbolic links using Unix semantics." + ::= { cifsOptions 19 } + + + cifsSymlinkCycleProtEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If this option is enabled, CIFS accesses will + through symbolic links will check for cycles + in the link graph." + ::= { cifsOptions 20 } + + + cifsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the CIFS protocol is licensed on the + filer." + ::= { cifsOptions 21 } + + cifsPerClientStatsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True when cifs.per_client_stats are + being collected." + ::= { cifsOptions 22 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsInfo group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsStatus OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Encoding of CIFS startup state on the filer." + ::= { cifsInfo 1 } + + cifsNeedPW OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Does the administrative password need + to be set before start?" + ::= { cifsInfo 2 } + + cifsTimeToShutdown OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time remaining until CIFS shutdown" + ::= { cifsInfo 3 } + + + cifsMaxConnections OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of simultaneous CIFS + connections allowed on the filer." + ::= { cifsInfo 4 } + + cifsMaxTrees OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of simultaneous CIFS + trees allowed on the filer." + ::= { cifsInfo 5 } + + cifsMaxShares OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of simultaneous CIFS + shares allowed on the filer." + ::= { cifsInfo 6 } + + cifsMaxFiles OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of concurrently open CIFS + files and directories allowed on the filer." + ::= { cifsInfo 7 } + + + cifsMaxACLs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is deprecated, and always has a + value of 0." + ::= { cifsInfo 8 } + + + cifsConnectedUsers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of CIFS users on the + filer." + ::= { cifsInfo 9 } + + cifsNTrees OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of CIFS trees on the + filer." + ::= { cifsInfo 10 } + + cifsNShares OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of CIFS shares on the + filer." + ::= { cifsInfo 11 } + + cifsNSessions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of active CIFS sessions + on the filer." + ::= { cifsInfo 12 } + + cifsNOpenFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open CIFS files and directories + on the filer." + ::= { cifsInfo 13 } + + cifsNOpenDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open CIFS directories on the + filer." + ::= { cifsInfo 14 } + + + cifsNOplockBreakWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open files waiting for oplock + break messages to be sent." + ::= { cifsInfo 16 } + + + cifsNOplockAckWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open files waiting for + acknowledgements to oplock break messages." + ::= { cifsInfo 17 } + + cifsSuspectOps OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A smoothed average of the number of events + per second of the type frequently seen + during virus attacks." + ::= { cifsInfo 18 } + + cifsNDomainControllers OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Domain Controllers found." + ::= { cifsInfo 19 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsStats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains cifs statistics since the last + -- time the statistics were cleared + + cifsServ OBJECT IDENTIFIER ::= { cifsStats 1 } + + -- cifsPerClient OBJECT IDENTIFIER ::= { cifsStats 2 } + + -- no per-client stats are kept as of the 5.3 release + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsServ group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for CIFS + -- status, and calls processed since the last + -- time the statistics were cleared + + cifsOps OBJECT IDENTIFIER ::= { cifsServ 1 } + + cifsReqs OBJECT IDENTIFIER ::= { cifsServ 2 } + + cifsPercent OBJECT IDENTIFIER ::= { cifsServ 3 } + + cifsObsReqs OBJECT IDENTIFIER ::= { cifsServ 4 } + + cifsObsPercent OBJECT IDENTIFIER ::= { cifsServ 5 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsOps group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsTotalOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS operations done by the filer, + since the last time the statistics were cleared." + ::= { cifsOps 1 } + + cifsTotalCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS calls received, since + the last time the statistics were cleared. This + is the number of cifsTotalOps plus the number of + miscellaneous operations that are not logged + which were received in that time period." + ::= { cifsOps 2 } + + cifsBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of received CIFS calls rejected, + since the last time the statistics were cleared." + ::= { cifsOps 3 } + + + cifsGetAttrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS operations to get + the attributes on a file or directory, since + the last time the statistics were reset." + ::= { cifsOps 4 } + + + cifsReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS Read operations on + a file or directory, since the last time the + statistics were reset." + ::= { cifsOps 5 } + + + cifsWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS write operations on + a file or directory, since the last time the + statistics were reset." + ::= { cifsOps 6 } + + + cifsLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS file locking requests + since the last time the statistics were reset." + ::= { cifsOps 7 } + + + cifsOpens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of calls, via CIFS, to open + a file or directory, since the last time + the statistics were reset." + ::= { cifsOps 8 } + + + cifsDirOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS directory operations, + since the last time the statistics were reset." + ::= { cifsOps 9 } + + + cifsOthers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS operations, since the + last time the statistics were reset, that + don't fall into the categories for GetAttr, + SetAttr, Read, Write, Lock, DirOp and Open." + ::= { cifsOps 10 } + + cifsSetAttrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS operations to set + the attributes on a file or directory, since + the last time the statistics were reset." + ::= { cifsOps 11 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsReqs group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for the number of + -- calls received for each CIFS SMB request + -- since the last time the statistics were cleared + + smbNegProts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NEGOTIATE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 1 } + + smbSessionSetupAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SESSION_SETUP_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 2 } + + smbLogoffAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOGOFF_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 3 } + + smbTreeConnectAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 4 } + + smbTreeDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_DISCONNECT requests, + since the last time the statistics were cleared." + ::= { cifsReqs 5 } + + smbTrans2QueryFSInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FS_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 6 } + + smbEchos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB ECHO requests, + since the last time the statistics were cleared." + ::= { cifsReqs 7 } + + smbNTCancels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests, since the + last time the statistics were cleared." + ::= { cifsReqs 8 } + + smbNTCreateAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CREATE_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 9 } + + smbNTTransactCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_CREATE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 10 } + + smbCreateTemporaries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB CREATE_TEMPORARY operation is not presently + supported, so this value should always be zero." + ::= { cifsReqs 11 } + + smbReadAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 12 } + + smbWriteAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 13 } + + smbLockingAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCKING_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 14 } + + smbSeeks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEEK requests, + since the last time the statistics were cleared." + ::= { cifsReqs 15 } + + smbFlushes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FLUSH requests, + since the last time the statistics were cleared." + ::= { cifsReqs 16 } + + smbCloses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 17 } + + smbDeletes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 18 } + + smbRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB RENAME requests, + since the last time the statistics were cleared." + ::= { cifsReqs 19 } + + smbMoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB MOVE request is not presently supported, + so this value should always be zero." + ::= { cifsReqs 20 } + + smbCopies OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB COPY request is not presently supported, + so this value should always be zero." + ::= { cifsReqs 21 } + + smbTrans2QueryPathInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_PATH_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 22 } + + smbTrans2QueryFileInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FILE_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 23 } + + smbTrans2SetPathInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_PATH_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 24 } + + smbTrans2SetFileInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_FILE_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 25 } + + smbDeleteDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE_DIRECTORY requests, + since the last time the statistics were cleared." + ::= { cifsReqs 26 } + + smbCheckDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB COPY request is not presently supported, + so this value should always be zero." + ::= { cifsReqs 27 } + + smbTrans2FindFirst2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_FIRST2 requests, + since the last time the statistics were cleared." + ::= { cifsReqs 28 } + + smbTrans2FindNext2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_NEXT2 requests, + since the last time the statistics were cleared." + ::= { cifsReqs 29 } + + smbFindClose2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FIND_CLOSE2 requests, + since the last time the statistics were cleared." + ::= { cifsReqs 30 } + + smbNTTransactNotifyChgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_NOTIFY_CHANGE + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 31 } + + smbTrans2GetDFSReferrals OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB TRANS2_GET_DFS_REFERRAL request is + not presently supported, so this value should + always be zero." + ::= { cifsReqs 32 } + + smbTrans2ReportDFSIncs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB TRANS2_REPORT_DFS_INCONSISTENCY request is + not presently supported, so this value should + always be zero." + ::= { cifsReqs 33 } + + smbOpenPrintFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB OPEN_PRINT_FILE request is not supported, + so this value should always be zero." + ::= { cifsReqs 34 } + + smbGetPrintQueues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB GET_PRINT_QUEUE request is not supported, + so this value should always be zero." + ::= { cifsReqs 35 } + + smbNTTransactIoctls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_IOCTL requests, + since the last time the statistics were cleared." + ::= { cifsReqs 36 } + + smbNTTransactQuerySecDescs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_QUERY_SECURITY_DESC + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 37 } + + smbNTTransactSetSecDescs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_SET_SECURITY_DESC + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 38 } + + + smbTrans2CreateDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_CREATE_DIRECTORY + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 39 } + + + smbNTCancelCNs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + change notifications since the last time + the statistics were cleared." + ::= { cifsReqs 40 } + + smbNTCancelOthers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + operations other than change notifications, + since the last time the statistics + were cleared." + ::= { cifsReqs 41 } + + smb2Echos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 ECHO requests, + since the last time the statistics were cleared." + ::= { cifsReqs 42 } + + smb2NegProts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 NEGOTIATE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 43 } + + smb2SessionSetups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SESSION_SETUP requests, + since the last time the statistics were cleared." + ::= { cifsReqs 44 } + + smb2Logoffs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 LOGOFF requests, + since the last time the statistics were cleared." + ::= { cifsReqs 45 } + + smb2TreeConnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 TREE_CONNECT requests, + since the last time the statistics were cleared." + ::= { cifsReqs 46 } + + smb2TreeDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 TREE_DISCONNECT requests, + since the last time the statistics were cleared." + ::= { cifsReqs 47 } + + + smb2Cancels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 CANCEL requests, + since the last time the statistics were cleared." + ::= { cifsReqs 48 } + + smb2Creates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 CREATE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 49 } + + smb2IpcCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 IPC CREATE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 50 } + + smb2Reads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 READ requests, + since the last time the statistics were cleared." + ::= { cifsReqs 51 } + + smb2Writes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 WRITE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 52 } + + smb2IpcReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 IPC READ requests, + since the last time the statistics were cleared." + ::= { cifsReqs 53 } + + smb2IpcWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 IPC WRITE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 54 } + + smb2Locks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 LOCK requests, + since the last time the statistics were cleared." + ::= { cifsReqs 55 } + + smb2UnLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 UNLOCK requests, + since the last time the statistics were cleared." + ::= { cifsReqs 56 } + + smb2OplkBrkAck OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 Oplock Break Acknowledgements, + since the last time the statistics were cleared." + + ::= { cifsReqs 57 } + + smb2Flushs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FLUSH requests, + since the last time the statistics were cleared." + ::= { cifsReqs 58 } + + smb2Closes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 CLOSE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 59 } + + smb2QueryFileBasicInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_BASIC_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 60 } + + + smb2QueryFileStandardInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_STANDARD_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 61 } + + smb2QueryFileInternalInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_INT_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 62 } + + smb2QueryFileEAInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_EA_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 63 } + + smb2QueryFileFullEAInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_FULL_EA_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 64 } + + smb2QueryFileModeInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_MODE_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 65 } + + smb2QueryFileAltNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_ALT_NAME_INFO_ + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 66 } + + smb2QueryFileStreamInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_STREAM_INFO_ + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 67 } + + smb2QueryFileNetOpenInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_NET_OPEN_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 68 } + + smb2QueryFileAttrTagInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_ATTR_TAG_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 69 } + + smb2QueryFileUnsupporteds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 Unsupported QUERY_FILE_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 70 } + + smb2QueryFileInvalids OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 invalid QUERY_FILE_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 71 } + + smb2QueryFsVolInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_VOLUME_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 72 } + + smb2QueryFsSizeInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_SIZE_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 73 } + + smb2QueryFsDeviceInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_DEVICE_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 74 } + + smb2QueryFsAttrInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_ATTR_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 75 } + + smb2QueryFsFullSizeInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_FULL_SIZE_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 76 } + + smb2QueryFsObjectIdInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_OBJECT_ID_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 77 } + + smb2QueryFsInvalids OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 invalid QUERY_FS_INFO + requestd, since the last time the statistics + were cleared." + ::= { cifsReqs 78 } + + smb2SetBasicInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_BASIC_INFO + requesed, since the last time the statistics + were cleared." + ::= { cifsReqs 79 } + + smb2SetRenameInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FILE_RENAME_INFO + requeved, since the last time the statistics + were cleared." + ::= { cifsReqs 80 } + + smb2SetFileLinkInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FILE_LINK_INFO + requived, since the last time the statistics + were cleared." + ::= { cifsReqs 81 } + + smb2SetFileDispInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FILE_DISP_INFO + reqeived, since the last time the statistics + were cleared." + ::= { cifsReqs 82 } + + smb2SetFullEaInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FULL_EA_INFO + received, since the last time the statistics + were cleared." + ::= { cifsReqs 83 } + + smb2SetModeInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_MODE_INFO + received, since the last time the statistics + were cleared." + ::= { cifsReqs 84 } + + smb2SetAllocInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_ALLOC_INFO + received, since the last time the statistics + were cleared." + ::= { cifsReqs 85 } + + smb2SetEofInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_EOF_INFO + received, since the last time the statistics + were cleared." + ::= { cifsReqs 86 } + + smb2SetInfoUnsupporteds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 Unsupported SET_INFO + received, since the last time the statistics + were cleared." + ::= { cifsReqs 87 } + + smb2SetInfoInvalids OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of invalid SMB2 SET_INFO + received, since the last time the statistics + were cleared." + ::= { cifsReqs 88 } + + smb2FsctlPipeTransceives OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_PIPE_TRANSCEIVE + received, since the last time the statistics + were cleared." + ::= { cifsReqs 89 } + + smb2FsctlPipePeeks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_PIPE_PEEK + received, since the last time the statistics + were cleared." + ::= { cifsReqs 90 } + + smb2FsctlEnumSnapshotss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_ENUMERATE_SNAPSHOTS + received, since the last time the statistics + were cleared." + ::= { cifsReqs 91 } + + smb2FsctlDfsReferralss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_DFS_REFERRALS + received, since the last time the statistics + were cleared." + ::= { cifsReqs 92 } + + smb2FsctlSetSparses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_SET_SPARSE + received, since the last time the statistics + were cleared." + ::= { cifsReqs 93 } + + smb2FsctlSecureShares OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_SECURE_SHARE + received, since the last time the statistics + were cleared." + ::= { cifsReqs 94 } + + smb2FsctlFileUnsupporteds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Unsupported SMB2 File FSCTL + received, since the last time the statistics + were cleared." + ::= { cifsReqs 95 } + + smb2FsctlIpcUnsupporteds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Unsupported SMB2 IPC FSCTL + received, since the last time the statistics + were cleared." + ::= { cifsReqs 96 } + + smb2QueryDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_DIR + received, since the last time the statistics + were cleared." + ::= { cifsReqs 97 } + + smb2ChgNfys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 CHANGE_NOTIFY + received, since the last time the statistics + were cleared." + ::= { cifsReqs 98 } + + smb2QuerySecurityInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_INFO SECURITY requests + received, since the last time the statistics + were cleared." + ::= { cifsReqs 99 } + + smb2SetSecurityInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_INFO SECURITY requests + received, since the last time the statistics + were cleared." + ::= { cifsReqs 100 } + + smb2QueryFileAccessInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_ACCESS_INFO + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 101 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsObsReqs group + -- (Obsolete SMB requests) + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + obsSmbClosePrintFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE_PRINT_FILE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 1 } + + obsSmbCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 2 } + + obsSmbCreateDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_DIRECTORY requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 3 } + + obsSmbCreateNews OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_NEW requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 4 } + + obsSmbLockAndReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_AND_READ requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 5 } + + obsSmbLockByteRanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_BYTE_RANGE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 6 } + + obsSmbOpens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 7 } + + obsSmbOpenAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 8 } + + obsSmbProcessExits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB PROCESS_EXIT requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 9 } + + obsSmbQueryInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 10 } + + obsSmbQueryInfo2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION2 requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 11 } + + obsSmbReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 12 } + + obsSmbReadMPXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB READ_MPX request is not supported, + so this value should always be zero." + ::= { cifsObsReqs 13 } + + obsSmbReadRaws OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_RAW requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 14 } + + obsSmbSearchs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEARCH requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 15 } + + obsSmbSetInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 16 } + + obsSmbSetInfo2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION2 requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 17 } + + obsSmbQueryInfoDisks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION_DISK + requests, since the last time the statistics + were cleared." + ::= { cifsObsReqs 18 } + + obsSmbTrans2Open2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_OPEN2 requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 19 } + + obsSmbTreeConnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 20 } + + obsSmbUnlockByteRanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB UNLOCK_BYTE_RANGE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 21 } + + obsSmbWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 22 } + + obsSmbWriteAndUnlocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_UNLOCK requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 23 } + + obsSmbWriteAndCloses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_CLOSE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 24 } + + obsSmbWriteMPXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB WRITE_MPX request is not supported, + so this value should always be zero." + ::= { cifsObsReqs 25 } + + obsSmbWritePrintFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB WRITE_PRINT_FILE request is not supported, + so this value should always be zero." + ::= { cifsObsReqs 26 } + + obsSmbWriteRaws OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_RAW requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 27 } + + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsPercent group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for the number of + -- calls received for each CIFS SMB request + -- as a percentage of total CIFS calls received, + -- since the last time the statistics were cleared + + smbNegProtPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NEGOTIATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 1 } + + smbSessionSetupAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SESSION_SETUP_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 2 } + + smbLogoffAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOGOFF_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 3 } + + smbTreeConnectAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 4 } + + smbTreeDisconnectAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_DISCONNECT_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 5 } + + smbTrans2QueryFSInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FS_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 6 } + + smbEchoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB ECHO requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 7 } + + smbNTCancelPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 8 } + + smbCreateAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CREATE_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 9 } + + smbTransactCreatePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_CREATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 10 } + + smbCreateTemporaryPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_TEMPORARY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 11 } + + smbReadAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 12 } + + smbWriteAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 13 } + + smbLockingAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCKING_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 14 } + + smbSeekPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEEK requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 15 } + + smbFlushPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FLUSH requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 16 } + + smbClosePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 17 } + + smbDeletePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 18 } + + smbRenamePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB RENAME requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 19 } + + smbMovePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB MOVE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 20 } + + smbCopyPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB COPY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 21 } + + smbTrans2QueryPathInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_PATH_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 22 } + + smbTrans2QueryFileInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FILE_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 23 } + + smbTrans2SetPathInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_PATH_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 24 } + + smbTrans2SetFileInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_FILE_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 25 } + + smbDeleteDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE_DIRECTORY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 26 } + + smbCheckDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CHECK_DIRECTORY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 27 } + + + smbTrans2FindFirst2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_FIRST2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 28 } + + smbTrans2FindNext2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_NEXT2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 29 } + + smbFindClose2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FIND_CLOSE2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 30 } + + smbNTTransactNotifyChgPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_NOTIFY_CHANGE + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 31 } + + smbTrans2GetDFSReferralPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_GET_DFS_REFERRAL + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 32 } + + smbTrans2ReportDFSIncPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_REPORT_DFS_INCONSISTENCY + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 33 } + + smbOpenPrintFilePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN_PRINT_FILE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 34 } + + smbGetPrintQueuePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB GET_PRINT_QUEUE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 35 } + + smbNTTransactIoctlPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_IOCTL requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 36 } + + smbNTTransactQuerySecDescPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_QUERY_SECURITY_DESC + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 37 } + + smbNTTransactSetSecDescPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_SET_SECURITY_DESC + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 38 } + + + smbTrans2CreateDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_CREATE_DIRECTORY + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 39 } + + + smbNTCancelCNPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + change notifications, as a percentage of + total CIFS calls received, since the last + time the statistics were cleared." + ::= { cifsPercent 40 } + + smbNTCancelOtherPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + calls other than change notifications, as + a percentage of total CIFS calls received, + since the last time the statistics were + cleared." + ::= { cifsPercent 41 } + + smb2EchoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 ECHO requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 42 } + + smb2NegProtPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 NEGOTIATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 43 } + + smb2SessionSetupPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SESSION_SETUP requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 44 } + + smb2LogoffPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 LOGOFF requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 45 } + + smb2TreeConnectPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 TREE_CONNECT requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 46 } + + smb2TreeDisconnectPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 TREE_DISCONNECT requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 47 } + + + smb2CancelPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 CANCEL requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 48 } + + smb2CreatePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 CREATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 49 } + + smb2IpcCreatePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 IPC CREATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 50 } + + smb2ReadPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 READ requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 51 } + + smb2WritePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 WRITE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 52 } + + smb2IpcReadPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 IPC READ requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 53 } + + smb2IpcWritePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 IPC WRITE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 54 } + + smb2LockPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 LOCK requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 55 } + + smb2UnLockPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 UNLOCK requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 56 } + + smb2OplkBrkAckPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 Oplock Break Acknowledgement, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 57 } + + smb2FlushPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FLUSH requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 58 } + + smb2ClosePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 CLOSE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 59 } + + smb2QueryFileBasicInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_BASIC_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 60 } + + + smb2QueryFileStandardInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_STANDARD_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 61 } + + smb2QueryFileInternalInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_INT_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 62 } + + smb2QueryFileEAInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_EA_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 63 } + + smb2QueryFileFullEAInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_FULL_EA_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 64 } + + smb2QueryFileModeInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_MODE_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 65 } + + smb2QueryFileAltNamePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_ALT_NAME_INFO_ + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 66 } + + smb2QueryFileStreamInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_STREAM_INFO_ + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 67 } + + smb2QueryFileNetOpenInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_NET_OPEN_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 68 } + + smb2QueryFileAttrTagInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FILE_ATTR_TAG_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 69 } + + smb2QueryFileUnsupportedPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 Unsupported QUERY_FILE_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 70 } + + smb2QueryFileInvalidPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 invalid QUERY_FILE_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 71 } + + smb2QueryFsVolInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_VOLUME_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 72 } + + smb2QueryFsSizeInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_SIZE_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 73 } + + smb2QueryFsDeviceInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_DEVICE_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 74 } + + smb2QueryFsAttrInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_ATTR_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 75 } + + smb2QueryFsFullSizeInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_FULL_SIZE_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 76 } + + smb2QueryFsObjectIdInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_FS_OBJECT_ID_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 77 } + + smb2QueryFsInvalidPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 invalid QUERY_FS_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 78 } + + smb2SetBasicInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_BASIC_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 79 } + + smb2SetRenameInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FILE_RENAME_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 80 } + + smb2SetFileLinkInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FILE_LINK_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 81 } + + smb2SetFileDispInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FILE_DISP_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 82 } + + smb2SetFullEaInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_FULL_EA_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 83 } + + smb2SetModeInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_MODE_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 84 } + + smb2SetAllocInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_ALLOC_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 85 } + + smb2SetEofInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 SET_EOF_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 86 } + + smb2SetInfoUnsupportedPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 Unsupported SET_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 87 } + + smb2SetInfoInvalidPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of invalid SMB2 SET_INFO + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 88 } + + smb2FsctlPipeTransceivePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_PIPE_TRANSCEIVE + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 89 } + + smb2FsctlPipePeekPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_PIPE_PEEK + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 90 } + + smb2FsctlEnumSnapshotsPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_ENUMERATE_SNAPSHOTS + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 91 } + + smb2FsctlDfsReferralsPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_DFS_REFERRALS + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 92 } + + smb2FsctlSetSparsePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_SET_SPARSE + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 93 } + + smb2FsctlSecureSharePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 FSCTL_SECURE_SHARE + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 94 } + + smb2FsctlFileUnsupportedPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Unsupported SMB2 File FSCTL + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 95 } + + smb2FsctlIpcUnsupportedPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Unsupported SMB2 IPC FSCTL + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 96 } + + smb2QueryDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB2 QUERY_DIR + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 97 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the obsPct group + -- (Obsolete SMB requests) + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + obsSmbClosePrintFilePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE_PRINT_FILE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 1 } + + obsSmbCreatePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 2 } + + obsSmbCreateDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_DIRECTORY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 3 } + + obsSmbCreateNewPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_NEW requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 4 } + + obsSmbLockAndReadPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_AND_READ requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 5 } + + obsSmbLockByteRangePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_BYTE_RANGE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 6 } + + obsSmbOpenPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 7 } + + obsSmbOpenAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 8 } + + obsSmbProcessExitPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB PROCESS_EXIT requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 9 } + + obsSmbQueryInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 10 } + + obsSmbQueryInfo2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 11 } + + obsSmbReadPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 12 } + + obsSmbReadMPXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_MPX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 13 } + + obsSmbReadRawPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_RAW requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 14 } + + obsSmbSearchPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEARCH requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 15 } + + obsSmbSetInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 16 } + + obsSmbSetInfo2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 17 } + + obsSmbQueryInfoDiskPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION_DISK + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsObsPercent 18 } + + obsSmbTrans2Open2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_OPEN2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 19 } + + obsSmbTreeConnectPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 20 } + + obsSmbUnlockByteRangePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB UNLOCK_BYTE_RANGE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 21 } + + obsSmbWritePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 22 } + + obsSmbWriteAndUnlockPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_UNLOCK requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 23 } + + obsSmbWriteAndClosePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_CLOSE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 24 } + + obsSmbWriteMPXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_MPX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 25 } + + obsSmbWritePrintFilePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_PRINT_FILE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 26 } + + obsSmbWriteRawPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_RAW requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 27 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsMisc group + -- These statistics are primarily of interest to + -- NetApp developers. + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsCancelLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 1 } + + cifsWaitLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 2 } + + cifsCopyToAligns OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 3 } + + cifsAlignedSmalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 4 } + + cifsAlignedLarges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 5 } + + cifsAlignedSmallRels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 6 } + + cifsAlignedLargeRels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 7 } + + cifsMbufWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 8 } + + cifsNbtWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 9 } + + cifsCwaWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 10 } + + cifsMultipleVCs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 11 } + + cifsPDCUpcalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 12 } + + cifsQueuedWriteRaws OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 13 } + + cifsNBTDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 14 } + + cifsSMBDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 15 } + + cifsDupDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 16 } + + cifsOpLkBatchToL2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 17 } + + cifsOpLkBatchToNones OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 18 } + + cifsOpLkL2ToNones OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 19 } + + cifsOpLkNoBreakAcks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 20 } + + cifsOpLkIgnoredAcks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 21 } + + cifsOpLkMultiWaiters OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 22 } + + cifsSharingErrorRetries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 23 } + + cifsOpLkWaiterTimedOuts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 24 } + + cifsOpLkDelayedBreaks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 25 } + + cifsOpLkEarlyNFSs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 26 } + + cifsOpLkNFSWaiteds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 27 } + + cifsMaxNFSBkWaiterCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 28 } + + cifsClearTextPasswd OBJECT-TYPE + SYNTAX INTEGER { + no(1), + yes(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates whether the cifs clients are + using clear text passwords when authenticating + with the filer. If cifsDomainJoined is false and + this variable is also false, then the filer is + using NT Security from a local user list." + ::= { cifsMisc 29 } + + cifsSmb2MidUsedHash OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 30 } + + cifsSmb2MidUnusedHash OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 31 } + + cifsSmb2MidInvReject OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 32 } + + cifsSmb2DurableCreateReceived OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 33 } + + cifsSmb2DurableCreateSucceeded OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 34 } + + cifsSmb2DurableReclaimReceived OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 35 } + + cifsSmb2DurableReclaimSucceeded OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 36 } + + cifsSmb2DurableHandlePreserved OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 37 } + + cifsSmb2DurableHandlePurged OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 38 } + + cifsSmb2DurableHandleExpired OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 39 } + + cifsSmb2FileDirInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 40 } + + cifsSmb2FileFullDirInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 41 } + + cifsSmb2FileIdFullDirInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 42 } + + cifsSmb2FileBothDirInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 43 } + + cifsSmb2FileIdBothDirInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 44 } + + cifsSmb2FileNamesInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 45 } + + cifsSmb2FileDirUnsupported OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 46 } + + cifsSmb2QueryInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 47 } + + cifsSmb2SetInfo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 48 } + + cifsSmb2Ioctl OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 49 } + + cifsSmb2RelatedCompRequest OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 50 } + + cifsSmb2UnRelatedCompRequest OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 51 } + + cifsSmb2FileRequest OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 52 } + + cifsSmb2PipeRequest OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 53 } + + cifsSmb2Unsupported OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 54 } + + cifsSmb2InvalidSignatures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of CIFS SMB 2.0 messages received + with incorrect signature." + ::= { cifsMisc 55 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncOptions OBJECT IDENTIFIER ::= { netcache 1 } + + ncInfo OBJECT IDENTIFIER ::= { netcache 2 } + + ncStats OBJECT IDENTIFIER ::= { netcache 3 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Netcache is enabled on this system." + ::= { ncOptions 1 } + + ncIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Netcache is licensed on this system." + ::= { ncOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the dns options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncDnsOptions OBJECT IDENTIFIER ::= { ncOptions 3 } + + ncDnsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Domain Name System (DNS) + is enabled on this system." + ::= { ncDnsOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the http options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncHttpOptions OBJECT IDENTIFIER ::= { ncOptions 4 } + + ncHttpIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether HTTP is enabled on this system." + ::= { ncHttpOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the nntp options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNntpOptions OBJECT IDENTIFIER ::= { ncOptions 5 } + + ncNntpIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NNTP is enabled on this system." + ::= { ncNntpOptions 1 } + + ncNntpIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NNTP is licensed on this system." + ::= { ncNntpOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the streaming options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncStreamingOptions OBJECT IDENTIFIER ::= { ncOptions 6 } + + ncStreamingMmsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Media Services (MMS) + is enabled on this system." + ::= { ncStreamingOptions 1 } + + ncStreamingMmsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Windows Media Service (MMS) + is licensed on this system." + ::= { ncStreamingOptions 2 } + + ncStreamingMmsProIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Windows Media Service Pro (MMS) + is licensed on this system." + ::= { ncStreamingOptions 3 } + + ncStreamingRtspIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Real Time Streaming Protocol (RTSP) + is enabled on this system." + ::= { ncStreamingOptions 4 } + + ncStreamingQuickTimeIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether QuickTime is licensed on this system." + ::= { ncStreamingOptions 5 } + + ncStreamingRealIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Real Media streaming is licensed on + this system." + ::= { ncStreamingOptions 6 } + + ncStreamingMmsUltraIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Windows Media Service Ultra (MMS) + is licensed on this system." + ::= { ncStreamingOptions 7 } + + ncStreamingRealProIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Real Media Pro streaming is licensed on + this system." + ::= { ncStreamingOptions 8 } + + ncStreamingRealUltraIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Real Media Ultra streaming is licensed on + this system." + ::= { ncStreamingOptions 9 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the icap options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncIcapOptions OBJECT IDENTIFIER ::= { ncOptions 7 } + + ncIcapIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether ICAP v0.95 is enabled on this system." + ::= { ncIcapOptions 1 } + + ncIcapIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether ICAP is licensed on this system." + ::= { ncIcapOptions 2 } + + ncIcapv1IsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether ICAP v1.0 is enabled on this system." + ::= { ncIcapOptions 3 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the grm options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncGrmOptions OBJECT IDENTIFIER ::= { ncOptions 8 } + + ncGrmServerOptions OBJECT IDENTIFIER ::= { ncGrmOptions 1 } + + ncGrmAgentOptions OBJECT IDENTIFIER ::= { ncGrmOptions 2 } + + ncGrmServerIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Server + is enabled on this system." + ::= { ncGrmServerOptions 1 } + + ncGrmServerIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Server + is licensed on this system." + ::= { ncGrmServerOptions 2 } + + ncGrmAgentIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Agent + enabled on this system." + ::= { ncGrmAgentOptions 1 } + + ncGrmAgentIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Agent + is licensed on this system." + ::= { ncGrmAgentOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the content director options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncCdOptions OBJECT IDENTIFIER ::= { ncOptions 9 } + + ncCdIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Content Director is enabled on this system." + ::= { ncCdOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the https options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncHttpsProxyOptions OBJECT IDENTIFIER ::= { ncOptions 10 } + + ncHttpsProxyIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether HTTPS is enabled on this system." + ::= { ncHttpsProxyOptions 1 } + + ncHttpsProxyIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether HTTPS is licensed on this system." + ::= { ncHttpsProxyOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cms options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + ncCmsOptions OBJECT IDENTIFIER ::= { ncOptions 11 } + + ncCmsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether CMS is enabled on this system." + ::= { ncCmsOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache info group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Netcache version string." + ::= { ncInfo 1 } + + ncAdminPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Netcache Admin Port number - this + is the first in the list of admin + ports configured for the NetCache." + ::= { ncInfo 2 } + + + accelmonitor OBJECT IDENTIFIER ::= { ncInfo 3 } + + -- the acceleration monitor group + -- Implementation of the Acceleration Monitor (accelmonitor. + + amNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of entries in the acceleration monitor table." + ::= { accelmonitor 1 } + + amMonitor OBJECT-TYPE + SYNTAX INTEGER { + togglea(1), + toggleb(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Variable for user defined SNMP traps to monitor whether there has been a status change of any of the acceleration + servers that netcache is probing." + ::= { accelmonitor 2 } + + amMonitorString OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Used in conjunction with amMonitor. This returns a string + in format of: 'IP:port status' which reports the status + of all the servers netcache is accelerating as of last + status change." + ::= { accelmonitor 3 } + + -- accelmonitor table + + -- the Acceleration Monitor table contains information of the + -- the acceleration server, port that we are monitoring and its + -- status. + + amTable OBJECT-TYPE + SYNTAX SEQUENCE OF AmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of acceleration server and port entries. The + number of entries is given by the value of amNumber." + ::= { accelmonitor 4 } + + amEntry OBJECT-TYPE + SYNTAX AmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An acceleration monitor entry contains: the server + IP address, server port and the status." + INDEX { amIndex } + ::= { amTable 1 } + + AmEntry ::= + SEQUENCE { + amIndex + Integer32, + amAddress + IpAddress, + amPort + Integer32, + amStatus + Integer32 + } + + amIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A unique value for each entry in the acceleration monitor + table." + ::= { amEntry 1 } + + amAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of the acceleration server the NetCache + is monitoring." + ::= { amEntry 2 } + + amPort OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The corresponding port on the server that NetCache is + monitoring." + ::= { amEntry 3 } + + amStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + up(2), + down(3), + inactive(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the service running on the server. + active - in queue but no probes done yet. + up - the server is reachable and responding to probes. + down - the server is unreachable. + inactive - monitoring is disabled." + ::= { amEntry 4 } + + ncLocalConfigChanged OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the local configuration file on NetCache + was changed without using DFM configuration management." + ::= { ncInfo 4 } + + ncLocalConfigVersion OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current cache configuration's version." + ::= { ncInfo 5 } + + grmMonitor OBJECT IDENTIFIER ::= { ncInfo 6 } + + -- the GRM monitor group + -- Implementation of the GRM agent monitor + + grmMonitorToggle OBJECT-TYPE + SYNTAX INTEGER { + togglea(1), + toggleb(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Variable for user defined SNMP traps to monitor whether there has been a status change of any of the GRM + agents reporting to this GRM server." + ::= { grmMonitor 1 } + + grmMonitorString OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Used in conjunction with grmMonitor. This returns a string + in format of: 'IP status.' which reports the status + of all the GRM agents reporting to this GRM server as of last + status change." + ::= { grmMonitor 2 } + + takeoverinfo OBJECT IDENTIFIER ::= { ncInfo 7 } + + -- the takeover information group + -- information same as status.takeover.addrs and + -- status.takeover.mode and status.takeover.partner_status + + takeoverAddrs OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the list of interfaces and their corresponding IP + addresses of the partner NetCache that this appliance has taken over." + ::= { takeoverinfo 1 } + + takeoverMode OBJECT-TYPE + SYNTAX INTEGER { + normal(1), + takingover(2), + takenover(3), + giveback(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the current takeover mode of this appliance." + ::= { takeoverinfo 2 } + + takeoverStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + unknown(2), + failed(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the current status of the takeover partner of + this appliance. up(1) indicates that the takeover partner is + reachable. unknown(2) indicates that an unknown error occured. + failed(3) indicates that the partner has failed, takeoverAddrs + indicates the partner's IP address this appliance has taken + over." + ::= { takeoverinfo 3 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache stats group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncObjectsStored OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of objects stored currently." + ::= { ncStats 1 } + + ncBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes sent to clients" + ::= { ncStats 2 } + + ncBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes received from clients" + ::= { ncStats 3 } + + ncBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes sent to servers" + ::= { ncStats 4 } + + ncBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes received from servers" + ::= { ncStats 5 } + + ncHttp OBJECT IDENTIFIER ::= { ncStats 6 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the http stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncHttpTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP requests so far" + ::= { ncHttp 1 } + + ncHttpHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP requests that resulted in hits so far" + ::= { ncHttp 2 } + + ncHttpMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP requests that resulted in misses so far" + ::= { ncHttp 3 } + + ncHttpServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to HTTP servers (active and idle)" + ::= { ncHttp 4 } + + ncHttpCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to HTTP clients (active and idle)" + ::= { ncHttp 5 } + + ncHttpBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for HTTP requests" + ::= { ncHttp 6 } + + ncHttpObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate HTTP requests" + ::= { ncHttp 7 } + + ncHttpRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time in milliseconds per byte for HTTP requests." + ::= { ncHttp 8 } + + ncHttpAvgRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for all HTTP requests." + ::= { ncHttp 9 } + + ncHttpAvgHitRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP hit requests." + ::= { ncHttp 10 } + + ncHttpAvgMissRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP miss requests." + ::= { ncHttp 11 } + + ncHttpInstAvgRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for all HTTP requests during the last 60 seconds." + ::= { ncHttp 12 } + + + ncHttpInstAvgHitRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP hit requests during the last 60 seconds." + ::= { ncHttp 13 } + + ncHttpInstAvgMissRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP miss requests during the last 60 seconds." + ::= { ncHttp 14 } + + ncHttpTotalRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP requests" + ::= { ncHttp 15 } + + ncHttpTotalHitRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP HIT requests" + ::= { ncHttp 16 } + + ncHttpTotalMissRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP MISS requests" + ::= { ncHttp 17 } + + ncHttpBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes sent to clients" + ::= { ncHttp 18 } + + ncHttpBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes received from clients" + ::= { ncHttp 19 } + + ncHttpBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes sent to servers" + ::= { ncHttp 20 } + + ncHttpBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes received from servers" + ::= { ncHttp 21 } + + ncHttpHighTotalRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP requests. + This object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 22 } + + ncHttpLowTotalRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP requests. + This object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 23 } + + ncHttpHighTotalHitRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP HIT requests. + This object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 24 } + + ncHttpLowTotalHitRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP HIT requests. + This object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 25 } + + ncHttpHighTotalMissRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP MISS requests. + This object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 26 } + + ncHttpLowTotalMissRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP MISS requests. + This object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 27 } + + ncHttpReqRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Request Rate for HTTP requests" + ::= { ncHttp 28 } + + ncHttpObjHitRateLast1Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP object hit rate in the last 1 minute." + ::= { ncHttp 29 } + + ncHttpObjHitRateLast5Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP object hit rate in the last 5 minutes." + ::= { ncHttp 30 } + + ncHttpByteHitRateLast1Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP byte hit rate in the last 1 minute." + ::= { ncHttp 31 } + + ncHttpByteHitRateLast5Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP byte hit rate in the last 5 minutes." + ::= { ncHttp 32 } + + ncHttpBWSavingsLast1Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for HTTP requests in the last + 1 minute" + ::= { ncHttp 33 } + + ncHttpBWSavingsLast5Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for HTTP requests in the last + 5 minutes" + ::= { ncHttp 34 } + + ncHttpActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to HTTP servers" + ::= { ncHttp 35 } + + ncHttpActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to HTTP clients" + ::= { ncHttp 36 } + + ncHttpAccelTable OBJECT-TYPE + SYNTAX SEQUENCE OF NcHttpAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Number of kilobytes sent to and recieved from the client side + per acceleration rule" + + ::= { ncHttp 37 } + + ncHttpAccelEntry OBJECT-TYPE + SYNTAX NcHttpAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry contains the number of kilobytes sent and + received to/from the clients side per acceleration + rule" + + INDEX { ncHttpAccelIndex } + ::= { ncHttpAccelTable 1 } + + NcHttpAccelEntry ::= + SEQUENCE { + ncHttpAccelIndex Integer32, + ncHttpAccelKbytesFromClient Counter32, + ncHttpAccelKbytesToClient Counter32, + ncHttpAccelHits Counter32 + } + + ncHttpAccelIndex OBJECT-TYPE + SYNTAX Integer32 (1..513) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each entry in the http acceleration + stats table" + ::= { ncHttpAccelEntry 1 } + + ncHttpAccelKbytesFromClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes received from the client + for this acceleration rule" + ::= { ncHttpAccelEntry 2 } + + ncHttpAccelKbytesToClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes sent to the client for + this acceleration rule" + ::= { ncHttpAccelEntry 3 } + + ncHttpAccelHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The number of times this acceleration rule has been hit" + ::= { ncHttpAccelEntry 4 } + + ncHttpsAccelTable OBJECT-TYPE + SYNTAX SEQUENCE OF NcHttpsAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Number of kilobytes sent to and recieved from the client side + per acceleration rule" + + ::= { ncHttp 38 } + + ncHttpsAccelEntry OBJECT-TYPE + SYNTAX NcHttpsAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry contains the number of kilobytes sent and + received to/from the clients side per acceleration + rule" + + INDEX { ncHttpsAccelIndex } + ::= { ncHttpsAccelTable 1 } + + NcHttpsAccelEntry ::= + SEQUENCE { + ncHttpsAccelIndex Integer32, + ncHttpsAccelKbytesFromClient Counter32, + ncHttpsAccelKbytesToClient Counter32, + ncHttpsAccelHits Counter32 + } + + ncHttpsAccelIndex OBJECT-TYPE + SYNTAX Integer32 (1..513) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each entry in the http acceleration + stats table" + ::= { ncHttpsAccelEntry 1 } + + ncHttpsAccelKbytesFromClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes received from the client + for this acceleration rule" + ::= { ncHttpsAccelEntry 2 } + + ncHttpsAccelKbytesToClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes sent to the client for + this acceleration rule" + ::= { ncHttpsAccelEntry 3 } + + ncHttpsAccelHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The number of times this acceleration rule has been hit" + ::= { ncHttpsAccelEntry 4 } + + + ncNntp OBJECT IDENTIFIER ::= { ncStats 7 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the nntp stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNntpTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "NNTP total requests so far" + ::= { ncNntp 1 } + ncNntpCacheableRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "NNTP requests that were cacheable" + ::= { ncNntp 2 } + + ncNntpProxyRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "NNTP requests that were non-cacheable" + ::= { ncNntp 3 } + + ncNntpServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to NNTP servers (active and idle)" + ::= { ncNntp 4 } + + ncNntpCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to NNTP clients (active and idle)" + ::= { ncNntp 5 } + + ncNntpBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for NNTP requests" + ::= { ncNntp 6 } + + ncNntpRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time per byte for NNTP requests" + ::= { ncNntp 7 } + + ncNntpBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes sent to clients" + ::= { ncNntp 8 } + + ncNntpBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes received from clients" + ::= { ncNntp 9 } + + ncNntpBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes sent to servers" + ::= { ncNntp 10 } + + ncNntpBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes received from servers" + ::= { ncNntp 11 } + + ncNntpObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate of NNTP requests" + ::= { ncNntp 12 } + + ncNntpActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to NNTP servers" + ::= { ncNntp 13 } + + ncNntpActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to NNTP clients" + ::= { ncNntp 14 } + + ncFtp OBJECT IDENTIFIER ::= { ncStats 8 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the ftp stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncFtpTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FTP total requests so far" + ::= { ncFtp 1 } + + ncFtpHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FTP requests that resulted in hits so far" + ::= { ncFtp 2 } + + ncFtpMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FTP requests that resulted in misses so far" + ::= { ncFtp 3 } + + ncFtpServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to FTP servers (active and idle)" + ::= { ncFtp 4 } + + ncFtpCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to FTP clients (active and idle)" + ::= { ncFtp 5 } + + ncFtpBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for FTP requests" + ::= { ncFtp 6 } + + ncFtpRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time per byte for FTP requests" + ::= { ncFtp 7 } + + ncFtpBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes sent to clients" + ::= { ncFtp 8 } + + ncFtpBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes received from clients" + ::= { ncFtp 9 } + + ncFtpBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes sent to servers" + ::= { ncFtp 10 } + + ncFtpBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes received from servers" + ::= { ncFtp 11 } + + ncFtpObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate of FTP requests" + ::= { ncFtp 12 } + + ncFtpActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to FTP servers" + ::= { ncFtp 13 } + + ncFtpActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to FTP clients" + ::= { ncFtp 14 } + + ncStreaming OBJECT IDENTIFIER ::= { ncStats 9 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the streaming stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncStreamingServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to streaming servers (active and idle)" + ::= { ncStreaming 1 } + + ncStreamingCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to streaming clients (active and idle)" + ::= { ncStreaming 2 } + + ncStreamingBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all streaming requests" + ::= { ncStreaming 3 } + + ncStreamingRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time per byte for all streaming requests" + ::= { ncStreaming 4 } + + ncStreamingHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "STREAMING requests that resulted in hits so far" + ::= { ncStreaming 5 } + + ncStreamingMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "STREAMING requests that resulted in misses so far" + ::= { ncStreaming 6 } + + ncStreamingTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "STREAMING total requests so far" + ::= { ncStreaming 7 } + + ncStreamingLiveBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes sent to clients" + ::= { ncStreaming 8 } + + ncStreamingLiveBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes received from clients" + ::= { ncStreaming 9 } + + ncStreamingLiveBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes sent to servers" + ::= { ncStreaming 10 } + + ncStreamingLiveBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes received from servers" + ::= { ncStreaming 11 } + + ncStreamingProxyBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes sent to clients" + ::= { ncStreaming 12 } + + ncStreamingProxyBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes received from clients" + ::= { ncStreaming 13 } + + ncStreamingProxyBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes sent to servers" + ::= { ncStreaming 14 } + + ncStreamingProxyBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes received from servers" + ::= { ncStreaming 15 } + + ncStreamingOBTClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes sent to clients" + ::= { ncStreaming 16 } + + ncStreamingOBFClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes received from clients" + ::= { ncStreaming 17 } + + ncStreamingOBTServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes sent to servers" + ::= { ncStreaming 18 } + + ncStreamingOBFServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes received from servers" + ::= { ncStreaming 19 } + + ncStreamingObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate of Streaming requests" + ::= { ncStreaming 20 } + + ncStreamingRealBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes sent to clients" + ::= { ncStreaming 21 } + + ncStreamingRealBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes received from clients" + ::= { ncStreaming 22 } + + ncStreamingRealBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes sent to servers" + ::= { ncStreaming 23 } + + ncStreamingRealBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes received from servers" + ::= { ncStreaming 24 } + + ncStreamingMmsBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes sent to clients" + ::= { ncStreaming 25 } + + ncStreamingMmsBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes received from clients" + ::= { ncStreaming 26 } + + ncStreamingMmsBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes sent to servers" + ::= { ncStreaming 27 } + + ncStreamingMmsBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes received from servers" + ::= { ncStreaming 28 } + + ncStreamingQTBTClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes sent to clients" + ::= { ncStreaming 29 } + + ncStreamingQTBFClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes received from clients" + ::= { ncStreaming 30 } + + ncStreamingQTBTServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes sent to servers" + ::= { ncStreaming 31 } + + ncStreamingQTBFServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes received from servers" + ::= { ncStreaming 32 } + + ncStreamingLiveBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all Live streaming requests" + ::= { ncStreaming 33 } + + ncStreamingOndemandBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all VOD streaming requests" + ::= { ncStreaming 34 } + + ncStreamingRealBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all Real streaming requests" + ::= { ncStreaming 35 } + + ncStreamingMmsBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all MMS streaming requests" + ::= { ncStreaming 36 } + + ncStreamingQuickTimeBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all QuickTime streaming requests" + ::= { ncStreaming 37 } + + ncStreamingActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to streaming servers" + ::= { ncStreaming 38 } + + ncStreamingActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to streaming clients" + ::= { ncStreaming 39 } + + ncStreamingRtspWMBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes sent to clients" + ::= { ncStreaming 40 } + + ncStreamingRtspWMBFClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes received from clients" + ::= { ncStreaming 41 } + + ncStreamingRtspWMBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes sent to servers" + ::= { ncStreaming 42 } + + ncStreamingRtspWMBFServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes received from servers" + ::= { ncStreaming 43 } + + ncStreamingRtspWMBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all Windows Media RTSP streaming requests" + ::= { ncStreaming 44 } + + ncStreamingAccelTable OBJECT-TYPE + SYNTAX SEQUENCE OF NcStreamingAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Number of kilobytes sent to and recieved from the + client side per acceleration rule" + + ::= { ncStreaming 45 } + + ncStreamingAccelEntry OBJECT-TYPE + SYNTAX NcStreamingAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry contains the number of kilobytes sent and + received to/from the clients side per acceleration + rule" + + INDEX { ncStreamingAccelIndex } + ::= { ncStreamingAccelTable 1 } + + NcStreamingAccelEntry ::= + SEQUENCE { + ncStreamingAccelIndex Integer32, + ncStreamingAccelKbytesFromClient Counter32, + ncStreamingAccelKbytesToClient Counter32, + ncStreamingAccelHits Counter32 + } + + ncStreamingAccelIndex OBJECT-TYPE + SYNTAX Integer32 (1..513) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each entry in the streaming + acceleration stats table" + ::= { ncStreamingAccelEntry 1 } + + ncStreamingAccelKbytesFromClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes received from the client + for this acceleration rule" + ::= { ncStreamingAccelEntry 2 } + + ncStreamingAccelKbytesToClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes sent to the client for + this acceleration rule" + ::= { ncStreamingAccelEntry 3 } + + ncStreamingAccelHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The number of times this acceleration rule has + been hit" + ::= { ncStreamingAccelEntry 4 } + + ncStreamingClientsDelayedSW OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of clients delayed because of a Bandwidth Limit" + ::= { ncStreaming 46 } + + ncTotalBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Bandwidth savings for HTTP, FTP, NNTP, and Streaming protocols" + ::= { ncStats 10 } + + ncDns OBJECT IDENTIFIER ::= { ncStats 11 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache dns stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncDnsRequestsReceived OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total DNS requests received from clients" + ::= { ncDns 1 } + + ncDnsCacheHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hits on the DNS cache. This includes hits + for DNS lookups generated by NetCache internally" + ::= { ncDns 2 } + + ncDnsCacheMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Misses on the DNS cache. This includes misses + for DNS lookups generated by NetCache internally" + ::= { ncDns 3 } + + ncDnsSuccessfulForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Forward DNS lookups that are successful" + ::= { ncDns 4 } + + ncDnsFailedForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Forward DNS lookups that failed" + ::= { ncDns 5 } + + ncDnsPendingForwardLookups OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Forward DNS lookups that are in progress" + ::= { ncDns 6 } + + ncDnsSuccessfulReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reverse DNS lookups that are successful" + ::= { ncDns 7 } + + ncDnsFailedReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reverse DNS lookups that failed" + ::= { ncDns 8 } + + ncDnsPendingReverseLookups OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reverse DNS lookups that are in progress" + ::= { ncDns 9 } + + ncDnsIres OBJECT IDENTIFIER ::= { ncDns 10 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache dns ires stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + ncDnsIresIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Has Full Service Resolver been enabled" + ::= { ncDnsIres 1 } + + ncDnsIresIsInitialised OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Has Full Service Resolver initalised" + ::= { ncDnsIres 2 } + + ncDnsIresForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Forward Lookups" + ::= { ncDnsIres 3 } + + ncDnsIresPendingForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Pending Forward Lookups" + ::= { ncDnsIres 4 } + + ncDnsIresReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Reverse Lookups" + ::= { ncDnsIres 5 } + + ncDnsIresPendingReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Pending Reverse Lookups" + ::= { ncDnsIres 6 } + + + ncAuth OBJECT IDENTIFIER ::= { ncStats 12 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache authentication stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNtlm OBJECT IDENTIFIER ::= { ncAuth 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache ntlm stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNtlmPossibleProblem OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether a possible ntlm problem is detected + in the appliance's domain environment." + ::= { ncNtlm 1 } + + + ncRM OBJECT IDENTIFIER ::= { ncStats 13 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache resource management group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncRMMem OBJECT IDENTIFIER ::= { ncRM 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache memory stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + ncRMMemTotal OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total memory in kilobytes available for + allocations after boot. It does not imply + the total system memory." + ::= { ncRMMem 1 } + + ncRMMemFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current free memory in kilobytes available + for allocations." + ::= { ncRMMem 2 } + + -- -- -- -- -- -- -- -- -- + -- the snapmirror group -- + -- -- -- -- -- -- -- -- -- + + snapmirrorOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether snapmirror has been turned on + or not." + ::= { snapmirror 1 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorActiveRestoreCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror restores." + + ::= { snapmirror 2 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorScheduledRestoreCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of scheduled SnapMirror restores." + + ::= { snapmirror 3 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorBackupNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror backups." + + ::= { snapmirror 4 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorBackupSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror backups which completed. + Reset on reboot." + + ::= { snapmirror 5 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorRestoreSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror restores which completed. + Reset on reboot." + + ::= { snapmirror 6 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorBackupAborts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror backup transfers which have + aborted. Reset on reboot." + + ::= { snapmirror 7 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorRestoreRestartAborts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror restore temporary aborts. + Reset on reboot." + + ::= { snapmirror 8 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorRestoreWaitAborts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror restore permanent aborts. + Reset on reboot." + + ::= { snapmirror 9 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorWrittenBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Megabytes written by SnapMirror. + Reset on reboot." + + ::= { snapmirror 10 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Megabytes read by SnapMirror. + Reset on reboot." + + ::= { snapmirror 11 } + + snapmirrorActiveDstNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror destination." + + ::= { snapmirror 12 } + + snapmirrorActiveSrcNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror Source." + + ::= { snapmirror 13 } + + snapmirrorFilerTotalDstSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapmirror transfers to + the destination. Persistent across reboot." + + ::= { snapmirror 14 } + + snapmirrorFilerTotalSrcSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapmirror transfers + from the source. Persistent across reboot." + + ::= { snapmirror 15 } + + snapmirrorFilerTotalSrcFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed SnapMirror transfers on + the source. Persistent across reboot." + + ::= { snapmirror 16 } + + snapmirrorFilerTotalDstFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed SnapMirror transfers on + the destination. Persistent across reboot." + + ::= { snapmirror 17 } + + snapmirrorFilerTotalDstDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferred snapmirror transfer on + the destination. Persistent across reboot." + + ::= { snapmirror 18 } + + snapmirrorIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapmirror is licensed on the filer." + + ::= { snapmirror 19 } + + snapmirrorStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapmirrorStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "provide a list of snapmirror status." + + ::= { snapmirror 20 } + + snapmirrorStatusEntry OBJECT-TYPE + SYNTAX SnapmirrorStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current status of snapmirror." + + INDEX { snapmirrorIndex } + ::= { snapmirrorStatusTable 1 } + + SnapmirrorStatusEntry ::= + SEQUENCE { + snapmirrorIndex + Integer32, + snapmirrorSrc + OCTET STRING, + snapmirrorDst + OCTET STRING, + snapmirrorStatus + Integer32, + snapmirrorState + Integer32, + snapmirrorLag + TimeTicks, + snapmirrorTotalSuccesses + Counter32, + snapmirrorTotalRestartSuccesses + Counter32, + snapmirrorTotalFailures + Counter32, + snapmirrorTotalDeferments + Counter32, + snapmirrorTotalTransMBs + Counter32, + snapmirrorTotalTransTimeSeconds + Counter32, + snapmirrorThrottleValue + Integer32, + snapmirrorMirrorTimestamp + DisplayString, + snapmirrorBaseSnapshot + DisplayString, + snapmirrorLastTransType + DisplayString, + snapmirrorLastTransMBs + Counter32, + snapmirrorLastTransTimeSeconds + Counter32, + snapmirrorSchedule + DisplayString, + snapmirrorScheduleDesc + DisplayString, + snapmirrorArguments + DisplayString, + snapmirrorSyncToAsync + Counter32 + } + + snapmirrorIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapmirror status table." + + ::= { snapmirrorStatusEntry 1 } + + snapmirrorSrc OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Source of the snapmirror. : or + :/vol/" + + ::= { snapmirrorStatusEntry 2 } + + snapmirrorDst OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Destination of the snapmirror. + : or :/vol/" + + ::= { snapmirrorStatusEntry 3 } + + snapmirrorStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + transferring(2), + pending(3), + aborting(4), + migrating(5), + quiescing(6), + resyncing(7), + waiting(8), + syncing(9), + inSync(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current transfer status of the snapmirror." + + ::= { snapmirrorStatusEntry 4 } + + snapmirrorState OBJECT-TYPE + SYNTAX INTEGER { + uninitialized(1), + snapmirrored(2), + brokenOff(3), + quiesced(4), + source(5), + unknown(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current state of the snapmirror." + + ::= { snapmirrorStatusEntry 5 } + + snapmirrorLag OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "How far behind from the source the destination is." + + ::= { snapmirrorStatusEntry 6 } + + snapmirrorTotalSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful transfer since the snapmirror + is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 7 } + + snapmirrorTotalRestartSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful restarted transfer since + the snapmirror is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 8 } + + snapmirrorTotalFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed or aborted transfer since + the snapmirror is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 9 } + + snapmirrorTotalDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferment since the snapmirror + is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 10 } + + snapmirrorTotalTransMBs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total transfer size in MB for the snapmirror. + Reset on reboot." + + ::= { snapmirrorStatusEntry 11 } + + snapmirrorTotalTransTimeSeconds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of seconds spent in successful transfer for the + snapmirror. Reset on reboot." + + ::= { snapmirrorStatusEntry 12 } + + snapmirrorThrottleValue OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current throttle value for the snapmirror." + + ::= { snapmirrorStatusEntry 13 } + + snapmirrorMirrorTimestamp OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Timestamp of the last snapshot successfully transferred from + the source to the destination." + + ::= { snapmirrorStatusEntry 14 } + + snapmirrorBaseSnapshot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the current base snapshot for the snapmirror." + + ::= { snapmirrorStatusEntry 15 } + + snapmirrorLastTransType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the previous successful transfer." + + ::= { snapmirrorStatusEntry 16 } + + snapmirrorLastTransMBs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last successful transfer size in MB for the snapmirror." + + ::= { snapmirrorStatusEntry 17 } + + snapmirrorLastTransTimeSeconds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Duration of last successful transfer in seconds for the + snapmirror." + + ::= { snapmirrorStatusEntry 18 } + + snapmirrorSchedule OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Update schedule for the snapmirror in conf file format." + + ::= { snapmirrorStatusEntry 19 } + + snapmirrorScheduleDesc OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Description of the update schedule for the snapmirror." + + ::= { snapmirrorStatusEntry 20 } + + snapmirrorArguments OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Arguments for the snapmirror in conf file format." + + ::= { snapmirrorStatusEntry 21 } + + snapmirrorSyncToAsync OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times changing from sync mode to async mode + since the snapmirror is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 22 } + + snapmirrorConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapmirrorConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of snapmirror connection definitions." + + ::= { snapmirror 21 } + + snapmirrorConnEntry OBJECT-TYPE + SYNTAX SnapmirrorConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of a defined multipath connection." + + INDEX { snapmirrorConnIndex } + ::= { snapmirrorConnTable 1 } + + SnapmirrorConnEntry ::= + SEQUENCE { + snapmirrorConnIndex + Integer32, + snapmirrorConnName + DisplayString, + snapmirrorConnType + Integer32, + snapmirrorConnSrc1 + DisplayString, + snapmirrorConnDst1 + DisplayString, + snapmirrorConnSrc2 + DisplayString, + snapmirrorConnDst2 + DisplayString + } + + snapmirrorConnIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapmirror multipath connection table." + + ::= { snapmirrorConnEntry 1 } + + snapmirrorConnName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the snapmirror multipath connection." + + ::= { snapmirrorConnEntry 2 } + + snapmirrorConnType OBJECT-TYPE + SYNTAX INTEGER { + multi(1), + failover(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the snapmirror multipath connection." + + ::= { snapmirrorConnEntry 3 } + + snapmirrorConnSrc1 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the source for the first path." + + ::= { snapmirrorConnEntry 4 } + + snapmirrorConnDst1 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the destination for the first path." + + ::= { snapmirrorConnEntry 5 } + + snapmirrorConnSrc2 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the source for the second path." + + ::= { snapmirrorConnEntry 6 } + + snapmirrorConnDst2 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the destination for the second path." + + ::= { snapmirrorConnEntry 7 } + + -- -- -- -- -- -- -- -- -- + -- the snapvault group + -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for the whole system + -- unless otherwise specified. + + svOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether snapvault has been turned on + or not." + ::= { snapvault 1 } + + svSystemActiveDstNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active snapvault destionations." + + ::= { snapvault 2 } + + svSystemActiveSrcNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active snapvault sources." + + ::= { snapvault 3 } + + svSystemTotalPrimarySuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapvault transfers + from the snapvault primary. Persistent across reboot." + + ::= { snapvault 4 } + + svSystemTotalSecondarySuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapvault transfers to + the snapvault secondary. Persistent across reboot." + + ::= { snapvault 5 } + + svSystemTotalPrimaryFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed snapvault transfers on + the snapvault primary. Persistent across reboot." + + ::= { snapvault 6 } + + svSystemTotalSecondaryFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed snapvault transfers on + the snapvault secondary. Persistent across reboot." + + ::= { snapvault 7 } + + svSystemTotalSecondaryDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferred snapvault transfers on + the snapvault secondary. Persistent across reboot." + + ::= { snapvault 8 } + + svPrimaryIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapvault_client(primary) is licensed on the filer." + + ::= { snapvault 9 } + + svSecondaryIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapvault_server(secondary) is licensed on the filer." + + ::= { snapvault 10 } + + + + snapvaultStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapvaultStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "provide a list of snapvault status." + + ::= { snapvault 11 } + + snapvaultStatusEntry OBJECT-TYPE + SYNTAX SnapvaultStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current status of snapvault." + + INDEX { svIndex } + ::= { snapvaultStatusTable 1 } + + SnapvaultStatusEntry ::= + SEQUENCE { + svIndex + Integer32, + svSrc + OCTET STRING, + svDst + OCTET STRING, + svStatus + Integer32, + svState + Integer32, + svLag + TimeTicks, + svTotalSuccesses + Counter32, + svTotalRestartSuccesses + Counter32, + svTotalFailures + Counter32, + svTotalDeferments + Counter32, + svTotalTransMBs + Counter32, + svTotalTransTimeSeconds + Counter32, + svThrottleValue + Integer32, + svSrcSnapshotTime + Integer32, + svBaseSnapshot + DisplayString, + svLastTransType + DisplayString, + svLastTransMBs + Integer32, + svLastTransTimeSeconds + Integer32 + } + + svIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapvault status table." + + ::= { snapvaultStatusEntry 1 } + + svSrc OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Source of the snapvault relationship. + :/vol/" + + ::= { snapvaultStatusEntry 2 } + + svDst OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Destionation of the snapvault relationship. + :/vol/" + + ::= { snapvaultStatusEntry 3 } + + svStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + transferring(2), + pending(3), + aborting(4), + quiescing(6), + resyncing(7), + paused(12) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current transfer status of the snapvault relationship." + + ::= { snapvaultStatusEntry 4 } + + svState OBJECT-TYPE + SYNTAX INTEGER { + uninitialized(1), + snapvaulted(2), + brokenOff(3), + quiesced(4), + source(5), + unknown(6), + restoring(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current state of the snapvault relationship." + + ::= { snapvaultStatusEntry 5 } + + svLag OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "How far behind from the source the destination is." + + ::= { snapvaultStatusEntry 6 } + + svTotalSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful transfer since the snapvault + relationship was established. Persistent across reboot." + + ::= { snapvaultStatusEntry 7 } + + svTotalRestartSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful restarted transfer since + the snapvault relationship was established. Persistent + across reboot." + + ::= { snapvaultStatusEntry 8 } + + svTotalFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed or aborted transfer since + the snapvault relationship was established. Persistent + across reboot." + + ::= { snapvaultStatusEntry 9 } + + svTotalDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferment since the snapvault + relationship was established. Persistent across reboot." + + ::= { snapvaultStatusEntry 10 } + + svTotalTransMBs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total transfer size in MB for the snapvault. + Reset on reboot." + + ::= { snapvaultStatusEntry 11 } + + svTotalTransTimeSeconds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of seconds spent in successful transfer for the + snapvault relationship. Reset on reboot." + + ::= { snapvaultStatusEntry 12 } + + svThrottleValue OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current throttle value for the snapvault relationship." + + ::= { snapvaultStatusEntry 13 } + + svSrcSnapshotTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time when the source snapshot was created. The time in + seconds since January 1, 1970. The source snapshot here + is the last snapshot successfully transferred from the + source to the destination." + + ::= { snapvaultStatusEntry 14 } + + svBaseSnapshot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the current base snapshot for the + snapvault relationship." + + ::= { snapvaultStatusEntry 15 } + + svLastTransType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the previous successful transfer." + + ::= { snapvaultStatusEntry 16 } + + svLastTransMBs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last successful transfer size in MB for the snapvault + relationship." + + ::= { snapvaultStatusEntry 17 } + + svLastTransTimeSeconds OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Duration of last successful transfer in seconds for the + snapvault relationship." + + ::= { snapvaultStatusEntry 18 } + + snapvaultHostTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapvaultHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of remote snapvault hosts." + + ::= { snapvault 12 } + + snapvaultHostEntry OBJECT-TYPE + SYNTAX SnapvaultHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide snapvault statistics for a remote host + which has one or more current established + relationships with the local snapvault system." + + INDEX { svHostIndex } + ::= { snapvaultHostTable 1 } + + SnapvaultHostEntry ::= + SEQUENCE { + svHostIndex + Integer32, + svHostName + DisplayString, + svHostType + Integer32, + svHostTotalSuccesses + Integer32, + svHostTotalFailures + Integer32, + svHostTotalDeferments + Integer32 + } + + svHostIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapvault remote host table." + + ::= { snapvaultHostEntry 1 } + + svHostName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the remote snapvault host." + + ::= { snapvaultHostEntry 2 } + + svHostType OBJECT-TYPE + SYNTAX INTEGER { + primary(1), + secondary(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the remote snapvault host." + + ::= { snapvaultHostEntry 3 } + + svHostTotalSuccesses OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapvault transfers + for all current established relationships between + the local snapvault system and the given remote host." + + ::= { snapvaultHostEntry 4 } + + svHostTotalFailures OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed snapvault transfers + for all current established relationships between + the local snapvault system and the given remote host." + + ::= { snapvaultHostEntry 5 } + + svHostTotalDeferments OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferred snapvault transfers for + all current established relationships between + the local snapvault system and the given remote host. + 0 for snapvault client host." + + ::= { snapvaultHostEntry 6 } + + + snapvaultSchedTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapvaultSchedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of snapvault schedules." + + ::= { snapvault 13 } + + snapvaultSchedEntry OBJECT-TYPE + SYNTAX SnapvaultSchedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of schedules of snapvault." + + INDEX { svSchedIndex } + ::= { snapvaultSchedTable 1 } + + SnapvaultSchedEntry ::= + SEQUENCE { + svSchedIndex + Integer32, + svSchedVolume + DisplayString, + svSchedSnapshot + DisplayString, + svSchedStatus + Integer32, + svSchedType + Integer32, + svSchedSchedule + DisplayString + } + + svSchedIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapvault schedule table." + + ::= { snapvaultSchedEntry 1 } + + svSchedVolume OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume on the snapvault for the + snapvault schedule. This does not have a /vol/ prefix." + + ::= { snapvaultSchedEntry 2 } + + svSchedSnapshot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the snapshot for the snapvault schedule." + + ::= { snapvaultSchedEntry 3 } + + svSchedStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + queued(2), + active(3), + aborting(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current status of the snapvault schedule." + + ::= { snapvaultSchedEntry 4 } + + svSchedType OBJECT-TYPE + SYNTAX INTEGER { + undef(1), + xfer(2), + create(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the snapvault schedule." + + ::= { snapvaultSchedEntry 5 } + + + svSchedSchedule OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The update schedule of the snapvault." + + ::= { snapvaultSchedEntry 6 } + + svDrPrimaryIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapvault disaster recovery primary is + licensed on the filer." + + ::= { snapvault 14 } + + -- -- -- -- -- -- -- -- + -- the ndmpd group -- + -- -- -- -- -- -- -- -- + + ndmpOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether ndmpd has been turned on or not." + ::= { ndmp 1 } + + ndmpSessionOpened OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of ndmpd sessions currently opened. + Sessions may be running backups, restores or neither." + ::= { ndmp 2 } + + ndmpBackupActive OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd backups currently active." + ::= { ndmp 3 } + + ndmpRestoreActive OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd restores currently active." + ::= { ndmp 4 } + + ndmpTapeActive OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of tape drives currently active." + ::= { ndmp 5 } + + ndmpBackupSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd backups that succeeded." + ::= { ndmp 6 } + + ndmpRestoreSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd restores that succeeded." + ::= { ndmp 7 } + + ndmpBackupFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd backups that failed." + ::= { ndmp 8 } + + ndmpRestoreFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd restores that failed." + ::= { ndmp 9 } + + ndmpBackupFailureReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the ndmpBackupFailures value is non-zero, this string + describes the reason for the most recent backup failure." + ::= { ndmp 10 } + + ndmpRestoreFailureReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the ndmpRestoreFailures value is non-zero, this string + describes the reason for the most recent restore failure." + ::= { ndmp 11 } + + -- -- -- -- -- -- -- -- + -- the ftpd group -- + -- -- -- -- -- -- -- -- + + ftpdOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether ftpd has been turned on or not." + ::= { ftpd 1 } + + ftpdCurrentConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to ftp daemon (active and idle)" + ::= { ftpd 2 } + + ftpdMaxConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of maximum simultaneous TCP/IP connections to ftp daemon" + ::= { ftpd 3 } + + ftpdTotalConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of total TCP/IP connections to ftp daemon" + ::= { ftpd 4 } + + -- -- -- -- -- -- -- -- + -- the fabric group -- + -- -- -- -- -- -- -- -- + + fabricInstances OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of distinct fabrics present." + ::= { fabric 1 } + + fabricTable OBJECT-TYPE + SYNTAX SEQUENCE OF FabricEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of fabrics." + ::= { fabric 2 } + + fabricEntry OBJECT-TYPE + SYNTAX FabricEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current configuration and + status of fabrics." + + INDEX { fabricIndex } + ::= { fabricTable 1 } + + FabricEntry ::= + SEQUENCE { + fabricIndex + Integer32, + fabricStatus + Integer32, + fabricStatusMessage + DisplayString, + fabricName + OCTET STRING, + fabricOwner + Integer32 + } + + fabricIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this fabric entry." + ::= { fabricEntry 1 } + + fabricStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + faulty(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates the overall status of the SAN fabric(s)." + ::= { fabricEntry 2 } + + fabricStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the fabric status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(3)." + ::= { fabricEntry 3 } + + fabricName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the fabric." + ::= { fabricEntry 4 } + + fabricOwner OBJECT-TYPE + SYNTAX INTEGER { + netapp(1), + other(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates who owns the management of + the fabric." + ::= { fabricEntry 5 } + + switchTable OBJECT-TYPE + SYNTAX SEQUENCE OF SwitchEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of switches and hubs + connected to the fabric." + ::= { fabric 3 } + + switchEntry OBJECT-TYPE + SYNTAX SwitchEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current configuration and + status of fabric interconnect elements. This + include switches and hubs." + + INDEX { switchFabricIndex, switchIndex } + ::= { switchTable 1 } + + SwitchEntry ::= + SEQUENCE { + switchIndex + Integer32, + switchName + OCTET STRING, + switchSymbolicName + OCTET STRING, + switchType + Integer32, + switchDomain + Integer32, + switchManagementId + Integer32, + switchStatus + Integer32, + switchStatusMessage + DisplayString, + switchLinkSpeed + Integer32, + switchHighPacketsProcessed + Counter32, + switchLowPacketsProcessed + Counter32, + switchHighPacketsRejected + Counter32, + switchLowPacketsRejected + Counter32, + switchFabricIndex + Integer32, + switch64PacketsProcessed + Counter64, + switch64PacketsRejected + Counter64 + } + + switchIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this switch entry." + ::= { switchEntry 1 } + + switchName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the switch." + ::= { switchEntry 2 } + + switchSymbolicName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the symbolic name of the switch." + ::= { switchEntry 3 } + + switchType OBJECT-TYPE + SYNTAX INTEGER { + hub(1), + switch(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the switch." + ::= { switchEntry 4 } + + switchDomain OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The domain identifier of the switch." + ::= { switchEntry 5 } + + switchManagementId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The in-band management identifier of the switch." + ::= { switchEntry 6 } + + switchStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + ok(3), + nonCritical(4), + critical(5), + nonRecoverable(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of the switch." + ::= { switchEntry 7 } + + switchStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the switch status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(3)." + ::= { switchEntry 8 } + + switchLinkSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The link speed of the switch. The value is an integer + whose units are Gbits (for example, a value of 2 represents + a link speed of 2 Gbit)." + ::= { switchEntry 9 } + + switchHighPacketsProcessed OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets successfully processed + since the last reboot/reset of the switch. + This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 10 } + + switchLowPacketsProcessed OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets successfully processed + since the last reboot/reset of the switch. + This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 11 } + + switchHighPacketsRejected OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets rejected + since the last reboot/reset of the switch. + This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 12 } + + switchLowPacketsRejected OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets rejected + since the last reboot/reset of the switch. + This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 13 } + + switchFabricIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the fabric on which this switch + resides. The value ranges from 1 to the value + of fabricInstances." + ::= { switchEntry 14 } + + switch64PacketsProcessed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets successfully processed + since the last reboot/reset of the switch. + This object returns all of the 64 bit unsigned + integer." + ::= { switchEntry 15 } + + switch64PacketsRejected OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets rejected since the last + reboot/reset of the switch. This object returns + all of the 64 bit unsigned integer." + ::= { switchEntry 16 } + + portTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of ports + connected to the fabric." + ::= { fabric 4 } + + portEntry OBJECT-TYPE + SYNTAX PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current configuration and + status of ports in the fabric." + + INDEX { portFabricIndex, portSwitchIndex, portIndex } + ::= { portTable 1 } + + PortEntry ::= + SEQUENCE { + portIndex + Integer32, + portName + OCTET STRING, + portSwitchIndex + Integer32, + portSwitchName + OCTET STRING, + portNumber + Integer32, + portType + Integer32, + portState + Integer32, + portFabricIndex + Integer32 + } + + portIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this port entry." + ::= { portEntry 1 } + + portName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the port." + ::= { portEntry 2 } + + portSwitchIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the switch on which this port + resides. The value ranges from 1 to the number of + of switches." + ::= { portEntry 3 } + + portSwitchName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the switch to which + the port is attached." + ::= { portEntry 4 } + + portNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port number on the switch." + ::= { portEntry 5 } + + portType OBJECT-TYPE + SYNTAX INTEGER { + unidentified(1), + nPort(2), + nlPort(3), + fPort(4), + flPort(5), + ePort(6), + bPort(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the port." + ::= { portEntry 6 } + + portState OBJECT-TYPE + SYNTAX INTEGER { + online(1), + offline(2), + testing(3), + faulty(4), + unknown(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of the port." + ::= { portEntry 7 } + + portFabricIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the fabric on which this port + resides. The value ranges from 1 to the value + of fabricInstances." + ::= { portEntry 8 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- + -- The backup(dump/restore) group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- + + dump OBJECT IDENTIFIER ::= { backup 1 } + + restore OBJECT IDENTIFIER ::= { backup 2 } + + -- dump -- + + dmpActives OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active dump." + ::= { dump 1 } + + dmpAttempts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of dump attempted." + ::= { dump 2 } + + dmpSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of dump succeeded." + ::= { dump 3 } + + dmpFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of dump failed." + ::= { dump 4 } + + dmpTable OBJECT-TYPE + SYNTAX SEQUENCE OF DmpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provides a report of dumps on each + dump subtree." + ::= { dump 5 } + + -- dmpTable contained two entries named lastdump and lastsuccess that + -- were incompatible with many mib compilers. These are replaced + -- with objects that work better with these compilers. + + dmpEntry OBJECT-TYPE + SYNTAX DmpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Shows statistics of dumps on an unique + dump subtree." + INDEX { dmpIndex } + ::= { dmpTable 1 } + + DmpEntry ::= + SEQUENCE { + dmpIndex + Integer32, + dmpStPath + DisplayString, + dmpStAttempts + Counter32, + dmpStSuccesses + Counter32, + dmpStFailures + Counter32, + dmpTime + Integer32, + dmpStatus + Integer32, +-- lastdump entries + dmpLevel + Integer32, + dmpNumFiles + Integer32, +-- lastsuccess entries + dmpDataAmount + Integer32, + dmpStartTime + Integer32, + dmpDuration + TimeTicks + } + + dmpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the subtree dump table." + ::= { dmpEntry 1 } + + dmpStPath OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The full path to the dump subtree. In the + format of /vol//..." + ::= { dmpEntry 2 } + + dmpStAttempts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "No. of dump attempted for the subtree." + ::= { dmpEntry 3 } + + dmpStSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "No. of dump succeeded for the subtree." + ::= { dmpEntry 4 } + + dmpStFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "No. of dump failed for the subtree." + ::= { dmpEntry 5 } + + dmpTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The start time for the last attempt + to dump the subtree, including the + currently running one. The time in + seconds since January 1, 1970." + ::= { dmpEntry 6 } + + dmpStatus OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The status for the last dump attempt + on the subtree." + ::= { dmpEntry 7 } + + dmpLevel OBJECT-TYPE + SYNTAX Integer32 (0..9) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level of the dump." + ::= { dmpEntry 8 } + + dmpNumFiles OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of files dumped." + ::= { dmpEntry 9 } + + dmpDataAmount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of data dumped, in Megabytes." + ::= { dmpEntry 10 } + + dmpStartTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The start time of the dump. The time is + in seconds since January 1, 1970." + ::= { dmpEntry 11 } + + dmpDuration OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The duration of the dump." + ::= { dmpEntry 12 } + + -- restore -- + + rstActives OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active restore." + ::= { restore 1 } + + rstAttempts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of restore attempted." + ::= { restore 2 } + + rstSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of restore succeeded." + ::= { restore 3 } + + rstFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of restore failed." + ::= { restore 4 } + + -- -- -- -- -- -- -- -- + -- DAFS Option group -- + -- -- -- -- -- -- -- -- + + dafsOptions OBJECT IDENTIFIER ::= {dafs 1} + + dafsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Whether the dafs protocol is licensed on the filer. + Data ONTAP Specific" + ::= { dafsOptions 1 } + + dafsMaxRequestsServer OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide maximum number of concurrent requests + Data ONTAP Specific" + ::= { dafsOptions 2 } + + dafsMaxRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server maximum number of concurrent requests per session + Data ONTAP Specific" + ::= { dafsOptions 3 } + + dafsMaxRequestSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Server maximum size of an inline request" + ::= { dafsOptions 4 } + + dafsMaxResponseSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Server maximum size of an inline response" + ::= { dafsOptions 5 } + + + dafsMaxPendingRequestsServer OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide maximum number of requests that can queue + waiting for resources Data ONTAP Specific" + ::= { dafsOptions 6 } + + dafsUseChecksums OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Server uses checksums" + ::= { dafsOptions 7 } + + dafsNicNumRequestDemons OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server default number of request demons per Nic. + Data ONTAP Specific" + ::= { dafsOptions 8 } + + dafsAnonymousAuthentication OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Allow the server to acception connections with + authentication type NONE." + ::= { dafsOptions 9 } + + dafsServerEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current status of the DAFS server. If true, the DAFS + server is running." + ::= { dafsOptions 10 } + + dafsDefaultUid OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Default client User ID if anonymously connected." + ::= { dafsOptions 11 } + + dafsDefaultGid OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Default client Group ID if anonymously connected." + ::= { dafsOptions 12 } + + dafsMaxDisconnectedSessions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of disconnected sessions for which the + DAFS server will retain response cache data." + ::= { dafsOptions 13 } + + dafsMaxIdleSeconds OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of seconds server will keep a session + open without hearing from the client." + ::= { dafsOptions 14 } + + -- the DAFS VI Nic table + + -- The DAFS VI Nic table contains information about this + -- entity's VI nics attached to DAFS + + dafsNicTable OBJECT-TYPE + SYNTAX SEQUENCE OF DafsNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing DAFS NIC specific + information." + ::= { dafs 2 } + + dafsNicEntry OBJECT-TYPE + SYNTAX DafsNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular current DAFS + nic. An object of this type is transient, + in that it ceases to exist when (or soon after) + the nic is detached." + INDEX { dafsNicIndex } + ::= { dafsNicTable 1 } + + DafsNicEntry ::= + SEQUENCE { + dafsNicIndex + Integer32, + dafsNicName + DisplayString, + dafsNicDevice + DisplayString, + dafsNicState + Integer32, + dafsNicListenAddr + OCTET STRING, + dafsNicNumRqstDemons + Integer32, + dafsNicInBytes + Counter32, + dafsNicDirectInBytes + Counter32, + dafsNicOutBytes + Counter32, + dafsNicDirectOutBytes + Counter32 + } + + dafsNicIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each interface. Its value + ranges between 1 and the value of DafsNicNumber. The + value for each interface must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { dafsNicEntry 1 } + + dafsNicName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing the logical name + under which the nic has been attached." + ::= { dafsNicEntry 2} + + dafsNicDevice OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing the physical name + of the nic that has been attached." + ::= { dafsNicEntry 3} + + dafsNicState OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current state of DAFS nic" + ::= { dafsNicEntry 4 } + + dafsNicListenAddr OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transport specific address structure giving the + DAFS listen address for this NIC." + ::= { dafsNicEntry 5} + + + dafsNicNumRqstDemons OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Number of request demons assigned to this Nic + to handle Nic related events. Data ONTAP Specific" + ::= { dafsNicEntry 6} + + dafsNicInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, include DMA, received on + this interface" + ::= { dafsNicEntry 7} + + dafsNicDirectInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes read directly from the + peer memory through this interface" + ::= { dafsNicEntry 8} + + dafsNicOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, include DMA, sent on + this interface" + ::= { dafsNicEntry 9} + + dafsNicDirectOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes written directly to the + peer memory through this interface" + ::= { dafsNicEntry 10} + + -- -- -- -- -- -- -- -- -- -- + -- DAFS Server Statistics -- + -- -- -- -- -- -- -- -- -- -- + + curDafs OBJECT IDENTIFIER ::= {dafs 3} + + dafsPendingRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide current number of requests that are + queued waiting for resources Data ONTAP Specific" + ::= { curDafs 1 } + + dafsCurrentRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide current number of active requests + Data ONTAP Specific" + ::= { curDafs 2 } + + totDafs OBJECT IDENTIFIER ::= {dafs 4} + + dafsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of DAFS calls since last reboot" + ::= { totDafs 1 } + + dafsClientAuths OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Client Auth calls since last reboot" + ::= { totDafs 2 } + + dafsClientConnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Client Connect calls since last reboot" + ::= { totDafs 3 } + + dafsClientConnectAuths OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Client Connect Auth calls since last reboot" + ::= { totDafs 4 } + + dafsConnectBinds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Connect Bind calls since last reboot" + ::= { totDafs 5 } + + dafsDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Disconnect calls since last reboot" + ::= { totDafs 6 } + + dafsRegisterCreds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Register Credential calls since last reboot" + ::= { totDafs 7 } + + dafsReleaseCreds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Release Credential calls since last reboot" + ::= { totDafs 8 } + + dafsSecinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Secinfo calls since last reboot" + ::= { totDafs 9 } + + dafsServerAuths OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Server Auth calls since last reboot" + ::= { totDafs 10 } + + dafsCheckResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Check Response calls since last reboot" + ::= { totDafs 11 } + + dafsFetchResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Fetch Response calls since last reboot" + ::= { totDafs 12 } + + dafsDiscardResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Discard Responses calls since last reboot" + ::= { totDafs 13 } + + dafsAccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Access calls since last reboot" + ::= { totDafs 14 } + + dafsCacheHints OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Cache Hint calls since last reboot" + ::= { totDafs 15 } + + dafsCloses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Close calls since last reboot" + ::= { totDafs 16 } + + dafsCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Commit calls since last reboot" + ::= { totDafs 17 } + + dafsCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Create calls since last reboot" + ::= { totDafs 18 } + + dafsDelegPurges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Delegate Purge calls since last reboot" + ::= { totDafs 19 } + + dafsDelegReturns OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Delegate Return calls since last reboot" + ::= { totDafs 20 } + + dafsGetFsattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Get Fsattr calls since last reboot" + ::= { totDafs 21 } + + dafsGetRootHandles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Get Root Handle calls since last reboot" + ::= { totDafs 22 } + + dafsGetattrInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Getattr Inline calls since last reboot" + ::= { totDafs 23 } + + dafsGetattrDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Getattr Direct calls since last reboot" + ::= { totDafs 24 } + + dafsLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Link calls since last reboot" + ::= { totDafs 25 } + + dafsLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Lock calls since last reboot" + ::= { totDafs 26 } + + dafsLockts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LockT calls since last reboot" + ::= { totDafs 27} + + dafsLockus OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LockU calls since last reboot" + ::= { totDafs 28 } + + dafsLookUps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LookUp calls since last reboot" + ::= { totDafs 29 } + + dafsLookUpps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LookUpp calls since last reboot" + ::= { totDafs 30 } + + dafsNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Null calls since last reboot" + ::= { totDafs 31 } + + dafsNverifys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Nverify calls since last reboot" + ::= { totDafs 32 } + + dafsOpens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Open calls since last reboot" + ::= { totDafs 33 } + + dafsOpenDowngrades OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Open Downgrade calls since last reboot" + ::= { totDafs 34 } + + dafsOpenattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Openattr calls since last reboot" + ::= { totDafs 35 } + + dafsReadInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Read Inline calls since last reboot" + ::= { totDafs 36 } + + dafsReadDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Read Direct calls since last reboot" + ::= { totDafs 37 } + + dafsReaddirInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readdir Inline calls since last reboot" + ::= { totDafs 38 } + + dafsReaddirDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readdir Direct calls since last reboot" + ::= { totDafs 39 } + + dafsReadlinkInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readlink Inline calls since last reboot" + ::= { totDafs 40 } + + dafsReadlinkDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readlink Direct calls since last reboot" + ::= { totDafs 41 } + + dafsRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Remove calls since last reboot" + ::= { totDafs 42 } + + dafsRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Rename calls since last reboot" + ::= { totDafs 43 } + + dafsSetattrInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Setattr Inline calls since last reboot" + ::= { totDafs 44 } + + dafsSetattrDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Setattr Direct calls since last reboot" + ::= { totDafs 45 } + + dafsVerifys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Verify calls since last reboot" + ::= { totDafs 46 } + + dafsBatchSubmits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Batch Submit calls since last reboot" + ::= { totDafs 47 } + + dafsWriteInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Write Inline calls since last reboot" + ::= { totDafs 48 } + + dafsWriteDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Write Direct calls since last reboot" + ::= { totDafs 49 } + + dafsBcGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Getattr calls since last reboot" + ::= { totDafs 50 } + + dafsBcNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Null calls since last reboot" + ::= { totDafs 51 } + + dafsBcRecalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Recall calls since last reboot" + ::= { totDafs 52 } + + dafsBcBatchCompletions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Batch Completion calls since + last reboot" + ::= { totDafs 53 } + + dafsAppendInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Append Inline calls since + last reboot" + ::= { totDafs 54 } + + dafsAppendDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Append Direct calls since + last reboot" + ::= { totDafs 55 } + + dafsGetFencingLists OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Get Fencing List calls since + last reboot" + ::= { totDafs 56 } + + dafsSetFencingLists OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Set Fencing List calls since + last reboot" + ::= { totDafs 57 } + + dafsHurryUps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Hurry Up calls since + last reboot" + ::= { totDafs 58 } + + dafsInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, including DMA, received since the + last reboot" + ::= { totDafs 59 } + + dafsDirectInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes received directly into memory + since last reboot" + ::= { totDafs 60 } + + dafsOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, including DMA, sent since the + last reboot" + ::= { totDafs 61 } + + dafsDirectOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes sent directly into remote memory since + the last reboot" + ::= { totDafs 62 } + + dafsSessionTable OBJECT-TYPE + SYNTAX SEQUENCE OF DafsSessionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing current DAFS client session + information." + ::= { dafs 5 } + + dafsSessionEntry OBJECT-TYPE + SYNTAX DafsSessionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular DAFS + session. An object of this type is transient, + in that it ceases to exist when (or soon after) + the client disconnects." + + INDEX { dafsSessionIndex } + ::= { dafsSessionTable 1 } + + DafsSessionEntry ::= + SEQUENCE { + dafsSessionIndex + Integer32, + dafsSessionId + OCTET STRING, + dafsSessionEndian + Integer32, + dafsSessionAllowBackChannel + Integer32, + dafsSessionAllowRdmaReadChannel + Integer32, + dafsSessionUseChecksums + Integer32, + dafsSessionMaxCredentials + Integer32, + dafsSessionMaxRequestSize + Integer32, + dafsSessionMaxResponseSize + Integer32, + dafsSessionMaxRequests + Integer32, + dafsSessionInlineWriteHeaderSize + Integer32, + dafsSessionClientIdString + OCTET STRING, + dafsSessionClientVerifier + OCTET STRING, + dafsSessionNumCredentials + Integer32, + dafsSessionNumRequests + Integer32 + } + + dafsSessionIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each session." + ::= { dafsSessionEntry 1 } + + dafsSessionId OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session Identifier assigned by the server." + ::= { dafsSessionEntry 2 } + + dafsSessionEndian OBJECT-TYPE + SYNTAX INTEGER { + bigEndian(1), + littleEndian(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Byte order used on this session." + ::= { dafsSessionEntry 3 } + + dafsSessionAllowBackChannel OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session may use a back control channel." + ::= { dafsSessionEntry 4 } + + dafsSessionAllowRdmaReadChannel OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session may use a RDMA read channel." + ::= { dafsSessionEntry 5 } + + dafsSessionUseChecksums OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session uses checksums." + ::= { dafsSessionEntry 6 } + + dafsSessionMaxCredentials OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of credientials that can be registered + on this session." + ::= { dafsSessionEntry 7 } + + dafsSessionMaxRequestSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum size of a DAFS request." + ::= { dafsSessionEntry 8 } + + dafsSessionMaxResponseSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum size of a DAFS response." + ::= { dafsSessionEntry 9 } + + dafsSessionMaxRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of concurrent requests." + ::= { dafsSessionEntry 10 } + + dafsSessionInlineWriteHeaderSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of DAFS headers plus padding to the start of + data. Used to better align inline data." + ::= { dafsSessionEntry 11 } + + dafsSessionClientIdString OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Client ID string supplied by the client. Intended to + uniquely identify that client." + ::= { dafsSessionEntry 12 } + + dafsSessionClientVerifier OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Supplied by the client to uniquely identify an + instnce of a client." + ::= { dafsSessionEntry 13 } + + dafsSessionNumCredentials OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current number of credentials registered on this + session" + ::= { dafsSessionEntry 14 } + + dafsSessionNumRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current number of active requests on this session" + ::= { dafsSessionEntry 15 } + + -- the DAFS Export table + + -- The DAFS Export table contains information about this + -- entity's exported filesystems + + dafsExportTable OBJECT-TYPE + SYNTAX SEQUENCE OF DafsExportEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing DAFS Export filesystems." + ::= { dafs 6 } + + dafsExportEntry OBJECT-TYPE + SYNTAX DafsExportEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular current DAFS + export. An object of this type is transient, + in that it ceases to exist when (or soon after) + the export is deleted." + INDEX { dafsExportIndex } + ::= { dafsExportTable 1 } + + DafsExportEntry ::= + SEQUENCE { + dafsExportIndex + Integer32, + dafsExportName + DisplayString, + dafsExportPath + DisplayString, + dafsExportEnabled + Integer32, + dafsExportRwMode + Integer32, + dafsExportAccessList + DisplayString + } + + dafsExportIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each export. Its value + ranges between 1 and the number of exports. The + value for each export must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { dafsExportEntry 1 } + + dafsExportName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + export. This is the logical export name." + ::= { dafsExportEntry 2} + + dafsExportPath OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + export. This is the local filesystem path to + the export." + ::= { dafsExportEntry 3} + + dafsExportEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This export is available for access." + ::= { dafsExportEntry 4 } + + dafsExportRwMode OBJECT-TYPE + SYNTAX INTEGER { + readwrite(1), + readmostly(2), + readonly(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global export mode. This represents the maximum + access rights." + ::= { dafsExportEntry 5 } + + dafsExportAccessList OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + export. This is the list of hosts that may + access the export. If empty, all hosts may + access the export." + ::= { dafsExportEntry 6 } + + -------------------------- + -- VI interface statistics + -------------------------- + + viaNodeConnection OBJECT IDENTIFIER ::= { vi 1 } + + viaNodeSystemName OBJECT-TYPE + SYNTAX DisplayString(SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string by which the node is identified in the cluster." + ::= { viaNodeConnection 1 } + + viaCreated OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs created." + ::= { viaNodeConnection 2 } + + viaConnectRequest OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times Connect Request call is made." + ::= { viaNodeConnection 3 } + + viaConnectWait OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times Connect wait call is made." + ::= { viaNodeConnection 4 } + + viaDisconnect OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times VI got disconnected with out any error." + ::= { viaNodeConnection 5 } + + viaConnectTimeOut OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times VI connect request got timed out." + ::= { viaNodeConnection 6 } + + viaConnected OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of time VI got connected with out any error." + ::= { viaNodeConnection 7 } + + viaCurrConnectPending OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which connect request is pending." + ::= { viaNodeConnection 8 } + + viaCurrConnectWaitPending OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which connect wait request is pending." + ::= { viaNodeConnection 9 } + + viaCurrConnected OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which the current state is CONNECTED." + ::= { viaNodeConnection 10 } + + viaCurrError OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which the current state is ERROR" + ::= { viaNodeConnection 11 } + + viaTotalError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs which encountered error state." + ::= { viaNodeConnection 12 } + + viaInMsgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming Messages received." + ::= { viaNodeConnection 13 } + + viaInRdma OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming RDMA requests received." + ::= { viaNodeConnection 14 } + + viaInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming bytes received, including those + received in error. This count includes bytes received on + currently established connections. This corresponds to the sum + of bytes received through received messages, incoming RDMA writes + and RDMA reads issued" + ::= { viaNodeConnection 15 } + + viaInRDMAReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming bytes received through RDMA read, + including those received in error. This count includes bytes + received on currently established connections." + ::= { viaNodeConnection 16 } + + viaInRDMAWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received through incoming RDMA writes, + including those received in error. This count includes bytes + received on currently established connections." + ::= { viaNodeConnection 17 } + + viaOutMsgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Messages sent." + ::= { viaNodeConnection 18 } + + viaOutRdma OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RDMA requests sent." + ::= { viaNodeConnection 19 } + + viaOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes sent, including those + sent in error. This count includes bytes sent on + currently established connections." + ::= { viaNodeConnection 20 } + + viaOutRDMAReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes sent through an incoming + RDMA read request, including those sent in error. + This count includes bytes sent on currently established + connections." + ::= { viaNodeConnection 21 } + + viaOutRDMAWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes sent through a RDMA write + operation, including those sent in error. This count + includes bytes sent on currently established connections." + ::= { viaNodeConnection 22 } + + + viaConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF ViaConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing via connection specific information." + ::= { viaNodeConnection 23 } + + viaConnEntry OBJECT-TYPE + SYNTAX ViaConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A conceptual row of the viaConnTable containing information + about a particular current via connection. Each row of this + table is transient, and it ceases to exist when the + connection makes transition to the CLOSED state." + INDEX { viaConnVINumber } + ::= { viaConnTable 1 } + + ViaConnEntry ::= SEQUENCE { + viaConnState Integer32, + viaConnVINumber Integer32, + viaConnRemoteNetAddress IpAddress, + viaConnLocalNetAddress IpAddress, + viaConnRemotePortNumber Integer32, + viaConnLocalPortNumber Integer32, + viaConnLocalDescriminator OCTET STRING, + viaConnRemoteDescriminator OCTET STRING, + viaConnLocalMaxTransferSize Integer32, + viaConnRemoteMaxTransferSize Integer32, + viaConnLocalEnableRdmaWrite Integer32, + viaConnLocalEnableRdmaRead Integer32, + viaConnRemoteEnableRdmaWrite Integer32, + viaConnRemoteEnableRdmaRead Integer32, + viaConnSentMessages Counter32, + viaConnSentRdmaReadMessages Counter32, + viaConnSentRdmaWriteMessages Counter32, + viaConnRcvdMessages Counter32, + viaConnRcvdRdmaReadMessages Counter32, + viaConnRcvdRdmaWriteMessages Counter32 + } + + viaConnState OBJECT-TYPE + SYNTAX INTEGER { + idle (1), + pendingConnect(2), + connected(3), + error(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of this via connection + Legal States: + Idle 1 + Pending Connect 2 + Connected 3 + Error 4" + ::= { viaConnEntry 1 } + + viaConnVINumber OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number which uniquely defines a connection." + ::= { viaConnEntry 2 } + + viaConnRemoteNetAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IP address of the remote system of the connection." + ::= { viaConnEntry 3 } + + viaConnLocalNetAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Local IPadress of the connection." + ::= { viaConnEntry 4 } + + viaConnRemotePortNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Remote TCP portnumber of the connection." + ::= { viaConnEntry 5 } + + viaConnLocalPortNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Local TCP Portnumber of the connection." + ::= { viaConnEntry 6 } + + viaConnLocalDescriminator OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An identifier used by the local process to identify the + VI connection." + ::= { viaConnEntry 7 } + + viaConnRemoteDescriminator OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An identifier used by the remote process to identify the + VI connection." + ::= { viaConnEntry 8 } + + viaConnLocalMaxTransferSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local limit on the maximum packet size that can be + transfered through the connection." + ::= { viaConnEntry 9 } + + viaConnRemoteMaxTransferSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote limit on the maximum packet size that can be + transfered through the connection." + ::= { viaConnEntry 10 } + + viaConnLocalEnableRdmaWrite OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA write is enabled + in the local system otherwise, it is 0." + ::= { viaConnEntry 11 } + + viaConnLocalEnableRdmaRead OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA read is enabled + in the local system otherwise, it is 0." + ::= { viaConnEntry 12 } + + viaConnRemoteEnableRdmaWrite OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA write is enabled + in the remote system otherwise, it is 0." + ::= { viaConnEntry 13 } + + viaConnRemoteEnableRdmaRead OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA read is enabled + in the remote system otherwise, it is 0." + ::= { viaConnEntry 14 } + + viaConnSentMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of messages sent through the connection." + ::= { viaConnEntry 15 } + + viaConnSentRdmaReadMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma read messages sent through the + connection." + ::= { viaConnEntry 16 } + + viaConnSentRdmaWriteMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma write messages sent through the + connection." + ::= { viaConnEntry 17 } + + viaConnRcvdMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of messages received through the connection." + ::= { viaConnEntry 18 } + + viaConnRcvdRdmaReadMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma read messages received through the + connection." + ::= { viaConnEntry 19 } + + viaConnRcvdRdmaWriteMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma write messages received through the + connection." + ::= { viaConnEntry 20 } + + viaErrors OBJECT IDENTIFIER ::= { vi 2 } + + viaErrPostDesc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of descriptors completed in error + by NIC." + ::= { viaErrors 1 } + + viaErrConnLost OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Lost Connection errors. " + ::= { viaErrors 2 } + + viaErrRecvQEmpty OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors due to an empty receive Queue. " + ::= { viaErrors 3 } + + viaErrRdmawProt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of remote DMA write protection errors. " + ::= { viaErrors 4 } + + viaErrRdmarProt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of remote DMA read protection errors. " + ::= { viaErrors 5 } + + viaErrCompProt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of protection errors. " + ::= { viaErrors 6 } + + viaErrorThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Setting this threshold will cause a trap to be enabled + such that if the total error exceeds error threshold set + a viaNodeErrorsTrap trap will be generated." + ::= { viaErrors 7 } + + viaNicAttributes OBJECT IDENTIFIER ::= { vi 3 } + + viaNicTable OBJECT-TYPE + SYNTAX SEQUENCE OF ViaNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing via NIC-specific information." + ::= { viaNicAttributes 1} + + viaNicEntry OBJECT-TYPE + SYNTAX ViaNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A conceptual row of the viaNicTable containing information + about a particular present VINic." + + INDEX { viaNicIndex } + ::= { viaNicTable 1 } + + ViaNicEntry ::= SEQUENCE { + viaNicIndex Integer32, + viaName DisplayString, + viaHardwareVersion DisplayString, + viaProviderVersion DisplayString, + viaNicAddress PhysAddress, + viaThreadSafe Integer32, + viaMaxDiscriminatorLength Integer32, + viaMaxRegisterBytes Integer32, + viaMaxRegisterRegions Integer32, + viaMaxRegisterBlockBytes Integer32, + viaMaxVI Integer32, + viaMaxDescriptorsPerQueue Integer32, + viaMaxSegmentsPerDesc Integer32, + viaMaxCQ Integer32, + viaMaxCQEntries Integer32, + viaMaxTransferSize Integer32, + viaNativeMTU Integer32, + viaMaxPTags Integer32, + viaCurrRegisterBytes Integer32, + viaCurrRegisterRegions Integer32, + viaCurrVI Integer32, + viaCurrCQ Integer32, + viaCurrPTags Integer32, + viaConnectionListenPort Integer32 + } + + viaNicIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the NIC in the NIC table." + ::= { viaNicEntry 1 } + + viaName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The symbolic name of the NIC device." + ::= { viaNicEntry 2 } + + viaHardwareVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of the VINIC described by this MIB." + ::= { viaNicEntry 3 } + + viaProviderVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of the VI provider." + ::= { viaNicEntry 4 } + + viaNicAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Network address of this NIC." + ::= { viaNicEntry 5 } + + viaThreadSafe OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1 if synchronisation model is thread safe else 0." + ::= { viaNicEntry 6 } + + viaMaxDiscriminatorLength OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of bytes that the VI provider allows + for a connection descriminator." + ::= { viaNicEntry 7 } + + viaMaxRegisterBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of bytes that can be registered." + ::= { viaNicEntry 8 } + + viaMaxRegisterRegions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of memory regions that can be registered." + ::= { viaNicEntry 9 } + + viaMaxRegisterBlockBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Largest contiguous block of memory that can be registered." + ::= { viaNicEntry 10 } + + viaMaxVI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit on the total number of VI instances this entity can + support." + ::= { viaNicEntry 11 } + + viaMaxDescriptorsPerQueue OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum Descriptors per VI Work Queue that this VI provider + can support." + ::= { viaNicEntry 12 } + + viaMaxSegmentsPerDesc OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of segments per descriptor that this VI provider + can support." + ::= { viaNicEntry 13 } + + viaMaxCQ OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of completion queues this VI provider can support." + ::= { viaNicEntry 14 } + + viaMaxCQEntries OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of Completion queue entries per completion queue + that this VI provider can support." + ::= { viaNicEntry 15 } + + viaMaxTransferSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum transfer size supported by the VI Nic. The maximum + transfer size is the amount of data that can be described by a + single VI descriptor." + ::= { viaNicEntry 16 } + + viaNativeMTU OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The native MTU size of the underlying network. For frame-based + networks, this could reflect its native frame size. For cell-based + networks, it could reflect the MTU of the appropriate abstraction + layer that it supports." + ::= { viaNicEntry 17 } + + viaMaxPTags OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of protection tags that are supported by this + VI provider." + ::= { viaNicEntry 18 } + + viaCurrRegisterBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of bytes registered by the VI user for this + NIC." + ::= { viaNicEntry 19 } + + viaCurrRegisterRegions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of memory regions that is registered by VI user + for this NIC." + ::= { viaNicEntry 20 } + + viaCurrVI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of VI instances for this NIC." + ::= { viaNicEntry 21 } + + viaCurrCQ OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current number of completion queues this VI provider + has." + ::= { viaNicEntry 22 } + + viaCurrPTags OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current Number of protection tags this VI provider has." + ::= { viaNicEntry 23 } + + viaConnectionListenPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Port number on which VI server is listening for VI connection + request." + ::= { viaNicEntry 24 } + + + -- -- -- -- -- -- -- -- + -- VFILER group -- + -- -- -- -- -- -- -- -- + vfilerIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether vfiler is licensed on the + filer." + ::= { vfiler 1 } + + vfFilers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of vfilers in the physical Filer." + ::= { vfiler 2 } + + vfTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler general information " + ::= { vfiler 3 } + + vfEntry OBJECT-TYPE + SYNTAX VfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler information" + INDEX { vfIndex} + ::= { vfTable 1 } + + VfEntry ::= + SEQUENCE { + vfIndex + Integer32, + vfName + DisplayString, + vfUuid + OCTET STRING, + vfIpAddresses + Integer32, + vfStoragePaths + Integer32, + vfIpSpace + DisplayString, + vfAllowedProtocols + Integer32, + vfDisallowedProtocols + Integer32, + vfState + Integer32 + } + + vfIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the referenced vfiler." + ::= { vfEntry 1 } + + + vfName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A textual string that contains the name of the referenced vfiler." + ::= { vfEntry 2 } + + vfUuid OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..36)) + MAX-ACCESS read-only + STATUS current + + DESCRIPTION + "The UUID of the referenced vfiler." + ::= { vfEntry 3 } + + vfIpAddresses OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of IP addresses for the referenced vfiler." + ::= { vfEntry 4 } + + + vfStoragePaths OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of storage paths for the referenced vfiler." + ::= { vfEntry 5 } + + vfIpSpace OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A textual string that contains the name of the ipspace that the referenced vfiler belongs to." + ::= { vfEntry 6 } + + vfAllowedProtocols OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of protocols allowed for the referenced vfiler." + ::= { vfEntry 7 } + + vfDisallowedProtocols OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of protocols disallowed for the referenced vfiler." + ::= { vfEntry 8 } + + vfState OBJECT-TYPE + SYNTAX INTEGER { + stopped (1), + running (2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the vfiler: Running or stopped." + ::= { vfEntry 9 } + + vfIpTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfIpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler IP addresses information " + ::= { vfiler 4 } + + vfIpEntry OBJECT-TYPE + SYNTAX VfIpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler IP addresses information" + INDEX { vfFiIndex, vfIpIndex } + ::= { vfIpTable 1 } + + VfIpEntry ::= + SEQUENCE { + vfFiIndex + Integer32, + vfIpIndex + Integer32, + vfIpAddr + IpAddress + } + + vfFiIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced vfiler." + ::= { vfIpEntry 1 } + + vfIpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies which IP address in the referenced vfiler." + ::= { vfIpEntry 2 } + + vfIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A IP address for the referenced vfiler." + ::= { vfIpEntry 3 } + + vfSpTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfSpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler storage path information " + ::= { vfiler 5 } + + vfSpEntry OBJECT-TYPE + SYNTAX VfSpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler storage path information" + INDEX { vfFsIndex, vfSpIndex } + ::= { vfSpTable 1 } + + VfSpEntry ::= + SEQUENCE { + vfFsIndex + Integer32, + vfSpIndex + Integer32, + vfSpName + OCTET STRING + } + + vfFsIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced vfiler." + ::= { vfSpEntry 1 } + + vfSpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies which storage path in the referenced vfiler." + ::= { vfSpEntry 2 } + + vfSpName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The storage path name for the referenced vfiler." + ::= { vfSpEntry 3 } + + + vfProTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfProEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler protocol information " + ::= { vfiler 6 } + + vfProEntry OBJECT-TYPE + SYNTAX VfProEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler protocol information" + INDEX { vfFpIndex, vfProIndex } + ::= { vfProTable 1 } + + VfProEntry ::= + SEQUENCE { + vfFpIndex + Integer32, + vfProIndex + Integer32, + vfProName + OCTET STRING, + vfProStatus + Integer32 + } + + vfFpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced vfiler." + ::= { vfProEntry 1 } + + vfProIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a protocol in the referenced vfiler." + ::= { vfProEntry 2 } + + vfProName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string that contains the protocol name for the referenced vfiler." + ::= { vfProEntry 3 } + + vfProStatus OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the referenced vfiler protocol is allowed or disallowed." + ::= { vfProEntry 4 } + + -- -- -- -- -- -- -- -- + -- Block access protocols group -- + -- -- -- -- -- -- -- -- + fcpIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether FCP access protocols are licensed on the + filer." + ::= { blocks 1 } + + iscsiIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether iSCSI access protocols are licensed on the + filer." + ::= { blocks 2 } + + fcpLowReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via FCP + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 3 } + + fcpHighReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via FCP + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 4 } + + + fcpLowWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via FCP + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 5 } + + + fcpHighWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via FCP + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 6 } + + + iscsiLowReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via iSCSI + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 7 } + + + iscsiHighReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via iSCSI + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 8 } + + + iscsiLowWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via iSCSI + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 9 } + + + iscsiHighWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via iSCSI + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 10 } + + + iscsiHighOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of iSCSI ops handled since the + last boot. This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 11} + + iscsiLowOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of iSCSI ops handled since the + last boot. This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 12} + + fcpHighOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of FCP ops handled since the + last boot. This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 13} + + fcpLowOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of FCP ops handled since the + last boot. This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 14} + + lun OBJECT IDENTIFIER ::= {blocks 15 } + + lunCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of LUNs in the Filer." + ::= { lun 1 } + + lunTable OBJECT-TYPE + SYNTAX SEQUENCE OF LunEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-LUN general information " + ::= {lun 2} + + lunEntry OBJECT-TYPE + SYNTAX LunEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-LUN information" + INDEX { lunIndex} + ::= { lunTable 1 } + + LunEntry ::= + SEQUENCE { + lunIndex Integer32, + lunName DisplayString, + lunComment DisplayString, + lunSizeLow Integer32, + lunSizeHigh Integer32, + lunMapped Integer32, + lunSerialNumber DisplayString, + lunQtreeName DisplayString, + lunHighOps Counter32, + lunLowOps Counter32, + lunHighReadBytes Counter32, + lunLowReadBytes Counter32, + lunHighWriteBytes Counter32, + lunLowWriteBytes Counter32, + lunHighErrors Counter32, + lunLowErrors Counter32, + lunOnline Integer32, + lunSnapStatus Integer32, + lunShareStatus Integer32, + lunSpaceReserved Integer32, + lunStatsResetTime Integer32, + lunHighReadOps Counter32, + lunLowReadOps Counter32, + lunHighWriteOps Counter32, + lunLowWriteOps Counter32, + lunHighOtherOps Counter32, + lunLowOtherOps Counter32, + lunSize64 Counter64, + lun64Ops Counter64, + lun64ReadBytes Counter64, + lun64WriteBytes Counter64, + lun64Errors Counter64, + lun64ReadOps Counter64, + lun64WriteOps Counter64, + lun64OtherOps Counter64 + } + + lunIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced LUN." + ::= { lunEntry 1 } + + lunName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the LUN. This is also the path to the LUN + on the filer." + ::= { lunEntry 2 } + + lunComment OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The comment, if any, for this LUN." + ::= { lunEntry 3 } + + lunSizeLow OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of the LUN in bytes. This object returns the + least significant 32 bits of the 64 bit unsigned integer." + ::= { lunEntry 4 } + + lunSizeHigh OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of the LUN in bytes. This object returns the + most significant 32 bits of the 64 bit unsigned integer." + ::= { lunEntry 5 } + + lunMapped OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This LUN has been mapped to at least one initiator group." + ::= { lunEntry 6 } + + lunSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 12 character SCSI serial number of the LUN." + ::= { lunEntry 7 } + + + lunQtreeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string that indicates which qtree this LUN belongs to." + ::= { lunEntry 8 } + + lunHighOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops for + this LUN since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 9} + + lunLowOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops for + this LUN since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 10 } + + lunHighReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from this LUN + since the stats were last reset. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 11 } + + lunLowReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from this LUN + since the stats were last reset. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 12 } + + + lunHighWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to this LUN + since the stats were last reset. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 13 } + + lunLowWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to this LUN + since the stats were last reset. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 14 } + + lunHighErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors seen on this LUN + since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 15 } + + lunLowErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors seen on this LUN + since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 16 } + + lunOnline OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the LUN is online." + ::= { lunEntry 17 } + + lunSnapStatus OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether a snapshot of this LUN can be taken." + ::= { lunEntry 18 } + + + lunShareStatus OBJECT-TYPE + SYNTAX INTEGER { + none(1), + read(2), + write(3), + all(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sharing status for the LUN." + ::= { lunEntry 19 } + + + lunSpaceReserved OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the LUN has space reservation enabled." + ::= { lunEntry 20 } + + lunStatsResetTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of seconds since this LUN's stats were + last reset." + ::= { lunEntry 21 } + + + lunHighReadOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI read ops for + this LUN since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 22} + + lunLowReadOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI read ops for + this LUN since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 23 } + + + lunHighWriteOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI write ops for + this LUN since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 24} + + lunLowWriteOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI write ops for + this LUN since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 25 } + + + lunHighOtherOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops that are not + read or write for this LUN since the stats were last + reset. This object returns the least significant 32 + bits of the 64 bit unsigned integer." + ::= { lunEntry 26} + + lunLowOtherOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops that are not + read or write for this LUN since the stats were last + reset. This object returns the most significant 32 + bits of the 64 bit unsigned integer." + ::= { lunEntry 27 } + + lunSize64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of the LUN in bytes. This object returns all + of the 64 bit unsigned integer." + ::= { lunEntry 28 } + + lun64Ops OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops for + this LUN since the stats were last reset. This object + all of the 64 bit unsigned integer." + ::= { lunEntry 29} + + lun64ReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from this LUN + since the stats were last reset. This object returns + all of the 64 bit unsigned integer." + ::= { lunEntry 30 } + + lun64WriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to this LUN + since the stats were last reset. This object returns + all of the 64 bit unsigned integer." + ::= { lunEntry 31 } + + lun64Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors seen on this LUN + since the stats were last reset. This object + returns all the 64 bit unsigned integer." + ::= { lunEntry 32 } + + lun64ReadOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI read ops for + this LUN since the stats were last reset. This object + returns all of the 64 bit unsigned integer." + ::= { lunEntry 33} + + lun64WriteOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI write ops for + this LUN since the stats were last reset. This object + returns all of the 64 bit unsigned integer." + ::= { lunEntry 34} + + lun64OtherOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops that are not + read or write for this LUN since the stats were last + reset. This object returns all of the 64 bit + unsigned integer." + ::= { lunEntry 35} + + lunMapTable OBJECT-TYPE + SYNTAX SEQUENCE OF LunMapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a table listing the initiator group to + Logical Unit Number mapping for each LUN." + ::= { lun 3 } + + lunMapEntry OBJECT-TYPE + SYNTAX LunMapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a per LUN and Initiator group mapping of + SCSI logical unit numbers." + INDEX { lunMapLUNIndex, lunMapInitiatorGroupIndex } + ::= { lunMapTable 1 } + + LunMapEntry ::= + SEQUENCE { + lunMapLUNIndex Integer32, + lunMapInitiatorGroupIndex Integer32, + lunMapLUNName DisplayString, + lunMapInitiatorGroupName DisplayString, + lunMapLogicalUnitNumber Integer32 + } + + lunMapLUNIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the LUN in the table." + ::= { lunMapEntry 1 } + + lunMapInitiatorGroupIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies an initiator group in + the table." + ::= { lunMapEntry 2 } + + lunMapLUNName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the LUN." + ::= { lunMapEntry 3 } + + lunMapInitiatorGroupName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the initiator group that this LUN is + mapped to." + ::= { lunMapEntry 4 } + + lunMapLogicalUnitNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SCSI Logical Unit Number that this LUN is mapped to + for this initiator group." + ::= { lunMapEntry 5 } + + initiator OBJECT IDENTIFIER ::= {blocks 16} + + initiatorGroupTable OBJECT-TYPE + SYNTAX SEQUENCE OF InitiatorGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-initiator group general + information " + ::= {initiator 1} + + initiatorGroupEntry OBJECT-TYPE + SYNTAX InitiatorGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-initiator group information" + INDEX { initiatorGroupIndex } + ::= { initiatorGroupTable 1 } + + InitiatorGroupEntry ::= + SEQUENCE { + initiatorGroupIndex Integer32, + initiatorGroupName DisplayString, + initiatorGroupType Integer32, + initiatorGroupOS Integer32, + initiatorGroupThrottleReserve Integer32, + initiatorGroupThrottleBorrow Integer32, + initiatorGroupUsePartner Integer32, + initiatorGroupUseALUA Integer32 + } + + initiatorGroupIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific initiator group." + ::= { initiatorGroupEntry 1 } + + initiatorGroupName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the initiator group" + ::= { initiatorGroupEntry 2 } + + initiatorGroupType OBJECT-TYPE + SYNTAX INTEGER { + fcp(1), + iSCSI(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this initiator group, either iSCSI or FCP" + ::= { initiatorGroupEntry 3 } + + initiatorGroupOS OBJECT-TYPE + SYNTAX INTEGER { + default(1), + solaris(2), + windows(3), + hpux(4), + aix(5), + linux(6), + defaultPartner(7), + netware(8), + vmware(9), + openvms(10), + invalid(256) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Operating system the clients in this initiator + group run. This governs the finer details of + SCSI protocol interaction with these initiators" + ::= { initiatorGroupEntry 4 } + + initiatorGroupThrottleReserve OBJECT-TYPE + SYNTAX Integer32 (0..99) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Percentage of filer scsi command blocks reserved for + this initiator group" + ::= { initiatorGroupEntry 5 } + + + initiatorGroupThrottleBorrow OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True if this inititiator group is allowed to + exceed its throttle settings if more resources + are needed and otherwise available. If + initiatorGroupThrottleReserve is 0, this value + is meaningless" + ::= { initiatorGroupEntry 6 } + + initiatorGroupUsePartner OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The takeover mode for the initiator group. This is + only applicable to FCP initiator groups on clustered + filers" + ::= { initiatorGroupEntry 7 } + + initiatorGroupUseALUA OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If true this initiator group supports Asymetric Logical + Unit Access." + ::= { initiatorGroupEntry 8 } + + + initiatorGroupMemberTable OBJECT-TYPE + SYNTAX SEQUENCE OF InitiatorGroupMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of individual Initator names in each Initiator + group" + ::= {initiator 2} + + initiatorGroupMemberEntry OBJECT-TYPE + SYNTAX InitiatorGroupMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-initiator group information" + INDEX { initiatorGroupMemberIndex, initiatorGroupMemberNameIndex} + ::= { initiatorGroupMemberTable 1 } + + InitiatorGroupMemberEntry ::= + SEQUENCE { + initiatorGroupMemberIndex + Integer32, + initiatorGroupMemberNameIndex + Integer32, + initiatorName + DisplayString + } + + initiatorGroupMemberIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific initiator group." + ::= { initiatorGroupMemberEntry 1 } + + initiatorGroupMemberNameIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number the identifies the initiator in the group." + ::= { initiatorGroupMemberEntry 2 } + + initiatorName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual name for this initiator." + ::= { initiatorGroupMemberEntry 3 } + + initiatorListTable OBJECT-TYPE + SYNTAX SEQUENCE OF InitatorListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of initiators that are connected to the filer." + ::= { initiator 3 } + + initiatorListEntry OBJECT-TYPE + SYNTAX InitatorListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-connected-initiator information." + INDEX { initiatorListEntryIndex} + ::= { initiatorListTable 1 } + + InitatorListEntry ::= + SEQUENCE { + initiatorListEntryIndex Integer32, + targetAdapterName DisplayString, + connectedInitiatorNodeName DisplayString, + connectedInitiatorPortName DisplayString, + connectedInitiatorType Integer32, + connectedInitiatorIsid DisplayString, + connectedInitiatorPortalGroup Integer32 + } + + initiatorListEntryIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the initiator connected to + the target adapter." + ::= { initiatorListEntry 1 } + + targetAdapterName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the target adapter in the filer." + ::= { initiatorListEntry 2 } + + connectedInitiatorNodeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual name for this initiator node." + ::= { initiatorListEntry 3 } + + connectedInitiatorPortName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The FibreChannel device's portname. This is FCP only." + ::= { initiatorListEntry 4 } + + connectedInitiatorType OBJECT-TYPE + SYNTAX INTEGER { + fcp(1), + iSCSI(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this init group, either iSCSI or FCP" + ::= { initiatorListEntry 5 } + + connectedInitiatorIsid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The iSCSI isid (initiator session id) for this initiator. + This is iSCSI only." + ::= { initiatorListEntry 6 } + + connectedInitiatorPortalGroup OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The iSCSI portal group ID for this initiator. + This is iSCSI only." + ::= { initiatorListEntry 7 } + + + fcpTarget OBJECT IDENTIFIER ::= {blocks 17} + + fcpTargetTable OBJECT-TYPE + SYNTAX SEQUENCE OF FcpTargetTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of fcp target adapter general + information " + ::= {fcpTarget 1} + + fcpTargetTableEntry OBJECT-TYPE + SYNTAX FcpTargetTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per fcp target device information" + INDEX { fcpTargetTableIndex } + ::= { fcpTargetTable 1 } + + FcpTargetTableEntry ::= + SEQUENCE { + fcpTargetTableIndex Integer32, + fcpTargetName DisplayString, + fcpTargetNN DisplayString, + fcpTargetPN DisplayString, + fcpTargetSpeed Integer32, + fcpTargetStatus Integer32, + fcpTargetStandby Integer32, + fcpTargetTopology Integer32, + fcpTargetType Integer32 + } + + fcpTargetTableIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific fcp target device." + ::= { fcpTargetTableEntry 1 } + + fcpTargetName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the fcp target device" + ::= { fcpTargetTableEntry 2 } + + fcpTargetNN OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The FC WWNN of the fcp target device" + ::= { fcpTargetTableEntry 3 } + + fcpTargetPN OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The FC WWPN of the fcp target device" + ::= { fcpTargetTableEntry 4 } + + fcpTargetSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "speed in gigabits per second. 0 is unknown." + ::= { fcpTargetTableEntry 5 } + + fcpTargetStatus OBJECT-TYPE + SYNTAX INTEGER { + startup(1), + uninitialized(2), + initializingFW(3), + linkNotConnected(4), + waitingForLinkUp(5), + online(6), + linkDisconnected(7), + resetting(8), + offline(9), + offlinedByUserSystem(10), + unknown(11) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the fcp target adapter" + ::= { fcpTargetTableEntry 6 } + + fcpTargetStandby OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether this target adapter is in standby mode." + ::= { fcpTargetTableEntry 7 } + + fcpTargetTopology OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + fabric(2), + pointToPoint(3), + loop(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "fibre channel topology for this adapter. " + ::= { fcpTargetTableEntry 8 } + + fcpTargetType OBJECT-TYPE + SYNTAX INTEGER { + physical(1), + local(2), + standby(3), + partner(4), + unknown(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Responsibility/Type for this adapter." + ::= { fcpTargetTableEntry 9 } + + fcpCfMode OBJECT-TYPE + SYNTAX INTEGER { + mixed(1), + standby(2), + partner(3), + partnerProxy(4), + partnerStandby(5), + localPrimary(6), + dualFabric(7), + ssi(8), + unknown(256) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Failover setting for the FCP target cluster." + ::= { blocks 18 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- Port sets + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + pset OBJECT IDENTIFIER ::= {blocks 19} + + psetTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortSetEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of portset general + information " + ::= {pset 1} + + psetEntry OBJECT-TYPE + SYNTAX PortSetEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of portset information" + INDEX { psetIndex } + ::= { psetTable 1 } + + PortSetEntry ::= + SEQUENCE { + psetIndex Integer32, + psetName DisplayString, + psetType Integer32 + } + + psetIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific port set." + ::= { psetEntry 1 } + + psetName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the port set" + ::= { psetEntry 2 } + + psetType OBJECT-TYPE + SYNTAX INTEGER { + fcp(1), + iSCSI(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this port set, either iSCSI or FCP" + ::= { psetEntry 3 } + + psetMemberTable OBJECT-TYPE + SYNTAX SEQUENCE OF PsetMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of individual Port names in each Port + set" + ::= {pset 2} + + psetMemberEntry OBJECT-TYPE + SYNTAX PsetMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of portset port information" + INDEX { psetMemberIndex, psetMemberNameIndex} + ::= { psetMemberTable 1 } + + PsetMemberEntry ::= + SEQUENCE { + psetMemberIndex + Integer32, + psetMemberNameIndex + Integer32, + psetPortName + DisplayString + } + + psetMemberIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific port set." + ::= { psetMemberEntry 1 } + + psetMemberNameIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number the identifies the port in the set." + ::= { psetMemberEntry 2 } + + psetPortName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual name for this port." + ::= { psetMemberEntry 3 } + + -- The rest of the blocks group. + + fcp64ReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via FCP + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 20 } + + fcp64WriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via FCP + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 21 } + + iscsi64ReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via iSCSI + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 22 } + + iscsi64WriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via iSCSI + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 23 } + + iscsi64Ops OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of iSCSI ops handled since the + last boot. This object returns all of the 64 bit + unsigned integer." + ::= { blocks 24 } + + fcp64Ops OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of FCP ops handled since the + last boot. This object returns all of the 64 bit + unsigned integer." + ::= { blocks 25 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NFS caching group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NFS caching options + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + nfsCacheOptions OBJECT IDENTIFIER ::= { nfscache 1 } + + nfsCacheIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NFS caching is enabled on this system." + ::= { nfsCacheOptions 1 } + + nfsCacheIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NFS caching is licensed on this system." + ::= { nfsCacheOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NFS caching stats + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + nfsCacheStats OBJECT IDENTIFIER ::= { nfscache 2 } + + nfsCacheBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes received from clients" + ::= { nfsCacheStats 1 } + + nfsCacheBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes sent to clients" + ::= { nfsCacheStats 2 } + + nfsCacheBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes received from servers" + ::= { nfsCacheStats 3 } + + nfsCacheBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes sent to servers" + ::= { nfsCacheStats 4 } + + nfsCacheTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS requests received" + ::= { nfsCacheStats 5 } + + nfsCacheHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS requests resulting in cache hits" + ::= { nfsCacheStats 6 } + + nfsCacheMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS requests resulting in cache misses" + ::= { nfsCacheStats 7 } + + nfsCacheMissCacheableRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests that were cacheable misses" + ::= { nfsCacheStats 8 } + + nfsCacheMissUnCacheableRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests that were uncacheable misses" + ::= { nfsCacheStats 9 } + + nfsCacheEjectRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in object eject due to expiration" + ::= { nfsCacheStats 10 } + + nfsCacheVerifyRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in object verification" + ::= { nfsCacheStats 11 } + + nfsCacheRpcRecords OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total RPC records received" + ::= { nfsCacheStats 12 } + + nfsCacheBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for NFS requests" + ::= { nfsCacheStats 13 } + + nfsCacheHighBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from clients. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 14 } + + nfsCacheLowBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from clients. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 15 } + + nfsCacheHighBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to clients. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 16 } + + nfsCacheLowBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to clients. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 17 } + + nfsCacheHighBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from servers. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 18 } + + nfsCacheLowBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from servers. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 19 } + + nfsCacheHighBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to servers. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 20 } + + nfsCacheLowBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to servers. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 21 } + + nfsCacheHighTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests received. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 22 } + + nfsCacheLowTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests received. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 23 } + + nfsCacheHighHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache hits. This + object returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 24 } + + nfsCacheLowHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache hits. This + object returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 25 } + + nfsCacheHighMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache misses. This + object returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 26 } + + nfsCacheLowMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache misses. This + object returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 27 } + + nfsCache64BytesFromClients OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from clients. This object + returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 28 } + + nfsCache64BytesToClients OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to clients. This object returns + all of the 64 bit unsigned integer." + ::= { nfsCacheStats 29 } + + nfsCache64BytesFromServers OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from servers. This object + returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 30 } + + nfsCache64BytesToServers OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to servers. This object + returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 31 } + + nfsCache64TotalRequests OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests received. This object returns + all of the 64 bit unsigned integer." + ::= { nfsCacheStats 32 } + + nfsCache64HitRequests OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache hits. This + object returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 33 } + + nfsCache64MissRequests OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache misses. This + object returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 34 } + + -- -- -- -- -- -- -- -- + -- the storage group -- + -- -- -- -- -- -- -- -- + + enclosure OBJECT IDENTIFIER ::= { storage 1 } + + -- -- -- -- -- -- -- + -- The enclosure group for storage + + enclNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of storage enclosures in the storage subsystem." + ::= { enclosure 1 } + + enclTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display disk enclosure environmental information for disk + shelves that support SCSI Enclosure Services." + ::= { enclosure 2 } + + enclEntry OBJECT-TYPE + SYNTAX EnclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display disk enclosure (shelf) environmental + information for the referenced disk enclosure." + INDEX { enclIndex } + ::= { enclTable 1 } + + EnclEntry ::= + SEQUENCE { + enclIndex + Integer32, + enclContactState + Integer32, + enclChannelShelfAddr + DisplayString, + enclProductLogicalID + DisplayString, + enclProductID + DisplayString, + enclProductVendor + DisplayString, + enclProductModel + DisplayString, + enclProductRevision + DisplayString, + enclProductSerialNo + DisplayString, + enclNumberDiskBays + Integer32, + enclDisksPresent + DisplayString, + enclPowerSuppliesMaximum + Integer32, + enclPowerSuppliesPresent + DisplayString, + enclPowerSuppliesSerialNos + DisplayString, + enclPowerSuppliesFailed + DisplayString, + enclFansMaximum + Integer32, + enclFansPresent + DisplayString, + enclFansFailed + DisplayString, + enclTempSensorsMaximum + Integer32, + enclTempSensorsPresent + DisplayString, + enclTempSensorsOverTempFail + DisplayString, + enclTempSensorsOverTempWarn + DisplayString, + enclTempSensorsUnderTempFail + DisplayString, + enclTempSensorsUnderTempWarn + DisplayString, + enclTempSensorsCurrentTemp + DisplayString, + enclTempSensorsOverTempFailThr + DisplayString, + enclTempSensorsOverTempWarnThr + DisplayString, + enclTempSensorsUnderTempFailThr + DisplayString, + enclTempSensorsUnderTempWarnThr + DisplayString, + enclElectronicsMaximum + Integer32, + enclElectronicsPresent + DisplayString, + enclElectronicsSerialNos + DisplayString, + enclElectronicsFailed + DisplayString, + enclVoltSensorsMaximum + Integer32, + enclVoltSensorsPresent + DisplayString, + enclVoltSensorsOverVoltFail + DisplayString, + enclVoltSensorsOverVoltWarn + DisplayString, + enclVoltSensorsUnderVoltFail + DisplayString, + enclVoltSensorsUnderVoltWarn + DisplayString, + enclVoltSensorsOverVoltFailThr + DisplayString, + enclVoltSensorsOverVoltWarnThr + DisplayString, + enclVoltSensorsUnderVoltFailThr + DisplayString, + enclVoltSensorsUnderVoltWarnThr + DisplayString, + enclVoltSensorsCurrentVolt + DisplayString, + enclCurSensorsMaximum + Integer32, + enclCurSensorsPresent + DisplayString, + enclCurSensorsOverCurFail + DisplayString, + enclCurSensorsOverCurWarn + DisplayString, + enclCurSensorsOverCurFailThr + DisplayString, + enclCurSensorsOverCurWarnThr + DisplayString, + enclCurSensorsCurrentCur + DisplayString, + enclSASConnectMaximum + Integer32, + enclSASConnectPresent + DisplayString, + enclSASConnectVendor + DisplayString, + enclSASConnectType + DisplayString, + enclSASConnectCableLen + DisplayString, + enclSASConnectCableTech + DisplayString, + enclSASConnectCableEnd + DisplayString, + enclSASConnectSerialNos + DisplayString, + enclSASConnectPartNos + DisplayString, + enclPowerSuppliesPartNos + DisplayString, + enclFansSpeed + DisplayString, + enclElectronicsPartNos + DisplayString, + enclElectronicsCPLDVers + DisplayString + } + + enclIndex OBJECT-TYPE + SYNTAX Integer32 (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this enclosure among the + possible monitored enclosures. This number normally + uniquely identifies one shelf within one boot, + but may it change between boots. The number may + also change within a boot if shelves are removed + and added." + ::= { enclEntry 1 } + + enclContactState OBJECT-TYPE + SYNTAX INTEGER { + initializing(1), + transitioning(2), + active(3), + inactive(4), + reconfiguring(5), + nonexistent(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of the communication between the filer or storage + engine and the enclosure monitoring device in the enclosure." + ::= { enclEntry 2 } + + enclChannelShelfAddr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The adapter number or switch name and the port number + (together, called the channel), and shelf ID of this + enclosure. Examples are 8a.1 and switch:5.1." + ::= { enclEntry 3 } + + enclProductLogicalID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The logical identifier of this enclosure. This a form of the + World-Wide Name (WWN)." + ::= { enclEntry 4 } + + enclProductID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product ID of the shelf hardware module that provides + the enclosure monitoring function. Example is LRC." + ::= { enclEntry 5 } + + enclProductVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the vendor of this enclosure. Example is Xyratex." + ::= { enclEntry 6 } + + enclProductModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The model name of this enclosure. Example is DiskShelf14." + ::= { enclEntry 7 } + + enclProductRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The revision number of this enclosure." + ::= { enclEntry 8 } + + enclProductSerialNo OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number of this enclosure." + ::= { enclEntry 9 } + + enclNumberDiskBays OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disk bays in this enclosure." + ::= { enclEntry 10 } + + enclDisksPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of disks present by bay number in this enclosure." + ::= { enclEntry 11 } + + enclPowerSuppliesMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of power supplies in this enclosure." + ::= { enclEntry 12 } + + enclPowerSuppliesPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of power supplies present in the enclosure. + Numbering is from left to right (top supply, then bottom, + on each side, if applicable) in their intended location + in the shelf, while facing the supplies." + ::= { enclEntry 13 } + + enclPowerSuppliesSerialNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of serial numbers of power supplies present + in the enclosure. Not all shelves are able to report the + power supply serial number. Communication errors may + make the serial number unavailable. The order follows that + of enclPowerSuppliesPresent" + ::= { enclEntry 14 } + + enclPowerSuppliesFailed OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of failed power supplies in this enclosure, numbered as + in enclPowerSuppliesPresent." + ::= { enclEntry 15 } + + enclFansMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of fans or fan modules monitored by this + enclosure. R100/R150 shelf power supply fans are not included + in this number." + ::= { enclEntry 16 } + + enclFansPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of fans or fan modules present and for which + status is known in this enclosure. Numbering begins with + fans on the front of the enclosure, if applicable. Fans + are numberedleft-to-right (upper fans, then lower, if + applicable) as facing the fans or the modules that + contain them, such as power supply modules. R100/R150 + shelf power supply fans are not included in this list." + ::= { enclEntry 17 } + + enclFansFailed OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of failed fans or fan modules in this enclosure. Fans + are numbered as described in enclFansPresent." + ::= { enclEntry 18 } + + enclTempSensorsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of temperature sensors monitored + by this enclosure." + ::= { enclEntry 19 } + + enclTempSensorsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors present and for which + status is known in this enclosure. Temperature sensors are + numbered top-to-bottom and left-to-right, beginning with + the front of the enclosure, then the rear, as the modules + containing them are faced." + ::= { enclEntry 20 } + + enclTempSensorsOverTempFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting + overtemperature failure in this enclosure. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 21 } + + enclTempSensorsOverTempWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting overtemperature + warning in this enclosure. Sensors are numbered as in + TempSensorsPresent." + ::= { enclEntry 22 } + + enclTempSensorsUnderTempFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting undertemperature + failure in this enclosure. Sensors are numbered as in + TempSensorsPresent." + ::= { enclEntry 23 } + + enclTempSensorsUnderTempWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting undertemperature + warning in this enclosure. Sensors are numbered as in + TempSensorsPresent." + ::= { enclEntry 24 } + + enclTempSensorsCurrentTemp OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperatures reported by all temperature sensors in + the enclosure, including the ambient temperature. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 25 } + + enclTempSensorsOverTempFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overtemperature failure thresholds for all + temperature sensors in the enclosure. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 26 } + + enclTempSensorsOverTempWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overtemperature warning thresholds for all + temperature sensors in the enclosure. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 27 } + + enclTempSensorsUnderTempFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undertemperature failure thresholds for all + temperature sensors in the enclosure. Sensors are numbered as + in TempSensorsPresent." + ::= { enclEntry 28 } + + enclTempSensorsUnderTempWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undertemperature warning thresholds for all + temperature sensors in the enclosure. Sensors are numbered as + in TempSensorsPresent." + ::= { enclEntry 29 } + + enclElectronicsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of enclosure services electronics modules that it is + possible for this enclosure to detect and/or monitor." + ::= { enclEntry 30 } + + enclElectronicsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list those enclosure services electronics modules present in + this enclosure. Numbering is from left-to-right or top-to-bottom + in their intended location in the shelf, while facing the + electronics modules. It is normal for the R200 FC-AT module to be + reported as the second module." + ::= { enclEntry 31 } + + enclElectronicsSerialNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of serial numbers of the enclosure services electronics + modules present in this enclosure. The order follows that of + enclElectronicsPresent." + ::= { enclEntry 32 } + + enclElectronicsFailed OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of failed electronics elements. Valid only if + enclElectronicsPresent shows that some are present." + ::= { enclEntry 33 } + + enclVoltSensorsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of voltage sensors monitored by + this enclosure." + ::= { enclEntry 34 } + + enclVoltSensorsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors present and for which + status is known in this enclosure. Voltage sensors are + numbered top-to-bottom and left-to-right, as the modules + containing them are faced." + ::= { enclEntry 35 } + + enclVoltSensorsOverVoltFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting + overvoltage failure in this enclosure. Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 36 } + + enclVoltSensorsOverVoltWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting overvoltage + warning in this enclosure. Sensors are numbered as in + VoltSensorsPresent." + ::= { enclEntry 37 } + + enclVoltSensorsUnderVoltFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting undervoltage + failure in this enclosure. Sensors are numbered as in + VoltSensorsPresent." + ::= { enclEntry 38 } + + enclVoltSensorsUnderVoltWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting undervoltage + warning in this enclosure. Sensors are numbered as in + VoltSensorsPresent." + ::= { enclEntry 39 } + + enclVoltSensorsCurrentVolt OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltages reported by all voltage sensors in + the enclosure, Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 40 } + + enclVoltSensorsOverVoltFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overvoltage failure thresholds for all + voltage sensors in the enclosure. Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 41 } + + enclVoltSensorsOverVoltWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overvoltage warning thresholds for all + voltage sensors in the enclosure. Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 42 } + + enclVoltSensorsUnderVoltFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undervoltage failure thresholds for all + voltage sensors in the enclosure. Sensors are numbered + as in VoltSensorsPresent." + ::= { enclEntry 43 } + + enclVoltSensorsUnderVoltWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undervoltage warning thresholds for all + voltage sensors in the enclosure. Sensors are numbered as + in VoltSensorsPresent." + ::= { enclEntry 44 } + + enclCurSensorsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current sensors monitored by + this enclosure." + ::= { enclEntry 45 } + + enclCurSensorsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of current sensors present and for which + status is known in this enclosure. Current sensors are + numbered top-to-bottom and left-to-right, beginning with + the front of the enclosure, then the rear, as the modules + containing them are faced." + ::= { enclEntry 46 } + + enclCurSensorsOverCurFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of current sensors reporting + overcurrent failure in this enclosure. Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 47 } + + enclCurSensorsOverCurWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of current sensors reporting overcurrent + warning in this enclosure. Sensors are numbered as in + CurSensorsPresent." + ::= { enclEntry 48 } + + enclCurSensorsCurrentCur OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of currents reported by all current sensors in + the enclosure, Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 49 } + + enclCurSensorsOverCurFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overcurrent failure thresholds for all + current sensors in the enclosure. Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 50 } + + enclCurSensorsOverCurWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overcurrent warning thresholds for all + current sensors in the enclosure. Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 51 } + + enclSASConnectMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of possible SAS connectors monitored + by this enclosure." + ::= { enclEntry 52 } + + enclSASConnectPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of SAS connector numbers in this + enclosure that have cables attached. Connectors + are numbered beginning at one on module one, + counting connectors innermost-to-outermost on the + module, then module two innermost-to-outermost. + Modules are numbered as in enclElectronicsPresent." + ::= { enclEntry 53 } + + enclSASConnectVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of vendors of cables attached to the + SES connectors of the enclosure. If no cable, + is attached, the entry is shown as ." + ::= { enclEntry 54 } + + enclSASConnectType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of connector types of connectors attached + to the enclosure. If no cable is attached, + the entry is shown as ." + ::= { enclEntry 55 } + + enclSASConnectCableLen OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of lengths (in meters) of cables attached + to the the enclosure. If no cable is attached, + the entry is shown as ." + ::= { enclEntry 56 } + + enclSASConnectCableTech OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of cable technologies of connectors attached + to the enclosure. If no cable is attached, the + entry is shown as ." + ::= { enclEntry 57 } + + enclSASConnectCableEnd OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of identifiers of which end of the cable is + attached to the enclosure. If no cable is attached, + the entry is shown as ." + ::= { enclEntry 58 } + + enclSASConnectSerialNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of serial numbers of the SAS cables attached + to this enclosure. If no cable is attached, the + entry is shown as ." + ::= { enclEntry 59 } + + enclSASConnectPartNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of part numbers of the SAS cables attached + to this enclosure. If no cable is attached, the + entry is shown as ." + ::= { enclEntry 60 } + + enclPowerSuppliesPartNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of part numbers of power supplies present + in the enclosure. Not all shelves are able to report the + power supply part number. Communication errors may + make the part number unavailable. The order follows that of + enclPowerSuppliesPresent." + ::= { enclEntry 61 } + + enclFansSpeed OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of fan speeds in revolutons per minute (RPM) for fans + or fan modules present and for which speed status + is known in this enclosure. Not all enclosure types report + fan speeds. Fans are numbered as described in enclFansPresent." + ::= { enclEntry 62 } + + enclElectronicsPartNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of part numbers of the enclosure services electronics + modules present in this enclosure. The order follows that of + enclElectronicsPresent." + ::= { enclEntry 63 } + + enclElectronicsCPLDVers OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of CPLDs ('complex programmable logic devices') of the + enclosure services electronics modules present in this enclosure. + Not all module types contain this part. + The order follows that of enclElectronicsPresent." + ::= { enclEntry 64 } + + -- -- -- -- -- -- -- -- + -- the network group + -- -- -- -- -- -- -- -- + + netInterfaces OBJECT IDENTIFIER ::= { network 1 } + + -- The net Interfaces table contains information on the entity's + -- interfaces. + + + netifNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of network interfaces (regardless of + their current state) present on this system." + ::= { netInterfaces 1 } + + netifTable OBJECT-TYPE + SYNTAX SEQUENCE OF NetIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of interface entries. The number of + entries is given by the value of netifNumber." + ::= { netInterfaces 2 } + + netifEntry OBJECT-TYPE + SYNTAX NetIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An interface entry containing objects at the + subnetwork layer and below for a particular + interface." + INDEX { netifIndex } + ::= { netifTable 1 } + + NetIfEntry ::= + SEQUENCE { + netifIndex + Integer32, + netifDescr + DisplayString, + ifHighInOctets + Counter32, + ifLowInOctets + Counter32, + ifHighInUcastPkts + Counter32, + ifLowInUcastPkts + Counter32, + ifHighInNUcastPkts + Counter32, + ifLowInNUcastPkts + Counter32, + ifHighInDiscards + Counter32, + ifLowInDiscards + Counter32, + ifHighInErrors + Counter32, + ifLowInErrors + Counter32, + ifHighInUnknownProtos + Counter32, + ifLowInUnknownProtos + Counter32, + ifHighOutOctets + Counter32, + ifLowOutOctets + Counter32, + ifHighOutUcastPkts + Counter32, + ifLowOutUcastPkts + Counter32, + ifHighOutNUcastPkts + Counter32, + ifLowOutNUcastPkts + Counter32, + ifHighOutDiscards + Counter32, + ifLowOutDiscards + Counter32, + ifHighOutErrors + Counter32, + ifLowOutErrors + Counter32, + if64InOctets + Counter64, + if64InUcastPkts + Counter64, + if64InNUcastPkts + Counter64, + if64InDiscards + Counter64, + if64InErrors + Counter64, + if64InUnknownProtos + Counter64, + if64OutOctets + Counter64, + if64OutUcastPkts + Counter64, + if64OutNUcastPkts + Counter64, + if64OutDiscards + Counter64, + if64OutErrors + Counter64 + } + netifIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each interface. Its value + ranges between 1 and the value of ifNumber. The + value for each interface must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { netifEntry 1 } + + netifDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + interface. This string should include the name of + the manufacturer, the product name and the version + of the hardware interface." + ::= { netifEntry 2 } + + ifHighInOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the + interface, including framing characters. + This object returns the most significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 3 } + + ifLowInOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the + interface, including framing characters. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 4 } + + ifHighInUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol. + This object returns the most significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 5 } + + ifLowInUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 6 } + + + ifHighInNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol. + This object returns the most significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 7 } + + ifLowInNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 8 } + + ifHighInDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 9 } + + ifLowInDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 10 } + + ifHighInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol. This object returns the + most significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 11 } + + ifLowInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol. This object returns the + least significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 12 } + + ifHighInUnknownProtos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol. This object returns the + most significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 13 } + + ifLowInUnknownProtos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol. This object returns the + least significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 14 } + + ifHighOutOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. + This object returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { netifEntry 15 } + + ifLowOutOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 16 } + + ifHighOutUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 17 } + + ifLowOutUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 18 } + + ifHighOutNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 19 } + + ifLowOutNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 20 } + + ifHighOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 21 } + + ifLowOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 22 } + + ifHighOutErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 23 } + + ifLowOutErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 24 } + + if64InOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the + interface, including framing characters. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 25 } + + if64InUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 26 } + + if64InNUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 27 } + + if64InDiscards OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space. This object returns all of the 64 bit + unsigned integer." + ::= { netifEntry 28 } + + if64InErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol. This object returns all + of the 64 bit unsigned integer." + ::= { netifEntry 29 } + + if64InUnknownProtos OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol. This object returns all + of the 64 bit unsigned integer." + ::= { netifEntry 30 } + + if64OutOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 31 } + + if64OutUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 32 } + + if64OutNUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 33 } + + if64OutDiscards OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 34 } + + if64OutErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 35 } + + -- -- -- -- -- -- -- -- + -- the sis group + -- -- -- -- -- -- -- -- + + sisIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether Advanced SIS is licensed on the + filer." + ::= { sis 1 } + + sisTable OBJECT-TYPE + SYNTAX SEQUENCE OF SisEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of the SIS volumes on the + system." + + ::= { sis 2 } + + sisEntry OBJECT-TYPE + SYNTAX SisEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular SIS volume." + + INDEX { sisIndex } + ::= { sisTable 1 } + + SisEntry ::= + SEQUENCE { + sisIndex + Integer32, + sisPath + DisplayString, + sisState + Integer32, + sisStatus + Integer32, + sisProgress + DisplayString, + sisType + Integer32, + sisSchedule + DisplayString, + sisLastOpBeginTime + DisplayString, + sisLastOpEndTime + DisplayString, + sisHighLastOpSize + Integer32, + sisLowLastOpSize + Integer32, + sisLastOpError + DisplayString, + sis64LastOpSize + Counter64 + } + + sisIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + SIS volume." + ::= { sisEntry 1 } + + sisPath OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The path to the SIS volume." + ::= { sisEntry 2 } + + sisState OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether SIS is enabled on the + volume or not." + ::= { sisEntry 3 } + + sisStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + active(2), + undoing(3), + pending(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current status of the SIS volume." + ::= { sisEntry 4 } + + sisProgress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The progress of the current SIS operation." + ::= { sisEntry 5 } + + sisType OBJECT-TYPE + SYNTAX INTEGER { + regular(1), + snapvault(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether it is a regular or + snapvaulted SIS volume." + ::= { sisEntry 6 } + + sisSchedule OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The schedule for the SIS opertions." + ::= { sisEntry 7 } + + sisLastOpBeginTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The starting time of the last completed SIS + opertion." + ::= { sisEntry 8 } + + sisLastOpEndTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ending time of the last completed SIS + operation." + ::= { sisEntry 9 } + + sisHighLastOpSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that the + last completed SIS operation had processed. + This object returns the most significant 32 + bits of the 64 bit unsigned integer." + ::= { sisEntry 10 } + + sisLowLastOpSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that the + last completed SIS operation had processed. + This object returns the least significant 32 + bits of the 64 bit unsigned integer." + ::= { sisEntry 11 } + + sisLastOpError OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The error that the last SIS operation + encountered if it failed." + ::= { sisEntry 12 } + + sis64LastOpSize OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that the + last completed SIS operation had processed. + This object returns all of the 64 bit + unsigned integer." + ::= { sisEntry 13 } + + + -- -- -- -- -- -- -- -- -- + -- the compression group + -- -- -- -- -- -- -- -- -- + + compressIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether compression is licensed on + the filer." + ::= { compress 1 } + + compressTable OBJECT-TYPE + SYNTAX SEQUENCE OF CompressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the total space used as + well as the space saved by compression on + volumes." + ::= { compress 2 } + + + -- display the active file system compression statistics + + compressEntry OBJECT-TYPE + SYNTAX CompressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the total space used as + well as the space saved by compression on + the referenced file system." + INDEX { compressIndex } + ::= { compressTable 1 } + + CompressEntry ::= + SEQUENCE { + compressIndex + Integer32, + compressFileSys + DisplayString, + compressHighUsedKBytes + Counter32, + compressLowUsedKBytes + Counter32, + compress64UsedKBytes + Counter64, + compressHighSavedKBytes + Counter32, + compressLowSavedKBytes + Counter32, + compress64SavedKBytes + Counter64, + compressPercentSaved + INTEGER + } + + compressIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { compressEntry 1 } + + compressFileSys OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name for the referenced file system." + ::= { compressEntry 2 } + + compressHighUsedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the most significant 32 bits of the 64 + bit unsigned integer." + ::= { compressEntry 3 } + + compressLowUsedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { compressEntry 4 } + + compress64UsedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns all of the 64 bit unsigned integer." + ::= { compressEntry 5 } + + compressHighSavedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk space in KBytes of disk space that + is saved by compression on the referenced + file system. This object returns the most + significant 32 bits of the 64 bit unsigned + integer." + ::= { compressEntry 6 } + + compressLowSavedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk space in KBytes of disk space that + is saved by compression on the referenced + filesystem. This object returns the least + significant 32 bits of the 64 bit unsigned + integer." + ::= { compressEntry 7 } + + compress64SavedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk space in KBytes of disk space that + is saved by compression on the referenced + filesystem. This object returns all of the + 64 bit unsigned integer." + ::= { compressEntry 8 } + + compressPercentSaved OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space saved by + compression on the referenced filesystem." + ::= { compressEntry 9 } + + -- -- -- -- -- -- -- -- -- + -- the extcache group + -- -- -- -- -- -- -- -- -- + + extcacheType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the type of external cache being used. + Examples are none, PCS, IOMEM." + ::= { extcache 1 } + + extcacheSubType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the sub-type of external cache being used. + Examples are none, PAM1, PAM2." + ::= { extcache 2 } + + extcache64Uptime OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the uptime of the external cache." + ::= { extcache 3 } + + extcache64Size OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates size of the external cache in bytes." + ::= { extcache 4 } + + extcache64Usedsize OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates number of bytes used in the external cache." + ::= { extcache 5 } + + extcache64TotalBuffers OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates total number of buffers in the external cache." + ::= { extcache 6 } + + extcacheOptions OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates external cache options that are + currently turned on. " + ::= { extcache 7 } + + extcache64Hits OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates number of wafl buffers read from + the external cache" + ::= { extcache 8 } + + extcache64Misses OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of external cache misses" + ::= { extcache 9 } + + extcache64Inserts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates number of wafl buffers inserted + into the external cache" + ::= { extcache 10 } + + extcache64Evicts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of buffers evicted + from the external cache" + ::= { extcache 11 } + + extcache64Invalidates OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of buffers invalidated + in the external cache" + ::= { extcache 12 } + + extcache64BlocksRef0 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of non-referenced buffers + currently in the external cache" + ::= { extcache 13 } + + extcache64HitNormalL0 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of L0 buffers read from + the external cache" + ::= { extcache 14 } + + extcache64MetaData OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the number of metadata buffers + read from the external cache" + ::= { extcache 15 } + + extcache64ReadLatency OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the average latency of read IOs + in the external cache" + ::= { extcache 16 } + + extcache64WriteLatency OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the average latency of write IOs + in the external cache" + ::= { extcache 17 } + + extcache64RCLength OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the average read chain length + in the external cache" + ::= { extcache 18 } + + extcache64WCLength OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the average write chain length + in the external cache" + ::= { extcache 19 } + + extcacheIsFlexShareOn OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether FlexShare is on" + ::= { extcache 20 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NetApp trap definitions + -- See RFC 1215 for instructions on building traps + -- + -- All EnterpiseSpecific Traps of NetApp + -- contain the OIDs 'productTrapData and productSerialNum' + -- except traps with the trap types - + -- globalStatusNonRecoverable + -- globalStatusCritical + -- globalStatusNonCritical + -- globalStatusOk + -- which contain the OIDs 'miscGlobalStatusMessage and productSerialNum' + -- + -- The last digit of a trap contains information about the + -- priority of the trap: + -- + -- 1 emergency + -- 2 alert + -- 3 critical + -- 4 error + -- 5 warning + -- 6 notification + -- 7 information + -- 8 debug + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- A generic, unprioritized, user-defined trap. These + -- are generated in releases prior to 5.4. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + userDefined NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A polling-style trap built using the 'snmp traps' + command on the filer." + + ::= { netapp 0 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- Disk Health Monitor Notices for Disk Fault + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + dhmNoticeDegradedIO NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Disk Health Monitor - + Reported a Disk Degraded-I/O Event" + + ::= { netapp 0 6 } + + dhmNoticePFAEvent NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Disk Health Monitor - + Reported a Disk Predictive-Failure Event" + + ::= { netapp 0 7 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains generic user-defined traps. + -- All user-defined traps with the same priority + -- use the trap for that priority level. + -- + -- For example, all "critical" user-defined traps are + -- sent with ID 13. The string data sent with the + -- trap identifies the specific critical event. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + emergencyTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating an extremely urgent + situation, usually indicating that the system has + failed and is shutting down." + + ::= { netapp 0 11 } + + alertTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating a condition that + should be corrected immediately, such as a failed disk." + + ::= { netapp 0 12 } + + criticalTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating a critical condition, + such as a hard device error." + + ::= { netapp 0 13 } + + errorTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating an error condition, + such as a mistake in a configuration file." + + ::= { netapp 0 14 } + + warningTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating a condition which + is not an error, but which may require special handling." + + ::= { netapp 0 15 } + + notificationTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap meant to provide notification, + such as an hourly uptime message." + + ::= { netapp 0 16 } + + informationalTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap used for informational purposes." + + ::= { netapp 0 17 } + + dbgTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap used for debugging purposes. + This trap was previously mis-documented as being trap + number 17, with the name debugTrap. It has always, + actually, been trap 18. The name change is to avoid + issues with environments that already have a record + for debugTrap." + + ::= { netapp 0 18 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- Specific traps. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + diskFailedShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System is shutting down because the system has been + running in degraded mode for 24 hours. + The trap includes a string describing the failed disk." + + ::= { netapp 0 21 } + + diskFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more disks failed. + The trap includes a string describing the failed disk(s)." + + ::= { netapp 0 22 } + + diskRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The failed disks have been repaired. + This trap is a placeholder - + it is not currently sent by Data ONTAP." + + ::= { netapp 0 26 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- The fan and power supply traps are not supported + -- on all platforms. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + fanFailureShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Critical chassis or cpu fans have failed and the system + is shutting down." + + ::= { netapp 0 31 } + + fanFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis fans failed. + The trap includes a string describing the failed fan(s)." + + ::= { netapp 0 33 } + + fanWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis or cpu fans are in warning state. + The trap includes a string describing the fan(s) in + the warning state." + + ::= { netapp 0 35 } + + fanRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All fans are repaired." + + ::= { netapp 0 36 } + + powerSupplyFailureShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Critical power supplies or power rails failed and + the system is shutting down." + + ::= { netapp 0 41 } + + powerSupplyFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more redundant power supplies failed. + Include in the trap a string describing + the failed power supply(ies)." + + ::= { netapp 0 43 } + + powerSupplyWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more power supplies or power rails in + warning state. Include in the trap a string describing + the power supply(ies) or the power rail(s) in the + warning state." + + ::= { netapp 0 45 } + + powerSupplyRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Previously-failed power supplies or power rails have been + repaired." + + ::= { netapp 0 46 } + + cpuTooBusy NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "CPU utilization exceeds 90%. + This trap is not enabled by default. + To enable this trap set the registry + entry options.monitor.cpu.enable to on. + Note that as the threshold for this trap is + checked once a minute it is possible to receive + multiple instances of this trap in a short time." + + + ::= { netapp 0 55 } + + cpuOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "CPU utilization has dropped back below 90%. + This trap is a placeholder - + it is not currently sent by Data ONTAP." + + ::= { netapp 0 56 } + + nvramBatteryDischarged NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The NVRAM battery is fully discharged." + + ::= { netapp 0 62 } + + nvramBatteryLow NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The charge in the NVRAM battery is low." + + ::= { netapp 0 63 } + + clusterNodeFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A node in a Cluster FailOver configuration failed. + Its partner will assume service for the failed node." + + ::= { netapp 0 72 } + + clusterNodeTakenOver NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The partner has taken over for a failed cluster node." + + ::= { netapp 0 75 } + + clusterNodeRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A cluster node has resumed operation." + + ::= { netapp 0 76 } + + volumeFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "At least one volume is more than 98% full. + The string sent with the trap gives the + name of the volume or volumes which exceed + the volumeFull or volumeNearlyFull thresholds" + + ::= { netapp 0 82 } + + volumeNearlyFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "At least one volume is more than 95% full. + The string sent with the trap gives the + name of the volume or volumes which exceed + the volumeFull or volumeNearlyFull thresholds" + + ::= { netapp 0 85 } + + volumeRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All volumes are now under 95% full." + + ::= { netapp 0 86 } + + volumesStillFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "At least one volume that was full or nearly full is now OK, + but more volumes still exceed the volumeNearlyFull or + volumeFull thresholds. This trap is generally sent within + a short time of when a volume becomes OK, though if two + volumes become OK within this timeframe, only one trap is + sent. The string sent with the trap gives the name of the + volume or volumes which still exceed the volumeFull or + volumeNearlyFull thresholds. It does not send the name of + any volume that is OK." + + ::= { netapp 0 87 } + + overTempShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System temperature is too high to continue + operating. The system is shutting down." + + ::= { netapp 0 91 } + + overTemp NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System temperature is too high and in the + warning level." + + ::= { netapp 0 95 } + + overTempRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System temperature has returned to an + acceptable value." + + ::= { netapp 0 96 } + + shelfFault NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A disk storage shelf reported a fault, probably due + to a problem with drive placement, fans, power, + or temperature." + + ::= { netapp 0 103 } + + + shelfRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A previously-reported shelf fault is now corrected." + + ::= { netapp 0 106 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains "general health" traps, + -- based on changes to the miscGlobalStatus + -- variable. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + globalStatusNonRecoverable NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status changed to + 'nonRecoverable', indicating a problem so severe + that the appliance is shutting down." + + ::= { netapp 0 111 } + + globalStatusCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status changed to 'critical', + indicating a problem that needs immediate attention." + + ::= { netapp 0 113 } + + globalStatusNonCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status changed to 'nonCritical', + indicating a problem that needs attention." + + ::= { netapp 0 115 } + + globalStatusOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status returned to normal." + + ::= { netapp 0 116 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to soft quotas. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + softQuotaExceeded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user has exceeded their soft quota limit." + + ::= { netapp 0 126 } + + softQuotaNormal NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user is safely back under their soft quota limit." + + ::= { netapp 0 127 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to autosupport + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + autosupportSendError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Unable to send autosupport. + The trap includes a string describing the reason for the failure." + + ::= { netapp 0 134 } + + autosupportConfigurationError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Autosupport may be configured incorrectly. + The trap includes a string describing the mis-configuration." + + ::= { netapp 0 135 } + + autosupportSent NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Autosupport was sent successfully." + + ::= { netapp 0 136 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to UPS + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + upsLinePowerOff NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Input line power has failed and UPS is now on battery." + + ::= { netapp 0 142 } + + upsBatteryCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Battery is nearly exhausted, starting graceful shutdown." + + ::= { netapp 0 143 } + + + upsShuttingDown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Shutting down now: Time left on battery is exhuasted." + + ::= { netapp 0 144 } + upsBatteryWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Warning: Time left on battery is getting critical." + + ::= { netapp 0 145 } + + upsLinePowerRetored NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Input line power has been restored and UPS is now off battery." + + ::= { netapp 0 146 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Client Side Applications. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + appEmergency NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application encountered an extremely urgent + situation and requires an immediate response." + + ::= { netapp 0 151 } + + appAlert NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application is in a condition that should + be corrected immediately." + + ::= { netapp 0 152 } + + appCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application encountered a critical condition." + + ::= { netapp 0 153 } + + appError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application encountered an error condition." + + ::= { netapp 0 154 } + + appWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application is in a condition which is not an + error, but which may require special handling." + + ::= { netapp 0 155 } + + appNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application is notifing of a certain event." + + ::= { netapp 0 156 } + + appInfo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application's message is meant for informational + purposes." + + ::= { netapp 0 157 } + + appTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application requires to be debugged." + + ::= { netapp 0 158 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Autosaving NT EVT files. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + alfFilewrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The internal audit file has wrapped. You are currently losing event + records. Warning the user." + + ::= { netapp 0 162 } + + + alfFileSaved NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The internal audit log has been autosaved to an external evt file. + Notifying the user." + + ::= { netapp 0 166 } + + alfFileNearlyFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The internal audit log file is nearly full. The file is going to + wrap. Notifying the user." + + ::= { netapp 0 167 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to generalized quota events. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + quotaExceeded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One of the quota limits has been exceeded. + The trap includes a string describing the specific event + which triggered the trap. The string is structured + in the following form: + + Quota Event: status=exceeded, type={hard|soft|threshold}, + user={username}, volume={volume}, limit_item={files|disk}, + limit_value={#files|#kilobytes} + [ , treeid={tree-id} ] [ , vfiler={vfiler} ] + + An example of a complete message would be: + + Quota Event: status=exceeded, type=soft, + user=admin, volume=vol1, limit_item=disk, limit_value=1000000, + treeid=8 + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 176 } + + quotaNormal NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One of the quota limits has gone back down to a normal level. + The trap includes a string describing the specific event + which triggered the trap. The string is structured + in the following form: + + Quota Event: status=normal, type={hard|soft|threshold}, + user={username}, volume={volume}, limit_item={files|disk}, + limit_value={#files|#kilobytes} + [ , treeid={tree-id} ] [ , vfiler={vfiler} ] + + An example of a complete message would be: + + Quota Event: status=normal, type=soft, + user=admin, volume=vol1, limit_item=disk, limit_value=1000000, + treeid=8 + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 177 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to alerting when 64MB directory + -- limit is nearly reached or has been reached. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + waflDirNearlyFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The directory has surpassed 90% of its sub-directory limit. + The priority of waflDirFull and this trap are out of order + for backwards compatibility." + + ::= { netapp 0 186 } + + waflDirFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The directory has reached its sub-directory limit" + + ::= { netapp 0 187 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Correctable Memory ECC + -- errors + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + eccSummary NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Memory ECC: number of new correctable ECC errors" + + ::= { netapp 0 192 } + + eccMasked NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Memory ECC: High frequency of ECC errors" + + ::= { netapp 0 195 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to ftpd service + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ftpdError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Ftp daemon: service stopped" + + ::= { netapp 0 204 } + + ftpdMaxConnNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Ftp daemon: number of connections hits maximum number" + + ::= { netapp 0 206 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains additional traps related to ftpd service + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ftpdMaxConnThresholdNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Ftp daemon: number of connections nearly hits maximum number" + + ::= { netapp 0 216 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to SCSI Target + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + scsitgtFCPLinkBreak NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "SCSI Target: Link Break on FCP adapter" + + ::= { netapp 0 222 } + + scsitgtPartnerPathMisconfigured NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "SCSI Target: FCP Partner Path Misconfigured" + + ::= { netapp 0 224 } + + scsitgtThrottleNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "SCSI Target: Throttle limit event notification" + + ::= { netapp 0 226 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to VIF Failover & Link Status + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vifPrimaryLinkFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Vif: The primary Interface on a Single mode vif has failed" + + ::= { netapp 0 237 } + + vifAllLinksFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Vif: All the links of the vif have failed" + + ::= { netapp 0 238 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Vfiler status + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vfStopped NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A vFiler has stopped." + + ::= { netapp 0 245 } + + vfStarted NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A vFiler has started." + + ::= { netapp 0 246 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Virus Scanning + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vscanVirusDetectedError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: A virus scanner has detected a virus on the Filer" + + ::= { netapp 0 254 } + + vscanDisConnection NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: A virus scanner has dropped its connection from the Filer" + + ::= { netapp 0 255 } + + vscanConfigurationChange NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: There has been a change to the vscan configuration" + ::= { netapp 0 256 } + + vscanConnection NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: A virus scanner has made a connection to the Filer" + + ::= { netapp 0 257 } + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains additional traps related to Virus Scanning + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vscanServerUpgrade NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: The Vscan server has been upgraded" + + ::= { netapp 0 266 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to volume status being offline, + -- online or restricted + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeRestrictedByMirrorBigIo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A volume that experienced a medium error during reconstruction + is restricted and marked wafl-inconsistent, but starting + wafliron has failed. This trap is issued to alert operator + that a volume is not accessible and wafliron must be started + to allow access to it." + + ::= { netapp 0 272 } + + volumeInconsistentUmount NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when we unmount a volume due to an + inconsistency." + + ::= { netapp 0 274 } + + volumeStateChanged NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is being taken offline or being restricted. + The string sent with trap specifies name of affected volume + and its state." + + ::= { netapp 0 275 } + + volumeOnline NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is online now. The string sent with trap specifies + name of volume which is online now." + + ::= { netapp 0 276 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to remote management + -- controller (RMC) card status + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + rmcCardNeedsReplacement NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Remote Management Controller card needs replacement. The trap + includes a string specifying the reason for replacement" + + ::= { netapp 0 283 } + + rmcCardMissingCables NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Remote Management Controller card is missing its internal + cable, or LAN cable or power supply cable. The trap includes + a string specifing the missing component." + + ::= { netapp 0 284 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to remote volume + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeRemoteUnreachable NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Local volume encountered an error while communicating + to remote volume." + + ::= { netapp 0 294 } + + volumeRemoteOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The communication between remote volume and local volume + returned to normal." + + ::= { netapp 0 296 } + + volumeRemoteRestored NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The data on remote volume has been fully restored to local + volume." + + ::= { netapp 0 297 } + + volumeRemoteRestoreBegin NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The data on remote volume has started being restored to local + volume by Restore-on-Demand." + + ::= { netapp 0 298 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains more traps related to volume status being + -- offline, online or restricted + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeRestrictedRootConflict NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is restricted due to a root volume conflict. The + string sent with trap specifies name of conflicting volume + which is being restricted." + + ::= { netapp 0 304 } + + volumeOfflineTooBig NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume can not be brought online because its raw size is + larger than maximum allowed size. The string sent with trap + specifies name of affected volume and its raw size, and + maximum allowed size." + + ::= { netapp 0 314 } + + volumeOffline NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is being taken offline. The string sent with trap + specifies name of affected volume and reason for being + taken offline." + + ::= { netapp 0 324 } + + volumeRestricted NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is being restricted. The string sent with trap + specifies name of affected volume and reason for being + restricted." + + ::= { netapp 0 334 } + + volumeDegradedDirty NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is degraded and has dirty parity. WAFL_check must be + run on this volume before it can be brought online. The string + sent with trap specifies name of affected volume." + + ::= { netapp 0 344 } + + volumeError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when a volume can not be brought online + due to an error. The string sent with trap specifies name of + affected volume and error description." + + ::= { netapp 0 354 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to synchronous SnapMirror + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + snapmirrorSyncFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Synchronous SnapMirror failed and went into asynchronous mode." + ::= { netapp 0 364 } + + snapmirrorSyncOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Synchronous SnapMirror went into synchronous mode." + ::= { netapp 0 366 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- New environmental traps + -- + -- A series of new environmental traps are constructed + -- to disambiguate many of the older traps (which are antiquated + -- but remain until they are completely removed from EMS usage). + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Chassis Temperature + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisTemperatureShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is extreme. The appliance has + initiated a shutdown to protect itself. The operating + environment should be monitored and corrected before + restarting the appliance." + + ::= { netapp 0 371 } + + chassisTemperatureWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is either too high or too low. + The temperature should be monitored and, if possible, corrected." + + ::= { netapp 0 372 } + + chassisTemperatureUnknown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is unknown, because reading can't be + obtained from the chassis temperature sensor." + + ::= { netapp 0 375 } + + chassisTemperatureOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is OK." + + ::= { netapp 0 376 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- CPU Fans + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisCPUFanStopped NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more CPU fans have stopped. The appliance + has initiated a shutdown to protect itself. A new + motherboard may be required to correct the fan. + Contact NetApp for direction." + + ::= { netapp 0 381 } + + chassisCPUFanSlow NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A CPU fan is spinning too slowly. A new motherboard + may be required to correct the fan. Contact NetApp + for direction." + + ::= { netapp 0 383 } + + chassisCPUFanOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All CPU fan(s) are properly functioning." + + ::= { netapp 0 386 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Power Supplies + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisPowerSuppliesFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multiple chassis power supplies failed." + + ::= { netapp 0 391 } + + chassisPowerSupplyDegraded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis power supplies are degraded. + A description of the degraded state has been + logged to the console and message log file." + + ::= { netapp 0 392 } + + chassisPowerSupplyFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One chassis power supply failed." + + ::= { netapp 0 393 } + + chassisPowerSupplyRemoved NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis power supplies are removed." + + ::= { netapp 0 394 } + + chassisPowerSupplyOff NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis power supplies are off." + + ::= { netapp 0 395 } + + chassisPowerSuppliesOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis power supplies are all functioning properly." + + ::= { netapp 0 396 } + + chassisPowerSupplyOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This chassis power supply is functioning properly." + + ::= { netapp 0 397 } + + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Power Rails + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisPowerDegraded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The power within the chassis is degraded. + A description of the degraded state has been + logged to the console and message log file." + + ::= { netapp 0 403 } + + chassisPowerOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The power within the chassis is functioning properly." + + ::= { netapp 0 406 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Chassis Fans + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisFanDegraded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A chassis fan has been degraded." + + ::= { netapp 0 412 } + + chassisFanRemoved NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A chassis fan FRU has been removed." + + ::= { netapp 0 413 } + + chassisFanStopped NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis fans have stopped." + + ::= { netapp 0 414 } + + chassisFanWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis fans is spinning slowly or too fast." + + ::= { netapp 0 415 } + + chassisFanOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All chassis fans are functioning properly." + + ::= { netapp 0 416 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Volume SnapValidator errors + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + writeVerificationFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A write has failed a verification test + on a SnapValidator enabled volume." + ::= { netapp 0 424 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- CIFS domain controller-related traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + prefDCDisconnect NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All connections to domain controllers in the preferred domain + controllers list have been lost." + ::= { netapp 0 434 } + + domainControllerDisconnect NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A CIFS domain controller connection to the filer has failed." + ::= { netapp 0 435 } + + dcPasswdChangeFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "An attempt to change the filer's password with the domain + controller has failed." + ::= { netapp 0 436 } + + domainControllerConnected NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A CIFS domain controller connection to the filer has been + established." + ::= { netapp 0 437 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- This section contains traps related to plex state + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + plexFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when one plex of a mirrored + traditional volume or aggregate is failed. The string + sent with this trap specifies name of affected plex or + mirrored traditional volume or aggregate." + ::= { netapp 0 444 } + + plexOffline NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when a plex becomes offline. + The string sent with this trap specifies name of + affected plex or mirrored traditional volume or aggregate." + ::= { netapp 0 454 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- This section contains traps related to shelf Electronics Elements + -- and intelligent fibre channel interface modules such as LRC, + -- ESH, AT-FC, and AT-FCX. + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + shelfSESElectronicsFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more of the enclosure services devices in a + disk shelf has failed. Some shelf designs combine + the enclosure monitoring hardware function into the + module that provides the storage interface to + the shelf. A failure in the enclosure monitoring + section of these combined modules does not necessarily + indicate a failure in disk or loop or bus operation, + which may be able to continue." + ::= { netapp 0 464 } + + shelfSESElectronicsInfo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A previously reported failure of an enclosure + services device in a disk shelf has been corrected, + or the device has reported information that does not + necessarily require customer action." + ::= { netapp 0 467 } + + shelfIFModuleFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more of the storage interface modules in a + disk shelf has failed. Some shelf designs combine the + enclosure monitoring hardware function into the module + that operates the fibre channel loop or SCSI in the + shelf. This failure is of the storage interface + itself, not a failure of the enclosure monitoring, + which may be able to continue. This failure may make + one or more disks in the shelf or in the loop or bus + unavailable." + ::= { netapp 0 473 } + + shelfIFModuleWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more of the storage interface modules in a + disk shelf has a warning condition. Some shelf designs combine the + enclosure monitoring hardware function into the module + that operates the fibre channel loop or SCSI in the + shelf. This warning condition is of the storage interface + itself, not a failure of the enclosure monitoring, + which may be able to continue." + ::= { netapp 0 475 } + + shelfIFModuleInfo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A previously reported failure of a disk shelf + interface module has been corrected, or the module has + reported information that does not necessarily require + customer action." + ::= { netapp 0 477 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- This section contains traps related to maxdirsize. + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + maxDirSizeAlert NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A directory has reached its maxdirsize limit. Either + increase the maxdirsize or clean up the directory." + ::= { netapp 0 482 } + + maxDirSizeWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A directory is getting close to its maxdirsize limit. Either + increase the maxdirsize or clean up the directory." + ::= { netapp 0 485 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- CIFS statistics related traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + cifsStatsExhaustMemCtrlBlk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A request for a CIFS control block can not be granted. All + control blocks are in use." + ::= { netapp 0 497 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- New Environmental Subsystem Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + + chassisPSRemovedxMinShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Power Supply Unit is removed from the system. System will + be shutdown in x minutes if it is not put back." + + ::= { netapp 0 501 } + + chassisPSUsMismatch NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Power Supply Units in the system are of different type. + Please replace them with correct Power Supply Units." + + ::= { netapp 0 505 } + + chassisFanFailxMinShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multiple chassis fan failure. System will + shut down in a few minutes if not corrected." + + ::= { netapp 0 511 } + + chassisPSUwrongInput NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Power Supply Unit (PSU) in the system is connected to an + incompatible external power source. Please change + the power source being used or replace the PSU + with one that matches the current power source." + + ::= { netapp 0 515 } + + powerSupplyFanFailxMinShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multiple power supply fans failure. + System will shut down in a few minutes if not corrected." + + ::= { netapp 0 521 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- New Remote Management Subsystem Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + remoteSystemMgtAlert NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "system remote management detected a system down event. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={post_error|watchdog_reset|power_loss|abnormal_reboot}, + key=value + + An example of a complete message would be: + Remote Management Event: type=system_down, severity=alert, + event=watchdog_reset, ss=16bytes + + Additional key=value items may, in the future, be appended + to this message. + + The events that would generate this trap would be: + post_error: Fatal POST error on boot + power_loss: Loss of power to system + abnormal_reboot: + l2_watchdog_reset" + + ::= { netapp 0 532 } + + remoteSystemMgmtWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "system remote management detected a system down event. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={loss-of-heartbeat}, + key=value + + An example of a complete message would be: + Remote Management Event: type=system_down, severity=warning, + event=loss_of_heartbeat, ss=16bytes + + Additional key=value items may, in the future, be appended + to this message. + + The events that would generate this trap would be: + loss_of_heartbeat: Loss of heartbeat to the RLM." + + ::= { netapp 0 535 } + + remoteSystemMgmtNotification NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "system remote management detected a system down event. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={power_off_via_rlm,power_cycle_via_rlm,reset_via_rlm}, + key=value + + An example of a complete message would be: + Remote Management Event: type=system_down, severity=notice, + event=power_off_via_rlm, ss=16bytes + + Additional key=value items may, in the future, be appended + to this message. + + The events that would generate this trap would be: + power_off_via_rlm: This indicates system power off + power_cycle_via_rlm: This indicates system power cycle + reset_via_rlm: This indicates system reset." + + ::= { netapp 0 536 } + + remoteSystemMgmtPeriodic NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This is a periodic keep alive from system remote management. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={periodic_message} + + An example of a complete message would be: + Remote Management Event: type=keep_alive, severity=info, + event=periodic_message + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 547 } + + remotesystemMgmtTest NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This is a test trap from system remote management. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={periodic_message} + + An example of a complete message would be: + Remote Management Event: type=test, severity=notice, event=test + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 556 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Disk Multipath Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + diskMultipathOneSwitch NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A multipathed disk is only connected to one switch." + + ::= { netapp 0 562 } + + diskMultipathNoTakeover NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multipath disks or luns could not be detected for the partner. + The node will be unable to takeover correctly." + + ::= { netapp 0 563 } + + diskMultipathWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Synchronous mirroring is enabled, even though disks are not + multipathed." + + ::= { netapp 0 565 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Disk Disable Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + driveDisableErr NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A drive has been disabled by the shelf module due to + hardware errors. If it is the only drive in the shelf + that is disabled, replace the drive." + + ::= { netapp 0 574 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- HBA Offline Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + hbaOfflineInformation NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A host bus adapter (HBA) port has been disabled. + This state may be caused either by user command or by + errors that make the interface unable to communicate + with attached devices." + + ::= { netapp 0 587 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- LUN Snap Restore Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + lunSnapRestoreStatus NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Status of the Snap Restore" + + ::= { netapp 0 606 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- LUN Clone Create Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + lunCloneCreate NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Created a LUN Clone" + + ::= { netapp 0 616 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- LUN Clone Split Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + lunCloneSplitStart NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "LUN Clone Split started" + + ::= { netapp 0 626 } + + lunCloneSplitComplete NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "LUN Clone Split completed" + + ::= { netapp 0 627 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Flex Clone Split Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + flexCloneSplitStart NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Flex Clone Split started" + + ::= { netapp 0 636 } + + flexCloneSplitComplete NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Flex Clone Split completed" + + ::= { netapp 0 637 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Volume Clone Create Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeCloneCreate NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Created a Volume Clone" + + ::= { netapp 0 646 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Snap Autodelete Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + snapAutoDelete NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Snapshot Autodeleted" + + ::= { netapp 0 656 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Volume Autogrow Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeAutogrow NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is Autogrown" + + ::= { netapp 0 666 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- External cache device error Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + extcacheCardError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "External cache card failure" + + ::= { netapp 0 676 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- External cache offline Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + extcacheCardOffline NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "External cache is taken offline" + + ::= { netapp 0 686 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to snapvault + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- SnapVault Snapshot limit warning + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + svBackupSnapWarningLimit NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The remaining number of Snapshot copies for a backup + schedule is below warning limit specified." + + ::= { netapp 0 695 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- End of NetApp trap definitions + -- + -- Note: Please update this comment when adding a new NOTIFICATION-TYPE. + -- The next trap set range should be: 70x + -- + -- The 10xxx trap range is used by DataFabric Manager + -- (netappDataFabricManager) see the DFM MIB for further + -- information. + -- + -- The 20xxx trap range is used by the NetApp Support Console + -- (netappSupportConsole) see the NASC MIB for further + -- information. + -- + -- The 'ones' digit of the trap contains the priority of the trap: + -- + -- 1 emergency + -- 2 alert + -- 3 critical + -- 4 error + -- 5 warning + -- 6 notification + -- 7 information + -- 8 debug + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + END + diff --git a/pandora_console/attachment/mibs/NETWORK-APPLIANCE-MIB.mib b/pandora_console/attachment/mibs/NETWORK-APPLIANCE-MIB.mib new file mode 100644 index 0000000000..5316779fbe --- /dev/null +++ b/pandora_console/attachment/mibs/NETWORK-APPLIANCE-MIB.mib @@ -0,0 +1,26053 @@ + -- ======================================================== -- + -- Network Appliance Custom MIB -- + -- -- + -- This MIB contains only information specific to -- + -- Network Appliance products. Other supported mibs are -- + -- not included in this file. -- + -- ======================================================= -- + + -- Version 2.0, December 2007 (See NOTE below) + + -- Copyright (c) 1995-2007 Network Appliance, Inc. + -- All rights reserved. + + -- This Network Appliance SNMP Management Information Base + -- (Specification) embodies Network Appliance's confidential + -- and proprietary intellectual property. Network Appliance + -- retains all title and ownership in the Specification, + -- including any revisions. + + -- This Specification is supplied "AS IS," and Network Appliance + -- makes no warranty, either express or implied, as to the use, + -- operation, condition, or performance of the Specification. + + -- NOTE: Please maintain the format of the line above + -- containing the MIB's version number as: + -- + -- Version , (See NOTE below) + -- + -- This line is parsed during the release process + -- to extract the version of the MIB. + -- Keep the MODULE-IDENTITY in sync with the Version Date. + -- + + -- ======================================================= -- + -- List of modifications for upgrade to SMIv2 (RFC2578): + -- + -- Standardized capitalization for grmMonitor + -- subtyping not allowed in SEQUENCE + -- hyphens not allowed in value types. + -- Changed dmpSubtreeEntry to dmpEntry + -- Removed lastdump and placed entries in dmpEntry + -- Removed lastsuccess and placed entries in dmpEntry + -- Renamed initiatorListMemberEntry to initiatorListEntry + -- Moved enclTempSensorsCurrentTemp to correct location in enclEntry + -- Added Counter64 support + -- Renamed the following netcache OIDS: + -- ncStreamingOndemandBytesToClients to ncStreamingOBTClients + -- ncStreamingOndemandBytesFromClients to ncStreamingOBFClients + -- ncStreamingOndemandBytesToServers to ncStreamingOBTServers + -- ncStreamingOndemandBytesFromServers to ncStreamingOBFServers + -- ncStreamingQuickTimeBytesToClients to ncStreamingQTBTClients + -- ncStreamingQuickTimeBytesFromClients to ncStreamingQTBFClients + -- ncStreamingQuickTimeBytesToServers to ncStreamingQTBTServers + -- ncStreamingQuickTimeBytesFromServers to ncStreamingQTBFServers + -- ncStreamingRtspWMBytesFromClients to ncStreamingRtspWMBFClients + -- ncStreamingRtspWMBytesFromServers to ncStreamingRtspWMBFServers + + -- Conform to RFC3584 "Coexistence between V1, V2, and V3 of + -- the Internet-standard Network Management Framework + -- 2.1.1. Required changes + -- 1 - IMPORTS statement must reference SNMPv2-SMI + -- 2 - The MODULE-IDENTITY macro must be invoked. + -- 3 - SYNTAX Counter32 replaces Counter + -- 4 - SYNTAX Gauge32 replaces Gauge + -- 5 - MAX-ACCESS replaces ACCESS + -- 6 - STATUS current replaces STATUS mandatory + -- STATUS current replaces STATUS optional + -- 2.1.1 - Desirable changes + -- 2 - Integer32 replaces INTEGER in places that don't have ranges + -- 2.1.2 - Trap and Notification Definitions + -- 1 - IMPORTS must reference SMIv2-SMI + -- 2 - ENTERPRISE is removed + -- 3 - VARIABLES clause must be renamed to OBJECTS clause + -- 4 - STATUS clause must be added + -- ======================================================= -- + + NETWORK-APPLIANCE-MIB DEFINITIONS ::= BEGIN + + IMPORTS + enterprises, Counter32, IpAddress, TimeTicks, Gauge32, + NOTIFICATION-TYPE, MODULE-IDENTITY, snmpModules, + OBJECT-TYPE, Counter64, Integer32 + FROM SNMPv2-SMI + PhysAddress, DisplayString + FROM RFC1213-MIB; + + -- MIB-II (same prefix as MIB-I) + + netappModuleId MODULE-IDENTITY + LAST-UPDATED "200703010000Z" + ORGANIZATION "Network Appliance" + CONTACT-INFO "www.netapp.com" + DESCRIPTION "The mib module for netapp SNMPv2 entities" + + ::= { snmpModules 789 } + + -- the Network Appliance MIB + + -- NetApp conventions + + netapp OBJECT IDENTIFIER ::= { enterprises 789 } + + -- the current netapp mib + + netapp1 OBJECT IDENTIFIER ::= { netapp 1 } + + -- + -- This is the tree under which values for the sysObjectID + -- are allocated. + -- + + netappProducts OBJECT IDENTIFIER ::= { netapp 2 } + + -- + -- This is the tree under which values for the DataFabric Manager + -- are allocated. Those values are defined in separate mib file, + -- distributed with DataFabric Manager product. + -- + + netappDataFabricManager OBJECT IDENTIFIER ::= { netapp 3 } + + -- + -- This is the tree under which values for the NetApp Support Console + -- are allocated. Those values are defined in separate mib file, + -- distributed with the Support Console + -- + + netappSupportConsole OBJECT IDENTIFIER ::= { netapp 4 } + + -- + -- We distinguish between filers and NetCaches. + -- + + netappFiler OBJECT IDENTIFIER ::= { netappProducts 1 } + netappNetCache OBJECT IDENTIFIER ::= { netappProducts 2 } + netappClusteredFiler OBJECT IDENTIFIER ::= { netappProducts 3 } + netappNode OBJECT IDENTIFIER ::= { netappProducts 4 } + + -- top-level netapp groups + + product OBJECT IDENTIFIER ::= { netapp1 1 } + + sysStat OBJECT IDENTIFIER ::= { netapp1 2 } + + nfs OBJECT IDENTIFIER ::= { netapp1 3 } + + quota OBJECT IDENTIFIER ::= { netapp1 4 } + + filesys OBJECT IDENTIFIER ::= { netapp1 5 } + + raid OBJECT IDENTIFIER ::= { netapp1 6 } + + cifs OBJECT IDENTIFIER ::= { netapp1 7 } + + netcache OBJECT IDENTIFIER ::= { netapp1 8 } + + snapmirror OBJECT IDENTIFIER ::= { netapp1 9 } + + ndmp OBJECT IDENTIFIER ::= { netapp1 10 } + + fabric OBJECT IDENTIFIER ::= { netapp1 11 } + + dafs OBJECT IDENTIFIER ::= { netapp1 12 } + + vi OBJECT IDENTIFIER ::= { netapp1 13 } + + backup OBJECT IDENTIFIER ::= { netapp1 14 } + + vfiler OBJECT IDENTIFIER ::= { netapp1 16 } + + blocks OBJECT IDENTIFIER ::= { netapp1 17 } + + nfscache OBJECT IDENTIFIER ::= { netapp1 18 } + + snapvault OBJECT IDENTIFIER ::= { netapp1 19 } + + ftpd OBJECT IDENTIFIER ::= { netapp1 20 } + + storage OBJECT IDENTIFIER ::= { netapp1 21 } + + network OBJECT IDENTIFIER ::= { netapp1 22 } + + sis OBJECT IDENTIFIER ::= { netapp1 23 } + + compress OBJECT IDENTIFIER ::= { netapp1 24 } + + -- -- -- -- -- -- -- -- + -- the product group -- + -- -- -- -- -- -- -- -- + + productType OBJECT-TYPE + SYNTAX INTEGER { + eisaBased(1), + pciBased(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product type representing the target platform." + ::= { product 1 } + + productVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Version String for the Software Running on + this platform." + ::= { product 2 } + + productId OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The System ID of this system." + ::= { product 3 } + + productVendor OBJECT-TYPE + SYNTAX INTEGER { + netapp(1), + dell(2), + ibm(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor id of this system, indicating the company + that has supplied the product." + ::= { product 4 } + + productModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The model name of the system. Examples + are FAS980 and FAS3050." + ::= { product 5 } + + productFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Version string for the Firmware running on + this platform." + ::= { product 6 } + + productGuiUrl OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The complete URL used to access the administrative GUI + for a browser-based interface." + ::= { product 7 } + + productApiUrl OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The complete URL used to access the administrative API + for a programmatic interface." + ::= { product 8 } + + productSerialNum OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product serial number. Returns unknown if it + cannot be determined." + ::= { product 9 } + + productPartnerSerialNum OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The partner's serial number, not applicable + if there is no partner, and unknown if it + cannot be determined." + ::= { product 10 } + + productCPUArch OBJECT-TYPE + SYNTAX INTEGER { + x86(1), + alpha(2), + mips(3), + sparc(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU architecture type of this appliance" + + + + ::= { product 11 } + + productTrapData OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This returns a static string. This object is used + as a placeholder for enterprise traps." + ::= { product 12 } + + productMachineType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The machine type of the system. Examples + are FAS980 and FAS3050." + ::= { product 13 } + + -- -- -- -- -- -- -- -- + -- the sysStat group -- + -- -- -- -- -- -- -- -- + + cpu OBJECT IDENTIFIER ::= { sysStat 1 } + + misc OBJECT IDENTIFIER ::= { sysStat 2 } + + cf OBJECT IDENTIFIER ::= { sysStat 3 } + + environment OBJECT IDENTIFIER ::= { sysStat 4 } + + nvram OBJECT IDENTIFIER ::= { sysStat 5 } + + cp OBJECT IDENTIFIER ::= { sysStat 6 } + + autosupport OBJECT IDENTIFIER ::= { sysStat 7 } + + + -- the cpu group for sysStat + + cpuUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) that the + CPU has been up since the last boot." + ::= { cpu 1 } + + cpuBusyTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) that the + CPU has been doing useful work since the last + boot." + ::= { cpu 2 } + + cpuBusyTimePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percent of time that the CPU has been doing + useful work since the last time a client requested + the cpuBusyTimePerCent." + ::= { cpu 3 } + + cpuIdleTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) that the + CPU has been idle since the last boot." + ::= { cpu 4 } + + cpuIdleTimePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percent of time that the CPU has been idle + since the last time a client requested the + cpuBusyTimePerCent." + ::= { cpu 5 } + + cpuCount OBJECT-TYPE + SYNTAX Integer32 (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CPUs in the system." + + ::= { cpu 6 } + + cpuSwitchInvocations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of sk_switch invocations." + ::= { cpu 7 } + + cpuContextSwitches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of hardware context switches." + ::= { cpu 8 } + + cpuInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of interrupts during a CP." + ::= { cpu 9 } + + + cpuNonCPInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of interrupts not during a CP." + ::= { cpu 10 } + + cpuCPInterruptPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The percentage of time handling CP interrupts." + ::= { cpu 11 } + + cpuNonCPInterruptPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The percentage of time handling non-cp interrupts." + ::= { cpu 12 } + + cpuTotalDomainSwitches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The total number of Domain Switches." + ::= { cpu 13 } + + -- the misc group for sysStat + + miscNfsOps OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of Server side NFS calls since + the last boot" + ::= { misc 1 } + + miscNetRcvdKB OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of KBytes received on all the + network interfaces, since the last boot." + ::= { misc 2 } + + miscNetSentKB OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total number of KBytes transmitted on all the + network interfaces, since the last boot." + ::= { misc 3 } + + miscGlobalStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + ok(3), + nonCritical(4), + critical(5), + nonRecoverable(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates the overall status of the appliance. + The algorithm to determine the value uses both + hardware status (e.g. the number of failed fans) and + volume status (e.g. number of volumes that are full). + The algorithm is subject to change in future releases, + but the range of values will not change." + ::= { misc 4 } + + miscHighNfsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side NFS calls since + the last boot. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 5 } + + miscLowNfsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side NFS calls since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + + ::= { misc 6 } + + miscHighCifsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side CIFS calls since + the last boot. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 7 } + + miscLowCifsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side CIFS calls since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + + ::= { misc 8 } + + miscHighHttpOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of HTTP operations received + since the last boot. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 9 } + + miscLowHttpOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of HTTP operations received + since the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + + ::= { misc 10 } + + + miscHighNetRcvdBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received on all the + network interfaces, since the last boot. This + object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 11 } + + miscLowNetRcvdBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received on all the + network interfaces, since the last boot. This + object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 12 } + + miscHighNetSentBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes transmitted on all the + network interfaces, since the last boot. This + object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 13 } + + miscLowNetSentBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes transmitted on all the + network interfaces, since the last boot. This + object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { misc 14 } + + miscHighDiskReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from disk + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 15 } + + miscLowDiskReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from disk since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 16 } + + + miscHighDiskWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to disk + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 17 } + + miscLowDiskWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to disk since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 18 } + + miscHighTapeReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from tape + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 19 } + + miscLowTapeReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from tape since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 20 } + + miscHighTapeWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to tape + since the last boot. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { misc 21 } + + miscLowTapeWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to tape since + the last boot. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { misc 22 } + + miscCacheAge OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Age in minutes of the oldest read-only blocks + in the buffer cache. This indicates how fast + read operations are cycling through system + memory; when the appliance is reading very + large files (larger than the machine's memory + size), buffer cache age will be very low." + ::= { misc 23 } + + miscCorrectedMachineChecks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of corrected machine checks since + the last boot." + + ::= { misc 24 } + + miscGlobalStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the global status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(3)." + ::= { misc 25 } + + miscWindowsSetupWizardVersion OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version number of Windows Setup Wizard + required to configure the appliance. Windows + Setup Wizard with a version number lower than + this integer is not capable of configuring the + appliance." + ::= { misc 26 } + + misc64NfsOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side NFS calls since + the last boot. This object returns all of the + 64 bit unsigned integer." + ::= { misc 27 } + + misc64CifsOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Server side CIFS calls since + the last boot. This object returns all of the + 64 bit unsigned integer." + ::= { misc 28 } + + misc64HttpOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of HTTP operations received + since the last boot. This object returns all of + the 64 bit unsigned integer." + ::= { misc 29 } + + misc64NetRcvdBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received on all the + network interfaces, since the last boot. This + object returns all of the 64 bit unsigned integer." + ::= { misc 30 } + + misc64NetSentBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes transmitted on all the + network interfaces, since the last boot. This + object returns all of the 64 bit unsigned integer." + ::= { misc 31 } + + misc64DiskReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from disk + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 32 } + + misc64DiskWriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to disk + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 33 } + + misc64TapeReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from tape + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 34 } + + misc64TapeWriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to tape + since the last boot. This object returns + all of the 64 bit unsigned integer." + ::= { misc 35 } + + -- the Clustered Failover group + + cfSettings OBJECT-TYPE + SYNTAX INTEGER { + notConfigured(1), + enabled(2), + disabled(3), + takeoverByPartnerDisabled(4), + thisNodeDead(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Clustered Failover configuration settings. + The value notConfigured(1) indicates that the + cluster is not licensed. The thisNodeDead(5) + setting indicates that this node has been + taken over." + ::= { cf 1 } + + cfState OBJECT-TYPE + SYNTAX INTEGER { + dead(1), + canTakeover(2), + cannotTakeover(3), + takeover(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Clustered Failover state." + ::= { cf 2 } + + cfCannotTakeoverCause OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + unknownReason(2), + disabledByOperator(3), + interconnectOffline(4), + disabledByPartner(5), + takeoverFailed(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The reason this node cannot takeover its + partner" + ::= { cf 3 } + + cfPartnerStatus OBJECT-TYPE + SYNTAX INTEGER { + maybeDown(1), + ok(2), + dead(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the status last returned by the + Clustered Failover partner." + ::= { cf 4 } + + cfPartnerLastStatusUpdate OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If non-zero, the absolute time of the last + update from the Clustered Failover partner." + ::= { cf 5 } + + cfPartnerName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hostname for Clustered Failover partner." + ::= { cf 6 } + + cfPartnerSysid OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System ID for Clustered Failover partner." + ::= { cf 7 } + + cfInterconnectStatus OBJECT-TYPE + SYNTAX INTEGER { + notPresent(1), + down(2), + partialFailure(3), + up(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of the interconnect. + The partialFailure(3) status indicates that + one of the links in the interconnect hardware + is down." + ::= { cf 8 } + + -- the environment group for sysStat + + envOverTemperature OBJECT-TYPE + SYNTAX INTEGER { + no(1), + yes(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of whether the hardware is + currently operating outside of its recommended + temperature range. The hardware will shutdown + if the temperature exceeds critical thresholds." + + ::= { environment 1 } + + envFailedFanCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of chassis fans which + are not operating within the recommended + RPM range." + + ::= { environment 2 } + + envFailedFanMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Text message describing the current condition of + chassis fans. This is useful only if + envFailedFanCount is not zero." + + ::= { environment 3 } + + + envFailedPowerSupplyCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of power supplies which + are in degraded mode." + + ::= { environment 4 } + + envFailedPowerSupplyMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Text message describing the state of any + power supplies which are currently degraded. + This is useful only if envFailedPowerSupplyCount + is not zero." + + ::= { environment 5 } + + -- -- -- -- -- -- -- + -- the nvram group for sysStat + + nvramBatteryStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + partiallyDischarged(2), + fullyDischarged(3), + notPresent(4), + nearEndOfLife(5), + atEndOfLife(6), + unknown(7), + overCharged(8), + fullyCharged(9) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of the current status of the + NVRAM battery or batteries. Batteries which + are fully or partially discharged may not + fully protect the system during a crash. + + The end-of-life status values are based on + the manufacturer's recommended life for the + batteries." + + ::= { nvram 1 } + + -- -- -- -- -- -- -- + -- the cp group for sysStat + + cpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) since boot + during which the system has had a consistency point + (cp) operation in progress." + ::= { cp 1 } + + cpFromTimerOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by timer." + ::= { cp 2 } + + cpFromSnapshotOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by snapshot operation." + ::= { cp 3 } + + cpFromLowWaterOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by low water mark." + ::= { cp 4 } + + cpFromHighWaterOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by high water mark." + ::= { cp 5 } + + cpFromLogFullOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by nv-log full." + ::= { cp 6 } + + cpFromCpOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of back to back consistency point + operations since boot." + ::= { cp 7 } + + cpTotalOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of consistency point operations + since boot." + ::= { cp 8 } + + cpFromFlushOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by flushing unlogged write data." + ::= { cp 9 } + + cpFromSyncOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by file system sync requests." + ::= { cp 10 } + + cpFromLowVbufOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by low virtual buffers." + ::= { cp 11 } + + cpFromCpDeferredOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of back to back consistency point + operations since boot that were deferred." + ::= { cp 12 } + + cpFromLowDatavecsOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of consistency point operations since boot + that were caused by low datavecs." + ::= { cp 13 } + + -- -- -- -- -- -- -- + -- the autosupport group for sysStat + + autosupportStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + smtpFailure(2), + postFailure(3), + smtpPostFailure(4), + unknown(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of the current status of + autosupport on the appliance. describes + the success or failure of most recent + attempts to send autosupports." + + ::= { autosupport 1 } + + autosupportStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the autosupport status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(1)." + + ::= { autosupport 2 } + + autosupportSuccessfulSends OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of autosupport messages + successfully sent since the last reset." + + ::= { autosupport 3 } + + autosupportFailedSends OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Count of the number of autosupport messages + not sent successfully since the last reset." + + ::= { autosupport 4 } + + + -- -- -- -- -- -- -- + -- the NFS group -- + -- -- -- -- -- -- -- + + curNfs OBJECT IDENTIFIER ::= { nfs 1 } + + totNfs OBJECT IDENTIFIER ::= { nfs 2 } + + nfsOptions OBJECT IDENTIFIER ::= { nfs 3 } + + + -- the curNfs group + + -- this group contains NFS statistics since the last + -- time the statistics were cleared + + rpcServ OBJECT IDENTIFIER ::= { curNfs 1 } + + nfsServ OBJECT IDENTIFIER ::= { curNfs 2 } + + nfsPerClient OBJECT IDENTIFIER ::= { curNfs 3 } + + + + -- the rpcServ group + + rpcCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received, since + the last time the statistics were cleared." + ::= { rpcServ 1 } + + rpcBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer, since the last time the statistics were + cleared." + ::= { rpcServ 2 } + + rpcNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call was not available + when it was thought to be received, since the + last time the statistics were cleared." + ::= { rpcServ 3 } + + rpcBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received with a length + shorter than a minimum-sized RPC call, since the + last time the statistics were cleared." + ::= { rpcServ 4 } + + rpcServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received whose header + could not be XDR decoded, since the last time + the statistics were cleared." + ::= { rpcServ 5 } + + rcpTcpCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received for the + TCP protocol, since the last time the statistics + were cleared." + ::= { rpcServ 6 } + + rcpTcpBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer for the TCP protocol, since the last + time the statistics were cleared." + ::= { rpcServ 7 } + + rcpTcpNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call for the TCP + protocol was not available when it was thought + to be received, since the last time the + statistics were cleared." + ::= { rpcServ 8 } + + rcpTcpBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the TCP protocol + received with a length shorter than a minimum-sized + RPC call, since the last time the statistics + were cleared." + ::= { rpcServ 9 } + + rcpTcpServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the TCP protocol + received whose header could not be XDR decoded, + since the last time the statistics were cleared." + ::= { rpcServ 10 } + + rpcUdpCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received for the + UDP protocol, since the last time the statistics + were cleared." + ::= { rpcServ 11 } + + rpcUdpBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer for the UDP protocol, since the last + time the statistics were cleared." + ::= { rpcServ 12 } + + rpcUdpNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call for the UDP + protocol was not available when it was thought + to be received, since the last time the + statistics were cleared." + ::= { rpcServ 13 } + + rpcUdpBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the UDP protocol + received with a length shorter than a minimum-sized + RPC call, since the last time the statistics + were cleared." + ::= { rpcServ 14 } + + rpcUdpServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls for the UDP protocol + received whose header could not be XDR decoded, + since the last time the statistics were cleared." + ::= { rpcServ 15 } + + + -- the nfsServ group + + nfsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received, since + the last time the statistics were cleared." + ::= { nfsServ 1 } + + nfsServBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of received NFS calls rejected, + since the last time the statistics were cleared." + ::= { nfsServ 2 } + + nfsV2 OBJECT IDENTIFIER ::= { nfsServ 3 } + + nfsV3 OBJECT IDENTIFIER ::= { nfsServ 4 } + + replyCache OBJECT IDENTIFIER ::= { nfsServ 5 } + + nfsrwStats OBJECT IDENTIFIER ::= { nfsServ 6 } + + + -- the nfsV2 group + + -- this group contains statistics for NFS + -- Version 2 calls processed since the last + -- time the statistics were cleared + + v2Calls OBJECT IDENTIFIER ::= { nfsV2 1 } + + v2Percent OBJECT IDENTIFIER ::= { nfsV2 2 } + + v2CachedCalls OBJECT IDENTIFIER ::= { nfsV2 3 } + + v2CachedPerCent OBJECT IDENTIFIER ::= { nfsV2 4 } + + + + -- the v2Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure + -- since the last time the statistics were cleared + + v2cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + since the last time the statistics were cleared." + ::= { v2Calls 1 } + + v2cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 2 } + + v2cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 3 } + + v2cRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 4 } + + v2cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 5 } + + v2cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, since the last time the + statistics were cleared." + ::= { v2Calls 6 } + + v2cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 7 } + + v2cWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 8 } + + v2cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 9 } + + v2cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 10 } + + v2cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 11 } + + v2cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 12 } + + v2cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 13 } + + v2cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 14 } + + v2cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 15 } + + v2cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 16 } + + v2cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, since the last time the statistics + were cleared." + ::= { v2Calls 17 } + + v2cStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, since the last time + the statistics were cleared." + ::= { v2Calls 18 } + + + + -- the v2Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- as a percentage of total NFS calls received, + -- since the last time the statistics were cleared + + v2pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure + as a percentage of total NFS calls received, + since the last time the statistics were cleared." + ::= { v2Percent 1 } + + v2pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 2 } + + v2pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 3 } + + v2pRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 4 } + + v2pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 5 } + + v2pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure as a percentage of total NFS + calls received, since the last time the + statistics were cleared." + ::= { v2Percent 6 } + + v2pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 7 } + + v2pWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 8 } + + v2pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 9 } + + v2pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 10 } + + v2pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 11 } + + v2pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 12 } + + v2pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 13 } + + v2pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 14 } + + v2pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 15 } + + v2pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 16 } + + v2pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure as a percentage of total NFS calls + received, since the last time the statistics + were cleared." + ::= { v2Percent 17 } + + v2pStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure as a percentage of + total NFS calls received, since the last + time the statistics were cleared." + ::= { v2Percent 18 } + + + + -- the v2CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last time the statistics + -- were cleared + + v2ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v2CachedCalls 1 } + + v2ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 2 } + + v2ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 3 } + + v2ccRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 4 } + + v2ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 5 } + + v2ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 6 } + + v2ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 7 } + + v2ccWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 8 } + + v2ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 9 } + + v2ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 10 } + + v2ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 11 } + + v2ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 12 } + + v2ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 13 } + + v2ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 14 } + + v2ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 15 } + + v2ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 16 } + + v2ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v2CachedCalls 17 } + + v2ccStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from disk, + since the last time the statistics were cleared." + ::= { v2CachedCalls 18 } + + + + -- the v2CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last time the statistics were cleared + + v2cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v2CachedPerCent 1 } + + v2cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 2 } + + v2cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 3 } + + v2cpRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 4 } + + v2cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 5 } + + v2cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 6 } + + v2cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 7 } + + v2cpWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 8 } + + v2cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 9 } + + v2cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 10 } + + v2cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 11 } + + v2cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 12 } + + v2cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 13 } + + v2cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 14 } + + v2cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 15 } + + v2cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 16 } + + v2cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v2CachedPerCent 17 } + + v2cpStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from + disk, as a percentage of the total number + of calls received for this procedure, since + the last time the statistics were cleared." + ::= { v2CachedPerCent 18 } + + + + -- the nfsV3 group + + -- this group contains statistics for NFS + -- Version 3 calls processed since the last + -- time the statistics were cleared + + v3Calls OBJECT IDENTIFIER ::= { nfsV3 1 } + + v3Percent OBJECT IDENTIFIER ::= { nfsV3 2 } + + v3CachedCalls OBJECT IDENTIFIER ::= { nfsV3 3 } + + v3CachedPerCent OBJECT IDENTIFIER ::= { nfsV3 4 } + + + + -- the v3Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure + -- since the last time the statistics were cleared + + v3cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + since the last time the statistics were cleared." + ::= { v3Calls 1 } + + v3cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 2 } + + v3cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 3 } + + v3cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 4 } + + v3cAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 5 } + + v3cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 6 } + + v3cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 7 } + + v3cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 8 } + + v3cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 9 } + + v3cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 10 } + + v3cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 11 } + + v3cMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 12 } + + v3cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 13 } + + v3cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 14 } + + v3cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, since the last time + the statistics were cleared." + ::= { v3Calls 15 } + + v3cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, since the last time the + statistics were cleared." + ::= { v3Calls 16 } + + v3cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, since the last time the statistics + were cleared." + ::= { v3Calls 17 } + + v3cReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, since the last + time the statistics were cleared." + ::= { v3Calls 18 } + + v3cFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, since the + last time the statistics were cleared." + ::= { v3Calls 19 } + + v3cFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, since the last time + the statistics were cleared." + ::= { v3Calls 20 } + + v3cPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, since the last time + the statistics were cleared." + ::= { v3Calls 21 } + + v3cCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, since + the last time the statistics were cleared." + ::= { v3Calls 22 } + + + + -- the v3Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- as a percentage of total NFS calls received, + -- since the last time the statistics were cleared + + v3pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + as a percentage of the total NFS calls + received, since the last time the statistics + were cleared." + ::= { v3Percent 1 } + + v3pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 2 } + + v3pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 3 } + + v3pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 4 } + + v3pAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access + Permission) procedure, as a percentage of + the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 5 } + + v3pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last time the + statistics were cleared." + ::= { v3Percent 6 } + + v3pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 7 } + + v3pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 8 } + + v3pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 9 } + + v3pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 10 } + + v3pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last time the + statistics were cleared." + ::= { v3Percent 11 } + + v3pMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, as a percentage of the + total NFS calls received, since the last + time the statistics were cleared." + ::= { v3Percent 12 } + + v3pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 13 } + + v3pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 14 } + + v3pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, as a percentage of + the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 15 } + + v3pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, as a percentage of + the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 16 } + + v3pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, as a percentage of the total NFS + calls received, since the last time the + statistics were cleared." + ::= { v3Percent 17 } + + v3pReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, as a percentage + of the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 18 } + + v3pFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, as a percentage + of the total NFS calls received, since the + last time the statistics were cleared." + ::= { v3Percent 19 } + + v3pFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, as a percentage of the + total NFS calls received, since the last time + the statistics were cleared." + ::= { v3Percent 20 } + + v3pPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, as a percentage of the + total NFS calls received, since the last time + the statistics were cleared." + ::= { v3Percent 21 } + + v3pCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, as a + percentage of the total NFS calls received, + since the last time the statistics were cleared." + ::= { v3Percent 22 } + + + + -- the v3CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last time the statistics + -- were cleared + + v3ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 1 } + + v3ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 2 } + + v3ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 3 } + + v3ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 4 } + + v3ccAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 5 } + + v3ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 6 } + + v3ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 7 } + + v3ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 8 } + + v3ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 9 } + + v3ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the filesystem + blocking to read from disk, since the last + time the statistics were cleared." + ::= { v3CachedCalls 10 } + + v3ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 11 } + + v3ccMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 12 } + + v3ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 13 } + + v3ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 14 } + + v3ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 15 } + + v3ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 16 } + + v3ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From + Directory) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 17 } + + v3ccReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, that did not result in + the filesystem blocking to read from disk, since + the last time the statistics were cleared." + ::= { v3CachedCalls 18 } + + v3ccFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last time the statistics + were cleared." + ::= { v3CachedCalls 19 } + + v3ccFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last time the statistics + were cleared." + ::= { v3CachedCalls 20 } + + v3ccPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + since the last time the statistics were cleared." + ::= { v3CachedCalls 21 } + + v3ccCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that did + not result in the filesystem blocking to read + from disk, since the last time the statistics + were cleared." + ::= { v3CachedCalls 22 } + + + + -- the v3CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last time the statistics were cleared + + v3cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 1 } + + v3cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 2 } + + v3cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 3 } + + v3cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 4 } + + v3cpAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last time the + statistics were cleared." + ::= { v3CachedPerCent 5 } + + v3cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 6 } + + v3cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 7 } + + v3cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 8 } + + v3cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 9 } + + v3cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 10 } + + v3cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 11 } + + v3cpMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 12 } + + v3cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 13 } + + v3cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 14 } + + v3cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 15 } + + v3cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 16 } + + v3cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 17 } + + v3cpReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 18 } + + v3cpFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read from + disk, as a percentage of the total number of + calls received for this procedure, since the + last time the statistics were cleared." + ::= { v3CachedPerCent 19 } + + v3cpFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 20 } + + v3cpPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last + time the statistics were cleared." + ::= { v3CachedPerCent 21 } + + v3cpCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that + did not result in the filesystem blocking to + read from disk, as a percentage of the total + number of calls received for this procedure, + since the last time the statistics were cleared." + ::= { v3CachedPerCent 22 } + + + + -- the replyCache group + + -- this group contains statistics related to the + -- Reply Cache processing, since the last time the + -- statistics were cleared + + rcInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped, + for calls already in progress, since the last + time the statistics were cleared." + ::= { replyCache 1 } + + rcDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped, + for replies already generated within a short + interval, since the last time the statistics + were cleared. These stats are deprecated. + A value of zero will always be returned + for these stats." + ::= { replyCache 2 } + + rcMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for which + there were no corresponding entries already in + the Reply Cache, since the last time the + statistics were cleared." + ::= { replyCache 3 } + + rcNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received that + resulted in replies being replayed from + the Reply Cache, since the last time the + statistics were cleared." + ::= { replyCache 4 } + + rcNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for calls + that resulted in this request being processed + as a new request even when a corresponding + entry existed in the Reply Cache, since the + last time the statistics were cleared." + ::= { replyCache 5 } + + rcTcpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for calls already in + progress, since the last time the statistics + were cleared." + ::= { replyCache 6 } + + rcTcpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for replies already + generated within a short interval, since the + last time the statistics were cleared. These + stats are deprecated. A value of zero will + always be returned for these stats." + ::= { replyCache 7 } + + rcTcpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for which there were no + corresponding entries already in the Reply + Cache, since the last time the statistics + were cleared." + ::= { replyCache 8 } + + rcTcpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol that resulted in replies being + replayed from the Reply Cache, since the last + time the statistics were cleared." + ::= { replyCache 9 } + + rcTcpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last time the statistics were + cleared." + ::= { replyCache 10 } + + rcUdpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for calls already in + progress, since the last time the statistics + were cleared." + ::= { replyCache 11 } + + rcUdpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for replies already + generated within a short interval, since the + last time the statistics were cleared. These + stats are deprecated. A value of zero will + always be returned for these stats." + ::= { replyCache 12 } + + rcUdpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for which there were no + corresponding entries already in the Reply + Cache, since the last time the statistics + were cleared." + ::= { replyCache 13 } + + rcUdpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol that resulted in replies being + replayed from the Reply Cache, since the last + time the statistics were cleared." + ::= { replyCache 14 } + + rcUdpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last time the statistics were + cleared." + ::= { replyCache 15 } + + -- the nfsrwStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 and 3 read and write calls made + -- since the last time the stats were zeroed. + + v2ReadStats OBJECT IDENTIFIER ::= { nfsrwStats 1 } + + v2WriteStats OBJECT IDENTIFIER ::= { nfsrwStats 2 } + + v3ReadStats OBJECT IDENTIFIER ::= { nfsrwStats 3 } + + v3WriteStats OBJECT IDENTIFIER ::= { nfsrwStats 4 } + + + -- v2ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 read calls since they were last + -- zeroed. + + v2Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 0-511 bytes." + ::= { v2ReadStats 1 } + + v2Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v2ReadStats 2 } + + v2Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v2ReadStats 3 } + + v2Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v2ReadStats 4 } + + v2Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v2ReadStats 5 } + + v2Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v2ReadStats 6 } + + v2Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v2ReadStats 7 } + + v2Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v2ReadStats 8 } + + v2Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v2ReadStats 9 } + + + -- the v2WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 write calls since they were last + -- zeroed. + + v2Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 0-511 bytes." + ::= { v2WriteStats 1 } + + v2Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v2WriteStats 2 } + + v2Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v2WriteStats 3 } + + v2Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v2WriteStats 4 } + + v2Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v2WriteStats 5 } + + v2Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v2WriteStats 6 } + + v2Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v2WriteStats 7 } + + v2Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v2WriteStats 8 } + + v2Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v2WriteStats 9 } + + + -- the v3ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 read calls since they were last + -- zeroed. + + v3Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { v3ReadStats 1 } + + v3Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v3ReadStats 2 } + + v3Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v3ReadStats 3 } + + v3Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v3ReadStats 4 } + + v3Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v3ReadStats 5 } + + v3Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v3ReadStats 6 } + + v3Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v3ReadStats 7 } + + v3Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v3ReadStats 8 } + + v3Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v3ReadStats 9 } + + + -- the v3WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 write calls since they were last + -- zeroed. + + v3Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 0-511 bytes." + ::= { v3WriteStats 1 } + + v3Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 512-1023 bytes." + ::= { v3WriteStats 2 } + + v3Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 1K-2047 bytes." + ::= { v3WriteStats 3 } + + v3Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 2K-4095 bytes." + ::= { v3WriteStats 4 } + + v3Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 4K-8191 bytes." + ::= { v3WriteStats 5 } + + v3Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 8K-16383 bytes." + ::= { v3WriteStats 6 } + + v3Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 16K-32767 bytes." + ::= { v3WriteStats 7 } + + v3Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 32K-65535 bytes." + ::= { v3WriteStats 8 } + + v3Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last zeroing + with request sizes between 64K-131071 bytes." + ::= { v3WriteStats 9 } + + + -- the per-client nfs statistics table + + pclTable OBJECT-TYPE + SYNTAX SEQUENCE OF PclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-client NFS statistics + since the last time the statistics were cleared." + ::= { nfsPerClient 1 } + + pclEntry OBJECT-TYPE + SYNTAX PclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of NFS statistics for the + referenced NFS client since the last time the + statistics were cleared." + INDEX { pclIpAddr } + ::= { pclTable 1 } + + PclEntry ::= + SEQUENCE { + pclIpAddr + IpAddress, + pclRpcCalls + Counter32, + pclRpcBadCalls + Counter32, + pclRpcNullRecvs + Counter32, + pclRpcBadLens + Counter32, + pclRpcServXDRCalls + Counter32, + pclNfsCalls + Counter32, + pclNfsServBadCalls + Counter32, + pclNfsV2Nulls + Counter32, + pclNfsV2Getattrs + Counter32, + pclNfsV2Setattrs + Counter32, + pclNfsV2Roots + Counter32, + pclNfsV2Lookups + Counter32, + pclNfsV2Readlinks + Counter32, + pclNfsV2Reads + Counter32, + pclNfsV2Wrcaches + Counter32, + pclNfsV2Writes + Counter32, + pclNfsV2Creates + Counter32, + pclNfsV2Removes + Counter32, + pclNfsV2Renames + Counter32, + pclNfsV2Links + Counter32, + pclNfsV2Symlinks + Counter32, + pclNfsV2Mkdirs + Counter32, + pclNfsV2Rmdirs + Counter32, + pclNfsV2Readdirs + Counter32, + pclNfsV2Statfss + Counter32, + pclNfsV3Nulls + Counter32, + pclNfsV3Getattrs + Counter32, + pclNfsV3Setattrs + Counter32, + pclNfsV3Lookups + Counter32, + pclNfsV3Accesss + Counter32, + pclNfsV3Readlinks + Counter32, + pclNfsV3Reads + Counter32, + pclNfsV3Writes + Counter32, + pclNfsV3Creates + Counter32, + pclNfsV3Mkdirs + Counter32, + pclNfsV3Symlinks + Counter32, + pclNfsV3Mknods + Counter32, + pclNfsV3Removes + Counter32, + pclNfsV3Rmdirs + Counter32, + pclNfsV3Renames + Counter32, + pclNfsV3Links + Counter32, + pclNfsV3Readdirs + Counter32, + pclNfsV3ReaddirPluss + Counter32, + pclNfsV3Fsstats + Counter32, + pclNfsV3Fsinfos + Counter32, + pclNfsV3Pathconfs + Counter32, + pclNfsV3Commits + Counter32, + pclPerCent + Integer32, + pclNfsV2NullPerCent + Integer32, + pclNfsV2GetattrPerCent + Integer32, + pclNfsV2SetattrPerCent + Integer32, + pclNfsV2RootPerCent + Integer32, + pclNfsV2LookupPerCent + Integer32, + pclNfsV2ReadlinkPerCent + Integer32, + pclNfsV2ReadPerCent + Integer32, + pclNfsV2WrcachePerCent + Integer32, + pclNfsV2WritePerCent + Integer32, + pclNfsV2CreatePerCent + Integer32, + pclNfsV2RemovePerCent + Integer32, + pclNfsV2RenamePerCent + Integer32, + pclNfsV2LinkPerCent + Integer32, + pclNfsV2SymlinkPerCent + Integer32, + pclNfsV2MkdirPerCent + Integer32, + pclNfsV2RmdirPerCent + Integer32, + pclNfsV2ReaddirPerCent + Integer32, + pclNfsV2StatfsPerCent + Integer32, + pclNfsV3NullPerCent + Integer32, + pclNfsV3GetattrPerCent + Integer32, + pclNfsV3SetattrPerCent + Integer32, + pclNfsV3LookupPerCent + Integer32, + pclNfsV3AccessPerCent + Integer32, + pclNfsV3ReadlinkPerCent + Integer32, + pclNfsV3ReadPerCent + Integer32, + pclNfsV3WritePerCent + Integer32, + pclNfsV3CreatePerCent + Integer32, + pclNfsV3MkdirPerCent + Integer32, + pclNfsV3SymlinkPerCent + Integer32, + pclNfsV3MknodPerCent + Integer32, + pclNfsV3RemovePerCent + Integer32, + pclNfsV3RmdirPerCent + Integer32, + pclNfsV3RenamePerCent + Integer32, + pclNfsV3LinkPerCent + Integer32, + pclNfsV3ReaddirPerCent + Integer32, + pclNfsV3ReaddirPlusPerCent + Integer32, + pclNfsV3FsstatPerCent + Integer32, + pclNfsV3FsinfoPerCent + Integer32, + pclNfsV3PathconfPerCent + Integer32, + pclNfsV3CommitPerCent + Integer32, + pclNfsV2Read512Calls + Counter32, + pclNfsV2Read1KCalls + Counter32, + pclNfsV2Read2KCalls + Counter32, + pclNfsV2Read4KCalls + Counter32, + pclNfsV2Read8KCalls + Counter32, + pclNfsV2Read16KCalls + Counter32, + pclNfsV2Read32KCalls + Counter32, + pclNfsV2Read64KCalls + Counter32, + pclNfsV2Read128KCalls + Counter32, + pclNfsV2Write512Calls + Counter32, + pclNfsV2Write1KCalls + Counter32, + pclNfsV2Write2KCalls + Counter32, + pclNfsV2Write4KCalls + Counter32, + pclNfsV2Write8KCalls + Counter32, + pclNfsV2Write16KCalls + Counter32, + pclNfsV2Write32KCalls + Counter32, + pclNfsV2Write64KCalls + Counter32, + pclNfsV2Write128KCalls + Counter32, + pclNfsV3Read512Calls + Counter32, + pclNfsV3Read1KCalls + Counter32, + pclNfsV3Read2KCalls + Counter32, + pclNfsV3Read4KCalls + Counter32, + pclNfsV3Read8KCalls + Counter32, + pclNfsV3Read16KCalls + Counter32, + pclNfsV3Read32KCalls + Counter32, + pclNfsV3Read64KCalls + Counter32, + pclNfsV3Read128KCalls + Counter32, + pclNfsV3Write512Calls + Counter32, + pclNfsV3Write1KCalls + Counter32, + pclNfsV3Write2KCalls + Counter32, + pclNfsV3Write4KCalls + Counter32, + pclNfsV3Write8KCalls + Counter32, + pclNfsV3Write16KCalls + Counter32, + pclNfsV3Write32KCalls + Counter32, + pclNfsV3Write64KCalls + Counter32, + pclNfsV3Write128KCalls + Counter32 + } + + pclIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of the referenced client." + ::= { pclEntry 1 } + + pclRpcCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received from + the referenced client, since the last time the + statistics were cleared." + ::= { pclEntry 2 } + + pclRpcBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls received from the + referenced client that were rejected by the + RPC layer, since the last time the + statistics were cleared." + ::= { pclEntry 3 } + + pclRpcNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call was not available + when it was thought to be received from + referenced client, since the last time the + statistics were cleared." + ::= { pclEntry 4 } + + pclRpcBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received from the + referenced client with a length shorter + than a minimum-sized RPC call, since the + last time the statistics were cleared." + ::= { pclEntry 5 } + + pclRpcServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received from the + referenced client whose header could not + be XDR decoded, since the last time the + statistics were cleared." + ::= { pclEntry 6 } + + pclNfsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received from + the referenced client, since the last time + the statistics were cleared." + ::= { pclEntry 7 } + + pclNfsServBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received from + the referenced client that were rejected, since + the last time the statistics were cleared." + ::= { pclEntry 8 } + + pclNfsV2Nulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_NULL + (Do Nothing) procedure, since the last time the + statistics were cleared." + ::= { pclEntry 9 } + + pclNfsV2Getattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_GETATTR + (Get File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 10 } + + pclNfsV2Setattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_SETATTR + (Set File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 11 } + + pclNfsV2Roots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_ROOT + (Get Filesystem Root) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 12 } + + pclNfsV2Lookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_LOOKUP + (Look Up File Name) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 13 } + + pclNfsV2Readlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_READLINK + (Read From Symbolic Link) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 14 } + + pclNfsV2Reads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_READ + (Read From File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 15 } + + pclNfsV2Wrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_WRITECACHE + (Write to Cache) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 16 } + + pclNfsV2Writes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_WRITE + (Write to File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 17 } + + pclNfsV2Creates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_CREATE + (Create File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 18 } + + pclNfsV2Removes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_REMOVE + (Remove File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 19 } + + pclNfsV2Renames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_RENAME + (Rename File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 20 } + + pclNfsV2Links OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_LINK + (Create Link to File) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 21 } + + pclNfsV2Symlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_SYMLINK + (Create Symbolic Link) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 22 } + + pclNfsV2Mkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_MKDIR + (Create Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 23 } + + pclNfsV2Rmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_RMDIR + (Remove Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 24 } + + pclNfsV2Readdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_READDIR + (Read From Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 25 } + + pclNfsV2Statfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + from the referenced client for the NFSPROC_STATFS + (Get Filesystem Attributes) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 26 } + + pclNfsV3Nulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_NULL + (Do Nothing) procedure, since the last time the + statistics were cleared." + ::= { pclEntry 27 } + + pclNfsV3Getattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_GETATTR + (Get File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 28 } + + pclNfsV3Setattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_SETATTR + (Set File Attributes) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 29 } + + pclNfsV3Lookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_LOOKUP + (Lookup Filename) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 30 } + + pclNfsV3Accesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_ACCESS + (Check Access Permission) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 31 } + + pclNfsV3Readlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_READLINK + (Read from Symbolic Link) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 32 } + + pclNfsV3Reads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_READ + (Read From File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 33 } + + pclNfsV3Writes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_WRITE + (Write to File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 34 } + + pclNfsV3Creates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_CREATE + (Create a File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 35 } + + pclNfsV3Mkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_MKDIR + (Create a Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 36 } + + pclNfsV3Symlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_SYMLINK + (Create a Symbolic Link) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 37 } + + pclNfsV3Mknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_MKNOD + (Create a Special Device) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 38 } + + pclNfsV3Removes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_REMOVE + (Remove a File) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 39 } + + pclNfsV3Rmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_RMDIR + (Remove a Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 40 } + + pclNfsV3Renames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_RENAME + (Rename a File or Directory) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 41 } + + pclNfsV3Links OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_LINK + (Create Link to an Object) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 42 } + + pclNfsV3Readdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_READDIR + (Read From Directory) procedure, since the last + time the statistics were cleared." + ::= { pclEntry 43 } + + pclNfsV3ReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the + NFSPROC3_READDIRPLUS (Extended Read from + Directory) procedure, since the last time + the statistics were cleared." + ::= { pclEntry 44 } + + pclNfsV3Fsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_FSSTAT + (Get Dynamic File System Information) procedure, + since the last time the statistics were cleared." + ::= { pclEntry 45 } + + pclNfsV3Fsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_FSINFO + (Get Static File System Information) procedure, + since the last time the statistics were cleared." + ::= { pclEntry 46 } + + pclNfsV3Pathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_PATHCONF + (Retrieve POSIX Information) procedure, since the + last time the statistics were cleared." + ::= { pclEntry 47 } + + pclNfsV3Commits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + from the referenced client for the NFSPROC3_COMMIT + (Commit Cached Data on a Server to Stable Storage) + procedure, since the last time the statistics were + cleared." + ::= { pclEntry 48 } + + pclPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of the total NFS calls for the + referenced client as a percentage of the + total NFS calls received from all + clients, since the last time the + statistics were cleared." + ::= { pclEntry 49 } + + pclNfsV2NullPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_NULL (Do Nothing) procedure, + as a percentage of the total calls + received from this client, since the + last time the statistics were cleared." + ::= { pclEntry 50 } + + pclNfsV2GetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_GETATTR (Get File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 51 } + + pclNfsV2SetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_SETATTR (Set File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 52 } + + pclNfsV2RootPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_ROOT (Get Filesystem Root) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 53 } + + pclNfsV2LookupPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_LOOKUP (Look Up File Name) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 54 } + + pclNfsV2ReadlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_READLINK (Read From Symbolic + Link) procedure, as a percentage of the + total calls received from this client, + since the last time the statistics were + cleared." + ::= { pclEntry 55 } + + pclNfsV2ReadPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_READ (Read From File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 56 } + + pclNfsV2WrcachePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_WRITECACHE (Write to Cache) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 57 } + + pclNfsV2WritePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_WRITE (Write to File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 58 } + + pclNfsV2CreatePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_CREATE (Create File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 59 } + + pclNfsV2RemovePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_REMOVE (Remove File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 60 } + + pclNfsV2RenamePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_RENAME (Rename File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 61 } + + pclNfsV2LinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_LINK (Create Link to File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 62 } + + pclNfsV2SymlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 63 } + + pclNfsV2MkdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_MKDIR (Create Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 64 } + + pclNfsV2RmdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_RMDIR (Remove Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 65 } + + pclNfsV2ReaddirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_READDIR (Read From Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 66 } + + pclNfsV2StatfsPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls + received from the referenced client for + the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, as a percentage + of the total calls received from this + client, since the last time the + statistics were cleared." + ::= { pclEntry 67 } + + pclNfsV3NullPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_NULL (Do Nothing) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 68 } + + pclNfsV3GetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_GETATTR (Get File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 69 } + + pclNfsV3SetattrPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_SETATTR (Set File Attributes) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 70 } + + pclNfsV3LookupPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_LOOKUP (Lookup Filename) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 71 } + + pclNfsV3AccessPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_ACCESS (Check Access Permission) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 72 } + + pclNfsV3ReadlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 73 } + + pclNfsV3ReadPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READ (Read From File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 74 } + + pclNfsV3WritePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_WRITE (Write to File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 75 } + + pclNfsV3CreatePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_CREATE (Create a File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 76 } + + pclNfsV3MkdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_MKDIR (Create a Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 77 } + + pclNfsV3SymlinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 78 } + + pclNfsV3MknodPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_MKNOD (Create a Special + Device) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 79 } + + pclNfsV3RemovePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_REMOVE (Remove a File) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 80 } + + pclNfsV3RmdirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_RMDIR (Remove a Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 81 } + + pclNfsV3RenamePerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_RENAME (Rename a File or + Directory) procedure, as a percentage of + the total calls received from this client, + since the last time the statistics were + cleared." + ::= { pclEntry 82 } + + pclNfsV3LinkPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_LINK (Create Link to an Object) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 83 } + + pclNfsV3ReaddirPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READDIR (Read From Directory) + procedure, as a percentage of the total + calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 84 } + + pclNfsV3ReaddirPlusPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_READDIRPLUS (Extended Read from + Directory) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 85 } + + pclNfsV3FsstatPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, as a + percentage of the total calls received + from this client, since the last time + the statistics were cleared." + ::= { pclEntry 86 } + + pclNfsV3FsinfoPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_FSINFO (Get Static File System + Information) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 87 } + + pclNfsV3PathconfPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, as a percentage of the + total calls received from this client, since + the last time the statistics were cleared." + ::= { pclEntry 88 } + + pclNfsV3CommitPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls + received from the referenced client for + the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, as + a percentage of the total calls received + from this client, since the last time the + statistics were cleared." + ::= { pclEntry 89 } + + pclNfsV2Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 90 } + + pclNfsV2Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 91 } + + pclNfsV2Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 92 } + + pclNfsV2Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 93 } + + pclNfsV2Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 94 } + + pclNfsV2Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 95 } + + pclNfsV2Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 96 } + + pclNfsV2Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 97 } + + pclNfsV2Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 98 } + + pclNfsV2Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 99 } + + pclNfsV2Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 100 } + + pclNfsV2Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 101 } + + pclNfsV2Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 102 } + + pclNfsV2Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 103 } + + pclNfsV2Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 104 } + + pclNfsV2Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 105 } + + pclNfsV2Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 106 } + + pclNfsV2Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 107 } + + pclNfsV3Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 108 } + + pclNfsV3Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 109 } + + pclNfsV3Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 110 } + + pclNfsV3Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 111 } + + pclNfsV3Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 112 } + + pclNfsV3Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 113 } + + pclNfsV3Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 114 } + + pclNfsV3Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 115 } + + pclNfsV3Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 116 } + + pclNfsV3Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 0-511 bytes + received from this client." + ::= { pclEntry 117 } + + pclNfsV3Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 512-1023 bytes + received from this client." + ::= { pclEntry 118 } + + pclNfsV3Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 1K-2047 bytes + received from this client." + ::= { pclEntry 119 } + + pclNfsV3Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 2K-4095 bytes + received from this client." + ::= { pclEntry 120 } + + pclNfsV3Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 4K-8191 bytes + received from this client." + ::= { pclEntry 121 } + + pclNfsV3Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 8K-16383 bytes + received from this client." + ::= { pclEntry 122 } + + pclNfsV3Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 16K-32767 bytes + received from this client." + ::= { pclEntry 123 } + + pclNfsV3Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 32K-65535 bytes + received from this client." + ::= { pclEntry 124 } + + pclNfsV3Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + with request sizes between 64K-131071 bytes + received from this client." + ::= { pclEntry 125 } + + + pclNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the pclTable table." + + ::= { nfsPerClient 2 } + + + + -- the totNfs group + + -- this group contains the NFS statistics since the + -- last boot + + trpcServ OBJECT IDENTIFIER ::= { totNfs 1 } + + tnfsServ OBJECT IDENTIFIER ::= { totNfs 2 } + + + + -- the trpcServ group + + trpcCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RPC calls received, + since the last boot." + ::= { trpcServ 1 } + + trpcBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of calls rejected by the RPC + layer, since the last boot." + ::= { trpcServ 2 } + + trpcNullRecvs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times an RPC call was not + available when it was thought to be received, + since the last boot." + ::= { trpcServ 3 } + + trpcBadLens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received with a length + shorter than a minimum-sized RPC call, since + the last boot." + ::= { trpcServ 4 } + + trpcServXDRCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RPC calls received whose header + could not be XDR decoded, since the last boot." + ::= { trpcServ 5 } + + + + -- the tnfsServ group + + tnfsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of NFS calls received, since + last boot." + ::= { tnfsServ 1 } + + tnfsServBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of received NFS calls rejected, + since last boot." + ::= { tnfsServ 2 } + + tnfsV2 OBJECT IDENTIFIER ::= { tnfsServ 3 } + + tnfsV3 OBJECT IDENTIFIER ::= { tnfsServ 4 } + + treplyCache OBJECT IDENTIFIER ::= { tnfsServ 5 } + + tnfsrwStats OBJECT IDENTIFIER ::= { tnfsServ 6 } + + + + -- the tnfsV2 group + + -- this group contains statistics for NFS + -- Version 2 calls processed since the last boot + + tv2Calls OBJECT IDENTIFIER ::= { tnfsV2 1 } + + tv2Percent OBJECT IDENTIFIER ::= { tnfsV2 2 } + + tv2CachedCalls OBJECT IDENTIFIER ::= { tnfsV2 3 } + + tv2CachedPerCent OBJECT IDENTIFIER ::= { tnfsV2 4 } + + + -- the tv2Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure + -- since the last boot + + tv2cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + since the last boot." + ::= { tv2Calls 1 } + + tv2cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, since the last boot." + ::= { tv2Calls 2 } + + tv2cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, since the the last boot." + ::= { tv2Calls 3 } + + tv2cRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, since the last boot." + ::= { tv2Calls 4 } + + tv2cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, since the last boot." + ::= { tv2Calls 5 } + + tv2cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, since the last boot." + ::= { tv2Calls 6 } + + tv2cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, since the last boot." + ::= { tv2Calls 7 } + + tv2cWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, since the last boot." + ::= { tv2Calls 8 } + + tv2cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, since the last boot." + ::= { tv2Calls 9 } + + tv2cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, since the last boot." + ::= { tv2Calls 10 } + + tv2cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, since the last boot." + ::= { tv2Calls 11 } + + tv2cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, since the last boot." + ::= { tv2Calls 12 } + + tv2cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, since the last boot." + ::= { tv2Calls 13 } + + tv2cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, since the last boot." + ::= { tv2Calls 14 } + + tv2cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, since the last boot." + ::= { tv2Calls 15 } + + tv2cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, since the last boot." + ::= { tv2Calls 16 } + + tv2cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, since the last boot." + ::= { tv2Calls 17 } + + tv2cStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, since the last boot." + ::= { tv2Calls 18 } + + + + -- the tv2Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- as a percentage of total NFS calls received, + -- since the last boot + + tv2pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure + as a percentage of total NFS calls received, + since the last boot." + ::= { tv2Percent 1 } + + tv2pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 2 } + + tv2pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 3 } + + tv2pRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 4 } + + tv2pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 5 } + + tv2pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure as a percentage of total NFS + calls received, since the last boot." + ::= { tv2Percent 6 } + + tv2pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 7 } + + tv2pWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 8 } + + tv2pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 9 } + + tv2pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 10 } + + tv2pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 11 } + + tv2pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 12 } + + tv2pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 13 } + + tv2pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 14 } + + tv2pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 15 } + + tv2pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 16 } + + tv2pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure as a percentage of total NFS calls + received, since the last boot." + ::= { tv2Percent 17 } + + tv2pStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure as a percentage of + total NFS calls received, since the last boot." + ::= { tv2Percent 18 } + + + + -- the tv2CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last boot + + tv2ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem blocking + to read from disk, since the last boot." + ::= { tv2CachedCalls 1 } + + tv2ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 2 } + + tv2ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 3 } + + tv2ccRoots OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 4 } + + tv2ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 5 } + + tv2ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 6 } + + tv2ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 7 } + + tv2ccWrcaches OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 8 } + + tv2ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 9 } + + tv2ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 10 } + + tv2ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 11 } + + tv2ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 12 } + + tv2ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 13 } + + tv2ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic Link) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 14 } + + tv2ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 15 } + + tv2ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 16 } + + tv2ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 17 } + + tv2ccStatfss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from disk, + since the last boot." + ::= { tv2CachedCalls 18 } + + + + -- the tv2CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 2 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last boot + + tv2cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv2CachedPerCent 1 } + + tv2cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_GETATTR (Get File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 2 } + + tv2cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SETATTR (Set File Attributes) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 3 } + + tv2cpRoots OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_ROOT (Get Filesystem Root) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 4 } + + tv2cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LOOKUP (Look Up File Name) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 5 } + + tv2cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READLINK (Read From Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 6 } + + tv2cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 7 } + + tv2cpWrcaches OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITECACHE (Write to Cache) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 8 } + + tv2cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 9 } + + tv2cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_CREATE (Create File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 10 } + + tv2cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_REMOVE (Remove File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 11 } + + tv2cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RENAME (Rename File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 12 } + + tv2cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_LINK (Create Link to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 13 } + + tv2cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_SYMLINK (Create Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 14 } + + tv2cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_MKDIR (Create Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 15 } + + tv2cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_RMDIR (Remove Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 16 } + + tv2cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv2CachedPerCent 17 } + + tv2cpStatfss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 calls received + for the NFSPROC_STATFS (Get Filesystem + Attributes) procedure, that did not result + in the filesystem blocking to read from + disk, as a percentage of the total number + of calls received for this procedure, + since the last boot." + ::= { tv2CachedPerCent 18 } + + + -- the tnfsV3 group + + -- this group contains statistics for NFS + -- Version 3 calls processed since the last boot + + tv3Calls OBJECT IDENTIFIER ::= { tnfsV3 1 } + + tv3Percent OBJECT IDENTIFIER ::= { tnfsV3 2 } + + tv3CachedCalls OBJECT IDENTIFIER ::= { tnfsV3 3 } + + tv3CachedPerCent OBJECT IDENTIFIER ::= { tnfsV3 4 } + + + -- the tv3Calls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure + -- since the last boot + + tv3cNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + since the last boot." + ::= { tv3Calls 1 } + + tv3cGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, since the last boot." + ::= { tv3Calls 2 } + + tv3cSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, since the last boot." + ::= { tv3Calls 3 } + + tv3cLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, since the last boot." + ::= { tv3Calls 4 } + + tv3cAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, since the last boot." + ::= { tv3Calls 5 } + + tv3cReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, since the last boot." + ::= { tv3Calls 6 } + + tv3cReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, since the last boot." + ::= { tv3Calls 7 } + + tv3cWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, since the last boot." + ::= { tv3Calls 8 } + + tv3cCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, since the last boot." + ::= { tv3Calls 9 } + + tv3cMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, since the last boot." + ::= { tv3Calls 10 } + + tv3cSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, since the last boot." + ::= { tv3Calls 11 } + + tv3cMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, since the last boot." + ::= { tv3Calls 12 } + + tv3cRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, since the last boot." + ::= { tv3Calls 13 } + + tv3cRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, since the last boot." + ::= { tv3Calls 14 } + + tv3cRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, since the last boot." + ::= { tv3Calls 15 } + + tv3cLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, since the last boot." + ::= { tv3Calls 16 } + + tv3cReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, since the last boot." + ::= { tv3Calls 17 } + + tv3cReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, since the last boot." + ::= { tv3Calls 18 } + + tv3cFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, since the + last boot." + ::= { tv3Calls 19 } + + tv3cFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, since the last boot." + ::= { tv3Calls 20 } + + tv3cPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, since the last boot." + ::= { tv3Calls 21 } + + tv3cCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, since + the last boot." + ::= { tv3Calls 22 } + + + + -- the tv3Percent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- as a percentage of total NFS calls received, + -- since the last boot + + tv3pNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + as a percentage of the total NFS calls + received, since the last boot." + ::= { tv3Percent 1 } + + tv3pGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 2 } + + tv3pSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 3 } + + tv3pLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 4 } + + tv3pAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access + Permission) procedure, as a percentage of + the total NFS calls received, since the last boot." + ::= { tv3Percent 5 } + + tv3pReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last boot." + ::= { tv3Percent 6 } + + tv3pReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 7 } + + tv3pWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 8 } + + tv3pCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 9 } + + tv3pMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 10 } + + tv3pSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, as a percentage of the total + NFS calls received, since the last boot." + ::= { tv3Percent 11 } + + tv3pMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, as a percentage of the + total NFS calls received, since the last boot." + ::= { tv3Percent 12 } + + tv3pRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 13 } + + tv3pRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 14 } + + tv3pRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, as a percentage of + the total NFS calls received, since the + last boot." + ::= { tv3Percent 15 } + + tv3pLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, as a percentage of + the total NFS calls received, since the + last boot." + ::= { tv3Percent 16 } + + tv3pReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, as a percentage of the total NFS + calls received, since the last boot." + ::= { tv3Percent 17 } + + tv3pReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, as a percentage + of the total NFS calls received, since the + last boot." + ::= { tv3Percent 18 } + + tv3pFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, as a percentage + of the total NFS calls received, since the + last boot." + ::= { tv3Percent 19 } + + tv3pFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, as a percentage of the + total NFS calls received, since the last boot." + ::= { tv3Percent 20 } + + tv3pPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, as a percentage of the + total NFS calls received, since the last boot." + ::= { tv3Percent 21 } + + tv3pCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, as a + percentage of the total NFS calls received, + since the last boot." + ::= { tv3Percent 22 } + + + + -- the tv3CachedCalls group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, since the last boot + + tv3ccNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem blocking + to read from disk, since the last boot." + ::= { tv3CachedCalls 1 } + + tv3ccGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 2 } + + tv3ccSetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 3 } + + tv3ccLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 4 } + + tv3ccAccesss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 5 } + + tv3ccReadlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last boot." + ::= { tv3CachedCalls 6 } + + tv3ccReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 7 } + + tv3ccWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 8 } + + tv3ccCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 9 } + + tv3ccMkdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the filesystem + blocking to read from disk, since the last boot." + ::= { tv3CachedCalls 10 } + + tv3ccSymlinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, since + the last boot." + ::= { tv3CachedCalls 11 } + + tv3ccMknods OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, since + the last boot." + ::= { tv3CachedCalls 12 } + + tv3ccRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 13 } + + tv3ccRmdirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 14 } + + tv3ccRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 15 } + + tv3ccLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 16 } + + tv3ccReaddirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 17 } + + tv3ccReaddirPluss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIRPLUS (Extended Read + from Directory) procedure, that did not result in + the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 18 } + + tv3ccFsstats OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last boot." + ::= { tv3CachedCalls 19 } + + tv3ccFsinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File + System Information) procedure, that did not + result in the filesystem blocking to read + from disk, since the last boot." + ::= { tv3CachedCalls 20 } + + tv3ccPathconfs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + since the last boot." + ::= { tv3CachedCalls 21 } + + tv3ccCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that did + not result in the filesystem blocking to read + from disk, since the last boot." + ::= { tv3CachedCalls 22 } + + + + -- the tv3CachedPerCent group + + -- this group contains statistics for the number of + -- calls received for each NFS Version 3 procedure, + -- that did not result in the filesystem blocking to + -- read from disk, as a percentage of the total + -- number of calls received for that procedure, + -- since the last boot + + tv3cpNulls OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_NULL (Do Nothing) procedure, + that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 1 } + + tv3cpGetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_GETATTR (Get File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 2 } + + tv3cpSetattrs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SETATTR (Set File Attributes) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 3 } + + tv3cpLookups OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LOOKUP (Lookup Filename) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 4 } + + tv3cpAccesss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_ACCESS (Check Access Permission) + procedure, that did not result in the filesystem + blocking to read from disk, as a percentage + of the total number of calls received for + this procedure, since the last boot." + ::= { tv3CachedPerCent 5 } + + tv3cpReadlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READLINK (Read from Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last + last boot." + ::= { tv3CachedPerCent 6 } + + tv3cpReads OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READ (Read From File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 7 } + + tv3cpWrites OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_WRITE (Write to File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 8 } + + tv3cpCreates OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_CREATE (Create a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 9 } + + tv3cpMkdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKDIR (Create a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 10 } + + tv3cpSymlinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_SYMLINK (Create a Symbolic + Link) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 11 } + + tv3cpMknods OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_MKNOD (Create a Special + Device) procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 12 } + + tv3cpRemoves OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_REMOVE (Remove a File) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 13 } + + tv3cpRmdirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RMDIR (Remove a Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 14 } + + tv3cpRenames OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_RENAME (Rename a File or + Directory) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 15 } + + tv3cpLinks OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_LINK (Create Link to an + Object) procedure, that did not result in + the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 16 } + + tv3cpReaddirs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READDIR (Read From Directory) + procedure, that did not result in the + filesystem blocking to read from disk, as a + percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 17 } + + tv3cpReaddirPluss OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_READIRPLUS (Extended Read + from Directory) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 18 } + + tv3cpFsstats OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSSTAT (Get Dynamic File + System Information) procedure, that did not + result in the filesystem blocking to read from + disk, as a percentage of the total number of + calls received for this procedure, since the + last boot." + ::= { tv3CachedPerCent 19 } + + tv3cpFsinfos OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_FSINFO (Get Static File System + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 20 } + + tv3cpPathconfs OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_PATHCONF (Retrieve POSIX + Information) procedure, that did not result + in the filesystem blocking to read from disk, + as a percentage of the total number of calls + received for this procedure, since the last boot." + ::= { tv3CachedPerCent 21 } + + tv3cpCommits OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 calls received + for the NFSPROC3_COMMIT (Commit Cached Data on + a Server to Stable Storage) procedure, that + did not result in the filesystem blocking to + read from disk, as a percentage of the total + number of calls received for this procedure, + since the last boot." + ::= { tv3CachedPerCent 22 } + + + -- the treplyCache group + + -- this group contains statistics related to the + -- Reply Cache processing, since the last boot + + trcInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped, for + calls already in progress, since the last boot." + ::= { treplyCache 1 } + + trcDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped, + for replies already generated within a short + interval, since the last boot. These stats are + deprecated. A value of zero will always be + returned for these stats." + ::= { treplyCache 2 } + + trcMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for which + there were no corresponding entries already in + the Reply Cache, since the last boot." + ::= { treplyCache 3 } + + trcNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received that + resulted in replies being replayed from + the Reply Cache, since the last boot." + ::= { treplyCache 4 } + + trcNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for calls + that resulted in this request being processed + as a new request even when a corresponding + entry existed in the Reply Cache, since the + last boot." + ::= { treplyCache 5 } + + trcTcpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for calls already in + progress, since the last boot." + ::= { treplyCache 6 } + + trcTcpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the TCP protocol, for replies already + generated within a short interval, since the + last boot. These stats are deprecated. A value + of zero will always be returned for these stats." + ::= { treplyCache 7 } + + trcTcpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for which there were no corresponding + entries already in the Reply Cache, since the + last boot." + ::= { treplyCache 8 } + + trcTcpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol that resulted in replies being + replayed from the Reply Cache, since the + last boot." + ::= { treplyCache 9 } + + trcTcpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + TCP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last boot." + ::= { treplyCache 10 } + + trcUdpInProgressHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for calls already in + progress, since the last boot." + ::= { treplyCache 11 } + + trcUdpDelayHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of NFS requests that were dropped + for the UDP protocol, for replies already + generated within a short interval, since the + last boot. These stats are deprecated. A value + of zero will always be returned for these stats." + ::= { treplyCache 12 } + + trcUdpMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for which there were no corresponding + entries already in the Reply Cache, since the + last boot." + ::= { treplyCache 13 } + + trcUdpNonIdemDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol that resulted in replies being + replayed from the Reply Cache, since the + last boot." + ::= { treplyCache 14 } + + trcUdpNonIdemNotDoneHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS requests received for the + UDP protocol for calls that resulted in this + request being processed as a new request even + when a corresponding entry existed in the Reply + Cache, since the last boot." + ::= { treplyCache 15 } + + -- the tnfsrwStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 and 3 read and write calls since + -- last boot. + + tv2ReadStats OBJECT IDENTIFIER ::= { tnfsrwStats 1 } + + tv2WriteStats OBJECT IDENTIFIER ::= { tnfsrwStats 2 } + + tv3ReadStats OBJECT IDENTIFIER ::= { tnfsrwStats 3 } + + tv3WriteStats OBJECT IDENTIFIER ::= { tnfsrwStats 4 } + + + -- the tv2ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 read calls since last boot. + + tv2Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv2ReadStats 1 } + + tv2Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv2ReadStats 2 } + + tv2Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv2ReadStats 3 } + + + tv2Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv2ReadStats 4 } + + tv2Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv2ReadStats 5 } + + tv2Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv2ReadStats 6 } + + tv2Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv2ReadStats 7 } + + tv2Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv2ReadStats 8 } + + tv2Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 read calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv2ReadStats 9 } + + + -- the tv2WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 2 write calls since last boot. + + tv2Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv2WriteStats 1 } + + tv2Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv2WriteStats 2 } + + tv2Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv2WriteStats 3 } + + + tv2Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv2WriteStats 4 } + + tv2Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv2WriteStats 5 } + + tv2Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv2WriteStats 6 } + + tv2Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv2WriteStats 7 } + + tv2Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv2WriteStats 8 } + + tv2Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 2 write calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv2WriteStats 9 } + + + -- the tv3ReadStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 read calls since last boot. + + tv3Read512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv3ReadStats 1 } + + tv3Read1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv3ReadStats 2 } + + tv3Read2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv3ReadStats 3 } + + + tv3Read4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv3ReadStats 4 } + + tv3Read8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv3ReadStats 5 } + + tv3Read16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv3ReadStats 6 } + + tv3Read32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv3ReadStats 7 } + + tv3Read64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv3ReadStats 8 } + + tv3Read128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 read calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv3ReadStats 9 } + + + -- the tv3WriteStats group + + -- this group contains statistics for the sizes of + -- NFS version 3 write calls since last boot. + + tv3Write512Calls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 0-511 bytes." + ::= { tv3WriteStats 1 } + + tv3Write1KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 512-1023 bytes." + ::= { tv3WriteStats 2 } + + tv3Write2KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 1K-2047 bytes." + ::= { tv3WriteStats 3 } + + tv3Write4KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 2K-4095 bytes." + ::= { tv3WriteStats 4 } + + tv3Write8KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 4K-8191 bytes." + ::= { tv3WriteStats 5 } + + tv3Write16KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 8K-16383 bytes." + ::= { tv3WriteStats 6 } + + tv3Write32KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 16K-32767 bytes." + ::= { tv3WriteStats 7 } + + tv3Write64KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 32K-65535 bytes." + ::= { tv3WriteStats 8 } + + tv3Write128KCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of NFS Version 3 write calls + received by the server since last boot + with request sizes between 64K-131071 bytes." + ::= { tv3WriteStats 9 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the nfsOptions group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + nfsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the nfs protocol is licensed on the + filer." + ::= { nfsOptions 1 } + + + -- -- -- -- -- -- -- + -- the quota group -- + -- -- -- -- -- -- -- + + quotaState OBJECT-TYPE + SYNTAX INTEGER { + quotaStateOff(1), + quotaStateOn(2), + quotaStateInit(3) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Indicates whether the root volume's quotas are ON, + OFF or initializing. This object is deprecated - + use qvStateTable.qvStateStat instead." + ::= { quota 1 } + + quotaInitPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Indicates percentage of root volume quota + computation done while quotas are in initializing + state. This object is deprecated - use + qvStateTable.qvInitPercent instead." + ::= { quota 2 } + + + -- the old volume-unaware quota report table. DEPRECATED + + qrTable OBJECT-TYPE + SYNTAX SEQUENCE OF QrEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for each user or group with + a quota in /etc/quotas. All quotas are displayed + regardless of volume, and no volume information + is given. This table is deprecated - use qrVTable + instead." + ::= { quota 3 } + + qrEntry OBJECT-TYPE + SYNTAX QrEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for a referenced entry + with a quota in the file /etc/quotas. + All quotas are displayed regardless of volume, + and no volume information is given. This object is + deprecated - use qrVEntry instead." + + INDEX { qrIndex } + ::= { qrTable 1 } + + QrEntry ::= + SEQUENCE { + qrIndex + Integer32, + qrType + Integer32, + qrId + Integer32, + qrKBytesUsed + Integer32, + qrKBytesLimit + Integer32, + qrFilesUsed + Integer32, + qrFileLimit + Integer32, + qrPathName + DisplayString + } + + qrIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry in the + file /etc/quotas." + ::= { qrEntry 1 } + + qrType OBJECT-TYPE + SYNTAX INTEGER { + qrTypeUser(1), + qrTypeGroup(2), + qrTypeTree(3), + qrTypeUnknown(4) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Identifies the kind of quota for this qrEntry." + ::= { qrEntry 2 } + + qrId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The UID (user's numerical ID) or the GID (numerical + ID of the group that a user belongs to), as + applicable, associated with this qrEntry." + ::= { qrEntry 3 } + + qrKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of KBytes used for this + qrEntry." + ::= { qrEntry 4 } + + qrKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of KBytes that can be used for this + qrEntry." + ::= { qrEntry 5 } + + qrFilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of files used for this + qrEntry." + ::= { qrEntry 6 } + + qrFileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of files that can be used for this + qrEntry." + ::= { qrEntry 7 } + + qrPathName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A textual string that contains the path + corresponding to this qrEntry." + ::= { qrEntry 8 } + + -- quota volume state table + + qvStateTable OBJECT-TYPE + SYNTAX SEQUENCE OF QvStateEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current quota state of + each volume in the system." + ::= { quota 4 } + + qvStateEntry OBJECT-TYPE + SYNTAX QvStateEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current quota state of + each volume in the system." + INDEX { qvStateVolume } + ::= { qvStateTable 1 } + + QvStateEntry ::= + SEQUENCE { + qvStateVolume + Integer32, + qvStateName + DisplayString, + qvStateStat + Integer32, + qvStateInitPercent + Integer32 + } + + qvStateVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this volume. The mapping + of this number to actual volumes may change if + volumes are added or deleted. Use qvStateName to + unambiguously identify a volume. The mapping + established by this object is the same as + the mapping of qrVVolume (below) to actual volumes. + For instance, if a qvStateVolume value of '5' + represents the volume 'vol2', a value of '5' + in qrVVolume also represents the volume 'vol2'." + ::= { qvStateEntry 1 } + + qvStateName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the name of this volume." + ::= { qvStateEntry 2 } + + qvStateStat OBJECT-TYPE + SYNTAX INTEGER { + quotaStateOff(1), + quotaStateOn(2), + quotaStateInit(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether quotas are ON, OFF or + initializing." + ::= { qvStateEntry 3 } + + qvStateInitPercent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates percentage of quota computation done + while quotas are in initializing state." + ::= { qvStateEntry 4 } + + + -- multi-volume-aware quota table + -- THIS IS DEPRECATED, please use qrV2Table instead + + qrVTable OBJECT-TYPE + SYNTAX SEQUENCE OF QrVEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for each user or group with + a quota in /etc/quotas." + ::= { quota 5 } + + + qrVEntry OBJECT-TYPE + SYNTAX QrVEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the current file and + space consumption for a referenced entry + with a quota in the file /etc/quotas. Indices + select the volume of the quota and the quota entry + itself." + INDEX { qrVVolume, qrVIndex } + ::= { qrVTable 1 } + + QrVEntry ::= + SEQUENCE { + qrVIndex + Integer32, + qrVType + Integer32, + qrVId + Integer32, + qrVKBytesUsed + Integer32, + qrVKBytesLimit + Integer32, + qrVFilesUsed + Integer32, + qrVFileLimit + Integer32, + qrVPathName + DisplayString, + qrVVolume + Integer32, + qrVTree + DisplayString, + qrVIdType + Integer32, + qrVSid + DisplayString, + qrVKBytesThreshold + Integer32, + qrVKBytesLimitSoft + Integer32, + qrVFileLimitSoft + Integer32 + } + + qrVIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry in the + file /etc/quotas in the given volume." + ::= { qrVEntry 1 } + + qrVType OBJECT-TYPE + SYNTAX INTEGER { + qrVTypeUser(1), + qrVTypeGroup(2), + qrVTypeTree(3), + qrVTypeUserDefault(4), + qrVTypeGroupDefault(5), + qrVTypeUnknown(6) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Identifies the kind of quota for this qrVEntry." + ::= { qrVEntry 2 } + + qrVId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The UID (user's numerical ID) or the GID (numerical + ID of the group that a user belongs to), as + applicable, associated with this qrVEntry. Check + the qrVIdType field to see if this field is valid." + ::= { qrVEntry 3 } + + qrVKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of KBytes used for this + qrVEntry." + ::= { qrVEntry 4 } + + qrVKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of KBytes that can be used for this + qrVEntry." + ::= { qrVEntry 5 } + + qrVFilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The current number of files used for this + qrVEntry." + ::= { qrVEntry 6 } + + qrVFileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of files that can be used for this + qrVEntry." + ::= { qrVEntry 7 } + + qrVPathName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A textual string that contains the path + corresponding to this qrVEntry." + ::= { qrVEntry 8 } + + qrVVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies the volume for which + this quota is in effect on. The volume that this + value represents can be determined by checking + the value of qvStateName (above) with + qvStateVolume set to the value found here." + ::= { qrVEntry 9 } + + qrVTree OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A string that indicates which qtree this quota + belongs to." + ::= { qrVEntry 10 } + + qrVIdType OBJECT-TYPE + SYNTAX INTEGER { + qrVIdValid(1), + qrVSidValid(2) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A value that indicates which ID field is valid." + ::= { qrVEntry 11} + + qrVSid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The one or more IDs associated with this qrVEntry. + If the qrVentry is associated with a Windows ID, the + text form of the Windows ID (the SID) is here. If + the qrVEntry is associated with more than one id, + this contains a blank separated list of those IDs. + Check the qrVIdType field to see if this field is + valid." + ::= { qrVEntry 12 } + + qrVKBytesThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message." + ::= { qrVEntry 13 } + + qrVKBytesLimitSoft OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of KBytes that can be used for this + qrVEntry before a warning message and SNMP + trap is produced." + ::= { qrVEntry 14 } + + qrVFileLimitSoft OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The limit of files that can be used for this + qrVEntry before a warning message and SNMP + trap is produced." + ::= { qrVEntry 15 } + + -- + -- multi-volume-aware quota table with 64 bit values + -- + + qrV2Table OBJECT-TYPE + SYNTAX SEQUENCE OF QrV2Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current file and + space consumption for each user or group with + a quota in /etc/quotas." + ::= { quota 6 } + + + qrV2Entry OBJECT-TYPE + SYNTAX QrV2Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the current file and + space consumption for a referenced entry + with a quota in the file /etc/quotas. Indices + select the volume of the quota and the quota entry + itself." + INDEX { qrV2Volume, qrV2Index } + ::= { qrV2Table 1 } + + QrV2Entry ::= + SEQUENCE { + qrV2Index + Integer32, + qrV2Type + Integer32, + qrV2Id + Integer32, + qrV2HighKBytesUsed + Integer32, + qrV2LowKBytesUsed + Integer32, + qrV2QuotaUnlimited + Integer32, + qrV2HighKBytesLimit + Integer32, + qrV2LowKBytesLimit + Integer32, + qrV2FilesUsed + Integer32, + qrV2FileQuotaUnlimited + Integer32, + qrV2FileLimit + Integer32, + qrV2PathName + DisplayString, + qrV2Volume + Integer32, + qrV2Tree + DisplayString, + qrV2IdType + Integer32, + qrV2Sid + DisplayString, + qrV2ThresholdUnlimited + Integer32, + qrV2HighKBytesThreshold + Integer32, + qrV2LowKBytesThreshold + Integer32, + qrV2SoftQuotaUnlimited + Integer32, + qrV2HighKBytesSoftLimit + Integer32, + qrV2LowKBytesSoftLimit + Integer32, + qrV2SoftFileQuotaUnlimited + Integer32, + qrV2SoftFileLimit + Integer32, + qrV264KBytesUsed + Counter64, + qrV264KBytesLimit + Counter64, + qrV264KBytesThreshold + Counter64, + qrV264KBytesSoftLimit + Counter64 + } + + qrV2Index OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry in the + file /etc/quotas in the given volume." + ::= { qrV2Entry 1 } + + qrV2Type OBJECT-TYPE + SYNTAX INTEGER { + qrV2TypeUser(1), + qrV2TypeGroup(2), + qrV2TypeTree(3), + qrV2TypeUserDefault(4), + qrV2TypeGroupDefault(5), + qrV2TypeUnknown(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identifies the kind of quota for this qrV2Entry." + ::= { qrV2Entry 2 } + + qrV2Id OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The UID (user's numerical ID) or the GID (numerical + ID of the group that a user belongs to), as + applicable, associated with this qrV2Entry. Check + the qrV2IdType field to see if this field is valid." + ::= { qrV2Entry 3 } + + qrV2HighKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of KBytes used for this + qrV2Entry. This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 4 } + + qrV2LowKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of KBytes used for this + qrV2Entry. This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 5 } + + qrV2QuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + size based quota limit for this qrV2Entry is unlimited. + If false(1) then qrV2*KBytesLimit OID's are valid, + if true(0) then qrV2*KBytesLimit OID's are unused + and will return 0." + ::= { qrV2Entry 6 } + + qrV2HighKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry. This object returns the most significant + 32 bits of the 64 bit unsigned integer. This will + return 0 if qrV2QuotaUnlimited is true." + ::= { qrV2Entry 7 } + + qrV2LowKBytesLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry. This object returns the least significant + 32 bits of the 64 bit unsigned integer. This will + return 0 if qrV2QuotaUnlimited is true." + ::= { qrV2Entry 8 } + + qrV2FilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of files used for this + qrV2Entry." + ::= { qrV2Entry 9 } + + qrV2FileQuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + file based quota limit for this qrV2Entry is unlimited. + If false(1) then qrV2FileLimit is valid, if true(0) + qrV2FileLimit will return 0." + ::= { qrV2Entry 10 } + + + qrV2FileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of files that can be used for this + qrV2Entry." + ::= { qrV2Entry 11 } + + qrV2PathName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string that contains the path + corresponding to this qrV2Entry." + ::= { qrV2Entry 12 } + + qrV2Volume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume for which + this quota is in effect on. The volume that this + value represents can be determined by checking + the value of qvStateName (above) with + qvStateVolume set to the value found here." + ::= { qrV2Entry 13 } + + qrV2Tree OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string that indicates which qtree this quota + belongs to." + ::= { qrV2Entry 14 } + + qrV2IdType OBJECT-TYPE + SYNTAX INTEGER { + qrV2IdValid(1), + qrV2SidValid(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value that indicates which ID field is valid." + ::= { qrV2Entry 15 } + + qrV2Sid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The one or more IDs associated with this qrV2Entry. + If the qrV2entry is associated with a Windows ID, the + text form of the Windows ID (the SID) is here. If + the qrV2Entry is associated with more than one id, + this contains a blank separated list of those IDs. + Check the qrV2IdType field to see if this field is + valid." + ::= { qrV2Entry 16 } + + qrV2ThresholdUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + size based threshold limit for this qrV2Entry is + unlimited. If false(1) then qrV2*KBytesThreshold OID's + are valid, if true(0) then qrV2*KBytesThreshold OID's + are unused and will return 0." + ::= { qrV2Entry 17 } + + qrV2HighKBytesThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message. This object returns the + most significant 32 bits of the 64 bit unsigned + integer. This will return 0 if qrV2ThresholdUnlimited + is true." + ::= { qrV2Entry 18 } + + qrV2LowKBytesThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message. This object returns the + least significant 32 bits of the 64 bit unsigned + integer. This will return 0 if qrV2ThresholdUnlimited + is true." + ::= { qrV2Entry 19 } + + qrV2SoftQuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + size based soft quota limit for this qrV2Entry is + unlimited. If false(1) then qrV2*KBytesSoftLimit OID's + are valid, if true(0) the qrV2*KBytesSoftLimit OID's + are unused and will return 0." + ::= { qrV2Entry 20 } + + qrV2HighKBytesSoftLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 21 } + + qrV2LowKBytesSoftLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { qrV2Entry 22 } + + qrV2SoftFileQuotaUnlimited OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This flag designates whether or not the + file based soft quota limit for this qrV2Entry is + unlimited. If false(1) then qrV2SoftFileLimit is valid, + if true(0) qrV2SoftFileLimit is unused and will + return 0." + ::= { qrV2Entry 23 } + + qrV2SoftFileLimit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of files that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This will return 0 if + qrV2SoftFileQuotaUnlimited is true." + ::= { qrV2Entry 24 } + + qrV264KBytesUsed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of KBytes used for this + qrV2Entry. This object returns all of the 64 bit + unsigned integer." + + ::= { qrV2Entry 25 } + + qrV264KBytesLimit OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry. This object returns all of the 64 + bit unsigned integer. This will return 0 if + qrV2QuotaUnlimited is true." + ::= { qrV2Entry 26 } + + qrV264KBytesThreshold OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number of KBytes that when used by this entry + produces a warning message. This object returns the + all of the 64 bit unsigned integer. This will return + 0 if qrV2ThresholdUnlimited is true." + ::= { qrV2Entry 27 } + + qrV264KBytesSoftLimit OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit of KBytes that can be used for this + qrV2Entry before a warning message and SNMP + trap is produced. This object returns all of the + 64 bit unsigned integer." + ::= { qrV2Entry 28 } + + -- -- -- -- -- -- -- -- -- + -- the file system group -- + -- -- -- -- -- -- -- -- -- + + filesysMaxfilesAvail OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The count of the maximum number of + files allowable on the root volume. This + object is deprecated - use + dfEntry.dfMaxFilesAvail instead." + ::= { filesys 1 } + + filesysMaxfilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The count of the number of files + currently in use on the root volume. + This object is deprecated - use + dfEntry.dfMaxFilesUsed instead." + ::= { filesys 2 } + + filesysMaxfilesPossible OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The largest value to which the + filesysMaxfilesAvail parameter above can + be increased by reconfiguration on the + root volume. This object is deprecated - + use dfEntry.dfMaxFilesPossible." + ::= { filesys 3 } + + dfTable OBJECT-TYPE + SYNTAX SEQUENCE OF DfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the available disk space + on the file systems. The tables shows the + available disk space for volumes as well as + aggregates." + ::= { filesys 4 } + + snapshot OBJECT IDENTIFIER ::= { filesys 5 } + + -- the display file system table + + dfEntry OBJECT-TYPE + SYNTAX DfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the available disk space on + the referenced file system." + INDEX { dfIndex } + ::= { dfTable 1 } + + DfEntry ::= + SEQUENCE { + dfIndex + Integer32, + dfFileSys + DisplayString, + dfKBytesTotal + Integer32, + dfKBytesUsed + Integer32, + dfKBytesAvail + Integer32, + dfPerCentKBytesCapacity + Integer32, + dfInodesUsed + Integer32, + dfInodesFree + Integer32, + dfPerCentInodeCapacity + Integer32, + dfMountedOn + DisplayString, + dfMaxFilesAvail + Integer32, + dfMaxFilesUsed + Integer32, + dfMaxFilesPossible + Integer32, + dfHighTotalKBytes + Integer32, + dfLowTotalKBytes + Integer32, + dfHighUsedKBytes + Integer32, + dfLowUsedKBytes + Integer32, + dfHighAvailKBytes + Integer32, + dfLowAvailKBytes + Integer32, + dfStatus + Integer32, + dfMirrorStatus + Integer32, + dfPlexCount + Integer32, + dfType + Integer32, + dfHighSisSharedKBytes + Integer32, + dfLowSisSharedKBytes + Integer32, + dfHighSisSavedKBytes + Integer32, + dfLowSisSavedKBytes + Integer32, + dfPerCentSaved + Integer32, + df64TotalKBytes + Counter64, + df64UsedKBytes + Counter64, + df64AvailKBytes + Counter64, + df64SisSharedKBytes + Counter64, + df64SisSavedKBytes + Counter64 + } + + dfIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { dfEntry 1 } + + dfFileSys OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name for the referenced file system." + ::= { dfEntry 2 } + + dfKBytesTotal OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total capacity in KBytes for the + referenced file system." + ::= { dfEntry 3 } + + dfKBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system." + ::= { dfEntry 4 } + + dfKBytesAvail OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The total disk space in KBytes that is + free for use on the referenced file system." + ::= { dfEntry 5 } + + dfPerCentKBytesCapacity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space currently + in use on the referenced file system." + ::= { dfEntry 6 } + + dfInodesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of inodes in use on the + referenced file system." + ::= { dfEntry 7 } + + dfInodesFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of inodes that are + available for use on the referenced + file system." + ::= { dfEntry 8 } + + dfPerCentInodeCapacity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space currently + in use based on inode counts, on the + referenced file system." + ::= { dfEntry 9 } + + dfMountedOn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the file on which this file + system is mounted." + ::= { dfEntry 10 } + + dfMaxFilesAvail OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The count of the maximum number of + files allowable on the referenced file + system." + ::= { dfEntry 11 } + + dfMaxFilesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The count of the number of files + currently in use on the referenced file + system." + ::= { dfEntry 12 } + + dfMaxFilesPossible OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The largest value to which the + filesysMaxfilesAvail parameter above can + be increased by reconfiguration on the + referenced file system." + ::= { dfEntry 13 } + + dfHighTotalKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total capacity in KBytes for the + referenced file system. This object returns + the most significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 14 } + + dfLowTotalKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total capacity in KBytes for the + referenced file system. This object returns + the least significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 15 } + + dfHighUsedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { dfEntry 16 } + + dfLowUsedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { dfEntry 17 } + + dfHighAvailKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is free + for use on the referenced file system. + This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= { dfEntry 18 } + + dfLowAvailKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is free + for use on the referenced file system. + This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= { dfEntry 19 } + + + dfStatus OBJECT-TYPE + SYNTAX INTEGER { + unmounted(1), + mounted(2), + frozen(3), + destroying(4), + creating(5), + mounting(6), + unmounting(7), + nofsinfo(8), + replaying(9), + replayed(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the file system." + ::= { dfEntry 20 } + + dfMirrorStatus OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), + uninitialized(2), + needcpcheck(3), + cpcheckwait(4), + unmirrored(5), + normal(6), + degraded(7), + resyncing(8), + failed(9), + limbo(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Overall mirror status of the file system." + ::= { dfEntry 21 } + + dfPlexCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of plexes in this file system." + ::= { dfEntry 22 } + + dfType OBJECT-TYPE + SYNTAX INTEGER { + traditionalVolume(1), + flexibleVolume(2), + aggregate(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the type of container." + ::= { dfEntry 23 } + + dfHighSisSharedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that is + shared by more that one instance on the + referenced file system. This object returns + the most significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 24 } + + dfLowSisSharedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that is + shared by more that one instance on the + referenced file system. This object returns + the least significant 32 bits of the 64 bit + unsigned integer." + ::= { dfEntry 25 } + + dfHighSisSavedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is saved + by storing only one copy of the duplicated + blocks on the referenced file system. The + object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { dfEntry 26 } + + dfLowSisSavedKBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is saved + by storing only one copy of the duplicated + blocks on the referenced file system. The + object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { dfEntry 27 } + + dfPerCentSaved OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space saved by + eliminating the duplicated blocks on the + referenced file system." + ::= { dfEntry 28 } + + df64TotalKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total capacity in KBytes for the + referenced file system. This object returns + all of the 64 bit unsigned integer." + ::= { dfEntry 29 } + + df64UsedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns all of the 64 bit unsigned integer." + ::= { dfEntry 30 } + + df64AvailKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is free + for use on the referenced file system. + This object returns all of the 64 bit + unsigned integer." + ::= { dfEntry 31 } + + df64SisSharedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that is + shared by more that one instance on the + referenced file system. This object returns + all of the 64 bit unsigned integer." + ::= { dfEntry 32 } + + df64SisSavedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is saved + by storing only one copy of the duplicated + blocks on the referenced file system. The + object returns all of the 64 bit unsigned + integer." + ::= { dfEntry 33 } + + -- the old single-volume snapshot table. DEPRECATED + + slTable OBJECT-TYPE + SYNTAX SEQUENCE OF SlEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report of the snapshots on the + root volume. This table is deprecated - use + slVTable instead." + ::= { snapshot 1 } + + slEntry OBJECT-TYPE + SYNTAX SlEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Provide a report on a given snapshot on the + root volume. This object is deprecated - use + slVEntry instead." + INDEX { slIndex } + ::= { slTable 1 } + + SlEntry ::= + SEQUENCE { + slIndex + Integer32, + slMonth + Integer32, + slDay + Integer32, + slHour + Integer32, + slMinutes + Integer32, + slName + DisplayString + } + + slIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { slEntry 1 } + + slMonth OBJECT-TYPE + SYNTAX INTEGER { + january(1), + february(2), + march(3), + april(4), + may(5), + june(6), + july(7), + august(8), + september(9), + october(10), + november(11), + december(12) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The month in which the snapshot was created." + ::= { slEntry 2 } + + slDay OBJECT-TYPE + SYNTAX Integer32 (1..31) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The day on which the snapshot was created." + ::= { slEntry 3 } + + slHour OBJECT-TYPE + SYNTAX Integer32 (0..23) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The hour in which the snapshot was created." + ::= { slEntry 4 } + + slMinutes OBJECT-TYPE + SYNTAX Integer32 (0..59) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The minute in which the snapshot was created." + ::= { slEntry 5 } + + slName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The name of the referenced snapshot." + ::= { slEntry 6 } + + + -- The multivolume / aggregate snapshot table. + + slVTable OBJECT-TYPE + SYNTAX SEQUENCE OF SlVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the snapshots on the + file systems." + ::= { snapshot 2 } + + slVEntry OBJECT-TYPE + SYNTAX SlVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report on a given snapshot on the + file system. Indices select the volume of + the snapshot and the snapshot entry itself." + INDEX { slVVolume, slVIndex } + ::= { slVTable 1 } + + SlVEntry ::= + SEQUENCE { + slVIndex + Integer32, + slVMonth + Integer32, + slVDay + Integer32, + slVHour + Integer32, + slVMinutes + Integer32, + slVName + DisplayString, + slVVolume + Integer32, + slVNumber + Integer32, + slVVolumeName + DisplayString, + slVType + Integer32 + } + + slVIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { slVEntry 1 } + + slVMonth OBJECT-TYPE + SYNTAX INTEGER { + january(1), + february(2), + march(3), + april(4), + may(5), + june(6), + july(7), + august(8), + september(9), + october(10), + november(11), + december(12) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The month in which the snapshot was created." + ::= { slVEntry 2 } + + slVDay OBJECT-TYPE + SYNTAX Integer32 (1..31) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The day on which the snapshot was created." + ::= { slVEntry 3 } + + slVHour OBJECT-TYPE + SYNTAX Integer32 (0..23) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The hour in which the snapshot was created." + ::= { slVEntry 4 } + + slVMinutes OBJECT-TYPE + SYNTAX Integer32 (0..59) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minute in which the snapshot was created." + ::= { slVEntry 5 } + + slVName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the referenced snapshot." + ::= { slVEntry 6 } + + slVVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume / aggregate that + contains this snapshot." + ::= { slVEntry 7 } + + slVNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of snapshots for this volume / aggregate." + ::= { slVEntry 8 } + + slVVolumeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume / aggregate. This does not + have a /vol/ prefix." + + ::= { slVEntry 9 } + + slVType OBJECT-TYPE + SYNTAX INTEGER { + traditionalVolume(1), + flexibleVolume(2), + aggregate(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the type of container for this + snapshot." + + ::= { slVEntry 10 } + + + -- The snapshot content table. + + slQTable OBJECT-TYPE + SYNTAX SEQUENCE OF SlQEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the snapshots and their contents + on the file systems." + ::= { snapshot 3 } + + slQEntry OBJECT-TYPE + SYNTAX SlQEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report on a given snapshot for a given + qtree on the file system. Indices select the volume + and qtree of the snapshot and the snapshot entry + itself." + + INDEX { slQVolume, slQQtree, slQIndex } + ::= { slQTable 1 } + + SlQEntry ::= + SEQUENCE { + slQIndex + Integer32, + slQVolume + Integer32, + slQQtree + Integer32, + slQSnapshotName + DisplayString, + slQSnapshotTime + Integer32, + slQQtreeName + DisplayString, + slQQtreeContent + Integer32, + slQSource + OCTET STRING, + slQSourceTime + Integer32, + slQVolumeName + DisplayString + } + + slQIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { slQEntry 1 } + + slQVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that contains + this snapshot." + ::= { slQEntry 2 } + + slQQtree OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the qtree that contains + this snapshot." + ::= { slQEntry 3 } + + slQSnapshotName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the referenced snapshot." + ::= { slQEntry 4 } + + slQSnapshotTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time of the snapshot on the system. The time in + seconds since January 1, 1970." + ::= { slQEntry 5 } + + slQQtreeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string that indicates which qtree is in this + snapshot" + ::= { slQEntry 6 } + + slQQtreeContent OBJECT-TYPE + SYNTAX INTEGER { + replica(1), + transitioning(2), + original(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The content of the qtree tree" + ::= { slQEntry 7 } + + slQSource OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The source of this qtree for a replicated qtree. + '-' for a original qtree." + ::= { slQEntry 8 } + + slQSourceTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time of the source snapshot for a replicated qtree. + Time of the current snapshot for an original qtree. + The time in seconds since January 1, 1970. 0 if the + qtree is in a transitioning stage" + + ::= { slQEntry 9 } + + slQVolumeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume. This does not have a /vol/ + prefix." + ::= { slQEntry 10 } + + + dfNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the dfTable table." + + ::= { filesys 6 } + + -- -- -- -- -- -- -- -- -- -- -- -- + -- file system status information -- + -- -- -- -- -- -- -- -- -- -- -- -- + + fsStatus OBJECT IDENTIFIER ::= { filesys 7 } + + fsOverallStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + nearlyFull(2), + full(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of overall file system + health. 'ok' indicates that all file systems + have adequate space. 'nearlyFull' means + that one or more is nearly full (more than + 95% full). 'full' means that one or more + are more than 98% full." + ::= { fsStatus 1 } + + fsStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string indicating any file systems which + are full or nearly full." + ::= { fsStatus 2 } + + fsMaxUsedBytesPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of space currently in use + by the file system which is most full." + ::= { fsStatus 3 } + + fsMaxUsedInodesPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of inodes currently in use + by the file system which is most full." + ::= { fsStatus 4 } + + fsMaxUsedReservedPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of reserved space currently + in use by the file system which is most full." + ::= { fsStatus 5 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- All volumes, including those offline and those + -- owned by the cluster partner. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + volTable OBJECT-TYPE + SYNTAX SEQUENCE OF VolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "List the volumes defined on the system, + including offline volumes." + + ::= { filesys 8 } + + volEntry OBJECT-TYPE + SYNTAX VolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular volume." + INDEX { volIndex } + ::= { volTable 1 } + + VolEntry ::= + SEQUENCE { + volIndex Integer32, + volName DisplayString, + volFSID DisplayString, + volOwningHost Integer32, + volState DisplayString, + volStatus DisplayString, + volOptions DisplayString, + volUUID DisplayString, + volAggrName DisplayString, + volType Integer32, + volClone Integer32, + volCloneOf DisplayString, + volCloneSnap DisplayString + } + + volIndex OBJECT-TYPE + SYNTAX Integer32 (1..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this volume. The + volIndex is not related to any other table + defined in this MIB, and may change as + volumes are created and destroyed." + ::= { volEntry 1 } + + volName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the volume. This includes no /vol/ + prefix." + ::= { volEntry 2 } + + volFSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unique identifier for this volume." + ::= { volEntry 3 } + + volOwningHost OBJECT-TYPE + SYNTAX INTEGER { + local(1), + partner(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indication of which host owns this volume." + ::= { volEntry 4 } + + volState OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "State of the volume, such as 'online' or + 'offline'." + ::= { volEntry 5 } + + volStatus OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the volume, such as 'normal' or + 'reconstructing'. May include several values + separated by comma and space." + ::= { volEntry 6 } + + volOptions OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Options associated with the volume, such + as 'root' and 'nosnapdir=off'. May include + several values separated by comma." + ::= { volEntry 7 } + + volUUID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique id associated with the volume." + ::= { volEntry 8 } + + volAggrName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the aggregate this flexible volume is a + part of." + ::= { volEntry 9 } + + volType OBJECT-TYPE + SYNTAX INTEGER { + traditional(1), + flexible(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this volume, older volumes are + traditional while newer volumes contained in + aggregates are flexible." + ::= { volEntry 10 } + + volClone OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True indicates flexible volume is a clone." + ::= { volEntry 11 } + + volCloneOf OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of flexible volume this flexible volume is + a clone of." + ::= { volEntry 12 } + + volCloneSnap OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of original cloned snapshot." + ::= { volEntry 13 } + + volNumber OBJECT-TYPE + SYNTAX Integer32 (0..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of volumes in the volTable." + + ::= { filesys 9 } + + + qtreeTable OBJECT-TYPE + SYNTAX SEQUENCE OF QtreeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of the qtrees on the system." + + ::= { filesys 10 } + + qtreeEntry OBJECT-TYPE + SYNTAX QtreeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular qtree." + + INDEX { qtreeVolume, qtreeIndex } + ::= { qtreeTable 1 } + + QtreeEntry ::= + SEQUENCE { + qtreeIndex Integer32, + qtreeVolume Integer32, + qtreeVolumeName DisplayString, + qtreeId Integer32, + qtreeName DisplayString, + qtreeStyle Integer32, + qtreeStatus Integer32, + qtreeOplock Integer32 + } + + qtreeIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the qtree table." + + ::= { qtreeEntry 1 } + + qtreeVolume OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that contains + this qtree." + + ::= { qtreeEntry 2 } + + qtreeVolumeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume that contains this qtree. + This includes no /vol/prefix." + + ::= { qtreeEntry 3 } + + qtreeId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Id number of the qtree." + + ::= { qtreeEntry 4 } + + qtreeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the qtree." + + ::= { qtreeEntry 5 } + + qtreeStyle OBJECT-TYPE + SYNTAX INTEGER { + unix(1), + ntfs(2), + mixed(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The security style of the qtree." + + ::= { qtreeEntry 6 } + + qtreeStatus OBJECT-TYPE + SYNTAX INTEGER { + normal(1), + snapmirrored(2), + snapvaulted(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the qtree." + + ::= { qtreeEntry 7 } + + qtreeOplock OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An indication of whether the oplocks is enabled or not + for this qtree." + + ::= { qtreeEntry 8 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- All aggregates, including those offline and those + -- owned by the cluster partner. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + aggrTable OBJECT-TYPE + SYNTAX SEQUENCE OF AggrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "List the aggregates defined on the system, + including offline aggregates." + + ::= { filesys 11 } + + aggrEntry OBJECT-TYPE + SYNTAX AggrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular aggregate." + INDEX { aggrIndex } + ::= { aggrTable 1 } + + AggrEntry ::= + SEQUENCE { + aggrIndex Integer32, + aggrName DisplayString, + aggrFSID DisplayString, + aggrOwningHost Integer32, + aggrState DisplayString, + aggrStatus DisplayString, + aggrOptions DisplayString, + aggrUUID DisplayString, + aggrFlexvollist OCTET STRING, + aggrType Integer32, + aggrRaidType DisplayString + } + + aggrIndex OBJECT-TYPE + SYNTAX Integer32 (1..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this aggregate. The + aggrIndex is not related to any other table + defined in this MIB, and may change as + aggregates are created and destroyed." + ::= { aggrEntry 1 } + + aggrName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the aggregate. This includes no /vol/ + prefix." + ::= { aggrEntry 2 } + + aggrFSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unique identifier for this aggregate." + ::= { aggrEntry 3 } + + aggrOwningHost OBJECT-TYPE + SYNTAX INTEGER { + local(1), + partner(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indication of which host owns this aggregate." + ::= { aggrEntry 4 } + + aggrState OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "State of the aggregate, such as 'online' or + 'offline'." + ::= { aggrEntry 5 } + + aggrStatus OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the aggregate, such as 'normal' or + 'reconstructing'. May include several values + separated by comma and space." + ::= { aggrEntry 6 } + + aggrOptions OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Options associated with the aggregate." + ::= { aggrEntry 7 } + + aggrUUID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique id associated with the aggregate." + ::= { aggrEntry 8 } + + aggrFlexvollist OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "List of all the flexible volumes within this + aggregate." + ::= { aggrEntry 9 } + + aggrType OBJECT-TYPE + SYNTAX INTEGER { + traditional(1), + aggregate(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this container, containers + containing flexible volumes are aggregate." + ::= { aggrEntry 10 } + + aggrRaidType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of raid protection of the aggregate, such as + 'raid0', 'mirrored raid0', 'raid4', 'mirrored raid4', + 'raid_dp', 'mirrored raid_dp'." + ::= { aggrEntry 11 } + + aggrNumber OBJECT-TYPE + SYNTAX Integer32 (0..2048) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of aggregates in the aggrTable." + ::= { filesys 12 } + + -- -- -- -- -- -- -- + -- the RAID group -- + -- -- -- -- -- -- -- + + -- Old root volume raid table. DEPRECATED + + raidTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Display RAID configuration information for the + root volume. This table is deprecated - use + raidVTable instead." + ::= { raid 1 } + + raidEntry OBJECT-TYPE + SYNTAX RaidEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Display RAID configuration information for + the referenced disk drive. This only works for + disks contained within the root volume, and will + include spare drives. This object is + deprecated - use raidVEntry instead." + INDEX { raidIndex } + ::= { raidTable 1 } + + RaidEntry ::= + SEQUENCE { + raidIndex + Integer32, + raidDiskName + DisplayString, + raidStatus + Integer32, + raidDiskId + Integer32, + raidScsiAdapter + DisplayString, + raidScsiId + Integer32, + raidUsedMb + Integer32, + raidUsedBlocks + Integer32, + raidTotalMb + Integer32, + raidTotalBlocks + Integer32, + raidCompletionPerCent + Integer32 + } + + raidIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive." + ::= { raidEntry 1 } + + raidDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The name identifying the referenced disk drive." + ::= { raidEntry 2 } + + raidStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + reconstructionInProgress(2), + parityReconstructionInProgress(3), + parityVerificationInProgress(4), + scrubbingInProgress(5), + failed(6), + addingSpare(7), + spare(8), + prefailed(9), + offline(10) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The status of the referenced disk drive." + ::= { raidEntry 3 } + + raidDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { raidEntry 4 } + + raidScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { raidEntry 5 } + + raidScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { raidEntry 6 } + + raidUsedMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of MBytes currently in use on + the referenced disk drive." + ::= { raidEntry 7 } + + raidUsedBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of Blocks currently in use on + the referenced disk drive." + ::= { raidEntry 8 } + + raidTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { raidEntry 9 } + + raidTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { raidEntry 10 } + + raidCompletionPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "In the case when reconstruction/adding a + spare, verification or scrubbing is in progress, + the percent of such reconstruction, verification + or scrubbing that has been completed on the + referenced disk drive." + ::= { raidEntry 11 } + + + -- Multivolume raidTable. + + + raidVTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information." + ::= { raid 2 } + + raidVEntry OBJECT-TYPE + SYNTAX RaidVEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information for + the referenced volume, raid group, and disk drive." + INDEX { raidVVol, raidVGroup, raidVIndex } + ::= { raidVTable 1 } + + RaidVEntry ::= + SEQUENCE { + raidVIndex + Integer32, + raidVDiskName + DisplayString, + raidVStatus + Integer32, + raidVDiskId + Integer32, + raidVScsiAdapter + DisplayString, + raidVScsiId + Integer32, + raidVUsedMb + Integer32, + raidVUsedBlocks + Integer32, + raidVTotalMb + Integer32, + raidVTotalBlocks + Integer32, + raidVCompletionPerCent + Integer32, + raidVVol + Integer32, + raidVGroup + Integer32, + raidVDiskNumber + Integer32, + raidVGroupNumber + Integer32, + raidVDiskPort + Integer32, + raidVSecondaryDiskName + DisplayString, + raidVSecondaryDiskPort + Integer32, + raidVShelf + Integer32, + raidVBay + Integer32, + raidVPlex + Integer32, + raidVPlexGroup + Integer32, + raidVPlexNumber + Integer32, + raidVPlexName + DisplayString, + raidVSectorSize + Integer32, + raidVDiskSerialNumber + DisplayString, + raidVDiskVendor + DisplayString, + raidVDiskModel + DisplayString, + raidVDiskFirmwareRevision + DisplayString, + raidVDiskRPM + DisplayString, + raidVDiskType + DisplayString, + raidVDiskPool + DisplayString, + raidVDiskCopyDestDiskName + DisplayString + } + + raidVIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this disk drive within + the given volume and RAID group." + ::= { raidVEntry 1 } + + raidVDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk drive." + ::= { raidVEntry 2 } + + raidVStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + reconstructionInProgress(2), + parityReconstructionInProgress(3), + parityVerificationInProgress(4), + scrubbingInProgress(5), + failed(6), + prefailed(9), + offline(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced disk drive." + ::= { raidVEntry 3 } + + raidVDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { raidVEntry 4 } + + raidVScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { raidVEntry 5 } + + raidVScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { raidVEntry 6 } + + raidVUsedMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes currently in use on + the referenced disk drive." + ::= { raidVEntry 7 } + + raidVUsedBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks currently in use on + the referenced disk drive." + ::= { raidVEntry 8 } + + raidVTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { raidVEntry 9 } + + raidVTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { raidVEntry 10 } + + raidVCompletionPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "In the case when rapid raid recovery, disk copy, + reconstruction/adding a spare, verification or + scrubbing is in progress, the percent of such + copy, reconstruction, verification or scrubbing + that has been completed on the referenced disk + drive." + ::= { raidVEntry 11 } + + raidVVol OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that this entry + belongs to. The first volume is '1'." + ::= { raidVEntry 12 } + + raidVGroup OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the RAID group within the + given volume that this entry belongs to. The + first RAID group is '1', and number across all plexes." + ::= { raidVEntry 13 } + + raidVDiskNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks within this RAID group." + ::= { raidVEntry 14 } + + raidVGroupNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RAID groups within this volume." + ::= { raidVEntry 15 } + + raidVDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidVEntry 16 } + + raidVSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { raidVEntry 17 } + + raidVSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidVEntry 18 } + + raidVShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { raidVEntry 19 } + + raidVBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { raidVEntry 20 } + + + raidVPlex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the plex within the + given volume that this entry belongs to. The + first plex is '1'." + ::= { raidVEntry 21 } + + raidVPlexGroup OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the RAID group within + the given plex that this entry belongs to. The + first RAID group is '1'." + ::= { raidVEntry 22 } + + raidVPlexNumber OBJECT-TYPE + SYNTAX Integer32 (1..2) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of plexes within this volume. + This number is always 1 or 2." + ::= { raidVEntry 23 } + + raidVPlexName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the plex that this entry + belongs to. A plex name can be anything, but + is usually a string like 'plex0' or 'plex1'." + ::= { raidVEntry 24 } + + raidVSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { raidVEntry 25 } + + raidVDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { raidVEntry 26 } + + raidVDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { raidVEntry 27 } + + raidVDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { raidVEntry 28 } + + raidVDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { raidVEntry 29 } + + raidVDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { raidVEntry 30 } + + raidVDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { raidVEntry 31 } + + raidVDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this entry + belongs to." + ::= { raidVEntry 32 } + + raidVDiskCopyDestDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When raidVStatus value is prefailed, this string identifies + the name of the disk which is the copy target of the + referenced prefailed disk." + ::= { raidVEntry 33 } + + -- Spare disk table. + + spareTable OBJECT-TYPE + SYNTAX SEQUENCE OF SpareEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display spare disk configuration information." + ::= { raid 3 } + + spareEntry OBJECT-TYPE + SYNTAX SpareEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display configuration information for + the referenced spare disk drive." + INDEX { spareIndex } + ::= { spareTable 1 } + + SpareEntry ::= + SEQUENCE { + spareIndex + Integer32, + spareDiskName + DisplayString, + spareStatus + Integer32, + spareDiskId + Integer32, + spareScsiAdapter + DisplayString, + spareScsiId + Integer32, + spareTotalMb + Integer32, + spareTotalBlocks + Integer32, + spareDiskPort + Integer32, + spareSecondaryDiskName + DisplayString, + spareSecondaryDiskPort + Integer32, + spareShelf + Integer32, + spareBay + Integer32, + sparePool + DisplayString, + spareSectorSize + Integer32, + spareDiskSerialNumber + DisplayString, + spareDiskVendor + DisplayString, + spareDiskModel + DisplayString, + spareDiskFirmwareRevision + DisplayString, + spareDiskRPM + DisplayString, + spareDiskType + DisplayString + } + + spareIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive in the list of spare disk + drives." + ::= { spareEntry 1 } + + spareDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced spare disk + drive." + ::= { spareEntry 2 } + + spareStatus OBJECT-TYPE + SYNTAX INTEGER { + spare(1), + addingspare(2), + bypassed(3), + unknown(4), + offline(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced spare disk drive." + ::= { spareEntry 3 } + + spareDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced spare disk + drive." + ::= { spareEntry 4 } + + spareScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced spare disk drive." + ::= { spareEntry 5 } + + spareScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced spare disk drive + on the referenced SCSI adapter." + ::= { spareEntry 6 } + + spareTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced spare disk drive." + ::= { spareEntry 7 } + + spareTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced spare disk drive." + ::= { spareEntry 8 } + + spareDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { spareEntry 9 } + + spareSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { spareEntry 10 } + + spareSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { spareEntry 11 } + + spareShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { spareEntry 12 } + + spareBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { spareEntry 13 } + + sparePool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this + entry belongs to." + ::= { spareEntry 14 } + + spareSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { spareEntry 15 } + + spareDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { spareEntry 16 } + + spareDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { spareEntry 17 } + + spareDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { spareEntry 18 } + + spareDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { spareEntry 19 } + + spareDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { spareEntry 20 } + + spareDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { spareEntry 21 } + + -- Disk summaries + + diskSummary OBJECT IDENTIFIER ::= { raid 4 } + + diskTotalCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of disks on the system." + + ::= { diskSummary 1 } + + diskActiveCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are currently active, + including parity disks." + + ::= { diskSummary 2 } + + diskReconstructingCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are + currently being reconstructed." + + ::= { diskSummary 3 } + + diskReconstructingParityCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of parity disks which are + currently being reconstructed." + + ::= { diskSummary 4 } + + diskVerifyingParityCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of parity disks which are + currently being verified." + + ::= { diskSummary 5 } + + diskScrubbingCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are + currently being scrubbed." + + ::= { diskSummary 6 } + + diskFailedCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are + currently broken." + + ::= { diskSummary 7 } + + diskSpareCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of available spare disks." + + ::= { diskSummary 8 } + + diskAddingSpareCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of spare disks which are + currently being added into a RAID group." + + ::= { diskSummary 9 } + + diskFailedMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If diskFailedCount is non-zero, this is + a string describing the failed disk or + disks. Each failed disk is described with + a sentence like + + Parity disk in volume vol0, RAID group 1, failed. + + or + + Disk on adapter 8a, shelf 1, bay 0, failed." + + ::= { diskSummary 10 } + + diskPrefailedCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks which are prefailed and marked + for rapid raid recovery." + + ::= { diskSummary 11 } + + raidVNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the raidVTable table. + This is the number of volumes in the system." + + ::= { raid 5 } + + spareNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the spareTable table." + + ::= { raid 6 } + + otherDiskNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the otherDiskTable table." + + ::= { raid 7 } + + raidPNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the raidPTable table. + This is the number of volumes in the system." + + ::= { raid 8 } + + -- Other (out-of-service) disk table. + + otherDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF OtherDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display out-of-service disk configuration information." + ::= { raid 9 } + + otherDiskEntry OBJECT-TYPE + SYNTAX OtherDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display configuration information for + the referenced disk drive." + INDEX { otherDiskIndex } + ::= { otherDiskTable 1 } + + OtherDiskEntry ::= + SEQUENCE { + otherDiskIndex + Integer32, + otherDiskDiskName + DisplayString, + otherDiskStatus + Integer32, + otherDiskDiskId + Integer32, + otherDiskScsiAdapter + DisplayString, + otherDiskScsiId + Integer32, + otherDiskTotalMb + Integer32, + otherDiskTotalBlocks + Integer32, + otherDiskDiskPort + Integer32, + otherDiskSecondaryDiskName + DisplayString, + otherDiskSecondaryDiskPort + Integer32, + otherDiskShelf + Integer32, + otherDiskBay + Integer32, + otherDiskPool + DisplayString, + otherDiskSectorSize + Integer32, + otherDiskSerialNumber + DisplayString, + otherDiskVendor + DisplayString, + otherDiskModel + DisplayString, + otherDiskFirmwareRevision + DisplayString, + otherDiskRPM + DisplayString, + otherDiskType + DisplayString + } + + otherDiskIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive in the list of out-of-service + diskdrives. Out-of-service disks include all disks + that are not in service in a raid group or available + as a spare disk." + ::= { otherDiskEntry 1 } + + otherDiskDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk + drive." + ::= { otherDiskEntry 2 } + + otherDiskStatus OBJECT-TYPE + SYNTAX INTEGER { + broken(1), + bypassed(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced disk drive." + ::= { otherDiskEntry 3 } + + otherDiskDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { otherDiskEntry 4 } + + otherDiskScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { otherDiskEntry 5 } + + otherDiskScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { otherDiskEntry 6 } + + otherDiskTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { otherDiskEntry 7 } + + otherDiskTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { otherDiskEntry 8 } + + otherDiskDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { otherDiskEntry 9 } + + otherDiskSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { otherDiskEntry 10 } + + otherDiskSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { otherDiskEntry 11 } + + otherDiskShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { otherDiskEntry 12 } + + otherDiskBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { otherDiskEntry 13 } + + otherDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this + entry belongs to." + ::= { otherDiskEntry 14 } + + otherDiskSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { otherDiskEntry 15 } + + otherDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { otherDiskEntry 16 } + + otherDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { otherDiskEntry 17 } + + otherDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { otherDiskEntry 18 } + + otherDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { otherDiskEntry 19 } + + otherDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { otherDiskEntry 20 } + + otherDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { otherDiskEntry 21 } + + -- Multivolume and multiplex raidTable. + + raidPTable OBJECT-TYPE + SYNTAX SEQUENCE OF RaidPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information." + ::= { raid 10 } + + raidPEntry OBJECT-TYPE + SYNTAX RaidPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display RAID configuration information for + the referenced volume, plex, raid group, and disk drive." + INDEX { raidPVol, raidPPlex, raidPGroup, raidPIndex } + ::= { raidPTable 1 } + + RaidPEntry ::= + SEQUENCE { + raidPIndex + Integer32, + raidPStatus + Integer32, + raidPVol + Integer32, + raidPPlex + Integer32, + raidPGroup + Integer32, + raidPPlexNumber + Integer32, + raidPGroupNumber + Integer32, + raidPDiskNumber + Integer32, + raidPPlexName + DisplayString, + raidPDiskName + DisplayString, + raidPDiskPort + Integer32, + raidPSecondaryDiskName + DisplayString, + raidPSecondaryDiskPort + Integer32, + raidPScsiAdapter + DisplayString, + raidPScsiId + Integer32, + raidPDiskId + Integer32, + raidPShelf + Integer32, + raidPBay + Integer32, + raidPSectorSize + Integer32, + raidPUsedMb + Integer32, + raidPUsedBlocks + Integer32, + raidPTotalMb + Integer32, + raidPTotalBlocks + Integer32, + raidPCompletionPerCent + Integer32, + raidPDiskSerialNumber + DisplayString, + raidPDiskVendor + DisplayString, + raidPDiskModel + DisplayString, + raidPDiskFirmwareRevision + DisplayString, + raidPDiskRPM + DisplayString, + raidPDiskType + DisplayString, + raidPDiskPool + DisplayString, + raidPDiskCopyDestDiskName + DisplayString + } + + raidPIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this disk drive within + the given volume and RAID group." + ::= { raidPEntry 1 } + + raidPStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + reconstructionInProgress(2), + parityReconstructionInProgress(3), + parityVerificationInProgress(4), + scrubbingInProgress(5), + failed(6), + prefailed(9), + offline(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the referenced disk drive." + ::= { raidPEntry 2 } + + raidPVol OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the volume that this entry + belongs to. The first volume is '1'." + ::= { raidPEntry 3 } + + raidPPlex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the plex that this entry + belongs to. The first plex is '1'." + ::= { raidPEntry 4 } + + raidPGroup OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the RAID group within the + given plex that this entry belongs to. The + first RAID group is '1'." + ::= { raidPEntry 5 } + + raidPPlexNumber OBJECT-TYPE + SYNTAX Integer32 (1..2) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of plexes within this volume. + This number is always 1 or 2." + ::= { raidPEntry 6 } + + raidPGroupNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RAID groups within this plex." + ::= { raidPEntry 7 } + + raidPDiskNumber OBJECT-TYPE + SYNTAX Integer32 (1..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disks within this RAID group." + ::= { raidPEntry 8 } + + raidPPlexName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the plex that this entry + belongs to. A plex name can be anything, but + is usually a string like 'plex0' or 'plex1'." + ::= { raidPEntry 9 } + + raidPDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk drive." + ::= { raidPEntry 10 } + + raidPDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidPEntry 11 } + + raidPSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { raidPEntry 12 } + + raidPSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { raidPEntry 13 } + + raidPScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { raidPEntry 14 } + + raidPScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { raidPEntry 15 } + + raidPDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { raidPEntry 16 } + + raidPShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { raidPEntry 17 } + + raidPBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { raidPEntry 18 } + + + raidPSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { raidPEntry 19 } + + raidPUsedMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes currently in use on + the referenced disk drive." + ::= { raidPEntry 20 } + + raidPUsedBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks currently in use on + the referenced disk drive." + ::= { raidPEntry 21 } + + raidPTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { raidPEntry 22 } + + raidPTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { raidPEntry 23 } + + raidPCompletionPerCent OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "In the case when rapid raid recovery, disk copy, + reconstruction or adding a spare, verification or + scrubbing is in progress, the percent of such copy, + reconstruction, verification or scrubbing that has + been completed on the referenced disk drive." + ::= { raidPEntry 24 } + + raidPDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { raidPEntry 25 } + + raidPDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { raidPEntry 26 } + + raidPDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { raidPEntry 27 } + + raidPDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { raidPEntry 28 } + + raidPDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { raidPEntry 29 } + + raidPDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { raidPEntry 30 } + + raidPDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this entry + belongs to." + ::= { raidPEntry 31 } + + raidPDiskCopyDestDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When raidPStatus value is prefailed, this string identifies + the name of the disk which is the copy target of the + referenced prefailed disk." + ::= { raidPEntry 32 } + + -- RAID Plex table. + + plexTable OBJECT-TYPE + SYNTAX SEQUENCE OF PlexEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing plex specific information." + ::= {raid 11} + + -- display plexes + + plexEntry OBJECT-TYPE + SYNTAX PlexEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report on file system plexes." + INDEX { plexIndex } + ::= { plexTable 1 } + + PlexEntry ::= + SEQUENCE { + plexIndex + Integer32, + plexName + DisplayString, + plexVolName + DisplayString, + plexStatus + Integer32, + plexPercentResyncing + Integer32 + } + + plexIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced plex." + ::= { plexEntry 1 } + + plexName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the plex." + ::= { plexEntry 2 } + + plexVolName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The volume to which this plex belongs." + ::= { plexEntry 3 } + + plexStatus OBJECT-TYPE + SYNTAX INTEGER { + offline(1), + resyncing(2), + online(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the plex." + ::= { plexEntry 4 } + + plexPercentResyncing OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If the plex is resyncing, the percent + completion of the resync." + ::= { plexEntry 5 } + + --out-of-dateDisks + + outOfDateDiskCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of entries in the outOfDateDiskTable table." + + ::= { raid 12 } + + -- out-of-date disk table. + + outOfDateDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF OutOfDateDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display out-of-date disk information." + ::= { raid 13 } + + outOfDateDiskEntry OBJECT-TYPE + SYNTAX OutOfDateDiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display information for the referenced + out-of-date disk." + INDEX { outOfDateDiskIndex } + ::= { outOfDateDiskTable 1 } + + OutOfDateDiskEntry ::= + SEQUENCE { + outOfDateDiskIndex + Integer32, + outOfDateDiskDiskName + DisplayString, + outOfDateDiskDiskId + Integer32, + outOfDateDiskScsiAdapter + DisplayString, + outOfDateDiskScsiId + Integer32, + outOfDateDiskTotalMb + Integer32, + outOfDateDiskTotalBlocks + Integer32, + outOfDateDiskDiskPort + Integer32, + outOfDateDiskSecondaryDiskName + DisplayString, + outOfDateDiskSecondaryDiskPort + Integer32, + outOfDateDiskShelf + Integer32, + outOfDateDiskBay + Integer32, + outOfDateDiskPool + DisplayString, + outOfDateDiskSectorSize + Integer32, + outOfDateDiskSerialNumber + DisplayString, + outOfDateDiskVendor + DisplayString, + outOfDateDiskModel + DisplayString, + outOfDateDiskFirmwareRevision + DisplayString, + outOfDateDiskRPM + DisplayString, + outOfDateDiskType + DisplayString + } + + outOfDateDiskIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced disk drive in the list of out-of-date + diskdrives." + ::= { outOfDateDiskEntry 1 } + + outOfDateDiskDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the referenced disk + drive." + ::= { outOfDateDiskEntry 2 } + + outOfDateDiskDiskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk identifier for the referenced disk + drive." + ::= { outOfDateDiskEntry 3 } + + outOfDateDiskScsiAdapter OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier of the SCSI adapter for the + referenced disk drive." + ::= { outOfDateDiskEntry 4 } + + outOfDateDiskScsiId OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The identifier for the referenced disk drive + on the referenced SCSI adapter." + ::= { outOfDateDiskEntry 5 } + + outOfDateDiskTotalMb OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of MBytes physically available + on the referenced disk drive." + ::= { outOfDateDiskEntry 6 } + + outOfDateDiskTotalBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Blocks physically available + on the referenced disk drive." + ::= { outOfDateDiskEntry 7 } + + outOfDateDiskDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the primary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { outOfDateDiskEntry 8 } + + outOfDateDiskSecondaryDiskName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name identifying the secondary path to + the referenced disk drive." + ::= { outOfDateDiskEntry 9 } + + outOfDateDiskSecondaryDiskPort OBJECT-TYPE + SYNTAX INTEGER { + portA(1), + portB(2), + portSingle(3), + portNone(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that indicates which port of the + disk is being used by the secondary path to the disk. + For a dual-ported disk, values of portA and portB + indicate which port is being used. + If the disk only has a single port, the value + is portSingle, and if the port is not active, + the value is portNone." + ::= { outOfDateDiskEntry 10 } + + outOfDateDiskShelf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the shelf where the disk + is located." + ::= { outOfDateDiskEntry 11 } + + outOfDateDiskBay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number identifying the disk bay within + the shelf where the disk is located." + ::= { outOfDateDiskEntry 12 } + + outOfDateDiskPool OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A name that identifies the disk pool that this + entry belongs to." + ::= { outOfDateDiskEntry 13 } + + outOfDateDiskSectorSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that specifies bytes per sector + for this entry. Values are '512' or '520'." + ::= { outOfDateDiskEntry 14 } + + outOfDateDiskSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Serial number of the referenced disk drive." + ::= { outOfDateDiskEntry 15 } + + outOfDateDiskVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor of the referenced disk drive." + ::= { outOfDateDiskEntry 16 } + + outOfDateDiskModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model string of the referenced disk drive." + ::= { outOfDateDiskEntry 17 } + + outOfDateDiskFirmwareRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Firmware revision number of the referenced disk drive." + ::= { outOfDateDiskEntry 18 } + + outOfDateDiskRPM OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RPM of the referenced disk drive." + ::= { outOfDateDiskEntry 19 } + + outOfDateDiskType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface type of the referenced disk drive. e.g SCSI, + or ATA." + ::= { outOfDateDiskEntry 20 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the CIFS group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + cifsOptions OBJECT IDENTIFIER ::= { cifs 1 } + + cifsInfo OBJECT IDENTIFIER ::= { cifs 2 } + + cifsStats OBJECT IDENTIFIER ::= { cifs 3 } + + cifsMisc OBJECT IDENTIFIER ::= { cifs 4 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsOptions group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the CIFS protocol is active on the + filer." + ::= { cifsOptions 1 } + + cifsIsLoginEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether new CIFS connections to the filer + are currently allowed." + ::= { cifsOptions 2 } + + + cifsHostName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The host name used by the CIFS protocol on this + filer." + ::= { cifsOptions 3 } + + + cifsAltNames OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Alternate names recognized by the filer." + ::= { cifsOptions 4 } + + + cifsDomainJoined OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Has the filer joined an NT domain? + If this value is true, cifsDomainName + will contain the name of the domain. + Otherwise, the filer may have joined + a WorkGroup, and cifsWGName will contain + the name of the WorkGroup. " + ::= { cifsOptions 5 } + + + cifsDomainName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The domain name used by the CIFS + protocol on this filer." + ::= { cifsOptions 6 } + + + cifsWGName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The workgroup name (if any) used by + the CIFS protocol on this filer." + ::= { cifsOptions 7 } + + + cifsDCName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the Domain Controller used by + this filer to authenticate users and file + requests." + ::= { cifsOptions 8 } + + + cifsIsWinsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True if WINS name resolution is enabled + on the filer." + ::= { cifsOptions 9 } + + + cifsWinsServers OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name(s) of the WINS servers registered + with the filer." + ::= { cifsOptions 10 } + + + cifsSecurityModel OBJECT-TYPE + SYNTAX INTEGER { + unix(1), + pc(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Which type of authentication semantics + (Unix or PC) are in use for PC access to + Unix files on the filer. If Unix semantics + are in use, no ACL on a Unix file is ever + checked. If PC semantics are in use, the + share level ACL on the share containing the + file is used for authentication instead of + the group portion of the permissions on + the file." + ::= { cifsOptions 11 } + + + cifsPCGenericUser OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the generic PC user, if any. This + username is used for CIFS access by Unix users + who have not authenticated through CIFS or NT." + ::= { cifsOptions 12 } + + + cifsOplocksEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether oplocks are enabled on the filer." + ::= { cifsOptions 15 } + + + cifsLevel2OplocksEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether level 2 oplocks are enabled on the filer." + ::= { cifsOptions 16 } + + + cifsPreserveCase OBJECT-TYPE + SYNTAX INTEGER { + noPreserveCase(1), + preserveCase(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If this option is set to preserve-case + (the default), all filename references + will be case preserving. Otherwise, + they are forced to lowercase." + ::= { cifsOptions 17 } + + + cifsSymlinksEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If this option is enabled, CIFS accesses will + follow symbolic links using Unix semantics." + ::= { cifsOptions 19 } + + + cifsSymlinkCycleProtEnabled OBJECT-TYPE + SYNTAX INTEGER { + notEnabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If this option is enabled, CIFS accesses will + through symbolic links will check for cycles + in the link graph." + ::= { cifsOptions 20 } + + + cifsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the CIFS protocol is licensed on the + filer." + ::= { cifsOptions 21 } + + cifsPerClientStatsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True when cifs.per_client_stats are + being collected." + ::= { cifsOptions 22 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsInfo group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsStatus OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Encoding of CIFS startup state on the filer." + ::= { cifsInfo 1 } + + cifsNeedPW OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Does the administrative password need + to be set before start?" + ::= { cifsInfo 2 } + + cifsTimeToShutdown OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time remaining until CIFS shutdown" + ::= { cifsInfo 3 } + + + cifsMaxConnections OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of simultaneous CIFS + connections allowed on the filer." + ::= { cifsInfo 4 } + + cifsMaxTrees OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of simultaneous CIFS + trees allowed on the filer." + ::= { cifsInfo 5 } + + cifsMaxShares OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of simultaneous CIFS + shares allowed on the filer." + ::= { cifsInfo 6 } + + cifsMaxFiles OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of concurrently open CIFS + files and directories allowed on the filer." + ::= { cifsInfo 7 } + + + cifsMaxACLs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object is deprecated, and always has a + value of 0." + ::= { cifsInfo 8 } + + + cifsConnectedUsers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of CIFS users on the + filer." + ::= { cifsInfo 9 } + + cifsNTrees OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of CIFS trees on the + filer." + ::= { cifsInfo 10 } + + cifsNShares OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of CIFS shares on the + filer." + ::= { cifsInfo 11 } + + cifsNSessions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of active CIFS sessions + on the filer." + ::= { cifsInfo 12 } + + cifsNOpenFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open CIFS files and directories + on the filer." + ::= { cifsInfo 13 } + + cifsNOpenDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open CIFS directories on the + filer." + ::= { cifsInfo 14 } + + + cifsNOplockBreakWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open files waiting for oplock + break messages to be sent." + ::= { cifsInfo 16 } + + + cifsNOplockAckWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of open files waiting for + acknowledgements to oplock break messages." + ::= { cifsInfo 17 } + + cifsSuspectOps OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A smoothed average of the number of events + per second of the type frequently seen + during virus attacks." + ::= { cifsInfo 18 } + + cifsNDomainControllers OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Domain Controllers found." + ::= { cifsInfo 19 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsStats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains cifs statistics since the last + -- time the statistics were cleared + + cifsServ OBJECT IDENTIFIER ::= { cifsStats 1 } + + -- cifsPerClient OBJECT IDENTIFIER ::= { cifsStats 2 } + + -- no per-client stats are kept as of the 5.3 release + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsServ group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for CIFS + -- status, and calls processed since the last + -- time the statistics were cleared + + cifsOps OBJECT IDENTIFIER ::= { cifsServ 1 } + + cifsReqs OBJECT IDENTIFIER ::= { cifsServ 2 } + + cifsPercent OBJECT IDENTIFIER ::= { cifsServ 3 } + + cifsObsReqs OBJECT IDENTIFIER ::= { cifsServ 4 } + + cifsObsPercent OBJECT IDENTIFIER ::= { cifsServ 5 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsOps group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsTotalOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS operations done by the filer, + since the last time the statistics were cleared." + ::= { cifsOps 1 } + + cifsTotalCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS calls received, since + the last time the statistics were cleared. This + is the number of cifsTotalOps plus the number of + miscellaneous operations that are not logged + which were received in that time period." + ::= { cifsOps 2 } + + cifsBadCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of received CIFS calls rejected, + since the last time the statistics were cleared." + ::= { cifsOps 3 } + + + cifsGetAttrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS operations to get + the attributes on a file or directory, since + the last time the statistics were reset." + ::= { cifsOps 4 } + + + cifsReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS Read operations on + a file or directory, since the last time the + statistics were reset." + ::= { cifsOps 5 } + + + cifsWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of CIFS write operations on + a file or directory, since the last time the + statistics were reset." + ::= { cifsOps 6 } + + + cifsLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS file locking requests + since the last time the statistics were reset." + ::= { cifsOps 7 } + + + cifsOpens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of calls, via CIFS, to open + a file or directory, since the last time + the statistics were reset." + ::= { cifsOps 8 } + + + cifsDirOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS directory operations, + since the last time the statistics were reset." + ::= { cifsOps 9 } + + + cifsOthers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of CIFS operations, since the + last time the statistics were reset, that + don't fall into the categories for GetAttr, + Read, Write, Lock, DirOp and Open." + ::= { cifsOps 10 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsReqs group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for the number of + -- calls received for each CIFS SMB request + -- since the last time the statistics were cleared + + smbNegProts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NEGOTIATE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 1 } + + smbSessionSetupAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SESSION_SETUP_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 2 } + + smbLogoffAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOGOFF_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 3 } + + smbTreeConnectAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 4 } + + smbTreeDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_DISCONNECT requests, + since the last time the statistics were cleared." + ::= { cifsReqs 5 } + + smbTrans2QueryFSInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FS_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 6 } + + smbEchos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB ECHO requests, + since the last time the statistics were cleared." + ::= { cifsReqs 7 } + + smbNTCancels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests, since the + last time the statistics were cleared." + ::= { cifsReqs 8 } + + smbNTCreateAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CREATE_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 9 } + + smbNTTransactCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_CREATE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 10 } + + smbCreateTemporaries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB CREATE_TEMPORARY operation is not presently + supported, so this value should always be zero." + ::= { cifsReqs 11 } + + smbReadAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 12 } + + smbWriteAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 13 } + + smbLockingAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCKING_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsReqs 14 } + + smbSeeks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEEK requests, + since the last time the statistics were cleared." + ::= { cifsReqs 15 } + + smbFlushes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FLUSH requests, + since the last time the statistics were cleared." + ::= { cifsReqs 16 } + + smbCloses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 17 } + + smbDeletes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE requests, + since the last time the statistics were cleared." + ::= { cifsReqs 18 } + + smbRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB RENAME requests, + since the last time the statistics were cleared." + ::= { cifsReqs 19 } + + smbMoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB MOVE request is not presently supported, + so this value should always be zero." + ::= { cifsReqs 20 } + + smbCopies OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB COPY request is not presently supported, + so this value should always be zero." + ::= { cifsReqs 21 } + + smbTrans2QueryPathInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_PATH_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 22 } + + smbTrans2QueryFileInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FILE_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 23 } + + smbTrans2SetPathInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_PATH_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 24 } + + smbTrans2SetFileInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_FILE_INFORMATION + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 25 } + + smbDeleteDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE_DIRECTORY requests, + since the last time the statistics were cleared." + ::= { cifsReqs 26 } + + smbCheckDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB COPY request is not presently supported, + so this value should always be zero." + ::= { cifsReqs 27 } + + smbTrans2FindFirst2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_FIRST2 requests, + since the last time the statistics were cleared." + ::= { cifsReqs 28 } + + smbTrans2FindNext2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_NEXT2 requests, + since the last time the statistics were cleared." + ::= { cifsReqs 29 } + + smbFindClose2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FIND_CLOSE2 requests, + since the last time the statistics were cleared." + ::= { cifsReqs 30 } + + smbNTTransactNotifyChgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_NOTIFY_CHANGE + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 31 } + + smbTrans2GetDFSReferrals OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB TRANS2_GET_DFS_REFERRAL request is + not presently supported, so this value should + always be zero." + ::= { cifsReqs 32 } + + smbTrans2ReportDFSIncs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB TRANS2_REPORT_DFS_INCONSISTENCY request is + not presently supported, so this value should + always be zero." + ::= { cifsReqs 33 } + + smbOpenPrintFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB OPEN_PRINT_FILE request is not supported, + so this value should always be zero." + ::= { cifsReqs 34 } + + smbGetPrintQueues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB GET_PRINT_QUEUE request is not supported, + so this value should always be zero." + ::= { cifsReqs 35 } + + smbNTTransactIoctls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_IOCTL requests, + since the last time the statistics were cleared." + ::= { cifsReqs 36 } + + smbNTTransactQuerySecDescs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_QUERY_SECURITY_DESC + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 37 } + + smbNTTransactSetSecDescs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_SET_SECURITY_DESC + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 38 } + + + smbTrans2CreateDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_CREATE_DIRECTORY + requests, since the last time the statistics + were cleared." + ::= { cifsReqs 39 } + + + smbNTCancelCNs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + change notifications since the last time + the statistics were cleared." + ::= { cifsReqs 40 } + + smbNTCancelOthers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + operations other than change notifications, + since the last time the statistics + were cleared." + ::= { cifsReqs 41 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsObsReqs group + -- (Obsolete SMB requests) + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + obsSmbClosePrintFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE_PRINT_FILE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 1 } + + obsSmbCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 2 } + + obsSmbCreateDirs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_DIRECTORY requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 3 } + + obsSmbCreateNews OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_NEW requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 4 } + + obsSmbLockAndReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_AND_READ requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 5 } + + obsSmbLockByteRanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_BYTE_RANGE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 6 } + + obsSmbOpens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 7 } + + obsSmbOpenAndXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN_ANDX requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 8 } + + obsSmbProcessExits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB PROCESS_EXIT requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 9 } + + obsSmbQueryInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 10 } + + obsSmbQueryInfo2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION2 requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 11 } + + obsSmbReads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 12 } + + obsSmbReadMPXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB READ_MPX request is not supported, + so this value should always be zero." + ::= { cifsObsReqs 13 } + + obsSmbReadRaws OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_RAW requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 14 } + + obsSmbSearchs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEARCH requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 15 } + + obsSmbSetInfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 16 } + + obsSmbSetInfo2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION2 requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 17 } + + obsSmbQueryInfoDisks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION_DISK + requests, since the last time the statistics + were cleared." + ::= { cifsObsReqs 18 } + + obsSmbTrans2Open2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_OPEN2 requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 19 } + + obsSmbTreeConnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 20 } + + obsSmbUnlockByteRanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB UNLOCK_BYTE_RANGE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 21 } + + obsSmbWrites OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 22 } + + obsSmbWriteAndUnlocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_UNLOCK requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 23 } + + obsSmbWriteAndCloses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_CLOSE requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 24 } + + obsSmbWriteMPXs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB WRITE_MPX request is not supported, + so this value should always be zero." + ::= { cifsObsReqs 25 } + + obsSmbWritePrintFiles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMB WRITE_PRINT_FILE request is not supported, + so this value should always be zero." + ::= { cifsObsReqs 26 } + + obsSmbWriteRaws OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_RAW requests, + since the last time the statistics were cleared." + ::= { cifsObsReqs 27 } + + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsPercent group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for the number of + -- calls received for each CIFS SMB request + -- as a percentage of total CIFS calls received, + -- since the last time the statistics were cleared + + smbNegProtPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NEGOTIATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 1 } + + smbSessionSetupAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SESSION_SETUP_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 2 } + + smbLogoffAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOGOFF_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 3 } + + smbTreeConnectAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 4 } + + smbTreeDisconnectAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_DISCONNECT_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 5 } + + smbTrans2QueryFSInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FS_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 6 } + + smbEchoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB ECHO requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 7 } + + smbNTCancelPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 8 } + + smbCreateAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CREATE_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 9 } + + smbTransactCreatePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_CREATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 10 } + + smbCreateTemporaryPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_TEMPORARY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 11 } + + smbReadAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 12 } + + smbWriteAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 13 } + + smbLockingAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCKING_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 14 } + + smbSeekPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEEK requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 15 } + + smbFlushPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FLUSH requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 16 } + + smbClosePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 17 } + + smbDeletePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 18 } + + smbRenamePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB RENAME requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 19 } + + smbMovePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB MOVE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 20 } + + smbCopyPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB COPY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 21 } + + smbTrans2QueryPathInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_PATH_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 22 } + + smbTrans2QueryFileInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_QUERY_FILE_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 23 } + + smbTrans2SetPathInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_PATH_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 24 } + + smbTrans2SetFileInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_SET_FILE_INFORMATION + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 25 } + + smbDeleteDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB DELETE_DIRECTORY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 26 } + + smbCheckDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CHECK_DIRECTORY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 27 } + + + smbTrans2FindFirst2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_FIRST2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 28 } + + smbTrans2FindNext2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_FIND_NEXT2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 29 } + + smbFindClose2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB FIND_CLOSE2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 30 } + + smbNTTransactNotifyChgPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_NOTIFY_CHANGE + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 31 } + + smbTrans2GetDFSReferralPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_GET_DFS_REFERRAL + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 32 } + + smbTrans2ReportDFSIncPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_REPORT_DFS_INCONSISTENCY + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 33 } + + smbOpenPrintFilePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN_PRINT_FILE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 34 } + + smbGetPrintQueuePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB GET_PRINT_QUEUE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 35 } + + smbNTTransactIoctlPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_IOCTL requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsPercent 36 } + + smbNTTransactQuerySecDescPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_QUERY_SECURITY_DESC + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 37 } + + smbNTTransactSetSecDescPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_TRANSACT_SET_SECURITY_DESC + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 38 } + + + smbTrans2CreateDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_CREATE_DIRECTORY + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsPercent 39 } + + + smbNTCancelCNPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + change notifications, as a percentage of + total CIFS calls received, since the last + time the statistics were cleared." + ::= { cifsPercent 40 } + + smbNTCancelOtherPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB NT_CANCEL requests against + calls other than change notifications, as + a percentage of total CIFS calls received, + since the last time the statistics were + cleared." + ::= { cifsPercent 41 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the obsPct group + -- (Obsolete SMB requests) + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + obsSmbClosePrintFilePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CLOSE_PRINT_FILE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 1 } + + obsSmbCreatePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 2 } + + obsSmbCreateDirPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_DIRECTORY requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 3 } + + obsSmbCreateNewPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB CREATE_NEW requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 4 } + + obsSmbLockAndReadPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_AND_READ requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 5 } + + obsSmbLockByteRangePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB LOCK_BYTE_RANGE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 6 } + + obsSmbOpenPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 7 } + + obsSmbOpenAndXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB OPEN_ANDX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 8 } + + obsSmbProcessExitPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB PROCESS_EXIT requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 9 } + + obsSmbQueryInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 10 } + + obsSmbQueryInfo2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 11 } + + obsSmbReadPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 12 } + + obsSmbReadMPXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_MPX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 13 } + + obsSmbReadRawPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB READ_RAW requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 14 } + + obsSmbSearchPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SEARCH requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 15 } + + obsSmbSetInfoPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 16 } + + obsSmbSetInfo2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB SET_INFORMATION2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 17 } + + obsSmbQueryInfoDiskPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB QUERY_INFORMATION_DISK + requests, as a percentage of total CIFS calls + received, since the last time the statistics + were cleared." + ::= { cifsObsPercent 18 } + + obsSmbTrans2Open2Pct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TRANS2_OPEN2 requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 19 } + + obsSmbTreeConnectPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB TREE_CONNECT requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 20 } + + obsSmbUnlockByteRangePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB UNLOCK_BYTE_RANGE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 21 } + + obsSmbWritePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 22 } + + obsSmbWriteAndUnlockPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_UNLOCK requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 23 } + + obsSmbWriteAndClosePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_AND_CLOSE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 24 } + + obsSmbWriteMPXPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_MPX requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 25 } + + obsSmbWritePrintFilePct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_PRINT_FILE requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 26 } + + obsSmbWriteRawPct OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SMB WRITE_RAW requests, + as a percentage of total CIFS calls received, + since the last time the statistics were cleared." + ::= { cifsObsPercent 27 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cifsMisc group + -- These statistics are primarily of interest to + -- NetApp developers. + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + cifsCancelLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 1 } + + cifsWaitLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 2 } + + cifsCopyToAligns OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 3 } + + cifsAlignedSmalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 4 } + + cifsAlignedLarges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 5 } + + cifsAlignedSmallRels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 6 } + + cifsAlignedLargeRels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 7 } + + cifsMbufWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 8 } + + cifsNbtWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 9 } + + cifsCwaWaits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 10 } + + cifsMultipleVCs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 11 } + + cifsPDCUpcalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 12 } + + cifsQueuedWriteRaws OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 13 } + + cifsNBTDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 14 } + + cifsSMBDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 15 } + + cifsDupDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 16 } + + cifsOpLkBatchToL2s OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 17 } + + cifsOpLkBatchToNones OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 18 } + + cifsOpLkL2ToNones OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 19 } + + cifsOpLkNoBreakAcks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 20 } + + cifsOpLkIgnoredAcks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 21 } + + cifsOpLkMultiWaiters OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 22 } + + cifsSharingErrorRetries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 23 } + + cifsOpLkWaiterTimedOuts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 24 } + + cifsOpLkDelayedBreaks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 25 } + + cifsOpLkEarlyNFSs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 26 } + + cifsOpLkNFSWaiteds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 27 } + + cifsMaxNFSBkWaiterCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undocumented" + ::= { cifsMisc 28 } + + cifsClearTextPasswd OBJECT-TYPE + SYNTAX INTEGER { + no(1), + yes(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates whether the cifs clients are + using clear text passwords when authenticating + with the filer. If cifsDomainJoined is false and + this variable is also false, then the filer is + using NT Security from a local user list." + ::= { cifsMisc 29 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncOptions OBJECT IDENTIFIER ::= { netcache 1 } + + ncInfo OBJECT IDENTIFIER ::= { netcache 2 } + + ncStats OBJECT IDENTIFIER ::= { netcache 3 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Netcache is enabled on this system." + ::= { ncOptions 1 } + + ncIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Netcache is licensed on this system." + ::= { ncOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the dns options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncDnsOptions OBJECT IDENTIFIER ::= { ncOptions 3 } + + ncDnsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Domain Name System (DNS) + is enabled on this system." + ::= { ncDnsOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the http options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncHttpOptions OBJECT IDENTIFIER ::= { ncOptions 4 } + + ncHttpIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether HTTP is enabled on this system." + ::= { ncHttpOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the nntp options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNntpOptions OBJECT IDENTIFIER ::= { ncOptions 5 } + + ncNntpIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NNTP is enabled on this system." + ::= { ncNntpOptions 1 } + + ncNntpIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NNTP is licensed on this system." + ::= { ncNntpOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the streaming options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncStreamingOptions OBJECT IDENTIFIER ::= { ncOptions 6 } + + ncStreamingMmsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Media Services (MMS) + is enabled on this system." + ::= { ncStreamingOptions 1 } + + ncStreamingMmsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Windows Media Service (MMS) + is licensed on this system." + ::= { ncStreamingOptions 2 } + + ncStreamingMmsProIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Windows Media Service Pro (MMS) + is licensed on this system." + ::= { ncStreamingOptions 3 } + + ncStreamingRtspIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Real Time Streaming Protocol (RTSP) + is enabled on this system." + ::= { ncStreamingOptions 4 } + + ncStreamingQuickTimeIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether QuickTime is licensed on this system." + ::= { ncStreamingOptions 5 } + + ncStreamingRealIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Real Media streaming is licensed on + this system." + ::= { ncStreamingOptions 6 } + + ncStreamingMmsUltraIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Microsoft Windows Media Service Ultra (MMS) + is licensed on this system." + ::= { ncStreamingOptions 7 } + + ncStreamingRealProIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Real Media Pro streaming is licensed on + this system." + ::= { ncStreamingOptions 8 } + + ncStreamingRealUltraIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Real Media Ultra streaming is licensed on + this system." + ::= { ncStreamingOptions 9 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the icap options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncIcapOptions OBJECT IDENTIFIER ::= { ncOptions 7 } + + ncIcapIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether ICAP v0.95 is enabled on this system." + ::= { ncIcapOptions 1 } + + ncIcapIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether ICAP is licensed on this system." + ::= { ncIcapOptions 2 } + + ncIcapv1IsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether ICAP v1.0 is enabled on this system." + ::= { ncIcapOptions 3 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the grm options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncGrmOptions OBJECT IDENTIFIER ::= { ncOptions 8 } + + ncGrmServerOptions OBJECT IDENTIFIER ::= { ncGrmOptions 1 } + + ncGrmAgentOptions OBJECT IDENTIFIER ::= { ncGrmOptions 2 } + + ncGrmServerIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Server + is enabled on this system." + ::= { ncGrmServerOptions 1 } + + ncGrmServerIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Server + is licensed on this system." + ::= { ncGrmServerOptions 2 } + + ncGrmAgentIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Agent + enabled on this system." + ::= { ncGrmAgentOptions 1 } + + ncGrmAgentIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the Global Request Manager (GRM) Agent + is licensed on this system." + ::= { ncGrmAgentOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the content director options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncCdOptions OBJECT IDENTIFIER ::= { ncOptions 9 } + + ncCdIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether Content Director is enabled on this system." + ::= { ncCdOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the https options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncHttpsProxyOptions OBJECT IDENTIFIER ::= { ncOptions 10 } + + ncHttpsProxyIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether HTTPS is enabled on this system." + ::= { ncHttpsProxyOptions 1 } + + ncHttpsProxyIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether HTTPS is licensed on this system." + ::= { ncHttpsProxyOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the cms options group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + ncCmsOptions OBJECT IDENTIFIER ::= { ncOptions 11 } + + ncCmsIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether CMS is enabled on this system." + ::= { ncCmsOptions 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache info group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Netcache version string." + ::= { ncInfo 1 } + + ncAdminPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Netcache Admin Port number - this + is the first in the list of admin + ports configured for the NetCache." + ::= { ncInfo 2 } + + + accelmonitor OBJECT IDENTIFIER ::= { ncInfo 3 } + + -- the acceleration monitor group + -- Implementation of the Acceleration Monitor (accelmonitor. + + amNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of entries in the acceleration monitor table." + ::= { accelmonitor 1 } + + amMonitor OBJECT-TYPE + SYNTAX INTEGER { + togglea(1), + toggleb(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Variable for user defined SNMP traps to monitor whether there has been a status change of any of the acceleration + servers that netcache is probing." + ::= { accelmonitor 2 } + + amMonitorString OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Used in conjunction with amMonitor. This returns a string + in format of: 'IP:port status' which reports the status + of all the servers netcache is accelerating as of last + status change." + ::= { accelmonitor 3 } + + -- accelmonitor table + + -- the Acceleration Monitor table contains information of the + -- the acceleration server, port that we are monitoring and its + -- status. + + amTable OBJECT-TYPE + SYNTAX SEQUENCE OF AmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of acceleration server and port entries. The + number of entries is given by the value of amNumber." + ::= { accelmonitor 4 } + + amEntry OBJECT-TYPE + SYNTAX AmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An acceleration monitor entry contains: the server + IP address, server port and the status." + INDEX { amIndex } + ::= { amTable 1 } + + AmEntry ::= + SEQUENCE { + amIndex + Integer32, + amAddress + IpAddress, + amPort + Integer32, + amStatus + Integer32 + } + + amIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A unique value for each entry in the acceleration monitor + table." + ::= { amEntry 1 } + + amAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of the acceleration server the NetCache + is monitoring." + ::= { amEntry 2 } + + amPort OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The corresponding port on the server that NetCache is + monitoring." + ::= { amEntry 3 } + + amStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + up(2), + down(3), + inactive(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the service running on the server. + active - in queue but no probes done yet. + up - the server is reachable and responding to probes. + down - the server is unreachable. + inactive - monitoring is disabled." + ::= { amEntry 4 } + + ncLocalConfigChanged OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the local configuration file on NetCache + was changed without using DFM configuration management." + ::= { ncInfo 4 } + + ncLocalConfigVersion OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current cache configuration's version." + ::= { ncInfo 5 } + + grmMonitor OBJECT IDENTIFIER ::= { ncInfo 6 } + + -- the GRM monitor group + -- Implementation of the GRM agent monitor + + grmMonitorToggle OBJECT-TYPE + SYNTAX INTEGER { + togglea(1), + toggleb(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Variable for user defined SNMP traps to monitor whether there has been a status change of any of the GRM + agents reporting to this GRM server." + ::= { grmMonitor 1 } + + grmMonitorString OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Used in conjunction with grmMonitor. This returns a string + in format of: 'IP status.' which reports the status + of all the GRM agents reporting to this GRM server as of last + status change." + ::= { grmMonitor 2 } + + takeoverinfo OBJECT IDENTIFIER ::= { ncInfo 7 } + + -- the takeover information group + -- information same as status.takeover.addrs and + -- status.takeover.mode and status.takeover.partner_status + + takeoverAddrs OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the list of interfaces and their corresponding IP + addresses of the partner NetCache that this appliance has taken over." + ::= { takeoverinfo 1 } + + takeoverMode OBJECT-TYPE + SYNTAX INTEGER { + normal(1), + takingover(2), + takenover(3), + giveback(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the current takeover mode of this appliance." + ::= { takeoverinfo 2 } + + takeoverStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + unknown(2), + failed(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates the current status of the takeover partner of + this appliance. up(1) indicates that the takeover partner is + reachable. unknown(2) indicates that an unknown error occured. + failed(3) indicates that the partner has failed, takeoverAddrs + indicates the partner's IP address this appliance has taken + over." + ::= { takeoverinfo 3 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache stats group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncObjectsStored OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of objects stored currently." + ::= { ncStats 1 } + + ncBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes sent to clients" + ::= { ncStats 2 } + + ncBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes received from clients" + ::= { ncStats 3 } + + ncBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes sent to servers" + ::= { ncStats 4 } + + ncBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes received from servers" + ::= { ncStats 5 } + + ncHttp OBJECT IDENTIFIER ::= { ncStats 6 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the http stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncHttpTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP requests so far" + ::= { ncHttp 1 } + + ncHttpHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP requests that resulted in hits so far" + ::= { ncHttp 2 } + + ncHttpMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP requests that resulted in misses so far" + ::= { ncHttp 3 } + + ncHttpServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to HTTP servers (active and idle)" + ::= { ncHttp 4 } + + ncHttpCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to HTTP clients (active and idle)" + ::= { ncHttp 5 } + + ncHttpBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for HTTP requests" + ::= { ncHttp 6 } + + ncHttpObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate HTTP requests" + ::= { ncHttp 7 } + + ncHttpRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time in milliseconds per byte for HTTP requests." + ::= { ncHttp 8 } + + ncHttpAvgRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for all HTTP requests." + ::= { ncHttp 9 } + + ncHttpAvgHitRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP hit requests." + ::= { ncHttp 10 } + + ncHttpAvgMissRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP miss requests." + ::= { ncHttp 11 } + + ncHttpInstAvgRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for all HTTP requests during the last 60 seconds." + ::= { ncHttp 12 } + + + ncHttpInstAvgHitRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP hit requests during the last 60 seconds." + ::= { ncHttp 13 } + + ncHttpInstAvgMissRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average response time in milliseconds for HTTP miss requests during the last 60 seconds." + ::= { ncHttp 14 } + + ncHttpTotalRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP requests" + ::= { ncHttp 15 } + + ncHttpTotalHitRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP HIT requests" + ::= { ncHttp 16 } + + ncHttpTotalMissRespTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP MISS requests" + ::= { ncHttp 17 } + + ncHttpBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes sent to clients" + ::= { ncHttp 18 } + + ncHttpBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes received from clients" + ::= { ncHttp 19 } + + ncHttpBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes sent to servers" + ::= { ncHttp 20 } + + ncHttpBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total HTTP bytes received from servers" + ::= { ncHttp 21 } + + ncHttpHighTotalRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP requests. + This object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 22 } + + ncHttpLowTotalRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP requests. + This object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 23 } + + ncHttpHighTotalHitRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP HIT requests. + This object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 24 } + + ncHttpLowTotalHitRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP HIT requests. + This object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 25 } + + ncHttpHighTotalMissRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP MISS requests. + This object returns the most significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 26 } + + ncHttpLowTotalMissRespTimes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total fetch time in milliseconds for HTTP MISS requests. + This object returns the least significant 32 bits + of the 64 bit unsigned integer." + ::= { ncHttp 27 } + + ncHttpReqRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Request Rate for HTTP requests" + ::= { ncHttp 28 } + + ncHttpObjHitRateLast1Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP object hit rate in the last 1 minute." + ::= { ncHttp 29 } + + ncHttpObjHitRateLast5Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP object hit rate in the last 5 minutes." + ::= { ncHttp 30 } + + ncHttpByteHitRateLast1Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP byte hit rate in the last 1 minute." + ::= { ncHttp 31 } + + ncHttpByteHitRateLast5Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "HTTP byte hit rate in the last 5 minutes." + ::= { ncHttp 32 } + + ncHttpBWSavingsLast1Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for HTTP requests in the last + 1 minute" + ::= { ncHttp 33 } + + ncHttpBWSavingsLast5Min OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for HTTP requests in the last + 5 minutes" + ::= { ncHttp 34 } + + ncHttpActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to HTTP servers" + ::= { ncHttp 35 } + + ncHttpActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to HTTP clients" + ::= { ncHttp 36 } + + ncHttpAccelTable OBJECT-TYPE + SYNTAX SEQUENCE OF NcHttpAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Number of kilobytes sent to and recieved from the client side + per acceleration rule" + + ::= { ncHttp 37 } + + ncHttpAccelEntry OBJECT-TYPE + SYNTAX NcHttpAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry contains the number of kilobytes sent and + received to/from the clients side per acceleration + rule" + + INDEX { ncHttpAccelIndex } + ::= { ncHttpAccelTable 1 } + + NcHttpAccelEntry ::= + SEQUENCE { + ncHttpAccelIndex Integer32, + ncHttpAccelKbytesFromClient Counter32, + ncHttpAccelKbytesToClient Counter32, + ncHttpAccelHits Counter32 + } + + ncHttpAccelIndex OBJECT-TYPE + SYNTAX Integer32 (1..513) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each entry in the http acceleration + stats table" + ::= { ncHttpAccelEntry 1 } + + ncHttpAccelKbytesFromClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes received from the client + for this acceleration rule" + ::= { ncHttpAccelEntry 2 } + + ncHttpAccelKbytesToClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes sent to the client for + this acceleration rule" + ::= { ncHttpAccelEntry 3 } + + ncHttpAccelHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The number of times this acceleration rule has been hit" + ::= { ncHttpAccelEntry 4 } + + ncHttpsAccelTable OBJECT-TYPE + SYNTAX SEQUENCE OF NcHttpsAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Number of kilobytes sent to and recieved from the client side + per acceleration rule" + + ::= { ncHttp 38 } + + ncHttpsAccelEntry OBJECT-TYPE + SYNTAX NcHttpsAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry contains the number of kilobytes sent and + received to/from the clients side per acceleration + rule" + + INDEX { ncHttpsAccelIndex } + ::= { ncHttpsAccelTable 1 } + + NcHttpsAccelEntry ::= + SEQUENCE { + ncHttpsAccelIndex Integer32, + ncHttpsAccelKbytesFromClient Counter32, + ncHttpsAccelKbytesToClient Counter32, + ncHttpsAccelHits Counter32 + } + + ncHttpsAccelIndex OBJECT-TYPE + SYNTAX Integer32 (1..513) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each entry in the http acceleration + stats table" + ::= { ncHttpsAccelEntry 1 } + + ncHttpsAccelKbytesFromClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes received from the client + for this acceleration rule" + ::= { ncHttpsAccelEntry 2 } + + ncHttpsAccelKbytesToClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes sent to the client for + this acceleration rule" + ::= { ncHttpsAccelEntry 3 } + + ncHttpsAccelHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The number of times this acceleration rule has been hit" + ::= { ncHttpsAccelEntry 4 } + + + ncNntp OBJECT IDENTIFIER ::= { ncStats 7 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the nntp stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNntpTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "NNTP total requests so far" + ::= { ncNntp 1 } + ncNntpCacheableRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "NNTP requests that were cacheable" + ::= { ncNntp 2 } + + ncNntpProxyRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "NNTP requests that were non-cacheable" + ::= { ncNntp 3 } + + ncNntpServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to NNTP servers (active and idle)" + ::= { ncNntp 4 } + + ncNntpCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to NNTP clients (active and idle)" + ::= { ncNntp 5 } + + ncNntpBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for NNTP requests" + ::= { ncNntp 6 } + + ncNntpRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time per byte for NNTP requests" + ::= { ncNntp 7 } + + ncNntpBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes sent to clients" + ::= { ncNntp 8 } + + ncNntpBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes received from clients" + ::= { ncNntp 9 } + + ncNntpBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes sent to servers" + ::= { ncNntp 10 } + + ncNntpBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NNTP bytes received from servers" + ::= { ncNntp 11 } + + ncNntpObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate of NNTP requests" + ::= { ncNntp 12 } + + ncNntpActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to NNTP servers" + ::= { ncNntp 13 } + + ncNntpActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to NNTP clients" + ::= { ncNntp 14 } + + ncFtp OBJECT IDENTIFIER ::= { ncStats 8 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the ftp stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncFtpTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FTP total requests so far" + ::= { ncFtp 1 } + + ncFtpHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FTP requests that resulted in hits so far" + ::= { ncFtp 2 } + + ncFtpMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FTP requests that resulted in misses so far" + ::= { ncFtp 3 } + + ncFtpServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to FTP servers (active and idle)" + ::= { ncFtp 4 } + + ncFtpCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to FTP clients (active and idle)" + ::= { ncFtp 5 } + + ncFtpBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for FTP requests" + ::= { ncFtp 6 } + + ncFtpRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time per byte for FTP requests" + ::= { ncFtp 7 } + + ncFtpBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes sent to clients" + ::= { ncFtp 8 } + + ncFtpBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes received from clients" + ::= { ncFtp 9 } + + ncFtpBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes sent to servers" + ::= { ncFtp 10 } + + ncFtpBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total FTP bytes received from servers" + ::= { ncFtp 11 } + + ncFtpObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate of FTP requests" + ::= { ncFtp 12 } + + ncFtpActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to FTP servers" + ::= { ncFtp 13 } + + ncFtpActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to FTP clients" + ::= { ncFtp 14 } + + ncStreaming OBJECT IDENTIFIER ::= { ncStats 9 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the streaming stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncStreamingServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to streaming servers (active and idle)" + ::= { ncStreaming 1 } + + ncStreamingCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to streaming clients (active and idle)" + ::= { ncStreaming 2 } + + ncStreamingBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all streaming requests" + ::= { ncStreaming 3 } + + ncStreamingRespTimePerByte OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Response time per byte for all streaming requests" + ::= { ncStreaming 4 } + + ncStreamingHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "STREAMING requests that resulted in hits so far" + ::= { ncStreaming 5 } + + ncStreamingMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "STREAMING requests that resulted in misses so far" + ::= { ncStreaming 6 } + + ncStreamingTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "STREAMING total requests so far" + ::= { ncStreaming 7 } + + ncStreamingLiveBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes sent to clients" + ::= { ncStreaming 8 } + + ncStreamingLiveBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes received from clients" + ::= { ncStreaming 9 } + + ncStreamingLiveBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes sent to servers" + ::= { ncStreaming 10 } + + ncStreamingLiveBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Live bytes received from servers" + ::= { ncStreaming 11 } + + ncStreamingProxyBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes sent to clients" + ::= { ncStreaming 12 } + + ncStreamingProxyBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes received from clients" + ::= { ncStreaming 13 } + + ncStreamingProxyBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes sent to servers" + ::= { ncStreaming 14 } + + ncStreamingProxyBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Proxy bytes received from servers" + ::= { ncStreaming 15 } + + ncStreamingOBTClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes sent to clients" + ::= { ncStreaming 16 } + + ncStreamingOBFClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes received from clients" + ::= { ncStreaming 17 } + + ncStreamingOBTServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes sent to servers" + ::= { ncStreaming 18 } + + ncStreamingOBFServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Ondemand bytes received from servers" + ::= { ncStreaming 19 } + + ncStreamingObjHitrate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Object Hitrate of Streaming requests" + ::= { ncStreaming 20 } + + ncStreamingRealBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes sent to clients" + ::= { ncStreaming 21 } + + ncStreamingRealBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes received from clients" + ::= { ncStreaming 22 } + + ncStreamingRealBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes sent to servers" + ::= { ncStreaming 23 } + + ncStreamingRealBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Real bytes received from servers" + ::= { ncStreaming 24 } + + ncStreamingMmsBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes sent to clients" + ::= { ncStreaming 25 } + + ncStreamingMmsBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes received from clients" + ::= { ncStreaming 26 } + + ncStreamingMmsBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes sent to servers" + ::= { ncStreaming 27 } + + ncStreamingMmsBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Mms bytes received from servers" + ::= { ncStreaming 28 } + + ncStreamingQTBTClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes sent to clients" + ::= { ncStreaming 29 } + + ncStreamingQTBFClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes received from clients" + ::= { ncStreaming 30 } + + ncStreamingQTBTServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes sent to servers" + ::= { ncStreaming 31 } + + ncStreamingQTBFServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming QuickTime bytes received from servers" + ::= { ncStreaming 32 } + + ncStreamingLiveBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all Live streaming requests" + ::= { ncStreaming 33 } + + ncStreamingOndemandBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all VOD streaming requests" + ::= { ncStreaming 34 } + + ncStreamingRealBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all Real streaming requests" + ::= { ncStreaming 35 } + + ncStreamingMmsBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all MMS streaming requests" + ::= { ncStreaming 36 } + + ncStreamingQuickTimeBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all QuickTime streaming requests" + ::= { ncStreaming 37 } + + ncStreamingActiveServConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to streaming servers" + ::= { ncStreaming 38 } + + ncStreamingActiveCliConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently active TCP/IP connections to streaming clients" + ::= { ncStreaming 39 } + + ncStreamingRtspWMBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes sent to clients" + ::= { ncStreaming 40 } + + ncStreamingRtspWMBFClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes received from clients" + ::= { ncStreaming 41 } + + ncStreamingRtspWMBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes sent to servers" + ::= { ncStreaming 42 } + + ncStreamingRtspWMBFServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Streaming Windows Media RTSP bytes received from servers" + ::= { ncStreaming 43 } + + ncStreamingRtspWMBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for all Windows Media RTSP streaming requests" + ::= { ncStreaming 44 } + + ncStreamingAccelTable OBJECT-TYPE + SYNTAX SEQUENCE OF NcStreamingAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Number of kilobytes sent to and recieved from the + client side per acceleration rule" + + ::= { ncStreaming 45 } + + ncStreamingAccelEntry OBJECT-TYPE + SYNTAX NcStreamingAccelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Each entry contains the number of kilobytes sent and + received to/from the clients side per acceleration + rule" + + INDEX { ncStreamingAccelIndex } + ::= { ncStreamingAccelTable 1 } + + NcStreamingAccelEntry ::= + SEQUENCE { + ncStreamingAccelIndex Integer32, + ncStreamingAccelKbytesFromClient Counter32, + ncStreamingAccelKbytesToClient Counter32, + ncStreamingAccelHits Counter32 + } + + ncStreamingAccelIndex OBJECT-TYPE + SYNTAX Integer32 (1..513) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each entry in the streaming + acceleration stats table" + ::= { ncStreamingAccelEntry 1 } + + ncStreamingAccelKbytesFromClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes received from the client + for this acceleration rule" + ::= { ncStreamingAccelEntry 2 } + + ncStreamingAccelKbytesToClient OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of kilobytes sent to the client for + this acceleration rule" + ::= { ncStreamingAccelEntry 3 } + + ncStreamingAccelHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " The number of times this acceleration rule has + been hit" + ::= { ncStreamingAccelEntry 4 } + + ncStreamingClientsDelayedSW OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of clients delayed because of a Bandwidth Limit" + ::= { ncStreaming 46 } + + ncTotalBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total Bandwidth savings for HTTP, FTP, NNTP, and Streaming protocols" + ::= { ncStats 10 } + + ncDns OBJECT IDENTIFIER ::= { ncStats 11 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache dns stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncDnsRequestsReceived OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total DNS requests received from clients" + ::= { ncDns 1 } + + ncDnsCacheHits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hits on the DNS cache. This includes hits + for DNS lookups generated by NetCache internally" + ::= { ncDns 2 } + + ncDnsCacheMisses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Misses on the DNS cache. This includes misses + for DNS lookups generated by NetCache internally" + ::= { ncDns 3 } + + ncDnsSuccessfulForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Forward DNS lookups that are successful" + ::= { ncDns 4 } + + ncDnsFailedForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Forward DNS lookups that failed" + ::= { ncDns 5 } + + ncDnsPendingForwardLookups OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Forward DNS lookups that are in progress" + ::= { ncDns 6 } + + ncDnsSuccessfulReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reverse DNS lookups that are successful" + ::= { ncDns 7 } + + ncDnsFailedReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reverse DNS lookups that failed" + ::= { ncDns 8 } + + ncDnsPendingReverseLookups OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reverse DNS lookups that are in progress" + ::= { ncDns 9 } + + ncDnsIres OBJECT IDENTIFIER ::= { ncDns 10 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache dns ires stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + ncDnsIresIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Has Full Service Resolver been enabled" + ::= { ncDnsIres 1 } + + ncDnsIresIsInitialised OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Has Full Service Resolver initalised" + ::= { ncDnsIres 2 } + + ncDnsIresForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Forward Lookups" + ::= { ncDnsIres 3 } + + ncDnsIresPendingForwardLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Pending Forward Lookups" + ::= { ncDnsIres 4 } + + ncDnsIresReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Reverse Lookups" + ::= { ncDnsIres 5 } + + ncDnsIresPendingReverseLookups OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Full Service Resolver's Pending Reverse Lookups" + ::= { ncDnsIres 6 } + + + ncAuth OBJECT IDENTIFIER ::= { ncStats 12 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache authentication stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNtlm OBJECT IDENTIFIER ::= { ncAuth 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache ntlm stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncNtlmPossibleProblem OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether a possible ntlm problem is detected + in the appliance's domain environment." + ::= { ncNtlm 1 } + + + ncRM OBJECT IDENTIFIER ::= { ncStats 13 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache resource management group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ncRMMem OBJECT IDENTIFIER ::= { ncRM 1 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- the netcache memory stats group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + ncRMMemTotal OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total memory in kilobytes available for + allocations after boot. It does not imply + the total system memory." + ::= { ncRMMem 1 } + + ncRMMemFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current free memory in kilobytes available + for allocations." + ::= { ncRMMem 2 } + + -- -- -- -- -- -- -- -- -- + -- the snapmirror group -- + -- -- -- -- -- -- -- -- -- + + snapmirrorOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether snapmirror has been turned on + or not." + ::= { snapmirror 1 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorActiveRestoreCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror restores." + + ::= { snapmirror 2 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorScheduledRestoreCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of scheduled SnapMirror restores." + + ::= { snapmirror 3 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorBackupNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror backups." + + ::= { snapmirror 4 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorBackupSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror backups which completed. + Reset on reboot." + + ::= { snapmirror 5 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorRestoreSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror restores which completed. + Reset on reboot." + + ::= { snapmirror 6 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorBackupAborts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror backup transfers which have + aborted. Reset on reboot." + + ::= { snapmirror 7 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorRestoreRestartAborts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror restore temporary aborts. + Reset on reboot." + + ::= { snapmirror 8 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorRestoreWaitAborts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SnapMirror restore permanent aborts. + Reset on reboot." + + ::= { snapmirror 9 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorWrittenBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Megabytes written by SnapMirror. + Reset on reboot." + + ::= { snapmirror 10 } + + -- the old active snapmirror destination count, new name is + -- snapmirrorActiveDstNumber. DEPRECATED + snapmirrorReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Megabytes read by SnapMirror. + Reset on reboot." + + ::= { snapmirror 11 } + + snapmirrorActiveDstNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror destination." + + ::= { snapmirror 12 } + + snapmirrorActiveSrcNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SnapMirror Source." + + ::= { snapmirror 13 } + + snapmirrorFilerTotalDstSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapmirror transfers to + the destination. Persistent across reboot." + + ::= { snapmirror 14 } + + snapmirrorFilerTotalSrcSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapmirror transfers + from the source. Persistent across reboot." + + ::= { snapmirror 15 } + + snapmirrorFilerTotalSrcFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed SnapMirror transfers on + the source. Persistent across reboot." + + ::= { snapmirror 16 } + + snapmirrorFilerTotalDstFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed SnapMirror transfers on + the destination. Persistent across reboot." + + ::= { snapmirror 17 } + + snapmirrorFilerTotalDstDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferred snapmirror transfer on + the destination. Persistent across reboot." + + ::= { snapmirror 18 } + + snapmirrorIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapmirror is licensed on the filer." + + ::= { snapmirror 19 } + + snapmirrorStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapmirrorStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "provide a list of snapmirror status." + + ::= { snapmirror 20 } + + snapmirrorStatusEntry OBJECT-TYPE + SYNTAX SnapmirrorStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current status of snapmirror." + + INDEX { snapmirrorIndex } + ::= { snapmirrorStatusTable 1 } + + SnapmirrorStatusEntry ::= + SEQUENCE { + snapmirrorIndex + Integer32, + snapmirrorSrc + OCTET STRING, + snapmirrorDst + OCTET STRING, + snapmirrorStatus + Integer32, + snapmirrorState + Integer32, + snapmirrorLag + TimeTicks, + snapmirrorTotalSuccesses + Counter32, + snapmirrorTotalRestartSuccesses + Counter32, + snapmirrorTotalFailures + Counter32, + snapmirrorTotalDeferments + Counter32, + snapmirrorTotalTransMBs + Counter32, + snapmirrorTotalTransTimeSeconds + Counter32, + snapmirrorThrottleValue + Integer32, + snapmirrorMirrorTimestamp + DisplayString, + snapmirrorBaseSnapshot + DisplayString, + snapmirrorLastTransType + DisplayString, + snapmirrorLastTransMBs + Counter32, + snapmirrorLastTransTimeSeconds + Counter32, + snapmirrorSchedule + DisplayString, + snapmirrorScheduleDesc + DisplayString, + snapmirrorArguments + DisplayString, + snapmirrorSyncToAsync + Counter32 + } + + snapmirrorIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapmirror status table." + + ::= { snapmirrorStatusEntry 1 } + + snapmirrorSrc OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Source of the snapmirror. : or + :/vol/" + + ::= { snapmirrorStatusEntry 2 } + + snapmirrorDst OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Destination of the snapmirror. + : or :/vol/" + + ::= { snapmirrorStatusEntry 3 } + + snapmirrorStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + transferring(2), + pending(3), + aborting(4), + migrating(5), + quiescing(6), + resyncing(7), + waiting(8), + syncing(9), + inSync(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current transfer status of the snapmirror." + + ::= { snapmirrorStatusEntry 4 } + + snapmirrorState OBJECT-TYPE + SYNTAX INTEGER { + uninitialized(1), + snapmirrored(2), + brokenOff(3), + quiesced(4), + source(5), + unknown(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current state of the snapmirror." + + ::= { snapmirrorStatusEntry 5 } + + snapmirrorLag OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "How far behind from the source the destination is." + + ::= { snapmirrorStatusEntry 6 } + + snapmirrorTotalSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful transfer since the snapmirror + is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 7 } + + snapmirrorTotalRestartSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful restarted transfer since + the snapmirror is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 8 } + + snapmirrorTotalFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed or aborted transfer since + the snapmirror is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 9 } + + snapmirrorTotalDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferment since the snapmirror + is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 10 } + + snapmirrorTotalTransMBs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total transfer size in MB for the snapmirror. + Reset on reboot." + + ::= { snapmirrorStatusEntry 11 } + + snapmirrorTotalTransTimeSeconds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of seconds spent in successful transfer for the + snapmirror. Reset on reboot." + + ::= { snapmirrorStatusEntry 12 } + + snapmirrorThrottleValue OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current throttle value for the snapmirror." + + ::= { snapmirrorStatusEntry 13 } + + snapmirrorMirrorTimestamp OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Timestamp of the last snapshot successfully transferred from + the source to the destination." + + ::= { snapmirrorStatusEntry 14 } + + snapmirrorBaseSnapshot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the current base snapshot for the snapmirror." + + ::= { snapmirrorStatusEntry 15 } + + snapmirrorLastTransType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the previous successful transfer." + + ::= { snapmirrorStatusEntry 16 } + + snapmirrorLastTransMBs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last successful transfer size in MB for the snapmirror." + + ::= { snapmirrorStatusEntry 17 } + + snapmirrorLastTransTimeSeconds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Duration of last successful transfer in seconds for the + snapmirror." + + ::= { snapmirrorStatusEntry 18 } + + snapmirrorSchedule OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Update schedule for the snapmirror in conf file format." + + ::= { snapmirrorStatusEntry 19 } + + snapmirrorScheduleDesc OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Description of the update schedule for the snapmirror." + + ::= { snapmirrorStatusEntry 20 } + + snapmirrorArguments OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Arguments for the snapmirror in conf file format." + + ::= { snapmirrorStatusEntry 21 } + + snapmirrorSyncToAsync OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times changing from sync mode to async mode + since the snapmirror is initialized. Persistent across reboot." + + ::= { snapmirrorStatusEntry 22 } + + snapmirrorConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapmirrorConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of snapmirror connection definitions." + + ::= { snapmirror 21 } + + snapmirrorConnEntry OBJECT-TYPE + SYNTAX SnapmirrorConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of a defined multipath connection." + + INDEX { snapmirrorConnIndex } + ::= { snapmirrorConnTable 1 } + + SnapmirrorConnEntry ::= + SEQUENCE { + snapmirrorConnIndex + Integer32, + snapmirrorConnName + DisplayString, + snapmirrorConnType + Integer32, + snapmirrorConnSrc1 + DisplayString, + snapmirrorConnDst1 + DisplayString, + snapmirrorConnSrc2 + DisplayString, + snapmirrorConnDst2 + DisplayString + } + + snapmirrorConnIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapmirror multipath connection table." + + ::= { snapmirrorConnEntry 1 } + + snapmirrorConnName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the snapmirror multipath connection." + + ::= { snapmirrorConnEntry 2 } + + snapmirrorConnType OBJECT-TYPE + SYNTAX INTEGER { + multi(1), + failover(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the snapmirror multipath connection." + + ::= { snapmirrorConnEntry 3 } + + snapmirrorConnSrc1 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the source for the first path." + + ::= { snapmirrorConnEntry 4 } + + snapmirrorConnDst1 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the destination for the first path." + + ::= { snapmirrorConnEntry 5 } + + snapmirrorConnSrc2 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the source for the second path." + + ::= { snapmirrorConnEntry 6 } + + snapmirrorConnDst2 OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the destination for the second path." + + ::= { snapmirrorConnEntry 7 } + + -- -- -- -- -- -- -- -- -- + -- the snapvault group + -- -- -- -- -- -- -- -- -- + + -- this group contains statistics for the whole system + -- unless otherwise specified. + + svOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether snapvault has been turned on + or not." + ::= { snapvault 1 } + + svSystemActiveDstNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active snapvault destionations." + + ::= { snapvault 2 } + + svSystemActiveSrcNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active snapvault sources." + + ::= { snapvault 3 } + + svSystemTotalPrimarySuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapvault transfers + from the snapvault primary. Persistent across reboot." + + ::= { snapvault 4 } + + svSystemTotalSecondarySuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapvault transfers to + the snapvault secondary. Persistent across reboot." + + ::= { snapvault 5 } + + svSystemTotalPrimaryFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed snapvault transfers on + the snapvault primary. Persistent across reboot." + + ::= { snapvault 6 } + + svSystemTotalSecondaryFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed snapvault transfers on + the snapvault secondary. Persistent across reboot." + + ::= { snapvault 7 } + + svSystemTotalSecondaryDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferred snapvault transfers on + the snapvault secondary. Persistent across reboot." + + ::= { snapvault 8 } + + svPrimaryIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapvault_client(primary) is licensed on the filer." + + ::= { snapvault 9 } + + svSecondaryIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapvault_server(secondary) is licensed on the filer." + + ::= { snapvault 10 } + + + + snapvaultStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapvaultStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "provide a list of snapvault status." + + ::= { snapvault 11 } + + snapvaultStatusEntry OBJECT-TYPE + SYNTAX SnapvaultStatusEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current status of snapvault." + + INDEX { svIndex } + ::= { snapvaultStatusTable 1 } + + SnapvaultStatusEntry ::= + SEQUENCE { + svIndex + Integer32, + svSrc + OCTET STRING, + svDst + OCTET STRING, + svStatus + Integer32, + svState + Integer32, + svLag + TimeTicks, + svTotalSuccesses + Counter32, + svTotalRestartSuccesses + Counter32, + svTotalFailures + Counter32, + svTotalDeferments + Counter32, + svTotalTransMBs + Counter32, + svTotalTransTimeSeconds + Counter32, + svThrottleValue + Integer32, + svSrcSnapshotTime + Integer32, + svBaseSnapshot + DisplayString, + svLastTransType + DisplayString, + svLastTransMBs + Integer32, + svLastTransTimeSeconds + Integer32 + } + + svIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapvault status table." + + ::= { snapvaultStatusEntry 1 } + + svSrc OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Source of the snapvault relationship. + :/vol/" + + ::= { snapvaultStatusEntry 2 } + + svDst OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Destionation of the snapvault relationship. + :/vol/" + + ::= { snapvaultStatusEntry 3 } + + svStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + transferring(2), + pending(3), + aborting(4), + quiescing(6), + resyncing(7), + paused(12) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current transfer status of the snapvault relationship." + + ::= { snapvaultStatusEntry 4 } + + svState OBJECT-TYPE + SYNTAX INTEGER { + uninitialized(1), + snapvaulted(2), + brokenOff(3), + quiesced(4), + source(5), + unknown(6), + restoring(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current state of the snapvault relationship." + + ::= { snapvaultStatusEntry 5 } + + svLag OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "How far behind from the source the destination is." + + ::= { snapvaultStatusEntry 6 } + + svTotalSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful transfer since the snapvault + relationship was established. Persistent across reboot." + + ::= { snapvaultStatusEntry 7 } + + svTotalRestartSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful restarted transfer since + the snapvault relationship was established. Persistent + across reboot." + + ::= { snapvaultStatusEntry 8 } + + svTotalFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed or aborted transfer since + the snapvault relationship was established. Persistent + across reboot." + + ::= { snapvaultStatusEntry 9 } + + svTotalDeferments OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferment since the snapvault + relationship was established. Persistent across reboot." + + ::= { snapvaultStatusEntry 10 } + + svTotalTransMBs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total transfer size in MB for the snapvault. + Reset on reboot." + + ::= { snapvaultStatusEntry 11 } + + svTotalTransTimeSeconds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of seconds spent in successful transfer for the + snapvault relationship. Reset on reboot." + + ::= { snapvaultStatusEntry 12 } + + svThrottleValue OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current throttle value for the snapvault relationship." + + ::= { snapvaultStatusEntry 13 } + + svSrcSnapshotTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time when the source snapshot was created. The time in + seconds since January 1, 1970. The source snapshot here + is the last snapshot successfully transferred from the + source to the destination." + + ::= { snapvaultStatusEntry 14 } + + svBaseSnapshot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the current base snapshot for the + snapvault relationship." + + ::= { snapvaultStatusEntry 15 } + + svLastTransType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the previous successful transfer." + + ::= { snapvaultStatusEntry 16 } + + svLastTransMBs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last successful transfer size in MB for the snapvault + relationship." + + ::= { snapvaultStatusEntry 17 } + + svLastTransTimeSeconds OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Duration of last successful transfer in seconds for the + snapvault relationship." + + ::= { snapvaultStatusEntry 18 } + + snapvaultHostTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapvaultHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of remote snapvault hosts." + + ::= { snapvault 12 } + + snapvaultHostEntry OBJECT-TYPE + SYNTAX SnapvaultHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide snapvault statistics for a remote host + which has one or more current established + relationships with the local snapvault system." + + INDEX { svHostIndex } + ::= { snapvaultHostTable 1 } + + SnapvaultHostEntry ::= + SEQUENCE { + svHostIndex + Integer32, + svHostName + DisplayString, + svHostType + Integer32, + svHostTotalSuccesses + Integer32, + svHostTotalFailures + Integer32, + svHostTotalDeferments + Integer32 + } + + svHostIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapvault remote host table." + + ::= { snapvaultHostEntry 1 } + + svHostName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the remote snapvault host." + + ::= { snapvaultHostEntry 2 } + + svHostType OBJECT-TYPE + SYNTAX INTEGER { + primary(1), + secondary(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the remote snapvault host." + + ::= { snapvaultHostEntry 3 } + + svHostTotalSuccesses OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of successful snapvault transfers + for all current established relationships between + the local snapvault system and the given remote host." + + ::= { snapvaultHostEntry 4 } + + svHostTotalFailures OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of failed snapvault transfers + for all current established relationships between + the local snapvault system and the given remote host." + + ::= { snapvaultHostEntry 5 } + + svHostTotalDeferments OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of deferred snapvault transfers for + all current established relationships between + the local snapvault system and the given remote host. + 0 for snapvault client host." + + ::= { snapvaultHostEntry 6 } + + + snapvaultSchedTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnapvaultSchedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of snapvault schedules." + + ::= { snapvault 13 } + + snapvaultSchedEntry OBJECT-TYPE + SYNTAX SnapvaultSchedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of schedules of snapvault." + + INDEX { svSchedIndex } + ::= { snapvaultSchedTable 1 } + + SnapvaultSchedEntry ::= + SEQUENCE { + svSchedIndex + Integer32, + svSchedVolume + DisplayString, + svSchedSnapshot + DisplayString, + svSchedStatus + Integer32, + svSchedType + Integer32, + svSchedSchedule + DisplayString + } + + svSchedIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the snapvault schedule table." + + ::= { snapvaultSchedEntry 1 } + + svSchedVolume OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the volume on the snapvault for the + snapvault schedule. This does not have a /vol/ prefix." + + ::= { snapvaultSchedEntry 2 } + + svSchedSnapshot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the snapshot for the snapvault schedule." + + ::= { snapvaultSchedEntry 3 } + + svSchedStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + queued(2), + active(3), + aborting(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current status of the snapvault schedule." + + ::= { snapvaultSchedEntry 4 } + + svSchedType OBJECT-TYPE + SYNTAX INTEGER { + undef(1), + xfer(2), + create(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the snapvault schedule." + + ::= { snapvaultSchedEntry 5 } + + + svSchedSchedule OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The update schedule of the snapvault." + + ::= { snapvaultSchedEntry 6 } + + svDrPrimaryIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the snapvault disaster recovery primary is + licensed on the filer." + + ::= { snapvault 14 } + + -- -- -- -- -- -- -- -- + -- the ndmpd group -- + -- -- -- -- -- -- -- -- + + ndmpOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether ndmpd has been turned on or not." + ::= { ndmp 1 } + + ndmpSessionOpened OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of ndmpd sessions currently opened. + Sessions may be running backups, restores or neither." + ::= { ndmp 2 } + + ndmpBackupActive OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd backups currently active." + ::= { ndmp 3 } + + ndmpRestoreActive OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd restores currently active." + ::= { ndmp 4 } + + ndmpTapeActive OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of tape drives currently active." + ::= { ndmp 5 } + + ndmpBackupSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd backups that succeeded." + ::= { ndmp 6 } + + ndmpRestoreSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd restores that succeeded." + ::= { ndmp 7 } + + ndmpBackupFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd backups that failed." + ::= { ndmp 8 } + + ndmpRestoreFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of ndmpd restores that failed." + ::= { ndmp 9 } + + ndmpBackupFailureReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the ndmpBackupFailures value is non-zero, this string + describes the reason for the most recent backup failure." + ::= { ndmp 10 } + + ndmpRestoreFailureReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When the ndmpRestoreFailures value is non-zero, this string + describes the reason for the most recent restore failure." + ::= { ndmp 11 } + + -- -- -- -- -- -- -- -- + -- the ftpd group -- + -- -- -- -- -- -- -- -- + + ftpdOn OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether ftpd has been turned on or not." + ::= { ftpd 1 } + + ftpdCurrentConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of currently open TCP/IP connections to ftp daemon (active and idle)" + ::= { ftpd 2 } + + ftpdMaxConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of maximum simultaneous TCP/IP connections to ftp daemon" + ::= { ftpd 3 } + + ftpdTotalConns OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of total TCP/IP connections to ftp daemon" + ::= { ftpd 4 } + + -- -- -- -- -- -- -- -- + -- the fabric group -- + -- -- -- -- -- -- -- -- + + fabricInstances OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of distinct fabrics present." + ::= { fabric 1 } + + fabricTable OBJECT-TYPE + SYNTAX SEQUENCE OF FabricEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of fabrics." + ::= { fabric 2 } + + fabricEntry OBJECT-TYPE + SYNTAX FabricEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current configuration and + status of fabrics." + + INDEX { fabricIndex } + ::= { fabricTable 1 } + + FabricEntry ::= + SEQUENCE { + fabricIndex + Integer32, + fabricStatus + Integer32, + fabricStatusMessage + DisplayString, + fabricName + OCTET STRING, + fabricOwner + Integer32 + } + + fabricIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this fabric entry." + ::= { fabricEntry 1 } + + fabricStatus OBJECT-TYPE + SYNTAX INTEGER { + ok(1), + faulty(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates the overall status of the SAN fabric(s)." + ::= { fabricEntry 2 } + + fabricStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the fabric status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(3)." + ::= { fabricEntry 3 } + + fabricName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the fabric." + ::= { fabricEntry 4 } + + fabricOwner OBJECT-TYPE + SYNTAX INTEGER { + netapp(1), + other(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This indicates who owns the management of + the fabric." + ::= { fabricEntry 5 } + + switchTable OBJECT-TYPE + SYNTAX SEQUENCE OF SwitchEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of switches and hubs + connected to the fabric." + ::= { fabric 3 } + + switchEntry OBJECT-TYPE + SYNTAX SwitchEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current configuration and + status of fabric interconnect elements. This + include switches and hubs." + + INDEX { switchFabricIndex, switchIndex } + ::= { switchTable 1 } + + SwitchEntry ::= + SEQUENCE { + switchIndex + Integer32, + switchName + OCTET STRING, + switchSymbolicName + OCTET STRING, + switchType + Integer32, + switchDomain + Integer32, + switchManagementId + Integer32, + switchStatus + Integer32, + switchStatusMessage + DisplayString, + switchLinkSpeed + Integer32, + switchHighPacketsProcessed + Counter32, + switchLowPacketsProcessed + Counter32, + switchHighPacketsRejected + Counter32, + switchLowPacketsRejected + Counter32, + switchFabricIndex + Integer32, + switch64PacketsProcessed + Counter64, + switch64PacketsRejected + Counter64 + } + + switchIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this switch entry." + ::= { switchEntry 1 } + + switchName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the switch." + ::= { switchEntry 2 } + + switchSymbolicName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the symbolic name of the switch." + ::= { switchEntry 3 } + + switchType OBJECT-TYPE + SYNTAX INTEGER { + hub(1), + switch(2), + unknown(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the switch." + ::= { switchEntry 4 } + + switchDomain OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The domain identifier of the switch." + ::= { switchEntry 5 } + + switchManagementId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The in-band management identifier of the switch." + ::= { switchEntry 6 } + + switchStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + unknown(2), + ok(3), + nonCritical(4), + critical(5), + nonRecoverable(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of the switch." + ::= { switchEntry 7 } + + switchStatusMessage OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string describing the switch status, + including a description of the condition (if + any) that caused the status to be anything + other than ok(3)." + ::= { switchEntry 8 } + + switchLinkSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The link speed of the switch. The value is an integer + whose units are Gbits (for example, a value of 2 represents + a link speed of 2 Gbit)." + ::= { switchEntry 9 } + + switchHighPacketsProcessed OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets successfully processed + since the last reboot/reset of the switch. + This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 10 } + + switchLowPacketsProcessed OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets successfully processed + since the last reboot/reset of the switch. + This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 11 } + + switchHighPacketsRejected OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets rejected + since the last reboot/reset of the switch. + This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 12 } + + switchLowPacketsRejected OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets rejected + since the last reboot/reset of the switch. + This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { switchEntry 13 } + + switchFabricIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the fabric on which this switch + resides. The value ranges from 1 to the value + of fabricInstances." + ::= { switchEntry 14 } + + switch64PacketsProcessed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets successfully processed + since the last reboot/reset of the switch. + This object returns all of the 64 bit unsigned + integer." + ::= { switchEntry 15 } + + switch64PacketsRejected OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of Packets rejected since the last + reboot/reset of the switch. This object returns + all of the 64 bit unsigned integer." + ::= { switchEntry 16 } + + portTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of ports + connected to the fabric." + ::= { fabric 4 } + + portEntry OBJECT-TYPE + SYNTAX PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of current configuration and + status of ports in the fabric." + + INDEX { portFabricIndex, portSwitchIndex, portIndex } + ::= { portTable 1 } + + PortEntry ::= + SEQUENCE { + portIndex + Integer32, + portName + OCTET STRING, + portSwitchIndex + Integer32, + portSwitchName + OCTET STRING, + portNumber + Integer32, + portType + Integer32, + portState + Integer32, + portFabricIndex + Integer32 + } + + portIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this port entry." + ::= { portEntry 1 } + + portName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the port." + ::= { portEntry 2 } + + portSwitchIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the switch on which this port + resides. The value ranges from 1 to the number of + of switches." + ::= { portEntry 3 } + + portSwitchName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This is the WWN of the switch to which + the port is attached." + ::= { portEntry 4 } + + portNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port number on the switch." + ::= { portEntry 5 } + + portType OBJECT-TYPE + SYNTAX INTEGER { + unidentified(1), + nPort(2), + nlPort(3), + fPort(4), + flPort(5), + ePort(6), + bPort(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the port." + ::= { portEntry 6 } + + portState OBJECT-TYPE + SYNTAX INTEGER { + online(1), + offline(2), + testing(3), + faulty(4), + unknown(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of the port." + ::= { portEntry 7 } + + portFabricIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the fabric on which this port + resides. The value ranges from 1 to the value + of fabricInstances." + ::= { portEntry 8 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- + -- The backup(dump/restore) group -- + -- -- -- -- -- -- -- -- -- -- -- -- -- + + dump OBJECT IDENTIFIER ::= { backup 1 } + + restore OBJECT IDENTIFIER ::= { backup 2 } + + -- dump -- + + dmpActives OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active dump." + ::= { dump 1 } + + dmpAttempts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of dump attempted." + ::= { dump 2 } + + dmpSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of dump succeeded." + ::= { dump 3 } + + dmpFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of dump failed." + ::= { dump 4 } + + dmpTable OBJECT-TYPE + SYNTAX SEQUENCE OF DmpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provides a report of dumps on each + dump subtree." + ::= { dump 5 } + + -- dmpTable contained two entries named lastdump and lastsuccess that + -- were incompatible with many mib compilers. These are replaced + -- with objects that work better with these compilers. + + dmpEntry OBJECT-TYPE + SYNTAX DmpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Shows statistics of dumps on an unique + dump subtree." + INDEX { dmpIndex } + ::= { dmpTable 1 } + + DmpEntry ::= + SEQUENCE { + dmpIndex + Integer32, + dmpStPath + DisplayString, + dmpStAttempts + Counter32, + dmpStSuccesses + Counter32, + dmpStFailures + Counter32, + dmpTime + Integer32, + dmpStatus + Integer32, +-- lastdump entries + dmpLevel + Integer32, + dmpNumFiles + Integer32, +-- lastsuccess entries + dmpDataAmount + Integer32, + dmpStartTime + Integer32, + dmpDuration + TimeTicks + } + + dmpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Index into the subtree dump table." + ::= { dmpEntry 1 } + + dmpStPath OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The full path to the dump subtree. In the + format of /vol//..." + ::= { dmpEntry 2 } + + dmpStAttempts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "No. of dump attempted for the subtree." + ::= { dmpEntry 3 } + + dmpStSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "No. of dump succeeded for the subtree." + ::= { dmpEntry 4 } + + dmpStFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "No. of dump failed for the subtree." + ::= { dmpEntry 5 } + + dmpTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The start time for the last attempt + to dump the subtree, including the + currently running one. The time in + seconds since January 1, 1970." + ::= { dmpEntry 6 } + + dmpStatus OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The status for the last dump attempt + on the subtree." + ::= { dmpEntry 7 } + + dmpLevel OBJECT-TYPE + SYNTAX Integer32 (0..9) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level of the dump." + ::= { dmpEntry 8 } + + dmpNumFiles OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of files dumped." + ::= { dmpEntry 9 } + + dmpDataAmount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of data dumped, in Megabytes." + ::= { dmpEntry 10 } + + dmpStartTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The start time of the dump. The time is + in seconds since January 1, 1970." + ::= { dmpEntry 11 } + + dmpDuration OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The duration of the dump." + ::= { dmpEntry 12 } + + -- restore -- + + rstActives OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active restore." + ::= { restore 1 } + + rstAttempts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of restore attempted." + ::= { restore 2 } + + rstSuccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of restore succeeded." + ::= { restore 3 } + + rstFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of restore failed." + ::= { restore 4 } + + -- -- -- -- -- -- -- -- + -- DAFS Option group -- + -- -- -- -- -- -- -- -- + + dafsOptions OBJECT IDENTIFIER ::= {dafs 1} + + dafsIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Whether the dafs protocol is licensed on the filer. + Data ONTAP Specific" + ::= { dafsOptions 1 } + + dafsMaxRequestsServer OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide maximum number of concurrent requests + Data ONTAP Specific" + ::= { dafsOptions 2 } + + dafsMaxRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server maximum number of concurrent requests per session + Data ONTAP Specific" + ::= { dafsOptions 3 } + + dafsMaxRequestSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Server maximum size of an inline request" + ::= { dafsOptions 4 } + + dafsMaxResponseSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Server maximum size of an inline response" + ::= { dafsOptions 5 } + + + dafsMaxPendingRequestsServer OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide maximum number of requests that can queue + waiting for resources Data ONTAP Specific" + ::= { dafsOptions 6 } + + dafsUseChecksums OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Server uses checksums" + ::= { dafsOptions 7 } + + dafsNicNumRequestDemons OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server default number of request demons per Nic. + Data ONTAP Specific" + ::= { dafsOptions 8 } + + dafsAnonymousAuthentication OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Allow the server to acception connections with + authentication type NONE." + ::= { dafsOptions 9 } + + dafsServerEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current status of the DAFS server. If true, the DAFS + server is running." + ::= { dafsOptions 10 } + + dafsDefaultUid OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Default client User ID if anonymously connected." + ::= { dafsOptions 11 } + + dafsDefaultGid OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Default client Group ID if anonymously connected." + ::= { dafsOptions 12 } + + dafsMaxDisconnectedSessions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of disconnected sessions for which the + DAFS server will retain response cache data." + ::= { dafsOptions 13 } + + dafsMaxIdleSeconds OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of seconds server will keep a session + open without hearing from the client." + ::= { dafsOptions 14 } + + -- the DAFS VI Nic table + + -- The DAFS VI Nic table contains information about this + -- entity's VI nics attached to DAFS + + dafsNicTable OBJECT-TYPE + SYNTAX SEQUENCE OF DafsNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing DAFS NIC specific + information." + ::= { dafs 2 } + + dafsNicEntry OBJECT-TYPE + SYNTAX DafsNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular current DAFS + nic. An object of this type is transient, + in that it ceases to exist when (or soon after) + the nic is detached." + INDEX { dafsNicIndex } + ::= { dafsNicTable 1 } + + DafsNicEntry ::= + SEQUENCE { + dafsNicIndex + Integer32, + dafsNicName + DisplayString, + dafsNicDevice + DisplayString, + dafsNicState + Integer32, + dafsNicListenAddr + OCTET STRING, + dafsNicNumRqstDemons + Integer32, + dafsNicInBytes + Counter32, + dafsNicDirectInBytes + Counter32, + dafsNicOutBytes + Counter32, + dafsNicDirectOutBytes + Counter32 + } + + dafsNicIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each interface. Its value + ranges between 1 and the value of DafsNicNumber. The + value for each interface must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { dafsNicEntry 1 } + + dafsNicName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing the logical name + under which the nic has been attached." + ::= { dafsNicEntry 2} + + dafsNicDevice OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing the physical name + of the nic that has been attached." + ::= { dafsNicEntry 3} + + dafsNicState OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current state of DAFS nic" + ::= { dafsNicEntry 4 } + + dafsNicListenAddr OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transport specific address structure giving the + DAFS listen address for this NIC." + ::= { dafsNicEntry 5} + + + dafsNicNumRqstDemons OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Number of request demons assigned to this Nic + to handle Nic related events. Data ONTAP Specific" + ::= { dafsNicEntry 6} + + dafsNicInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, include DMA, received on + this interface" + ::= { dafsNicEntry 7} + + dafsNicDirectInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes read directly from the + peer memory through this interface" + ::= { dafsNicEntry 8} + + dafsNicOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, include DMA, sent on + this interface" + ::= { dafsNicEntry 9} + + dafsNicDirectOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes written directly to the + peer memory through this interface" + ::= { dafsNicEntry 10} + + -- -- -- -- -- -- -- -- -- -- + -- DAFS Server Statistics -- + -- -- -- -- -- -- -- -- -- -- + + curDafs OBJECT IDENTIFIER ::= {dafs 3} + + dafsPendingRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide current number of requests that are + queued waiting for resources Data ONTAP Specific" + ::= { curDafs 1 } + + dafsCurrentRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Server wide current number of active requests + Data ONTAP Specific" + ::= { curDafs 2 } + + totDafs OBJECT IDENTIFIER ::= {dafs 4} + + dafsCalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of DAFS calls since last reboot" + ::= { totDafs 1 } + + dafsClientAuths OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Client Auth calls since last reboot" + ::= { totDafs 2 } + + dafsClientConnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Client Connect calls since last reboot" + ::= { totDafs 3 } + + dafsClientConnectAuths OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Client Connect Auth calls since last reboot" + ::= { totDafs 4 } + + dafsConnectBinds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Connect Bind calls since last reboot" + ::= { totDafs 5 } + + dafsDisconnects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Disconnect calls since last reboot" + ::= { totDafs 6 } + + dafsRegisterCreds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Register Credential calls since last reboot" + ::= { totDafs 7 } + + dafsReleaseCreds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Release Credential calls since last reboot" + ::= { totDafs 8 } + + dafsSecinfos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Secinfo calls since last reboot" + ::= { totDafs 9 } + + dafsServerAuths OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Server Auth calls since last reboot" + ::= { totDafs 10 } + + dafsCheckResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Check Response calls since last reboot" + ::= { totDafs 11 } + + dafsFetchResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Fetch Response calls since last reboot" + ::= { totDafs 12 } + + dafsDiscardResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Discard Responses calls since last reboot" + ::= { totDafs 13 } + + dafsAccesses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Access calls since last reboot" + ::= { totDafs 14 } + + dafsCacheHints OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Cache Hint calls since last reboot" + ::= { totDafs 15 } + + dafsCloses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Close calls since last reboot" + ::= { totDafs 16 } + + dafsCommits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Commit calls since last reboot" + ::= { totDafs 17 } + + dafsCreates OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Create calls since last reboot" + ::= { totDafs 18 } + + dafsDelegPurges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Delegate Purge calls since last reboot" + ::= { totDafs 19 } + + dafsDelegReturns OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Delegate Return calls since last reboot" + ::= { totDafs 20 } + + dafsGetFsattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Get Fsattr calls since last reboot" + ::= { totDafs 21 } + + dafsGetRootHandles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Get Root Handle calls since last reboot" + ::= { totDafs 22 } + + dafsGetattrInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Getattr Inline calls since last reboot" + ::= { totDafs 23 } + + dafsGetattrDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Getattr Direct calls since last reboot" + ::= { totDafs 24 } + + dafsLinks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Link calls since last reboot" + ::= { totDafs 25 } + + dafsLocks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Lock calls since last reboot" + ::= { totDafs 26 } + + dafsLockts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LockT calls since last reboot" + ::= { totDafs 27} + + dafsLockus OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LockU calls since last reboot" + ::= { totDafs 28 } + + dafsLookUps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LookUp calls since last reboot" + ::= { totDafs 29 } + + dafsLookUpps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of LookUpp calls since last reboot" + ::= { totDafs 30 } + + dafsNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Null calls since last reboot" + ::= { totDafs 31 } + + dafsNverifys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Nverify calls since last reboot" + ::= { totDafs 32 } + + dafsOpens OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Open calls since last reboot" + ::= { totDafs 33 } + + dafsOpenDowngrades OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Open Downgrade calls since last reboot" + ::= { totDafs 34 } + + dafsOpenattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Openattr calls since last reboot" + ::= { totDafs 35 } + + dafsReadInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Read Inline calls since last reboot" + ::= { totDafs 36 } + + dafsReadDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Read Direct calls since last reboot" + ::= { totDafs 37 } + + dafsReaddirInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readdir Inline calls since last reboot" + ::= { totDafs 38 } + + dafsReaddirDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readdir Direct calls since last reboot" + ::= { totDafs 39 } + + dafsReadlinkInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readlink Inline calls since last reboot" + ::= { totDafs 40 } + + dafsReadlinkDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Readlink Direct calls since last reboot" + ::= { totDafs 41 } + + dafsRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Remove calls since last reboot" + ::= { totDafs 42 } + + dafsRenames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Rename calls since last reboot" + ::= { totDafs 43 } + + dafsSetattrInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Setattr Inline calls since last reboot" + ::= { totDafs 44 } + + dafsSetattrDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Setattr Direct calls since last reboot" + ::= { totDafs 45 } + + dafsVerifys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Verify calls since last reboot" + ::= { totDafs 46 } + + dafsBatchSubmits OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Batch Submit calls since last reboot" + ::= { totDafs 47 } + + dafsWriteInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Write Inline calls since last reboot" + ::= { totDafs 48 } + + dafsWriteDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Write Direct calls since last reboot" + ::= { totDafs 49 } + + dafsBcGetattrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Getattr calls since last reboot" + ::= { totDafs 50 } + + dafsBcNulls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Null calls since last reboot" + ::= { totDafs 51 } + + dafsBcRecalls OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Recall calls since last reboot" + ::= { totDafs 52 } + + dafsBcBatchCompletions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of BC Batch Completion calls since + last reboot" + ::= { totDafs 53 } + + dafsAppendInlines OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Append Inline calls since + last reboot" + ::= { totDafs 54 } + + dafsAppendDirects OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Append Direct calls since + last reboot" + ::= { totDafs 55 } + + dafsGetFencingLists OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Get Fencing List calls since + last reboot" + ::= { totDafs 56 } + + dafsSetFencingLists OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Set Fencing List calls since + last reboot" + ::= { totDafs 57 } + + dafsHurryUps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of Hurry Up calls since + last reboot" + ::= { totDafs 58 } + + dafsInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, including DMA, received since the + last reboot" + ::= { totDafs 59 } + + dafsDirectInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes received directly into memory + since last reboot" + ::= { totDafs 60 } + + dafsOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes, including DMA, sent since the + last reboot" + ::= { totDafs 61 } + + dafsDirectOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of bytes sent directly into remote memory since + the last reboot" + ::= { totDafs 62 } + + dafsSessionTable OBJECT-TYPE + SYNTAX SEQUENCE OF DafsSessionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing current DAFS client session + information." + ::= { dafs 5 } + + dafsSessionEntry OBJECT-TYPE + SYNTAX DafsSessionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular DAFS + session. An object of this type is transient, + in that it ceases to exist when (or soon after) + the client disconnects." + + INDEX { dafsSessionIndex } + ::= { dafsSessionTable 1 } + + DafsSessionEntry ::= + SEQUENCE { + dafsSessionIndex + Integer32, + dafsSessionId + OCTET STRING, + dafsSessionEndian + Integer32, + dafsSessionAllowBackChannel + Integer32, + dafsSessionAllowRdmaReadChannel + Integer32, + dafsSessionUseChecksums + Integer32, + dafsSessionMaxCredentials + Integer32, + dafsSessionMaxRequestSize + Integer32, + dafsSessionMaxResponseSize + Integer32, + dafsSessionMaxRequests + Integer32, + dafsSessionInlineWriteHeaderSize + Integer32, + dafsSessionClientIdString + OCTET STRING, + dafsSessionClientVerifier + OCTET STRING, + dafsSessionNumCredentials + Integer32, + dafsSessionNumRequests + Integer32 + } + + dafsSessionIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each session." + ::= { dafsSessionEntry 1 } + + dafsSessionId OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session Identifier assigned by the server." + ::= { dafsSessionEntry 2 } + + dafsSessionEndian OBJECT-TYPE + SYNTAX INTEGER { + bigEndian(1), + littleEndian(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Byte order used on this session." + ::= { dafsSessionEntry 3 } + + dafsSessionAllowBackChannel OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session may use a back control channel." + ::= { dafsSessionEntry 4 } + + dafsSessionAllowRdmaReadChannel OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session may use a RDMA read channel." + ::= { dafsSessionEntry 5 } + + dafsSessionUseChecksums OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Session uses checksums." + ::= { dafsSessionEntry 6 } + + dafsSessionMaxCredentials OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of credientials that can be registered + on this session." + ::= { dafsSessionEntry 7 } + + dafsSessionMaxRequestSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum size of a DAFS request." + ::= { dafsSessionEntry 8 } + + dafsSessionMaxResponseSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum size of a DAFS response." + ::= { dafsSessionEntry 9 } + + dafsSessionMaxRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of concurrent requests." + ::= { dafsSessionEntry 10 } + + dafsSessionInlineWriteHeaderSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of DAFS headers plus padding to the start of + data. Used to better align inline data." + ::= { dafsSessionEntry 11 } + + dafsSessionClientIdString OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Client ID string supplied by the client. Intended to + uniquely identify that client." + ::= { dafsSessionEntry 12 } + + dafsSessionClientVerifier OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Supplied by the client to uniquely identify an + instnce of a client." + ::= { dafsSessionEntry 13 } + + dafsSessionNumCredentials OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current number of credentials registered on this + session" + ::= { dafsSessionEntry 14 } + + dafsSessionNumRequests OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current number of active requests on this session" + ::= { dafsSessionEntry 15 } + + -- the DAFS Export table + + -- The DAFS Export table contains information about this + -- entity's exported filesystems + + dafsExportTable OBJECT-TYPE + SYNTAX SEQUENCE OF DafsExportEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing DAFS Export filesystems." + ::= { dafs 6 } + + dafsExportEntry OBJECT-TYPE + SYNTAX DafsExportEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a particular current DAFS + export. An object of this type is transient, + in that it ceases to exist when (or soon after) + the export is deleted." + INDEX { dafsExportIndex } + ::= { dafsExportTable 1 } + + DafsExportEntry ::= + SEQUENCE { + dafsExportIndex + Integer32, + dafsExportName + DisplayString, + dafsExportPath + DisplayString, + dafsExportEnabled + Integer32, + dafsExportRwMode + Integer32, + dafsExportAccessList + DisplayString + } + + dafsExportIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each export. Its value + ranges between 1 and the number of exports. The + value for each export must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { dafsExportEntry 1 } + + dafsExportName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + export. This is the logical export name." + ::= { dafsExportEntry 2} + + dafsExportPath OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + export. This is the local filesystem path to + the export." + ::= { dafsExportEntry 3} + + dafsExportEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This export is available for access." + ::= { dafsExportEntry 4 } + + dafsExportRwMode OBJECT-TYPE + SYNTAX INTEGER { + readwrite(1), + readmostly(2), + readonly(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global export mode. This represents the maximum + access rights." + ::= { dafsExportEntry 5 } + + dafsExportAccessList OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + export. This is the list of hosts that may + access the export. If empty, all hosts may + access the export." + ::= { dafsExportEntry 6 } + + -------------------------- + -- VI interface statistics + -------------------------- + + viaNodeConnection OBJECT IDENTIFIER ::= { vi 1 } + + viaNodeSystemName OBJECT-TYPE + SYNTAX DisplayString(SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string by which the node is identified in the cluster." + ::= { viaNodeConnection 1 } + + viaCreated OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs created." + ::= { viaNodeConnection 2 } + + viaConnectRequest OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times Connect Request call is made." + ::= { viaNodeConnection 3 } + + viaConnectWait OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times Connect wait call is made." + ::= { viaNodeConnection 4 } + + viaDisconnect OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times VI got disconnected with out any error." + ::= { viaNodeConnection 5 } + + viaConnectTimeOut OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times VI connect request got timed out." + ::= { viaNodeConnection 6 } + + viaConnected OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of time VI got connected with out any error." + ::= { viaNodeConnection 7 } + + viaCurrConnectPending OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which connect request is pending." + ::= { viaNodeConnection 8 } + + viaCurrConnectWaitPending OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which connect wait request is pending." + ::= { viaNodeConnection 9 } + + viaCurrConnected OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which the current state is CONNECTED." + ::= { viaNodeConnection 10 } + + viaCurrError OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs for which the current state is ERROR" + ::= { viaNodeConnection 11 } + + viaTotalError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of VIs which encountered error state." + ::= { viaNodeConnection 12 } + + viaInMsgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming Messages received." + ::= { viaNodeConnection 13 } + + viaInRdma OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming RDMA requests received." + ::= { viaNodeConnection 14 } + + viaInBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming bytes received, including those + received in error. This count includes bytes received on + currently established connections. This corresponds to the sum + of bytes received through received messages, incoming RDMA writes + and RDMA reads issued" + ::= { viaNodeConnection 15 } + + viaInRDMAReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of incoming bytes received through RDMA read, + including those received in error. This count includes bytes + received on currently established connections." + ::= { viaNodeConnection 16 } + + viaInRDMAWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes received through incoming RDMA writes, + including those received in error. This count includes bytes + received on currently established connections." + ::= { viaNodeConnection 17 } + + viaOutMsgs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Messages sent." + ::= { viaNodeConnection 18 } + + viaOutRdma OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of RDMA requests sent." + ::= { viaNodeConnection 19 } + + viaOutBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes sent, including those + sent in error. This count includes bytes sent on + currently established connections." + ::= { viaNodeConnection 20 } + + viaOutRDMAReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes sent through an incoming + RDMA read request, including those sent in error. + This count includes bytes sent on currently established + connections." + ::= { viaNodeConnection 21 } + + viaOutRDMAWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes sent through a RDMA write + operation, including those sent in error. This count + includes bytes sent on currently established connections." + ::= { viaNodeConnection 22 } + + + viaConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF ViaConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing via connection specific information." + ::= { viaNodeConnection 23 } + + viaConnEntry OBJECT-TYPE + SYNTAX ViaConnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A conceptual row of the viaConnTable containing information + about a particular current via connection. Each row of this + table is transient, and it ceases to exist when the + connection makes transition to the CLOSED state." + INDEX { viaConnVINumber } + ::= { viaConnTable 1 } + + ViaConnEntry ::= SEQUENCE { + viaConnState Integer32, + viaConnVINumber Integer32, + viaConnRemoteNetAddress IpAddress, + viaConnLocalNetAddress IpAddress, + viaConnRemotePortNumber Integer32, + viaConnLocalPortNumber Integer32, + viaConnLocalDescriminator OCTET STRING, + viaConnRemoteDescriminator OCTET STRING, + viaConnLocalMaxTransferSize Integer32, + viaConnRemoteMaxTransferSize Integer32, + viaConnLocalEnableRdmaWrite Integer32, + viaConnLocalEnableRdmaRead Integer32, + viaConnRemoteEnableRdmaWrite Integer32, + viaConnRemoteEnableRdmaRead Integer32, + viaConnSentMessages Counter32, + viaConnSentRdmaReadMessages Counter32, + viaConnSentRdmaWriteMessages Counter32, + viaConnRcvdMessages Counter32, + viaConnRcvdRdmaReadMessages Counter32, + viaConnRcvdRdmaWriteMessages Counter32 + } + + viaConnState OBJECT-TYPE + SYNTAX INTEGER { + idle (1), + pendingConnect(2), + connected(3), + error(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of this via connection + Legal States: + Idle 1 + Pending Connect 2 + Connected 3 + Error 4" + ::= { viaConnEntry 1 } + + viaConnVINumber OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number which uniquely defines a connection." + ::= { viaConnEntry 2 } + + viaConnRemoteNetAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IP address of the remote system of the connection." + ::= { viaConnEntry 3 } + + viaConnLocalNetAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Local IPadress of the connection." + ::= { viaConnEntry 4 } + + viaConnRemotePortNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Remote TCP portnumber of the connection." + ::= { viaConnEntry 5 } + + viaConnLocalPortNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Local TCP Portnumber of the connection." + ::= { viaConnEntry 6 } + + viaConnLocalDescriminator OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An identifier used by the local process to identify the + VI connection." + ::= { viaConnEntry 7 } + + viaConnRemoteDescriminator OBJECT-TYPE + SYNTAX OCTET STRING + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An identifier used by the remote process to identify the + VI connection." + ::= { viaConnEntry 8 } + + viaConnLocalMaxTransferSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local limit on the maximum packet size that can be + transfered through the connection." + ::= { viaConnEntry 9 } + + viaConnRemoteMaxTransferSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote limit on the maximum packet size that can be + transfered through the connection." + ::= { viaConnEntry 10 } + + viaConnLocalEnableRdmaWrite OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA write is enabled + in the local system otherwise, it is 0." + ::= { viaConnEntry 11 } + + viaConnLocalEnableRdmaRead OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA read is enabled + in the local system otherwise, it is 0." + ::= { viaConnEntry 12 } + + viaConnRemoteEnableRdmaWrite OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA write is enabled + in the remote system otherwise, it is 0." + ::= { viaConnEntry 13 } + + viaConnRemoteEnableRdmaRead OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value is 1 if remote DMA read is enabled + in the remote system otherwise, it is 0." + ::= { viaConnEntry 14 } + + viaConnSentMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of messages sent through the connection." + ::= { viaConnEntry 15 } + + viaConnSentRdmaReadMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma read messages sent through the + connection." + ::= { viaConnEntry 16 } + + viaConnSentRdmaWriteMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma write messages sent through the + connection." + ::= { viaConnEntry 17 } + + viaConnRcvdMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of messages received through the connection." + ::= { viaConnEntry 18 } + + viaConnRcvdRdmaReadMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma read messages received through the + connection." + ::= { viaConnEntry 19 } + + viaConnRcvdRdmaWriteMessages OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of rdma write messages received through the + connection." + ::= { viaConnEntry 20 } + + viaErrors OBJECT IDENTIFIER ::= { vi 2 } + + viaErrPostDesc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of descriptors completed in error + by NIC." + ::= { viaErrors 1 } + + viaErrConnLost OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Lost Connection errors. " + ::= { viaErrors 2 } + + viaErrRecvQEmpty OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors due to an empty receive Queue. " + ::= { viaErrors 3 } + + viaErrRdmawProt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of remote DMA write protection errors. " + ::= { viaErrors 4 } + + viaErrRdmarProt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of remote DMA read protection errors. " + ::= { viaErrors 5 } + + viaErrCompProt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of protection errors. " + ::= { viaErrors 6 } + + viaErrorThreshold OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Setting this threshold will cause a trap to be enabled + such that if the total error exceeds error threshold set + a viaNodeErrorsTrap trap will be generated." + ::= { viaErrors 7 } + + viaNicAttributes OBJECT IDENTIFIER ::= { vi 3 } + + viaNicTable OBJECT-TYPE + SYNTAX SEQUENCE OF ViaNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing via NIC-specific information." + ::= { viaNicAttributes 1} + + viaNicEntry OBJECT-TYPE + SYNTAX ViaNicEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A conceptual row of the viaNicTable containing information + about a particular present VINic." + + INDEX { viaNicIndex } + ::= { viaNicTable 1 } + + ViaNicEntry ::= SEQUENCE { + viaNicIndex Integer32, + viaName DisplayString, + viaHardwareVersion DisplayString, + viaProviderVersion DisplayString, + viaNicAddress PhysAddress, + viaThreadSafe Integer32, + viaMaxDiscriminatorLength Integer32, + viaMaxRegisterBytes Integer32, + viaMaxRegisterRegions Integer32, + viaMaxRegisterBlockBytes Integer32, + viaMaxVI Integer32, + viaMaxDescriptorsPerQueue Integer32, + viaMaxSegmentsPerDesc Integer32, + viaMaxCQ Integer32, + viaMaxCQEntries Integer32, + viaMaxTransferSize Integer32, + viaNativeMTU Integer32, + viaMaxPTags Integer32, + viaCurrRegisterBytes Integer32, + viaCurrRegisterRegions Integer32, + viaCurrVI Integer32, + viaCurrCQ Integer32, + viaCurrPTags Integer32, + viaConnectionListenPort Integer32 + } + + viaNicIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The index of the NIC in the NIC table." + ::= { viaNicEntry 1 } + + viaName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The symbolic name of the NIC device." + ::= { viaNicEntry 2 } + + viaHardwareVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of the VINIC described by this MIB." + ::= { viaNicEntry 3 } + + viaProviderVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of the VI provider." + ::= { viaNicEntry 4 } + + viaNicAddress OBJECT-TYPE + SYNTAX PhysAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Network address of this NIC." + ::= { viaNicEntry 5 } + + viaThreadSafe OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "1 if synchronisation model is thread safe else 0." + ::= { viaNicEntry 6 } + + viaMaxDiscriminatorLength OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of bytes that the VI provider allows + for a connection descriminator." + ::= { viaNicEntry 7 } + + viaMaxRegisterBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of bytes that can be registered." + ::= { viaNicEntry 8 } + + viaMaxRegisterRegions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of memory regions that can be registered." + ::= { viaNicEntry 9 } + + viaMaxRegisterBlockBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Largest contiguous block of memory that can be registered." + ::= { viaNicEntry 10 } + + viaMaxVI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit on the total number of VI instances this entity can + support." + ::= { viaNicEntry 11 } + + viaMaxDescriptorsPerQueue OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum Descriptors per VI Work Queue that this VI provider + can support." + ::= { viaNicEntry 12 } + + viaMaxSegmentsPerDesc OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of segments per descriptor that this VI provider + can support." + ::= { viaNicEntry 13 } + + viaMaxCQ OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of completion queues this VI provider can support." + ::= { viaNicEntry 14 } + + viaMaxCQEntries OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of Completion queue entries per completion queue + that this VI provider can support." + ::= { viaNicEntry 15 } + + viaMaxTransferSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum transfer size supported by the VI Nic. The maximum + transfer size is the amount of data that can be described by a + single VI descriptor." + ::= { viaNicEntry 16 } + + viaNativeMTU OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The native MTU size of the underlying network. For frame-based + networks, this could reflect its native frame size. For cell-based + networks, it could reflect the MTU of the appropriate abstraction + layer that it supports." + ::= { viaNicEntry 17 } + + viaMaxPTags OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of protection tags that are supported by this + VI provider." + ::= { viaNicEntry 18 } + + viaCurrRegisterBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of bytes registered by the VI user for this + NIC." + ::= { viaNicEntry 19 } + + viaCurrRegisterRegions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of memory regions that is registered by VI user + for this NIC." + ::= { viaNicEntry 20 } + + viaCurrVI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current number of VI instances for this NIC." + ::= { viaNicEntry 21 } + + viaCurrCQ OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current number of completion queues this VI provider + has." + ::= { viaNicEntry 22 } + + viaCurrPTags OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current Number of protection tags this VI provider has." + ::= { viaNicEntry 23 } + + viaConnectionListenPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Port number on which VI server is listening for VI connection + request." + ::= { viaNicEntry 24 } + + + -- -- -- -- -- -- -- -- + -- VFILER group -- + -- -- -- -- -- -- -- -- + vfilerIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether vfiler is licensed on the + filer." + ::= { vfiler 1 } + + vfFilers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of vfilers in the physical Filer." + ::= { vfiler 2 } + + vfTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler general information " + ::= { vfiler 3 } + + vfEntry OBJECT-TYPE + SYNTAX VfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler information" + INDEX { vfIndex} + ::= { vfTable 1 } + + VfEntry ::= + SEQUENCE { + vfIndex + Integer32, + vfName + DisplayString, + vfUuid + OCTET STRING, + vfIpAddresses + Integer32, + vfStoragePaths + Integer32, + vfIpSpace + DisplayString, + vfAllowedProtocols + Integer32, + vfDisallowedProtocols + Integer32, + vfState + Integer32 + } + + vfIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the referenced vfiler." + ::= { vfEntry 1 } + + + vfName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A textual string that contains the name of the referenced vfiler." + ::= { vfEntry 2 } + + vfUuid OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..36)) + MAX-ACCESS read-only + STATUS current + + DESCRIPTION + "The UUID of the referenced vfiler." + ::= { vfEntry 3 } + + vfIpAddresses OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of IP addresses for the referenced vfiler." + ::= { vfEntry 4 } + + + vfStoragePaths OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of storage paths for the referenced vfiler." + ::= { vfEntry 5 } + + vfIpSpace OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A textual string that contains the name of the ipspace that the referenced vfiler belongs to." + ::= { vfEntry 6 } + + vfAllowedProtocols OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of protocols allowed for the referenced vfiler." + ::= { vfEntry 7 } + + vfDisallowedProtocols OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of protocols disallowed for the referenced vfiler." + ::= { vfEntry 8 } + + vfState OBJECT-TYPE + SYNTAX INTEGER { + stopped (1), + running (2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the vfiler: Running or stopped." + ::= { vfEntry 9 } + + vfIpTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfIpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler IP addresses information " + ::= { vfiler 4 } + + vfIpEntry OBJECT-TYPE + SYNTAX VfIpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler IP addresses information" + INDEX { vfFiIndex, vfIpIndex } + ::= { vfIpTable 1 } + + VfIpEntry ::= + SEQUENCE { + vfFiIndex + Integer32, + vfIpIndex + Integer32, + vfIpAddr + IpAddress + } + + vfFiIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced vfiler." + ::= { vfIpEntry 1 } + + vfIpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies which IP address in the referenced vfiler." + ::= { vfIpEntry 2 } + + vfIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A IP address for the referenced vfiler." + ::= { vfIpEntry 3 } + + vfSpTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfSpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler storage path information " + ::= { vfiler 5 } + + vfSpEntry OBJECT-TYPE + SYNTAX VfSpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler storage path information" + INDEX { vfFsIndex, vfSpIndex } + ::= { vfSpTable 1 } + + VfSpEntry ::= + SEQUENCE { + vfFsIndex + Integer32, + vfSpIndex + Integer32, + vfSpName + OCTET STRING + } + + vfFsIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced vfiler." + ::= { vfSpEntry 1 } + + vfSpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies which storage path in the referenced vfiler." + ::= { vfSpEntry 2 } + + vfSpName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The storage path name for the referenced vfiler." + ::= { vfSpEntry 3 } + + + vfProTable OBJECT-TYPE + SYNTAX SEQUENCE OF VfProEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler protocol information " + ::= { vfiler 6 } + + vfProEntry OBJECT-TYPE + SYNTAX VfProEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-vfiler protocol information" + INDEX { vfFpIndex, vfProIndex } + ::= { vfProTable 1 } + + VfProEntry ::= + SEQUENCE { + vfFpIndex + Integer32, + vfProIndex + Integer32, + vfProName + OCTET STRING, + vfProStatus + Integer32 + } + + vfFpIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced vfiler." + ::= { vfProEntry 1 } + + vfProIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a protocol in the referenced vfiler." + ::= { vfProEntry 2 } + + vfProName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..1024)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string that contains the protocol name for the referenced vfiler." + ::= { vfProEntry 3 } + + vfProStatus OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the referenced vfiler protocol is allowed or disallowed." + ::= { vfProEntry 4 } + + -- -- -- -- -- -- -- -- + -- Block access protocols group -- + -- -- -- -- -- -- -- -- + fcpIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether FCP access protocols are licensed on the + filer." + ::= { blocks 1 } + + iscsiIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether iSCSI access protocols are licensed on the + filer." + ::= { blocks 2 } + + fcpLowReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via FCP + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 3 } + + fcpHighReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via FCP + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 4 } + + + fcpLowWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via FCP + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 5 } + + + fcpHighWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via FCP + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 6 } + + + iscsiLowReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via iSCSI + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 7 } + + + iscsiHighReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via iSCSI + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 8 } + + + iscsiLowWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via iSCSI + since the last boot. This object returns the + least significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 9 } + + + iscsiHighWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via iSCSI + since the last boot. This object returns the + most significant 32 bits of the 64 bit unsigned + integer." + ::= { blocks 10 } + + + iscsiHighOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of iSCSI ops handled since the + last boot. This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 11} + + iscsiLowOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of iSCSI ops handled since the + last boot. This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 12} + + fcpHighOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of FCP ops handled since the + last boot. This object returns the most significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 13} + + fcpLowOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of FCP ops handled since the + last boot. This object returns the least significant + 32 bits of the 64 bit unsigned integer." + ::= {blocks 14} + + lun OBJECT IDENTIFIER ::= {blocks 15 } + + lunCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of LUNs in the Filer." + ::= { lun 1 } + + lunTable OBJECT-TYPE + SYNTAX SEQUENCE OF LunEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-LUN general information " + ::= {lun 2} + + lunEntry OBJECT-TYPE + SYNTAX LunEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-LUN information" + INDEX { lunIndex} + ::= { lunTable 1 } + + LunEntry ::= + SEQUENCE { + lunIndex Integer32, + lunName DisplayString, + lunComment DisplayString, + lunSizeLow Integer32, + lunSizeHigh Integer32, + lunMapped Integer32, + lunSerialNumber DisplayString, + lunQtreeName DisplayString, + lunHighOps Counter32, + lunLowOps Counter32, + lunHighReadBytes Counter32, + lunLowReadBytes Counter32, + lunHighWriteBytes Counter32, + lunLowWriteBytes Counter32, + lunHighErrors Counter32, + lunLowErrors Counter32, + lunOnline Integer32, + lunSnapStatus Integer32, + lunShareStatus Integer32, + lunSpaceReserved Integer32, + lunStatsResetTime Integer32, + lunHighReadOps Counter32, + lunLowReadOps Counter32, + lunHighWriteOps Counter32, + lunLowWriteOps Counter32, + lunHighOtherOps Counter32, + lunLowOtherOps Counter32, + lunSize64 Counter64, + lun64Ops Counter64, + lun64ReadBytes Counter64, + lun64WriteBytes Counter64, + lun64Errors Counter64, + lun64ReadOps Counter64, + lun64WriteOps Counter64, + lun64OtherOps Counter64 + } + + lunIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the referenced LUN." + ::= { lunEntry 1 } + + lunName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the LUN. This is also the path to the LUN + on the filer." + ::= { lunEntry 2 } + + lunComment OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The comment, if any, for this LUN." + ::= { lunEntry 3 } + + lunSizeLow OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of the LUN in bytes. This object returns the + least significant 32 bits of the 64 bit unsigned integer." + ::= { lunEntry 4 } + + lunSizeHigh OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of the LUN in bytes. This object returns the + most significant 32 bits of the 64 bit unsigned integer." + ::= { lunEntry 5 } + + lunMapped OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This LUN has been mapped to at least one initiator group." + ::= { lunEntry 6 } + + lunSerialNumber OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 12 character SCSI serial number of the LUN." + ::= { lunEntry 7 } + + + lunQtreeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string that indicates which qtree this LUN belongs to." + ::= { lunEntry 8 } + + lunHighOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops for + this LUN since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 9} + + lunLowOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops for + this LUN since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 10 } + + lunHighReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from this LUN + since the stats were last reset. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 11 } + + lunLowReadBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from this LUN + since the stats were last reset. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 12 } + + + lunHighWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to this LUN + since the stats were last reset. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 13 } + + lunLowWriteBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to this LUN + since the stats were last reset. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { lunEntry 14 } + + lunHighErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors seen on this LUN + since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 15 } + + lunLowErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors seen on this LUN + since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 16 } + + lunOnline OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the LUN is online." + ::= { lunEntry 17 } + + lunSnapStatus OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether a snapshot of this LUN can be taken." + ::= { lunEntry 18 } + + + lunShareStatus OBJECT-TYPE + SYNTAX INTEGER { + none(1), + read(2), + write(3), + all(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sharing status for the LUN." + ::= { lunEntry 19 } + + + lunSpaceReserved OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether the LUN has space reservation enabled." + ::= { lunEntry 20 } + + lunStatsResetTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of seconds since this LUN's stats were + last reset." + ::= { lunEntry 21 } + + + lunHighReadOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI read ops for + this LUN since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 22} + + lunLowReadOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI read ops for + this LUN since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 23 } + + + lunHighWriteOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI write ops for + this LUN since the stats were last reset. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 24} + + lunLowWriteOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI write ops for + this LUN since the stats were last reset. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { lunEntry 25 } + + + lunHighOtherOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops that are not + read or write for this LUN since the stats were last + reset. This object returns the least significant 32 + bits of the 64 bit unsigned integer." + ::= { lunEntry 26} + + lunLowOtherOps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops that are not + read or write for this LUN since the stats were last + reset. This object returns the most significant 32 + bits of the 64 bit unsigned integer." + ::= { lunEntry 27 } + + lunSize64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Size of the LUN in bytes. This object returns all + of the 64 bit unsigned integer." + ::= { lunEntry 28 } + + lun64Ops OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops for + this LUN since the stats were last reset. This object + all of the 64 bit unsigned integer." + ::= { lunEntry 29} + + lun64ReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read from this LUN + since the stats were last reset. This object returns + all of the 64 bit unsigned integer." + ::= { lunEntry 30 } + + lun64WriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written to this LUN + since the stats were last reset. This object returns + all of the 64 bit unsigned integer." + ::= { lunEntry 31 } + + lun64Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of errors seen on this LUN + since the stats were last reset. This object + returns all the 64 bit unsigned integer." + ::= { lunEntry 32 } + + lun64ReadOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI read ops for + this LUN since the stats were last reset. This object + returns all of the 64 bit unsigned integer." + ::= { lunEntry 33} + + lun64WriteOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI write ops for + this LUN since the stats were last reset. This object + returns all of the 64 bit unsigned integer." + ::= { lunEntry 34} + + lun64OtherOps OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Target side SCSI ops that are not + read or write for this LUN since the stats were last + reset. This object returns all of the 64 bit + unsigned integer." + ::= { lunEntry 35} + + lunMapTable OBJECT-TYPE + SYNTAX SEQUENCE OF LunMapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a table listing the initiator group to + Logical Unit Number mapping for each LUN." + ::= { lun 3 } + + lunMapEntry OBJECT-TYPE + SYNTAX LunMapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a per LUN and Initiator group mapping of + SCSI logical unit numbers." + INDEX { lunMapLUNIndex, lunMapInitiatorGroupIndex } + ::= { lunMapTable 1 } + + LunMapEntry ::= + SEQUENCE { + lunMapLUNIndex Integer32, + lunMapInitiatorGroupIndex Integer32, + lunMapLUNName DisplayString, + lunMapInitiatorGroupName DisplayString, + lunMapLogicalUnitNumber Integer32 + } + + lunMapLUNIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the LUN in the table." + ::= { lunMapEntry 1 } + + lunMapInitiatorGroupIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies an initiator group in + the table." + ::= { lunMapEntry 2 } + + lunMapLUNName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the LUN." + ::= { lunMapEntry 3 } + + lunMapInitiatorGroupName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the initiator group that this LUN is + mapped to." + ::= { lunMapEntry 4 } + + lunMapLogicalUnitNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SCSI Logical Unit Number that this LUN is mapped to + for this initiator group." + ::= { lunMapEntry 5 } + + initiator OBJECT IDENTIFIER ::= {blocks 16} + + initiatorGroupTable OBJECT-TYPE + SYNTAX SEQUENCE OF InitiatorGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-initiator group general + information " + ::= {initiator 1} + + initiatorGroupEntry OBJECT-TYPE + SYNTAX InitiatorGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-initiator group information" + INDEX { initiatorGroupIndex } + ::= { initiatorGroupTable 1 } + + InitiatorGroupEntry ::= + SEQUENCE { + initiatorGroupIndex Integer32, + initiatorGroupName DisplayString, + initiatorGroupType Integer32, + initiatorGroupOS Integer32, + initiatorGroupThrottleReserve Integer32, + initiatorGroupThrottleBorrow Integer32, + initiatorGroupUsePartner Integer32, + initiatorGroupUseALUA Integer32 + } + + initiatorGroupIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific initiator group." + ::= { initiatorGroupEntry 1 } + + initiatorGroupName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the initiator group" + ::= { initiatorGroupEntry 2 } + + initiatorGroupType OBJECT-TYPE + SYNTAX INTEGER { + fcp(1), + iSCSI(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this initiator group, either iSCSI or FCP" + ::= { initiatorGroupEntry 3 } + + initiatorGroupOS OBJECT-TYPE + SYNTAX INTEGER { + default(1), + solaris(2), + windows(3), + hpux(4), + aix(5), + linux(6), + defaultPartner(7), + netware(8), + vmware(9), + openvms(10), + invalid(256) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Operating system the clients in this initiator + group run. This governs the finer details of + SCSI protocol interaction with these initiators" + ::= { initiatorGroupEntry 4 } + + initiatorGroupThrottleReserve OBJECT-TYPE + SYNTAX Integer32 (0..99) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Percentage of filer scsi command blocks reserved for + this initiator group" + ::= { initiatorGroupEntry 5 } + + + initiatorGroupThrottleBorrow OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "True if this inititiator group is allowed to + exceed it's throttle settings if more resources + are needed and otherwise available. If + initiatorGroupThrottleReserve is 0, this value + is meaningless" + ::= { initiatorGroupEntry 6 } + + initiatorGroupUsePartner OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The takeover mode for the initiator group. This is + only applicable to FCP initiator groups on clustered + filers" + ::= { initiatorGroupEntry 7 } + + initiatorGroupUseALUA OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If true this initiator group supports Asymetric Logical + Unit Access." + ::= { initiatorGroupEntry 8 } + + + initiatorGroupMemberTable OBJECT-TYPE + SYNTAX SEQUENCE OF InitiatorGroupMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of individual Initator names in each Initiator + group" + ::= {initiator 2} + + initiatorGroupMemberEntry OBJECT-TYPE + SYNTAX InitiatorGroupMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-initiator group information" + INDEX { initiatorGroupMemberIndex, initiatorGroupMemberNameIndex} + ::= { initiatorGroupMemberTable 1 } + + InitiatorGroupMemberEntry ::= + SEQUENCE { + initiatorGroupMemberIndex + Integer32, + initiatorGroupMemberNameIndex + Integer32, + initiatorName + DisplayString + } + + initiatorGroupMemberIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific initiator group." + ::= { initiatorGroupMemberEntry 1 } + + initiatorGroupMemberNameIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number the identifies the initiator in the group." + ::= { initiatorGroupMemberEntry 2 } + + initiatorName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual name for this initiator." + ::= { initiatorGroupMemberEntry 3 } + + initiatorListTable OBJECT-TYPE + SYNTAX SEQUENCE OF InitatorListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of initiators that are connected to the filer." + ::= { initiator 3 } + + initiatorListEntry OBJECT-TYPE + SYNTAX InitatorListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per-connected-initiator information." + INDEX { initiatorListEntryIndex} + ::= { initiatorListTable 1 } + + InitatorListEntry ::= + SEQUENCE { + initiatorListEntryIndex Integer32, + targetAdapterName DisplayString, + connectedInitiatorNodeName DisplayString, + connectedInitiatorPortName DisplayString, + connectedInitiatorType Integer32, + connectedInitiatorIsid DisplayString, + connectedInitiatorPortalGroup Integer32 + } + + initiatorListEntryIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies the initiator connected to + the target adapter." + ::= { initiatorListEntry 1 } + + targetAdapterName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the target adapter in the filer." + ::= { initiatorListEntry 2 } + + connectedInitiatorNodeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual name for this initiator node." + ::= { initiatorListEntry 3 } + + connectedInitiatorPortName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The FibreChannel device's portname. This is FCP only." + ::= { initiatorListEntry 4 } + + connectedInitiatorType OBJECT-TYPE + SYNTAX INTEGER { + fcp(1), + iSCSI(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this init group, either iSCSI or FCP" + ::= { initiatorListEntry 5 } + + connectedInitiatorIsid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The iSCSI isid (initiator session id) for this initiator. + This is iSCSI only." + ::= { initiatorListEntry 6 } + + connectedInitiatorPortalGroup OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The iSCSI portal group ID for this initiator. + This is iSCSI only." + ::= { initiatorListEntry 7 } + + + fcpTarget OBJECT IDENTIFIER ::= {blocks 17} + + fcpTargetTable OBJECT-TYPE + SYNTAX SEQUENCE OF FcpTargetTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of fcp target adapter general + information " + ::= {fcpTarget 1} + + fcpTargetTableEntry OBJECT-TYPE + SYNTAX FcpTargetTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of per fcp target device information" + INDEX { fcpTargetTableIndex } + ::= { fcpTargetTable 1 } + + FcpTargetTableEntry ::= + SEQUENCE { + fcpTargetTableIndex Integer32, + fcpTargetName DisplayString, + fcpTargetNN DisplayString, + fcpTargetPN DisplayString, + fcpTargetSpeed Integer32, + fcpTargetStatus Integer32, + fcpTargetStandby Integer32, + fcpTargetTopology Integer32, + fcpTargetType Integer32 + } + + fcpTargetTableIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific fcp target device." + ::= { fcpTargetTableEntry 1 } + + fcpTargetName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the fcp target device" + ::= { fcpTargetTableEntry 2 } + + fcpTargetNN OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The FC WWNN of the fcp target device" + ::= { fcpTargetTableEntry 3 } + + fcpTargetPN OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The FC WWPN of the fcp target device" + ::= { fcpTargetTableEntry 4 } + + fcpTargetSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "speed in gigabits per second. 0 is unknown." + ::= { fcpTargetTableEntry 5 } + + fcpTargetStatus OBJECT-TYPE + SYNTAX INTEGER { + startup(1), + uninitialized(2), + initializingFW(3), + linkNotConnected(4), + waitingForLinkUp(5), + online(6), + linkDisconnected(7), + resetting(8), + offline(9), + offlinedByUserSystem(10), + unknown(11) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Status of the fcp target adapter" + ::= { fcpTargetTableEntry 6 } + + fcpTargetStandby OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether this target adapter is in standby mode." + ::= { fcpTargetTableEntry 7 } + + fcpTargetTopology OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + fabric(2), + pointToPoint(3), + loop(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "fibre channel topology for this adapter. " + ::= { fcpTargetTableEntry 8 } + + fcpTargetType OBJECT-TYPE + SYNTAX INTEGER { + physical(1), + local(2), + standby(3), + partner(4), + unknown(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Responsibility/Type for this adapter." + ::= { fcpTargetTableEntry 9 } + + fcpCfMode OBJECT-TYPE + SYNTAX INTEGER { + mixed(1), + standby(2), + partner(3), + partnerProxy(4), + partnerStandby(5), + localPrimary(6), + dualFabric(7), + ssi(8), + unknown(256) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Failover setting for the FCP target cluster." + ::= { blocks 18 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- Port sets + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + pset OBJECT IDENTIFIER ::= {blocks 19} + + psetTable OBJECT-TYPE + SYNTAX SEQUENCE OF PortSetEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of portset general + information " + ::= {pset 1} + + psetEntry OBJECT-TYPE + SYNTAX PortSetEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of portset information" + INDEX { psetIndex } + ::= { psetTable 1 } + + PortSetEntry ::= + SEQUENCE { + psetIndex Integer32, + psetName DisplayString, + psetType Integer32 + } + + psetIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific port set." + ::= { psetEntry 1 } + + psetName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the port set" + ::= { psetEntry 2 } + + psetType OBJECT-TYPE + SYNTAX INTEGER { + fcp(1), + iSCSI(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of this port set, either iSCSI or FCP" + ::= { psetEntry 3 } + + psetMemberTable OBJECT-TYPE + SYNTAX SEQUENCE OF PsetMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of individual Port names in each Port + set" + ::= {pset 2} + + psetMemberEntry OBJECT-TYPE + SYNTAX PsetMemberEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of portset port information" + INDEX { psetMemberIndex, psetMemberNameIndex} + ::= { psetMemberTable 1 } + + PsetMemberEntry ::= + SEQUENCE { + psetMemberIndex + Integer32, + psetMemberNameIndex + Integer32, + psetPortName + DisplayString + } + + psetMemberIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies a specific port set." + ::= { psetMemberEntry 1 } + + psetMemberNameIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number the identifies the port in the set." + ::= { psetMemberEntry 2 } + + psetPortName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual name for this port." + ::= { psetMemberEntry 3 } + + -- The rest of the blocks group. + + fcp64ReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via FCP + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 20 } + + fcp64WriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via FCP + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 21 } + + iscsi64ReadBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes read via iSCSI + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 22 } + + iscsi64WriteBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of bytes written via iSCSI + since the last boot. This object returns all + of the 64 bit unsigned integer." + ::= { blocks 23 } + + iscsi64Ops OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of iSCSI ops handled since the + last boot. This object returns all of the 64 bit + unsigned integer." + ::= { blocks 24 } + + fcp64Ops OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of FCP ops handled since the + last boot. This object returns all of the 64 bit + unsigned integer." + ::= { blocks 25 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NFS caching group + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NFS caching options + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + nfsCacheOptions OBJECT IDENTIFIER ::= { nfscache 1 } + + nfsCacheIsEnabled OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NFS caching is enabled on this system." + ::= { nfsCacheOptions 1 } + + nfsCacheIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Whether NFS caching is licensed on this system." + ::= { nfsCacheOptions 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NFS caching stats + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + nfsCacheStats OBJECT IDENTIFIER ::= { nfscache 2 } + + nfsCacheBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes received from clients" + ::= { nfsCacheStats 1 } + + nfsCacheBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes sent to clients" + ::= { nfsCacheStats 2 } + + nfsCacheBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes received from servers" + ::= { nfsCacheStats 3 } + + nfsCacheBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS bytes sent to servers" + ::= { nfsCacheStats 4 } + + nfsCacheTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS requests received" + ::= { nfsCacheStats 5 } + + nfsCacheHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS requests resulting in cache hits" + ::= { nfsCacheStats 6 } + + nfsCacheMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "Total NFS requests resulting in cache misses" + ::= { nfsCacheStats 7 } + + nfsCacheMissCacheableRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests that were cacheable misses" + ::= { nfsCacheStats 8 } + + nfsCacheMissUnCacheableRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests that were uncacheable misses" + ::= { nfsCacheStats 9 } + + nfsCacheEjectRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in object eject due to expiration" + ::= { nfsCacheStats 10 } + + nfsCacheVerifyRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in object verification" + ::= { nfsCacheStats 11 } + + nfsCacheRpcRecords OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total RPC records received" + ::= { nfsCacheStats 12 } + + nfsCacheBWSavings OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bandwidth savings for NFS requests" + ::= { nfsCacheStats 13 } + + nfsCacheHighBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from clients. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 14 } + + nfsCacheLowBytesFromClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from clients. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 15 } + + nfsCacheHighBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to clients. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 16 } + + nfsCacheLowBytesToClients OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to clients. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 17 } + + nfsCacheHighBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from servers. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 18 } + + nfsCacheLowBytesFromServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from servers. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 19 } + + nfsCacheHighBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to servers. This object + returns the most significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 20 } + + nfsCacheLowBytesToServers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to servers. This object + returns the least significant 32 bits of the 64 bit + unsigned integer." + ::= { nfsCacheStats 21 } + + nfsCacheHighTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests received. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 22 } + + nfsCacheLowTotalRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests received. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { nfsCacheStats 23 } + + nfsCacheHighHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache hits. This + object returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 24 } + + nfsCacheLowHitRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache hits. This + object returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 25 } + + nfsCacheHighMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache misses. This + object returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 26 } + + nfsCacheLowMissRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache misses. This + object returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { nfsCacheStats 27 } + + nfsCache64BytesFromClients OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from clients. This object + returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 28 } + + nfsCache64BytesToClients OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to clients. This object returns + all of the 64 bit unsigned integer." + ::= { nfsCacheStats 29 } + + nfsCache64BytesFromServers OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes received from servers. This object + returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 30 } + + nfsCache64BytesToServers OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS bytes sent to servers. This object + returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 31 } + + nfsCache64TotalRequests OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests received. This object returns + all of the 64 bit unsigned integer." + ::= { nfsCacheStats 32 } + + nfsCache64HitRequests OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache hits. This + object returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 33 } + + nfsCache64MissRequests OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total NFS requests resulting in cache misses. This + object returns all of the 64 bit unsigned integer." + ::= { nfsCacheStats 34 } + + -- -- -- -- -- -- -- -- + -- the storage group -- + -- -- -- -- -- -- -- -- + + enclosure OBJECT IDENTIFIER ::= { storage 1 } + + -- -- -- -- -- -- -- + -- The enclosure group for storage + + enclNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of storage enclosures in the storage subsystem." + ::= { enclosure 1 } + + enclTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display disk enclosure environmental information for fiber + channel shelves and NearStore SCSI shelves. Shelves that do not + support SCSI Enclosure Services, such as DEC Storage Shelf, + Eurologic XL8 are not supported." + ::= { enclosure 2 } + + enclEntry OBJECT-TYPE + SYNTAX EnclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Display disk enclosure (shelf) environmental + information for the referenced disk enclosure." + INDEX { enclIndex } + ::= { enclTable 1 } + + EnclEntry ::= + SEQUENCE { + enclIndex + Integer32, + enclContactState + Integer32, + enclChannelShelfAddr + DisplayString, + enclProductLogicalID + DisplayString, + enclProductID + DisplayString, + enclProductVendor + DisplayString, + enclProductModel + DisplayString, + enclProductRevision + DisplayString, + enclProductSerialNo + DisplayString, + enclNumberDiskBays + Integer32, + enclDisksPresent + DisplayString, + enclPowerSuppliesMaximum + Integer32, + enclPowerSuppliesPresent + DisplayString, + enclPowerSuppliesSerialNos + DisplayString, + enclPowerSuppliesFailed + DisplayString, + enclFansMaximum + Integer32, + enclFansPresent + DisplayString, + enclFansFailed + DisplayString, + enclTempSensorsMaximum + Integer32, + enclTempSensorsPresent + DisplayString, + enclTempSensorsOverTempFail + DisplayString, + enclTempSensorsOverTempWarn + DisplayString, + enclTempSensorsUnderTempFail + DisplayString, + enclTempSensorsUnderTempWarn + DisplayString, + enclTempSensorsCurrentTemp + DisplayString, + enclTempSensorsOverTempFailThr + DisplayString, + enclTempSensorsOverTempWarnThr + DisplayString, + enclTempSensorsUnderTempFailThr + DisplayString, + enclTempSensorsUnderTempWarnThr + DisplayString, + enclElectronicsMaximum + Integer32, + enclElectronicsPresent + DisplayString, + enclElectronicsSerialNos + DisplayString, + enclElectronicsFailed + DisplayString, + enclVoltSensorsMaximum + Integer32, + enclVoltSensorsPresent + DisplayString, + enclVoltSensorsOverVoltFail + DisplayString, + enclVoltSensorsOverVoltWarn + DisplayString, + enclVoltSensorsUnderVoltFail + DisplayString, + enclVoltSensorsUnderVoltWarn + DisplayString, + enclVoltSensorsOverVoltFailThr + DisplayString, + enclVoltSensorsOverVoltWarnThr + DisplayString, + enclVoltSensorsUnderVoltFailThr + DisplayString, + enclVoltSensorsUnderVoltWarnThr + DisplayString, + enclVoltSensorsCurrentVolt + DisplayString, + enclCurSensorsMaximum + Integer32, + enclCurSensorsPresent + DisplayString, + enclCurSensorsOverCurFail + DisplayString, + enclCurSensorsOverCurWarn + DisplayString, + enclCurSensorsOverCurFailThr + DisplayString, + enclCurSensorsOverCurWarnThr + DisplayString, + enclCurSensorsCurrentCur + DisplayString + } + + enclIndex OBJECT-TYPE + SYNTAX Integer32 (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this enclosure among the + possible monitored enclosures. This number normally + uniquely identifies one shelf within one boot, + but may it change between boots. The number may + also change within a boot if shelves are removed + and added." + ::= { enclEntry 1 } + + enclContactState OBJECT-TYPE + SYNTAX INTEGER { + initializing(1), + transitioning(2), + active(3), + inactive(4), + reconfiguring(5), + nonexistent(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of the communication between the filer or storage + engine and the enclosure monitoring device in the enclosure." + ::= { enclEntry 2 } + + enclChannelShelfAddr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The adapter number or switch name and the port number + (together, called the channel), and shelf ID of this + enclosure. Examples are 8a.1 and switch:5.1." + ::= { enclEntry 3 } + + enclProductLogicalID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The logical identifier of this enclosure. This a form of the + World-Wide Name (WWN)." + ::= { enclEntry 4 } + + enclProductID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product ID of the shelf hardware module that provides + the enclosure monitoring function. Example is LRC." + ::= { enclEntry 5 } + + enclProductVendor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the vendor of this enclosure. Example is Xyratex." + ::= { enclEntry 6 } + + enclProductModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The model name of this enclosure. Example is DiskShelf14." + ::= { enclEntry 7 } + + enclProductRevision OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The revision number of this enclosure." + ::= { enclEntry 8 } + + enclProductSerialNo OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number of this enclosure." + ::= { enclEntry 9 } + + enclNumberDiskBays OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of disk bays in this enclosure." + ::= { enclEntry 10 } + + enclDisksPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of disks present by bay number in this enclosure." + ::= { enclEntry 11 } + + enclPowerSuppliesMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of power supplies in this enclosure." + ::= { enclEntry 12 } + + enclPowerSuppliesPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of power supplies present in the enclosure. + Numbering is from left to right in their intended location + in the shelf, while facing the supplies." + ::= { enclEntry 13 } + + enclPowerSuppliesSerialNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of serial numbers of power supplies present + in the enclosure. Not all shelves are able to report the + power supply serial number. Communication errors may + make the serial number unavailable. Numbering is from left + to right in their intended location in the shelf, while + facing the supplies." + ::= { enclEntry 14 } + + enclPowerSuppliesFailed OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of failed power supplies in this enclosure, numbered as + in enclPowerSuppliesPresent." + ::= { enclEntry 15 } + + enclFansMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of fans or fan modules monitored by this + enclosure. R100/R150 shelf power supply fans are not included + in this number." + ::= { enclEntry 16 } + + enclFansPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of fans or fan modules present and for which status + is known in this enclosure. Fans are numbered left-to-right as + facing the fans. R100/R150 shelf power supply fans are + not included in this list." + ::= { enclEntry 17 } + + enclFansFailed OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of failed fans or fan modules in this enclosure. Fans + are numbered as described in enclFansPresent." + ::= { enclEntry 18 } + + enclTempSensorsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of temperature sensors monitored + by this enclosure." + ::= { enclEntry 19 } + + enclTempSensorsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors present and for which + status is known in this enclosure. Temperature sensors are + numbered top-to-bottom and left-to-right, beginning with + the front of the enclosure, then the rear, as the modules + containing them are faced." + ::= { enclEntry 20 } + + enclTempSensorsOverTempFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting + overtemperature failure in this enclosure. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 21 } + + enclTempSensorsOverTempWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting overtemperature + warning in this enclosure. Sensors are numbered as in + TempSensorsPresent." + ::= { enclEntry 22 } + + enclTempSensorsUnderTempFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting undertemperature + failure in this enclosure. Sensors are numbered as in + TempSensorsPresent." + ::= { enclEntry 23 } + + enclTempSensorsUnderTempWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperature sensors reporting undertemperature + warning in this enclosure. Sensors are numbered as in + TempSensorsPresent." + ::= { enclEntry 24 } + + enclTempSensorsCurrentTemp OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of temperatures reported by all temperature sensors in + the enclosure, including the ambient temperature. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 25 } + + enclTempSensorsOverTempFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overtemperature failure thresholds for all + temperature sensors in the enclosure. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 26 } + + enclTempSensorsOverTempWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overtemperature warning thresholds for all + temperature sensors in the enclosure. Sensors are + numbered as in TempSensorsPresent." + ::= { enclEntry 27 } + + enclTempSensorsUnderTempFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undertemperature failure thresholds for all + temperature sensors in the enclosure. Sensors are numbered as + in TempSensorsPresent." + ::= { enclEntry 28 } + + enclTempSensorsUnderTempWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undertemperature warning thresholds for all + temperature sensors in the enclosure. Sensors are numbered as + in TempSensorsPresent." + ::= { enclEntry 29 } + + enclElectronicsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of enclosure services electronics modules that it is + possible for this enclosure to detect and/or monitor." + ::= { enclEntry 30 } + + enclElectronicsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list those enclosure services electronics modules present in + this enclosure. Numbering is from left-to-right or top-to-bottom + in their intended location in the shelf, while facing the + electronics modules. It is normal for the R200 FC-AT module to be + reported as the second module." + ::= { enclEntry 31 } + + enclElectronicsSerialNos OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of serial numbers of the enclosure services electronics + modules present in this enclosure. The order follows that of + enclElectronicsPresent." + ::= { enclEntry 32 } + + enclElectronicsFailed OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of failed electronics elements. Valid only if + enclElectronicsPresent shows that some are present." + ::= { enclEntry 33 } + + enclVoltSensorsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of voltage sensors monitored by + this enclosure." + ::= { enclEntry 34 } + + enclVoltSensorsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors present and for which + status is known in this enclosure. Voltage sensors are + numbered top-to-bottom and left-to-right, beginning with + the front of the enclosure, then the rear, as the modules + containing them are faced." + ::= { enclEntry 35 } + + enclVoltSensorsOverVoltFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting + overvoltage failure in this enclosure. Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 36 } + + enclVoltSensorsOverVoltWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting overvoltage + warning in this enclosure. Sensors are numbered as in + VoltSensorsPresent." + ::= { enclEntry 37 } + + enclVoltSensorsUnderVoltFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting undervoltage + failure in this enclosure. Sensors are numbered as in + VoltSensorsPresent." + ::= { enclEntry 38 } + + enclVoltSensorsUnderVoltWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltage sensors reporting undervoltage + warning in this enclosure. Sensors are numbered as in + VoltSensorsPresent." + ::= { enclEntry 39 } + + enclVoltSensorsCurrentVolt OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of voltages reported by all voltage sensors in + the enclosure, Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 40 } + + enclVoltSensorsOverVoltFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overvoltage failure thresholds for all + voltage sensors in the enclosure. Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 41 } + + enclVoltSensorsOverVoltWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overvoltage warning thresholds for all + voltage sensors in the enclosure. Sensors are + numbered as in VoltSensorsPresent." + ::= { enclEntry 42 } + + enclVoltSensorsUnderVoltFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undervoltage failure thresholds for all + voltage sensors in the enclosure. Sensors are numbered as + in VoltSensorsPresent." + ::= { enclEntry 43 } + + enclVoltSensorsUnderVoltWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of undervoltage warning thresholds for all + voltage sensors in the enclosure. Sensors are numbered as + in VoltSensorsPresent." + ::= { enclEntry 44 } + + enclCurSensorsMaximum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current sensors monitored by + this enclosure." + ::= { enclEntry 45 } + + enclCurSensorsPresent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of current sensors present and for which + status is known in this enclosure. Current sensors are + numbered top-to-bottom and left-to-right, beginning with + the front of the enclosure, then the rear, as the modules + containing them are faced." + ::= { enclEntry 46 } + + enclCurSensorsOverCurFail OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of current sensors reporting + overcurrent failure in this enclosure. Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 47 } + + enclCurSensorsOverCurWarn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of current sensors reporting overcurrent + warning in this enclosure. Sensors are numbered as in + CurSensorsPresent." + ::= { enclEntry 48 } + + enclCurSensorsCurrentCur OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of currents reported by all current sensors in + the enclosure, Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 49 } + + enclCurSensorsOverCurFailThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overcurrent failure thresholds for all + current sensors in the enclosure. Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 50 } + + enclCurSensorsOverCurWarnThr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The list of overcurrent warning thresholds for all + current sensors in the enclosure. Sensors are + numbered as in CurSensorsPresent." + ::= { enclEntry 51 } + + -- -- -- -- -- -- -- -- + -- the network group + -- -- -- -- -- -- -- -- + + netInterfaces OBJECT IDENTIFIER ::= { network 1 } + + -- The net Interfaces table contains information on the entity's + -- interfaces. + + + netifNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of network interfaces (regardless of + their current state) present on this system." + ::= { netInterfaces 1 } + + netifTable OBJECT-TYPE + SYNTAX SEQUENCE OF NetIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of interface entries. The number of + entries is given by the value of netifNumber." + ::= { netInterfaces 2 } + + netifEntry OBJECT-TYPE + SYNTAX NetIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An interface entry containing objects at the + subnetwork layer and below for a particular + interface." + INDEX { netifIndex } + ::= { netifTable 1 } + + NetIfEntry ::= + SEQUENCE { + netifIndex + Integer32, + netifDescr + DisplayString, + ifHighInOctets + Counter32, + ifLowInOctets + Counter32, + ifHighInUcastPkts + Counter32, + ifLowInUcastPkts + Counter32, + ifHighInNUcastPkts + Counter32, + ifLowInNUcastPkts + Counter32, + ifHighInDiscards + Counter32, + ifLowInDiscards + Counter32, + ifHighInErrors + Counter32, + ifLowInErrors + Counter32, + ifHighInUnknownProtos + Counter32, + ifLowInUnknownProtos + Counter32, + ifHighOutOctets + Counter32, + ifLowOutOctets + Counter32, + ifHighOutUcastPkts + Counter32, + ifLowOutUcastPkts + Counter32, + ifHighOutNUcastPkts + Counter32, + ifLowOutNUcastPkts + Counter32, + ifHighOutDiscards + Counter32, + ifLowOutDiscards + Counter32, + ifHighOutErrors + Counter32, + ifLowOutErrors + Counter32, + if64InOctets + Counter64, + if64InUcastPkts + Counter64, + if64InNUcastPkts + Counter64, + if64InDiscards + Counter64, + if64InErrors + Counter64, + if64InUnknownProtos + Counter64, + if64OutOctets + Counter64, + if64OutUcastPkts + Counter64, + if64OutNUcastPkts + Counter64, + if64OutDiscards + Counter64, + if64OutErrors + Counter64 + } + netifIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each interface. Its value + ranges between 1 and the value of ifNumber. The + value for each interface must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { netifEntry 1 } + + netifDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual string containing information about the + interface. This string should include the name of + the manufacturer, the product name and the version + of the hardware interface." + ::= { netifEntry 2 } + + ifHighInOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the + interface, including framing characters. + This object returns the most significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 3 } + + ifLowInOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the + interface, including framing characters. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 4 } + + ifHighInUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol. + This object returns the most significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 5 } + + ifLowInUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 6 } + + + ifHighInNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol. + This object returns the most significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 7 } + + ifLowInNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 8 } + + ifHighInDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space. This object returns the most + significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 9 } + + ifLowInDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space. This object returns the least + significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 10 } + + ifHighInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol. This object returns the + most significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 11 } + + ifLowInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol. This object returns the + least significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 12 } + + ifHighInUnknownProtos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol. This object returns the + most significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 13 } + + ifLowInUnknownProtos OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol. This object returns the + least significant 32 bits of the 64 bit unsigned integer." + ::= { netifEntry 14 } + + ifHighOutOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. + This object returns the most significant 32 bits of the + 64 bit unsigned integer." + ::= { netifEntry 15 } + + ifLowOutOctets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. + This object returns the least significant 32 bits of + the 64 bit unsigned integer." + ::= { netifEntry 16 } + + ifHighOutUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 17 } + + ifLowOutUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 18 } + + ifHighOutNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 19 } + + ifLowOutNUcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 20 } + + ifHighOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 21 } + + ifLowOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 22 } + + ifHighOutErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors. This object returns + the most significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 23 } + + ifLowOutErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors. This object returns + the least significant 32 bits of the 64 bit unsigned + integer." + ::= { netifEntry 24 } + + if64InOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets received on the + interface, including framing characters. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 25 } + + if64InUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 26 } + + if64InNUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 27 } + + if64InDiscards OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space. This object returns all of the 64 bit + unsigned integer." + ::= { netifEntry 28 } + + if64InErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol. This object returns all + of the 64 bit unsigned integer." + ::= { netifEntry 29 } + + if64InUnknownProtos OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol. This object returns all + of the 64 bit unsigned integer." + ::= { netifEntry 30 } + + if64OutOctets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters. + This object returns all of the 64 bit unsigned integer." + ::= { netifEntry 31 } + + if64OutUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 32 } + + if64OutNUcastPkts OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 33 } + + if64OutDiscards OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 34 } + + if64OutErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors. This object returns + all of the 64 bit unsigned integer." + ::= { netifEntry 35 } + + -- -- -- -- -- -- -- -- + -- the sis group + -- -- -- -- -- -- -- -- + + sisIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether Advanced SIS is licensed on the + filer." + ::= { sis 1 } + + sisTable OBJECT-TYPE + SYNTAX SEQUENCE OF SisEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a list of the SIS volumes on the + system." + + ::= { sis 2 } + + sisEntry OBJECT-TYPE + SYNTAX SisEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide details about a particular SIS volume." + + INDEX { sisIndex } + ::= { sisTable 1 } + + SisEntry ::= + SEQUENCE { + sisIndex + Integer32, + sisPath + DisplayString, + sisState + Integer32, + sisStatus + Integer32, + sisProgress + DisplayString, + sisType + Integer32, + sisSchedule + DisplayString, + sisLastOpBeginTime + DisplayString, + sisLastOpEndTime + DisplayString, + sisHighLastOpSize + Integer32, + sisLowLastOpSize + Integer32, + sisLastOpError + DisplayString, + sis64LastOpSize + Counter64 + } + + sisIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + SIS volume." + ::= { sisEntry 1 } + + sisPath OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The path to the SIS volume." + ::= { sisEntry 2 } + + sisState OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabled(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether SIS is enabled on the + volume or not." + ::= { sisEntry 3 } + + sisStatus OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + active(2), + undoing(3), + pending(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Current status of the SIS volume." + ::= { sisEntry 4 } + + sisProgress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The progress of the current SIS operation." + ::= { sisEntry 5 } + + sisType OBJECT-TYPE + SYNTAX INTEGER { + regular(1), + snapvault(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether it is a regular or + snapvaulted SIS volume." + ::= { sisEntry 6 } + + sisSchedule OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The schedule for the SIS opertions." + ::= { sisEntry 7 } + + sisLastOpBeginTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The starting time of the last completed SIS + opertion." + ::= { sisEntry 8 } + + sisLastOpEndTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ending time of the last completed SIS + operation." + ::= { sisEntry 9 } + + sisHighLastOpSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that the + last completed SIS operation had processed. + This object returns the most significant 32 + bits of the 64 bit unsigned integer." + ::= { sisEntry 10 } + + sisLowLastOpSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that the + last completed SIS operation had processed. + This object returns the least significant 32 + bits of the 64 bit unsigned integer." + ::= { sisEntry 11 } + + sisLastOpError OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The error that the last SIS operation + encountered if it failed." + ::= { sisEntry 12 } + + sis64LastOpSize OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total amount of data in KBytes that the + last completed SIS operation had processed. + This object returns all of the 64 bit + unsigned integer." + ::= { sisEntry 13 } + + + -- -- -- -- -- -- -- -- -- + -- the compression group + -- -- -- -- -- -- -- -- -- + + compressIsLicensed OBJECT-TYPE + SYNTAX INTEGER { + false(1), + true(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether compression is licensed on + the filer." + ::= { compress 1 } + + compressTable OBJECT-TYPE + SYNTAX SEQUENCE OF CompressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the total space used as + well as the space saved by compression on + volumes." + ::= { compress 2 } + + + -- display the active file system compression statistics + + compressEntry OBJECT-TYPE + SYNTAX CompressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Provide a report of the total space used as + well as the space saved by compression on + the referenced file system." + INDEX { compressIndex } + ::= { compressTable 1 } + + CompressEntry ::= + SEQUENCE { + compressIndex + Integer32, + compressFileSys + DisplayString, + compressHighUsedKBytes + Counter32, + compressLowUsedKBytes + Counter32, + compress64UsedKBytes + Counter64, + compressHighSavedKBytes + Counter32, + compressLowSavedKBytes + Counter32, + compress64SavedKBytes + Counter64, + compressPercentSaved + INTEGER + } + + compressIndex OBJECT-TYPE + SYNTAX Integer32 (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A number that identifies this entry for the + referenced file system." + ::= { compressEntry 1 } + + compressFileSys OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name for the referenced file system." + ::= { compressEntry 2 } + + compressHighUsedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the most significant 32 bits of the 64 + bit unsigned integer." + ::= { compressEntry 3 } + + compressLowUsedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns the least significant 32 bits of the + 64 bit unsigned integer." + ::= { compressEntry 4 } + + compress64UsedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total disk space in KBytes that is in use + on the referenced file system. This object + returns all of the 64 bit unsigned integer." + ::= { compressEntry 5 } + + compressHighSavedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk space in KBytes of disk space that + is saved by compression on the referenced + file system. This object returns the most + significant 32 bits of the 64 bit unsigned + integer." + ::= { compressEntry 6 } + + compressLowSavedKBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk space in KBytes of disk space that + is saved by compression on the referenced + filesystem. This object returns the least + significant 32 bits of the 64 bit unsigned + integer." + ::= { compressEntry 7 } + + compress64SavedKBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The disk space in KBytes of disk space that + is saved by compression on the referenced + filesystem. This object returns all of the + 64 bit unsigned integer." + ::= { compressEntry 8 } + + compressPercentSaved OBJECT-TYPE + SYNTAX INTEGER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of disk space saved by + compression on the referenced filesystem." + ::= { compressEntry 9 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- NetApp trap definitions + -- See RFC 1215 for instructions on building traps + -- + -- All EnterpiseSpecific Traps of Network Appliance + -- contain the OIDs 'productTrapData and productSerialNum' + -- except traps with the trap types - + -- globalStatusNonRecoverable + -- globalStatusCritical + -- globalStatusNonCritical + -- globalStatusOk + -- which contain the OIDs 'miscGlobalStatusMessage and productSerialNum' + -- + -- The last digit of a trap contains information about the + -- priority of the trap: + -- + -- 1 emergency + -- 2 alert + -- 3 critical + -- 4 error + -- 5 warning + -- 6 notification + -- 7 information + -- 8 debug + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- A generic, unprioritized, user-defined trap. These + -- are generated in releases prior to 5.4. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + userDefined NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A polling-style trap built using the 'snmp traps' + command on the filer." + + ::= { netapp 0 2 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- Disk Health Monitor Notices for Disk Fault + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + dhmNoticeDegradedIO NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Disk Health Monitor - + Reported a Disk Degraded-I/O Event" + + ::= { netapp 0 6 } + + dhmNoticePFAEvent NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Disk Health Monitor - + Reported a Disk Predictive-Failure Event" + + ::= { netapp 0 7 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains generic user-defined traps. + -- All user-defined traps with the same priority + -- use the trap for that priority level. + -- + -- For example, all "critical" user-defined traps are + -- sent with ID 13. The string data sent with the + -- trap identifies the specific critical event. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + emergencyTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating an extremely urgent + situation, usually indicating that the system has + failed and is shutting down." + + ::= { netapp 0 11 } + + alertTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating a condition that + should be corrected immediately, such as a failed disk." + + ::= { netapp 0 12 } + + criticalTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating a critical condition, + such as a hard device error." + + ::= { netapp 0 13 } + + errorTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating an error condition, + such as a mistake in a configuration file." + + ::= { netapp 0 14 } + + warningTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap indicating a condition which + is not an error, but which may require special handling." + + ::= { netapp 0 15 } + + notificationTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap meant to provide notification, + such as an hourly uptime message." + + ::= { netapp 0 16 } + + informationalTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap used for informational purposes." + + ::= { netapp 0 17 } + + dbgTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user-defined trap used for debugging purposes. + This trap was previously mis-documented as being trap + number 17, with the name debugTrap. It has always, + actually, been trap 18. The name change is to avoid + issues with environments that already have a record + for debugTrap." + + ::= { netapp 0 18 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- Specific traps. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + + diskFailedShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System is shutting down because the system has been + running in degraded mode for 24 hours. + The trap includes a string describing the failed disk." + + ::= { netapp 0 21 } + + diskFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more disks failed. + The trap includes a string describing the failed disk(s)." + + ::= { netapp 0 22 } + + diskRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The failed disks have been repaired. + This trap is a placeholder - + it is not currently sent by Data ONTAP." + + ::= { netapp 0 26 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- The fan and power supply traps are not supported + -- on all platforms. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + fanFailureShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Critical chassis or cpu fans have failed and the system + is shutting down." + + ::= { netapp 0 31 } + + fanFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis fans failed. + The trap includes a string describing the failed fan(s)." + + ::= { netapp 0 33 } + + fanWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis or cpu fans are in warning state. + The trap includes a string describing the fan(s) in + the warning state." + + ::= { netapp 0 35 } + + fanRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All fans are repaired." + + ::= { netapp 0 36 } + + powerSupplyFailureShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Critical power supplies or power rails failed and + the system is shutting down." + + ::= { netapp 0 41 } + + powerSupplyFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more redundant power supplies failed. + Include in the trap a string describing + the failed power supply(ies)." + + ::= { netapp 0 43 } + + powerSupplyWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more power supplies or power rails in + warning state. Include in the trap a string describing + the power supply(ies) or the power rail(s) in the + warning state." + + ::= { netapp 0 45 } + + powerSupplyRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Previously-failed power supplies or power rails have been + repaired." + + ::= { netapp 0 46 } + + cpuTooBusy NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "CPU utilization exceeds 90%. + This trap is not enabled by default. + To enable this trap set the registry + entry options.monitor.cpu.enable to on. + Note that as the threshold for this trap is + checked once a minute it is possible to receive + multiple instances of this trap in a short time." + + + ::= { netapp 0 55 } + + cpuOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "CPU utilization has dropped back below 90%. + This trap is a placeholder - + it is not currently sent by Data ONTAP." + + ::= { netapp 0 56 } + + nvramBatteryDischarged NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The NVRAM battery is fully discharged." + + ::= { netapp 0 62 } + + nvramBatteryLow NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The charge in the NVRAM battery is low." + + ::= { netapp 0 63 } + + clusterNodeFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A node in a Cluster FailOver configuration failed. + Its partner will assume service for the failed node." + + ::= { netapp 0 72 } + + clusterNodeTakenOver NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The partner has taken over for a failed cluster node." + + ::= { netapp 0 75 } + + clusterNodeRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A cluster node has resumed operation." + + ::= { netapp 0 76 } + + volumeFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "At least one volume is more than 98% full. + The string sent with the trap gives the + name of the volume or volumes which exceed + the volumeFull or volumeNearlyFull thresholds" + + ::= { netapp 0 82 } + + volumeNearlyFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "At least one volume is more than 95% full. + The string sent with the trap gives the + name of the volume or volumes which exceed + the volumeFull or volumeNearlyFull thresholds" + + ::= { netapp 0 85 } + + volumeRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All volumes are now under 95% full." + + ::= { netapp 0 86 } + + volumesStillFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "At least one volume that was full or nearly full is now OK, + but more volumes still exceed the volumeNearlyFull or + volumeFull thresholds. This trap is generally sent within + a short time of when a volume becomes OK, though if two + volumes become OK within this timeframe, only one trap is + sent. The string sent with the trap gives the name of the + volume or volumes which still exceed the volumeFull or + volumeNearlyFull thresholds. It does not send the name of + any volume that is OK." + + ::= { netapp 0 87 } + + overTempShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System temperature is too high to continue + operating. The system is shutting down." + + ::= { netapp 0 91 } + + overTemp NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System temperature is too high and in the + warning level." + + ::= { netapp 0 95 } + + overTempRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "System temperature has returned to an + acceptable value." + + ::= { netapp 0 96 } + + shelfFault NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A disk storage shelf reported a fault, probably due + to a problem with drive placement, fans, power, + or temperature." + + ::= { netapp 0 103 } + + + shelfRepaired NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A previously-reported shelf fault is now corrected." + + ::= { netapp 0 106 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains "general health" traps, + -- based on changes to the miscGlobalStatus + -- variable. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + globalStatusNonRecoverable NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status changed to + 'nonRecoverable', indicating a problem so severe + that the appliance is shutting down." + + ::= { netapp 0 111 } + + globalStatusCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status changed to 'critical', + indicating a problem that needs immediate attention." + + ::= { netapp 0 113 } + + globalStatusNonCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status changed to 'nonCritical', + indicating a problem that needs attention." + + ::= { netapp 0 115 } + + globalStatusOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The appliance's overall status returned to normal." + + ::= { netapp 0 116 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to soft quotas. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + softQuotaExceeded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user has exceeded their soft quota limit." + + ::= { netapp 0 126 } + + softQuotaNormal NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A user is safely back under their soft quota limit." + + ::= { netapp 0 127 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to autosupport + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + autosupportSendError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Unable to send autosupport. + The trap includes a string describing the reason for the failure." + + ::= { netapp 0 134 } + + autosupportConfigurationError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Autosupport may be configured incorrectly. + The trap includes a string describing the mis-configuration." + + ::= { netapp 0 135 } + + autosupportSent NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Autosupport was sent successfully." + + ::= { netapp 0 136 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to UPS + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + upsLinePowerOff NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Input line power has failed and UPS is now on battery." + + ::= { netapp 0 142 } + + upsBatteryCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Battery is nearly exhausted, starting graceful shutdown." + + ::= { netapp 0 143 } + + + upsShuttingDown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Shutting down now: Time left on battery is exhuasted." + + ::= { netapp 0 144 } + upsBatteryWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Warning: Time left on battery is getting critical." + + ::= { netapp 0 145 } + + upsLinePowerRetored NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "UPS: Input line power has been restored and UPS is now off battery." + + ::= { netapp 0 146 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Client Side Applications. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + appEmergency NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application encountered an extremely urgent + situation and requires an immediate response." + + ::= { netapp 0 151 } + + appAlert NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application is in a condition that should + be corrected immediately." + + ::= { netapp 0 152 } + + appCritical NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application encountered a critical condition." + + ::= { netapp 0 153 } + + appError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application encountered an error condition." + + ::= { netapp 0 154 } + + appWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application is in a condition which is not an + error, but which may require special handling." + + ::= { netapp 0 155 } + + appNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application is notifing of a certain event." + + ::= { netapp 0 156 } + + appInfo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application's message is meant for informational + purposes." + + ::= { netapp 0 157 } + + appTrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The application requires to be debugged." + + ::= { netapp 0 158 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Autosaving NT EVT files. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + alfFilewrap NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The internal audit file has wrapped. You are currently losing event + records. Warning the user." + + ::= { netapp 0 162 } + + + alfFileSaved NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The internal audit log has been autosaved to an external evt file. + Notifying the user." + + ::= { netapp 0 166 } + + alfFileNearlyFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The internal audit log file is nearly full. The file is going to + wrap. Notifying the user." + + ::= { netapp 0 167 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to generalized quota events. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + quotaExceeded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One of the quota limits has been exceeded. + The trap includes a string describing the specific event + which triggered the trap. The string is structured + in the following form: + + Quota Event: status=exceeded, type={hard|soft|threshold}, + user={username}, volume={volume}, limit_item={files|disk}, + limit_value={#files|#kilobytes} + [ , treeid={tree-id} ] [ , vfiler={vfiler} ] + + An example of a complete message would be: + + Quota Event: status=exceeded, type=soft, + user=admin, volume=vol1, limit_item=disk, limit_value=1000000, + treeid=8 + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 176 } + + quotaNormal NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One of the quota limits has gone back down to a normal level. + The trap includes a string describing the specific event + which triggered the trap. The string is structured + in the following form: + + Quota Event: status=normal, type={hard|soft|threshold}, + user={username}, volume={volume}, limit_item={files|disk}, + limit_value={#files|#kilobytes} + [ , treeid={tree-id} ] [ , vfiler={vfiler} ] + + An example of a complete message would be: + + Quota Event: status=normal, type=soft, + user=admin, volume=vol1, limit_item=disk, limit_value=1000000, + treeid=8 + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 177 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to alerting when 64MB directory + -- limit is nearly reached or has been reached. + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + waflDirNearlyFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The directory has surpassed 90% of its sub-directory limit. + The priority of waflDirFull and this trap are out of order + for backwards compatibility." + + ::= { netapp 0 186 } + + waflDirFull NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The directory has reached its sub-directory limit" + + ::= { netapp 0 187 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Correctable Memory ECC + -- errors + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + eccSummary NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Memory ECC: number of new correctable ECC errors" + + ::= { netapp 0 192 } + + eccMasked NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Memory ECC: High frequency of ECC errors" + + ::= { netapp 0 195 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to ftpd service + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ftpdError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Ftp daemon: service stopped" + + ::= { netapp 0 204 } + + ftpdMaxConnNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Ftp daemon: number of connections hits maximum number" + + ::= { netapp 0 206 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains additional traps related to ftpd service + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ftpdMaxConnThresholdNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Ftp daemon: number of connections nearly hits maximum number" + + ::= { netapp 0 216 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to SCSI Target + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + scsitgtFCPLinkBreak NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "SCSI Target: Link Break on FCP adapter" + + ::= { netapp 0 222 } + + scsitgtPartnerPathMisconfigured NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "SCSI Target: FCP Partner Path Misconfigured" + + ::= { netapp 0 224 } + + scsitgtThrottleNotice NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "SCSI Target: Throttle limit event notification" + + ::= { netapp 0 226 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to VIF Failover & Link Status + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vifPrimaryLinkFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Vif: The primary Interface on a Single mode vif has failed" + + ::= { netapp 0 237 } + + vifAllLinksFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Vif: All the links of the vif have failed" + + ::= { netapp 0 238 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Vfiler status + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vfStopped NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A vFiler has stopped." + + ::= { netapp 0 245 } + + vfStarted NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A vFiler has started." + + ::= { netapp 0 246 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains traps related to Virus Scanning + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vscanVirusDetectedError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: A virus scanner has detected a virus on the Filer" + + ::= { netapp 0 254 } + + vscanDisConnection NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: A virus scanner has dropped its connection from the Filer" + + ::= { netapp 0 255 } + + vscanConfigurationChange NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: There has been a change to the vscan configuration" + ::= { netapp 0 256 } + + vscanConnection NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: A virus scanner has made a connection to the Filer" + + ::= { netapp 0 257 } + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- + -- This section contains additional traps related to Virus Scanning + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + vscanServerUpgrade NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "VScan: The Vscan server has been upgraded" + + ::= { netapp 0 266 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to volume status being offline, + -- online or restricted + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeRestrictedByMirrorBigIo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A volume that experienced a medium error during reconstruction + is restricted and marked wafl-inconsistent, but starting + wafliron has failed. This trap is issued to alert operator + that a volume is not accessible and wafliron must be started + to allow access to it." + + ::= { netapp 0 272 } + + volumeInconsistentUmount NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when we unmount a volume due to an + inconsistency." + + ::= { netapp 0 274 } + + volumeStateChanged NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is being taken offline or being restricted. + The string sent with trap specifies name of affected volume + and its state." + + ::= { netapp 0 275 } + + volumeOnline NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is online now. The string sent with trap specifies + name of volume which is online now." + + ::= { netapp 0 276 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to remote management + -- controller (RMC) card status + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + rmcCardNeedsReplacement NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Remote Management Controller card needs replacement. The trap + includes a string specifying the reason for replacement" + + ::= { netapp 0 283 } + + rmcCardMissingCables NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Remote Management Controller card is missing its internal + cable, or LAN cable or power supply cable. The trap includes + a string specifing the missing component." + + ::= { netapp 0 284 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to remote volume + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeRemoteUnreachable NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Local volume encountered an error while communicating + to remote volume." + + ::= { netapp 0 294 } + + volumeRemoteOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The communication between remote volume and local volume + returned to normal." + + ::= { netapp 0 296 } + + volumeRemoteRestored NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The data on remote volume has been fully restored to local + volume." + + ::= { netapp 0 297 } + + volumeRemoteRestoreBegin NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The data on remote volume has started being restored to local + volume by Restore-on-Demand." + + ::= { netapp 0 298 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains more traps related to volume status being + -- offline, online or restricted + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeRestrictedRootConflict NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is restricted due to a root volume conflict. The + string sent with trap specifies name of conflicting volume + which is being restricted." + + ::= { netapp 0 304 } + + volumeOfflineTooBig NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume can not be brought online because its raw size is + larger than maximum allowed size. The string sent with trap + specifies name of affected volume and its raw size, and + maximum allowed size." + + ::= { netapp 0 314 } + + volumeOffline NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is being taken offline. The string sent with trap + specifies name of affected volume and reason for being + taken offline." + + ::= { netapp 0 324 } + + volumeRestricted NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is being restricted. The string sent with trap + specifies name of affected volume and reason for being + restricted." + + ::= { netapp 0 334 } + + volumeDegradedDirty NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is degraded and has dirty parity. WAFL_check must be + run on this volume before it can be brought online. The string + sent with trap specifies name of affected volume." + + ::= { netapp 0 344 } + + volumeError NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when a volume can not be brought online + due to an error. The string sent with trap specifies name of + affected volume and error description." + + ::= { netapp 0 354 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- This section contains traps related to synchronous SnapMirror + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + snapmirrorSyncFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Synchronous SnapMirror failed and went into asynchronous mode." + ::= { netapp 0 364 } + + snapmirrorSyncOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Synchronous SnapMirror went into synchronous mode." + ::= { netapp 0 366 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- + -- New environmental traps + -- + -- A series of new environmental traps are constructed + -- to disambiguate many of the older traps (which are antiquated + -- but remain until they are completely removed from EMS usage). + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Chassis Temperature + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisTemperatureShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is extreme. The appliance has + initiated a shutdown to protect itself. The operating + environment should be monitored and corrected before + restarting the appliance." + + ::= { netapp 0 371 } + + chassisTemperatureWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is either too high or too low. + The temperature should be monitored and, if possible, corrected." + + ::= { netapp 0 372 } + + chassisTemperatureUnknown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is unknown, because reading can't be + obtained from the chassis temperature sensor." + + ::= { netapp 0 375 } + + chassisTemperatureOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis temperature is OK." + + ::= { netapp 0 376 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- CPU Fans + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisCPUFanStopped NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more CPU fans have stopped. The appliance + has initiated a shutdown to protect itself. A new + motherboard may be required to correct the fan. + Contact Network Appliance for direction." + + ::= { netapp 0 381 } + + chassisCPUFanSlow NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A CPU fan is spinning too slowly. A new motherboard + may be required to correct the fan. Contact Network + Appliance for direction." + + ::= { netapp 0 383 } + + chassisCPUFanOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All CPU fan(s) are properly functioning." + + ::= { netapp 0 386 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Power Supplies + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisPowerSuppliesFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multiple chassis power supplies failed." + + ::= { netapp 0 391 } + + chassisPowerSupplyDegraded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis power supplies are degraded. + A description of the degraded state has been + logged to the console and message log file." + + ::= { netapp 0 392 } + + chassisPowerSupplyFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One chassis power supply failed." + + ::= { netapp 0 393 } + + chassisPowerSupplyRemoved NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis power supplies are removed." + + ::= { netapp 0 394 } + + chassisPowerSupplyOff NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis power supplies are off." + + ::= { netapp 0 395 } + + chassisPowerSuppliesOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The chassis power supplies are all functioning properly." + + ::= { netapp 0 396 } + + chassisPowerSupplyOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This chassis power supply is functioning properly." + + ::= { netapp 0 397 } + + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Power Rails + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisPowerDegraded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The power within the chassis is degraded. + A description of the degraded state has been + logged to the console and message log file." + + ::= { netapp 0 403 } + + chassisPowerOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "The power within the chassis is functioning properly." + + ::= { netapp 0 406 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Chassis Fans + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + chassisFanDegraded NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A chassis fan has been degraded." + + ::= { netapp 0 412 } + + chassisFanRemoved NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A chassis fan FRU has been removed." + + ::= { netapp 0 413 } + + chassisFanStopped NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis fans have stopped." + + ::= { netapp 0 414 } + + chassisFanWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more chassis fans is spinning slowly or too fast." + + ::= { netapp 0 415 } + + chassisFanOk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "All chassis fans are functioning properly." + + ::= { netapp 0 416 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Volume SnapValidator errors + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + writeVerificationFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A write has failed a verification test + on a SnapValidator enabled volume." + ::= { netapp 0 424 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- CIFS domain controller-related traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + domainControllerDisconnect NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A CIFS domain controller connection to the filer has failed." + ::= { netapp 0 435 } + + dcPasswdChangeFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "An attempt to change the filer's password with the domain + controller has failed." + ::= { netapp 0 436 } + + domainControllerConnected NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A CIFS domain controller connection to the filer has been + established." + ::= { netapp 0 437 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- This section contains traps related to plex state + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + plexFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when one plex of a mirrored + traditional volume or aggregate is failed. The string + sent with this trap specifies name of affected plex or + mirrored traditional volume or aggregate." + ::= { netapp 0 444 } + + plexOffline NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This trap is issued when a plex becomes offline. + The string sent with this trap specifies name of + affected plex or mirrored traditional volume or aggregate." + ::= { netapp 0 454 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- This section contains traps related to shelf Electronics Elements + -- and intelligent fibre channel interface modules such as LRC, + -- ESH, AT-FC, and AT-FCX. + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + shelfSESElectronicsFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more of the enclosure services devices in a + disk shelf has failed. Some shelf designs combine + the enclosure monitoring hardware function into the + module that provides the storage interface to + the shelf. A failure in the enclosure monitoring + section of these combined modules does not necessarily + indicate a failure in disk or loop or bus operation, + which may be able to continue." + ::= { netapp 0 464 } + + shelfSESElectronicsInfo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A previously reported failure of an enclosure + services device in a disk shelf has been corrected, + or the device has reported information that does not + necessarily require customer action." + ::= { netapp 0 467 } + + shelfIFModuleFailed NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more of the storage interface modules in a + disk shelf has failed. Some shelf designs combine the + enclosure monitoring hardware function into the module + that operates the fibre channel loop or SCSI in the + shelf. This failure is of the storage interface + itself, not a failure of the enclosure monitoring, + which may be able to continue. This failure may make + one or more disks in the shelf or in the loop or bus + unavailable." + ::= { netapp 0 473 } + + shelfIFModuleWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "One or more of the storage interface modules in a + disk shelf has a warning condition. Some shelf designs combine the + enclosure monitoring hardware function into the module + that operates the fibre channel loop or SCSI in the + shelf. This warning condition is of the storage interface + itself, not a failure of the enclosure monitoring, + which may be able to continue." + ::= { netapp 0 475 } + + shelfIFModuleInfo NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A previously reported failure of a disk shelf + interface module has been corrected, or the module has + reported information that does not necessarily require + customer action." + ::= { netapp 0 477 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- This section contains traps related to maxdirsize. + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + maxDirSizeAlert NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A directory has reached it's maxdirsize limit. Either + increase the maxdirsize or clean up the directory." + ::= { netapp 0 482 } + + maxDirSizeWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A directory is getting close to it's maxdirsize limit. Either + increase the maxdirsize or clean up the directory." + ::= { netapp 0 485 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- CIFS statistics related traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + cifsStatsExhaustMemCtrlBlk NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A request for a CIFS control block can not be granted. All + control blocks are in use." + ::= { netapp 0 497 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- New Environmental Subsystem Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + + chassisPSRemovedxMinShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Power Supply Unit is removed from the system. System will + be shutdown in x minutes if it is not put back." + + ::= { netapp 0 501 } + + chassisPSUsMismatch NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Power Supply Units in the system are of different type. + Please replace them with correct Power Supply Units." + + ::= { netapp 0 505 } + + chassisFanFailxMinShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multiple chassis fan failure. System will + shut down in a few minutes if not corrected." + + ::= { netapp 0 511 } + + chassisPSUwrongInput NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Power Supply Unit (PSU) in the system is connected to an + incompatible external power source. Please change + the power source being used or replace the PSU + with one that matches the current power source." + + ::= { netapp 0 515 } + + powerSupplyFanFailxMinShutdown NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multiple power supply fans failure. + System will shut down in a few minutes if not corrected." + + ::= { netapp 0 521 } + + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- New Remote Management Subsystem Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + remoteSystemMgtAlert NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "system remote management detected a system down event. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={post_error|watchdog_reset|power_loss|abnormal_reboot}, + key=value + + An example of a complete message would be: + Remote Management Event: type=system_down, severity=alert, + event=watchdog_reset, ss=16bytes + + Additional key=value items may, in the future, be appended + to this message. + + The events that would generate this trap would be: + post_error: Fatal POST error on boot + power_loss: Loss of power to system + abnormal_reboot: + l2_watchdog_reset" + + ::= { netapp 0 532 } + + remoteSystemMgmtWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "system remote management detected a system down event. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={loss-of-heartbeat}, + key=value + + An example of a complete message would be: + Remote Management Event: type=system_down, severity=warning, + event=loss_of_heartbeat, ss=16bytes + + Additional key=value items may, in the future, be appended + to this message. + + The events that would generate this trap would be: + loss_of_heartbeat: Loss of heartbeat to the RLM." + + ::= { netapp 0 535 } + + remoteSystemMgmtNotification NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "system remote management detected a system down event. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={power_off_via_rlm,power_cycle_via_rlm,reset_via_rlm}, + key=value + + An example of a complete message would be: + Remote Management Event: type=system_down, severity=notice, + event=power_off_via_rlm, ss=16bytes + + Additional key=value items may, in the future, be appended + to this message. + + The events that would generate this trap would be: + power_off_via_rlm: This indicates system power off + power_cycle_via_rlm: This indicates system power cycle + reset_via_rlm: This indicates system reset." + + ::= { netapp 0 536 } + + remoteSystemMgmtPeriodic NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This is a periodic keep alive from system remote management. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={periodic_message} + + An example of a complete message would be: + Remote Management Event: type=keep_alive, severity=info, + event=periodic_message + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 547 } + + remotesystemMgmtTest NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "This is a test trap from system remote management. + The trap includes a string describing the specific event + which triggered the trap. The string is structured in the + following form: + Remote Management Event: type={system_down|system_up|test|keep_alive}, + severity={alert|warning|notice|normal|debug|info}, + event={periodic_message} + + An example of a complete message would be: + Remote Management Event: type=test, severity=notice, event=test + + Additional key=value items may, in the future, be appended + to this message." + + ::= { netapp 0 556 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Disk Multipath Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + diskMultipathOneSwitch NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A multipathed disk is only connected to one switch." + + ::= { netapp 0 562 } + + diskMultipathNoTakeover NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Multipath disks or luns could not be detected for the partner. + The node will be unable to takeover correctly." + + ::= { netapp 0 563 } + + diskMultipathWarning NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Synchronous mirroring is enabled, even though disks are not + multipathed." + + ::= { netapp 0 565 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Disk Disable Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + driveDisableErr NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A drive has been disabled by the shelf module due to + hardware errors. If it is the only drive in the shelf + that is disabled, replace the drive." + + ::= { netapp 0 574 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- HBA Offline Traps + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + hbaOfflineInformation NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "A host bus adapter (HBA) port has been disabled. + This state may be caused either by user command or by + errors that make the interface unable to communicate + with attached devices." + + ::= { netapp 0 587 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- LUN Snap Restore Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + lunSnapRestoreStatus NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Status of the Snap Restore" + + ::= { netapp 0 606 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- LUN Clone Create Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + lunCloneCreate NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Created a LUN Clone" + + ::= { netapp 0 616 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- LUN Clone Split Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + lunCloneSplitStart NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "LUN Clone Split started" + + ::= { netapp 0 626 } + + lunCloneSplitComplete NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "LUN Clone Split completed" + + ::= { netapp 0 627 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Flex Clone Split Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + flexCloneSplitStart NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Flex Clone Split started" + + ::= { netapp 0 636 } + + flexCloneSplitComplete NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Flex Clone Split completed" + + ::= { netapp 0 637 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Volume Clone Create Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeCloneCreate NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Created a Volume Clone" + + ::= { netapp 0 646 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Snap Autodelete Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + snapAutoDelete NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Snapshot Autodeleted" + + ::= { netapp 0 656 } + + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- Volume Autogrow Notice + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + volumeAutogrow NOTIFICATION-TYPE + OBJECTS {productTrapData, productSerialNum} + STATUS current + DESCRIPTION + "Volume is Autogrown" + + ::= { netapp 0 666 } + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- End of NetApp trap definitions + -- + -- Note: Please update this comment when adding a new NOTIFICATION-TYPE. + -- The next trap set range should be: 67x + -- + -- The 10xxx trap range is used by DataFabric Manager + -- (netappDataFabricManager) see the DFM MIB for further + -- information. + -- + -- The 20xxx trap range is used by the NetApp Support Console + -- (netappSupportConsole) see the NASC MIB for further + -- information. + -- + -- The 'ones' digit of the trap contains the priority of the trap: + -- + -- 1 emergency + -- 2 alert + -- 3 critical + -- 4 error + -- 5 warning + -- 6 notification + -- 7 information + -- 8 debug + -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + + END diff --git a/pandora_console/attachment/mibs/OLD-CISCO-CHASSIS-MIB b/pandora_console/attachment/mibs/OLD-CISCO-CHASSIS-MIB new file mode 100644 index 0000000000..36f4b75d5a --- /dev/null +++ b/pandora_console/attachment/mibs/OLD-CISCO-CHASSIS-MIB @@ -0,0 +1,1659 @@ +-- ***************************************************************** +-- OLD-CISCO-CHASSIS-MIB.my: Cisco Chassis MIB file +-- +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-2001, 2002, 2003, 2004 by cisco Systems, Inc. +-- All rights reserved. +-- +-- NOTE WELL +-- Starting with IOS 12.0, all objects defined in this mib have been +-- deprecated. They have been replaces with objects defined in the +-- ENTITY-MIB.my document. Management applications should no longer +-- be examining the objects defined in this document. +-- NOTE WELL +-- +-- ***************************************************************** +-- +-- + OLD-CISCO-CHASSIS-MIB DEFINITIONS ::= BEGIN + + IMPORTS + TimeTicks + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString + FROM RFC1213-MIB + temporary + FROM CISCO-SMI; + + chassis OBJECT IDENTIFIER ::= { temporary 6 } + + -- Temporary Chassis Section + + + -- (not the same as the IETF Chassis MIB) + + -- This group is present in all products. + + chassisType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1) + ,multibus(2) + ,agsplus(3) + ,igs(4) + ,c2000(5) + ,c3000(6) + ,c4000(7) + ,c7000(8) + ,cs500(9) + ,c7010(10) + ,c2500(11) + ,c4500(12) + ,c2102(13) + ,c2202(14) + ,c2501(15) + ,c2502(16) + ,c2503(17) + ,c2504(18) + ,c2505(19) + ,c2506(20) + ,c2507(21) + ,c2508(22) + ,c2509(23) + ,c2510(24) + ,c2511(25) + ,c2512(26) + ,c2513(27) + ,c2514(28) + ,c2515(29) + ,c3101(30) + ,c3102(31) + ,c3103(32) + ,c3104(33) + ,c3202(34) + ,c3204(35) + ,accessProRC(36) + ,accessProEC(37) + ,c1000(38) + ,c1003(39) + ,c1004(40) + ,c2516(41) + ,c7507(42) + ,c7513(43) + ,c7506(44) + ,c7505(45) + ,c1005(46) + ,c4700(47) + ,c2517(48) + ,c2518(49) + ,c2519(50) + ,c2520(51) + ,c2521(52) + ,c2522(53) + ,c2523(54) + ,c2524(55) + ,c2525(56) + ,c4700S(57) + ,c7206(58) + ,c3640(59) + ,as5200(60) + ,c1601(61) + ,c1602(62) + ,c1603(63) + ,c1604(64) + ,c7204(65) + ,c3620(66) + ,wsx3011(68) + ,mc3810(69) + ,c1503(72) + ,as5300(73) + ,as2509RJ(74) + ,as2511RJ(75) + ,c2501FRADFX(77) + ,c2501LANFRADFX(78) + ,c2502LANFRADFX(79) + ,wsx5302(80) + ,c1605(81) + ,c12012(82) + ,c12008(85) + ,ubr7246(86) -- Universal Broadband Router + ,c2610(87) -- c2600 with 1 integrated ethernet interface + ,c2612(88) -- c2600 with an integrated ethernet and token ring interface + ,c2611(89) -- c2600 with 2 integrated ethernet interfaces + ,ubr904(90) -- Cisco Cable Modem (ubr - universal broadband router) + ,c6200(91) -- Digital Subscriber Line Access Multiplexer(DSLAM) + ,c3660(92) -- Six slot MARS Router + ,c7202(94) -- Modular two slot router in the cisco7200 family + ,c2620(95) -- c2600 platform with an onboard fast ethernet + ,c2621(96) -- c2600 platform with two onboard fast ethernets + ,rpm(99) -- Router Processor Module + ,c1710(100) -- VPN(Virtual Private Network) Security Router with 1 FastEthernet and 1 Ethernet interface onboard + ,c1720(101) + ,c7576(102) -- Dual Independent RSP platform, 13 slots + ,c1401(103) -- Router with 1 ethernet and 1 ATM25 interface + ,c2613(104) -- c2600 with 1 integrated token ring interface + ,ubr7223(105) -- Universal Broadband Router + ,c6400Nrp(106) -- c6400 Network Routing Processor + ,c801(107) -- Cisco 800 platform with 1 ethernet and 1 BRI/ST + ,c802(108) -- Cisco 800 platform with 1 ethernet and 1 BRI U + ,c803(109) -- Cisco 800 platform with 1 ethernet 4-port hub, 1 BRI S/T, and 2 POTs + ,c804(110) -- Cisco 800 platform with 1 ethernet 4-port hub, 1 BRI U, and 2 POTs + ,c7206VXR(111) -- Cisco 7200 platform, VXR series chassis with 6 slots + ,c7204VXR(112) -- Cisco 7200 platform, VXR series chassis with 4 slots + ,c1750(113) -- VoIP (Voice over IP) capable Cisco 1700 platform with 2 WIC/VIC slots and 1 VIC-only slot + ,mgx8850(114) -- Cisco MGX8850 Multiservice Gigabit Switch with 32 half height slots + ,c805(116) -- Cisco 800 platform with 1 ethernet and 1 serial WIC + ,ws-c3508g-xl(117) -- Cisco Catalyst 3508G-XL switch with 8 GBIC Gigabit ports, can run Standard or Enterprise edition software. + ,ws-c3512-xl(118) -- Cisco Catalyst 3512XL switch with 12 10/100BaseTX ports and 2 GBIC Gigabit ports, can run Standard or Enterprise edition software. + ,ws-c3524-xl(119) -- Cisco Catalyst 3524XL switch with 24 10/100BaseTX ports and 2 GBIC Gigabit ports, can run Standard or Enterprise edition software. + ,ws-c2908-xl(120) -- Cisco Catalyst 2900XL series 8 port 10/100BaseTX switch + ,ws-c2916m-xl(121) -- Cisco Catalyst 2916M-XL switch with 16 10/100BaseTX ports and 2 uplink slots. + ,ws-c2924-xl-v(122) -- Cisco Catalyst 2924XL switch with 24 autosensing 10/100BaseTX ports; supports port-based VLANs; can run Standard or Enterprise edition software. + ,ws-c2924c-xl-v(123) -- Cisco Catalyst 2924C-XL switch with 22 autosensing 10/100BaseTX ports and 2 100BaseFX ports; supports port-based VLANs, can run Standard or Enterprise edition software. + ,ws-c2912-xl(124) -- Cisco Catalyst 2912XL switch with 12 autosensing 10/100BaseTX ports, can run Standard or Enterprise edition software. + ,ws-c2924m-xl(125) -- Cisco Catalyst 2924M-XL switch with 24 autosensing 10/100BaseTX ports and 2 uplink slots, can run Standard or Enterprise edition software. + ,ws-c2912mf-xl(126) -- Cisco Catalyst 2912MF-XL switch with 12 100BaseFX ports and 2 uplink slots; can only run Enterprise edition software. + ,c1417(128) -- Cisco 1400 series router with 1 Ethernet and 1 ADSL interface, with 1417 chipset + ,cOpticalRegenerator(129) -- Cisco Optical Regenerator + ,ws-c2924-xl(130) -- Cisco Catalyst 2924XL with 24 10/100BaseTX switch ports; doesn't support port-based VLANs. + ,ws-c2924c-xl(131) -- Cisco Catalyst 2924C-XL; doesn't support port-based VLANs. + ,ubr924(132) -- Cisco UBR Cable Modem which is a UBR904 with 2 FXS Voice ports + ,ws-x6302-msm(133) -- Catalyst 6000 or 6500 Series Multilayer Switch Module WS-X6302-MSM that directly interfaces to the switch's backplane to provide layer 3 switching. + ,cat5k-rsfc(134) -- Router Switching Feature Card for the Catalyst 5000 that is treated as a standalone system by the NMS + ,c7120-quadt1(136) -- 7120 Series chassis with 2 10/100 FE interfaces, 4 T1/E1 interfaces + ,c7120-t3(137) -- 7120 Series chassis with 2 10/100 FE interfaces, 1 T3 interface + ,c7120-e3(138) -- 7120 Series chassis with 2 10/100 FE interfaces, 1 E3 interface + ,c7120-at3(139) -- 7120 Series chassis with 2 10/100 FE interfaces, 1 T3 ATM interface + ,c7120-ae3(140) -- 7120 Series chassis with 2 10/100 FE interfaces, 1 E3 ATM interface + ,c7120-smi3(141) -- 7120 Series chassis with 2 10/100 FE interfaces, 1 OC3SMI ATM interface + ,c7140-dualt3(142) -- 7140 Series chassis with 2 10/100 FE interfaces, 2 T3 interfaces + ,c7140-duale3(143) -- 7140 Series chassis with 2 10/100 FE interfaces, 2 E3 interfaces + ,c7140-dualat3(144) -- 7140 Series chassis with 2 10/100 FE interfaces, 2 T3 ATM interfaces + ,c7140-dualae3(145) -- 7140 Series chassis with 2 10/100 FE interfaces, 2 E3 ATM interfaces + ,c7140-dualmm3(146) -- 7140 Series chassis with 2 10/100 FE interfaces, 2 OC3MM ATM interfaces + ,c12016(150) -- Cisco 12000 platform with 16 slots + ,c7140-octt1(152) -- 7140 Series chassis with 8 integrated T1/E1 serial ports + ,c7140-dualfe(153) -- 7140 Series chassis with 2 integrated 10/100 FE interfaces + ,cat3548xl(154) -- Catalyst 3548XL switch (WS-C3548-XL) + ,cat6006(155) -- Catalyst 6000 with 6 slots + ,cat6009(156) -- Catalyst 6000 with 9 slots + ,cat6506(157) -- Catalyst 6000 Plus with 6 slots + ,cat6509(158) -- Catalyst 6000 Plus with 9 slots + ,mc3810-v3(160) -- Cisco MC3810-V3, capable of data, voice and video. Supports 2 additional ports than the MC3810-V, used for optional access cards. + ,c7507z(162) -- Cisco 7507z chassis, Czbus capable, 7 slots + ,c7513z(163) -- Cisco 7513z chassis, Czbus capable, 13 slots + ,c7507mx(164) -- Cisco 7507mx chassis, Czbus capable, TDM (Time Division Multiplexing) backplane support, 7 slots + ,c7513mx(165) -- Cisco 7513mx chassis, Czbus capable, TDM (Time Division Multiplexing) backplane support, 13 slots + ,ubr912-c(166) -- Cisco uBR912-C Cable Modem with CSU/DSU WIC + ,ubr912-s(167) -- Cisco uBR912-S Cable Modem with Serial WIC + ,ubr914(168) -- Cisco uBR914 Cable Modem with removable WIC + ,cat4232-l3(173) -- Cisco Catalyst 4232-L3 layer 3 line card that is treated as a standalone system by the NMS + ,cOpticalRegeneratorDCPower(174) -- Cisco Optical Regenerator with DC power supply + ,cva122(180) -- Cisco CVA122 Cable Voice Adapter (Residential Cable Modem with two Voice Ports) + ,cva124(181) -- Cisco CVA124 Cable Voice Adapter (Residential Cable Modem with four Voice Ports) + ,as5850(182) -- High End Dial Access Server + ,mgx8240(185) -- High Density Circuit Emulation Service Gateway chassis with two shelf controller slots and fifteen Service Modulesfor Private Line Service + ,ubr925(191) -- Cisco UBR925 Cable Modem/Router with VOIP and hardware accelerated IPSEC + ,ubr10012(192) -- Cisco uBR10000 platform with 8 broadband slots and 4 WAN slots + ,c12016-8r(194) -- Teracore ready 8 rail chassis for Cisco 12000 platform + ,c2650(195) -- c2650 platform with 1 integrated fast ethernet interface + ,c2651(196) -- c2650 platform with 2 integrated fast ethernet interfaces + ,c1751(202) -- Digital voice capable Cisco 1700 platform with 2 WIC/VIC slots and 1 VIC-only slot + ,c626(205) -- Cisco 600 DSL CPE pltaform with ADSL, DMT issue 1, 25M ATM interface + ,c627(206) -- Cisco 600 DSL CPE pltaform with ADSL, DMT issue 2, 25M ATM interface + ,c633(207) -- Cisco 600 DSL CPE platform with SDSL, 2B1Q line coding, serial interface (V.35/X.21) + ,c673(208) -- Cisco 600 DSL CPE platform with SDSL, 2B1Q line coding, ethernet interface + ,c675(209) -- Cisco 600 DSL CPE platform with ADSL, CAP, ethernet interface, POTS connector + ,c675e(210) -- Cisco 600 DSL CPE platform with ADSL, CAP, ethernet interface, universal power supply + ,c676(211) -- Cisco 600 DSL CPE platform with ADSL, DMT issue 1, ethernet interface + ,c677(212) -- Cisco 600 DSL CPE platform with ADSL, DMT issue 2, ethernet interface + ,c678(213) -- Cisco 600 DSL CPE platform with ADSL, CAP/DMT/G.Lite, ethernet interface + ,c3661-ac(214) -- 1 Fast Ethernet version of c3660 with a AC power supply + ,c3661-dc(215) -- 1 Fast Ethernet version of c3660 with a DC power supply + ,c3662-ac(216) -- 2 Fast Ethernet version of c3660 with a AC power supply + ,c3662-dc(217) -- 2 Fast Ethernet version of c3660 with a DC power supply + ,c3662-ac-co(218) -- 2 Fast Ethernet version of c3660 with a AC power supply for Telco's + ,c3662-dc-co(219) -- 2 Fast Ethernet version of c3660 with a DC power supply for Telco's + ,ubr7111(220) -- Low-end version of the Universal Broadband Router with 1 PA slot, 1 fixed RF line card (MC11C) and integrated upconvertor, designed for hotels, MDUs and smaller cable operators + ,ubr7114(222) -- Low-end version of the Universal Broadband Router with 1 PA slot, 1 fixed RF line card (MC14C) and integrated upconvertor, designed for hotels, MDUs and smaller cable operators + ,c12010(224) -- Cisco 12000 platform with 10 slots + ,c8110(225) -- Cisco 8110 (ATM network termination device) with 3 Line Interface module slots + ,ubr905(227) -- Cisco uBR905 Cable Modem with hardware accelerated IPSEC + ,c7150-dualfe(231) -- 7150 Series chassis with 2 integrated 10/100 FE interfaces + ,c7150-octt1(232) -- 7150 Series chassis with 8 integrated T1/E1 serial ports + ,c7150-dualt3(233) -- 7150 Series chassis with 2 10/100 FE interfaces, 2 T3 interfaces + ,cvps1110(236) -- Cisco VLAN Policy Server 1110 manages VLAN-based policies to control user access to a LAN, leveraging existing authentication mechanisms such as Windows Domain Controllers and Novell's NDS. This policy server is part of CiscoWorks2000 User Registration Tool product. + ,ccontentengine(237) -- Cisco Content Engine Chassis. The Cisco Content Engine is a Content Networking product that accelerates content delivery, ensuring maximum scalability and availability of content. The Content Engines offer caching, Content Delivery Network (CDN) services, employee internet management (e.g., URL filtering) and proxy services + ,ciad2420(238) -- Integrated Access Device 2420 (IAD2420) chassis with Analog (8/16) FXS ports with T1 or ADSL (Asymmetrical Digital Subscriber Line) Uplinks + ,c677i(239) -- Cisco 600 DSL CPE platform with ASDL, DMT issue 2 over ISDN, ethernet interface + ,c674(240) -- Cisco 600 DSL CPE platform with G.SHDSL, ethernet interface + ,cdpa7630(241) -- The Cisco Digital PBX Adapter (DPA) enables the integration of Cisco Call Manager with Octel voice mail systems + ,cat2924-lre-xl(245) -- Cisco Catalyst c2924XL switch (WS-C2924-LRE-XL) with 24 10BaseS VDSL ports and 4 10/100BaseTX ports + ,cat2912-lre-xl(246) -- Cisco Catalyst c2912XL switch (WS-C2912-LRE-XL) with 12 10BaseS VDSL ports and 4 10/100BaseTX ports + ,cva122e(247) -- Cisco CVA122-e Cable Voice Adapter(Residential Cable Modem with two voice ports)- European version + ,cva124e(248) -- Cisco CVA124-e Cable Voice Adapter(Residential Cable Modem with four voice ports)- European version + ,curm(249) -- Universal Router Module for the IGX platform + ,curm2fe(250) -- Universal router module with 2 Fast Ethernet interfaces for IGX platform + ,curm2fe2v(251) -- Universal Router Module, with 2 Fast Ethernet ports, and 2 digital voice ports (T1 or E1) + ,c7401VXR(252) -- Cisco 7400 Family, 1 Slot router + ,cap340(255) -- Aironet Wireless LAN Access Point 340 series + ,cap350(256) -- Cisco Wireless LAN Access Point 350 series + ,cdpa7610(257) -- The Cisco Digital PBX Adapter (DPA) enables the integration of Cisco Call Manager with Octel voice mail systems + ,c12416(261) -- Cisco 12000 platform with 16 slots and 10G Fabric card + ,ws-c2948g-l3-dc(262) -- A fixed-configuration Layer 3 Ethernet switch featuring IP, IPX, and IP mulitcast with 48 10/100BaseTX ports and 2 GBIC Gigabit ports using DC power + ,ws-c4908g-l3-dc(263) -- A fixed-configuration L3 Ethernet switch featuring IP,IPX and IP multicast with 8 GBIC ports using DC power + ,c12406(264) -- Cisco 12400 platform with 6 slots + ,pix-firewall506(265) -- Cisco PIX Firewall 506 + ,pix-firewall515(266) -- Cisco PIX Firewall 515 + ,pix-firewall520(267) -- Cisco PIX Firewall 520 + ,pix-firewall525(268) -- Cisco PIX Firewall 525 + ,pix-firewall535(269) -- Cisco PIX Firewall 535 + ,c12410(270) -- Cisco 12410 platform with 10 slots + ,c811(271) -- ISDN router for Japan with 1 10BaseT Ethernet port, 1 ISDN BRI(Basic Rate Interface) U, integrated DSU(Data Service Unit) + ,c813(272) -- ISDN router for Japan with 10 BaseT 4 ports hub , 1 ISDN BRI(Basic Rate Interface) U, integrated DSU(Data Service Unit) and 2 RJ-11 + ,c10720(273) -- IP + Optical Access Router + ,cMWR1900(274) -- The Mobile Wireless router is a router targeted at application in a cell site Base Transciever Station (BTS) providing T1/E1 backhaul connections to the aggregation node in Radio Access Networks (RAN) + ,c4224(275) -- A standalone 24 port powered Ethernet switch, router and voice gateway + ,cWSC6513(276) -- Catalyst 6000 series chassis with 13 slots + ,c7603(277) -- Cisco Internet Router 7600 Series Chassis with 3 slots + ,c7606(278) -- Cisco Internet Router 7600 Series Chassis with 6 slots + ,c7401ASR(279) -- Cisco 7400 platform, ASR series with 1 slot + ,cVG248(280) -- Cisco VoIP Voice Gateway for connecting analog telephones fax machines to a Cisco Call Manager based system + ,c1105(281) -- CiscoWorks network management chassis + ,cCe507(284) -- Cisco Content Engine Model 507 + ,cCe560(285) -- Cisco Content Engine Model 560 + ,cCe590(286) -- Cisco Content Engine Model 590 + ,cCe7320(287) -- Cisco Content Engine Model 7320 + ,c2691(288) -- One Network Module slot, three WIC slot, two Fast Ethernet port MARS router + ,c3725(289) -- Two Network Module slot, three WIC slot, two Fast Ethernet port MARS router + ,pix-firewall501(292) -- Cisco PIX Firewall 501 + ,c2610M(293) -- c2600M chassis with 1 integrated ethernet interface + ,c2611M(294) -- c2600M chassis with 2 integrated ethernet interfaces + ,c12404(298) -- Cisco 12400 platform with 4 slots + ,c9004(299) -- Cisco 9000 Chassis + ,cCe507av(307) -- Cisco Content Engine Model 507-AV + ,cCe560av(308) -- Cisco Content Engine Model 560-AV + ,cIe2105(309) -- The Cisco Intelligence Engine 2100 series is a new form of network device that provides intelligent network interface to applications and users + ,c7304(313) -- Cisco 7300 Chassis + ,cWSC6503(322) -- Catalyst 6000 series chassis with 3 slots + ,ccontentengine2636(326) -- Cisco Content Engine Module for 26xx and 36xx series platforms + ,ccontentengine-dw2636(327) -- Double Wide Cisco Content Engine Module for 26xx and 36xx series + ,c6400-uac(332) -- Cisco 6400 Universal Access Concentrator + ,c2610XM(334) -- Cisco 2610XM platform with 1 integrated fast ethernet interfaces with SDRAM + ,c2611XM(335) -- Cisco 2611XM platform with 2 integrated fast ethernet interfaces with SDRAM + ,c2620XM(336) -- Cisco 2620XM platform with 1 integrated fast ethernet interfaces with SDRAM + ,c2621XM(337) -- Cisco 2621XM platform with 2 integrated fast ethernet interfaces with SDRAM + ,c2650XM(338) -- Cisco 2650XM platform with 1 integrated fast ethernet interfaces with SDRAM + ,c2651XM(339) -- Cisco 2651XM platform with 2 integrated fast ethernet interfaces with SDRAM + ,cat295024sx(350) -- Cisco Catalyst c2950 switch with 24 10/100 BaseTX ports and 2 fixed 1000Base Multimode fiber (SX) ports (WS-C2950SX-24) + ,as5400-hpx(353) -- chassis for cisco As5400HPX + ,c7609(365) -- 9 slots chassis in Cisco 7600 family + ,cVG200(372) -- The Cisco VG200 chassis for Voice-over-IP (VoIP) Gateway + ,airap1210(373) -- 1200 series WLAN Access Point on Cisco IOS platform with 1 10/100TX port, 1 CardBus slot, 1 Mini PCI slot + ,c7613(377) -- Cisco Internet router 7600 Series Chassis with 13 slots + ,airbr-1410(380) -- 1410 Series Wireless LAN Bridge on Cisco IOS platform with 1 10/100Tx port and 1 5-GHz radio + ,c1701(384) -- c1701 is a re-packaging of existing products to create a fixed configuration sku. It has ADSLoPOTs WIC and ISDN BRI (S/T) WIC riveted into it. + ,cat29408TT(385) -- Catalyst 2940 L2 switch with 8 10/100 copper ports and 1 10/100/1000 copper uplink port. + ,cat29408TF(386) -- Catalyst 2940 L2 switch with 8 10/100 copper ports, 1 100 FX Uplink port and 1 Gigabit SFP Module slot. + ,airap350ios(394) -- Cisco Wireless LAN Access Point 350 series on IOS platform with 1 10/100TX port, 1 IEEE 802.11 radio port + ,cat295024-lre-st-997(396) -- Cisco Catalyst2905 Long Reach Ethernet switch that confirms to ETSI 997 with 24 LRE interfaces, 2 10/100/1000 Small form factor copper interfaces and DC power supply(WS-C2905ST-24-LRE-997) + ,airbr-1300(404) -- Cisco Aironet 1300 Series Wireless Bridge with 1 10/100 TX Ethernet port, 1 IEEE 802.11g radio port + ,c2811(413) -- 2800 Family Router with two integrated fast ethernets and integrated VPN + ,c2821(414) -- 2800 Family Router with two integrated gigabit ethernets and integrated VPN + ,c2851(415) -- 2800 Family Router with two integrated gigabit ethernets and integrated VPN + ,cat3750g-16td(420) -- Cisco Catalyst 3750 switch with 16 gigabit and one 10G ethernet port (WS-C3750G-16TD) + ,cigesm(422) -- Cisco Systems Intelligent Gigabit Ethernet Switch Module for IBM eServer BladeCenter (OS-CIGESM-18TT-E) + + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Chassis type." + ::= { chassis 1 } + + chassisVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Chassis hardware revision level, or an empty + string if unavailable." + ::= { chassis 2 } + + chassisId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS deprecated + DESCRIPTION + "Unique ID string. Defaults to chassis serial + number if available, otherwise empty. Can + also be set with 'snmp-server chassis-id'." + ::= { chassis 3 } + + romVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS deprecated + DESCRIPTION + "ROM monitor version." + ::= { chassis 4 } + + romSysVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS deprecated + DESCRIPTION + "ROM system software version, or an empty + string if unavailable." + ::= { chassis 5 } + + processorRam OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Bytes of RAM available to CPU." + ::= { chassis 6 } + + nvRAMSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Bytes of non-volatile configuration memory." + ::= { chassis 7 } + + nvRAMUsed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Bytes of non-volatile configuration memory + in use." + ::= { chassis 8 } + + configRegister OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Value of configuration register." + ::= { chassis 9 } + + configRegNext OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Value of configuration register at next + reload." + ::= { chassis 10 } + + cardTable OBJECT-TYPE + SYNTAX SEQUENCE OF CardTableEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Chassis card table." + ::= { chassis 11 } + + cardTableEntry OBJECT-TYPE + SYNTAX CardTableEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Chassis card table." + INDEX { cardIndex } + ::= { cardTable 1 } + + CardTableEntry ::= + SEQUENCE { + cardIndex + INTEGER, + cardType + INTEGER, + cardDescr + DisplayString, + cardSerial + INTEGER, + cardHwVersion + DisplayString, + cardSwVersion + DisplayString, + cardSlotNumber + INTEGER, + cardContainedByIndex + INTEGER, + cardOperStatus + INTEGER, + cardSlots + INTEGER + } + + + -- The following section describes the components of the + -- table. + + cardIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Index into cardTable (not physical chassis + slot number)." + ::= { cardTableEntry 1 } + + +-- The expansions for some acronyms used for cardType enumerations are: +-- CSU : Channel Service Unit +-- DSU : Dial Service Unit +-- FT1 : Fractional T1 +-- WIC : Wan Interface Card +-- DTR : Dedicated Token Ring +-- PM : Port Module +-- PA : Port Adapter + + cardType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1) + ,csc1(2) + ,csc2(3) + ,csc3(4) + ,csc4(5) + ,rp(6) + ,cpu-igs(7) + ,cpu-2500(8) + ,cpu-3000(9) + ,cpu-3100(10) + ,cpu-accessPro(11) + ,cpu-4000(12) + ,cpu-4000m(13) + ,cpu-4500(14) + ,rsp1(15) + ,rsp2(16) + ,cpu-4500m(17) + ,cpu-1003(18) + ,cpu-4700(19) + ,csc-m(20) + ,csc-mt(21) + ,csc-mc(22) + ,csc-mcplus(23) + ,csc-envm(24) + ,chassisInterface(25) + ,cpu-4700S(26) + ,cpu-7200-npe100(27) + ,rsp7000(28) + ,chassisInterface7000(29) + ,rsp4(30) + ,cpu-3600(31) + ,cpu-as5200(32) + ,c7200-io1fe(33) + ,cpu-4700m(34) + ,cpu-1600(35) + ,c7200-io(36) + ,cpu-1503(37) + ,cpu-1502(38) + ,cpu-as5300(39) + ,csc-16(40) + ,csc-p(41) + ,csc-a(50) + ,csc-e1(51) + ,csc-e2(52) + ,csc-y(53) + ,csc-s(54) + ,csc-t(55) + ,csc-r(80) + ,csc-r16(81) + ,csc-r16m(82) + ,csc-1r(83) + ,csc-2r(84) + ,sci4s(56) + ,sci2s2t(57) + ,sci4t(58) + ,mci1t(59) + ,mci2t(60) + ,mci1s(61) + ,mci1s1t(62) + ,mci2s(63) + ,mci1e(64) + ,mci1e1t(65) + ,mci1e2t(66) + ,mci1e1s(67) + ,mci1e1s1t(68) + ,mci1e2s(69) + ,mci2e(70) + ,mci2e1t(71) + ,mci2e2t(72) + ,mci2e1s(73) + ,mci2e1s1t(74) + ,mci2e2s(75) + ,csc-cctl1(100) + ,csc-cctl2(101) + ,csc-mec2(110) + ,csc-mec4(111) + ,csc-mec6(112) + ,csc-fci(113) + ,csc-fcit(114) + ,csc-hsci(115) + ,csc-ctr(116) + ,cpu-7200-npe150(121) + ,cpu-7200-npe200(122) + ,cpu-wsx5302(123) + ,gsr-rp(124) + ,cpu-3810(126) + ,cpu-2600(127) + ,cpu-rpm(128) + ,cpu-ubr904(129) -- CPU card for Cisco Cable Modem (ubr - universal broadband router) + ,cpu-6200-mpc(130) -- Maintenance processor card for c6200 + ,cpu-1700(131) -- CPU for Cisco 1700 series + ,cpu-7200-npe300(132) -- Network processing engine (CPU card) for 7200 series + ,cpu-1400(133) -- CPU for Cisco 1400 series + ,cpu-800(134) -- CPU for Cisco 800 series products + ,cpu-psm-1gbps(135) -- Processor Switch Module 1 with 1.2Gbps switching capacity for MGX 8800 series chassis + ,cpu-7200-npe175(137) -- Network processing engine (CPU card) for 7200 series + ,cpu-7200-npe225(138) -- Network processing engine (CPU card) for 7200 series + ,cpu-1417(140) -- CPU for Cisco 1417 only + ,cpu-psm1-1oc12(141) -- Cisco MGX8800 Processor Switch Module 1 with 1 622Mbps port + ,cpu-optical-regenerator(142) -- CPU for the Cisco Optical Regenerator chassis + ,cpu-ubr924(143) -- CPU for the UBR924 Cisco Cable Modem + ,cpu-7120(144) -- CPU for the Cisco 7120 series + ,cpu-7140(145) -- CPU for the Cisco 7140 series + ,cpu-psm1-2t3e3(146) -- Cisco MGX8800 Processor Switch Module 1 with 2 T3/E3 ports + ,cpu-psm1-4oc3(147) -- Cisco MGX8800 Processor Switch Module 1 with 4 155Mbps ports + ,cpu-ubr91x(149) -- CPU card for the UBR91X family of Cable Modems (912-c, 912-s, 914) + ,sp(150) + ,eip(151) + ,fip(152) + ,hip(153) + ,sip(154) + ,trip(155) + ,fsip(156) + ,aip(157) + ,mip(158) + ,ssp(159) + ,cip(160) + ,srs-fip(161) + ,srs-trip(162) + ,feip(163) + ,vip(164) + ,vip2(165) + ,ssip(166) + ,smip(167) + ,posip(168) + ,feip-tx(169) + ,feip-fx(170) + ,cbrt1(178) + ,cbr120e1(179) + ,cbr75e(180) + ,vip2-50(181) + ,feip2(182) + ,acip(183) + ,mc11(184) -- cable card 1 downstream 1 upstream + ,mc12a(185) -- cable card 1 downstream 2 upstream + ,io1fe-tx-isl(186) -- Fast Ethernet I/O Controller which provides RJ45 and MII Connectors + ,geip(187) -- Gigabit Ethernet Interface Processor + ,vip4(188) -- 4th Generation Versatile Interface Processor for the c7500 router + ,mc14a(189) -- cable card 1 downstream 4 upstream + ,mc16a(190) -- cable card 1 downstream 6 upstream + ,mc11a(191) -- modem card 1 downstream 1 upstream (ASIC) + ,cip2(192) -- channel interface processor 2 for the 7500 router family. supports IBM ESCON and IBM Parallel (Bus & Tag) interface types. + ,mc28(194) -- cable card 2 downstream 8 upstream + ,vip4-80(195) -- 4th Generation Versatile Interface Processor for the c7500 router + ,vip4-50(196) -- 4th Generation Versatile Interface Processor for the c7500 router, lower performance than vip4-80 card + ,io-e-ge(197) -- C7200 I/O Controller with GE(1000Mbps) + E(10Mbps) interface + ,io-2fe(198) -- C7200 I/O Controller with 2FE (10/100Mbps) interface + ,npm-4000-fddi-sas(200) + ,npm-4000-fddi-das(201) + ,npm-4000-1e(202) + ,npm-4000-1r(203) + ,npm-4000-2s(204) + ,npm-4000-2e1(205) + ,npm-4000-2e(206) + ,npm-4000-2r1(207) + ,npm-4000-2r(208) + ,npm-4000-4t(209) + ,npm-4000-4b(210) + ,npm-4000-8b(211) + ,npm-4000-ct1(212) + ,npm-4000-ce1(213) + ,npm-4000-1a(214) + ,npm-4000-6e-pci(215) + ,npm-4000-1fe(217) + ,npm-4000-1hssi(218) + ,npm-4000-2e-pci(219) + ,npm-4000-4gb(220) -- 4-Port Serial E1/G.703 + + ,pa-1fe(230) + ,pa-8e(231) + ,pa-4e(232) + ,pa-5e(233) + ,pa-4t(234) + ,pa-4r(235) + ,pa-fddi(236) + ,sa-encryption(237) + ,pa-ah1t(238) + ,pa-ah2t(239) + ,pa-a8t-v35(241) + ,pa-1fe-tx-isl(242) + ,pa-1fe-fx-isl(243) + ,pa-1fe-tx-nisl(244) + ,sa-compression(245) + ,pa-atm-lite-1(246) + ,pa-ct3(247) + ,pa-oc3sm-mux-cbrt1(248) + ,pa-oc3sm-mux-cbr120e1(249) + ,pa-ds3-mux-cbrt1(254) + ,pa-e3-mux-cbr120e1(255) + ,pa-8b-st(257) + ,pa-4b-u(258) + ,pa-fddi-fd(259) + ,pm-cpm-1e2w(260) + ,pm-cpm-2e2w(261) + ,pm-cpm-1e1r2w(262) + ,pm-ct1-csu(263) + ,pm-2ct1-csu(264) + ,pm-ct1-dsx1(265) + ,pm-2ct1-dsx1(266) + ,pm-ce1-balanced(267) + ,pm-2ce1-balanced(268) + ,pm-ce1-unbalanced(269) + ,pm-2ce1-unbalanced(270) + ,pm-4b-u(271) + ,pm-4b-st(272) + ,pm-8b-u(273) + ,pm-8b-st(274) + ,pm-4as(275) + ,pm-8as(276) + ,pm-4e(277) + ,pm-1e(278) + ,pm-m4t(280) + ,pm-16a(281) + ,pm-32a(282) + ,pm-c3600-1fe-tx(283) + ,pm-c3600-compression(284) + ,pm-dmodem(285) + ,pm-8admodem(286) + ,pm-16admodem(287) + ,pm-c3600-1fe-fx(288) + ,pm-1fe-2t1-csu(289) -- Port Module with 1 Fast Ethernet, 2 T1 with CSU + ,as5200-carrier(290) + ,as5200-2ct1(291) + ,as5200-2ce1(292) + ,as5200-dtd-carrier(293) + ,pm-as5xxx-12m(310) + ,pm-as5xxx-12m-56k(311) + ,pm-as5xxx-12m-v110(312) +-- The expansions for some acronyms used in this section are given below: +-- CSU - Channel Service Unit +-- DSU - Dial Service Unit +-- FT1 - Fractional T1 +-- WIC - Wan Interface Card + ,wm-c2500-5in1(330) + ,wm-c2500-t1-csudsu(331) + ,wm-c2500-sw56-2wire-csudsu(332) + ,wm-c2500-sw56-4wire-csudsu(333) + ,wm-c2500-bri(334) + ,wm-c2500-bri-nt1(335) + ,wic-serial-1t(360) + ,wic-serial-2t(361) + ,wic-csu-dsu-4(363) + ,wic-s-t-3420(364) + ,wic-s-t-2186(365) + ,wic-u-3420(366) + ,wic-u-2091(367) + ,wic-u-2091-2081(368) + ,wic-s-t-2186-leased(369) + ,wic-t1-csudsu(370) -- FT1 CSU/DSU Wan Interface Card + ,wic-serial-2as(371) -- WAN Interface Card - 2 port Async/Sync + ,aim-compression(372) -- Compression Advanced Interface Module (AIM) + ,c3660-2fe-tx(373) -- c3660 onboard 2FE(TX) version + ,pm-oc3mm(374) -- ATM OC3 multimode Port Module + ,pm-oc3mm-vpd(375) -- ATM OC3 multimode Port Module with Voice Processing Deck + ,pm-oc3smi-vpd(376) -- ATM OC3 single mode intermediate reach Port Module with Voice Processing Deck + ,pm-oc3sml-vpd(377) -- ATM OC3 single mode long reach Port Module with Voice Processing Deck + ,pm-oc3sml(378) -- ATM OC3 single mode long reach Port Module + ,pm-oc3smi(379) -- ATM OC3 single mode intermediate reach Port Module + ,pm-ima-4t1(380) -- 4 port T1 IMA (Inverse Mux for ATM) port module + ,pm-ima-8t1(381) -- 8 port T1 IMA (Inverse Mux for ATM) port module + ,pm-ima-4e1(382) -- 4 port E1 IMA (Inverse Mux for ATM) port module + ,pm-ima-8e1(383) -- 8 port E1 IMA (Inverse Mux for ATM) port module + ,nm-1fe-2w(384) -- Network Module with 1 Fast Ethernet and 2 WIC/VIC interfaces + ,nm-2fe-2w(385) -- Network Module with 2 Fast Ethernet and 2 WIC/VIC interfaces + ,nm-1fe-1r-2w(386) -- Network Module with 1 Fast Ethernet, 1 token ring, and 2 WIC/VIC interfaces + ,nm-2w(387) -- Network Module with 2 WIC/VIC interfaces + ,c36xx-1fe-tx(389) -- Onboard 1FE Interface for the c3660 chassis + ,pa-jt2(400) + ,pa-posdw(401) + ,pa-4me1-bal(402) + ,pa-2ce1-balanced(403) + ,pa-2ct1(404) + ,pa-1vg(405) + ,pa-atmdx-ds3(406) + ,pa-atmdx-e3(407) + ,pa-atmdx-sml-oc3(408) + ,pa-atmdx-smi-oc3(409) + ,pa-atmdx-mm-oc3(410) + ,pa-a8t-x21(414) + ,pa-a8t-rs232(415) + ,pa-4me1-unbal(416) + ,pa-4r-fdx(417) + ,pa-1e3(418) + ,pa-2e3(419) + ,pa-1t3(420) + ,pa-2t3(421) + ,pa-2ce1-unbalanced(422) + ,pa-14e-switch(423) + ,pa-1fe-fx-nisl(424) + ,pa-esc-channel(425) + ,pa-par-channel(426) + ,pa-ge(427) -- Gigabit Ethernet Port Adapter + ,pa-4ct1-csu(428) -- 8 Port Channelized T1 with CSU + ,pa-8ct1-csu(429) -- 8 Port Channelized T1 with CSU + ,c3800-vdm(430) + ,c3800-vdm-dc-2t1e1(431) + ,c3800-vdm-dc-1t1e1-enet(432) + ,pa-2feisl-tx(433) + ,pa-2feisl-fx(434) + ,mc3810-dcm(435) + ,mc3810-mfm-e1balanced-bri(436) + ,mc3810-mfm-e1unbalanced-bri(437) + ,mc3810-mfm-e1-unbalanced(438) + ,mc3810-mfm-dsx1-bri(439) + ,mc3810-mfm-dsx1-csu(440) + ,mc3810-vcm(441) + ,mc3810-avm(442) + ,mc3810-avm-fxs(443) + ,mc3810-avm-fxo(444) + ,mc3810-avm-em(445) + ,mc3810-vcm3(446) -- MC3810 Voice Compression Module with 3 DSPs (Digital Signal Processor) + ,mc3810-bvm(447) -- MC3810 Basic Voice Module + ,mc3810-avm-fxo-uk(448) -- MC3810 Analog Voice Module UK Foreign eXchange Office + ,mc3810-avm-fxo-ger(449) -- MC3810 Analog Voice Module Germany Foreign eXchange Office + ,mc3810-hcm2(450) -- MC3810 High (Voice) Compression Module with 2 DSPs (Digital Signal Processor) + ,mc3810-hcm6(451) -- MC3810 High (Voice) Compression Module with 6 DSPs (Digital Signal Processor) + ,mc3810-avm-fxo-pr3(452) -- MC3810 Analog Voice Module Singapore or Japan Foreign eXchange Office + ,mc3810-avm-fxo-pr2(453) -- MC3810 Analog Voice Module Australia or New Zealand Foreign eXchange Office + ,mc3810-vdm(454) -- MC3810 Video Dial-up Module + ,mc3810-apm-fxs-did(455) -- MC3810 Foreign Exchange Station (FXS) Direct Inward Dialing (DID) Analog Personality Module + ,mc3810-bvm-nt-te(456) -- 4 ports NT or TE BRI Voice Module on MC3810 + ,mc3810-hcm1(457) -- High performance compression module for the MC3810 platform equipped with one TI 549 DSP + ,mc3810-hcm3(458) -- High performance compression module for the MC3810 platform equipped with three TI 549 DSPs + ,mc3810-hcm4(459) -- High performance compression module for the MC3810 platform equipped with four TI 549 DSPs +-- 460 available + ,pm-dtd-6m(461) + ,pm-dtd-12m(462) -- mica 12 modem module + ,as5300-4ct1(480) + ,as5300-4ce1(481) + ,as5300-carrier(482) + ,as5300-dtd-carrier(484) + ,as5300-8ct1-4t(485) -- Channelized octal T1 and 4 serial card + ,as5300-8ce1-4t(486) -- Channelized octal E1 and 4 serial card + ,as5300-4ct1-4t(487) -- Channelized quad T1 and 4 serial card + ,as5300-4ce1-4t(488) -- Channelized quad E1 and 4 serial card + ,as5300-amazon2-carrier(489) -- Amazon II mica carrier card + ,vic-em(500) + ,vic-fxo(501) + ,vic-fxs(502) + ,vpm-2v(503) + ,vpm-4v(504) + ,dsp-vfc30(505) + ,dspm-c542(507) -- DSP (Digital Signal Processor) C542 module for the AS5300 and AS5800 series + ,vic-2fxo-eu(508) -- 2 port Foreign eXchange Office Voice Interface Cards for most of Europe + ,vic-2fxo-m3(509) -- 2 port Foreign eXchange Office Voice Interface Cards for Australia + ,vic-2fxo-m4(510) -- 2 port Foreign eXchange Office Voice Interface Cards for Germany + ,vic-2fxo-m5(511) -- 2 port Foreign eXchange Office Voice Interface Cards for France + ,vic-2fxo-m6(512) -- 2 port Foreign eXchange Office Voice Interface Cards for Italy + ,vic-2fxo-m7(513) -- 2 port Foreign eXchange Office Voice Interface Cards for Portugal + ,vic-2fxo-m8(514) -- 2 port Foreign eXchange Office Voice Interface Cards for Singapore + ,vic-2st-2086(515) -- 2 port Terminal Endpoint BRI S/T Voice interface daughter card + ,hdv(516) -- High Density Voice over IP network module + ,dspm-6c549(517) -- DSP (Digital Signal Processor) module that contains 6 C549 DSPs, used in AS5300 and AS5800 + ,wvic-1dsu-t1(518)-- WAN Voice Interface Card with a single port T1 DSU for 1600, 1700, 2600, or 3600 series + ,wvic-1dsu-e1(519) -- WAN Voice Interface Card with a single port E1 DSU for 1600, 1700, 2600, or 3600 series + ,wvic-2dsu-t1(520) -- WAN Voice Interface Card with a dual port T1 DSU for 1600, 1700, 2600, or 3600 series + ,wvic-2dsu-e1(521) -- WAN Voice Interface Card with a dual port E1 DSU for 1600, 1700, 2600, or 3600 series + ,wvic-2dsu-t1-di(522) -- WAN Voice Interface Card with a dual port T1 DSU with Drop and Insert for 1600, 1700, 2600, or 3600 series + ,wvic-2dsu-e1-di(523) -- WAN Voice Interface Card with a dual port E1 DSU with Drop and Insert for 1600, 1700, 2600, or 3600 series + ,vic-2fxo-m2(525) -- 2 port Foreign eXchange Office Voice Interface Cards (Module 2) for Europe/Australia/New Zealand + ,hda-nm-4fxs(528) -- High Density Analog Voice Module + + ,pos-qoc3-mm(530) + ,pos-qoc3-sm(531) + ,pos-oc12-mm(532) + ,pos-oc12-sm(533) + ,atm-oc12-mm(534) + ,atm-oc12-sm(535) + ,pos-oc48-mm-l(536) + ,pos-oc48-sm-lr-fc(537) -- GSR 1 port Packet Over Sonet OC-48, single mode, long reach, FC connector card + ,gsr-sfc(538) + ,gsr-csc(539) + ,gsr-csc4(540) + ,gsr-csc8(541) + ,gsr-sfc8(542) + ,atm-qoc3-sm(543) -- Quad OC3 Line Card ATM Singlemode Fiber Ports + ,atm-qoc3-mm(544) -- Quad OC3 Line Card ATM Multimode Fiber Ports + ,gsr-oc12chds3-mm(545) -- OC12 channelised to DS3 multimode + ,gsr-oc12chds3-sm(546) -- OC12 channelised to DS3 singlemode + ,gsr-1ge(547) -- GSR 1 Port Gigabit Ethernet Line Card + ,gsr-oc12chsts3-mm(548) -- GSR OC12 channelized to STS-3c/STM-1 multi-mode line card + ,gsr-oc12chsts3-sm(549) -- GSR OC12 channelized to STS-3c/STM-1 single-mode line card + ,pos-oc48-sm-sr-fc(552) -- GSR 1 Port Packet Over SONET OC-48c/STM-16 Single Mode Short Reach with FC connector + ,pos-qoc3-sm-l(553) -- GSR 4 Port Packet Over SONET OC-3c/STM-1 Single Mode Long Reach + ,pos-8oc3-mm(554) -- GSR 8 port OC3 Multimode POS + ,pos-8oc3-ir(555) -- GSR 8 port OC3 SM intermediate reach POS + ,pos-8oc3-lr(556) -- GSR 8 port OC3 SM long reach POS + ,pos-16oc3-mm(557) -- GSR 16 port OC3 multimode POS + ,pos-16oc3-ir(558) -- GSR 16 port OC3 SM intermediate reach POS + ,pos-16oc3-lr(559) -- GSR 16 port OC3 SM long reach POS + ,pa-8ct1(560) -- 8 Port Channelized T1 + ,pa-8ce1(561) -- 8 Port Channelized E1 + ,pa-ce3(562) -- Channelized E3 Port Adapter + ,pa-4r-dtr(563) -- 4 port Dedicated Token Ring port adapter + ,pa-possw-sm(564) -- Single Width POS (Packet Over Sonet) Port Adapter with Singlemode Fiber + ,pa-possw-mm(565) -- Single Width POS (Packet Over Sonet) Port Adapter with Multimode Fiber + ,pa-possw-lr(566) -- Single Width POS (Packet Over Sonet) Port Adapter with Long Range Fiber + ,pa-1t3-plus(567) -- Improved one port serial T3 plus port adapter + ,pa-2t3-plus(568) -- Improved 2 port serial T3 plus port adapter + ,pa-ima-t1(569) -- Implements IMA functionality for the 7200/7500 platform for a T1 + ,pa-ima-e1(570) -- Implements IMA functionality for the 7200/7500 platform for an E1 + ,pa-2ct1-csu(571) -- 2 port multichannel T1 port adapter with built in csu/dsu for the 7200, 7500, and rsp7000 platforms + ,pa-2ce1(572) -- 2 port multichannel E1 port adapter for the 7200, 7500, and rsp7000 platforms + ,pa-2fe-tx(573) -- 2-port FastEthernet port adapter with two RJ-45 interfaces + ,pa1-esc4-channel(575) -- High Performance ESCON Channel Port Adapter Version 4 + ,pa2-oc3-pos-sw(576) -- Dual Port OC-3c Packet Over Sonet(POS) Single Wide Adapter Card + ,pa-4dtr(577) -- Four port dedicated tokenring adapter + ,pa-vm-hda-8fxs-did(578) -- High density analog voice/fax voice module with 8 FXS/DID + + ,pm-1fe-1t1(600) -- Port Module with 1 Fast Ethernet, 1 T1 + ,pm-1fe-2t1(601) -- Port Module with 1 Fast Ethernet, 2 T1 + ,pm-1fe-1e1(602) -- Port Module with 1 Fast Ethernet, 1 E1 + ,pm-1fe-2e1(603) -- Port Module with 1 Fast Ethernet, 2 E1 + ,pm-1fe-1t1-csu(604) -- Port Module with 1 Fast Ethernet, 1 T1 with CSU + ,pm-atm25(605) -- 25 Mbits/sec ATM Port Module + ,pm-hssi(606) -- HSSI Card Port Module + ,as5800-dsc(630) + ,as5800-12t1(631) + ,as5800-12e1(632) + ,as5800-mica-hmm(633) + ,as5800-t3(634) -- T3 trunk card + ,as5800-1fe-dsi(635) + ,as5800-mica-dmm(636) -- Mica Double density Modem Module + ,as5800-vcc(637) -- Voice Carrier Card for the AS5800 + ,as5800-dspm-6c549(638) -- Digital Signal Processor Module with 6 C549's Voice Feature Card for the AS5800 + ,as5800-dsp(639) -- Digital Signal Processor Voice Feature Card for the AS5800 +-- 650-699: c6xxx cards + ,slc-cap8(650) -- Subscriber line card for c6200 - Carrierless Amplitude and Phase modulation - 8 port variation + ,ntc-oc3si(651) -- Network Trunk card for c6200 - Optical Carrier 3, single-mode, intermediate reach variation + ,ntc-oc3mm(652) -- Network Trunk card for c6200 - Optical Carrier 3, multi-mode reach variation + ,ntc-stm1si(653) -- Network Trunk card for c6200 - Synchronous Transport Module level 1, single-mode, intermediate reach variation + ,ntc-stm1mm(654) -- Network Trunk card for c6200 - Synchronous Transport Module level 1, multi-mode variation + ,slc-dmt8(655) -- Subscriber line card for c6200 - Discrete Multi-Tone 8 port variation + ,slc-dmt16(656) -- Subscriber line card for c6200 - Discrete Multi-Tone 16 port variation + ,ntc-ds3(657) -- Network Trunk card for c6200 - DS3 + ,osm-1oc48-pos-ss(659) -- Optical Service Module, 1-Port OC48 POS SS w/ 4 GE + ,osm-1oc48-pos-sl(660) -- Optical Service Module, 1-Port OC48 POS SL w/ 4 GE + ,osm-1oc48-pos-si(661) -- Optical Service Module, 1-Port OC48 POS SI w/ 4 GE + ,osm-2oc12-pos-sl(664) -- Optical Service Module, 2-Port OC12 POS SL w/ 4 GE + ,osm-4oc12-pos-sl(665) -- Optical Service Module, 4-Port OC12 POS SL w/ 4 GE + ,osm-2oc12-pos-mm(666) -- Optical Service Module, 2-Port OC12 POS MM w/ 4 GE + ,osm-4oc12-pos-mm(667) -- Optical Service Module, 4-Port OC12 POS MM w/ 4 GE + ,osm-2oc12-pos-si(668) -- Optical Service Module, 2-Port OC12 POS SI w/ 4 GE + ,osm-4oc12-pos-si(669) -- Optical Service Module, 4-Port OC12 POS SI w/ 4 GE + ,osm-8oc3-pos-si(670) -- Optical Service Module, 8-Port OC3 POS SI w/ 4 GE + ,osm-16oc3-pos-si(671) -- Optical Service Module, 16-Port OC3 POS SI w/ 4 GE + ,osm-8oc3-pos-mm(672) -- Optical Service Module, 8-Port OC3 POS MM w/ 4 GE + ,osm-16oc3-pos-mm(673) -- Optical Service Module, 16-Port OC3 POS MM w/ 4 GE + ,osm-8oc3-pos-sl(674) -- Optical Service Module, 8-Port OC3 POS SL w/ 4 GE + ,osm-16oc3-pos-sl(675) -- Optical Service Module, 16-Port OC3 POS SL w/ 4 GE + ,osm-4ge-wan-gbic(676) -- Optical Service Module, 4-Port GE w/ WAN services + ,osm-4ge-4oc12-chds3-sm-ir(680) -- Optical Service Module, 4-Port OC12 channelized down to DS3 Singlemode Intermediate range with 4 GE + ,osm-4ge-8oc12-chds3-sm-ir(681) -- Optical Service Module, 8-Port OC12 channelized down to DS3 Singlemode Intermediate range with 4 GE + ,osm-4ge-oc48-chds3-sm-sr(682) -- Optical Service Module, 1-Port OC48 channelized down to DS3 Singlemode Short range with 4 GE + ,osm-4ge-2oc48-chds3-sm-sr(683) -- Optical Service Module, 2-Port 0C48 channelized down to DS3 Singlemode Short range with 4 GE + ,osm-4ge-oc48-chds3-sm-ir(684) -- Optical Service Module, 1-Port OC48 channelized down to DS3 Singlemode Intermediate range with 4 GE + ,osm-4ge-2oc48-chds3-sm-ir(685) -- Optical Service Module, 2-Port OC48 channelized down to DS3 Singlemode Intermediate range with 4 GE + ,osm-4ge-oc12-chds3-sm-ir(686) -- Optical Service Module, 1-Port OC12 channelized down to DS3 Single Mode Intermediate range with 4 GE + ,osm-4ge-2oc12-chds3-sm-ir(687) -- Optical Service Module, 2-Port OC12 channelized down to DS3 Single Mode Intermediate range with 4 GE + + ,atmdx-rpm(750) -- RPM Cell Bus Interface + ,pa-atm-oc12-mm(802) -- Multimode ATM OC-12 Port Adapter + ,pa-atm-oc12-smi(803) -- Singlemode ATM OC-12 Intermediate reach Port Adapter + ,pa-mct3(804) -- Multichannel DS3 single port adapter + ,pa-mc2t3(805) -- Multichannel DS3 dual port adapter + ,pa-pos-oc12-mm(806) -- OC-12 Packet Over SONET Port Adapter, Multi-Mode fiber + ,pa-pos-oc12-sm(807) -- OC-12 Packet Over SONET Port Adapter, Single Mode fiber + ,srp-pa-oc12-mm(808) -- SRP OC-12/STM-4 Multimode Port Adapter for 7000 series + ,srp-pa-oc12-sm-ir(809) -- SRP OC-12/STM-4 Single Mode Intermediate Reach Port Adapter for 7000 series + ,srp-pa-oc12-lr(810) -- SRP OC-12/STM-4 Single Mode Long Reach Port Adapter for 7000 series + ,pa-mcx-2te1(811) -- 2 port, software configurable Multichannel T1/E1 with TDM Port Adapter + ,pa-mcx-4te1(812) -- 4 port, software configurable Multichannel T1/E1 with TDM Port Adapter + ,pa-mcx-8te1(813) -- 8 port, software configurable Multichannel T1/E1 with TDM Port Adapter + ,srp-pa-oc12-sm-xr(814) -- SRP OC-12/STM-4 Single Mode Extended Reach Port Adapter for 7000 series + ,pa-dual-wide-ge(819) -- Dual Wide Enhanced Gigabit Ethernet Port Adapter + ,pa-vxa-1t1e1-24(820) -- 1 port T1/E1 voice port adapter w/ 7 DSPs + ,pa-vxa-1t1e1-30(821) -- 1 port T1/E1 voice port adapter w/ 8 DSPs + ,pa-mc-8t1e1(822) -- Multichannel T1/E1 (without TDM) Port Adapter + ,pa-mcx-8te1-m(824) -- 8 port, software configurable Multichannel T1/E1 SS7 with TDM Port Adapter + ,ausm-8t1(850) -- ATM User Network Interface Service Module with 8 T1 ports + ,ausm-8e1(851) -- ATM User Network Interface Service Module with 8 E1 ports + ,cesm-8t1(852) -- Circuit Emulation Service Module with 8 T1 ports + ,cesm-8e1(853) -- Circuit Emulation Service Module with 8 E1 ports + ,frsm-8t1(854) -- Frame Relay Service Module with 8 T1 ports + ,frsm-8e1(855) -- Frame Relay Service Module with 8 E1 ports + ,frsm-4x21(856) -- Frame Relay Service Module supporting 4 high speed X.21 ports + ,frsm-2hssi(857) -- Frame Relay Service Module supporting 2 high speed HSSI ports + ,cesm-1t3(858) -- Circuit Emulation Service Module (CESM) with one T3 port + ,cesm-1e3(859) -- Circuit Emulation Service Module (CESM) with one E3 port + ,vism-8t1(860) -- Voice Interworking Service Module (VISM) with 8 T1 ports + ,vism-8e1(861) -- Voice Interworking Service Module (VISM) with 8 E1 ports + ,mgx-rpm(862) -- MGX8800 Route Processor Module having the functionality of a C7200 router + ,mgx-srm-3t3(863) -- MGX8800 Service Redundancy Module supporting 3 T3 ports on back card, used for providing 1:N redundancy for T1 modules + ,vism-pr-8t1(899) -- Voice Interworking Service Module Premium Card (VISM-PR)with 8 T1 ports + ,wsx-2914(900) -- 4 port 10/100BaseTX module for Catalyst 2900XL series + ,wsx-2922(901) -- 2 port 100BaseFX module for Catalyst 2900XL series + ,wsx-2914-v(902) -- 4 port 10/100BaseTX ISL module for Catalyst 2900XL series + ,wsx-2922-v(903) -- 2 port 100BaseFX ISL module for Catalyst 2900XL series + ,wsx-2924-v(904) -- 4 port 100BaseFX module for Catalyst 2900XL series + ,wsx-2951(905) -- ATM UTP module for Catalyst 2900XL series + ,wsx-2961(906) -- ATM MMF module for Catalyst 2900XL series + ,wsx-2971(907) -- ATM SMF-MR module for Catalyst 2900XL series + ,wsx-2972(908) -- ATM SMF-LR module for Catalyst 2900XL series + ,wsx-2931(909) -- GBIC Gigabit module for Catalyst 2900XL series + ,lm-bnc-2t3(950) -- Two T3 75-ohm BNC back card + ,lm-bnc-2e3(951) -- Two E3 75-ohm BNC back card + ,lm-db15-4x21(952) -- Four X.21 DB-15 back card + ,lm-scsi2-2hssi(953) -- Two HSSI SCSI-2 back card + ,lm-rj48-8t1(954) -- Eight T1 RJ48 back card + ,lm-rj48-8t1-r(955) -- Eight T1 RJ48 redundancy back card + ,lm-rj48-8e1(956) -- Eight E1 RJ48 back card + ,lm-rj48-8e1-r(957) -- Eight E1 RJ48 redundancy back card + ,lm-smb-8e1(958) -- Eight E1 SMB back card + ,lm-smb-8e1-r(959) -- Eight E1 SMB redundancy back card + ,lm-psm-ui(960) -- User Interface back card containing 2 RS-232 ports and one ethernet port, T1/E1 timing reference ports for Processor Switch Modules + ,lm-mmf-4oc3(961) -- 4 port 155Mbps back card, MMF, SC connectors + ,lm-smfir-4oc3(962) -- 4 port 155Mbps back card, SMF-IR, SC connectors + ,lm-smflr-4oc3(963) -- 4 port 155Mbps back card, SMF-LR, SC connectors + ,lm-smfir-1oc12(964) -- 1 port 622Mbps back card, SMF-IR, FC connectors + ,lm-smflr-1oc12(965) -- 1 port 622Mbps back card, SMF-LR, FC connectors + ,lm-s3-ui(966) -- Processor Switch Module (PXM) Stratum 3 User Interface back card for PXM1 or PXM2 + ,lm-1fe-tx(967) -- 1 port Fast Ethernet RJ45 connector back card for MGX8800 RPM module + ,lm-1fe-fx(968) -- 1 port Fast Ethernet MMF connector back card for MGX8800 RPM module + ,lm-1mmf-fddi(969) -- 1 port FDDI MMF connector back card for MGX8800 RPM module + ,lm-1smf-fddi(970) -- 1 port FDDI SMF connector back card for MGX8800 RPM module + ,lm-rj45-4e(971) -- 4 port Ethernet (10BaseT) RJ45 connector back card for MGX8800 RPM module + ,lm-bnc-3t3(985) -- 3 T3 Back Card , BNC Connector + ,ubr-mc16s(1001) -- Cable card 1 downstream 6 upstream for Spectrum management + ,ubr-mc11(1002) -- Cable linecard 1 downstream, 1 upstream, FPGA + ,ubr-mc11c(1003) -- Cable linecard 1 downstream, 1 upstream, ASIC C + ,ubr-mc12c(1004) -- Cable linecard 1 downstream, 2 upstream, ASIC C + ,ubr-mc14c(1005) -- Cable linecard 1 downstream, 4 upstream, ASIC C + ,ubr-mc16a(1006) -- Cable linecard 1 downstream, 6 upstream, ASIC A + ,ubr-mc16b(1007) -- Cable linecard 1 downstream, 6 upstream, ASIC B + ,ubr-mc16c(1008) -- Cable linecard 1 downstream, 6 upstream, ASIC C + ,ubr-mc16e(1009) -- Cable linecard 1 downstream, 6 upstream, ASIC for Europe + ,ubr-mc28c(1010) -- Cable linecard 2 downstream, 8 upstream + ,ubr-mc26(1011) -- Cable linecard 2 downstream, 6 upstream + ,ubr-912c(1012) -- Cisco uBR912-C Cable Modem Card with CSU/DSU WIC + ,ubr-912s(1013) -- Cisco uBR912-S Cable Modem Card with Serial WIC + ,ubr-914r(1014) -- Cisco uBR914 Cable Modem with removable WIC + ,ubr-clk(1015) -- Cisco Cable Clock Card that provides the national clock signal to Cisco uBR7200 VXR + ,ubr-925(1016) -- Cisco UBR925 Cable Modem/Router with VOIP and hardware accelerated IPSEC + ,ubr-mc26c(1017) -- Cable linecard 2 downstream, 6 upstream + ,ubr-mc28cf(1020) -- Cable linecard 2 downstream, 8 upstream, with F connector + ,ubr-mc28c-bnc(1021) -- Cable linecard 2 downstream, 8 upstream, with BNC connector + ,ubr-mc26cf(1022) -- Cable linecard 2 downstream, 6 upstream, with F connector + ,ubr-mc26c-bnc(1023) -- Cable linecard 2 downstream, 6 upstream, with BNC connector + ,ubr-905(1024) -- Cisco uBR905 Cable Modem with hardware accelerated IPSEC + ,ubr-dlc24(1025) -- DLC24 is a Digital Video Broadcasting (DVB) Linecard which supports the DVB in-band (IB) and out-of-band (OOB) standards, as well as the DAVIC OOB standard. It has 2 downstream channels, 4 upstream channels, and 1 ASI interface port + ,ubr-mc520s-f(1029) -- Cable linecard, 5 downstreams, 20 upstreams, with Spectrum Management, with F connector + ,ubr-mc520s-bnc(1030) -- Cable linecard, 5 downstreams, 20 upstreams, with Spectrum Management, with BNC connector + + ,gsr-8fe-tx(1050) -- GSR 8 port Fast Ethernet card with Copper interface + ,gsr-8fe-fx(1051) -- GSR 8 port Fast Ethernet card with Fiber interface + ,ssrp-oc48-sm-sr(1052) -- GSR 1 port SONET based SRP OC-48c/STM-16 Single Mode, Short Reach + ,ssrp-oc48-sm-lr(1053) -- GSR 1 port SONET based SRP OC-48c/STM-16 Single Mode, Long Reach + ,pos-qoc12-sm-lr(1054) -- GSR 4 port (Quad) OC-12 POS card, single mode, long reach + ,pos-qoc12-mm-sr(1055) -- GSR 4 port (Quad) OC-12 POS card, multi mode, short reach + ,pos-oc48-sm-lr-sc(1056) -- GSR 1 port Packet Over Sonet OC-48, single mode, long reach, SC connector card + ,pos-oc48-sm-sr-sc(1057) -- GSR 1 port Packet Over Sonet OC-48, single mode, short reach, SC connector card + ,srp-oc12-sm-ir(1058) -- GSR 1 port single mode SRP OC-12/STM-4 intermediate reach module + ,srp-oc12-sm-lr(1059) -- GSR 1 port single mode SRP OC-12/STM-4 long reach module + ,srp-oc12-mm(1060) -- GSR 1 port SRP OC-12/STM-4 Multimode Ring line card + ,pos-en-oc48-sr-sc(1061) -- GSR enhanced OC-48 short reach SC connector line card + ,pos-en-oc48-sr-fc(1062) -- GSR enhanced OC-48 short reach FC connector line card + ,pos-en-oc48-lr-sc(1063) -- GSR enhanced OC-48 long reach SC connector line card + ,pos-en-oc48-lr-fc(1064) -- GSR enhanced OC-48 long reach FC connector line card + ,pos-en-qoc12-sr(1065) -- GSR enhanced 4 port OC-12 short reach line card + ,pos-en-qoc12-ir(1066) -- GSR enhanced 4 port OC-12 intermediate reach line card + ,copper-6ds3(1067) -- GSR 6 port copper DS3 interface line card + ,copper-12ds3(1068) -- GSR 12 port copper DS3 interface line card + ,gsr-sfc16(1073) -- GSR Switch Fabric Card for 12016 + ,gsr-csc16(1074) -- GSR 12016 Clock Scheduler Card + ,gsr-3ge(1075) -- GSR 3 Port Gigabit Ethernet Line Card + ,gsr-alarm16(1076) -- GSR Alarm module + ,gsr-bus-board16(1077) -- GSR Bus Board for Power distribution + ,srp-oc12-sm-xr(1078) -- GSR 1 port single mode SRP OC-12/STM-4 extra long reach module + ,pos-en-qoc12-mm(1079) -- GSR enhanced 4 port OC-12 multimode line card + ,pos-en-qoc48-sm-sr-fc(1080) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Short Reach, FC Connector Card + ,pos-en-qoc48-sm-sr-sc(1081) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Short Reach, SC Connector Card + ,pos-en-qoc48-sm-lr-sc(1082) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Long Reach, SC Connector Card + ,pos-en-qoc48-sm-lr-fc(1083) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Long Reach, FC Connector Card + ,gsr-6ct3(1084) -- GSR 6 Port Channelized T3 Line Card + ,pos-en-oc192-sm-lr-fc(1085) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Long Reach, FC Connector Card + ,pos-en-oc192-sm-lr-sc(1086) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Long Reach, SC Connector Card + ,pos-en-oc192-sm-vsr-sc(1087) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Very Short Reach, SC Connector Card + ,pos-en-oc192-sm-vsr-fc(1088) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Very Short Reach, FC Connector Card + ,gsr-sfc16-oc192(1091) -- GSR 12016 OC192 Switch Fabric Card + ,gsr-csc16-oc192(1092) -- GSR 12016 OC192 Clock Scheduler Card + ,gsr-qoc12-chstsds3-sm-ir-sc(1094) -- GSR 4 port OC12 channelized to STS-12c/STM-4, STS-3c/STM1, or DS-3, Single Mode, Intermediate Reach and SC connector line card + ,gsr-qoc12-chstsds3-mm-sr-sc(1095) -- GSR 4 port OC12 channelized to STS-12c/STM-4, STS-3c/STM1, or DS-3, Multi Mode, Short Reach and SC connector line card + ,gsr-oc48-chstsds3-mm-sr-sc(1096) -- GSR 1 port OC48 channelized to STS-48c/STM16, STS-12c/STM-4, STS-3c/STM1 or DS-3, Multi Mode, Short Reach and SC connector line card + ,gsr-oc48-chstsds3-sm-ir-sc(1097) -- GSR 1 port OC48 channelized to STS-48c/STM16, STS-12c/STM-4, STS-3c/STM1 or DS-3, Single Mode, Intermediate Reach and SC connector line card + ,gsr-oc48-chstsds3-sm-lr-sc(1098) -- GSR 1 port OC48 channelized to STS-48c/STM16, STS-12c/STM-4, STS-3c/STM1 or DS-3, Single Mode, Long Reach and SC connector line card + ,gsr-16oc3-chstsds3-mm-sr-sc(1099) -- GSR 16 port OC3 channelized to STS-3c/STM-1 or DS-3; Multi Mode fiber, Short Reach, SC connector line card + ,aim-lc-4e1-compression(1100) -- Lowcost 4 E-1 Compression AIM + ,wic-csu-dsu-ft1(1105) -- Wan Interface Card with 1 Fractional T1 DSU/CSU port for 2600, 3600 series + ,pm-ds3(1106) -- ATM DS3 port module for 2600, 3600 series + ,pm-e3(1107) -- ATM E3 port module for 2600, 3600 series + ,vic-2vp-fxs-did(1111) -- 2 Port Voice Interface Card for 26/3600 Platforms. Ports can function as Foreign Exchange Station (FXS)or Direct Inward Dialing (DID) Voice Ports (VP) + ,wic-serial-1t-12in1(1112) -- WAN Interface Card card including 1 port serial interface, 12 in 1 connector type + ,vic-2st-2086-nt-te(1113) -- Two port NT or TE Endpoint BRI S/T voice interface daughtercard + ,nm-aic64(1114) -- The new alarm interface card (AIC) network module with 64 monitoring points on the C26xx/C3600 platform + ,mix3660-64(1115) -- TDM Module that enables TDM switching on C3660 platform + ,wic-async-1am(1116) -- WAN Interface Card - 1 Port Analog Modem + ,wic-async-2am(1117) -- WAN Interface Card - Dual Analog Modem + ,hdv-4fxs(1120) -- 4-Port FXS High Density Analog Voice Module + ,c2610m(1121) -- c2600M with 1 integrated ethernet interface + ,c2611m(1122) -- c2600M with 2 integrated ethernet interfaces + ,wic-ethernet(1124) -- WIC-1ENET card for 17xx platforms + ,nm-1t3e3(1130) -- One port Clear T3/E3 Network Module + ,nm-1ct3e3(1131) -- One port Channelized T3/E3 Network Module + ,nm-8ct1e1(1132) -- Eight port Channelized T1/E1 Network Module + ,hda-em-4fxo(1133) -- 4-port FXO Expansion Module for High Density Analog Voice Interface Daughtercard + ,c2610xm-1fe(1134) -- Card with 1 integrated fast ethernet interface with SDRAM for Cisco 2610XM platform + ,c2611xm-2fe(1135) -- Card with 2 integrated fast ethernet interfaces with SDRAM for Cisco 2611XM platform + ,c2620xm-1fe(1136) -- Card with 1 integrated fast ethernet interface with SDRAM for Cisco 2620XM platform + ,c2621xm-2fe(1137) -- Card with 2 integrated fast ethernet interfaces with SDRAM for Cisco 2621XM platform + ,c2650xm-1fe(1138) -- Card with 1 integrated fast ethernet interface with SDRAM for Cisco 2650XM platform + ,c2651xm-2fe(1139) -- Card with 2 integrated fast ethernet interfaces with SDRAM for Cisco 2651XM platform + ,nm-1ct1e1-pri(1147) -- One port Primary Rate Interface (PRI) Channelized T1/E1 Network Module + ,nm-2ct1e1-pri(1148) -- Two port Primary Rate Interface (PRI) Channelized T1/E1 Network Module + + ,io-2fe-tx-isl(1150) -- I/O card Dual 10/100 Fast Ethernet ISL card for the 7100 series + ,ism-ipsec-mppe(1151) -- Integrated Service Module, used only in slot 5 of the 7100 series, is a hardware accelerator for IPSEC Encryption and Compression, and MPPE encryption. + ,vpn-accelerator(1152) -- VPN Encryption Accelerator Engine + ,vpn-accelerator-module2(1153) -- VPN Encryption Accelerator Engine 2 + ,vpn-accelerator-AES(1154) -- VPN Encryption Accelerator Engine with AES Support + ,cre-rp(1180) -- Central Routing Engine - Route Processor for Cisco 10000 series + ,cpu-as5400(1182) -- CPU card for AS5400 + ,cpu-mc3810-v3(1185) -- CPU card for the MC3810-V3; higher performance than MC3810 with NEBs compliant changes. + ,cpu-7200-nse1(1186) -- CPU card for use in the 7200 series, Network Service Engine 1. Contains a PXF (Parallel Express Forwarding) processor to accelerate layer 3-7 IP features. + ,cpu-as5850(1187) -- CPU card for AS5850 + ,cpu-7200-npe400(1188) -- Network processing engine (CPU card) for 7200 series + ,cpu-7150(1191) -- CPU for the 7150 series + ,cpu-7401-nse(1193) -- Cisco 7401 Network Processing Engine + ,cpu-gsr-prp1(1196) -- GSR Performance Route Processor 1 + ,cpu-c2691-2fe(1204) -- c2691 Motherboard with Fast Ethernet + ,cpu-c3745-2fe(1205) -- c3745 Motherboard with Fast Ethernet + ,cpu-c3725-2fe(1206) -- c3725 Motherboard with Fast Ethernet + ,cpu-c3631-1fe(1207) -- c3631 Motherboard with Fast Ethernet + ,cpu-6400-nsp(1209) -- Cisco 6400 Node Switch Processor + ,cpu-6400-nrp(1210) -- Cisco 6400 Node Route Processor + ,cpu-6400-nrp2(1211) -- Cisco 6400 Node Route Processor 2 + ,cpu-6400-nrp2-sv(1212) -- Cisco 6400 Node Route Processor 2 with Shaped VCs + ,cpu-as5400-hpx(1217) -- CPU card for AS5400HPX + ,cpu-vg224(1224) -- Line Side Analog Gateway with 24FXS Analog ports + ,cpu-gsr-prp2(1228) -- GSR Performance Route Processor 2 + + ,acc-24fe-tx(1307) -- c10720 24 ports fast ethernet Tx access card + ,acc-24fe-fx-mm(1308) -- c10720 24 ports fast ethernet FX MM (2km) access card + ,acc-24fe-fx-sm(1309) -- c10720 24 ports fast ethernet FX SM (15km) access card + ,srp-oc48-sr(1310) -- c10720 1 port OC-48c SRP SM short reach uplink card + ,srp-oc48-ir(1311) -- c10720 1 port OC-48c SRP SM intermediate reach uplink card + ,atm-4oc3(1313) -- 4 port OC3 ATM line card with single mode, intermediate reach optics for the C10000 platform + ,acc-4ge8fe-tx(1323) -- c10720 4 port gigabit ethernet + 8 port fast ethernet access card + ,acc-4ge8fe-fx-mm(1324) -- c10720 4 port gigabit ethernet + 8 port fast ethernet FX MM (2km) access card + ,acc-4ge8fe-fx-sm(1325) -- c10720 4 port gigabit ethernet + 8 port fast ethernet FX SM (15km) access card + ,ul-srp48-lr1(1326) -- c10720 1 port OC-48c SRP SM Long Reach (40Km) uplink card + ,ul-srp48-lr2(1327) -- c10720 1 port OC-48c SRP SM Long Reach (80Km) uplink card + ,c10720-mnt(1330) -- C10720 Maintenance card + ,ul-pos-srp48-sm-sr(1332) -- c10720 OC-48c POS/SRP SM short reach uplink card + ,ul-pos-srp48-sm-ir(1333) -- c10720 OC-48c POS/SRP SM intermediate reach uplink card + ,ul-pos-srp48-sm-lr1(1334) -- c10720 OC-48c POS/SRP SM Long Reach (40Km) uplink card + ,ul-pos-srp48-sm-lr2(1335) -- c10720 OC-48c POS/SRP SM Long Reach (80Km) uplink card + ,acc-24fe-tx-b(1336) -- c10720 24 ports fast ethernet Tx access card revB. + ,acc-4ge8fe-tx-b(1337) -- c10720 4 port gigabit ethernet + 8 port fast ethernet access card revB. + ,c10k-spa-jacket(1338) -- the Shared Port Adaptor (SPA) jacket (or host) card for the c10k. It can host up to 2 SPAs. + + + ,as5400-dfc-carrier(1350) -- Carrier card that holds Dial Feature Cards for the AS5400 platform + ,as5400-dfc-np348(1351) -- Nextport (np) Modem Dial Feature Card consisting of 3 modem modules, 2 of which have 120 modems and that has 108, for a total of 348 modems per card, used in AS5400 and AS5350 platforms + ,as5400-dfc-np192(1352) -- Nextport (np) Modem Dial Feature Card consisting of 2 modem modules, 1 of which has 120 modems the other 72, for a total of 192 modems per card, used in AS5400 and AS5350 platforms + ,dfc-8ce1(1450) -- 8 Primary Rate Interface (PRI) Channelized E1 (ce1) Dial Feature Card used in AS5400 and AS5800 platforms + ,dfc-8ct1(1451) -- 8 Primary Rate Interface (PRI) Channelized T1 (ct1) Dial Feature Card used in AS5400 and AS5800 platforms + ,dfc-ct3(1452) -- Channelized T3 (ct3) Dial Feature Card used in AS5400 and AS5800 platforms + ,dfc-np108(1453) -- Nextport (np) Modem Dial Feature Card consisting of 3 modem modules, each module has 36 modems, for a total of 108 modems per card, used in AS5400 and AS5800 platforms + ,isa-ipsec-mppe(1454) -- Integrated Service Port Adapter, used in the 7100 and 7200 series as a module, and in the 7500 series as a Port Adapter. Hardware Accelerator for IPSEC Encryption and Compression, and MPPE encryption. May not be used in slot 5 of the 7100. + ,wic-dslsar-20150(1455) -- DSLSAR ADSL WIC (Wan Interface Card) used in 1720, 1750, 2600 and 3600 series. DSLSAR - SAR (Segmentation & Reassembly) of ATM cells and can be used with any DSL (Digital Subscriber Line). Uses ADSL (Asymmetric Digital Subscriber Line) as the physical layer. + ,wvic-2dsu-t1-dir(1462) -- WAN Voice Interface Cards with a dual port T1 DSU with drop & insert and protection switching relay for MWR1900 + ,wvic-2dsu-e1-dir(1463) -- WAN Voice Interface Cards with a dual port E1 DSU with drop & insert and protection switching relay for MWR1900 + ,vic-4vp-fxs-did(1464) -- 4 port Voice Interface Card; Each port can function as Foreign Exchange Station(FXS) or Direct Inward Dialing (DID) Voice Port + ,vic-4fxo-us-m1(1465) -- Four port Foreign Exchange Office Voice Interface Card for US/North America or M1 interface + ,vic-4fxo-m2-m3(1466) -- Four port Foreign Exchange Office Voice Interface Card for M2 or M3 interface (software selectable on a card basis) + ,vic-4fxo-cama(1467) -- Four port Foreign Exchange Office Voice Interface Card for US/North America with CAMA (Centralized Automated Message Accounting) 911 signalling support (software selectable per port basis) + ,nm-se(1477) -- service engine network module + ,aim-se(1478) -- service engine Advanced Interface Module + ,wic-se(1479) -- service engine WIC + ,ipsec-sw-spa(1482) --IP Security Single-Wide Shared Port Adaptor (SW-SPA). Provides hardware acceleration for IPSec encryption/decryption and IKE + ,oc3-atm2-spa(1483) -- 2 port OC-3c/STM-1 ATM Shared Port Adapter (SPA) + ,oc3-atm4-spa(1484) -- 4 port OC-3c/STM-1 ATM Shared Port Adapter (SPA) + ,oc12-atm1-spa(1485) -- 1 port OC-12c/STM-4 ATM Shared Port Adapter (SPA) + ,oc12-atm2-spa(1486) -- 2 port OC-12c/STM-4 ATM Shared Port Adapter (SPA) + ,oc48-atm1-spa(1487) -- 1 port OC-48c/STM-16 ATM Shared Port Adapter (SPA) + ,t3e3-atm2-spa(1488) -- 2 port T3/E3 ATM Versitile Port Adapter (SPA) + ,t3e3-atm4-spa(1489) -- 4 port T3/E3 ATM Versitile Port Adapter (SPA) + ,oc192-pos-rpr1-xfp-spa(1498) -- 1 port OC-192c/STM-64 POS/RPR Shared Port Adapter (SPA) with XFP + ,oc192-pos-rpr1-sm-ir-spa(1499) -- 1 port OC-192c/STM-64 POS/RPR single mode intermediate reach Shared Port Adapter (SPA) + ,oc192-pos-rpr1-sm-sr-spa(1500) -- 1 port OC-192c/STM-64 POS/RPR single mode short reach Shared Port Adapter (SPA) + + + ,cat6k-wsx-sup-12ge(1502) -- Supervisor with 2 Gigabit Ethernet ports for the Catalyst 6000 series + ,cat6k-wsx-6408-gbic(1503) -- Card with 8 Gigabit Ethernet ports for the Catalyst 6000 series + ,cat6k-wsx-6224-100fx-mt(1504) -- Card with 24 port 100BaseFX MM (MT-RJ) for the Catalyst 6000 series + ,cat6k-wsx-6248-rj45(1505) -- Card with 48 10/100 RJ45 Fast Ethernet ports for the Catalyst 6000 series + ,cat6k-wsx-6248-tel(1506) -- Card with 48 10/100 RJ21 Fast Ethernet ports for the Catalyst 6000 series + ,cat6k-wsx-6302-msm(1507) -- Multilayer Switch Module for the Catalyst 6000 series + ,cat6k-wsx-6024-mtrj(1509) -- Card with 24 10/100 MTRJ Fast Ethernet ports for the Catalyst 6000 series + ,cat6k-msfc2(1510) -- Multilevel Switching Feature Card Version 2 for the Catalyst 6000 series + ,cat6k-wsx-6316-ge-tx(1511) -- 16-port RJ-45 Gigabit ethernet module + ,cat6k-wsx-6416-gbic(1512) -- 16-port GBIC Gigabit ethernet module + ,cat6k-wsx-6324-100fx(1513) -- 24-port 100FX multimode MT-RJ with 128K per-port packet buffer + ,cat6k-wsx-6348-rj45(1514) -- 48-port 10/100 ethernet module + ,cat6k-wsx-6502-10ge(1515) -- 10 Gigabit Ethernet Base Module + ,cat6k-wsx-6066-slb-apc(1516) -- Venus: Server Load Balancing Application Processor Complex + ,cat6k-wsx-6548-rj45(1518) -- 48 port 10/100 Hydra2+/Hydra2V+ + ,cat6k-wsx-6248a-tel(1519) -- Card for C6K with 48 10/100 RJ21 ports with enhanched QoS a.k.a Indus w/ Enhanced QoS + ,cat6k-wsx-sup2-2ge(1520) -- Supervisor 2 with 2 Gigabit Ethernet ports + ,cat6k-wsc-6500-sfm(1521) -- Catalyst 6500 Switch Fabric Module + ,cat6k-wsc-6500-sfm2(1522) --Catalyst 6500 Switch Fabric Module II + ,cat6k-wsx-6816-gbic(1523) -- Catalyst 6500 16 port 1000BaseX (Layer 3) + ,cat6k-wsx-6348-rj21(1528) -- Catalyst 6500 48 port 10/100BaseTX (RJ-21) + ,cat6k-wsx-6516-gbic(1529) -- Catalyst 6500 16 port 1000BaseX GBIC + ,cat6k-wsx-sup1a-2ge(1530) -- Catalyst 6500 2 port 1000BaseX Supervisor module (GBIC) + ,cat6k-wsx-6548-rj21(1531) -- Catalyst 6500 48 port 10/100BaseTX (RJ-21) + ,cat6k-wsx-6416-gemt(1532) -- Catalyst 6500 16 port 1000BaseSX (MT-RJ) + ,cat6k-wsx-6380-nam(1533) -- Catalyst 6500 Network Analysis Module + ,cat6k-wsx-6248a-rj45(1534) -- Catalyst 6500 48 port 10/100BaseTX (RJ-45) + ,cat6k-wsx-6408a-gbic(1535) -- Catalyst 6500 8 port 1000BaseX (GBIC), Enhanced QoS module + ,cat6k-wsx-6381-ids(1536) -- Catalyst 6500 Intrusion Detection module + ,cat6k-wsx-6524-mmmt(1537) -- Catalyst 6500 24 port 100BaseX MM (MT-RJ) module + ,cat6k-wsx-6516-getx(1538) -- Catalyst 6500 16 port 10/100/1000BaseT (RJ-45) module + ,cat6k-wsx-6501-10gex4(1539) -- Catalyst 6500 1 port 10 Gigabit Ethernet (EX4) module + ,cat6k-wsf-6kvpwr(1541) -- Catalyst 6500 inline power card + ,cat6k-ws-svc-nam1(1542) -- Catalyst 6500 Network Analysis Module + ,cat6k-ws-svc-nam2(1543) -- Catalyst 6500 Network Analysis Module + ,cat6k-ws-svc-fwm1(1544) -- Catalyst 6500 Firewall Module + ,cat6k-ws-svc-ssl1(1545) -- Catalyst 6500 SSL Module + ,ipsec-vpnsm(1549) -- Gigabit IPsec VPN Service Module for the Catalyst 6500 and 7600 + ,dspm-pvdm3(1556) -- Packet Voice DSP module with 3 C549 DSP's used by 17x0, 26x0, and 36x0 platforms + ,dspm-pvdm1(1561) -- Packet Voice DSP module with 1 C549 DSP used by 17x0, 26x0, and 36x0 platforms + ,dspm-pvdm2(1562) -- Packet Voice DSP module with 2 C549 DSPs used by 17x0, 26x0, and 36x0 platforms + ,dspm-pvdm4(1563) -- Packet Voice DSP module with 4 C549 DSPs used by 17x0, 26x0, and 36x0 platforms + ,dspm-pvdm5(1564) -- Packet Voice DSP module with 5 C549 DSPs used by 17x0, 26x0, and 36x0 platforms + ,hda-em-4dsp(1590) -- 4-C5421 DSP Daughtercard + ,hda-em-10fxs(1591) -- 10-port FXS Voice Interface Daughtercard + ,wic-sh-dsl(1565) -- A WIC (Wan Interface Card) providing Symmetrical HIgh bit rate Digital Subscriber line (SHDSL) for 2600, 3620, 3640 and 3660 platforms + ,hdv-8fxs(1566) -- 8-Port FXS Voice Interface Daughtercard + ,hdv-4dsp(1567) -- 4-chip DSP Daughtercard + ,vic-4vp-fxs-4did(1573) -- 4-port Direct Inward Dialing (DID) and 4-port Foreign Exchange Station (FXS) Voice Interface Daughtercard + ,em-4fxs-4fxo(1581) -- 8-port voice/fax expansion module - 4FXS/4FXO + ,em-6fxo(1582) -- 6-port voice/fax expansion module - FXO + ,em-4bri-nt-te(1583) -- 4-port voice/fax expansion module - BRI + ,vic2-mft1-t1e1(1594) -- 1-Port RJ-48 Multiflex Voice Trunk - T1/E1 + ,vic2-mft2-t1e1(1595) -- 2-Port RJ-48 Multiflex Voice Trunk - T1/E1 + + ,ituc-1p8(1611) -- ITU-C octal-line module + ,atuc-1p8-dmt(1618) -- ATU-C octal-line DMT module + ,stuc-1p8(1619) -- STU-C octal-line module + ,atuc-1p8-dmt-itemp(1620) -- ATU-C octal-line DMT module industrial temperature grade + ,stuc-1p8-itemp(1621) -- STU-C octal-line shdsl module industrial temperature grade + ,cva122(1700) -- Cisco CVA122 Cable Voice Adapter (Residential Cable Modem with two Voice Ports) + ,cva124(1701) -- Cisco CVA124 Cable Voice Adapter (Residential Cable Modem with four Voice Ports) + ,cva122e(1702) -- Cisco CVA122 Cable Voice Adapter (Residential Cable Modem with two voice ports) - European version + ,cva124e(1703) -- Cisco CVA124 Cable Voice Adapter (Residential Cable Modem with four voice ports) - European version + ,as5850-epm-2ge(1750) -- Route Switch Controller Card with 2 port Gigabit Ethernet + ,as5850-ct3-216up(1751) -- Feature Card with Channelized T3 and 216 Universal Ports + ,as58xx-324up(1753) -- Feature Card with 324 Universal Ports + ,as5850-24e1(1754) -- Feature Card with 24 port Channelized E1 for the AS5850 platform + ,gsr-16oc3-chstsds3-sm-ir-sc(1900) -- GSR 16 port OC3 channelized to STS-3c/STM-1 or DS-3; Single Mode fiber, Intermediate Reach, SC connector line card + ,gsr-16oc3-chstsds3-sm-lr-sc(1901) -- GSR 16 port OC3 channelized to STS-3c/STM-1 or DS-3; Single Mode fiber, Long Reach, SC connector line card + ,gsr-2oc3-chds1(1905) -- GSR platform card, 2 ports of OC3 (Sonet/SDH); each port is channelized to DS1 level + ,ssrp-oc192-sm-lr(1906) -- GSR 1 port SONET based SRP OC-192c/STM-64 single mode long reach line card + ,ssrp-oc192-sm-ir(1907) -- GSR 1 port SONET based SRP OC-192c/STM-64 single mode intermediate reach line card + ,ssrp-oc192-sm-sr(1908) -- GSR 1 port SONET based SRP OC-192c/STM-64 single mode short reach line card + ,ssrp-oc192-sm-vsr(1909) -- GSR 1 port SONET based SRP OC-192c/STM-64 single mode very short reach line card + ,gsr-sfc10(1912) -- GSR Switch Fabric Card for 12010 + ,gsr-csc10(1913) -- Clock Scheduler Card for GSR 12010 + ,gsr-alarm10(1914) -- GSR Alarm module + ,gsr-bus-board10(1915) -- GSR Bus Board for Power distribution + ,gsr-oc48-chstsds3-sm-sr-sc(1916) -- GSR 1-port-OC48, channelized to to STS-48c/STM-16, STS-12c/STM-4, STS-3c/STM-1 or DS3, single mode, short-reach, SC connector + ,gsr-e48-pos-oc48-sm-sr-sc(1917) -- GSR, Edge Engine 48, (concatenated) 1 port OC48 POS, single mode, short-reach, SC connector + ,gsr-e48-pos-oc48-sm-lr-sc(1918) -- GSR, Edge Engine 48, (concatenated) 1 port OC48 POS, single mode, short-reach, SC connector + ,gsr-e48-pos-qoc12-sm-ir-sc(1919) -- GSR, Edge Engine 48, 4 port (concatenated) OC12 POS, single mode, intermediate reach, SC connector + ,gsr-e48-pos-16oc3-sm-ir-sc(1920) -- GSR, Edge Engine 48, 16 port (concatenated) OC3 POS, single mode, intermediate reach, SC connector + ,copper-6e3(1921) -- GSR 6 port copper E3 interface line card + ,copper-12e3(1922) -- GSR 12 port copper E3 interface line card + ,gsr-e48-pos-16oc3-sm-ir-lc(1926) -- GSR, Edge Engine 48, 16 port (concatenated) OC3 POS, single mode, intermediate reach, LC connector + ,gsr-16oc3-chstsds3-sm-ir-lc(1927) -- GSR 16 port OC3 channelized to STS-3c/STM-1 or DS-3; single mode fiber, intermediate reach, LC connector + ,gsr-sfc6(1929) -- GSR 12406 Switch Fabric Card + ,gsr-csc6(1930) -- GSR 12406 Clock Scheduler Card + ,gsr-alarm6(1931) -- GSR 12406 Alarm Module + ,pos-en-qoc48-vsr(1932) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Very Short Reach Card + ,pos-en-qoc48-mm-sr-sc(1933) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Multi Mode, Short Reach, SC Connector Card + ,pos-en-qoc48-sm-ir-sc(1934) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Intermediate Reach, SC Connector Card + ,pos-en-qoc48-sm-ir-fc(1935) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Intermediate Reach, FC Connector Card + ,pos-en-qoc48-sm-vlr-sc(1936) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Very Long Reach, SC Connector Card + ,pos-en-qoc48-sm-vlr-fc(1937) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Very Long Reach, FC Connector Card + ,pos-en-qoc48-sm-elr-sc(1938) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Extremely Long Reach, SC Connector Card + ,pos-en-qoc48-sm-elr-fc(1939) -- GSR enhanced 4 Port Packet Over Sonet OC-48, Single Mode, Extremely Long Reach, FC Connector Card + ,pos-en-oc192-vsr(1940) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Very Short Reach Card + ,pos-en-oc192-sm-sr2-sc(1941) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Short Reach 2, SC Connector Card + ,pos-en-oc192-sm-sr2-fc(1942) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Short Reach 2, FC Connector Card + ,pos-en-oc192-sm-vlr-sc(1943) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Very Long Reach, SC Connector Card + ,pos-en-oc192-sm-vlr-fc(1944) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Very Long Reach, FC Connector Card + ,pos-en-oc192-sm-elr-sc(1945) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Extremely Long Reach, SC Connector Card + ,pos-en-oc192-sm-elr-fc(1946) -- GSR enhanced 1 Port Packet Over Sonet OC-192, Single Mode, Extremely Long Reach, FC Connector Card + ,gsr-sfc12410(1947) -- GSR 12410 Switch Fabric Card + ,gsr-csc12410(1948) -- GSR 12410 Clock Scheduler Card + ,iad2420-vm-8fxs(1950) -- This card provides 8 analog Foreign eXchange Stations (FXS) in the Integrated Access Device 2420 (IAD2420) chassis + ,iad2420-16fxs(1951) -- This card provides 16 analog Foreign eXchange Stations (FXS) in the Integrated Access Device 2420 (IAD2420) chassis + ,iad2420-vm-pwr(1952) -- This card provides power supply to high density analog FXS voice module in the Integrated Access Device 2420 (IAD2420) chassis + ,iad2420-adsl(1953) -- This card provides access to ADSL (Asymmetrical Digital Subscriber Line) over ATM (Asynchronous Transfer Mode) AAL2 (ATM Adaptation Layer 2), AAL5 (ATM Adaptation Layer 5) and various class of QoS (Quality of Service) for both voice and data service on the Integrated Access Device 2420 (IAD2420) chassis + ,iad2420-hcm1(1954) -- High performance compression module for the IAD2420 platform equipped with one TI 549 DSP + ,iad2420-hcm2(1955) -- High performance compression module for the IAD2420 platform equipped with two TI 549 DSPs + ,iad2420-hcm3(1956) -- High performance compression module for the IAD2420 platform equipped with three TI 549 DSPs + ,iad2420-hcm4(1957) -- High performance compression module for the IAD2420 platform equipped with four TI 549 DSPs + ,iad2420-hcm5(1958) -- High performance compression module for the IAD2420 platform equipped with five TI 549 DSPs + ,iad2420-hcm6(1959) -- High performance compression module for the IAD2420 platform equipped with six TI 549 DSPs + ,iad2420-cpu(1960) -- CPU card for IAD2420 + ,iad2420-mfm-e1-unbalanced(1961) -- IAD2420 E1 75 ohms unbalanced + ,iad2420-mfm-e1-dsx1-csu(1962) -- IAD2420 E1 100/120 ohms balanced + ,iad2420-mfm-t1-dsx1-csu(1963) -- IAD2420 T1 100/120 ohms balanced only + ,iad2420-8fxo(1964) -- High density 8 analog Foreign eXchange Office (FXO) module + ,iad2420-16fxs-off-premise(1967) -- IAD2420 Sixteen FXS Off Premise Analog Voice Module + ,gsr-atm-en-8oc3-mm(1968) -- GSR enhanced 8 port OC3c/STM-1 Multimode ATM LC + ,iad2430-ob-8fxs(1983) -- This card provides 8 on-board analog Foreign Exchange Stations (FXS) in the Integrated Access Device 2430 (IAD2430) chassis + ,iad2430-ob-16fxs(1984) -- This card provides 16 on-board analog Foreign Exchange Stations (FXS) in the Integrated Access Device 2430 (IAD2430) chassis + ,iad2430-ob-24fxs(1985) -- This card provides 24 on-board analog Foreign Exchange Stations (FXS) in the Integrated Access Device 2430 (IAD2430) chassis + ,iad2430-ob-t1e1(1986) -- This card provides on-board T1/E1 in the Integrated Access Device 2430 (IAD2430) chassis. + + ,mc3810-hcm5(2000) -- High performance compression module for the MC3810 platform equipped with five TI 549 DSPs + ,m10000base-lx4(2051) -- Cisco Wide-WDM 1310nm Laser 10 gigabit ethernet port adapter + ,m10000base-ex4(2052) -- Cisco Wide-WDM 1550nm Laser 10 gigabit ethernet port adapter + ,m10000base-lr(2053) -- Cisco Serial 1310nm Laser 10 gigabit ethernet port adapter + ,m10000base-er(2054) -- Cisco Serial 1550nm Laser 10 gigabit ethernet port adapter + ,m10000base-sx4(2055) -- Cisco Wide-WDM 850nm Laser 10 gigabit ethernet port adapter + + ,c7401(2100) -- Cisco 7400 Family, 1 Slot Router + ,io-c7401-ge(2101) -- Cisco 7401 I/O Controller with dual 10/100/1000Mbps GE interfaces + ,c7411-npeg1(2128) -- Cisco 7400 Family, 1 Slot Router + ,io-c7411-ge(2129) -- Cisco 7411 I/O Controller with three 10/100/1000Mbps GE interfaces + ,vip6-80(2132) -- A new VIP card to be used in 7500 box. this card is same as VIP4-80 but with a higher speed CPU. + ,pa-a6-mm-oc3(2133) -- ATM WAN OC3 MM Port Adapter. + ,pa-a6-smi-oc3(2134) -- ATM WAN OC3 SMI Port Adapter. + ,pa-a6-sml-oc3(2135) -- ATM WAN OC3 SML Port Adapter. + ,pa-a6-ds3(2136) -- ATM WAN OC3 DS3 Port Adapter. + ,pa-a6-e3(2137) -- ATM WAN OC3 E3 Port Adapter. + ,c7300-cc-pa(2138) -- Port Adaptor Carrier Card for Cisco 7304 + + ,gsr-e48-pos-oc48-sm-ir-sc(2201) -- GSR, Edge Engine, OC48 POS, Single Mode, Intermediate Reach, SC Connector + ,gsr-e-oc192-sm-lr-sc(2203) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Long Reach, SC Connector card + ,gsr-e-oc192-sm-vsr-sc(2204) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Very Short Reach, SC Connector card + ,gsr-e-oc192-sm-vsr-fc(2205) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Very Short Reach, FC Connector card + ,gsr-e-oc192-sm-sr-fc(2206) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Short Reach, FC Connector card + ,gsr-e-oc192-sm-sr-sc(2207) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Short Reach, SC Connector card + ,gsr-e-oc192-sm-lr-fc(2208) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Long Reach, FC Connector card + ,gsr-e-qoc48-sm-lr-fc(2209) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Long Reach, FC Connector card + ,gsr-e-qoc48-sm-lr-sc(2210) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Long Reach, SC Connector card + ,gsr-e-qoc48-sm-vsr-sc(2211) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Very Short Reach, SC Connector card + ,gsr-e-qoc48-sm-vsr-fc(2212) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Very Short Reach, FC Connector card + ,gsr-e-qoc48-sm-sr-fc(2213) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Short Reach, FC Connector card + ,gsr-e-qoc48-sm-sr-sc(2214) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Short Reach, SC Connector card + ,gsr-e-qoc48-vsr(2215) -- GSR Edge 4 Port Packet over Sonet OC-48, Very Short Reach + ,gsr-e-qoc48-sm-sr2-sc(2216) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Short Reach 2, SC Connector card + ,gsr-e-qoc48-sm-sr2-fc(2217) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Short Reach 2, FC Connector card + ,gsr-e-qoc48-mm-sr-sc(2218) -- GSR Edge 4 Port Packet over Sonet OC-48, Multi Mode, Short Reach, SC Connector card + ,gsr-e-qoc48-sm-ir-sc(2219) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Intermediate Reach, SC Connector card + ,gsr-e-qoc48-sm-ir-fc(2220) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Intermediate Reach, FC Connector card + ,gsr-e-qoc48-sm-vlr-sc(2221) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Very Long Reach, SC Connector card + ,gsr-e-qoc48-sm-vlr-fc(2222) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Very Long Reach, FC Connector card + ,gsr-e-qoc48-sm-elr-sc(2223) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Extremely Long Reach, SC Connector card + ,gsr-e-qoc48-sm-elr-fc(2224) -- GSR Edge 4 Port Packet over Sonet OC-48, Single Mode, Extremely Long Reach, FC Connector card + ,gsr-e-oc192-vsr(2225) -- GSR Edge 1 Port Packet over Sonet OC-192, Very Short Reach + ,gsr-e-oc192-sm-sr2-sc(2226) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Short Reach 2, SC Connector card + ,gsr-e-oc192-sm-sr2-fc(2227) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Short Reach 2, FC Connector card + ,gsr-e-oc192-mm-sr-sc(2228) -- GSR Edge 1 Port Packet over Sonet OC-192, Multi Mode, Short Reach, SC Connector card + ,gsr-e-oc192-sm-ir-sc(2229) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Intermediate Reach, SC Connector card + ,gsr-e-oc192-sm-ir-fc(2230) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Intermediate Reach, FC Connector card + ,gsr-e-oc192-sm-vlr-sc(2231) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Very Long Reach, SC Connector card + ,gsr-e-oc192-sm-vlr-fc(2232) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Very Long Reach, FC Connector card + ,gsr-e-oc192-sm-elr-sc(2233) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Extremely Long Reach, SC Connector card + ,gsr-e-oc192-sm-elr-fc(2234) -- GSR Edge 1 Port Packet over Sonet OC-192, Single Mode, Extremely Long Reach, FC Connector card + ,ssrp-2oc48-srp-sm-sr-lc(2236) -- GSR 2 port SONET dual SRP/POS OC-48c/STM-16, SRP Mode, Single Mode, Short Reach, LC Connector card + ,ssrp-2oc48-srp-sm-ir-lc(2237) -- GSR 2 port SONET dual SRP/POS OC-48c/STM-16, SRP Mode, Single Mode, Intermediate Reach, LC Connector card + ,ssrp-2oc48-srp-sm-lr-lc(2238) -- GSR 2 port SONET dual SRP/POS OC-48c/STM-16, SRP Mode, Single Mode, Long Reach, LC Connector card + ,ssrp-2oc48-pos-sm-sr-lc(2239) -- GSR 2 port SONET dual SRP/POS OC-48c/STM-16, POS Mode, Single Mode, Short Reach, LC Connector card + ,ssrp-2oc48-pos-sm-ir-lc(2240) -- GSR 2 port SONET dual SRP/POS OC-48c/STM-16, POS Mode, Single Mode, Intermediate Reach, LC Connector card + ,ssrp-2oc48-pos-sm-lr-lc(2241) -- GSR 2 port SONET dual SRP/POS OC-48c/STM-16, POS Mode, Single Mode, Long Reach, LC Connector card + ,gsr-gefe(2244) -- Modular Gigabit/Fast Ethernet card for GSR + ,gsr-pa-3ge(2246) -- 3 Port Gigabit Ethernet Port Adapter Of Modular Gigabit/Fast Ethernet card for GSR + ,gsr-pa-24fe(2247) -- 24 Port Fast Ethernet Port Adapter Of Modular Gigabit/Fast Ethernet card for GSR + ,gsr-e48-atm-4oc12-sm-ir-sc(2248) -- Edge Engine 48, ATM, 4 ports OC12/STM4, Single Mode, Intermediate Reach, SC connector + ,gsr-e48-atm-4oc12-mm-sr-sc(2249) -- GSR, Edge Engine 48, ATM, 4 ports OC12/STM4, Multi Mode, Short Reach, SC connector + ,ssrp-e48-2oc12-sm-ir(3008) -- GSR 2 port SONET based SRP OC-12c/STM-4 Single mode Intermediate reach line card + ,ssrp-e48-2oc12-sm-xr(3009) -- GSR 2 port SONET based SRP OC-12c/STM-4 Single mode Extented reach line card + ,ssrp-e48-1oc12-sm-ir(3010) -- GSR 1 port SONET based SRP OC-12c/STM-4 Single mode Intermediate reach line card + ,ssrp-e48-1oc12-sm-xr(3011) -- GSR 1 port SONET based SRP OC-12c/STM-4 Single mode Extented reach line card + ,gsr-6ds3e3-smb(3028) -- GSR 6 Port DS3/E3 Clear Channel, SMB Connector line card + ,gsr-6ds3e3ct3-smb(3029) -- GSR 6 Port DS3/E3 Clear channel and/or Channelized to DS1/E1, SMB Connector line card + ,gsr-2oc3-chds1ds3e3-sm-ir-sc(3030) -- GSR 2 Port STM-1/OC-3 Channelized to DS3/E3/DS1/E1, Single Mode, Intermediate Reach and SC Connector line card + + ,vism-pr-8e1(3050) -- Voice Interworking Service Module Premium Card (VISM-PR) with 8 E1 ports + ,vxsm-4oc3(3051) -- Voice switch service module, 4 port OC3/STM-1 compliant + ,mgx-srm-4oc3(3052) -- MGX88xx voice service redundancy module, used to providing 1:N redundancy for 4 OC3 + + ,hd-dsp(4015) -- 5510 Digital Signal Processor on NM-HD-1V,NM-HD-2V and NM-HD-2VE + ,nm-8am-v2(4020) -- 8 Port Analog Modem Network Module Version 2 + ,nm-16am-v2(4021) -- 16 Port Analog Modem Network Module Version 2 + ,cpu-c2811-2fe(4023) -- 2811 Motherboard with two integrated fast ethernets and integrated VPN + ,cpu-c2821-2ge(4024) -- 2821 Motherboard with two integrated gigabit ethets and integrated VPN + ,cpu-c2851-2ge(4025) -- 2851 Motherboard with two integrated gigabit ethernets and integrated VPN + + ,cat6k-wsf-6k-pfc(4058) -- Catalyst 6500 L3 switching engine + ,cat6k-wsf-6k-pfc2(4059) -- Catalyst 6500 L3 switching engine II + ,cat6k-wsf-6k-dfc(4060) -- Catalyst 6500 distributed switching engine + ,cat6k-wsx-6148-ge-tx(4063) -- Catalyst 6000 48 port10/100/1000BaseT(RJ-45) module + ,cat6k-wsx-6148-rj21(4064) -- Catalyst 6000 48 port10/100BaseTX(RJ-21) module + ,cat6k-wsx-6148-rj45(4065) -- Catalyst 6000 48 port10/100BaseTX(RJ-45) module + ,cat6k-wsf-6700-dfc3a(4067) -- Catalyst 6500 Distributed L3 switching engine IIIa + ,cat6k-ws-svc-idsm2(4069) -- Catalyst 6500 Intrusion Detection Module + ,cat6k-ws-svc-idsupg(4070) -- Catalyst 6500 IDS 2 accelerator board + + ,oc3-sfp(4100) -- Oc3 Small Form Factor Pluggable Optics(SFP) + ,oc12-sfp(4101) -- Oc12 Small Form Factor Pluggable Optics(SFP) + ,osm-2oc48-pos-ss(4102) -- Optical Service Module, 2-Port OC48 POS, Single-mode, Short-reach with 4 Gigabit Ethernet ports + ,osm-2oc48-pos-si(4103) -- Optical Service Module, 2-Port OC48 POS Single-mode, Intermediate-reach with 4 Gigabit Ethernet ports + ,osm-2oc48-pos-sl(4104) -- Optical Service Module, 2-Port OC48 POS Single-mode, Long-reach with 4 Gigabit Ethernet ports + ,osm-1oc48-srp-ss(4105) -- Optical Service Module, 1-Port OC48 SONET based SRP,Single-mode, Short-reach with 4 Gigabit Ethernet ports + ,osm-1oc48-srp-si(4106) -- Optical Service Module, 1-Port OC48 SONET based SRP,Single-mode, Intermediate-reach with 4 Gigabit Ethernet ports + ,osm-1oc48-srp-sl(4107) -- Optical Service Module, 1-Port OC48 SONET based SRP,Single-mode, Long-reach with 4 Gigabit Ethernet ports + ,pwr-ac-465w(4113) -- Cisco 465W AC Power Supply. + ,oc192-xfp-smsr1(4128) -- OC192 XFP Single Mode Short Reach 1 (2km) + ,oc192-xfp-smir2(4129) -- OC192 XFP Single Mode Intermediate Reach 2 (40km) + ,oc192-xfp-smlr2(4130) -- OC192 XFP Single Mode Long Reach 2 (80km) + + + + ,oc192-pos-rpr1-sm-vsr-spa(4201) -- 1 port OC-192c/STM-64 POS/RPR single mode very short reach Shared Port Adapter (SPA) + + + + + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Functional type of this card." + ::= { cardTableEntry 2 } + + cardDescr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Text description of this card." + ::= { cardTableEntry 3 } + + cardSerial OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The serial number of this card, or zero if + unavailable." + ::= { cardTableEntry 4 } + + cardHwVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Hardware revision level of this card, or an + empty string if unavailable." + ::= { cardTableEntry 5 } + + cardSwVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Version of the firmware or microcode + installed on this card, or an empty string if + unavailable." + ::= { cardTableEntry 6 } + + cardSlotNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Slot number relative to the containing card or + chassis, or -1 if neither applicable nor + determinable." + ::= { cardTableEntry 7 } + + cardContainedByIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "cardIndex of the parent card which + directly contains this card, or 0 if + contained by the chassis, or -1 if not + applicable nor determinable." + ::= { cardTableEntry 8 } + + cardOperStatus OBJECT-TYPE + SYNTAX INTEGER { + not-specified(1), + up(2), + down(3), + standby(4) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "The operational status of the card. + cardOperStatus is up when a card is + recognized by the device and is enabled for + operation. cardOperStatus is down if the + card is not recognized by the device, or if + it is not enabled for operation. + cardOperStatus is standby if the card is + enabled and acting as a standby slave" + ::= { cardTableEntry 9 } + + cardSlots OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Number of slots on this card, or 0 if no + slots or not applicable, or -1 if not + determinable." + ::= { cardTableEntry 10 } + + -- End of table + + + chassisSlots OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Number of slots in this chassis, or -1 of + neither applicable nor determinable." + ::= { chassis 12 } + + cardIfIndexTable OBJECT-TYPE + SYNTAX SEQUENCE OF CardIfIndexEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Chassis card table." + ::= { chassis 13 } + + cardIfIndexEntry OBJECT-TYPE + SYNTAX CardIfIndexEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Chassis card table." + INDEX { cardIfIndex } + ::= { cardIfIndexTable 1 } + + CardIfIndexEntry ::= + SEQUENCE { + cardIfIndex + INTEGER, + cardIfSlotNumber + INTEGER, + cardIfPortNumber + INTEGER, + cardIfCardIndex + INTEGER, + cardIfConnectorTypeEnabled + INTEGER + } + + cardIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "matches RFC1213 ifTable IfIndex" + ::= { cardIfIndexEntry 1 } + + cardIfSlotNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Chassis slot number, or -1 if neither + applicable nor determinable." + ::= { cardIfIndexEntry 2 } + + cardIfPortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Chassis port number, unique per port on a + given card if available. If cardIfPortNumber is not + applicable to the card, then the object instance + won't be populated" + ::= { cardIfIndexEntry 3 } + + cardIfCardIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS deprecated + DESCRIPTION + "cardIndex of the card in the Chassis + cardTable which contains this interface, or -1 if + not applicable." + ::= { cardIfIndexEntry 4 } + + cardIfConnectorTypeEnabled OBJECT-TYPE + SYNTAX INTEGER { + not-specified(1), + none (2), + rj-45 (3), + db-40 (4), + db-15 (5), + auto-select (6), + gbic-sx (7), + gbic-lx (8), + gbic-lh (9), + gbic-cx (10), + gbic-zx (11), + missing (12), + mmf-st (13), + mmf-sc (14), + rj-11 (15), + rj-48s (16), + rj-48c (17), + db-60 (18), + gbic-stack(19), + gbic-1000baset(20) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Interface connector type currently + enabled. Value will be 1 if not known or not + used, or 2 if none of this ports' interface + connectors are enabled." + ::= { cardIfIndexEntry 5 } + + -- End of table + + chassisPartner OBJECT-TYPE + SYNTAX INTEGER { + cisco(1) + ,synoptics(2) + ,chipcom(3) + ,cabletron(4) + ,dec(5) + ,ncr(6) + ,usrobotics(7) + ,alcatel(8) + ,nec(9) + ,dsc(10) + ,microcom(11) + ,oki(12) + ,ubn(13) + ,hp(14) + ,samsung(15) + ,mitsubishi(16) + } + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Used to determine if this is a partner + variant of a product." + ::= { chassis 14 } + + sysUpTimeAtLastChassisChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS deprecated + DESCRIPTION + "Time in seconds/100 from the last cold + start to the last change in the chassis' + configuration. This value will be updated + whenever the chassis experiences a change + in the count, type, or slot position of + a card in cardTable." + ::= { chassis 15 } + + + + + + + END + diff --git a/pandora_console/attachment/mibs/OLD-CISCO-CPU-MIB b/pandora_console/attachment/mibs/OLD-CISCO-CPU-MIB new file mode 100644 index 0000000000..2f2cbdcb24 --- /dev/null +++ b/pandora_console/attachment/mibs/OLD-CISCO-CPU-MIB @@ -0,0 +1,70 @@ +-- ***************************************************************** +-- OLD-CISCO-CPU-MIB.my: Old Cisco Cpu MIB file +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- + + OLD-CISCO-CPU-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE + FROM RFC-1212 + local + FROM CISCO-SMI; + +-- lcpu is the same as lsystem +-- name changed to support separate compilation with mibcomp + + lcpu OBJECT IDENTIFIER ::= { local 1 } + + busyPer OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CPU busy percentage in the last 5 second + period. Not the last 5 realtime seconds but + the last 5 second period in the scheduler." + ::= { lcpu 56 } + + avgBusy1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "1 minute exponentially-decayed moving + average of the CPU busy percentage." + ::= { lcpu 57 } + + avgBusy5 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5 minute exponentially-decayed moving + average of the CPU busy percentage." + ::= { lcpu 58 } + + idleCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "cisco internal variable. not to be used" + ::= { lcpu 59 } + + idleWired OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "cisco internal variable. not to be used" + ::= { lcpu 60 } + +END + diff --git a/pandora_console/attachment/mibs/OLD-CISCO-FLASH-MIB b/pandora_console/attachment/mibs/OLD-CISCO-FLASH-MIB new file mode 100644 index 0000000000..2b552dd5c8 --- /dev/null +++ b/pandora_console/attachment/mibs/OLD-CISCO-FLASH-MIB @@ -0,0 +1,278 @@ +-- ***************************************************************** +-- OLD-CISCO-FLASH-MIB.my: Old Cisco Flash MIB file +-- +-- Copyright (c) 1994,1997 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- + + OLD-CISCO-FLASH-MIB DEFINITIONS ::= BEGIN + + IMPORTS + TimeTicks + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString + FROM RFC1213-MIB + local + FROM CISCO-SMI; + + lflash OBJECT IDENTIFIER ::= { local 10 } + + -- Local cisco Flash Group + + -- This group is present in all products which contain flash" + + flashSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total Size in Octets of Flash memory" + ::= { lflash 1 } + + flashFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Unused Size in Octets of Flash memory" + ::= { lflash 2 } + + flashController OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Provides the type of Flash controller + (either CCTL or CCTL2) installed in the + router." + ::= { lflash 3 } + + flashCard OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Provides the type of Flash Card installed + in the router. For example, the type of + Flash Card could be either CSC-MS or + CSC-MC+." + ::= { lflash 4 } + + flashVPP OBJECT-TYPE + SYNTAX INTEGER { + installed(1), + missing(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "State of the VPP DIP jumper on the Flash + memory card. Files can be written to the + Flash memory card only if the VPP DIP + jumper is turned on." + ::= { lflash 5 } + + flashErase OBJECT-TYPE + SYNTAX INTEGER + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Request to erase flash memory" + ::= { lflash 6 } + + flashEraseTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the value of sysUptime the last + time Flash memory was erased. If the flash + had not been erased after powerup it has a + value of 0 days 00:00:00." + ::= { lflash 7 } + + flashEraseStatus OBJECT-TYPE + SYNTAX INTEGER { + flashOpInProgress(1), + flashOpSuccess(2), + flashOpFailure(3), + flashReadOnly(4), + flashOpenFailure(5), + bufferAllocationFailure(6), + noOpAfterPowerOn(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Status of current or last flash erasing" + ::= { lflash 8 } + + flashToNet OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Write flash entry to tftp server. Value + should be the name of the flash entry to + send. Instance is the IP address of the tftp + host." + ::= { lflash 9 } + + flashToNetTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the value of sysUpTime the last + time a file was transfered from Flash memory + on the router to a TFTP host. Returns + 0 days 00:00:00 if there had been no transfer + since powerup." + ::= { lflash 10 } + + flashToNetStatus OBJECT-TYPE + SYNTAX INTEGER { + flashOpInProgress(1), + flashOpSuccess(2), + flashOpFailure(3), + flashReadOnly(4), + flashOpenFailure(5), + bufferAllocationFailure(6), + noOpAfterPowerOn(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Status of current or last flash to net + transfer" + ::= { lflash 11 } + + netToFlash OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Write flash entry from tftp server. Value + should be the name of the flash entry to + write. Instance is the IP address of the tftp + host." + ::= { lflash 12 } + + netToFlashTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the value of sysUpTime the last + time file was copied from a Trivial File + Transfer Protocol(TFTP) server to the Flash + memory on the router. Returns 0 days 00:00:00 + if there had been no transfers since powerup." + ::= { lflash 13 } + + netToFlashStatus OBJECT-TYPE + SYNTAX INTEGER { + flashOpInProgress(1), + flashOpSuccess(2), + flashOpFailure(3), + flashReadOnly(4), + flashOpenFailure(5), + bufferAllocationFailure(6), + noOpAfterPowerOn(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Status of current or last net to flash + transfer" + ::= { lflash 14 } + + flashStatus OBJECT-TYPE + SYNTAX INTEGER { + busy(1), + available(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Status of the availability of flash" + ::= { lflash 15 } + + flashEntries OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of entries in the flash directory" + ::= { lflash 16 } + + + -- Local Flash file Table + + -- This group contains information on a per file basis + + lflashFileDirTable OBJECT-TYPE + SYNTAX SEQUENCE OF LflashFileDirEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + " A list of flash file entries." + ::= { lflash 17 } + + lflashFileDirEntry OBJECT-TYPE + SYNTAX LflashFileDirEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of flash eprom objects" + INDEX { flashEntries } + ::= { lflashFileDirTable 1 } + + LflashFileDirEntry ::= + SEQUENCE { + flashDirName + DisplayString, + flashDirSize + INTEGER, + flashDirStatus + INTEGER + } + + -- The following section describes the components of the + -- table. + + flashDirName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name associated with the flash entry" + ::= { lflashFileDirEntry 1 } + + flashDirSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Size in Octets of a flash entry" + ::= { lflashFileDirEntry 2 } + + flashDirStatus OBJECT-TYPE + SYNTAX INTEGER { + valid(1), + deleted(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the status of the entry" + ::= { lflashFileDirEntry 3 } + + -- End of table + + +END diff --git a/pandora_console/attachment/mibs/OLD-CISCO-INTERFACES-MIB b/pandora_console/attachment/mibs/OLD-CISCO-INTERFACES-MIB new file mode 100644 index 0000000000..2497959647 --- /dev/null +++ b/pandora_console/attachment/mibs/OLD-CISCO-INTERFACES-MIB @@ -0,0 +1,1405 @@ +-- ***************************************************************** +-- OLD-CISCO-INTERFACES-MIB.my: Cisco Interfaces MIB file +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994,1997 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- + + OLD-CISCO-INTERFACES-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString, ifIndex + FROM RFC1213-MIB + local + FROM CISCO-SMI; + + linterfaces OBJECT IDENTIFIER ::= { local 2 } + + + -- Local Interface Group + + -- This group is present in all products. + + + -- Local Interface Table + + -- This group provides additional objects to the table + -- defined by RFC1156. + + lifTable OBJECT-TYPE + SYNTAX SEQUENCE OF LifEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of interface entries." + ::= { linterfaces 1 } + + lifEntry OBJECT-TYPE + SYNTAX LifEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of additional objects in the + cisco interface." + INDEX { ifIndex } + ::= { lifTable 1 } + + LifEntry ::= + SEQUENCE { + locIfHardType + DisplayString, + locIfLineProt + INTEGER, + locIfLastIn + INTEGER, + locIfLastOut + INTEGER, + locIfLastOutHang + INTEGER, + locIfInBitsSec + INTEGER, + locIfInPktsSec + INTEGER, + locIfOutBitsSec + INTEGER, + locIfOutPktsSec + INTEGER, + locIfInRunts + INTEGER, + locIfInGiants + INTEGER, + locIfInCRC + INTEGER, + locIfInFrame + INTEGER, + locIfInOverrun + INTEGER, + locIfInIgnored + INTEGER, + locIfInAbort + INTEGER, + locIfResets + INTEGER, + locIfRestarts + INTEGER, + locIfKeep + INTEGER, + locIfReason + DisplayString, + locIfCarTrans + INTEGER, + locIfReliab + INTEGER, + locIfDelay + INTEGER, + locIfLoad + INTEGER, + locIfCollisions + INTEGER, + locIfInputQueueDrops + INTEGER, + locIfOutputQueueDrops + INTEGER, + locIfDescr + DisplayString, + locIfSlowInPkts + Counter, + locIfSlowOutPkts + Counter, + locIfSlowInOctets + Counter, + locIfSlowOutOctets + Counter, + locIfFastInPkts + Counter, + locIfFastOutPkts + Counter, + locIfFastInOctets + Counter, + locIfFastOutOctets + Counter, + locIfotherInPkts + Counter, + locIfotherOutPkts + Counter, + locIfotherInOctets + Counter, + locIfotherOutOctets + Counter, + locIfipInPkts + Counter, + locIfipOutPkts + Counter, + locIfipInOctets + Counter, + locIfipOutOctets + Counter, + locIfdecnetInPkts + Counter, + locIfdecnetOutPkts + Counter, + locIfdecnetInOctets + Counter, + locIfdecnetOutOctets + Counter, + locIfxnsInPkts + Counter, + locIfxnsOutPkts + Counter, + locIfxnsInOctets + Counter, + locIfxnsOutOctets + Counter, + locIfclnsInPkts + Counter, + locIfclnsOutPkts + Counter, + locIfclnsInOctets + Counter, + locIfclnsOutOctets + Counter, + locIfappletalkInPkts + Counter, + locIfappletalkOutPkts + Counter, + locIfappletalkInOctets + Counter, + locIfappletalkOutOctets + Counter, + locIfnovellInPkts + Counter, + locIfnovellOutPkts + Counter, + locIfnovellInOctets + Counter, + locIfnovellOutOctets + Counter, + locIfapolloInPkts + Counter, + locIfapolloOutPkts + Counter, + locIfapolloInOctets + Counter, + locIfapolloOutOctets + Counter, + locIfvinesInPkts + Counter, + locIfvinesOutPkts + Counter, + locIfvinesInOctets + Counter, + locIfvinesOutOctets + Counter, + locIfbridgedInPkts + Counter, + locIfbridgedOutPkts + Counter, + locIfbridgedInOctets + Counter, + locIfbridgedOutOctets + Counter, + locIfsrbInPkts + Counter, + locIfsrbOutPkts + Counter, + locIfsrbInOctets + Counter, + locIfsrbOutOctets + Counter, + locIfchaosInPkts + Counter, + locIfchaosOutPkts + Counter, + locIfchaosInOctets + Counter, + locIfchaosOutOctets + Counter, + locIfpupInPkts + Counter, + locIfpupOutPkts + Counter, + locIfpupInOctets + Counter, + locIfpupOutOctets + Counter, + locIfmopInPkts + Counter, + locIfmopOutPkts + Counter, + locIfmopInOctets + Counter, + locIfmopOutOctets + Counter, + locIflanmanInPkts + Counter, + locIflanmanOutPkts + Counter, + locIflanmanInOctets + Counter, + locIflanmanOutOctets + Counter, + locIfstunInPkts + Counter, + locIfstunOutPkts + Counter, + locIfstunInOctets + Counter, + locIfstunOutOctets + Counter, + locIfspanInPkts + Counter, + locIfspanOutPkts + Counter, + locIfspanInOctets + Counter, + locIfspanOutOctets + Counter, + locIfarpInPkts + Counter, + locIfarpOutPkts + Counter, + locIfarpInOctets + Counter, + locIfarpOutOctets + Counter, + locIfprobeInPkts + Counter, + locIfprobeOutPkts + Counter, + locIfprobeInOctets + Counter, + locIfprobeOutOctets + Counter, + locIfDribbleInputs + Counter + } + + + -- The following section describes the components of the + -- table. + + locIfHardType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Returns the type of interface." + ::= { lifEntry 1 } + + locIfLineProt OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Boolean whether interface line protocol is + up or not." + ::= { lifEntry 2 } + + locIfLastIn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Elapsed time in milliseconds since last line + protocol input packet was received." + ::= { lifEntry 3 } + + locIfLastOut OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Elapsed time in milliseconds since last line + protocol output packet was transmitted." + ::= { lifEntry 4 } + + locIfLastOutHang OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Elapsed time in milliseconds since last line + protocol output packet could not be + successfully transmitted." + ::= { lifEntry 5 } + + locIfInBitsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute exponentially-decayed moving + average of input bits per second." + ::= { lifEntry 6 } + + locIfInPktsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute exponentially-decayed moving + average of input packets per second." + ::= { lifEntry 7 } + + locIfOutBitsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute exponentially-decayed moving + average of output bits per second." + ::= { lifEntry 8 } + + locIfOutPktsSec OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Five minute exponentially-decayed moving + average of output packets per second." + ::= { lifEntry 9 } + + locIfInRunts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of packets input which were smaller + then the allowable physical media permitted." + ::= { lifEntry 10 } + + locIfInGiants OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which were larger + then the physical media permitted." + ::= { lifEntry 11 } + + locIfInCRC OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which had cyclic + redundancy checksum errors." + ::= { lifEntry 12 } + + locIfInFrame OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packet which were + misaligned." + ::= { lifEntry 13 } + + locIfInOverrun OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of input which arrived too quickly for + the to hardware receive." + ::= { lifEntry 14 } + + locIfInIgnored OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which were simply + ignored by this interface." + ::= { lifEntry 15 } + + locIfInAbort OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of input packets which were aborted." + ::= { lifEntry 16 } + + locIfResets OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the interface internally + reset." + ::= { lifEntry 17 } + + locIfRestarts OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times interface needed to be + completely restarted." + ::= { lifEntry 18 } + + locIfKeep OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Boolean whether keepalives are enabled on + this interface." + ::= { lifEntry 19 } + + locIfReason OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Reason for interface last status change." + ::= { lifEntry 20 } + + locIfCarTrans OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times interface saw the carrier + signal transition." + ::= { lifEntry 21 } + + locIfReliab OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The reliability of the interface. Used by + IGRP." + ::= { lifEntry 22 } + + locIfDelay OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of delay in microseconds of the + interface. Used by IGRP." + ::= { lifEntry 23 } + + locIfLoad OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The loading factor of the interface. Used by + IGRP." + ::= { lifEntry 24 } + + locIfCollisions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of output collisions detected on + this interface." + ::= { lifEntry 25 } + + locIfInputQueueDrops OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets dropped because the + input queue was full." + ::= { lifEntry 26 } + + locIfOutputQueueDrops OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets dropped because the + output queue was full." + ::= { lifEntry 27 } + + locIfDescr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User configurable interface description." + ::= { lifEntry 28 } + + locIfSlowInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Packet count for Inbound traffic routed with + slow switching" + ::= { lifEntry 30 } + + locIfSlowOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Packet count for Outbound traffic routed + with slow switching" + ::= { lifEntry 31 } + + locIfSlowInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Octet count for Inbound traffic routed with + slow switching" + ::= { lifEntry 32 } + + locIfSlowOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Octet count for Outbound traffic routed with + slow switching" + ::= { lifEntry 33 } + + locIfFastInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Packet count for Inbound traffic routed with + fast switching" + ::= { lifEntry 34 } + + locIfFastOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Packet count for Outbound traffic routed + with fast switching" + ::= { lifEntry 35 } + + locIfFastInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Octet count for Inbound traffic routed with + fast switching" + ::= { lifEntry 36 } + + locIfFastOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Octet count for Outbound traffic routed with + fast switching" + ::= { lifEntry 37 } + + locIfotherInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Other protocol input packet count" + ::= { lifEntry 38 } + + locIfotherOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Other protocol output packet count" + ::= { lifEntry 39 } + + locIfotherInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Other protocol input octet count" + ::= { lifEntry 40 } + + locIfotherOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Other protocol output octet count" + ::= { lifEntry 41 } + + locIfipInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "ip protocol input packet count" + ::= { lifEntry 42 } + + locIfipOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "ip protocol output packet count" + ::= { lifEntry 43 } + + locIfipInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "ip protocol input octet count" + ::= { lifEntry 44 } + + locIfipOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "ip protocol output octet count" + ::= { lifEntry 45 } + + locIfdecnetInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Decnet protocol input packet count" + ::= { lifEntry 46 } + + locIfdecnetOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Decnet protocol output packet count" + ::= { lifEntry 47 } + + locIfdecnetInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Decnet protocol input byte count" + ::= { lifEntry 48 } + + locIfdecnetOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Decnet protocol output byte count" + ::= { lifEntry 49 } + + locIfxnsInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "XNS protocol input packet count" + ::= { lifEntry 50 } + + locIfxnsOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "XNS protocol output packet count" + ::= { lifEntry 51 } + + locIfxnsInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "XNS protocol input byte count" + ::= { lifEntry 52 } + + locIfxnsOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "XNS protocol output byte count" + ::= { lifEntry 53 } + + locIfclnsInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CLNS protocol input packet count" + ::= { lifEntry 54 } + + locIfclnsOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CLNS protocol output packet count" + ::= { lifEntry 55 } + + locIfclnsInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CLNS protocol input byte count" + ::= { lifEntry 56 } + + locIfclnsOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CLNS protocol output byte count" + ::= { lifEntry 57 } + + locIfappletalkInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Appletalk protocol input packet count" + ::= { lifEntry 58 } + + locIfappletalkOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Appletalk protocol output packet count" + ::= { lifEntry 59 } + + locIfappletalkInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Appletalk protocol input octet count" + ::= { lifEntry 60 } + + locIfappletalkOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Appletalk protocol output octet count" + ::= { lifEntry 61 } + + locIfnovellInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Novell protocol input packet count" + ::= { lifEntry 62 } + + locIfnovellOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Novell protocol output packet count" + ::= { lifEntry 63 } + + locIfnovellInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Novell protocol input octet count" + ::= { lifEntry 64 } + + locIfnovellOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Novell protocol output octet count" + ::= { lifEntry 65 } + + locIfapolloInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Apollo protocol input packet count" + ::= { lifEntry 66 } + + locIfapolloOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Apollo protocol output packet count" + ::= { lifEntry 67 } + + locIfapolloInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Apollo protocol input octet count" + ::= { lifEntry 68 } + + locIfapolloOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Apollo protocol output octet count" + ::= { lifEntry 69 } + + locIfvinesInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Vines protocol input packet count" + ::= { lifEntry 70 } + + locIfvinesOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Vines protocol output packet count" + ::= { lifEntry 71 } + + locIfvinesInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Vines protocol input octet count" + ::= { lifEntry 72 } + + locIfvinesOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Vines protocol output octet count" + ::= { lifEntry 73 } + + locIfbridgedInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Bridged protocol input packet count" + ::= { lifEntry 74 } + + locIfbridgedOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Bridged protocol output packet count" + ::= { lifEntry 75 } + + locIfbridgedInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Bridged protocol input octet count" + ::= { lifEntry 76 } + + locIfbridgedOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Bridged protocol output octet count" + ::= { lifEntry 77 } + + locIfsrbInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "SRB protocol input packet count" + ::= { lifEntry 78 } + + locIfsrbOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "SRB protocol output packet count" + ::= { lifEntry 79 } + + locIfsrbInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "SRB protocol input octet count" + ::= { lifEntry 80 } + + locIfsrbOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "SRB protocol output octet count" + ::= { lifEntry 81 } + + locIfchaosInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Choas protocol input packet count" + ::= { lifEntry 82 } + + locIfchaosOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Choas protocol output packet count" + ::= { lifEntry 83 } + + locIfchaosInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Choas protocol input octet count" + ::= { lifEntry 84 } + + locIfchaosOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Choas protocol output octet count" + ::= { lifEntry 85 } + + locIfpupInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "PUP protocol input packet count" + ::= { lifEntry 86 } + + locIfpupOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "PUP protocol output packet count" + ::= { lifEntry 87 } + + locIfpupInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "PUP protocol input octet count" + ::= { lifEntry 88 } + + locIfpupOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "PUP protocol output octet count" + ::= { lifEntry 89 } + + locIfmopInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "MOP protocol input packet count" + ::= { lifEntry 90 } + + locIfmopOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "MOP protocol output packet count" + ::= { lifEntry 91 } + + locIfmopInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "MOP protocol input octet count" + ::= { lifEntry 92 } + + locIfmopOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "MOP protocol output octet count" + ::= { lifEntry 93 } + + locIflanmanInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "LanMan protocol input packet count" + ::= { lifEntry 94 } + + locIflanmanOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "LanMan protocol output packet count" + ::= { lifEntry 95 } + + locIflanmanInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "LanMan protocol input octet count" + ::= { lifEntry 96 } + + locIflanmanOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "LanMan protocol output octet count" + ::= { lifEntry 97 } + + locIfstunInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "STUN protocol input packet count" + ::= { lifEntry 98 } + + locIfstunOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "STUN protocol output packet count" + ::= { lifEntry 99 } + + locIfstunInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "STUN protocol input octet count" + ::= { lifEntry 100 } + + locIfstunOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "STUN protocol output octet count" + ::= { lifEntry 101 } + + locIfspanInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Spanning tree input protocol packet count" + ::= { lifEntry 102 } + + locIfspanOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Spanning tree output protocol packet count" + ::= { lifEntry 103 } + + locIfspanInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Spanning tree input octet packet count" + ::= { lifEntry 104 } + + locIfspanOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Spanning tree output octet packet count" + ::= { lifEntry 105 } + + locIfarpInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Arp protocol input packet count" + ::= { lifEntry 106 } + + locIfarpOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Arp protocol output packet count" + ::= { lifEntry 107 } + + locIfarpInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Arp protocol input octet count" + ::= { lifEntry 108 } + + locIfarpOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Arp protocol output octet count" + ::= { lifEntry 109 } + + locIfprobeInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Probe protocol input packet count" + ::= { lifEntry 110 } + + locIfprobeOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Probe protocol output packet count" + ::= { lifEntry 111 } + + locIfprobeInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Probe protocol input octet count" + ::= { lifEntry 112 } + + locIfprobeOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Probe protocol output octet count" + ::= { lifEntry 113 } + + locIfDribbleInputs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of good packets received with the + dribble condition present" + ::= { lifEntry 114 } + + -- End of table + + + + -- Local FSIP card Table, also used for 4T, HSSI, Mx serial + + -- This group provides additional objects to the table + -- defined by RFC1156. + + lFSIPTable OBJECT-TYPE + SYNTAX SEQUENCE OF LFSIPEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of card entries for 4T, HSSI, + Mx serial or FSIP." + ::= { linterfaces 2 } + + lFSIPEntry OBJECT-TYPE + SYNTAX LFSIPEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of objects specific to 4T, + HSSI, Mx serial or FSIP." + INDEX { locIfFSIPIndex } + ::= { lFSIPTable 1 } + + LFSIPEntry ::= + SEQUENCE { + locIfFSIPIndex + INTEGER, + locIfFSIPtype + INTEGER, + locIfFSIPrts + INTEGER, + locIfFSIPcts + INTEGER, + locIfFSIPdtr + INTEGER, + locIfFSIPdcd + INTEGER, + locIfFSIPdsr + INTEGER, + locIfFSIPrxClockrate + INTEGER, + locIfFSIPrxClockrateHi + INTEGER, + locIfFSIPportType + INTEGER + } + + + -- The following section describes the components of the + -- table. + + locIfFSIPIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Interface index of this card corresponding + to its ifIndex" + ::= { lFSIPEntry 1 } + + locIfFSIPtype OBJECT-TYPE + SYNTAX INTEGER { + notAvailable(1), + dte(2), + dce(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is this FSIP line DCE or DTE" + ::= { lFSIPEntry 2 } + + locIfFSIPrts OBJECT-TYPE + SYNTAX INTEGER { + notAvailable(1), + up(2), + down(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is the RTS signal up or down" + ::= { lFSIPEntry 3 } + + locIfFSIPcts OBJECT-TYPE + SYNTAX INTEGER { + notAvailable(1), + up(2), + down(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is the CTS signal up or down" + ::= { lFSIPEntry 4 } + + locIfFSIPdtr OBJECT-TYPE + SYNTAX INTEGER { + notAvailable(1), + up(2), + down(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is the DTR signal up or down" + ::= { lFSIPEntry 5 } + + locIfFSIPdcd OBJECT-TYPE + SYNTAX INTEGER { + notAvailable(1), + up(2), + down(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is the DCD signal up or down" + ::= { lFSIPEntry 6 } + + locIfFSIPdsr OBJECT-TYPE + SYNTAX INTEGER { + notAvailable(1), + up(2), + down(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is the DSR signal up or down" + ::= { lFSIPEntry 7 } + + locIfFSIPrxClockrate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Received clock rate" + ::= { lFSIPEntry 8 } + + locIfFSIPrxClockrateHi OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Use when received clock rate + is greater than 2^32 (gigabits)." + ::= { lFSIPEntry 9 } + + -- PortType is modeled after rs232PortType + -- in RS-232-MIB.my + + locIfFSIPportType OBJECT-TYPE + SYNTAX INTEGER { + noCable(1), + rs232(2), + rs422(3), + rs423(4), + v35(5), + x21(6), + rs449(7), + rs530(8), + hssi(9) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Cable Type of 4T, HSSI, Mx serial or FSIP" + ::= { lFSIPEntry 10 } + + -- End of table + + +END diff --git a/pandora_console/attachment/mibs/OLD-CISCO-SYS-MIB b/pandora_console/attachment/mibs/OLD-CISCO-SYS-MIB new file mode 100644 index 0000000000..fcf85c02ff --- /dev/null +++ b/pandora_console/attachment/mibs/OLD-CISCO-SYS-MIB @@ -0,0 +1,1043 @@ +-- ***************************************************************** +-- OLD-CISCO-SYS-MIB.my: Cisco System MIB file +-- +-- July 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-1996 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- +-- Prior to 10.2, Cisco's lsystem mib group contained a curious +-- assortment of mib objects. For 10.2, in order to allow similar +-- objects to be compiled separately with the mib compiler, the +-- lsystem group was separated into an envmon group (lenv), a cpu +-- group (lcpu), a memory group (lmem), and a system group (lsystem). +-- In order to preserve the OBJECT IDENTIFIERS from release 10.1 to +-- 10.2, however, all four groups are still based at { local 1 }. +-- This is fine from the mib compiler point-of-view, but causes +-- problems for some test tools which don't like the fact that +-- lsystem, lenv, lmem, and lcpu all have the same OBJECT IDENTIFIER. +-- In order to work around this problem, this file exists which +-- is a combination of the four 10.2 "system" mibs, with everything +-- falling under the lsystem group (as it did in 10.1). +-- +-- This mib should only be used as a replacement for the four separate +-- system mibs (OLD-CISCO-CPU.my, OLD-CISCO-ENVMON-MIB.my, +-- OLD-CISCO-MEMORY-MIB.my, OLD-CISCO-SYSTEM-MIB.my) in test tool +-- environments. The aforementioned mibs should always be used in +-- code generation + + OLD-CISCO-SYS-MIB DEFINITIONS ::= BEGIN + + IMPORTS + IpAddress + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString + FROM RFC1213-MIB + local + FROM CISCO-SMI; + + lsystem OBJECT IDENTIFIER ::= { local 1 } + + -- Local Variable Section + + -- This section describes the local variables within the cisco + -- product line. Groups may or may not be present depending + -- on the software options present in the managed device. + + + -- Local System Group + + -- This group is present in all products. + + romId OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains a printable octet + string which contains the System Bootstrap + description and version identification." + ::= { lsystem 1 } + + whyReload OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains a printable octet + string which contains the reason why the + system was last restarted." + ::= { lsystem 2 } + + hostName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable represents the name of the + host in printable ascii characters." + ::= { lsystem 3 } + + domainName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable is the domain portion of the + domain name of the host." + ::= { lsystem 4 } + + authAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains the last SNMP + authorization failure IP address." + ::= { lsystem 5 } + + bootHost OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the IP address of the host that + supplied the currently running software." + ::= { lsystem 6 } + + ping OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS obsolete + DESCRIPTION + "The ping mib object is obsolete as of IOS 10.2 + It has been superseded by the Cisco Ping MIB" + ::= { lsystem 7 } + + freeMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "The freeMem mib object is obsolete as of IOS 11.1 + It has been replaced with the cisco memory pool mib" + ::= { lsystem 8 } + + bufferElFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free buffer + elements." + ::= { lsystem 9 } + + bufferElMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of buffer + elements." + ::= { lsystem 10 } + + bufferElHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of buffer element hits." + ::= { lsystem 11 } + + bufferElMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of buffer element + misses." + ::= { lsystem 12 } + + bufferElCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of buffer element + creates." + ::= { lsystem 13 } + + bufferSmSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of small buffers." + ::= { lsystem 14 } + + bufferSmTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of small buffers." + ::= { lsystem 15 } + + bufferSmFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free small buffers." + ::= { lsystem 16 } + + bufferSmMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of small + buffers." + ::= { lsystem 17 } + + bufferSmHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer hits." + ::= { lsystem 18 } + + bufferSmMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer misses." + ::= { lsystem 19 } + + bufferSmTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer trims." + ::= { lsystem 20 } + + bufferSmCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of small buffer + creates." + ::= { lsystem 21 } + + bufferMdSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of medium buffers." + ::= { lsystem 22 } + + bufferMdTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of medium + buffers." + ::= { lsystem 23 } + + bufferMdFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free medium buffers." + ::= { lsystem 24 } + + bufferMdMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of medium + buffers." + ::= { lsystem 25 } + + bufferMdHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer hits." + ::= { lsystem 26 } + + bufferMdMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer + misses." + ::= { lsystem 27 } + + bufferMdTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer trims." + ::= { lsystem 28 } + + bufferMdCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of medium buffer + creates." + ::= { lsystem 29 } + + bufferBgSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of big buffers." + ::= { lsystem 30 } + + bufferBgTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of big buffers." + ::= { lsystem 31 } + + bufferBgFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free big buffers." + ::= { lsystem 32 } + + bufferBgMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of big buffers." + ::= { lsystem 33 } + + bufferBgHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer hits." + ::= { lsystem 34 } + + bufferBgMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer misses." + ::= { lsystem 35 } + + bufferBgTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer trims." + ::= { lsystem 36 } + + bufferBgCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of big buffer creates." + ::= { lsystem 37 } + + bufferLgSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of large buffers." + ::= { lsystem 38 } + + bufferLgTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of large buffers." + ::= { lsystem 39 } + + bufferLgFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free large buffers." + ::= { lsystem 40 } + + bufferLgMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of large + buffers." + ::= { lsystem 41 } + + bufferLgHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer hits." + ::= { lsystem 42 } + + bufferLgMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer misses." + ::= { lsystem 43 } + + bufferLgTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer trims." + ::= { lsystem 44 } + + bufferLgCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of large buffer + creates." + ::= { lsystem 45 } + + bufferFail OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of the number of buffer allocation + failures." + ::= { lsystem 46 } + + bufferNoMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Count of the number of buffer create + failures due to no free memory." + ::= { lsystem 47 } + + netConfigAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the address of the host that supplied + the network-confg file." + ::= { lsystem 48 } + + netConfigName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the name of the network configuration + file." + ::= { lsystem 49 } + + netConfigSet OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Cause the loading of a new network-confg + file using TFTP." + ::= { lsystem 50 } + + hostConfigAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS obsolete + DESCRIPTION + "Contains the address of the host that + provided the host-config file." + ::= { lsystem 51 } + + hostConfigName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "Contains the name of the last configured + host-confg file." + ::= { lsystem 52 } + + hostConfigSet OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS obsolete + DESCRIPTION + "Cause the loading of a new host-confg file + using TFTP." + ::= { lsystem 53 } + + writeMem OBJECT-TYPE + SYNTAX INTEGER + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Write configuration into non-volatile memory + / erase config memory if 0." + ::= { lsystem 54 } + + writeNet OBJECT-TYPE + SYNTAX DisplayString + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Write configuration to host using TFTP." + ::= { lsystem 55 } + + busyPer OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "CPU busy percentage in the last 5 second + period. Not the last 5 realtime seconds but + the last 5 second period in the scheduler." + ::= { lsystem 56 } + + avgBusy1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "1 minute exponentially-decayed moving + average of the CPU busy percentage." + ::= { lsystem 57 } + + avgBusy5 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "5 minute exponentially-decayed moving + average of the CPU busy percentage." + ::= { lsystem 58 } + + idleCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "cisco internal variable. not to be used" + ::= { lsystem 59 } + + idleWired OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "cisco internal variable. not to be used" + ::= { lsystem 60 } + + ciscoContactInfo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "cisco's name and address" + ::= { lsystem 61 } + + bufferHgSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the size of huge buffers." + ::= { lsystem 62 } + + bufferHgTotal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the total number of huge buffers." + ::= { lsystem 63 } + + bufferHgFree OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of free huge buffers." + ::= { lsystem 64 } + + bufferHgMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the maximum number of huge + buffers." + ::= { lsystem 65 } + + bufferHgHit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer hits." + ::= { lsystem 66 } + + bufferHgMiss OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer misses." + ::= { lsystem 67 } + + bufferHgTrim OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer trims." + ::= { lsystem 68 } + + bufferHgCreate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the number of huge buffer creates." + ::= { lsystem 69 } + + netConfigProto OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the protocol that supplied the + network-confg file." + ::= { lsystem 70 } + + hostConfigProto OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the protocol that supplied the host- + confg file." + ::= { lsystem 71 } + + sysConfigAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the address of the host that supplied + the system boot image." + ::= { lsystem 72 } + + sysConfigName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the name of the system boot image." + ::= { lsystem 73 } + + sysConfigProto OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Holds the protocol that supplied the system + boot image." + ::= { lsystem 74 } + + sysClearARP OBJECT-TYPE + SYNTAX INTEGER + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Perform a clearing of the entire ARP cache + and invalidation of route caches." + ::= { lsystem 75 } + + sysClearInt OBJECT-TYPE + SYNTAX INTEGER + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Clear interface given IfIndex as value." + ::= { lsystem 76 } + + envPresent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is there an environmental monitor card in + this box?, 0 - No, 1-AGS card present, wrong + firmware, 2-AGS CARD present, firmware ok, + 3-7000 support" + ::= { lsystem 77 } + + envTestPt1Descr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the test point 1. Typically + ambient air or the temperature of air + entering the router" + ::= { lsystem 78 } + + envTestPt1Measure OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Current value of test point 1. Typically a + temperature in centigrade." + ::= { lsystem 79 } + + envTestPt2Descr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the test point 2. Typically + airflow or the temperature of air leaving the + router" + ::= { lsystem 80 } + + envTestPt2Measure OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Current value of test point 2. Typically a + temperature in centigrade." + ::= { lsystem 81 } + + envTestPt3Descr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the test point 3. Typically + +5 volt" + ::= { lsystem 82 } + + envTestPt3Measure OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Current value of test point 3. Typically the + value in millivolts of the +5v supply" + ::= { lsystem 83 } + + envTestPt4Descr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the test point 4. Typically + +12 volt" + ::= { lsystem 84 } + + envTestPt4Measure OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Current value of test point 4. Typically the + value in millivolts of the +12v supply" + ::= { lsystem 85 } + + envTestPt5Descr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the test point 5. Typically + -12 volt" + ::= { lsystem 86 } + + envTestPt5Measure OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Current value of test point 5. Typically the + value in millivolts of the -12v supply" + ::= { lsystem 87 } + + envTestPt6Descr OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the test point 6. Typically + -5 volt" + ::= { lsystem 88 } + + envTestPt6Measure OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Current value of test point 6. Typically the + value in millivolts of the -5v supply" + ::= { lsystem 89 } + + envTestPt1MarginVal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value at which the router will shutdown. + Typically the ambient air temperature that + will shut the router down. (e.g. 43)" + ::= { lsystem 90 } + + envTestPt2MarginVal OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value at which the router will shutdown. + Typically the airflow air temperature that + will shut the router down. (e.g. 58)" + ::= { lsystem 91 } + + envTestPt3MarginPercent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "+/- Percentage that will shut the router + down, (e.g. 10%) typically +5 volt" + ::= { lsystem 92 } + + envTestPt4MarginPercent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "+/- Percentage that will shut the router + down, (e.g. 15%) typically +12 volt" + ::= { lsystem 93 } + + envTestPt5MarginPercent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "+/- Percentage that will shut the router + down, (e.g. 15%) typically -12 volt" + ::= { lsystem 94 } + + envTestPt6MarginPercent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "+/- Percentage that will shut the router + down, (e.g. 10%) typically -5 volt" + ::= { lsystem 95 } + + envTestPt1last OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value of TestPt1 when last shutdown + occurred." + ::= { lsystem 96 } + + envTestPt2last OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value of TestPt2 when last shutdown + occurred." + ::= { lsystem 97 } + + envTestPt3last OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value of TestPt3 when last shutdown + occurred." + ::= { lsystem 98 } + + envTestPt4last OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value of TestPt4 when last shutdown + occurred." + ::= { lsystem 99 } + + envTestPt5last OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value of TestPt5 when last shutdown + occurred." + ::= { lsystem 100 } + + envTestPt6last OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Value of TestPt6 when last shutdown + occurred." + ::= { lsystem 101 } + + envTestPt1warn OBJECT-TYPE + SYNTAX INTEGER { + warning(1), + noWarning(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is this test point at a warning level?" + ::= { lsystem 102 } + + envTestPt2warn OBJECT-TYPE + SYNTAX INTEGER { + warning(1), + noWarning(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is this test point at a warning level?" + ::= { lsystem 103 } + + envTestPt3warn OBJECT-TYPE + SYNTAX INTEGER { + warning(1), + noWarning(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is this test point at a warning level?" + ::= { lsystem 104 } + + envTestPt4warn OBJECT-TYPE + SYNTAX INTEGER { + warning(1), + noWarning(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is this test point at a warning level?" + ::= { lsystem 105 } + + envTestPt5warn OBJECT-TYPE + SYNTAX INTEGER { + warning(1), + noWarning(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is this test point at a warning level?" + ::= { lsystem 106 } + + envTestPt6warn OBJECT-TYPE + SYNTAX INTEGER { + warning(1), + noWarning(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Is this test point at a warning level?" + ::= { lsystem 107 } + + envFirmVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of Environmental Card firmware" + ::= { lsystem 108 } + + envTechnicianID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Technician ID" + ::= { lsystem 109 } + + envType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of environmental card" + ::= { lsystem 110 } + + envBurnDate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The calibration / burn in date" + ::= { lsystem 111 } + + envSerialNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Serial Number of environmental monitor card" + ::= { lsystem 112 } + + + END diff --git a/pandora_console/attachment/mibs/OPMANAGER-MIB b/pandora_console/attachment/mibs/OPMANAGER-MIB new file mode 100644 index 0000000000..a8cacdf895 --- /dev/null +++ b/pandora_console/attachment/mibs/OPMANAGER-MIB @@ -0,0 +1,367 @@ + +-- File Name : OPMANAGER-MIB +-- This is used for Trap Notification in OpManager + + +ADVENTNET-OPMANAGER-MIB DEFINITIONS ::= BEGIN + IMPORTS + DisplayString + FROM SNMPv2-TC + DisplayString + FROM RFC1213-MIB + org, MODULE-IDENTITY, OBJECT-TYPE, IpAddress, NOTIFICATION-TYPE + FROM SNMPv2-SMI; + + org OBJECT IDENTIFIER + ::= { iso 3 } + + dod OBJECT IDENTIFIER + ::= { org 6 } + + internet OBJECT IDENTIFIER + ::= { dod 1 } + + private OBJECT IDENTIFIER + ::= { internet 4 } + + enterprises OBJECT IDENTIFIER + ::= { private 1 } + + adventnet OBJECT IDENTIFIER + ::= { enterprises 2162 } + + adventnetMibs OBJECT IDENTIFIER + ::= { adventnet 100 } + + adventnetOpManagerMIB OBJECT IDENTIFIER + ::= { adventnetMibs 5 } + + adventnetOpManagerMIBObjects OBJECT IDENTIFIER + ::= { adventnetOpManagerMIB 1 } + + opManagerNotifications OBJECT IDENTIFIER + ::= { adventnetOpManagerMIBObjects 1 } + + alertInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 1 } + + deviceInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 2 } + + intfInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 3 } + + customInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 4 } + + customIntfInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 5 } + + monitorInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 6 } + + nfaAlertInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 7 } + + fwaAlertInfo OBJECT IDENTIFIER + ::= { opManagerNotifications 8 } + + message OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "message of the alarm generated in OpManager" + ::= { alertInfo 1 } + + deviceName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "name of device in which alarm generated" + ::= { alertInfo 2 } + + category OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "category name of the device" + ::= { alertInfo 3 } + + stringseverity OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "severity of the alarm as a string value" + ::= { alertInfo 4 } + + strModTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "time when the alarm was generated" + ::= { alertInfo 5 } + + alarmid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "alarm id in Alert Table" + ::= { alertInfo 6 } + + eventType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "eventType of generated alarm" + ::= { alertInfo 7 } + + entity OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "entity of generated alarm" + ::= { alertInfo 8 } + + lastPolledValue OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "lastPolledValue of generated alarm for threshold violated monitors" + ::= { alertInfo 9 } + + type OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "device type" + ::= { deviceInfo 1 } + + ipAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "ipAddress of the device" + ::= { deviceInfo 2 } + + isSNMP OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "device supports snmp protocol or not" + ::= { deviceInfo 3 } + + dependent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "dependency on other devices" + ::= { deviceInfo 4 } + + hardDiskSiz OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "hard Disk Size of the device" + ::= { deviceInfo 5 } + + ramSize OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "RAM memory of the device" + ::= { deviceInfo 6 } + + probeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Probe name to which the device belongs" + ::= { deviceInfo 7 } + + ifDescr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "descriptor of the interface as reported by the SNMP agent" + ::= { intfInfo 1 } + + displayName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "displayName of the interface" + ::= { intfInfo 2 } + + ifAlias OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "alias name of the interface" + ::= { intfInfo 3 } + + ifName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "name of the interface" + ::= { intfInfo 4 } + + ifIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "ipAddress of the interface" + ::= { intfInfo 5 } + + physMedia OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "physical media of the interface" + ::= { intfInfo 6 } + + ifIndex OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "interface index reported by the SNMP agent" + ::= { intfInfo 7 } + + ifCircuitID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "interface circiutID" + ::= { intfInfo 8 } + + ifSpeedIn OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "In speed of the interface as reported by the SNMP agent" + ::= { intfInfo 9 } + + ifSpeedOut OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Out speed of the interface as reported by the SNMP agent" + ::= { intfInfo 10 } + + customField OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "custom fields for devices in OpManager" + ::= { customInfo 1 } + + customIntfField OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "custom fields for interfaces in OpManager" + ::= { customIntfInfo 1 } + + monitorName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Name of the Monitor in which the alarm generated" + ::= { monitorInfo 1 } + + instance OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Instance of the Monitor in which the alarm generated" + ::= { monitorInfo 2 } + + protocol OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Protocol of the Monitor in which the alarm generated" + ::= { monitorInfo 3 } + + sourceType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Source Type in NetFlow" + ::= { nfaAlertInfo 1 } + + sourceName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Source Name in NetFlow" + ::= { nfaAlertInfo 2 } + + alertName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Alert Profile Name in NetFlow" + ::= { nfaAlertInfo 3 } + + alertType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Alert Profile Type in NetFlow" + ::= { nfaAlertInfo 4 } + + criteria OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Alert criteria in NetFlow" + ::= { nfaAlertInfo 5 } + + profileName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Name of the Profile created in Firewall Module" + ::= { fwaAlertInfo 1 } + + criteria OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Profile criteria specified in Firewall Module" + ::= { fwaAlertInfo 2 } + + alertMsg OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Details of Alert in Firewall Module" + ::= { fwaAlertInfo 3 } + + + + +-- Trap Definitions + +opmAlertNotifications OBJECT IDENTIFIER ::= { adventnetOpManagerMIBObjects 2 } + +trapNotifications NOTIFICATION-GROUP + NOTIFICATIONS { opManagerTrapNotification } + STATUS current + DESCRIPTION + "The basic notifications implemented by an SNMP entity + supporting command responder applications." + ::= { adventnetOpManagerMIBObjects 2 } + + +-- Notification types: + +opManagerTrapNotification NOTIFICATION-TYPE + OBJECTS { message, deviceName, category, stringseverity, strModTime,alarmid, eventType, entity, lastPolledValue, type, ipAddress, isSNMP, dependent, hardDiskSiz, ramSize, ifDescr, displayName, ifAlias, ifName, ifIpAddress, physMedia, ifIndex, ifCircuitID, ifSpeedIn, ifSpeedOut, customField, customIntfField} + STATUS current + DESCRIPTION + "A notification about a change in the alert of OpManager." + ::= { opmAlertNotifications 1 } + +END diff --git a/pandora_console/attachment/mibs/ORADB-MIB b/pandora_console/attachment/mibs/ORADB-MIB new file mode 100644 index 0000000000..aba7259f42 --- /dev/null +++ b/pandora_console/attachment/mibs/ORADB-MIB @@ -0,0 +1,1179 @@ + +ORADB-MIB DEFINITIONS ::= BEGIN + + +IMPORTS + DisplayString + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212 + Counter, experimental, enterprises + FROM RFC1155-SMI + rdbmsDbIndex + FROM RDBMS-MIB + applIndex + FROM APPLICATION-MIB; + +DateAndTime ::= OCTET STRING (SIZE (8 .. 11)) +TruthValue ::= INTEGER { true(1), false(2) } + +oracle OBJECT IDENTIFIER ::= { enterprises 111 } + +oraDbMIB OBJECT IDENTIFIER ::= { oracle 4 } + +oraDbObjects OBJECT IDENTIFIER ::= { oraDbMIB 1 } + +oraDbSysTable OBJECT-TYPE + SYNTAX SEQUENCE OF OraDbSysEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Oracle-specific performance information global to a database." + ::= { oraDbObjects 1 } + +oraDbSysEntry OBJECT-TYPE + SYNTAX OraDbSysEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Selected info from the v$sysstat table on instance performance. + Variables are included here + because they have been found particularly useful in + tuning an Oracle instance. In many cases, the variable should + only be considered in conjunction with other variables, often + as a ratio. Frequently, hints on these are given in the + descriptions, but Oracle tuning documentation should always + be consulted, particularly the Oracle University course on + tuning V7 applications." + INDEX { applIndex } + ::= { oraDbSysTable 1 } + +OraDbSysEntry ::= + SEQUENCE { + oraDbSysConsistentChanges + Counter, + + oraDbSysConsistentGets + Counter, + + oraDbSysDbBlockChanges + Counter, + + oraDbSysDbBlockGets + Counter, + + oraDbSysFreeBufferInspected + Counter, + + oraDbSysFreeBufferRequested + Counter, + + oraDbSysParseCount + Counter, + + oraDbSysPhysReads + Counter, + + oraDbSysPhysWrites + Counter, + + oraDbSysRedoEntries + Counter, + + oraDbSysRedoLogSpaceRequests + Counter, + + oraDbSysRedoSyncWrites + Counter, + + oraDbSysSortsDisk + Counter, + + oraDbSysSortsMemory + Counter, + + oraDbSysSortsRows + Counter, + + oraDbSysTableFetchRowid + Counter, + + oraDbSysTableFetchContinuedRow + Counter, + + oraDbSysTableScanBlocks + Counter, + + oraDbSysTableScanRows + Counter, + + oraDbSysTableScansLong + Counter, + + oraDbSysTableScansShort + Counter, + + oraDbSysUserCalls + Counter, + + oraDbSysUserCommits + Counter, + + oraDbSysUserRollbacks + Counter, + + oraDbSysWriteRequests + Counter + } + +oraDbSysConsistentChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'consistent changes' parameter from v$sysstat" + ::= { oraDbSysEntry 1 } + +oraDbSysConsistentGets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'consistent gets' parameter from v$sysstat" + ::= { oraDbSysEntry 2 } + +oraDbSysDbBlockChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'Db block changes' parameter from v$sysstat" + ::= { oraDbSysEntry 3 } + +oraDbSysDbBlockGets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'db block gets' parameter from v$sysstat" + ::= { oraDbSysEntry 4 } + +oraDbSysFreeBufferInspected OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'free buffer inspected' parameter from v$sysstat" + ::= { oraDbSysEntry 5 } + +oraDbSysFreeBufferRequested OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'free buffer requested' parameter from v$sysstat" + ::= { oraDbSysEntry 6 } + +oraDbSysParseCount OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'parse count' parameter from v$sysstat" + ::= { oraDbSysEntry 7 } + +oraDbSysPhysReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'physical reads' parameter from v$sysstat" + ::= { oraDbSysEntry 8 } + +oraDbSysPhysWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'physical writes' parameter from v$sysstat" + ::= { oraDbSysEntry 9 } + +oraDbSysRedoEntries OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'redo entries' parameter from v$sysstat" + ::= { oraDbSysEntry 10 } + +oraDbSysRedoLogSpaceRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'redo log space requests' parameter from v$sysstat" + ::= { oraDbSysEntry 11 } + +oraDbSysRedoSyncWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'redo synch writes' parameter from v$sysstat" + ::= { oraDbSysEntry 12 } + +oraDbSysSortsDisk OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'sorts (disk)' parameter from v$sysstat" + ::= { oraDbSysEntry 13 } + +oraDbSysSortsMemory OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'sorts (memory)' parameter from v$sysstat" + ::= { oraDbSysEntry 14 } + +oraDbSysSortsRows OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'sorts (rows)' parameter from v$sysstat" + ::= { oraDbSysEntry 15 } + +oraDbSysTableFetchRowid OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'table fetch by rowid' parameter from v$sysstat" + ::= { oraDbSysEntry 16 } + +oraDbSysTableFetchContinuedRow OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'table fetch continued row' parameter from v$sysstat" + ::= { oraDbSysEntry 17 } + +oraDbSysTableScanBlocks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'table scan blocks gotten' parameter from v$sysstat" + ::= { oraDbSysEntry 18 } + +oraDbSysTableScanRows OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'table scan rows gotten' parameter from v$sysstat" + ::= { oraDbSysEntry 19 } + +oraDbSysTableScansLong OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'table scans (long tables)' parameter from v$sysstat" + ::= { oraDbSysEntry 20 } + +oraDbSysTableScansShort OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'table scans (short tables)' parameter from v$sysstat" + ::= { oraDbSysEntry 21 } + +oraDbSysUserCalls OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'user calls' parameter from v$sysstat" + ::= { oraDbSysEntry 22 } + +oraDbSysUserCommits OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'user commits' parameter from v$sysstat" + ::= { oraDbSysEntry 23 } + +oraDbSysUserRollbacks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'user rollbacks' parameter from v$sysstat" + ::= { oraDbSysEntry 24 } + +oraDbSysWriteRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "the 'write requests' parameter from v$sysstat" + ::= { oraDbSysEntry 25 } + +oraDbTablespaceTable OBJECT-TYPE + SYNTAX SEQUENCE OF OraDbTablespaceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information on tablespaces within an Oracle database." + ::= { oraDbObjects 2 } + +oraDbTablespaceEntry OBJECT-TYPE + SYNTAX OraDbTablespaceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information for each tablespace within an Oracle database." + INDEX { rdbmsDbIndex, oraDbTablespaceIndex } + ::= { oraDbTablespaceTable 1 } + +OraDbTablespaceEntry ::= + SEQUENCE { + oraDbTablespaceIndex + INTEGER, + + oraDbTablespaceName + DisplayString, + + oraDbTablespaceSizeAllocated + INTEGER (-2147483648..2147483647), + + oraDbTablespaceSizeUsed + INTEGER (-2147483648..2147483647), + + oraDbTablespaceState + INTEGER, + + oraDbTablespaceLargestAvailableChunk + INTEGER (-2147483648..2147483647) + } + +oraDbTablespaceIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A numeric index, unique among tablespaces within a single + Oracle database." + ::= { oraDbTablespaceEntry 1 } + +oraDbTablespaceName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of this tablespace." + ::= { oraDbTablespaceEntry 2 } + +oraDbTablespaceSizeAllocated OBJECT-TYPE + SYNTAX INTEGER (-2147483648..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of disk space, in kilobytes, allocated for this + tablespace. This is the sum of the sizes of the data files + associated with the tablespace." + ::= { oraDbTablespaceEntry 3 } + +oraDbTablespaceSizeUsed OBJECT-TYPE + SYNTAX INTEGER (-2147483648..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount of disk space, in kilobytes, which is actually in + use for storing data." + ::= { oraDbTablespaceEntry 4 } + +oraDbTablespaceState OBJECT-TYPE + SYNTAX INTEGER { + online(1), + offline(2), + invalid(3) +} + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current accessibility of this tablespace. If a + tablespace is offline(2), then SQL statements cannot + reference objects contained in the tablespace. An invalid(3) + tablespace is one that has been dropped." + ::= { oraDbTablespaceEntry 5 } + +oraDbTablespaceLargestAvailableChunk OBJECT-TYPE + SYNTAX INTEGER (-2147483648..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size, in kilobytes, of the largest contiguous set of free + data blocks in the tablespace." + ::= { oraDbTablespaceEntry 6 } + +oraDbDataFileTable OBJECT-TYPE + SYNTAX SEQUENCE OF OraDbDataFileEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information on data files within an Oracle database." + ::= { oraDbObjects 3 } + +oraDbDataFileEntry OBJECT-TYPE + SYNTAX OraDbDataFileEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information for each data file within an Oracle database." + INDEX { rdbmsDbIndex, oraDbDataFileIndex } + ::= { oraDbDataFileTable 1 } + +OraDbDataFileEntry ::= + SEQUENCE { + oraDbDataFileIndex + INTEGER, + + oraDbDataFileName + DisplayString, + + oraDbDataFileSizeAllocated + INTEGER (-2147483648..2147483647), + + oraDbDataFileDiskReads + Counter, + + oraDbDataFileDiskWrites + Counter, + + oraDbDataFileDiskReadBlocks + Counter, + + oraDbDataFileDiskWrittenBlocks + Counter, + + oraDbDataFileDiskReadTimeTicks + Counter, + + oraDbDataFileDiskWriteTimeTicks + Counter + } + +oraDbDataFileIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A numeric index, unique among data files associated with a + single tablespace." + ::= { oraDbDataFileEntry 1 } + +oraDbDataFileName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The fully-qualified name of this datafile." + ::= { oraDbDataFileEntry 2 } + +oraDbDataFileSizeAllocated OBJECT-TYPE + SYNTAX INTEGER (-2147483648..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The allocated size, in kilobytes, of this data file." + ::= { oraDbDataFileEntry 3 } + +oraDbDataFileDiskReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of reads issued against this data file since + startup." + ::= { oraDbDataFileEntry 4 } + +oraDbDataFileDiskWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of writes issued against this data file since + startup." + ::= { oraDbDataFileEntry 5 } + +oraDbDataFileDiskReadBlocks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of physical blocks read from this data file + since startup." + ::= { oraDbDataFileEntry 6 } + +oraDbDataFileDiskWrittenBlocks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of physical blocks written to this data file + since startup." + ::= { oraDbDataFileEntry 7 } + +oraDbDataFileDiskReadTimeTicks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time spent reading from this data file since startup IF + the database parameter TIMED_STATISTICS is TRUE. If + TIMED_STATISTICS is FALSE, then the value will be zero." + ::= { oraDbDataFileEntry 8 } + +oraDbDataFileDiskWriteTimeTicks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time spent writing to this data file since startup IF + the database parameter TIMED_STATISTICS is TRUE. If + TIMED_STATISTICS is FALSE, then the value will be zero." + ::= { oraDbDataFileEntry 9 } + +oraDbLibraryCacheTable OBJECT-TYPE + SYNTAX SEQUENCE OF OraDbLibraryCacheEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information on libraryCache performance." + ::= { oraDbObjects 4 } + +oraDbLibraryCacheEntry OBJECT-TYPE + SYNTAX OraDbLibraryCacheEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "LibraryCache information for each Oracle database." + INDEX { applIndex, oraDbLibraryCacheIndex } + ::= { oraDbLibraryCacheTable 1 } + +OraDbLibraryCacheEntry ::= + SEQUENCE { + oraDbLibraryCacheIndex + INTEGER, + + oraDbLibraryCacheNameSpace + DisplayString, + + oraDbLibraryCacheGets + Counter, + + oraDbLibraryCacheGetHits + Counter, + + oraDbLibraryCachePins + Counter, + + oraDbLibraryCachePinHits + Counter, + + oraDbLibraryCacheReloads + Counter, + + oraDbLibraryCacheInvalidations + Counter + } + +oraDbLibraryCacheIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique integer for each row of the table." + ::= { oraDbLibraryCacheEntry 1 } + +oraDbLibraryCacheNameSpace OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The namespace of the v$librarycache table that this + row relates to." + ::= { oraDbLibraryCacheEntry 2 } + +oraDbLibraryCacheGets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the system requests handles to library + objects in this namespace." + ::= { oraDbLibraryCacheEntry 3 } + +oraDbLibraryCacheGetHits OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the handles are already allocated in + the cache." + ::= { oraDbLibraryCacheEntry 4 } + +oraDbLibraryCachePins OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the system issues pin requests + for objects in the cache in order to access them." + ::= { oraDbLibraryCacheEntry 5 } + +oraDbLibraryCachePinHits OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the objects the system is pinning + are already allocated and initialized in the cache." + ::= { oraDbLibraryCacheEntry 6 } + +oraDbLibraryCacheReloads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the library objects have to be reinitialized + and reloaded with data because they have been aged out or + invalidated" + ::= { oraDbLibraryCacheEntry 7 } + +oraDbLibraryCacheInvalidations OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times that non-persistent library objects + (like shared SQL areas) have been invalidated." + ::= { oraDbLibraryCacheEntry 8 } + +oraDbLibraryCacheSumTable OBJECT-TYPE + SYNTAX SEQUENCE OF OraDbLibraryCacheSumEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information on library cache performance, summed over all + library caches in a single database instance." + ::= { oraDbObjects 5 } + +oraDbLibraryCacheSumEntry OBJECT-TYPE + SYNTAX OraDbLibraryCacheSumEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "LibraryCache information, summed over all library caches, + for each Oracle database." + INDEX { applIndex } + ::= { oraDbLibraryCacheSumTable 1 } + +OraDbLibraryCacheSumEntry ::= + SEQUENCE { + oraDbLibraryCacheSumGets + Counter, + + oraDbLibraryCacheSumGetHits + Counter, + + oraDbLibraryCacheSumPins + Counter, + + oraDbLibraryCacheSumPinHits + Counter, + + oraDbLibraryCacheSumReloads + Counter, + + oraDbLibraryCacheSumInvalidations + Counter + } + +oraDbLibraryCacheSumGets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the system requests handles to library + objects, summed over all library caches in the instance." + ::= { oraDbLibraryCacheSumEntry 1 } + +oraDbLibraryCacheSumGetHits OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the handles are already allocated in + the cache, summed over all library caches in the instance." + ::= { oraDbLibraryCacheSumEntry 2 } + +oraDbLibraryCacheSumPins OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the system issues pin requests + for objects in a cache in order to access them, + summed over all library caches in the instance." + ::= { oraDbLibraryCacheSumEntry 3 } + +oraDbLibraryCacheSumPinHits OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the objects the system is pinning + are already allocated and initialized in a cache, + summed over all library caches in the instance." + ::= { oraDbLibraryCacheSumEntry 4 } + +oraDbLibraryCacheSumReloads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the library objects have to be reinitialized + and reloaded with data because they have been aged out or + invalidated, summed over all library caches in the instance." + ::= { oraDbLibraryCacheSumEntry 5 } + +oraDbLibraryCacheSumInvalidations OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times that non-persistent library objects + (like shared SQL areas) have been invalidated, summed over + all library caches in the instance." + ::= { oraDbLibraryCacheSumEntry 6 } + +oraDbSGATable OBJECT-TYPE + SYNTAX SEQUENCE OF OraDbSGAEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Summary information on the System Global Area" + ::= { oraDbObjects 6 } + +oraDbSGAEntry OBJECT-TYPE + SYNTAX OraDbSGAEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A single entry from the v$sga table" + INDEX { applIndex } + ::= { oraDbSGATable 1 } + +OraDbSGAEntry ::= + SEQUENCE { + oraDbSGAFixedSize + INTEGER, + + oraDbSGAVariableSize + INTEGER, + + oraDbSGADatabaseBuffers + INTEGER, + + oraDbSGARedoBuffers + INTEGER + } + +oraDbSGAFixedSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "" + ::= { oraDbSGAEntry 1 } + +oraDbSGAVariableSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "" + ::= { oraDbSGAEntry 2 } + +oraDbSGADatabaseBuffers OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "" + ::= { oraDbSGAEntry 3 } + +oraDbSGARedoBuffers OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "" + ::= { oraDbSGAEntry 4 } + +oraDbConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF OraDbConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Oracle-specific configuration information global to a database." + ::= { oraDbObjects 7 } + +oraDbConfigEntry OBJECT-TYPE + SYNTAX OraDbConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Oracle-specific configuration information. This table only + lists a few init.ora parameters that are particularly + relevant to the task of monitoring database performance. By + giving them easy-to-use, fixed object-ids, we make it easier + to graph them along with the dynamic performance values that + they affect. A complete list of parameters can be found in + the Internet standard MIB 'rdbmsSrvParam' objects." + INDEX { applIndex } + ::= { oraDbConfigTable 1 } + +OraDbConfigEntry ::= + SEQUENCE { + oraDbConfigDbBlockBuffers + INTEGER, + + oraDbConfigDbBlockCkptBatch + INTEGER, + + oraDbConfigDbBlockSize + INTEGER, + + oraDbConfigDbFileSimWrites + INTEGER, + + oraDbConfigDbMultiBlockReadCount + INTEGER, + + oraDbConfigDistLockTimeout + INTEGER, + + oraDbConfigDistRecoveryConnectHold + INTEGER, + + oraDbConfigDistTransactions + INTEGER, + + oraDbConfigLogArchiveBufferSize + INTEGER, + + oraDbConfigLogArchiveBuffers + INTEGER, + + oraDbConfigLogBuffer + INTEGER, + + oraDbConfigLogCheckpointInterval + INTEGER, + + oraDbConfigLogCheckpointTimeout + INTEGER, + + oraDbConfigLogFiles + INTEGER, + + oraDbConfigMaxRollbackSegments + INTEGER, + + oraDbConfigMTSMaxDispatchers + INTEGER, + + oraDbConfigMTSMaxServers + INTEGER, + + oraDbConfigMTSServers + INTEGER, + + oraDbConfigOpenCursors + INTEGER, + + oraDbConfigOpenLinks + INTEGER, + + oraDbConfigOptimizerMode + DisplayString, + + oraDbConfigProcesses + INTEGER, + + oraDbConfigSerializable + TruthValue, + + oraDbConfigSessions + INTEGER, + + oraDbConfigSharedPool + INTEGER, + + oraDbConfigSortAreaRetainedSize + INTEGER, + + oraDbConfigSortAreaSize + INTEGER, + + oraDbConfigTransactions + INTEGER, + + oraDbConfigTransactionsPerRollback + INTEGER + } + +oraDbConfigDbBlockBuffers OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DB_BLOCK_BUFFERS parameter from the init.ora file " + ::= { oraDbConfigEntry 1 } + +oraDbConfigDbBlockCkptBatch OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DB_BLOCK_CHECKPOINT_BATCH parameter from the init.ora file " + ::= { oraDbConfigEntry 2 } + +oraDbConfigDbBlockSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DB_BLOCK_SIZE parameter from the init.ora file " + ::= { oraDbConfigEntry 3 } + +oraDbConfigDbFileSimWrites OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DB_FILE_SIMULTANEOUS_WRITES parameter from the init.ora file " + ::= { oraDbConfigEntry 4 } + +oraDbConfigDbMultiBlockReadCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DB_MULTIBLOCK_READ_COUNT parameter from the init.ora file " + ::= { oraDbConfigEntry 5 } + +oraDbConfigDistLockTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DISTRIBUTED_LOCK_TIMEOUT parameter from the init.ora file " + ::= { oraDbConfigEntry 6 } + +oraDbConfigDistRecoveryConnectHold OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DISTRIBUTED_RECOVERY_CONNECT_HOLD parameter from the + init.ora file " + ::= { oraDbConfigEntry 7 } + +oraDbConfigDistTransactions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DISTRIBUTED_TRANSACTIONS parameter from the init.ora file " + ::= { oraDbConfigEntry 8 } + +oraDbConfigLogArchiveBufferSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LOG_ARCHIVE_BUFFER_SIZE parameter from the init.ora file " + ::= { oraDbConfigEntry 9 } + +oraDbConfigLogArchiveBuffers OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LOG_ARCHIVE_BUFFERS parameter from the init.ora file " + ::= { oraDbConfigEntry 10 } + +oraDbConfigLogBuffer OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LOG_BUFFER parameter from the init.ora file " + ::= { oraDbConfigEntry 11 } + +oraDbConfigLogCheckpointInterval OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LOG_CHECKPOINT_INTERVAL parameter from the init.ora file " + ::= { oraDbConfigEntry 12 } + +oraDbConfigLogCheckpointTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LOG_CHECKPOINT_TIMEOUT parameter from the init.ora file " + ::= { oraDbConfigEntry 13 } + +oraDbConfigLogFiles OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LOG_FILES parameter from the init.ora file " + ::= { oraDbConfigEntry 14 } + +oraDbConfigMaxRollbackSegments OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MAX_ROLLBACK_SEGMENTS parameter from the init.ora file " + ::= { oraDbConfigEntry 15 } + +oraDbConfigMTSMaxDispatchers OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MTS_MAX_DISPATCHERS parameter from the init.ora file " + ::= { oraDbConfigEntry 16 } + +oraDbConfigMTSMaxServers OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MTS_MAX_SERVERS parameter from the init.ora file " + ::= { oraDbConfigEntry 17 } + +oraDbConfigMTSServers OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MTS_SERVERS parameter from the init.ora file " + ::= { oraDbConfigEntry 18 } + +oraDbConfigOpenCursors OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The OPEN_CURSORS parameter from the init.ora file " + ::= { oraDbConfigEntry 19 } + +oraDbConfigOpenLinks OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The OPEN_LINKS parameter from the init.ora file " + ::= { oraDbConfigEntry 20 } + +oraDbConfigOptimizerMode OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The OPTIMIZER_MODE parameter from the init.ora file " + ::= { oraDbConfigEntry 21 } + +oraDbConfigProcesses OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The PROCESSES parameter from the init.ora file " + ::= { oraDbConfigEntry 22 } + +oraDbConfigSerializable OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SERIALIZABLE parameter from the init.ora file " + ::= { oraDbConfigEntry 23 } + +oraDbConfigSessions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SESSIONS parameter from the init.ora file " + ::= { oraDbConfigEntry 24 } + +oraDbConfigSharedPool OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SHARED_POOL parameter from the init.ora file " + ::= { oraDbConfigEntry 25 } + +oraDbConfigSortAreaSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SORT_AREA_SIZE parameter from the init.ora file " + ::= { oraDbConfigEntry 26 } + +oraDbConfigSortAreaRetainedSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SORT_AREA_RETAINED_SIZE parameter from the init.ora file " + ::= { oraDbConfigEntry 27 } + +oraDbConfigTransactions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The TRANSACTIONS parameter from the init.ora file " + ::= { oraDbConfigEntry 28 } + +oraDbConfigTransactionsPerRollback OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The TRANSACTIONS_PER_ROLLBACK parameter from the init.ora file " + ::= { oraDbConfigEntry 29 } + +END diff --git a/pandora_console/attachment/mibs/OSPF-MIB b/pandora_console/attachment/mibs/OSPF-MIB new file mode 100644 index 0000000000..9ca0001e62 --- /dev/null +++ b/pandora_console/attachment/mibs/OSPF-MIB @@ -0,0 +1,2738 @@ +-- Changes to rfc1850a - OSPF-MIB +-- Extracted from rfc1850 - the combined OSPF-MIB and +-- OSPF-TRAP-MIB +-- Some work needs to be done to fix the compliances +-- for ospfAuthType! +-- dperkins@scruznet.com + +OSPF-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, + Integer32, IpAddress + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, TruthValue, RowStatus + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF + mib-2 FROM RFC1213-MIB; + +-- This MIB module uses the extended OBJECT-TYPE macro as +-- defined in [9]. + +ospf MODULE-IDENTITY + LAST-UPDATED "9501201225Z" -- Fri Jan 20 12:25:50 PST 1995 + ORGANIZATION "IETF OSPF Working Group" + CONTACT-INFO + " Fred Baker + Postal: Cisco Systems + 519 Lado Drive + Santa Barbara, California 93111 + Tel: +1 805 681 0115 + E-Mail: fred@cisco.com + + Rob Coltun + Postal: RainbowBridge Communications + Tel: (301) 340-9416 + E-Mail: rcoltun@rainbow-bridge.com" + DESCRIPTION + "The MIB module to describe the OSPF Version 2 + Protocol" + ::= { mib-2 14 } + +-- The Area ID, in OSPF, has the same format as an IP Address, +-- but has the function of defining a summarization point for +-- Link State Advertisements + +AreaID ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "An OSPF Area Identifier." + SYNTAX IpAddress + + +-- The Router ID, in OSPF, has the same format as an IP Address, +-- but identifies the router independent of its IP Address. + +RouterID ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A OSPF Router Identifier." + SYNTAX IpAddress + + +-- The OSPF Metric is defined as an unsigned value in the range + +Metric ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The OSPF Internal Metric." + SYNTAX Integer32 (0..'FFFF'h) + +BigMetric ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The OSPF External Metric." + SYNTAX Integer32 (0..'FFFFFF'h) + +-- Status Values + +Status ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The status of an interface: 'enabled' indicates that + it is willing to communicate with other OSPF Routers, + while 'disabled' indicates that it is not." + SYNTAX INTEGER { enabled (1), disabled (2) } + +-- Time Durations measured in seconds + +PositiveInteger ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A positive integer. Values in excess are precluded as + unnecessary and prone to interoperability issues." + SYNTAX Integer32 (0..'7FFFFFFF'h) + +HelloRange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The range of intervals on which hello messages are + exchanged." + SYNTAX Integer32 (1..'FFFF'h) + +UpToMaxAge ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The values that one might find or configure for + variables bounded by the maximum age of an LSA." + SYNTAX Integer32 (0..3600) + + +-- The range of ifIndex + +InterfaceIndex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The range of ifIndex." + SYNTAX Integer32 + + +-- Potential Priorities for the Designated Router Election + +DesignatedRouterPriority ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The values defined for the priority of a system for + becoming the designated router." + SYNTAX Integer32 (0..'FF'h) + +TOSType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Type of Service is defined as a mapping to the IP Type of + Service Flags as defined in the IP Forwarding Table MIB + + +-----+-----+-----+-----+-----+-----+-----+-----+ + | | | | + | PRECEDENCE | TYPE OF SERVICE | 0 | + | | | | + +-----+-----+-----+-----+-----+-----+-----+-----+ + + IP TOS IP TOS + Field Policy Field Policy + + Contents Code Contents Code + 0 0 0 0 ==> 0 0 0 0 1 ==> 2 + 0 0 1 0 ==> 4 0 0 1 1 ==> 6 + 0 1 0 0 ==> 8 0 1 0 1 ==> 10 + 0 1 1 0 ==> 12 0 1 1 1 ==> 14 + 1 0 0 0 ==> 16 1 0 0 1 ==> 18 + 1 0 1 0 ==> 20 1 0 1 1 ==> 22 + 1 1 0 0 ==> 24 1 1 0 1 ==> 26 + 1 1 1 0 ==> 28 1 1 1 1 ==> 30 + + The remaining values are left for future definition." + SYNTAX Integer32 (0..30) + + +-- OSPF General Variables + +-- These parameters apply globally to the Router's +-- OSPF Process. + +ospfGeneralGroup OBJECT IDENTIFIER ::= { ospf 1 } + + + ospfRouterId OBJECT-TYPE + SYNTAX RouterID + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A 32-bit integer uniquely identifying the + router in the Autonomous System. + + By convention, to ensure uniqueness, this + should default to the value of one of the + router's IP interface addresses." + REFERENCE + "OSPF Version 2, C.1 Global parameters" + ::= { ospfGeneralGroup 1 } + + + ospfAdminStat OBJECT-TYPE + SYNTAX Status + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The administrative status of OSPF in the + router. The value 'enabled' denotes that the + OSPF Process is active on at least one inter- + face; 'disabled' disables it on all inter- + faces." + ::= { ospfGeneralGroup 2 } + + ospfVersionNumber OBJECT-TYPE + SYNTAX INTEGER { version2 (2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current version number of the OSPF proto- + col is 2." + REFERENCE + "OSPF Version 2, Title" + ::= { ospfGeneralGroup 3 } + + + ospfAreaBdrRtrStatus OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A flag to note whether this router is an area + border router." + REFERENCE + "OSPF Version 2, Section 3 Splitting the AS into + Areas" + ::= { ospfGeneralGroup 4 } + + + ospfASBdrRtrStatus OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A flag to note whether this router is config- + ured as an Autonomous System border router." + REFERENCE + "OSPF Version 2, Section 3.3 Classification of + routers" + ::= { ospfGeneralGroup 5 } + + ospfExternLsaCount OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of external (LS type 5) link-state + advertisements in the link-state database." + REFERENCE + "OSPF Version 2, Appendix A.4.5 AS external link + advertisements" + ::= { ospfGeneralGroup 6 } + + + ospfExternLsaCksumSum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 32-bit unsigned sum of the LS checksums of + the external link-state advertisements con- + tained in the link-state database. This sum + can be used to determine if there has been a + change in a router's link state database, and + to compare the link-state database of two + routers." + ::= { ospfGeneralGroup 7 } + + + ospfTOSSupport OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The router's support for type-of-service rout- + ing." + REFERENCE + "OSPF Version 2, Appendix F.1.2 Optional TOS + support" + ::= { ospfGeneralGroup 8 } + + ospfOriginateNewLsas OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of new link-state advertisements + that have been originated. This number is in- + cremented each time the router originates a new + LSA." + ::= { ospfGeneralGroup 9 } + + + ospfRxNewLsas OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of link-state advertisements re- + ceived determined to be new instantiations. + This number does not include newer instantia- + tions of self-originated link-state advertise- + ments." + ::= { ospfGeneralGroup 10 } + + ospfExtLsdbLimit OBJECT-TYPE + SYNTAX Integer32 (-1..'7FFFFFFF'h) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum number of non-default AS- + external-LSAs entries that can be stored in the + link-state database. If the value is -1, then + there is no limit. + + When the number of non-default AS-external-LSAs + in a router's link-state database reaches + ospfExtLsdbLimit, the router enters Overflow- + State. The router never holds more than + ospfExtLsdbLimit non-default AS-external-LSAs + in its database. OspfExtLsdbLimit MUST be set + identically in all routers attached to the OSPF + backbone and/or any regular OSPF area. (i.e., + OSPF stub areas and NSSAs are excluded)." + DEFVAL { -1 } + ::= { ospfGeneralGroup 11 } + + ospfMulticastExtensions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A Bit Mask indicating whether the router is + forwarding IP multicast (Class D) datagrams + based on the algorithms defined in the Multi- + cast Extensions to OSPF. + + Bit 0, if set, indicates that the router can + forward IP multicast datagrams in the router's + directly attached areas (called intra-area mul- + ticast routing). + + Bit 1, if set, indicates that the router can + forward IP multicast datagrams between OSPF + areas (called inter-area multicast routing). + + Bit 2, if set, indicates that the router can + forward IP multicast datagrams between Auto- + nomous Systems (called inter-AS multicast rout- + ing). + + Only certain combinations of bit settings are + allowed, namely: 0 (no multicast forwarding is + enabled), 1 (intra-area multicasting only), 3 + (intra-area and inter-area multicasting), 5 + (intra-area and inter-AS multicasting) and 7 + (multicasting everywhere). By default, no mul- + ticast forwarding is enabled." + DEFVAL { 0 } + ::= { ospfGeneralGroup 12 } + + ospfExitOverflowInterval OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The number of seconds that, after entering + OverflowState, a router will attempt to leave + OverflowState. This allows the router to again + originate non-default AS-external-LSAs. When + set to 0, the router will not leave Overflow- + State until restarted." + DEFVAL { 0 } + ::= { ospfGeneralGroup 13 } + + + ospfDemandExtensions OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The router's support for demand routing." + REFERENCE + "OSPF Version 2, Appendix on Demand Routing" + ::= { ospfGeneralGroup 14 } + + +-- The OSPF Area Data Structure contains information +-- regarding the various areas. The interfaces and +-- virtual links are configured as part of these areas. +-- Area 0.0.0.0, by definition, is the Backbone Area + + + ospfAreaTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfAreaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information describing the configured parame- + ters and cumulative statistics of the router's + attached areas." + REFERENCE + "OSPF Version 2, Section 6 The Area Data Struc- + ture" + ::= { ospf 2 } + + + ospfAreaEntry OBJECT-TYPE + SYNTAX OspfAreaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information describing the configured parame- + ters and cumulative statistics of one of the + router's attached areas." + INDEX { ospfAreaId } + ::= { ospfAreaTable 1 } + +OspfAreaEntry ::= + SEQUENCE { + ospfAreaId + AreaID, + ospfAuthType + Integer32, + ospfImportAsExtern + INTEGER, + ospfSpfRuns + Counter32, + ospfAreaBdrRtrCount + Gauge32, + ospfAsBdrRtrCount + Gauge32, + ospfAreaLsaCount + Gauge32, + ospfAreaLsaCksumSum + Integer32, + ospfAreaSummary + INTEGER, + ospfAreaStatus + RowStatus + } + + ospfAreaId OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A 32-bit integer uniquely identifying an area. + Area ID 0.0.0.0 is used for the OSPF backbone." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaEntry 1 } + + + ospfAuthType OBJECT-TYPE + SYNTAX Integer32 + -- none (0), + -- simplePassword (1) + -- md5 (2) + -- reserved for specification by IANA (> 2) + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "The authentication type specified for an area. + Additional authentication types may be assigned + locally on a per Area basis." + REFERENCE + "OSPF Version 2, Appendix E Authentication" + DEFVAL { 0 } -- no authentication, by default + ::= { ospfAreaEntry 2 } + + ospfImportAsExtern OBJECT-TYPE + SYNTAX INTEGER { + importExternal (1), + importNoExternal (2), + importNssa (3) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The area's support for importing AS external + link- state advertisements." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + DEFVAL { importExternal } + ::= { ospfAreaEntry 3 } + + + ospfSpfRuns OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times that the intra-area route + table has been calculated using this area's + link-state database. This is typically done + using Dijkstra's algorithm." + ::= { ospfAreaEntry 4 } + + + ospfAreaBdrRtrCount OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of area border routers reach- + able within this area. This is initially zero, + and is calculated in each SPF Pass." + ::= { ospfAreaEntry 5 } + + ospfAsBdrRtrCount OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of Autonomous System border + routers reachable within this area. This is + initially zero, and is calculated in each SPF + Pass." + ::= { ospfAreaEntry 6 } + + + ospfAreaLsaCount OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of link-state advertisements + in this area's link-state database, excluding + AS External LSA's." + ::= { ospfAreaEntry 7 } + + + ospfAreaLsaCksumSum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 32-bit unsigned sum of the link-state ad- + vertisements' LS checksums contained in this + area's link-state database. This sum excludes + external (LS type 5) link-state advertisements. + The sum can be used to determine if there has + been a change in a router's link state data- + base, and to compare the link-state database of + two routers." + DEFVAL { 0 } + ::= { ospfAreaEntry 8 } + + ospfAreaSummary OBJECT-TYPE + SYNTAX INTEGER { + noAreaSummary (1), + sendAreaSummary (2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The variable ospfAreaSummary controls the im- + port of summary LSAs into stub areas. It has + no effect on other areas. + + If it is noAreaSummary, the router will neither + originate nor propagate summary LSAs into the + stub area. It will rely entirely on its de- + fault route. + + If it is sendAreaSummary, the router will both + summarize and propagate summary LSAs." + DEFVAL { noAreaSummary } + ::= { ospfAreaEntry 9 } + + + ospfAreaStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfAreaEntry 10 } + + +-- OSPF Area Default Metric Table + +-- The OSPF Area Default Metric Table describes the metrics +-- that a default Area Border Router will advertise into a +-- Stub area. + + + ospfStubAreaTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfStubAreaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The set of metrics that will be advertised by + a default Area Border Router into a stub area." + REFERENCE + "OSPF Version 2, Appendix C.2, Area Parameters" + ::= { ospf 3 } + + + ospfStubAreaEntry OBJECT-TYPE + SYNTAX OspfStubAreaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The metric for a given Type of Service that + will be advertised by a default Area Border + Router into a stub area." + REFERENCE + "OSPF Version 2, Appendix C.2, Area Parameters" + INDEX { ospfStubAreaId, ospfStubTOS } + ::= { ospfStubAreaTable 1 } + +OspfStubAreaEntry ::= + SEQUENCE { + ospfStubAreaId + AreaID, + ospfStubTOS + TOSType, + ospfStubMetric + BigMetric, + ospfStubStatus + RowStatus, + ospfStubMetricType + INTEGER + } + + ospfStubAreaId OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 32 bit identifier for the Stub Area. On + creation, this can be derived from the in- + stance." + ::= { ospfStubAreaEntry 1 } + + + ospfStubTOS OBJECT-TYPE + SYNTAX TOSType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Type of Service associated with the + metric. On creation, this can be derived from + the instance." + ::= { ospfStubAreaEntry 2 } + + + ospfStubMetric OBJECT-TYPE + SYNTAX BigMetric + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The metric value applied at the indicated type + of service. By default, this equals the least + metric at the type of service among the inter- + faces to other areas." + ::= { ospfStubAreaEntry 3 } + + + ospfStubStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfStubAreaEntry 4 } + + ospfStubMetricType OBJECT-TYPE + SYNTAX INTEGER { + ospfMetric (1), -- OSPF Metric + comparableCost (2), -- external type 1 + nonComparable (3) -- external type 2 + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the type of metric ad- + vertised as a default route." + DEFVAL { ospfMetric } + ::= { ospfStubAreaEntry 5 } + + +-- OSPF Link State Database + +-- The Link State Database contains the Link State +-- Advertisements from throughout the areas that the +-- device is attached to. + + + ospfLsdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPF Process's Link State Database." + REFERENCE + "OSPF Version 2, Section 12 Link State Adver- + tisements" + ::= { ospf 4 } + + + ospfLsdbEntry OBJECT-TYPE + SYNTAX OspfLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A single Link State Advertisement." + INDEX { ospfLsdbAreaId, ospfLsdbType, + ospfLsdbLsid, ospfLsdbRouterId } + ::= { ospfLsdbTable 1 } + +OspfLsdbEntry ::= + SEQUENCE { + ospfLsdbAreaId + AreaID, + ospfLsdbType + INTEGER, + ospfLsdbLsid + IpAddress, + ospfLsdbRouterId + RouterID, + ospfLsdbSequence + Integer32, + ospfLsdbAge + Integer32, + ospfLsdbChecksum + Integer32, + ospfLsdbAdvertisement + OCTET STRING + } + + ospfLsdbAreaId OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 32 bit identifier of the Area from which + the LSA was received." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfLsdbEntry 1 } + +-- External Link State Advertisements are permitted +-- for backward compatibility, but should be displayed in +-- the ospfExtLsdbTable rather than here. + + ospfLsdbType OBJECT-TYPE + SYNTAX INTEGER { + routerLink (1), + networkLink (2), + summaryLink (3), + asSummaryLink (4), + asExternalLink (5), -- but see ospfExtLsdbTable + multicastLink (6), + nssaExternalLink (7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the link state advertisement. + Each link state type has a separate advertise- + ment format." + REFERENCE + "OSPF Version 2, Appendix A.4.1 The Link State + Advertisement header" + ::= { ospfLsdbEntry 2 } + + ospfLsdbLsid OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Link State ID is an LS Type Specific field + containing either a Router ID or an IP Address; + it identifies the piece of the routing domain + that is being described by the advertisement." + REFERENCE + "OSPF Version 2, Section 12.1.4 Link State ID" + ::= { ospfLsdbEntry 3 } + + ospfLsdbRouterId OBJECT-TYPE + SYNTAX RouterID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 32 bit number that uniquely identifies the + originating router in the Autonomous System." + REFERENCE + "OSPF Version 2, Appendix C.1 Global parameters" + ::= { ospfLsdbEntry 4 } + +-- Note that the OSPF Sequence Number is a 32 bit signed +-- integer. It starts with the value '80000001'h, +-- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h +-- Thus, a typical sequence number will be very negative. + + ospfLsdbSequence OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sequence number field is a signed 32-bit + integer. It is used to detect old and dupli- + cate link state advertisements. The space of + sequence numbers is linearly ordered. The + larger the sequence number the more recent the + advertisement." + REFERENCE + "OSPF Version 2, Section 12.1.6 LS sequence + number" + ::= { ospfLsdbEntry 5 } + + + ospfLsdbAge OBJECT-TYPE + SYNTAX Integer32 -- Should be 0..MaxAge + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the age of the link state adver- + tisement in seconds." + REFERENCE + "OSPF Version 2, Section 12.1.1 LS age" + ::= { ospfLsdbEntry 6 } + + ospfLsdbChecksum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the checksum of the complete + contents of the advertisement, excepting the + age field. The age field is excepted so that + an advertisement's age can be incremented + without updating the checksum. The checksum + used is the same that is used for ISO connec- + tionless datagrams; it is commonly referred to + as the Fletcher checksum." + REFERENCE + "OSPF Version 2, Section 12.1.7 LS checksum" + ::= { ospfLsdbEntry 7 } + + + ospfLsdbAdvertisement OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (1..65535)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The entire Link State Advertisement, including + its header." + REFERENCE + "OSPF Version 2, Section 12 Link State Adver- + tisements" + ::= { ospfLsdbEntry 8 } + + +-- Address Range Table + +-- The Address Range Table acts as an adjunct to the Area +-- Table; It describes those Address Range Summaries that +-- are configured to be propagated from an Area to reduce +-- the amount of information about it which is known beyond +-- its borders. + + ospfAreaRangeTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfAreaRangeEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A range if IP addresses specified by an IP + address/IP network mask pair. For example, + class B address range of X.X.X.X with a network + mask of 255.255.0.0 includes all IP addresses + from X.X.0.0 to X.X.255.255" + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospf 5 } + + ospfAreaRangeEntry OBJECT-TYPE + SYNTAX OspfAreaRangeEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A range if IP addresses specified by an IP + address/IP network mask pair. For example, + class B address range of X.X.X.X with a network + mask of 255.255.0.0 includes all IP addresses + from X.X.0.0 to X.X.255.255" + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + INDEX { ospfAreaRangeAreaId, ospfAreaRangeNet } + ::= { ospfAreaRangeTable 1 } + +OspfAreaRangeEntry ::= + SEQUENCE { + ospfAreaRangeAreaId + AreaID, + ospfAreaRangeNet + IpAddress, + ospfAreaRangeMask + IpAddress, + ospfAreaRangeStatus + RowStatus, + ospfAreaRangeEffect + INTEGER + } + + ospfAreaRangeAreaId OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The Area the Address Range is to be found + within." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaRangeEntry 1 } + + + ospfAreaRangeNet OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The IP Address of the Net or Subnet indicated + by the range." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaRangeEntry 2 } + + + ospfAreaRangeMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "The Subnet Mask that pertains to the Net or + Subnet." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaRangeEntry 3 } + + ospfAreaRangeStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfAreaRangeEntry 4 } + + + ospfAreaRangeEffect OBJECT-TYPE + SYNTAX INTEGER { + advertiseMatching (1), + doNotAdvertiseMatching (2) + } + MAX-ACCESS read-create + STATUS obsolete + DESCRIPTION + "Subnets subsumed by ranges either trigger the + advertisement of the indicated summary (adver- + tiseMatching), or result in the subnet's not + being advertised at all outside the area." + DEFVAL { advertiseMatching } + ::= { ospfAreaRangeEntry 5 } + + + +-- OSPF Host Table + +-- The Host/Metric Table indicates what hosts are directly +-- attached to the Router, and what metrics and types of +-- service should be advertised for them. + + ospfHostTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The list of Hosts, and their metrics, that the + router will advertise as host routes." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route param- + eters" + ::= { ospf 6 } + + + ospfHostEntry OBJECT-TYPE + SYNTAX OspfHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A metric to be advertised, for a given type of + service, when a given host is reachable." + INDEX { ospfHostIpAddress, ospfHostTOS } + ::= { ospfHostTable 1 } + +OspfHostEntry ::= + SEQUENCE { + ospfHostIpAddress + IpAddress, + ospfHostTOS + TOSType, + ospfHostMetric + Metric, + ospfHostStatus + RowStatus, + ospfHostAreaID + AreaID + } + + ospfHostIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP Address of the Host." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route parame- + ters" + ::= { ospfHostEntry 1 } + + + ospfHostTOS OBJECT-TYPE + SYNTAX TOSType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Type of Service of the route being config- + ured." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route parame- + ters" + ::= { ospfHostEntry 2 } + + + ospfHostMetric OBJECT-TYPE + SYNTAX Metric + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The Metric to be advertised." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route parame- + ters" + ::= { ospfHostEntry 3 } + + ospfHostStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfHostEntry 4 } + + + ospfHostAreaID OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Area the Host Entry is to be found within. + By default, the area that a subsuming OSPF in- + terface is in, or 0.0.0.0" + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfHostEntry 5 } + + +-- OSPF Interface Table + +-- The OSPF Interface Table augments the ipAddrTable +-- with OSPF specific information. + + ospfIfTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPF Interface Table describes the inter- + faces from the viewpoint of OSPF." + REFERENCE + "OSPF Version 2, Appendix C.3 Router interface + parameters" + ::= { ospf 7 } + + + ospfIfEntry OBJECT-TYPE + SYNTAX OspfIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPF Interface Entry describes one inter- + face from the viewpoint of OSPF." + INDEX { ospfIfIpAddress, ospfAddressLessIf } + ::= { ospfIfTable 1 } + +OspfIfEntry ::= + SEQUENCE { + ospfIfIpAddress + IpAddress, + ospfAddressLessIf + Integer32, + ospfIfAreaId + AreaID, + ospfIfType + INTEGER, + ospfIfAdminStat + Status, + ospfIfRtrPriority + DesignatedRouterPriority, + ospfIfTransitDelay + UpToMaxAge, + ospfIfRetransInterval + UpToMaxAge, + ospfIfHelloInterval + HelloRange, + ospfIfRtrDeadInterval + PositiveInteger, + ospfIfPollInterval + PositiveInteger, + ospfIfState + INTEGER, + ospfIfDesignatedRouter + IpAddress, + ospfIfBackupDesignatedRouter + IpAddress, + ospfIfEvents + Counter32, + ospfIfAuthType + INTEGER, + ospfIfAuthKey + OCTET STRING, + ospfIfStatus + RowStatus, + ospfIfMulticastForwarding + INTEGER, + ospfIfDemand + TruthValue + } + + ospfIfIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of this OSPF interface." + ::= { ospfIfEntry 1 } + + ospfAddressLessIf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For the purpose of easing the instancing of + addressed and addressless interfaces; This + variable takes the value 0 on interfaces with + IP Addresses, and the corresponding value of + ifIndex for interfaces having no IP Address." + ::= { ospfIfEntry 2 } + + ospfIfAreaId OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "A 32-bit integer uniquely identifying the area + to which the interface connects. Area ID + 0.0.0.0 is used for the OSPF backbone." + DEFVAL { '00000000'H } -- 0.0.0.0 + ::= { ospfIfEntry 3 } + + ospfIfType OBJECT-TYPE + SYNTAX INTEGER { + broadcast (1), + nbma (2), + pointToPoint (3), + pointToMultipoint (5) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The OSPF interface type. + + By way of a default, this field may be intuited + from the corresponding value of ifType. Broad- + cast LANs, such as Ethernet and IEEE 802.5, + take the value 'broadcast', X.25 and similar + technologies take the value 'nbma', and links + that are definitively point to point take the + value 'pointToPoint'." + ::= { ospfIfEntry 4 } + + + ospfIfAdminStat OBJECT-TYPE + SYNTAX Status + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The OSPF interface's administrative status. + The value formed on the interface, and the in- + terface will be advertised as an internal route + to some area. The value 'disabled' denotes + that the interface is external to OSPF." + DEFVAL { enabled } + ::= { ospfIfEntry 5 } + + ospfIfRtrPriority OBJECT-TYPE + SYNTAX DesignatedRouterPriority + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The priority of this interface. Used in + multi-access networks, this field is used in + the designated router election algorithm. The + value 0 signifies that the router is not eligi- + ble to become the designated router on this + particular network. In the event of a tie in + this value, routers will use their Router ID as + a tie breaker." + DEFVAL { 1 } + ::= { ospfIfEntry 6 } + + + ospfIfTransitDelay OBJECT-TYPE + SYNTAX UpToMaxAge + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The estimated number of seconds it takes to + transmit a link state update packet over this + interface." + DEFVAL { 1 } + ::= { ospfIfEntry 7 } + + + ospfIfRetransInterval OBJECT-TYPE + SYNTAX UpToMaxAge + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds between link-state ad- + vertisement retransmissions, for adjacencies + belonging to this interface. This value is + also used when retransmitting database descrip- + tion and link-state request packets." + DEFVAL { 5 } + ::= { ospfIfEntry 8 } + + + ospfIfHelloInterval OBJECT-TYPE + SYNTAX HelloRange + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The length of time, in seconds, between the + Hello packets that the router sends on the in- + terface. This value must be the same for all + routers attached to a common network." + DEFVAL { 10 } + ::= { ospfIfEntry 9 } + + + ospfIfRtrDeadInterval OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds that a router's Hello + packets have not been seen before it's neigh- + bors declare the router down. This should be + some multiple of the Hello interval. This + value must be the same for all routers attached + to a common network." + DEFVAL { 40 } + ::= { ospfIfEntry 10 } + + + ospfIfPollInterval OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The larger time interval, in seconds, between + the Hello packets sent to an inactive non- + broadcast multi- access neighbor." + DEFVAL { 120 } + ::= { ospfIfEntry 11 } + + + ospfIfState OBJECT-TYPE + SYNTAX INTEGER { + down (1), + loopback (2), + waiting (3), + pointToPoint (4), + designatedRouter (5), + backupDesignatedRouter (6), + otherDesignatedRouter (7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The OSPF Interface State." + DEFVAL { down } + ::= { ospfIfEntry 12 } + + + ospfIfDesignatedRouter OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP Address of the Designated Router." + DEFVAL { '00000000'H } -- 0.0.0.0 + ::= { ospfIfEntry 13 } + + + ospfIfBackupDesignatedRouter OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP Address of the Backup Designated + Router." + DEFVAL { '00000000'H } -- 0.0.0.0 + ::= { ospfIfEntry 14 } + + ospfIfEvents OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times this OSPF interface has + changed its state, or an error has occurred." + ::= { ospfIfEntry 15 } + + + ospfIfAuthKey OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..256)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The Authentication Key. If the Area's Author- + ization Type is simplePassword, and the key + length is shorter than 8 octets, the agent will + left adjust and zero fill to 8 octets. + + Note that unauthenticated interfaces need no + authentication key, and simple password authen- + tication cannot use a key of more than 8 oc- + tets. Larger keys are useful only with authen- + tication mechanisms not specified in this docu- + ment. + + When read, ospfIfAuthKey always returns an Oc- + tet String of length zero." + REFERENCE + "OSPF Version 2, Section 9 The Interface Data + Structure" + DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0 + ::= { ospfIfEntry 16 } + + ospfIfStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfIfEntry 17 } + + + ospfIfMulticastForwarding OBJECT-TYPE + SYNTAX INTEGER { + blocked (1), -- no multicast forwarding + multicast (2), -- using multicast address + unicast (3) -- to each OSPF neighbor + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The way multicasts should forwarded on this + interface; not forwarded, forwarded as data + link multicasts, or forwarded as data link uni- + casts. Data link multicasting is not meaning- + ful on point to point and NBMA interfaces, and + setting ospfMulticastForwarding to 0 effective- + ly disables all multicast forwarding." + DEFVAL { blocked } + ::= { ospfIfEntry 18 } + + + ospfIfDemand OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Indicates whether Demand OSPF procedures (hel- + lo supression to FULL neighbors and setting the + DoNotAge flag on proogated LSAs) should be per- + formed on this interface." + DEFVAL { false } + ::= { ospfIfEntry 19 } + + + ospfIfAuthType OBJECT-TYPE + SYNTAX INTEGER (0..255) + -- none (0), + -- simplePassword (1) + -- md5 (2) + -- reserved for specification by IANA (> 2) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The authentication type specified for an in- + terface. Additional authentication types may + be assigned locally." + REFERENCE + "OSPF Version 2, Appendix E Authentication" + DEFVAL { 0 } -- no authentication, by default + ::= { ospfIfEntry 20 } + + +-- OSPF Interface Metric Table + +-- The Metric Table describes the metrics to be advertised +-- for a specified interface at the various types of service. +-- As such, this table is an adjunct of the OSPF Interface +-- Table. + +-- Types of service, as defined by RFC 791, have the ability +-- to request low delay, high bandwidth, or reliable linkage. + +-- For the purposes of this specification, the measure of +-- bandwidth + +-- Metric = 10^8 / ifSpeed + +-- is the default value. For multiple link interfaces, note +-- that ifSpeed is the sum of the individual link speeds. +-- This yields a number having the following typical values: + +-- Network Type/bit rate Metric + +-- >= 100 MBPS 1 +-- Ethernet/802.3 10 +-- E1 48 +-- T1 (ESF) 65 +-- 64 KBPS 1562 +-- 56 KBPS 1785 +-- 19.2 KBPS 5208 +-- 9.6 KBPS 10416 + +-- Routes that are not specified use the default (TOS 0) metric + + ospfIfMetricTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfIfMetricEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The TOS metrics for a non-virtual interface + identified by the interface index." + REFERENCE + "OSPF Version 2, Appendix C.3 Router interface + parameters" + ::= { ospf 8 } + + ospfIfMetricEntry OBJECT-TYPE + SYNTAX OspfIfMetricEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A particular TOS metric for a non-virtual in- + terface identified by the interface index." + REFERENCE + "OSPF Version 2, Appendix C.3 Router interface + parameters" + INDEX { ospfIfMetricIpAddress, + ospfIfMetricAddressLessIf, + ospfIfMetricTOS } + ::= { ospfIfMetricTable 1 } + +OspfIfMetricEntry ::= + SEQUENCE { + ospfIfMetricIpAddress + IpAddress, + ospfIfMetricAddressLessIf + Integer32, + ospfIfMetricTOS + TOSType, + ospfIfMetricValue + Metric, + ospfIfMetricStatus + RowStatus + } + + ospfIfMetricIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of this OSPF interface. On row + creation, this can be derived from the in- + stance." + ::= { ospfIfMetricEntry 1 } + + ospfIfMetricAddressLessIf OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For the purpose of easing the instancing of + addressed and addressless interfaces; This + variable takes the value 0 on interfaces with + IP Addresses, and the value of ifIndex for in- + terfaces having no IP Address. On row crea- + tion, this can be derived from the instance." + ::= { ospfIfMetricEntry 2 } + + + ospfIfMetricTOS OBJECT-TYPE + SYNTAX TOSType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of service metric being referenced. + On row creation, this can be derived from the + instance." + ::= { ospfIfMetricEntry 3 } + + + ospfIfMetricValue OBJECT-TYPE + SYNTAX Metric + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The metric of using this type of service on + this interface. The default value of the TOS 0 + Metric is 10^8 / ifSpeed." + ::= { ospfIfMetricEntry 4 } + + ospfIfMetricStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfIfMetricEntry 5 } + + +-- OSPF Virtual Interface Table + +-- The Virtual Interface Table describes the virtual +-- links that the OSPF Process is configured to +-- carry on. + + ospfVirtIfTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfVirtIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about this router's virtual inter- + faces." + REFERENCE + "OSPF Version 2, Appendix C.4 Virtual link + parameters" + ::= { ospf 9 } + + + ospfVirtIfEntry OBJECT-TYPE + SYNTAX OspfVirtIfEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a single Virtual Interface." + INDEX { ospfVirtIfAreaId, ospfVirtIfNeighbor } + ::= { ospfVirtIfTable 1 } + +OspfVirtIfEntry ::= + SEQUENCE { + ospfVirtIfAreaId + AreaID, + ospfVirtIfNeighbor + RouterID, + ospfVirtIfTransitDelay + UpToMaxAge, + ospfVirtIfRetransInterval + UpToMaxAge, + ospfVirtIfHelloInterval + HelloRange, + ospfVirtIfRtrDeadInterval + PositiveInteger, + ospfVirtIfState + INTEGER, + ospfVirtIfEvents + Counter32, + ospfVirtIfAuthType + INTEGER, + ospfVirtIfAuthKey + OCTET STRING, + ospfVirtIfStatus + RowStatus + } + + ospfVirtIfAreaId OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Transit Area that the Virtual Link + traverses. By definition, this is not 0.0.0.0" + ::= { ospfVirtIfEntry 1 } + + + ospfVirtIfNeighbor OBJECT-TYPE + SYNTAX RouterID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Router ID of the Virtual Neighbor." + ::= { ospfVirtIfEntry 2 } + + + ospfVirtIfTransitDelay OBJECT-TYPE + SYNTAX UpToMaxAge + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The estimated number of seconds it takes to + transmit a link- state update packet over this + interface." + DEFVAL { 1 } + ::= { ospfVirtIfEntry 3 } + + ospfVirtIfRetransInterval OBJECT-TYPE + SYNTAX UpToMaxAge + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds between link-state ad- + vertisement retransmissions, for adjacencies + belonging to this interface. This value is + also used when retransmitting database descrip- + tion and link-state request packets. This + value should be well over the expected round- + trip time." + DEFVAL { 5 } + ::= { ospfVirtIfEntry 4 } + + + ospfVirtIfHelloInterval OBJECT-TYPE + SYNTAX HelloRange + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The length of time, in seconds, between the + Hello packets that the router sends on the in- + terface. This value must be the same for the + virtual neighbor." + DEFVAL { 10 } + ::= { ospfVirtIfEntry 5 } + + + ospfVirtIfRtrDeadInterval OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The number of seconds that a router's Hello + packets have not been seen before it's neigh- + bors declare the router down. This should be + some multiple of the Hello interval. This + value must be the same for the virtual neigh- + bor." + DEFVAL { 60 } + ::= { ospfVirtIfEntry 6 } + + + ospfVirtIfState OBJECT-TYPE + SYNTAX INTEGER { + down (1), -- these use the same encoding + pointToPoint (4) -- as the ospfIfTable + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OSPF virtual interface states." + DEFVAL { down } + ::= { ospfVirtIfEntry 7 } + + + ospfVirtIfEvents OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of state changes or error events on + this Virtual Link" + ::= { ospfVirtIfEntry 8 } + + + ospfVirtIfAuthKey OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..256)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "If Authentication Type is simplePassword, the + device will left adjust and zero fill to 8 oc- + tets. + + Note that unauthenticated interfaces need no + authentication key, and simple password authen- + tication cannot use a key of more than 8 oc- + tets. Larger keys are useful only with authen- + tication mechanisms not specified in this docu- + ment. + + When read, ospfVifAuthKey always returns a + string of length zero." + REFERENCE + "OSPF Version 2, Section 9 The Interface Data + Structure" + DEFVAL { '0000000000000000'H } -- 0.0.0.0.0.0.0.0 + ::= { ospfVirtIfEntry 9 } + + + ospfVirtIfStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfVirtIfEntry 10 } + + + ospfVirtIfAuthType OBJECT-TYPE + SYNTAX INTEGER (0..255) + -- none (0), + -- simplePassword (1) + -- md5 (2) + -- reserved for specification by IANA (> 2) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The authentication type specified for a virtu- + al interface. Additional authentication types + may be assigned locally." + REFERENCE + "OSPF Version 2, Appendix E Authentication" + DEFVAL { 0 } -- no authentication, by default + ::= { ospfVirtIfEntry 11 } + + +-- OSPF Neighbor Table + +-- The OSPF Neighbor Table describes all neighbors in +-- the locality of the subject router. + + ospfNbrTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfNbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of non-virtual neighbor information." + REFERENCE + "OSPF Version 2, Section 10 The Neighbor Data + Structure" + ::= { ospf 10 } + + + ospfNbrEntry OBJECT-TYPE + SYNTAX OspfNbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The information regarding a single neighbor." + REFERENCE + "OSPF Version 2, Section 10 The Neighbor Data + Structure" + INDEX { ospfNbrIpAddr, ospfNbrAddressLessIndex } + ::= { ospfNbrTable 1 } + +OspfNbrEntry ::= + SEQUENCE { + ospfNbrIpAddr + IpAddress, + ospfNbrAddressLessIndex + InterfaceIndex, + ospfNbrRtrId + RouterID, + ospfNbrOptions + Integer32, + ospfNbrPriority + DesignatedRouterPriority, + ospfNbrState + INTEGER, + ospfNbrEvents + Counter32, + ospfNbrLsRetransQLen + Gauge32, + ospfNbmaNbrStatus + RowStatus, + ospfNbmaNbrPermanence + INTEGER, + ospfNbrHelloSuppressed + TruthValue + } + + ospfNbrIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address this neighbor is using in its + IP Source Address. Note that, on addressless + links, this will not be 0.0.0.0, but the ad- + dress of another of the neighbor's interfaces." + ::= { ospfNbrEntry 1 } + + + ospfNbrAddressLessIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "On an interface having an IP Address, zero. + On addressless interfaces, the corresponding + value of ifIndex in the Internet Standard MIB. + On row creation, this can be derived from the + instance." + ::= { ospfNbrEntry 2 } + + + ospfNbrRtrId OBJECT-TYPE + SYNTAX RouterID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A 32-bit integer (represented as a type IpAd- + dress) uniquely identifying the neighboring + router in the Autonomous System." + DEFVAL { '00000000'H } -- 0.0.0.0 + ::= { ospfNbrEntry 3 } + + + ospfNbrOptions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A Bit Mask corresponding to the neighbor's op- + tions field. + + Bit 0, if set, indicates that the system will + operate on Type of Service metrics other than + TOS 0. If zero, the neighbor will ignore all + metrics except the TOS 0 metric. + + Bit 1, if set, indicates that the associated + area accepts and operates on external informa- + tion; if zero, it is a stub area. + + Bit 2, if set, indicates that the system is ca- + pable of routing IP Multicast datagrams; i.e., + that it implements the Multicast Extensions to + OSPF. + + Bit 3, if set, indicates that the associated + area is an NSSA. These areas are capable of + carrying type 7 external advertisements, which + are translated into type 5 external advertise- + ments at NSSA borders." + REFERENCE + "OSPF Version 2, Section 12.1.2 Options" + DEFVAL { 0 } + ::= { ospfNbrEntry 4 } + + + ospfNbrPriority OBJECT-TYPE + SYNTAX DesignatedRouterPriority + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The priority of this neighbor in the designat- + ed router election algorithm. The value 0 sig- + nifies that the neighbor is not eligible to be- + come the designated router on this particular + network." + DEFVAL { 1 } + ::= { ospfNbrEntry 5 } + + + ospfNbrState OBJECT-TYPE + SYNTAX INTEGER { + down (1), + attempt (2), + init (3), + twoWay (4), + exchangeStart (5), + exchange (6), + loading (7), + full (8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The State of the relationship with this Neigh- + bor." + REFERENCE + "OSPF Version 2, Section 10.1 Neighbor States" + DEFVAL { down } + ::= { ospfNbrEntry 6 } + + + ospfNbrEvents OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times this neighbor relationship + has changed state, or an error has occurred." + ::= { ospfNbrEntry 7 } + + + ospfNbrLsRetransQLen OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current length of the retransmission + queue." + ::= { ospfNbrEntry 8 } + + + ospfNbmaNbrStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfNbrEntry 9 } + + + ospfNbmaNbrPermanence OBJECT-TYPE + SYNTAX INTEGER { + dynamic (1), -- learned through protocol + permanent (2) -- configured address + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. 'dynamic' and 'permanent' refer to how + the neighbor became known." + DEFVAL { permanent } + ::= { ospfNbrEntry 10 } + + + ospfNbrHelloSuppressed OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether Hellos are being suppressed + to the neighbor" + ::= { ospfNbrEntry 11 } + + +-- OSPF Virtual Neighbor Table + +-- This table describes all virtual neighbors. +-- Since Virtual Links are configured in the +-- virtual interface table, this table is read-only. + + ospfVirtNbrTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfVirtNbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of virtual neighbor information." + REFERENCE + "OSPF Version 2, Section 15 Virtual Links" + ::= { ospf 11 } + + + ospfVirtNbrEntry OBJECT-TYPE + SYNTAX OspfVirtNbrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Virtual neighbor information." + INDEX { ospfVirtNbrArea, ospfVirtNbrRtrId } + ::= { ospfVirtNbrTable 1 } + +OspfVirtNbrEntry ::= + SEQUENCE { + ospfVirtNbrArea + AreaID, + ospfVirtNbrRtrId + RouterID, + ospfVirtNbrIpAddr + IpAddress, + ospfVirtNbrOptions + Integer32, + ospfVirtNbrState + INTEGER, + ospfVirtNbrEvents + Counter32, + ospfVirtNbrLsRetransQLen + Gauge32, + ospfVirtNbrHelloSuppressed + TruthValue + } + + ospfVirtNbrArea OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Transit Area Identifier." + ::= { ospfVirtNbrEntry 1 } + + + ospfVirtNbrRtrId OBJECT-TYPE + SYNTAX RouterID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A 32-bit integer uniquely identifying the + neighboring router in the Autonomous System." + ::= { ospfVirtNbrEntry 2 } + + + ospfVirtNbrIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address this Virtual Neighbor is us- + ing." + ::= { ospfVirtNbrEntry 3 } + + + ospfVirtNbrOptions OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A Bit Mask corresponding to the neighbor's op- + tions field. + + Bit 1, if set, indicates that the system will + operate on Type of Service metrics other than + TOS 0. If zero, the neighbor will ignore all + metrics except the TOS 0 metric. + + Bit 2, if set, indicates that the system is + Network Multicast capable; ie, that it imple- + ments OSPF Multicast Routing." + ::= { ospfVirtNbrEntry 4 } + + + ospfVirtNbrState OBJECT-TYPE + SYNTAX INTEGER { + down (1), + attempt (2), + init (3), + twoWay (4), + exchangeStart (5), + exchange (6), + loading (7), + full (8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The state of the Virtual Neighbor Relation- + ship." + ::= { ospfVirtNbrEntry 5 } + + + ospfVirtNbrEvents OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times this virtual link has + changed its state, or an error has occurred." + ::= { ospfVirtNbrEntry 6 } + + + ospfVirtNbrLsRetransQLen OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current length of the retransmission + queue." + ::= { ospfVirtNbrEntry 7 } + + + ospfVirtNbrHelloSuppressed OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether Hellos are being suppressed + to the neighbor" + ::= { ospfVirtNbrEntry 8 } + + +-- OSPF Link State Database, External + +-- The Link State Database contains the Link State +-- Advertisements from throughout the areas that the +-- device is attached to. + +-- This table is identical to the OSPF LSDB Table in +-- format, but contains only External Link State +-- Advertisements. The purpose is to allow external +-- LSAs to be displayed once for the router rather +-- than once in each non-stub area. + + ospfExtLsdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfExtLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The OSPF Process's Links State Database." + REFERENCE + "OSPF Version 2, Section 12 Link State Adver- + tisements" + ::= { ospf 12 } + + + ospfExtLsdbEntry OBJECT-TYPE + SYNTAX OspfExtLsdbEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A single Link State Advertisement." + INDEX { ospfExtLsdbType, ospfExtLsdbLsid, ospfExtLsdbRouterId } + ::= { ospfExtLsdbTable 1 } + +OspfExtLsdbEntry ::= + SEQUENCE { + ospfExtLsdbType + INTEGER, + ospfExtLsdbLsid + IpAddress, + ospfExtLsdbRouterId + RouterID, + ospfExtLsdbSequence + Integer32, + ospfExtLsdbAge + Integer32, + ospfExtLsdbChecksum + Integer32, + ospfExtLsdbAdvertisement + OCTET STRING + } + + ospfExtLsdbType OBJECT-TYPE + SYNTAX INTEGER { + asExternalLink (5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the link state advertisement. + Each link state type has a separate advertise- + ment format." + REFERENCE + "OSPF Version 2, Appendix A.4.1 The Link State + Advertisement header" + ::= { ospfExtLsdbEntry 1 } + + + ospfExtLsdbLsid OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Link State ID is an LS Type Specific field + containing either a Router ID or an IP Address; + it identifies the piece of the routing domain + that is being described by the advertisement." + REFERENCE + "OSPF Version 2, Section 12.1.4 Link State ID" + ::= { ospfExtLsdbEntry 2 } + + + ospfExtLsdbRouterId OBJECT-TYPE + SYNTAX RouterID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 32 bit number that uniquely identifies the + originating router in the Autonomous System." + REFERENCE + "OSPF Version 2, Appendix C.1 Global parameters" + ::= { ospfExtLsdbEntry 3 } + +-- Note that the OSPF Sequence Number is a 32 bit signed +-- integer. It starts with the value '80000001'h, +-- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h +-- Thus, a typical sequence number will be very negative. + + ospfExtLsdbSequence OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sequence number field is a signed 32-bit + integer. It is used to detect old and dupli- + cate link state advertisements. The space of + sequence numbers is linearly ordered. The + larger the sequence number the more recent the + advertisement." + REFERENCE + "OSPF Version 2, Section 12.1.6 LS sequence + number" + ::= { ospfExtLsdbEntry 4 } + + + ospfExtLsdbAge OBJECT-TYPE + SYNTAX Integer32 -- Should be 0..MaxAge + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the age of the link state adver- + tisement in seconds." + REFERENCE + "OSPF Version 2, Section 12.1.1 LS age" + ::= { ospfExtLsdbEntry 5 } + + + ospfExtLsdbChecksum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This field is the checksum of the complete + contents of the advertisement, excepting the + age field. The age field is excepted so that + an advertisement's age can be incremented + without updating the checksum. The checksum + used is the same that is used for ISO connec- + tionless datagrams; it is commonly referred to + as the Fletcher checksum." + REFERENCE + "OSPF Version 2, Section 12.1.7 LS checksum" + ::= { ospfExtLsdbEntry 6 } + + + ospfExtLsdbAdvertisement OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(36)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The entire Link State Advertisement, including + its header." + REFERENCE + "OSPF Version 2, Section 12 Link State Adver- + tisements" + ::= { ospfExtLsdbEntry 7 } + + +-- OSPF Use of the CIDR Route Table + +ospfRouteGroup OBJECT IDENTIFIER ::= { ospf 13 } + +-- The IP Forwarding Table defines a number of objects for use by +-- the routing protocol to externalize its information. Most of +-- the variables (ipForwardDest, ipForwardMask, ipForwardPolicy, +-- ipForwardNextHop, ipForwardIfIndex, ipForwardType, +-- ipForwardProto, ipForwardAge, and ipForwardNextHopAS) are +-- defined there. + +-- Those that leave some discretion are defined here. + +-- ipCidrRouteProto is, of course, ospf (13). + +-- ipCidrRouteAge is the time since the route was first calculated, +-- as opposed to the time since the last SPF run. + +-- ipCidrRouteInfo is an OBJECT IDENTIFIER for use by the routing +-- protocol. The following values shall be found there depending +-- on the way the route was calculated. + +ospfIntraArea OBJECT IDENTIFIER ::= { ospfRouteGroup 1 } +ospfInterArea OBJECT IDENTIFIER ::= { ospfRouteGroup 2 } +ospfExternalType1 OBJECT IDENTIFIER ::= { ospfRouteGroup 3 } +ospfExternalType2 OBJECT IDENTIFIER ::= { ospfRouteGroup 4 } + +-- ipCidrRouteMetric1 is, by definition, the primary routing +-- metric. Therefore, it should be the metric that route +-- selection is based on. For intra-area and inter-area routes, +-- it is an OSPF metric. For External Type 1 (comparable value) +-- routes, it is an OSPF metric plus the External Metric. For +-- external Type 2 (non-comparable value) routes, it is the +-- external metric. + +-- ipCidrRouteMetric2 is, by definition, a secondary routing +-- metric. Therefore, it should be the metric that breaks a tie +-- among routes having equal metric1 values and the same +-- calculation rule. For intra-area, inter-area routes, and +-- External Type 1 (comparable value) routes, it is unused. For +-- external Type 2 (non-comparable value) routes, it is the metric +-- to the AS border router. + +-- ipCidrRouteMetric3, ipCidrRouteMetric4, and ipCidrRouteMetric5 are +-- unused. + +-- +-- The OSPF Area Aggregate Table +-- +-- This table replaces the OSPF Area Summary Table, being an +-- extension of that for CIDR routers. + + ospfAreaAggregateTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfAreaAggregateEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A range of IP addresses specified by an IP + address/IP network mask pair. For example, + class B address range of X.X.X.X with a network + mask of 255.255.0.0 includes all IP addresses + from X.X.0.0 to X.X.255.255. Note that if + ranges are configured such that one range sub- + sumes another range (e.g., 10.0.0.0 mask + 255.0.0.0 and 10.1.0.0 mask 255.255.0.0), the + most specific match is the preferred one." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospf 14 } + + + ospfAreaAggregateEntry OBJECT-TYPE + SYNTAX OspfAreaAggregateEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A range of IP addresses specified by an IP + address/IP network mask pair. For example, + class B address range of X.X.X.X with a network + mask of 255.255.0.0 includes all IP addresses + from X.X.0.0 to X.X.255.255. Note that if + ranges are range configured such that one range + subsumes another range (e.g., 10.0.0.0 mask + 255.0.0.0 and 10.1.0.0 mask 255.255.0.0), the + most specific match is the preferred one." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + INDEX { ospfAreaAggregateAreaID, ospfAreaAggregateLsdbType, + ospfAreaAggregateNet, ospfAreaAggregateMask } + ::= { ospfAreaAggregateTable 1 } + + +OspfAreaAggregateEntry ::= + SEQUENCE { + ospfAreaAggregateAreaID + AreaID, + ospfAreaAggregateLsdbType + INTEGER, + ospfAreaAggregateNet + IpAddress, + ospfAreaAggregateMask + IpAddress, + ospfAreaAggregateStatus + RowStatus, + ospfAreaAggregateEffect + INTEGER + } + + ospfAreaAggregateAreaID OBJECT-TYPE + SYNTAX AreaID + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Area the Address Aggregate is to be found + within." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaAggregateEntry 1 } + + + ospfAreaAggregateLsdbType OBJECT-TYPE + SYNTAX INTEGER { + summaryLink (3), + nssaExternalLink (7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the Address Aggregate. This field + specifies the Lsdb type that this Address Ag- + gregate applies to." + REFERENCE + "OSPF Version 2, Appendix A.4.1 The Link State + Advertisement header" + ::= { ospfAreaAggregateEntry 2 } + + + ospfAreaAggregateNet OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP Address of the Net or Subnet indicated + by the range." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaAggregateEntry 3 } + + + ospfAreaAggregateMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The Subnet Mask that pertains to the Net or + Subnet." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaAggregateEntry 4 } + + + ospfAreaAggregateStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This variable displays the status of the en- + try. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect + (row removal) is implementation dependent." + ::= { ospfAreaAggregateEntry 5 } + + + ospfAreaAggregateEffect OBJECT-TYPE + SYNTAX INTEGER { + advertiseMatching (1), + doNotAdvertiseMatching (2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Subnets subsumed by ranges either trigger the + advertisement of the indicated aggregate (ad- + vertiseMatching), or result in the subnet's not + being advertised at all outside the area." + DEFVAL { advertiseMatching } + ::= { ospfAreaAggregateEntry 6 } + + +-- conformance information + +ospfConformance OBJECT IDENTIFIER ::= { ospf 15 } + +ospfGroups OBJECT IDENTIFIER ::= { ospfConformance 1 } +ospfCompliances OBJECT IDENTIFIER ::= { ospfConformance 2 } + +-- compliance statements + + ospfCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement " + MODULE -- this module + MANDATORY-GROUPS { + ospfBasicGroup, + ospfAreaGroup, + ospfStubAreaGroup, + ospfIfGroup, + ospfIfMetricGroup, + ospfVirtIfGroup, + ospfNbrGroup, + ospfVirtNbrGroup, + ospfAreaAggregateGroup + } + ::= { ospfCompliances 1 } + + +-- units of conformance + + ospfBasicGroup OBJECT-GROUP + OBJECTS { + ospfRouterId, + ospfAdminStat, + ospfVersionNumber, + ospfAreaBdrRtrStatus, + ospfASBdrRtrStatus, + ospfExternLsaCount, + ospfExternLsaCksumSum, + ospfTOSSupport, + ospfOriginateNewLsas, + ospfRxNewLsas, + ospfExtLsdbLimit, + ospfMulticastExtensions, + ospfExitOverflowInterval, + ospfDemandExtensions + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems." + ::= { ospfGroups 1 } + + + ospfAreaGroup OBJECT-GROUP + OBJECTS { + ospfAreaId, + ospfImportAsExtern, + ospfSpfRuns, + ospfAreaBdrRtrCount, + ospfAsBdrRtrCount, + ospfAreaLsaCount, + ospfAreaLsaCksumSum, + ospfAreaSummary, + ospfAreaStatus + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems + supporting areas." + ::= { ospfGroups 2 } + + + ospfStubAreaGroup OBJECT-GROUP + OBJECTS { + ospfStubAreaId, + ospfStubTOS, + ospfStubMetric, + ospfStubStatus, + ospfStubMetricType + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems + supporting stub areas." + ::= { ospfGroups 3 } + + + ospfLsdbGroup OBJECT-GROUP + OBJECTS { + ospfLsdbAreaId, + ospfLsdbType, + ospfLsdbLsid, + ospfLsdbRouterId, + ospfLsdbSequence, + ospfLsdbAge, + ospfLsdbChecksum, + ospfLsdbAdvertisement + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems + that display their link state database." + ::= { ospfGroups 4 } + + + ospfAreaRangeGroup OBJECT-GROUP + OBJECTS { + ospfAreaRangeAreaId, + ospfAreaRangeNet, + ospfAreaRangeMask, + ospfAreaRangeStatus, + ospfAreaRangeEffect + } + STATUS obsolete + DESCRIPTION + "These objects are required for non-CIDR OSPF + systems that support multiple areas." + ::= { ospfGroups 5 } + + + ospfHostGroup OBJECT-GROUP + OBJECTS { + ospfHostIpAddress, + ospfHostTOS, + ospfHostMetric, + ospfHostStatus, + ospfHostAreaID + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems + that support attached hosts." + ::= { ospfGroups 6 } + + + ospfIfGroup OBJECT-GROUP + OBJECTS { + ospfIfIpAddress, + ospfAddressLessIf, + ospfIfAreaId, + ospfIfType, + ospfIfAdminStat, + ospfIfRtrPriority, + ospfIfTransitDelay, + ospfIfRetransInterval, + ospfIfHelloInterval, + ospfIfRtrDeadInterval, + ospfIfPollInterval, + ospfIfState, + ospfIfDesignatedRouter, + ospfIfBackupDesignatedRouter, + ospfIfEvents, + ospfIfAuthType, + ospfIfAuthKey, + ospfIfStatus, + ospfIfMulticastForwarding, + ospfIfDemand + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems." + ::= { ospfGroups 7 } + + + ospfIfMetricGroup OBJECT-GROUP + OBJECTS { + ospfIfMetricIpAddress, + ospfIfMetricAddressLessIf, + ospfIfMetricTOS, + ospfIfMetricValue, + ospfIfMetricStatus + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems." + ::= { ospfGroups 8 } + + + ospfVirtIfGroup OBJECT-GROUP + OBJECTS { + ospfVirtIfAreaId, + ospfVirtIfNeighbor, + ospfVirtIfTransitDelay, + ospfVirtIfRetransInterval, + ospfVirtIfHelloInterval, + ospfVirtIfRtrDeadInterval, + ospfVirtIfState, + ospfVirtIfEvents, + ospfVirtIfAuthType, + ospfVirtIfAuthKey, + ospfVirtIfStatus + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems." + ::= { ospfGroups 9 } + + + ospfNbrGroup OBJECT-GROUP + OBJECTS { + ospfNbrIpAddr, + ospfNbrAddressLessIndex, + ospfNbrRtrId, + ospfNbrOptions, + ospfNbrPriority, + ospfNbrState, + ospfNbrEvents, + ospfNbrLsRetransQLen, + ospfNbmaNbrStatus, + ospfNbmaNbrPermanence, + ospfNbrHelloSuppressed + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems." + ::= { ospfGroups 10 } + + + ospfVirtNbrGroup OBJECT-GROUP + OBJECTS { + ospfVirtNbrArea, + ospfVirtNbrRtrId, + ospfVirtNbrIpAddr, + ospfVirtNbrOptions, + ospfVirtNbrState, + ospfVirtNbrEvents, + ospfVirtNbrLsRetransQLen, + ospfVirtNbrHelloSuppressed + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems." + ::= { ospfGroups 11 } + + + ospfExtLsdbGroup OBJECT-GROUP + OBJECTS { + ospfExtLsdbType, + ospfExtLsdbLsid, + ospfExtLsdbRouterId, + ospfExtLsdbSequence, + ospfExtLsdbAge, + ospfExtLsdbChecksum, + ospfExtLsdbAdvertisement + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems + that display their link state database." + ::= { ospfGroups 12 } + + + ospfAreaAggregateGroup OBJECT-GROUP + OBJECTS { + ospfAreaAggregateAreaID, + ospfAreaAggregateLsdbType, + ospfAreaAggregateNet, + ospfAreaAggregateMask, + ospfAreaAggregateStatus, + ospfAreaAggregateEffect + } + STATUS current + DESCRIPTION + "These objects are required for OSPF systems." + ::= { ospfGroups 13 } + +END diff --git a/pandora_console/attachment/mibs/P-BRIDGE-MIB b/pandora_console/attachment/mibs/P-BRIDGE-MIB new file mode 100644 index 0000000000..3109a4b94c --- /dev/null +++ b/pandora_console/attachment/mibs/P-BRIDGE-MIB @@ -0,0 +1,963 @@ +-- extracted from rfc2674.txt +-- at Mon Nov 15 17:12:07 1999 + +P-BRIDGE-MIB DEFINITIONS ::= BEGIN + +-- ------------------------------------------------------------- +-- MIB for IEEE 802.1p devices +-- ------------------------------------------------------------- + +IMPORTS +MODULE-IDENTITY, OBJECT-TYPE, Counter32, Counter64 +FROM SNMPv2-SMI +TruthValue, TimeInterval, MacAddress, TEXTUAL-CONVENTION +FROM SNMPv2-TC +MODULE-COMPLIANCE, OBJECT-GROUP +FROM SNMPv2-CONF +dot1dTp, dot1dTpPort, dot1dBridge, +dot1dBasePortEntry, dot1dBasePort +FROM BRIDGE-MIB; + +pBridgeMIB MODULE-IDENTITY +LAST-UPDATED "9908250000Z" +ORGANIZATION "IETF Bridge MIB Working Group" +CONTACT-INFO +" Les Bell +Postal: 3Com Europe Ltd. +3Com Centre, Boundary Way +Hemel Hempstead, Herts. HP2 7YU +UK +Phone: +44 1442 438025 +Email: Les_Bell@3Com.com + +Andrew Smith +Postal: Extreme Networks +3585 Monroe St. +Santa Clara CA 95051 +USA +Phone: +1 408 579 2821 +Email: andrew@extremenetworks.com + +Paul Langille +Postal: Newbridge Networks +5 Corporate Drive +Andover, MA 01810 +USA +Phone: +1 978 691 4665 +Email: langille@newbridge.com + +Anil Rijhsinghani +Postal: Cabletron Systems +50 Minuteman Road +Andover, MA 01810 +USA +Phone: +1 978 684 1295 +Email: anil@cabletron.com + +Keith McCloghrie +Postal: cisco Systems, Inc. +170 West Tasman Drive +San Jose, CA 95134-1706 +USA +Phone: +1 408 526 5260 +Email: kzm@cisco.com" + +DESCRIPTION +"The Bridge MIB Extension module for managing Priority +and Multicast Filtering, defined by IEEE 802.1D-1998." + +-- revision history + +REVISION "9908250000Z" +DESCRIPTION +"Initial version, published as RFC 2674." + +::= { dot1dBridge 6 } + +pBridgeMIBObjects OBJECT IDENTIFIER ::= { pBridgeMIB 1 } + +-- ------------------------------------------------------------- +-- Textual Conventions +-- ------------------------------------------------------------- + +EnabledStatus ::= TEXTUAL-CONVENTION +STATUS current +DESCRIPTION +"A simple status value for the object." +SYNTAX INTEGER { enabled(1), disabled(2) } + +-- ------------------------------------------------------------- + +-- ------------------------------------------------------------- +-- groups in the P-BRIDGE MIB +-- ------------------------------------------------------------- + +dot1dExtBase OBJECT IDENTIFIER ::= { pBridgeMIBObjects 1 } +dot1dPriority OBJECT IDENTIFIER ::= { pBridgeMIBObjects 2 } +dot1dGarp OBJECT IDENTIFIER ::= { pBridgeMIBObjects 3 } +dot1dGmrp OBJECT IDENTIFIER ::= { pBridgeMIBObjects 4 } + +-- ------------------------------------------------------------- + +-- ------------------------------------------------------------- +-- the dot1dExtBase group +-- ------------------------------------------------------------- + +dot1dDeviceCapabilities OBJECT-TYPE +SYNTAX BITS { +dot1dExtendedFilteringServices(0), +-- can perform filtering of +-- individual multicast addresses +-- controlled by GMRP. +dot1dTrafficClasses(1), +-- can map user priority to +-- multiple traffic classes. + +dot1qStaticEntryIndividualPort(2), +-- dot1qStaticUnicastReceivePort & +-- dot1qStaticMulticastReceivePort +-- can represent non-zero entries. +dot1qIVLCapable(3), -- Independent VLAN Learning. +dot1qSVLCapable(4), -- Shared VLAN Learning. +dot1qHybridCapable(5), +-- both IVL & SVL simultaneously. +dot1qConfigurablePvidTagging(6), +-- whether the implementation +-- supports the ability to +-- override the default PVID +-- setting and its egress status +-- (VLAN-Tagged or Untagged) on +-- each port. +dot1dLocalVlanCapable(7) +-- can support multiple local +-- bridges, outside of the scope +-- of 802.1Q defined VLANs. +} +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"Indicates the optional parts of IEEE 802.1D and 802.1Q +that are implemented by this device and are manageable +through this MIB. Capabilities that are allowed on a +per-port basis are indicated in dot1dPortCapabilities." +REFERENCE +"ISO/IEC 15802-3 Section 5.2, +IEEE 802.1Q/D11 Section 5.2, 12.10.1.1.3/b/2" +::= { dot1dExtBase 1 } + +dot1dTrafficClassesEnabled OBJECT-TYPE +SYNTAX TruthValue +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The value true(1) indicates that Traffic Classes are +enabled on this bridge. When false(2), the bridge +operates with a single priority level for all traffic." +DEFVAL { true } +::= { dot1dExtBase 2 } + +dot1dGmrpStatus OBJECT-TYPE +SYNTAX EnabledStatus +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The administrative status requested by management for +GMRP. The value enabled(1) indicates that GMRP should +be enabled on this device, in all VLANs, on all ports +for which it has not been specifically disabled. When +disabled(2), GMRP is disabled, in all VLANs, on all +ports and all GMRP packets will be forwarded +transparently. This object affects both Applicant and +Registrar state machines. A transition from disabled(2) +to enabled(1) will cause a reset of all GMRP state +machines on all ports." +DEFVAL { enabled } +::= { dot1dExtBase 3 } + +-- ------------------------------------------------------------- +-- Port Capabilities Table +-- ------------------------------------------------------------- + +dot1dPortCapabilitiesTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dPortCapabilitiesEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table that contains capabilities information about +every port that is associated with this bridge." +::= { dot1dExtBase 4 } + +dot1dPortCapabilitiesEntry OBJECT-TYPE +SYNTAX Dot1dPortCapabilitiesEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A set of capabilities information about this port +indexed by dot1dBasePort." +AUGMENTS { dot1dBasePortEntry } +::= { dot1dPortCapabilitiesTable 1 } + +Dot1dPortCapabilitiesEntry ::= +SEQUENCE { +dot1dPortCapabilities +BITS +} + +dot1dPortCapabilities OBJECT-TYPE +SYNTAX BITS { +dot1qDot1qTagging(0), -- supports 802.1Q VLAN tagging of +-- frames and GVRP. +dot1qConfigurableAcceptableFrameTypes(1), +-- allows modified values of +-- dot1qPortAcceptableFrameTypes. +dot1qIngressFiltering(2) +-- supports the discarding of any +-- frame received on a Port whose +-- VLAN classification does not +-- include that Port in its Member +-- set. +} +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"Indicates the parts of IEEE 802.1D and 802.1Q that are +optional on a per-port basis that are implemented by +this device and are manageable through this MIB." +REFERENCE +"ISO/IEC 15802-3 Section 5.2, +IEEE 802.1Q/D11 Section 5.2" +::= { dot1dPortCapabilitiesEntry 1 } + +-- ------------------------------------------------------------- +-- the dot1dPriority group +-- ------------------------------------------------------------- + +-- ------------------------------------------------------------- +-- Port Priority Table +-- ------------------------------------------------------------- + +dot1dPortPriorityTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dPortPriorityEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table that contains information about every port that +is associated with this transparent bridge." +::= { dot1dPriority 1 } + +dot1dPortPriorityEntry OBJECT-TYPE +SYNTAX Dot1dPortPriorityEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A list of Default User Priorities for each port of a +transparent bridge. This is indexed by dot1dBasePort." +AUGMENTS { dot1dBasePortEntry } +::= { dot1dPortPriorityTable 1 } + +Dot1dPortPriorityEntry ::= +SEQUENCE { +dot1dPortDefaultUserPriority +INTEGER, +dot1dPortNumTrafficClasses +INTEGER +} + +dot1dPortDefaultUserPriority OBJECT-TYPE +SYNTAX INTEGER (0..7) +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The default ingress User Priority for this port. This +only has effect on media, such as Ethernet, that do not +support native User Priority." +::= { dot1dPortPriorityEntry 1 } + +dot1dPortNumTrafficClasses OBJECT-TYPE +SYNTAX INTEGER (1..8) +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The number of egress traffic classes supported on this +port. This object may optionally be read-only." +::= { dot1dPortPriorityEntry 2 } + +-- ------------------------------------------------------------- +-- User Priority Regeneration Table +-- ------------------------------------------------------------- + +dot1dUserPriorityRegenTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dUserPriorityRegenEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A list of Regenerated User Priorities for each received +User Priority on each port of a bridge. The Regenerated +User Priority value may be used to index the Traffic +Class Table for each input port. This only has effect +on media that support native User Priority. The default +values for Regenerated User Priorities are the same as +the User Priorities." +REFERENCE +"ISO/IEC 15802-3 Section 6.4" +::= { dot1dPriority 2 } + +dot1dUserPriorityRegenEntry OBJECT-TYPE +SYNTAX Dot1dUserPriorityRegenEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A mapping of incoming User Priority to a Regenerated +User Priority." +INDEX { dot1dBasePort, dot1dUserPriority } +::= { dot1dUserPriorityRegenTable 1 } + +Dot1dUserPriorityRegenEntry ::= +SEQUENCE { +dot1dUserPriority +INTEGER, +dot1dRegenUserPriority +INTEGER +} + +dot1dUserPriority OBJECT-TYPE +SYNTAX INTEGER (0..7) +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The User Priority for a frame received on this port." +::= { dot1dUserPriorityRegenEntry 1 } + +dot1dRegenUserPriority OBJECT-TYPE +SYNTAX INTEGER (0..7) +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The Regenerated User Priority the incoming User +Priority is mapped to for this port." +::= { dot1dUserPriorityRegenEntry 2 } + +-- ------------------------------------------------------------- +-- Traffic Class Table +-- ------------------------------------------------------------- + +dot1dTrafficClassTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dTrafficClassEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table mapping evaluated User Priority to Traffic +Class, for forwarding by the bridge. Traffic class is a +number in the range (0..(dot1dPortNumTrafficClasses-1))." +REFERENCE +"ISO/IEC 15802-3 Table 7-2" +::= { dot1dPriority 3 } + +dot1dTrafficClassEntry OBJECT-TYPE +SYNTAX Dot1dTrafficClassEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"User Priority to Traffic Class mapping." +INDEX { dot1dBasePort, dot1dTrafficClassPriority } +::= { dot1dTrafficClassTable 1 } + +Dot1dTrafficClassEntry ::= +SEQUENCE { +dot1dTrafficClassPriority +INTEGER, +dot1dTrafficClass +INTEGER +} + +dot1dTrafficClassPriority OBJECT-TYPE +SYNTAX INTEGER (0..7) +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The Priority value determined for the received frame. +This value is equivalent to the priority indicated in +the tagged frame received, or one of the evaluated +priorities, determined according to the media-type. + +For untagged frames received from Ethernet media, this +value is equal to the dot1dPortDefaultUserPriority value +for the ingress port. + +For untagged frames received from non-Ethernet media, +this value is equal to the dot1dRegenUserPriority value +for the ingress port and media-specific user priority." +::= { dot1dTrafficClassEntry 1 } + +dot1dTrafficClass OBJECT-TYPE +SYNTAX INTEGER (0..7) +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The Traffic Class the received frame is mapped to." +::= { dot1dTrafficClassEntry 2 } + +-- ------------------------------------------------------------- +-- Outbound Access Priority Table +-- ------------------------------------------------------------- + +dot1dPortOutboundAccessPriorityTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dPortOutboundAccessPriorityEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table mapping Regenerated User Priority to Outbound +Access Priority. This is a fixed mapping for all port +types, with two options for 802.5 Token Ring." +REFERENCE +"ISO/IEC 15802-3 Table 7-3" +::= { dot1dPriority 4 } + +dot1dPortOutboundAccessPriorityEntry OBJECT-TYPE +SYNTAX Dot1dPortOutboundAccessPriorityEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Regenerated User Priority to Outbound Access Priority +mapping." +INDEX { dot1dBasePort, dot1dRegenUserPriority } +::= { dot1dPortOutboundAccessPriorityTable 1 } + +Dot1dPortOutboundAccessPriorityEntry ::= +SEQUENCE { +dot1dPortOutboundAccessPriority +INTEGER +} + +dot1dPortOutboundAccessPriority OBJECT-TYPE +SYNTAX INTEGER (0..7) +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The Outbound Access Priority the received frame is +mapped to." +::= { dot1dPortOutboundAccessPriorityEntry 1 } + +-- ------------------------------------------------------------- +-- the dot1dGarp group +-- ------------------------------------------------------------- + +-- ------------------------------------------------------------- +-- The GARP Port Table +-- ------------------------------------------------------------- +dot1dPortGarpTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dPortGarpEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table of GARP control information about every bridge +port. This is indexed by dot1dBasePort." +::= { dot1dGarp 1 } + +dot1dPortGarpEntry OBJECT-TYPE +SYNTAX Dot1dPortGarpEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"GARP control information for a bridge port." +AUGMENTS { dot1dBasePortEntry } +::= { dot1dPortGarpTable 1 } + +Dot1dPortGarpEntry ::= +SEQUENCE { +dot1dPortGarpJoinTime +TimeInterval, +dot1dPortGarpLeaveTime +TimeInterval, +dot1dPortGarpLeaveAllTime +TimeInterval +} + +dot1dPortGarpJoinTime OBJECT-TYPE +SYNTAX TimeInterval +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The GARP Join time, in centiseconds." +DEFVAL { 20 } +::= { dot1dPortGarpEntry 1 } + +dot1dPortGarpLeaveTime OBJECT-TYPE +SYNTAX TimeInterval +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The GARP Leave time, in centiseconds." +DEFVAL { 60 } +::= { dot1dPortGarpEntry 2 } + +dot1dPortGarpLeaveAllTime OBJECT-TYPE +SYNTAX TimeInterval +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The GARP LeaveAll time, in centiseconds." +DEFVAL { 1000 } +::= { dot1dPortGarpEntry 3 } + +-- ------------------------------------------------------------- +-- The GMRP Port Configuration and Status Table +-- ------------------------------------------------------------- + +dot1dPortGmrpTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dPortGmrpEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table of GMRP control and status information about +every bridge port. Augments the dot1dBasePortTable." +::= { dot1dGmrp 1 } + +dot1dPortGmrpEntry OBJECT-TYPE +SYNTAX Dot1dPortGmrpEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"GMRP control and status information for a bridge port." +AUGMENTS { dot1dBasePortEntry } +::= { dot1dPortGmrpTable 1 } + +Dot1dPortGmrpEntry ::= +SEQUENCE { +dot1dPortGmrpStatus +EnabledStatus, +dot1dPortGmrpFailedRegistrations +Counter32, +dot1dPortGmrpLastPduOrigin +MacAddress +} + +dot1dPortGmrpStatus OBJECT-TYPE +SYNTAX EnabledStatus +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The administrative state of GMRP operation on this port. The +value enabled(1) indicates that GMRP is enabled on this port +in all VLANs as long as dot1dGmrpStatus is also enabled(1). +A value of disabled(2) indicates that GMRP is disabled on +this port in all VLANs: any GMRP packets received will +be silently discarded and no GMRP registrations will be +propagated from other ports. Setting this to a value of +enabled(1) will be stored by the agent but will only take +effect on the GMRP protocol operation if dot1dGmrpStatus +also indicates the value enabled(1). This object affects +all GMRP Applicant and Registrar state machines on this +port. A transition from disabled(2) to enabled(1) will +cause a reset of all GMRP state machines on this port." +DEFVAL { enabled } +::= { dot1dPortGmrpEntry 1 } + +dot1dPortGmrpFailedRegistrations OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The total number of failed GMRP registrations, for any +reason, in all VLANs, on this port." +::= { dot1dPortGmrpEntry 2 } + +dot1dPortGmrpLastPduOrigin OBJECT-TYPE +SYNTAX MacAddress +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The Source MAC Address of the last GMRP message +received on this port." +::= { dot1dPortGmrpEntry 3 } + +-- ------------------------------------------------------------- +-- High Capacity Port Table for Transparent Bridges +-- ------------------------------------------------------------- + +dot1dTpHCPortTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dTpHCPortEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table that contains information about every high +capacity port that is associated with this transparent +bridge." +::= { dot1dTp 5 } + +dot1dTpHCPortEntry OBJECT-TYPE +SYNTAX Dot1dTpHCPortEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Statistics information for each high capacity port of a +transparent bridge." +INDEX { dot1dTpPort } +::= { dot1dTpHCPortTable 1 } + +Dot1dTpHCPortEntry ::= +SEQUENCE { +dot1dTpHCPortInFrames +Counter64, +dot1dTpHCPortOutFrames +Counter64, +dot1dTpHCPortInDiscards +Counter64 +} + +dot1dTpHCPortInFrames OBJECT-TYPE +SYNTAX Counter64 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of frames that have been received by this +port from its segment. Note that a frame received on +the interface corresponding to this port is only counted +by this object if and only if it is for a protocol being +processed by the local bridging function, including +bridge management frames." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1dTpHCPortEntry 1 } + +dot1dTpHCPortOutFrames OBJECT-TYPE +SYNTAX Counter64 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of frames that have been transmitted by this +port to its segment. Note that a frame transmitted on +the interface corresponding to this port is only counted +by this object if and only if it is for a protocol being +processed by the local bridging function, including +bridge management frames." + +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1dTpHCPortEntry 2 } + +dot1dTpHCPortInDiscards OBJECT-TYPE +SYNTAX Counter64 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"Count of valid frames that have been received by this +port from its segment which were discarded (i.e., +filtered) by the Forwarding Process." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1dTpHCPortEntry 3 } + +-- ---------------------------------------------------- +-- Upper part of High Capacity Port Table for Transparent Bridges +-- ---------------------------------------------------- + +dot1dTpPortOverflowTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1dTpPortOverflowEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table that contains the most-significant bits of +statistics counters for ports that are associated with this +transparent bridge that are on high capacity interfaces, as +defined in the conformance clauses for this table. This table +is provided as a way to read 64-bit counters for agents which +support only SNMPv1. + +Note that the reporting of most-significant and +least-significant counter bits separately runs the risk of +missing an overflow of the lower bits in the interval between +sampling. The manager must be aware of this possibility, even +within the same varbindlist, when interpreting the results of +a request or asynchronous notification." +::= { dot1dTp 6 } + +dot1dTpPortOverflowEntry OBJECT-TYPE +SYNTAX Dot1dTpPortOverflowEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The most significant bits of statistics counters for a high +capacity interface of a transparent bridge. Each object is +associated with a corresponding object in dot1dTpPortTable +which indicates the least significant bits of the counter." +INDEX { dot1dTpPort } +::= { dot1dTpPortOverflowTable 1 } + +Dot1dTpPortOverflowEntry ::= +SEQUENCE { +dot1dTpPortInOverflowFrames +Counter32, +dot1dTpPortOutOverflowFrames +Counter32, +dot1dTpPortInOverflowDiscards +Counter32 +} + +dot1dTpPortInOverflowFrames OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of times the associated dot1dTpPortInFrames +counter has overflowed." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1dTpPortOverflowEntry 1 } + +dot1dTpPortOutOverflowFrames OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of times the associated dot1dTpPortOutFrames +counter has overflowed." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1dTpPortOverflowEntry 2 } + +dot1dTpPortInOverflowDiscards OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of times the associated +dot1dTpPortInDiscards counter has overflowed." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1dTpPortOverflowEntry 3 } + +-- ------------------------------------------------------------- +-- IEEE 802.1p MIB - Conformance Information +-- ------------------------------------------------------------- + +pBridgeConformance OBJECT IDENTIFIER ::= { pBridgeMIB 2 } + +pBridgeGroups OBJECT IDENTIFIER ::= { pBridgeConformance 1 } + +pBridgeCompliances OBJECT IDENTIFIER +::= { pBridgeConformance 2 } + +-- ------------------------------------------------------------- +-- units of conformance +-- ------------------------------------------------------------- + +pBridgeExtCapGroup OBJECT-GROUP +OBJECTS { +dot1dDeviceCapabilities, +dot1dPortCapabilities +} +STATUS current +DESCRIPTION +"A collection of objects indicating the optional +capabilites of the device." +::= { pBridgeGroups 1 } + +pBridgeDeviceGmrpGroup OBJECT-GROUP +OBJECTS { +dot1dGmrpStatus +} +STATUS current +DESCRIPTION +"A collection of objects providing device-level control +for the Multicast Filtering extended bridge services." +::= { pBridgeGroups 2 } + +pBridgeDevicePriorityGroup OBJECT-GROUP +OBJECTS { +dot1dTrafficClassesEnabled +} +STATUS current +DESCRIPTION +"A collection of objects providing device-level control +for the Priority services." +::= { pBridgeGroups 3 } + +pBridgeDefaultPriorityGroup OBJECT-GROUP +OBJECTS { +dot1dPortDefaultUserPriority +} +STATUS current +DESCRIPTION +"A collection of objects defining the User Priority +applicable to each port for media which do not support +native User Priority." +::= { pBridgeGroups 4 } + +pBridgeRegenPriorityGroup OBJECT-GROUP +OBJECTS { +dot1dRegenUserPriority +} +STATUS current +DESCRIPTION +"A collection of objects defining the User Priorities +applicable to each port for media which support native +User Priority." +::= { pBridgeGroups 5 } + +pBridgePriorityGroup OBJECT-GROUP +OBJECTS { +dot1dPortNumTrafficClasses, +dot1dTrafficClass +} +STATUS current +DESCRIPTION +"A collection of objects defining the traffic classes +within a bridge for each evaluated User Priority." +::= { pBridgeGroups 6 } + +pBridgeAccessPriorityGroup OBJECT-GROUP +OBJECTS { +dot1dPortOutboundAccessPriority +} +STATUS current +DESCRIPTION +"A collection of objects defining the media dependent +outbound access level for each priority." +::= { pBridgeGroups 7 } + +pBridgePortGarpGroup OBJECT-GROUP +OBJECTS { +dot1dPortGarpJoinTime, +dot1dPortGarpLeaveTime, +dot1dPortGarpLeaveAllTime +} +STATUS current +DESCRIPTION +"A collection of objects providing port level control +and status information for GARP operation." +::= { pBridgeGroups 8 } + +pBridgePortGmrpGroup OBJECT-GROUP +OBJECTS { +dot1dPortGmrpStatus, +dot1dPortGmrpFailedRegistrations, +dot1dPortGmrpLastPduOrigin +} +STATUS current +DESCRIPTION +"A collection of objects providing port level control +and status information for GMRP operation." +::= { pBridgeGroups 9 } + +pBridgeHCPortGroup OBJECT-GROUP +OBJECTS { +dot1dTpHCPortInFrames, +dot1dTpHCPortOutFrames, +dot1dTpHCPortInDiscards +} +STATUS current +DESCRIPTION +"A collection of objects providing 64-bit statistics +counters for high capacity bridge ports." +::= { pBridgeGroups 10 } + +pBridgePortOverflowGroup OBJECT-GROUP +OBJECTS { +dot1dTpPortInOverflowFrames, +dot1dTpPortOutOverflowFrames, +dot1dTpPortInOverflowDiscards +} +STATUS current +DESCRIPTION +"A collection of objects providing overflow statistics +counters for high capacity bridge ports." +::= { pBridgeGroups 11 } + +-- ------------------------------------------------------------- +-- compliance statements +-- ------------------------------------------------------------- + +pBridgeCompliance MODULE-COMPLIANCE +STATUS current +DESCRIPTION +"The compliance statement for device support of Priority +and Multicast Filtering extended bridging services." + +MODULE +MANDATORY-GROUPS { pBridgeExtCapGroup } + +GROUP pBridgeDeviceGmrpGroup +DESCRIPTION +"This group is mandatory for devices supporting the GMRP +application, defined by IEEE 802.1D Extended Filtering +Services." + +GROUP pBridgeDevicePriorityGroup +DESCRIPTION +"This group is mandatory only for devices supporting +the priority forwarding operations defined by IEEE +802.1D." + +GROUP pBridgeDefaultPriorityGroup +DESCRIPTION +"This group is mandatory only for devices supporting +the priority forwarding operations defined by the +extended bridge services with media types, such as +Ethernet, that do not support native User Priority." + +GROUP pBridgeRegenPriorityGroup +DESCRIPTION +"This group is mandatory only for devices supporting +the priority forwarding operations defined by IEEE 802.1D +and which have interface media types that support +native User Priority e.g. IEEE 802.5." + +GROUP pBridgePriorityGroup +DESCRIPTION +"This group is mandatory only for devices supporting +the priority forwarding operations defined by IEEE 802.1D." + +GROUP pBridgeAccessPriorityGroup +DESCRIPTION +"This group is optional and is relevant only for devices +supporting the priority forwarding operations defined by +IEEE 802.1D and which have interface media types that support +native Access Priority e.g. IEEE 802.5." + +GROUP pBridgePortGarpGroup +DESCRIPTION +"This group is mandatory for devices supporting any +of the GARP applications: e.g. GMRP, defined by the +extended filtering services of 802.1D; or GVRP, +defined by 802.1Q (refer to the Q-BRIDGE-MIB for +conformance statements for GVRP)." + +GROUP pBridgePortGmrpGroup +DESCRIPTION +"This group is mandatory for devices supporting the +GMRP application, as defined by IEEE 802.1D Extended +Filtering Services." + +GROUP pBridgeHCPortGroup +DESCRIPTION +"Support for this group in a device is mandatory for those +bridge ports which map to network interfaces that have the +value of the corresponding instance of ifSpeed +greater than 650,000,000 bits/second." + +GROUP pBridgePortOverflowGroup +DESCRIPTION +"Support for this group in a device is mandatory for those +bridge ports which map to network interfaces that have the +value of the corresponding instance of ifSpeed +greater than 650,000,000 bits/second." + +OBJECT dot1dPortNumTrafficClasses +MIN-ACCESS read-only +DESCRIPTION +"Write access is not required." + +OBJECT dot1dTrafficClass +MIN-ACCESS read-only +DESCRIPTION +"Write access is not required." + +OBJECT dot1dRegenUserPriority +MIN-ACCESS read-only +DESCRIPTION +"Write access is not required." + +::= { pBridgeCompliances 1 } + +END \ No newline at end of file diff --git a/pandora_console/attachment/mibs/PARALLEL-MIB b/pandora_console/attachment/mibs/PARALLEL-MIB new file mode 100644 index 0000000000..592e754461 --- /dev/null +++ b/pandora_console/attachment/mibs/PARALLEL-MIB @@ -0,0 +1,298 @@ +-- Changes to RFC1660 - PARALLEL-MIB +-- Removed unused IMPORT of NOTIFICATION-TYPE +-- dperkins@scruznet.com + + PARALLEL-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + Counter32, Integer32 + FROM SNMPv2-SMI + InterfaceIndex + FROM IF-MIB + transmission + FROM RFC1213-MIB + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF; + + + para MODULE-IDENTITY + LAST-UPDATED "9405261700Z" + ORGANIZATION "IETF Character MIB Working Group" + CONTACT-INFO + " Bob Stewart + Postal: Xyplex, Inc. + 295 Foster Street + Littleton, MA 01460 + + Tel: 508-952-4816 + Fax: 508-952-4887 + E-mail: rlstewart@eng.xyplex.com" + DESCRIPTION + "The MIB module for Parallel-printer-like hardware devices." + ::= { transmission 34 } + + + -- Generic Parallel-printer-like information + + paraNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ports (regardless of their current + state) in the Parallel-printer-like port table." + ::= { para 1 } + + + -- the Parallel-printer-like Port table + + paraPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParaPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port entries. The number of entries is + given by the value of paraNumber." + ::= { para 2 } + + paraPortEntry OBJECT-TYPE + SYNTAX ParaPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Status and parameter values for a port." + INDEX { paraPortIndex } + ::= { paraPortTable 1 } + + ParaPortEntry ::= + SEQUENCE { + paraPortIndex + InterfaceIndex, + paraPortType + INTEGER, + paraPortInSigNumber + Integer32, + paraPortOutSigNumber + Integer32 + } + + paraPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of ifIndex for the port. By convention + and if possible, hardware port numbers map directly + to external connectors. The value for each port must + remain constant at least from one re-initialization + of the network management agent to the next." + ::= { paraPortEntry 1 } + + paraPortType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + centronics(2), + dataproducts(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port's hardware type." + ::= { paraPortEntry 2 } + + paraPortInSigNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input signals for the port in the + input signal table (paraPortInSigTable). The table + contains entries only for those signals the software + can detect and that are useful to observe." + ::= { paraPortEntry 3 } + + paraPortOutSigNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of output signals for the port in the + output signal table (paraPortOutSigTable). The + table contains entries only for those signals the + software can assert and that are useful to observe." + ::= { paraPortEntry 4 } + + + -- Parallel-printer-like Input Signal Table + + paraInSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParaInSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port input control signal entries." + ::= { para 3 } + + paraInSigEntry OBJECT-TYPE + SYNTAX ParaInSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Input control signal status for a hardware port." + INDEX { paraInSigPortIndex, paraInSigName } + ::= { paraInSigTable 1 } + + ParaInSigEntry ::= + SEQUENCE { + paraInSigPortIndex + InterfaceIndex, + paraInSigName + INTEGER, + paraInSigState + INTEGER, + paraInSigChanges + Counter32 + } + + paraInSigPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of paraPortIndex for the port to which + this entry belongs." + ::= { paraInSigEntry 1 } + + paraInSigName OBJECT-TYPE + SYNTAX INTEGER { power(1), online(2), busy(3), + paperout(4), fault(5) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identification of a hardware signal." + ::= { paraInSigEntry 2 } + + paraInSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current signal state." + ::= { paraInSigEntry 3 } + + paraInSigChanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { paraInSigEntry 4 } + + + -- Output Signal Table + + paraOutSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParaOutSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port output control signal entries." + ::= { para 4 } + + paraOutSigEntry OBJECT-TYPE + SYNTAX ParaOutSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Output control signal status for a hardware port." + INDEX { paraOutSigPortIndex, paraOutSigName } + ::= { paraOutSigTable 1 } + + ParaOutSigEntry ::= + SEQUENCE { + paraOutSigPortIndex + InterfaceIndex, + paraOutSigName + INTEGER, + paraOutSigState + INTEGER, + paraOutSigChanges + Counter32 + } + + paraOutSigPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of paraPortIndex for the port to which + this entry belongs." + ::= { paraOutSigEntry 1 } + + paraOutSigName OBJECT-TYPE + SYNTAX INTEGER { power(1), online(2), busy(3), + paperout(4), fault(5) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identification of a hardware signal." + ::= { paraOutSigEntry 2 } + + paraOutSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current signal state." + ::= { paraOutSigEntry 3 } + + paraOutSigChanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { paraOutSigEntry 4 } + + + -- conformance information + + paraConformance OBJECT IDENTIFIER ::= { para 5 } + + paraGroups OBJECT IDENTIFIER ::= { paraConformance 1 } + paraCompliances OBJECT IDENTIFIER ::= { paraConformance 2 } + + + -- compliance statements + + paraCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities + which have Parallel-printer-like hardware + interfaces." + + MODULE -- this module + MANDATORY-GROUPS { paraGroup } + ::= { paraCompliances 1 } + + + -- units of conformance + + paraGroup OBJECT-GROUP + OBJECTS { paraNumber, paraPortIndex, paraPortType, + paraPortInSigNumber, paraPortOutSigNumber, + paraInSigPortIndex, paraInSigName, + paraInSigState, paraInSigChanges, + paraOutSigPortIndex, paraOutSigName, + paraOutSigState, paraOutSigChanges } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to all Parallel-printer-like interfaces." + ::= { paraGroups 1 } + + END diff --git a/pandora_console/attachment/mibs/PPP-LCP-MIB b/pandora_console/attachment/mibs/PPP-LCP-MIB new file mode 100644 index 0000000000..5bc6fb85fd --- /dev/null +++ b/pandora_console/attachment/mibs/PPP-LCP-MIB @@ -0,0 +1,765 @@ +-- Changes for RFC 1471 (PPP LCP MIB) +-- ** No changes needed ** +-- dperkins@scruznet.com + +PPP-LCP-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter + FROM RFC1155-SMI + ifIndex, transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- PPP MIB + + ppp OBJECT IDENTIFIER ::= { transmission 23 } + + pppLcp OBJECT IDENTIFIER ::= { ppp 1 } + + + -- The individual groups within the PPP-LCP-MIB + + pppLink OBJECT IDENTIFIER ::= { pppLcp 1 } + pppLqr OBJECT IDENTIFIER ::= { pppLcp 2 } + pppTests OBJECT IDENTIFIER ::= { pppLcp 3 } + + -- 4.1. PPP Link Group + + -- + -- The PPP Link Group. Implementation of this + -- group is mandatory for all PPP entities. + -- + + -- The following object reflect the values of the option + -- parameters used in the PPP Link Control Protocol + -- pppLinkStatusLocalMRU + -- pppLinkStatusRemoteMRU + -- pppLinkStatusLocalToPeerACCMap + -- pppLinkStatusPeerToLocalACCMap + -- pppLinkStatusLocalToRemoteProtocolCompression + -- pppLinkStatusRemoteToLocalProtocolCompression + -- pppLinkStatusLocalToRemoteACCompression + -- pppLinkStatusRemoteToLocalACCompression + -- pppLinkStatusTransmitFcsSize + -- pppLinkStatusReceiveFcsSize + -- + -- These values are not available until after the PPP Option + -- negotiation has completed, which is indicated by the link + -- reaching the open state (i.e., ifOperStatus is set to + -- up). + -- + -- Therefore, when ifOperStatus is not up + -- the contents of these objects is undefined. The value + -- returned when accessing the objects is an implementation + -- dependent issue. + + pppLinkStatusTable OBJECT-TYPE + SYNTAX SEQUENCE OF PppLinkStatusEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing PPP-link specific variables + for this PPP implementation." + ::= { pppLink 1 } + + pppLinkStatusEntry OBJECT-TYPE + SYNTAX PppLinkStatusEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Management information about a particular PPP + Link." + INDEX { ifIndex } + ::= { pppLinkStatusTable 1 } + + PppLinkStatusEntry ::= SEQUENCE { + pppLinkStatusPhysicalIndex + INTEGER, + pppLinkStatusBadAddresses + Counter, + pppLinkStatusBadControls + Counter, + pppLinkStatusPacketTooLongs + Counter, + pppLinkStatusBadFCSs + Counter, + pppLinkStatusLocalMRU + INTEGER, + pppLinkStatusRemoteMRU + INTEGER, + pppLinkStatusLocalToPeerACCMap + OCTET STRING, + pppLinkStatusPeerToLocalACCMap + OCTET STRING, + pppLinkStatusLocalToRemoteProtocolCompression + INTEGER, + pppLinkStatusRemoteToLocalProtocolCompression + INTEGER, + pppLinkStatusLocalToRemoteACCompression + INTEGER, + pppLinkStatusRemoteToLocalACCompression + INTEGER, + pppLinkStatusTransmitFcsSize + INTEGER, + pppLinkStatusReceiveFcsSize + INTEGER + } + + pppLinkStatusPhysicalIndex OBJECT-TYPE + SYNTAX INTEGER(0..2147483647) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of ifIndex that identifies the + lower-level interface over which this PPP Link + is operating. This interface would usually be + an HDLC or RS-232 type of interface. If there + is no lower-layer interface element, or there + is no ifEntry for the element, or the element + can not be identified, then the value of this + object is 0. For example, suppose that PPP is + operating over a serial port. This would use + two entries in the ifTable. The PPP could be + running over `interface' number 123 and the + serial port could be running over `interface' + number 987. Therefore, ifSpecific.123 would + contain the OBJECT IDENTIFIER ppp + pppLinkStatusPhysicalIndex.123 would contain + 987, and ifSpecific.987 would contain the + OBJECT IDENTIFIER for the serial-port's media- + specific MIB." + ::= { pppLinkStatusEntry 1 } + + pppLinkStatusBadAddresses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets received with an + incorrect Address Field. This counter is a + component of the ifInErrors variable that is + associated with the interface that represents + this PPP Link." + REFERENCE + "Section 3.1, Address Field, of RFC1331." + ::= { pppLinkStatusEntry 2 } + + pppLinkStatusBadControls OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets received on this link + with an incorrect Control Field. This counter + is a component of the ifInErrors variable that + is associated with the interface that + represents this PPP Link." + REFERENCE + "Section 3.1, Control Field, of RFC1331." + ::= { pppLinkStatusEntry 3 } + + pppLinkStatusPacketTooLongs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received packets that have been + discarded because their length exceeded the + MRU. This counter is a component of the + ifInErrors variable that is associated with the + interface that represents this PPP Link. NOTE, + packets which are longer than the MRU but which + are successfully received and processed are NOT + included in this count." + ::= { pppLinkStatusEntry 4 } + + pppLinkStatusBadFCSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received packets that have been + discarded due to having an incorrect FCS. This + counter is a component of the ifInErrors + variable that is associated with the interface + that represents this PPP Link." + ::= { pppLinkStatusEntry 5 } + + pppLinkStatusLocalMRU OBJECT-TYPE + SYNTAX INTEGER(1..2147483648) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current value of the MRU for the local PPP + Entity. This value is the MRU that the remote + entity is using when sending packets to the + local PPP entity. The value of this object is + meaningful only when the link has reached the + open state (ifOperStatus is up)." + ::= { pppLinkStatusEntry 6 } + + pppLinkStatusRemoteMRU OBJECT-TYPE + SYNTAX INTEGER(1..2147483648) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current value of the MRU for the remote + PPP Entity. This value is the MRU that the + local entity is using when sending packets to + the remote PPP entity. The value of this object + is meaningful only when the link has reached + the open state (ifOperStatus is up)." + ::= { pppLinkStatusEntry 7 } + + pppLinkStatusLocalToPeerACCMap OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current value of the ACC Map used for + sending packets from the local PPP entity to + the remote PPP entity. The value of this object + is meaningful only when the link has reached + the open state (ifOperStatus is up)." + ::= { pppLinkStatusEntry 8 } + + pppLinkStatusPeerToLocalACCMap OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (4)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ACC Map used by the remote PPP entity when + transmitting packets to the local PPP entity. + The value of this object is meaningful only + when the link has reached the open state + (ifOperStatus is up)." + ::= { pppLinkStatusEntry 9 } + + pppLinkStatusLocalToRemoteProtocolCompression + OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the local PPP entity will + use Protocol Compression when transmitting + packets to the remote PPP entity. The value of + this object is meaningful only when the link + has reached the open state (ifOperStatus is + up)." + ::= { pppLinkStatusEntry 10 } + + pppLinkStatusRemoteToLocalProtocolCompression + OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the remote PPP entity will + use Protocol Compression when transmitting + packets to the local PPP entity. The value of + this object is meaningful only when the link + has reached the open state (ifOperStatus is + up)." + ::= { pppLinkStatusEntry 11 } + + pppLinkStatusLocalToRemoteACCompression OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the local PPP entity will + use Address and Control Compression when + transmitting packets to the remote PPP entity. + The value of this object is meaningful only + when the link has reached the open state + (ifOperStatus is up)." + ::= { pppLinkStatusEntry 12 } + + pppLinkStatusRemoteToLocalACCompression OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the remote PPP entity will + use Address and Control Compression when + transmitting packets to the local PPP entity. + The value of this object is meaningful only + when the link has reached the open state + (ifOperStatus is up)." + ::= { pppLinkStatusEntry 13 } + + pppLinkStatusTransmitFcsSize OBJECT-TYPE + SYNTAX INTEGER (0..128) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the Frame Check Sequence (FCS) in + bits that the local node will generate when + sending packets to the remote node. The value + of this object is meaningful only when the link + has reached the open state (ifOperStatus is + up)." + ::= { pppLinkStatusEntry 14 } + + pppLinkStatusReceiveFcsSize OBJECT-TYPE + SYNTAX INTEGER (0..128) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the Frame Check Sequence (FCS) in + bits that the remote node will generate when + sending packets to the local node. The value of + this object is meaningful only when the link + has reached the open state (ifOperStatus is + up)." + ::= { pppLinkStatusEntry 15 } + + pppLinkConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF PppLinkConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing the LCP configuration + parameters for this PPP Link. These variables + represent the initial configuration of the PPP + Link. The actual values of the parameters may + be changed when the link is brought up via the + LCP options negotiation mechanism." + ::= { pppLink 2 } + + pppLinkConfigEntry OBJECT-TYPE + SYNTAX PppLinkConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Configuration information about a particular + PPP Link." + INDEX { ifIndex } + ::= { pppLinkConfigTable 1 } + + PppLinkConfigEntry ::= SEQUENCE { + pppLinkConfigInitialMRU + INTEGER, + pppLinkConfigReceiveACCMap + OCTET STRING, + pppLinkConfigTransmitACCMap + OCTET STRING, + pppLinkConfigMagicNumber + INTEGER, + pppLinkConfigFcsSize + INTEGER + } + + pppLinkConfigInitialMRU OBJECT-TYPE + SYNTAX INTEGER(0..2147483647) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The initial Maximum Receive Unit (MRU) that + the local PPP entity will advertise to the + remote entity. If the value of this variable is + 0 then the local PPP entity will not advertise + any MRU to the remote entity and the default + MRU will be assumed. Changing this object will + have effect when the link is next restarted." + REFERENCE + "Section 7.2, Maximum Receive Unit of RFC1331." + DEFVAL { 1500 } + ::= { pppLinkConfigEntry 1 } + + pppLinkConfigReceiveACCMap OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (4)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Asynchronous-Control-Character-Map (ACC) + that the local PPP entity requires for use on + its receive side. In effect, this is the ACC + Map that is required in order to ensure that + the local modem will successfully receive all + characters. The actual ACC map used on the + receive side of the link will be a combination + of the local node's pppLinkConfigReceiveACCMap + and the remote node's + pppLinkConfigTransmitACCMap. Changing this + object will have effect when the link is next + restarted." + REFERENCE + "Section 7.3, page 4, Async-Control-Character- + Map of RFC1331." + DEFVAL { 'ffffffff'h } + ::= { pppLinkConfigEntry 2 } + + pppLinkConfigTransmitACCMap OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (4)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Asynchronous-Control-Character-Map (ACC) + that the local PPP entity requires for use on + its transmit side. In effect, this is the ACC + Map that is required in order to ensure that + all characters can be successfully transmitted + through the local modem. The actual ACC map + used on the transmit side of the link will be a + combination of the local node's + pppLinkConfigTransmitACCMap and the remote + node's pppLinkConfigReceiveACCMap. Changing + this object will have effect when the link is + next restarted." + REFERENCE + "Section 7.3, page 4, Async-Control-Character- + Map of RFC1331." + DEFVAL { 'ffffffff'h } + ::= { pppLinkConfigEntry 3 } + + pppLinkConfigMagicNumber OBJECT-TYPE + SYNTAX INTEGER {false (1), true (2)} + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If true(2) then the local node will attempt to + perform Magic Number negotiation with the + remote node. If false(1) then this negotiation + is not performed. In any event, the local node + will comply with any magic number negotiations + attempted by the remote node, per the PPP + specification. Changing this object will have + effect when the link is next restarted." + REFERENCE + "Section 7.6, Magic Number, of RFC1331." + DEFVAL { false } + ::= { pppLinkConfigEntry 4 } + + pppLinkConfigFcsSize OBJECT-TYPE + SYNTAX INTEGER (0..128) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The size of the FCS, in bits, the local node + will attempt to negotiate for use with the + remote node. Regardless of the value of this + object, the local node will comply with any FCS + size negotiations initiated by the remote node, + per the PPP specification. Changing this object + will have effect when the link is next + restarted." + DEFVAL { 16 } + ::= { pppLinkConfigEntry 5 } + + -- 4.2. PPP LQR Group + + -- + -- The PPP LQR Group. + -- Implementation of this group is mandatory for all + -- PPP implementations that implement LQR. + -- + + pppLqrTable OBJECT-TYPE + SYNTAX SEQUENCE OF PppLqrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table containing the LQR parameters and + statistics for the local PPP entity." + ::= { pppLqr 1 } + + pppLqrEntry OBJECT-TYPE + SYNTAX PppLqrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "LQR information for a particular PPP link. A + PPP link will have an entry in this table if + and only if LQR Quality Monitoring has been + successfully negotiated for said link." + INDEX { ifIndex } + ::= { pppLqrTable 1 } + + PppLqrEntry ::= SEQUENCE { + pppLqrQuality + INTEGER, + pppLqrInGoodOctets + Counter, + pppLqrLocalPeriod + INTEGER, + pppLqrRemotePeriod + INTEGER, + pppLqrOutLQRs + Counter, + pppLqrInLQRs + Counter + } + + pppLqrQuality OBJECT-TYPE + SYNTAX INTEGER { + good(1), + bad(2), + not-determined(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current quality of the link as declared by + the local PPP entity's Link-Quality Management + modules. No effort is made to define good or + bad, nor the policy used to determine it. The + not-determined value indicates that the entity + does not actually evaluate the link's quality. + This value is used to disambiguate the + `determined to be good' case from the `no + determination made and presumed to be good' + case." + ::= { pppLqrEntry 1 } + + pppLqrInGoodOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LQR InGoodOctets counter for this link." + REFERENCE + "Section 2.2, Counters, of RFC1333." + ::= { pppLqrEntry 2 } + + pppLqrLocalPeriod OBJECT-TYPE + SYNTAX INTEGER(1..2147483648) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LQR reporting period, in hundredths of a + second that is in effect for the local PPP + entity." + REFERENCE + "Section 2.5, Configuration Option Format, of + RFC1333." + ::= { pppLqrEntry 3 } + + pppLqrRemotePeriod OBJECT-TYPE + SYNTAX INTEGER(1..2147483648) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The LQR reporting period, in hundredths of a + second, that is in effect for the remote PPP + entity." + REFERENCE + "Section 2.5, Configuration Option Format, of + RFC1333." + ::= { pppLqrEntry 4 } + + pppLqrOutLQRs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the OutLQRs counter on the local + node for the link identified by ifIndex." + REFERENCE + "Section 2.2, Counters, of RFC1333." + ::= { pppLqrEntry 5 } + + pppLqrInLQRs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the InLQRs counter on the local + node for the link identified by ifIndex." + REFERENCE + "Section 2.2, Counters, of RFC1333." + ::= { pppLqrEntry 6 } + + -- + -- The PPP LQR Configuration table. + -- + + pppLqrConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF PppLqrConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table containing the LQR Configuration + parameters for the local PPP entity." + ::= { pppLqr 2 } + + pppLqrConfigEntry OBJECT-TYPE + SYNTAX PppLqrConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "LQR configuration information for a particular + PPP link." + INDEX { ifIndex } + ::= { pppLqrConfigTable 1 } + + PppLqrConfigEntry ::= SEQUENCE { + pppLqrConfigPeriod + INTEGER, + pppLqrConfigStatus + INTEGER + } + + pppLqrConfigPeriod OBJECT-TYPE + SYNTAX INTEGER(0..2147483647) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The LQR Reporting Period that the local PPP + entity will attempt to negotiate with the + remote entity, in units of hundredths of a + second. Changing this object will have effect + when the link is next restarted." + REFERENCE + "Section 2.5, Configuration Option Format, of + RFC1333." + DEFVAL { 0 } + ::= { pppLqrConfigEntry 1 } + + pppLqrConfigStatus OBJECT-TYPE + SYNTAX INTEGER {disabled (1), enabled (2)} + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled(2) then the local node will attempt + to perform LQR negotiation with the remote + node. If disabled(1) then this negotiation is + not performed. In any event, the local node + will comply with any magic number negotiations + attempted by the remote node, per the PPP + specification. Changing this object will have + effect when the link is next restarted. + Setting this object to the value disabled(1) + has the effect of invalidating the + corresponding entry in the pppLqrConfigTable + object. It is an implementation-specific matter + as to whether the agent removes an invalidated + entry from the table. Accordingly, management + stations must be prepared to receive tabular + information from agents that corresponds to + entries not currently in use." + REFERENCE + "Section 7.6, Magic Number, of RFC1331." + DEFVAL { enabled } + ::= { pppLqrConfigEntry 2 } + + -- 4.3. PPP LQR Extensions Group + + -- + -- The PPP LQR Extensions Group. + -- Implementation of this group is optional. + -- + -- The intent of this group is to allow external + -- implementation of the policy mechanisms that + -- are used to declare a link to be "bad" or not. + -- + -- It is not practical to examine the MIB objects + -- which are used to generate LQR packets since + -- LQR policies tend to require synchronization of + -- the values of all data used to determine Link + -- Quality; i.e. the values of the relevant counters + -- must all be taken at the same instant in time. + -- + + pppLqrExtnsTable OBJECT-TYPE + SYNTAX SEQUENCE OF PppLqrExtnsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table containing additional LQR information + for the local PPP entity." + ::= { pppLqr 3 } + + pppLqrExtnsEntry OBJECT-TYPE + SYNTAX PppLqrExtnsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Extended LQR information for a particular PPP + link. Assuming that this group has been + implemented, a PPP link will have an entry in + this table if and only if LQR Quality + Monitoring has been successfully negotiated for + said link." + INDEX { ifIndex } + ::= { pppLqrExtnsTable 1 } + + PppLqrExtnsEntry ::= SEQUENCE { + pppLqrExtnsLastReceivedLqrPacket + OCTET STRING(SIZE(68)) + } + + pppLqrExtnsLastReceivedLqrPacket OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(68)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object contains the most recently + received LQR packet. The format of the packet + is as described in the LQM Protocol + specificiation. All fields of the packet, + including the `save' fields, are stored in this + object. + + The LQR packet is stored in network byte order. + The LAP-B and PPP headers are not stored in + this object; the first four octets of this + variable contain the Magic-Number field, the + second four octets contain the LastOutLQRs + field and so on. The last four octets of this + object contain the SaveInOctets field of the + LQR packet." + REFERENCE + "Section 2.6, Packet Format, of RFC1333" + ::= { pppLqrExtnsEntry 1 } + + -- 4.4. PPP Tests + + -- The extensions to the interface table in RFC1229 define a + -- table through which the network manager can instruct the + -- managed object to perform various tests of the interface. This + -- is the ifExtnsTestTable. + + -- The PPP MIB defines two such tests. + + -- 4.4.1. PPP Echo Test + + -- The PPP Echo Test is defined as + + pppEchoTest OBJECT IDENTIFIER ::= { pppTests 1 } + + -- Invoking this test causes a PPP Echo Packet to be sent on the + -- line. ifExtnsTestResult returns success(2) if the echo + -- response came back properly. It returns failed(7) if the + -- response did not properly return. The definition of "proper" + -- in this context is left to the discretion of the implementor. + + -- 4.4.2. PPP Discard Test + + -- The PPP Discard Test is defined as + + pppDiscardTest OBJECT IDENTIFIER ::= { pppTests 2 } + + -- Invoking this test causes a PPP Discard Packet to be sent on + -- the line. ifExtnsTestResult returns success(2) if the discard + -- packet was successfully transmitted and failed(7) if an error + -- was detected on transmission. The definition of "transmission + -- error" in this context is left to the discretion of the + -- implementor. + +END diff --git a/pandora_console/attachment/mibs/Printer-MIB b/pandora_console/attachment/mibs/Printer-MIB new file mode 100644 index 0000000000..0759d3484d --- /dev/null +++ b/pandora_console/attachment/mibs/Printer-MIB @@ -0,0 +1,3664 @@ +Printer-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, experimental, Counter32, Integer32, + TimeTicks, NOTIFICATION-TYPE, OBJECT-IDENTITY FROM SNMPv2-SMI + TEXTUAL-CONVENTION FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF + hrDeviceIndex, hrStorageIndex FROM HOST-RESOURCES-MIB; + +printmib MODULE-IDENTITY + LAST-UPDATED "9411250000Z" + ORGANIZATION "IETF Printer MIB Working Group" + CONTACT-INFO + " Steven Waldbusser + Postal: Carnegie Mellon University + 4910 Forbes Ave + Pittsburgh, PA, 15213 + + Tel: 412-268-6628 + Fax: 412-268-4987 + E-mail: waldbusser@cmu.edu" + DESCRIPTION + "The MIB module for management of printers." + ::= { mib-2 43 } + +-- Textual conventions for this MIB module + +MediaUnit ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Units of measure for media dimensions." + -- This is a type 1 enumeration. + SYNTAX INTEGER { + tenThousandthsOfInches(3), -- .0001 + micrometers(4) + + } + +CapacityUnit ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Units of measure for media capacity." + -- This is a type 1 enumeration. + SYNTAX INTEGER { + tenThousandthsOfInches(3), -- .0001 + micrometers(4), + sheets(8), + feet(16), + meters(17) + } + +SubUnitStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Status of a printer sub-unit. + + The SubUnitStatus is an integer that is the sum of 5 + distinct values, Availability, Non-Critical, Critical, + On-line, and Transitioning. These values are: + + Availability value + + Available and Idle 0 000'b + Available and Standby 2 010'b + Available and Active 4 100'b + Available and Busy 6 110'b + Unavailable and OnRequest 1 001'b + Unavailable because Broken 3 011'b + Unknown 5 101'b + + Non-Critical + + No Non-Critical Alerts 0 + Non-Critical Alerts 8 + + Critical + + No Critical Alerts 0 + Critical Alerts 16 + + On-Line + + Intended state is On-Line 0 + Intended state is Off-Line 32 + + Transitioning + + At intended state 0 + Transitioning to intended state 64 + " + + SYNTAX INTEGER (0..126) + +PresentOnOff ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Presence and configuration of a device or feature." + -- This is a type 1 enumeration. + SYNTAX INTEGER { + other(1), + on(3), + off(4), + notPresent(5) + } + + CodedCharSet ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A coded character set value that specifies both a set of + characters that may be used and an encoding (as one or more + octets) that is used to represent the characters in the + set. These values are to be used to identify the encoding + employed for strings in the MIB where this is not fixed by + the MIB. + + Some objects that allow a choice of coded character set + are: the prtLocalizationCharacterSet object in the + LocalizationTable and prtInterpreterDefaultCharSetIn. + The prtGeneralCurrentLocalization and prtConsoleLocalization + objects in turn contain the index in the LocalizationTable + of the current localization (country, language, and coded + character set) of the `description' objects and the console, + respectively. + + The space of the coded character set enumeration has been + divide into three regions. The first region (3-999) consists + of coded character sets that have been standardized by some + standard setting organization. This region is intended for + standards that do not have subset implementations. The + second region (1000-1999) is for the Unicode and ISO/IEC 10646 + coded character sets together with a specification of a (set + of) sub-repetoires that may occur. The third region (>1999) + is intended for vendor specific coded character sets. + + NOTE: Unicode and ISO 10646 character coded data may be + + processed and stored in either Big Endian (most significant + octet first) or Little Endian (least significant octet + first) order. Intel x86, VAX, and Alpha/AXP architectures are + examples of Little Endian processor architectures. + Furthermore, in environments where either order may occur, + so-called Unicode BYTE ORDER MARK (BOM) character (which is + ISO 10646 ZERO WIDTH NO BREAK SPACE), coded as FEFF in two + octets and 0000FEFF in four octets is used at the beginning + of the data as a signature to indicate the order of the + following data (See ISO 10646 Annex F). Thus either + ordering and BOM may occur in print data streams sent to the + interpreter. However, ISO 8824/8825 (ASN.1/BER) used by + SNMP is quite clear that Big Endian order shall be used and + BOM shall NOT be used in transmission in the protocol. + Transmitting Unicode in Big Endian order in SNMP should + not prove to be a hardship for Little Endian machines, + since SNMP ASN.1/BER requires integers to be transmitted + in Big Endian order as well. So SNMP implementations on + Little Endian machines are already reversing the order of + integers to make them Big Endian for transmission via + SNMP. Also Unicode characters are usually treated as + two-octet integers, not short text strings, so that it will + be straightforward for Little Endian machines to reverse the + order of Unicode character octets as well before + transmitting them and after receiving them via the SNMP + protocol. + + Where a given coded character set may be known by more than + one name, the most commonly known name is used as the name + of the enumeration and other names are shown in the + comments. The comments also indicate where to find detailed + information on the coded character set and briefly + characterize its relationship to other similar coded + character sets. + + The current list of character sets and their enumerated + values used to reference them is contained in the IANA + Character Set registry. The enum value is indicated by + the MIBenum entry in the registry. The enum symbol is + indicated by the Alias that starts with `cs' for character + set. + + The IANA character sets registry is available via + anonymous ftp. + + The ftp server is ftp.isi.edu. + The subdirectory is /in-notes/iana/assignments/. + + The file name is character-sets. + + To add a character set to the IANA Registry: + + 1. Format an entry like those in the current list, + omitting the MIBenum value. + 2. Send the entry with a request to add the entry + to the character set list to iana@ISI.EDU. + 3. The IANA will supply a unique MIBenum value + and update the list." + + -- This is a type 3 enumeration. + + SYNTAX INTEGER { + other(1) -- used if the designated coded + -- character set is not currently in + -- the enumeration + + -- See IANA Registry for standard character sets in the + -- MIBenum range of 3-999. + + -- See IANA Registry for Unicode and vendor-supplied + -- combinations of ISO collections and character sets based + -- on Unicode in the MIBenum range of 1000-1999. + -- See IANA Registry for vendor developed character sets + -- in the MIBenum range of 2000-xxxx. + } + +-- The General Printer Group +-- +-- The general printer sub-unit is responsible for the overall control +-- and status of the printer. There is exactly one general printer +-- sub-unit in a printer. +-- +-- Implementation of every object in this group is mandatory. + +prtGeneral OBJECT IDENTIFIER ::= { printmib 5 } + +prtGeneralTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtGeneralEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of general information per printer. + Objects in this table are defined in various + places in the MIB, nearby the groups to + which they apply. They are all defined + + here to minimize the number of tables that would + + otherwise need to exist." + ::= { prtGeneral 1 } + +prtGeneralEntry OBJECT-TYPE + SYNTAX PrtGeneralEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry exists in this table for each + device entry in the hostmib device table who's type + is `printer'" + INDEX { hrDeviceIndex } + ::= { prtGeneralTable 1 } + +PrtGeneralEntry ::= SEQUENCE { + -- Note that not all of the objects in this sequence are in the + -- general printer group. + prtGeneralConfigChanges Counter32, + prtGeneralCurrentLocalization Integer32, + prtGeneralReset INTEGER, + prtGeneralCurrentOperator OCTET STRING, + prtGeneralServicePerson OCTET STRING, + prtInputDefaultIndex Integer32, + prtOutputDefaultIndex Integer32, + prtMarkerDefaultIndex Integer32, + prtMediaPathDefaultIndex Integer32, + prtConsoleLocalization Integer32, + prtConsoleNumberOfDisplayLines Integer32, + prtConsoleNumberOfDisplayChars Integer32, + prtConsoleDisable INTEGER +} + +prtGeneralConfigChanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Counts configuration changes that change the capabilities of + a printer, such as the addition/deletion of input/output bins, + the addition/deletion of interpreters, or changes in media + size. Such changes will often affect the capability of the + printer to service certain types of print jobs. + + Management applications may cache infrequently changed + configuration information about sub-units on the printer. + This object should be incremented whenever the agent wishes + such applications to invalidate that cache and re-download + + all of this configuration information, thereby signalling a + + change in the printer's configuration. + + For example, if an input tray that contained paper of + different dimensions was added, this counter would be + incremented. + + As an additional example, this counter would not be + incremented when an input tray is removed or the level of an + input device changes." + ::= { prtGeneralEntry 1 } + +prtGeneralCurrentLocalization OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of the prtLocalizationIndex corresponding to the + current language, country, and character set to be used for + localized string values that are identified as being dependent + on the value of this object. Note that this object does not + apply to localized strings in the prtConsole group or any + object that is not identified as above." + ::= { prtGeneralEntry 2 } + +prtGeneralReset OBJECT-TYPE + -- This value is a type 3 enumeration + SYNTAX INTEGER { + notResetting(3), + powerCycleReset(4), -- Cold Start + resetToNVRAM(5), -- Warm Start + resetToFactoryDefaults(6) -- Reset contents of + -- NVRAM to factory defaults + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting this value to `powerCycleReset', `resetToNVRAM', or + `resetToFactoryDefaults' will result in the resetting of the + printer. When read, this object will always have the value + `notResetting(3)', and a SET of the value `notResetting' shall + have no effect on the printer. Some of the defined values are + optional. However, every implementation must support at least + the values `notResetting' and resetToNVRAM'." + ::= { prtGeneralEntry 3 } + +-- The Cover Table + +-- +-- The cover portion of the General print sub-unit describes the +-- covers and interlocks of the printer. The Cover Table has an +-- entry for each cover and interlock. + +prtCover OBJECT IDENTIFIER ::= { printmib 6 } + +prtCoverTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtCoverEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of the covers and interlocks of the printer." + ::= { prtCover 1 } + +prtCoverEntry OBJECT-TYPE + SYNTAX PrtCoverEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about a cover or interlock. + Entries may exist in the table for each device + index whose device type is `printer'." + INDEX { hrDeviceIndex, prtCoverIndex } + ::= { prtCoverTable 1 } + +PrtCoverEntry ::= SEQUENCE { + prtCoverIndex Integer32, + prtCoverDescription OCTET STRING, + prtCoverStatus INTEGER +} + +prtCoverIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this Cover + sub-unit. Although these values may change due to a major + reconfiguration of the device (e.g. the addition of new + cover sub-units to the printer), values are expected to + remain stable across successive printer power cycles." + ::= { prtCoverEntry 1 } + +prtCoverDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + + STATUS current + + DESCRIPTION + "The manufacturer provided cover sub-mechanism name in the + localization specified by prtGeneralCurrentLocalization." + ::= { prtCoverEntry 2 } + +prtCoverStatus OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + doorOpen(3), + doorClosed(4), + interlockOpen(5), + interlockClosed(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of this cover sub-unit." + ::= { prtCoverEntry 3 } + +-- The Localization Table +-- + +-- The localization portion of the General printer sub-unit is + +-- responsible for identifying the natural language, country, and +-- character set in which character strings are expressed. There +-- may be one or more localizations supported per printer. The +-- available localizations are represented by the Localization table. + +prtLocalization OBJECT IDENTIFIER ::= { printmib 7 } + +prtLocalizationTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtLocalizationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The available localizations in this printer." + ::= { prtLocalization 1 } + +prtLocalizationEntry OBJECT-TYPE + SYNTAX PrtLocalizationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A description of a localization. + + Entries may exist in the table for each device + + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtLocalizationIndex } + ::= { prtLocalizationTable 1 } + +PrtLocalizationEntry ::= SEQUENCE { + prtLocalizationIndex Integer32, + prtLocalizationLanguage OCTET STRING, + prtLocalizationCountry OCTET STRING, + prtLocalizationCharacterSet CodedCharSet +} + +prtLocalizationIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this + localization entry. Although these values may change due to a + major reconfiguration of the device (e.g., the addition of new + Cover sub-units to the printer), values are expected to remain + stable across successive printer power cycles." + ::= { prtLocalizationEntry 1 } + +prtLocalizationLanguage OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A two character language code from ISO 639. Examples EN, GB, + CA, FR, DE." + ::= { prtLocalizationEntry 2 } + +prtLocalizationCountry OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A two character country code from ISO 3166, a blank string + (two space characters) shall indicate that the country is + not defined. Examples: US, FR, DE, ..." + ::= { prtLocalizationEntry 3 } + +prtLocalizationCharacterSet OBJECT-TYPE + SYNTAX CodedCharSet + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + "The coded character set used for this localization." + + ::= { prtLocalizationEntry 4 } + +-- The System Resources Tables + +-- The Printer MIB makes use of the Host MIB to +-- define system resources by referencing the storage +-- and device groups of the print group. In order to +-- determine, amongst multiple printers serviced by +-- one agent, which printer owns a particular +-- resource, the prtStorageRef and prtDeviceRef tables +-- associate particular storage and device entries to +-- printers. + +prtStorageRefTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtStorageRefEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtGeneral 2 } + +prtStorageRefEntry OBJECT-TYPE + SYNTAX PrtStorageRefEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table will have an entry for each entry in + the host MIB storage table that represents storage associated + with a printer managed by this agent." + INDEX { hrStorageIndex, prtStorageRefSeqNumber } + ::= { prtStorageRefTable 1 } + +PrtStorageRefEntry ::= SEQUENCE { + prtStorageRefSeqNumber Integer32, + prtStorageRefIndex Integer32 +} + +prtStorageRefSeqNumber OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This value will be unique amongst all entries with a common + value of hrStorageIndex. + + This object allows a storage entry to point to the multiple + printer devices with which it is associated." + + ::= { prtStorageRefEntry 1 } + +prtStorageRefIndex OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the hrDeviceIndex of the printer device that this + storageEntry is associated with." + ::= { prtStorageRefEntry 2 } + +prtDeviceRefTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtDeviceRefEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtGeneral 3 } + +prtDeviceRefEntry OBJECT-TYPE + SYNTAX PrtDeviceRefEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table will have an entry for each entry in + the host MIB device table that represents a device associated + with a printer managed by this agent." + INDEX { hrDeviceIndex, prtDeviceRefSeqNumber } + ::= { prtDeviceRefTable 1 } + +PrtDeviceRefEntry ::= SEQUENCE { + prtDeviceRefSeqNumber Integer32, + prtDeviceRefIndex Integer32 +} + +prtDeviceRefSeqNumber OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This value will be unique amongst all entries with a common + value of hrDeviceIndex. + + This object allows a device entry to point to the multiple + printer devices with which it is associated." + ::= { prtDeviceRefEntry 1 } + +prtDeviceRefIndex OBJECT-TYPE + + SYNTAX Integer32 (0..65535) + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of the hrDeviceIndex of the printer device that this + deviceEntry is associated with." + ::= { prtDeviceRefEntry 2 } + +-- The Responsible Party group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtGeneralCurrentOperator OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..127)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the current human operator responsible for + operating this printer. It is suggested that this string + include information that would enable other humans to reach + the operator, such as a phone number." + ::= { prtGeneralEntry 4 } + +prtGeneralServicePerson OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..127)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the last human responsible for servicing + this printer. It is suggested that this string + include information that would enable other humans to reach + the service person, such as a phone number." + ::= { prtGeneralEntry 5 } + +-- The Input Group +-- +-- Input sub-units are managed as a tabular, indexed collection of +-- possible devices capable of providing media for input to the printing +-- process. Input sub-units typically have a location, a type, an +-- identifier, a set of constraints on possible media sizes and +-- potentially other media characteristics, and may be capable of +-- indicating current status or capacity. +-- +-- Implementation of every object in this group is mandatory. + +prtInput OBJECT IDENTIFIER ::= { printmib 8 } + +prtInputDefaultIndex OBJECT-TYPE + + SYNTAX Integer32 (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of prtInputIndex corresponding to the default input + sub-unit: that is, this object selects the default source of + input media." + ::= { prtGeneralEntry 6 } + +prtInputTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtInputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of the devices capable of providing media for input + to the printing process." + ::= { prtInput 2 } + +prtInputEntry OBJECT-TYPE + SYNTAX PrtInputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Attributes of a device capable of providing media for input + to the printing process. + + Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtInputIndex } + ::= { prtInputTable 1 } + +PrtInputEntry ::= SEQUENCE { + prtInputIndex Integer32, + prtInputType INTEGER, + prtInputDimUnit MediaUnit, + prtInputMediaDimFeedDirDeclared Integer32, + prtInputMediaDimXFeedDirDeclared Integer32, + prtInputMediaDimFeedDirChosen Integer32, + prtInputMediaDimXFeedDirChosen Integer32, + prtInputCapacityUnit CapacityUnit, + prtInputMaxCapacity Integer32, + prtInputCurrentLevel Integer32, + prtInputStatus SubUnitStatus, + prtInputMediaName OCTET STRING, + prtInputName OCTET STRING, + prtInputVendorName OCTET STRING, + prtInputModel OCTET STRING, + + prtInputVersion OCTET STRING, + + prtInputSerialNumber OCTET STRING, + prtInputDescription OCTET STRING, + prtInputSecurity PresentOnOff, + prtInputMediaWeight Integer32, + prtInputMediaType OCTET STRING, + prtInputMediaColor OCTET STRING, + prtInputMediaFormParts Integer32 +} + +prtInputIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this input + sub-unit. Although these values may change due to a major + reconfiguration of the device (e.g. the addition of new + input sub-units to the printer), values are expected to + remain stable across successive printer power cycles." + ::= { prtInputEntry 1 } + +prtInputType OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + sheetFeedAutoRemovableTray(3), + sheetFeedAutoNonRemovableTray(4), + sheetFeedManual(5), + continuousRoll(6), + continuousFanFold(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of technology (discriminated primarily according to + feeder mechanism type) employed by the input sub-unit. Note, + the Optional Input Class provides for a descriptor field to + further qualify the other choice." + ::= { prtInputEntry 2 } + +prtInputDimUnit OBJECT-TYPE + SYNTAX MediaUnit + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The unit of measurement for use calculating and relaying + + dimensional values for this input sub-unit." + + ::= { prtInputEntry 3 } + +prtInputMediaDimFeedDirDeclared OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object provides the value of the declared dimension, in + the feed direction, of the media that is (or, if empty, was or + will be) in this input sub-unit. The feed direction is the + direction in which the media is fed on this sub-unit. This + dimension is measured in input sub-unit dimensional units + (prtInputDimUnit). If this input sub-unit can reliably sense + this value, the value is sensed by the printer and may not be + changed by management requests. Otherwise, the value may be + changed. The value (-1) means other and specifically means + that this sub-unit places no restriction on this parameter. + The value (-2) indicates unknown." + ::= { prtInputEntry 4 } + +prtInputMediaDimXFeedDirDeclared OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object provides the value of the declared dimension, in + the cross feed direction, of the media that is (or, if empty, + was or will be) in this input sub-unit. The cross feed + direction is ninety degrees relative to the feed direction + associated with this sub-unit. This dimension is measured in + input sub-unit dimensional units (prtInputDimUnit). If this + input sub-unit can reliably sense this value, the value is + sensed by the printer and may not be changed by management + requests. Otherwise, the value may be changed. The value (-1) + means other and specifically means that this sub-unit places + no restriction on this parameter. The value (-2) indicates + unknown." + ::= { prtInputEntry 5 } + +prtInputMediaDimFeedDirChosen OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The printer will act as if media of the chosen dimension (in + the feed direction) is present in this input source. Note + that this value will be used even if the input tray is empty. + + Feed dimension measurements + + are taken parallel relative to the feed direction + associated with that sub-unit and are in input sub-unit + dimensional units (DimUnit). If the printer supports the + declared dimension, the granted dimension is the same as + the declared dimension. If not, the granted dimension is + set to the closest dimension that the printer supports + when the declared dimension is set. The value (-1) means + other and specifically indicates that this sub-unit + places no restriction on this parameter. The value (-2) + indicates unknown." + ::= { prtInputEntry 6 } + +prtInputMediaDimXFeedDirChosen OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The printer will act as if media of the chosen dimension (in + the cross feed direction) is present in this input source. + Note that this value will be used even if the input tray is + empty. The cross feed direction is ninety degrees relative + to the feed direction associated with this sub-unit. This + dimension is measured in input sub-unit dimensional units + (DimUnit). If the printer supports the declared + dimension, the granted dimension is the same as the + declared dimension. If not, the granted dimension is set + to the closest dimension that the printer supports when + the declared dimension is set. The value (-1) means other + and specifically indicates that this sub-unit places no + restriction on this parameter. The value (-2) indicates + unknown." + ::= { prtInputEntry 7 } + +prtInputCapacityUnit OBJECT-TYPE + SYNTAX CapacityUnit + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The unit of measurement for use in calculating and relaying + capacity values for this input sub-unit." + ::= { prtInputEntry 8 } + +prtInputMaxCapacity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + + "The maximum capacity of the input sub-unit in input + + sub-unit capacity units (CapacityUnit). There is no + convention associated with the media itself so this value + reflects claimed capacity. If this input sub-unit can + reliably sense this value, the value is sensed by the + printer and may not be changed by management requests; + otherwise, the value may be written (by a Remote + Contol Panel or a Management Application). + The value (-1) means other and specifically + indicates that the sub-unit places no restrictions + on this parameter. The value (-2) means unknown." + ::= { prtInputEntry 9 } + +prtInputCurrentLevel OBJECT-TYPE + SYNTAX Integer32 -- in capacity units (CapacityUnit). + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current capacity of the input sub-unit in input + sub-unit capacity units (CapacityUnit). If this input + sub-unit can reliably sense this value, the value is + sensed by the printer and may not be changed by + management requests; otherwise, the value may + be written (by a Remote Contol Panel or a + Management Application). The value (-1) means other and + specifically indicates that the sub-unit places no + restrictions on this parameter. The value (-2) means unknown. + The value (-3) means that the printer knows that at least one + unit remains." + ::= { prtInputEntry 10 } + +prtInputStatus OBJECT-TYPE + SYNTAX SubUnitStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of this input sub-unit." + ::= { prtInputEntry 11 } + +prtInputMediaName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A description of the media contained in this input sub-unit; + This description is intended for display to a human operator. + This description is not processed by the printer. It is used + to provide information not expressible in terms of the other + + media attributes (e.g. prtInputMediaDimFeedDirChosen, + + prtInputMediaDimXFeedDirChosen, prtInputMediaWeight, + prtInputMediaType). An example would be `legal tender bond + paper'." + ::= { prtInputEntry 12 } + +-- INPUT MEASUREMENT +-- +-- _______ | | +-- ^ | | +-- | | | | +-- | |_ _ _ _ _ _ _ _ _ _ _| _________________ |direction +-- | | | ^ v +-- MaxCapacity | | | +-- | | Sheets left in tray | CurrentLevel +-- | | | | +-- v | | v +-- _______ +_____________________+ _______ + +-- The Extended Input Group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtInputName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name assigned to this input sub-unit." + ::= { prtInputEntry 13 } + +prtInputVendorName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor name of this input sub-unit." + ::= { prtInputEntry 14 } + +prtInputModel OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The model name of this input sub-unit." + ::= { prtInputEntry 15 } + +prtInputVersion OBJECT-TYPE + + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of this input sub-unit." + ::= { prtInputEntry 16 } + +prtInputSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number assigned to this input sub-unit." + ::= { prtInputEntry 17 } + +prtInputDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A free-form text description of this input + sub-unit in the localization specified by + prtGeneralCurrentLocalization." + ::= { prtInputEntry 18 } + +prtInputSecurity OBJECT-TYPE + SYNTAX PresentOnOff + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates if this input sub-unit has some security + associated with it." + ::= { prtInputEntry 19 } + +-- The Input Media Group +-- +-- The Input Media Group supports identification of media installed +-- or available for use on a printing device. Medium resources are +-- identified by name, and include a collection of characteristic +-- attributes that may further be used for selection and management +-- of them. The Input Media group consists of a set of optional +-- "columns" in the Input Table. In this manner, a minimally +-- conforming implementation may choose to not support reporting +-- of media resources if it cannot do so. +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtInputMediaWeight OBJECT-TYPE + + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The weight of the medium associated with this input + sub-unit in grams / per meter squared. The value (-2) means + unknown." + ::= { prtInputEntry 20 } + +prtInputMediaType OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the type of medium associated with this input + sub-unit. This name need not be processed by the printer; it + might simply be displayed to an operator. The standardized + string values from ISO 10175 (DPA) and ISO 10180 (SPDL) are: + + stationery Separately cut sheets of an opaque material + transparency Separately cut sheets of a transparent material + envelope Envelopes that can be used for conventional + mailing purposes + envelope-plain Envelopes that are not preprinted and have no + windows + envelope-window Envelopes that have windows for addressing + purposes + continuous-long Continuously connected sheets of an opaque + material connected along the long edge + continuous-short Continuously connected sheets of an opaque + material connected along the short edge + tab-stock Media with tabs + multi-part-form Form medium composed of multiple layers not + pre-attached to one another; each sheet may be + drawn separately from an input source + labels Label stock + multi-layer Form medium composed of multiple layers which + are pre-attached to one another; e.g., for + use with impact printers" + ::= { prtInputEntry 21 } + +prtInputMediaColor OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the color of the medium associated with + + this input sub-unit using standardized string values + + from ISO 10175 (DPA) and ISO 10180 (SPDL) which are: + + other + unknown + white + pink + yellow + buff + goldenrod + blue + green + transparent + + Implementors may add additional string values. The naming + conventions in ISO 9070 are recommended in order to avoid + potential name clashes." + ::= { prtInputEntry 22 } + +prtInputMediaFormParts OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The number of parts associated with the medium + associated with this input sub-unit if the medium is a + multi-part form. The value (-1) means other and + specifically indicates that the device places no + restrictions on this parameter. The value (-2) means + unknown." + ::= { prtInputEntry 23 } + +-- The Output Group +-- +-- Output sub-units are managed as a tabular, indexed collection of +-- possible devices capable of receiving media delivered from the +-- printing process. Output sub-units typically have a location, +-- a type, an identifier, a set of constraints on possible media +-- sizes and potentially other characteristics, and may be capable +-- of indicating current status or capacity. +-- +-- Implementation of every object in this group is mandatory. + +prtOutput OBJECT IDENTIFIER ::= { printmib 9 } + +prtOutputDefaultIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + + STATUS current + + DESCRIPTION + "The value of prtOutputIndex corresponding to the default + output sub-unit; that is, this object selects the default + output destination." + ::= { prtGeneralEntry 7 } + +prtOutputTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtOutputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of the devices capable of receiving media delivered + from the printing process." + ::= { prtOutput 2 } + +prtOutputEntry OBJECT-TYPE + SYNTAX PrtOutputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Attributes of a device capable of receiving media delivered + from the printing process. + + Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtOutputIndex } + ::= { prtOutputTable 1 } + +PrtOutputEntry ::= SEQUENCE { + prtOutputIndex Integer32, + prtOutputType INTEGER, + prtOutputCapacityUnit CapacityUnit, + prtOutputMaxCapacity Integer32, + prtOutputRemainingCapacity Integer32, + prtOutputStatus SubUnitStatus, + prtOutputName OCTET STRING, + prtOutputVendorName OCTET STRING, + prtOutputModel OCTET STRING, + prtOutputVersion OCTET STRING, + prtOutputSerialNumber OCTET STRING, + prtOutputDescription OCTET STRING, + prtOutputSecurity PresentOnOff, + prtOutputDimUnit MediaUnit, + prtOutputMaxDimFeedDir Integer32, + prtOutputMaxDimXFeedDir Integer32, + prtOutputMinDimFeedDir Integer32, + prtOutputMinDimXFeedDir Integer32, + + prtOutputStackingOrder INTEGER, + + prtOutputPageDeliveryOrientation INTEGER, + prtOutputBursting PresentOnOff, + prtOutputDecollating PresentOnOff, + prtOutputPageCollated PresentOnOff, + prtOutputOffsetStacking PresentOnOff +} + +prtOutputIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by this printer to identify this + output sub-unit. Although these values may change due + to a major reconfiguration of the sub-unit (e.g. the + addition of new output devices to the printer), values + are expected to remain stable across successive printer + power cycles." + ::= { prtOutputEntry 1 } + +prtOutputType OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + removableBin(3), + unRemovableBin(4), + continuousRollDevice(5), + mailBox(6), + continuousFanFold(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of technology supported by this output sub-unit." + ::= { prtOutputEntry 2 } + +prtOutputCapacityUnit OBJECT-TYPE + SYNTAX CapacityUnit + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The unit of measurement for use in calculating and relaying + capacity values for this output sub-unit." + ::= { prtOutputEntry 3 } + +prtOutputMaxCapacity OBJECT-TYPE + + SYNTAX Integer32 + + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum capacity of this output sub-unit in output + sub-unit capacity units (CapacityUnit). There is no + convention associated with the media itself so this value + essentially reflects claimed capacity. If this output + sub-unit can reliably sense this value, the value is + sensed by the printer and may not be changed by management + requests; otherwise, the value may be written + (by a Remote Contol Panel or a Management Application). + The value (-1) means other and specifically indicates + that the sub-unit places no restrictions on this parameter. + The value (-2) means unknown." + ::= { prtOutputEntry 4 } + +prtOutputRemainingCapacity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The remaining capacity of the possible output sub-unit + capacity in output sub-unit capacity units (CapacityUnit) + of this output sub-unit. If this output sub-unit can + reliably sense this value, the value is sensed by the + printer and may not be modified by management requests; + otherwise, the value may be written (by + a Remote Contol Panel or a Management + Application). The value (-1) means other and + specifically indicates that the sub-unit places no + restrictions on this parameter. The value (-2) means + unknown. The value (-3) means that the printer knows that + there remains capacity for at least one unit." + ::= { prtOutputEntry 5 } + +prtOutputStatus OBJECT-TYPE + SYNTAX SubUnitStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of this output sub-unit." + ::= { prtOutputEntry 6 } + +-- OUTPUT MEASUREMENT + +-- +-- _______ | | _______ +-- ^ | | ^ +-- | | | | +-- | | | RemainingCapacity +-- MaxCapacity | | | +-- | | | v ^ +-- | |_ _ _ _ _ _ _ _ _ _ _| ___________________ |direction +-- | | | | +-- | | Sheets in output | +-- v | | +-- _______ +_____________________+ + +-- The Extended Output Group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtOutputName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name assigned to this output sub-unit." + ::= { prtOutputEntry 7 } + +prtOutputVendorName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor name of this output sub-unit." + ::= { prtOutputEntry 8 } + +prtOutputModel OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name assigned to this output sub-unit." + ::= { prtOutputEntry 9 } + +prtOutputVersion OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + "The version of this output sub-unit." + + ::= { prtOutputEntry 10 } + +prtOutputSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number assigned to this output sub-unit." + ::= { prtOutputEntry 11 } + +prtOutputDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " A free-form text description of this output sub-unit in the + localization specified by prtGeneralCurrentLocalization." + ::= { prtOutputEntry 12 } + +prtOutputSecurity OBJECT-TYPE + SYNTAX PresentOnOff + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates if this output sub-unit has some security associated + with it and if that security is enabled or not." + ::= { prtOutputEntry 13 } + +-- The Output Dimensions Group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtOutputDimUnit OBJECT-TYPE + SYNTAX MediaUnit + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The unit of measurement for use in calculating and relaying + dimensional values for this output sub-unit." + ::= { prtOutputEntry 14 } + +prtOutputMaxDimFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + + "The maximum dimensions supported by this output sub-unit + + for measurements taken parallel relative to the feed + direction associated with that sub-unit in output + sub-unit dimensional units (DimUnit). If this output + sub-unit can reliably sense this value, the value is + sensed by the printer and may not be changed with + management protocol operations." + ::= { prtOutputEntry 15 } + +prtOutputMaxDimXFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum dimensions supported by this output sub-unit + for measurements taken ninety degrees relative to the + feed direction associated with that sub-unit in output + sub-unit dimensional units (DimUnit). If this output + sub-unit can reliably sense this value, the value is + sensed by the printer and may not be changed with + management protocol operations." + ::= { prtOutputEntry 16 } + +prtOutputMinDimFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The minimum dimensions supported by this output sub-unit + for measurements taken parallel relative to the feed + direction associated with that sub-unit in output + sub-unit dimensional units (DimUnit). If this output + sub-unit can reliably sense this value, the value is + sensed by the printer and may not be changed with + management protocol operations." + ::= { prtOutputEntry 17 } + +prtOutputMinDimXFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The minimum dimensions supported by this output sub-unit + for measurements taken ninety degrees relative to the + feed direction associated with that sub-unit in output + sub-unit dimensional units (DimUnit). If this output + sub-unit can reliably sense this value, the value is + sensed by the printer and may not be changed with + + management protocol operations." + + ::= { prtOutputEntry 18 } + +-- The Output Features Group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtOutputStackingOrder OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + unknown(2), + firstToLast(3), + lastToFirst(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current state of the stacking order for the + associated output sub-unit. `FirstToLast' means + that as pages are output the front of the next page is + placed against the back of the previous page. + `LasttoFirst' means that as pages are output the back + of the next page is placed against the front of the + previous page." + ::= { prtOutputEntry 19 } + +prtOutputPageDeliveryOrientation OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + faceUp(3), + faceDown(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The reading surface that will be `up' when pages are + delivered to the associated output sub-unit. Values are + Face-Up and Face-Down. (Note: interpretation of these + values is in general context-dependent based on locale; + presentation of these values to an end-user should be + normalized to the expectations of the user)." + ::= { prtOutputEntry 20 } + +prtOutputBursting OBJECT-TYPE + SYNTAX PresentOnOff + MAX-ACCESS read-write + STATUS current + + DESCRIPTION + + "This object indicates that the outputing sub-unit + supports bursting, and if so, whether the feature is enabled. + Bursting is the process by which continuous media is separated + into individual sheets, typically by bursting along pre-formed + perforations." + ::= { prtOutputEntry 21 } + +prtOutputDecollating OBJECT-TYPE + SYNTAX PresentOnOff + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object indicates that the output supports + supports decollating, and if so, whether the feature + is enabled. Decollating is the process by which the + individual parts within a multi-part form are separated + and sorted into separate stacks for each part." + ::= { prtOutputEntry 22 } + +prtOutputPageCollated OBJECT-TYPE + SYNTAX PresentOnOff + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object indicates that the output sub-unit + supports page collation, and if so, whether the feature is + enabled." + ::= { prtOutputEntry 23 } + +prtOutputOffsetStacking OBJECT-TYPE + SYNTAX PresentOnOff + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object indicates that the output supports + supports offset stacking, and if so, whether the feature is + enabled." + ::= { prtOutputEntry 24 } + +-- The Marker Group +-- +-- A marker is the mechanism that produces marks on the print media. The +-- marker sub-units and their associated supplies are represented by the +-- Marker Group in the model. A printer can contain one or more marking +-- mechanisms. Some examples of multiple marker sub-units are: a printer +-- with separate markers for normal and magnetic ink or an imagesetter +-- that can output to both a proofing device and final film. Each marking + +-- device can have its own set of characteristics associated with it, + +-- such as marking technology and resolution. +-- +-- Implementation of every object in this group is mandatory. + +prtMarker OBJECT IDENTIFIER ::= { printmib 10 } + +prtMarkerDefaultIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of prtMarkerIndex corresponding to the + default markersub-unit; that is, this object selects the + default marker." + ::= { prtGeneralEntry 8 } + +-- The printable area margins as listed below define an area of the print +-- media which is guaranteed to be printable for all combinations of +-- input, media paths, and interpreters for this marker. + +prtMarkerTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtMarkerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtMarker 2 } + +prtMarkerEntry OBJECT-TYPE + SYNTAX PrtMarkerEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtMarkerIndex } + ::= { prtMarkerTable 1 } + +PrtMarkerEntry ::= SEQUENCE { + prtMarkerIndex Integer32, + prtMarkerMarkTech INTEGER, + prtMarkerCounterUnit INTEGER, + prtMarkerLifeCount Counter32, + prtMarkerPowerOnCount Counter32, + prtMarkerProcessColorants Integer32, + prtMarkerSpotColorants Integer32, + + prtMarkerAddressabilityUnit INTEGER, + + prtMarkerAddressabilityFeedDir Integer32, + prtMarkerAddressabilityXFeedDir Integer32, + prtMarkerNorthMargin Integer32, + prtMarkerSouthMargin Integer32, + prtMarkerWestMargin Integer32, + prtMarkerEastMargin Integer32, + prtMarkerStatus SubUnitStatus +} + +prtMarkerIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this marking + SubUnitStatus. Although these values may change due to a major + reconfiguration of the device (e.g. the addition of new marking + sub-units to the printer), values are expected to remain + stable across successive printer power cycles." + ::= { prtMarkerEntry 1 } + +prtMarkerMarkTech OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + electrophotographicLED(3), + electrophotographicLaser(4), + electrophotographicOther(5), + impactMovingHeadDotMatrix9pin(6), + impactMovingHeadDotMatrix24pin(7), + impactMovingHeadDotMatrixOther(8), + impactMovingHeadFullyFormed(9), + impactBand(10), + impactOther(11), + inkjetAqueous(12), + inkjetSolid(13), + inkjetOther(14), + pen(15), + thermalTransfer(16), + thermalSensitive(17), + thermalDiffusion(18), + thermalOther(19), + electroerosion(20), + electrostatic(21), + photographicMicrofiche(22), + + photographicImagesetter(23), + + photographicOther(24), + ionDeposition(25), + eBeam(26), + typesetter(27) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of marking technology used for this marking sub-unit." + ::= { prtMarkerEntry 2 } + +prtMarkerCounterUnit OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + tenThousandthsOfInches(3), -- .0001 + micrometers(4), + characters(5), + lines(6), + impressions(7), + sheets(8), + dotRow(9), + hours(11), + feet(16), + meters(17) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The unit that will be used by the printer when reporting + counter values for this marking sub-unit. The + time units of measure are provided for a device like a + strip recorder that does not or cannot track the physical + dimensions of the media and does not use characters, + lines or sheets." + ::= { prtMarkerEntry 3} + +prtMarkerLifeCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The count of the number of units of measure counted during + the life of printer using units of measure as specified by + CounterUnit." + ::= { prtMarkerEntry 4 } + +prtMarkerPowerOnCount OBJECT-TYPE + + SYNTAX Counter32 + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The count of the number of units of measure counted since the + equipment was most recently powered on using units of measure as + specified by CounterUnit." + ::= { prtMarkerEntry 5 } + +prtMarkerProcessColorants OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of process colors supported by this marker. A + process color of 1 implies monochrome. The value of this + object and SpotColorants cannot both be 0. Must be 0 or + greater." + ::= { prtMarkerEntry 6 } + +prtMarkerSpotColorants OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of spot colors supported by this marker. The + value of this object and ProcessColorants cannot + both be 0. Must be 0 or greater." + ::= { prtMarkerEntry 7 } + +prtMarkerAddressabilityUnit OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + tenThousandthsOfInches(3), -- .0001 + micrometers(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The unit of measure of distances." + ::= { prtMarkerEntry 8 } + +prtMarkerAddressabilityFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of addressable marking positions in the feed + + direction per 10000 units of measure specified by + + AddressabilityUnit. A value of (-1) implies 'other' or + 'infinite' while a value of (-2) implies 'unknown'." + ::= { prtMarkerEntry 9 } + +prtMarkerAddressabilityXFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of addressable marking positions in the cross + feed direction in 10000 units of measure specified by + AddressabilityUnit. A value of (-1) implies 'other' or + 'infinite' while a value of (-2) implies 'unknown'." + ::= { prtMarkerEntry 10 } + +prtMarkerNorthMargin OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The margin, in units identified by AddressabilityUnit, + from the leading edge of the medium as the medium flows + throught the marking engine with the side to be imaged + facing the observer. The leading edge is the North edge + and the other edges are defined by the normal compass + layout of directions with the compass facing the + observer. Printing within the area bounded by all four + margins is guaranteed for all interpreters. The value + (-2) means unknown." + ::= { prtMarkerEntry 11 } + +prtMarkerSouthMargin OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The margin from the South edge (see NorthMargin) + of the medium in units identified by + AddressabilityUnit. Printing within the area bounded by + all four margins is guaranteed for all interpreters. + The value (-2) means unknown." + ::= { prtMarkerEntry 12 } + +prtMarkerWestMargin OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + + DESCRIPTION + + "The margin from the West edge (see NorthMargin) of the + medium in units identified by AddressabilityUnit. + Printing within the area bouned by all four margins is + guaranteed for all interpreters. The value (-2) means + unknown." + ::= { prtMarkerEntry 13 } + +prtMarkerEastMargin OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The margin from the East edge (see NorthMargin) of the + medium in units identified by AddressabilityUnit. + Printing within the area bounded by all four margins is + guaranteed for all interpreters. The value (-2) means + unknown." + ::= { prtMarkerEntry 14 } + +prtMarkerStatus OBJECT-TYPE + SYNTAX SubUnitStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of this marker sub-unit." + ::= { prtMarkerEntry 15 } + +-- The Marker Supplies Group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtMarkerSupplies OBJECT IDENTIFIER ::= { printmib 11 } + +prtMarkerSuppliesTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtMarkerSuppliesEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of the marker supplies available on this printer." + ::= { prtMarkerSupplies 1 } + +prtMarkerSuppliesEntry OBJECT-TYPE + SYNTAX PrtMarkerSuppliesEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + + "Attributes of a marker supply. + + Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtMarkerSuppliesIndex } + ::= { prtMarkerSuppliesTable 1 } + +PrtMarkerSuppliesEntry ::= SEQUENCE { + prtMarkerSuppliesIndex Integer32, + prtMarkerSuppliesMarkerIndex Integer32, + prtMarkerSuppliesColorantIndex Integer32, + prtMarkerSuppliesClass INTEGER, + prtMarkerSuppliesType INTEGER, + prtMarkerSuppliesDescription OCTET STRING, + prtMarkerSuppliesSupplyUnit INTEGER, + prtMarkerSuppliesMaxCapacity Integer32, + prtMarkerSuppliesLevel Integer32 +} + +prtMarkerSuppliesIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this marker + supply. Although these values may change due to a major + reconfiguration of the device (e.g. the addition of new marker + supplies to the printer), values are expected to remain stable + across successive printer power cycles." + ::= { prtMarkerSuppliesEntry 1 } + +prtMarkerSuppliesMarkerIndex OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of prtMarkerIndex corresponding to the + marking sub-unit with which this marker supply + sub-unit is associated." + ::= { prtMarkerSuppliesEntry 2 } + +prtMarkerSuppliesColorantIndex OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of prtMarkerColorantIndex + + corresponding to the colorant with which this + + marker supply sub-unit is associated. This value + shall be 0 if there is no colorant table." + ::= { prtMarkerSuppliesEntry 3 } + +prtMarkerSuppliesClass OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + other(1), + supplyThatIsConsumed(3), + receptacleThatIsFilled(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether this supply entity represents a supply + container that is consumed or a receptacle that is filled." + ::= { prtMarkerSuppliesEntry 4 } + +prtMarkerSuppliesType OBJECT-TYPE + -- This value is a type 3 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + toner(3), + wasteToner(4), + ink(5), + inkCartridge(6), + inkRibbon(7), + wasteInk(8), + opc(9), + developer(10), + fuserOil(11), + solidWax(12), + ribbonWax(13), + wasteWax(14) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of this supply." + ::= { prtMarkerSuppliesEntry 5 } + +prtMarkerSuppliesDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + + "The description of this supply container/receptacle in the + + localization specified by prtGeneralCurrentLocalization." + ::= { prtMarkerSuppliesEntry 6 } + +prtMarkerSuppliesSupplyUnit OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + tenThousandthsOfInches(3), -- .0001 + micrometers(4), + thousandthsOfOunces(12), + tenthsOfGrams(13), + hundrethsOfFluidOunces(14), + tenthsOfMilliliters(15) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unit of this marker supply container/receptacle." + ::= { prtMarkerSuppliesEntry 7 } + +prtMarkerSuppliesMaxCapacity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum capacity of this supply container/receptacle + expressed in SupplyUnit. If this supply + container/receptacle can reliably sense this value, the + value is sensed by the printer and is read-only; + otherwise, the value may be written (by a Remote Contol + Panel or a Management Application). The value (-1) means + other and specifically indicates that the sub-unit places + no restrictions on this parameter. The value (-2) means + unknown." + ::= { prtMarkerSuppliesEntry 8 } + +prtMarkerSuppliesLevel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current level if this supply is a container; the + remaining space if this supply is a receptacle. If this + supply container/receptacle can reliably sense this + value, the value is sensed by the printer and is + read-only; otherwise, the value may be written (by a + Remote Contol Panel or a Management Application). The + value (-1) means other and specifically indicates that + + the sub-unit places no restrictions on this parameter. + + The value (-2) means unknown. A value of (-3) means that the + printer knows that there is some supply/remaining space, + respectively." + ::= { prtMarkerSuppliesEntry 9 } + +-- The Marker Colorant Group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtMarkerColorant OBJECT IDENTIFIER ::= { printmib 12 } + +prtMarkerColorantTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtMarkerColorantEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table of all of the colorants available on the printer." + ::= { prtMarkerColorant 1 } + +prtMarkerColorantEntry OBJECT-TYPE + SYNTAX PrtMarkerColorantEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Attributes of a colorant available on the printer. + + Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtMarkerColorantIndex } + ::= { prtMarkerColorantTable 1 } + +PrtMarkerColorantEntry ::= SEQUENCE { + prtMarkerColorantIndex Integer32, + prtMarkerColorantMarkerIndex Integer32, + prtMarkerColorantRole INTEGER, + prtMarkerColorantValue OCTET STRING, + prtMarkerColorantTonality Integer32 +} + +prtMarkerColorantIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this colorant. + Although these values may change due to a major + + reconfiguration of the device (e.g. the addition of new + + colorants to the printer), values are expected to remain + stable across successive printer power cycles." + ::= { prtMarkerColorantEntry 1 } + +prtMarkerColorantMarkerIndex OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of prtMarkerIndex corresponding to the + marker sub-unit with which this colorant entry is + associated." + ::= { prtMarkerColorantEntry 2 } + +prtMarkerColorantRole OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { -- Colorant Role + other(1), + process(3), + spot(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The role played by this colorant." + ::= { prtMarkerColorantEntry 3 } + +prtMarkerColorantValue OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the color of this The name of the color of this + colorant using standardized string names from ISO 10175 (DPA) + and ISO 10180 (SPDL) which are: + other + unknown + white + red + green + blue + cyan + magenta + yellow + black + Implementors may add additional string values. The naming + conventions in ISO 9070 are recommended in order to avoid + + potential name clashes" + + ::= { prtMarkerColorantEntry 4 } + +prtMarkerColorantTonality OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The distinct levels of tonality realizable by a marking + sub-unit when using this colorant. This value does not + include the number of levels of tonal difference that an + interpreter can obtain by techniques such as half toning. + This value must be at least 2." + ::= { prtMarkerColorantEntry 5 } + +-- The Media Path Group +-- +-- The media paths encompass the mechanisms in the printer that move the +-- media through the printer and connect all other media related sub- +-- units: inputs, outputs, markers and finishers. A printer contains one +-- or more media paths. These are represented by the Media Path Group in +-- the model. The Media Path group has some attributes that apply to all +-- paths plus a table of the separate media paths. + +prtMediaPath OBJECT IDENTIFIER ::= { printmib 13 } + +prtMediaPathDefaultIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of prtMediaPathIndex corresponding to + the default media path; that is, the selection of the + default media path." + ::= { prtGeneralEntry 9 } + +prtMediaPathTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtMediaPathEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtMediaPath 4 } + +prtMediaPathEntry OBJECT-TYPE + SYNTAX PrtMediaPathEntry + MAX-ACCESS not-accessible + STATUS current + + DESCRIPTION + + "Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtMediaPathIndex } + ::= { prtMediaPathTable 1 } + +PrtMediaPathEntry ::= SEQUENCE { + prtMediaPathIndex Integer32, + prtMediaPathMaxSpeedPrintUnit INTEGER, + prtMediaPathMediaSizeUnit MediaUnit, + prtMediaPathMaxSpeed Integer32, + prtMediaPathMaxMediaFeedDir Integer32, + prtMediaPathMaxMediaXFeedDir Integer32, + prtMediaPathMinMediaFeedDir Integer32, + prtMediaPathMinMediaXFeedDir Integer32, + prtMediaPathType INTEGER, + prtMediaPathDescription OCTET STRING, + prtMediaPathStatus SubUnitStatus +} + +prtMediaPathIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this media + path. Although these values may change due to a major + reconfiguration of the device (e.g. the addition of new + media paths to the printer), values are expected to remain + stable across successive printer power + cycles." + ::= { prtMediaPathEntry 1 } + +prtMediaPathMaxSpeedPrintUnit OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + tenThousandthsOfInchesPerHour(3), -- .0001/hour + micrometersPerHour(4), + charactersPerHour(5), + linesPerHour(6), + impressionsPerHour(7), + sheetsPerHour(8), + dotRowPerHour(9), + feetPerHour(16), + metersPerHour(17) + } + MAX-ACCESS read-only + + STATUS current + + DESCRIPTION + "The unit of measure used in specifying the speed of all media + paths in the printer." + ::= { prtMediaPathEntry 2 } + +prtMediaPathMediaSizeUnit OBJECT-TYPE + SYNTAX MediaUnit + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The units of measure of media size for use in calculating and + relaying dimensional values for all media paths in the printer." + ::= { prtMediaPathEntry 3 } + +prtMediaPathMaxSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum printing speed of this media path expressed in + prtMediaPathMaxSpeedUnit's. A value of (-1) implies + 'other'." + ::= { prtMediaPathEntry 4 } + +prtMediaPathMaxMediaFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum physical media size in the feed direction of this + media path expressed in units of measure specified by + MediaSizeUnit. A value of (-1) implies 'unlimited'. A value + of (-2) implies 'unknown'" + ::= { prtMediaPathEntry 5 } + +prtMediaPathMaxMediaXFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum physical media size across the feed direction of + this media path expressed in units of measure specified by + MediaSizeUnit. A value of (-2) implies 'unknown'." + ::= { prtMediaPathEntry 6 } + +prtMediaPathMinMediaFeedDir OBJECT-TYPE + SYNTAX Integer32 + + MAX-ACCESS read-only + + STATUS current + DESCRIPTION + "The minimum physical media size in the feed direction of this + media path expressed in units of measure specified by + MediaSizeUnit. A value of (-2) implies 'unknown'." + ::= { prtMediaPathEntry 7 } + +prtMediaPathMinMediaXFeedDir OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum physical media size across the feed direction of + this media path expressed in units of measure specified by + MediaSizeUnit. A value of (-2) implies 'unknown'." + ::= { prtMediaPathEntry 8 } + +prtMediaPathType OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + longEdgeBindingDuplex(3), + shortEdgeBindingDuplex(4), + simplex(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the media path for this media path." + ::= { prtMediaPathEntry 9 } + +prtMediaPathDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The manufacturer-provided description of this media path in + the localization specified by prtGeneralCurrentLocalization." + ::= { prtMediaPathEntry 10 } + +prtMediaPathStatus OBJECT-TYPE + SYNTAX SubUnitStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of this media path." + + ::= { prtMediaPathEntry 11 } + +-- The Channel Group +-- +-- Implementation of every object in this group is mandatory. + +-- Channels are independent sources of print data. Here, +-- print data is the term used for the information that is +-- used to construct printed pages and may have both data +-- and control aspects. The output of a channel is in a form +-- suitable for input to one of the interpreters as a +-- stream. A channel may be independently enabled (allowing +-- print data to flow) or disabled (stopping the flow of +-- print data). A printer may have one or more channels. +-- +-- Basically, the channel abstraction is intended to cover +-- all the aspects of getting the print data to an +-- interpreter. This might include transporting the data +-- from one place to another, it might include (invisible) +-- compression, it might include encoding or packetizing to +-- provide multiple information sources over a single +-- physical interface and it might include filtering +-- characters that were destined for another kind of +-- channel. All of these aspects are hidden in the channel +-- abstraction.(Note some Page Description Languages have +-- compression built into them so "invisible" compression +-- refers to compression done by the transport medium and +-- removed before the data is presented to the interpreter.) +-- +-- There are many kinds of channels;some of which are based +-- on networks and others which are not. For example, a +-- channel can be a serial (or parallel) connection; it can +-- be a service, such as the Unix Line Printer Daemon (LPD), +-- offering itself over a network connection (interface); or +-- it could be a disk drive into which a floppy disks with +-- the print data is inserted. Each channel is typically +-- identified by the electronic path and/or service protocol +-- used to deliver print data to the printer. +-- +-- Channel example Implementation +-- +-- serial port channel bi-directional data channel +-- parallel port channel often uni-directional channel +-- IEEE 1284 port channel bi-directional channel +-- SCSI port channel bi-directional +-- Apple PAP channel may be based on Local-, Ether-or +-- TokenTalk +-- LPD Server channel typically TCP/IP based, port 515 + +-- Novell Remote Printer typically SPX/IPX based channel + +-- Novell Print Server typically SPX/IPX based channel +-- port 9100 channel HP and friends +-- Adobe AppSocket(9101) channel a bi-directional extension of LPD +-- +-- It is easy to note that this is a mixed bag. There are +-- some physical connections over which no (or very meager) +-- protocols are run (e.g. the serial or old parallel ports) +-- and there are services which often have elaborate +-- protocols that run over a number of protocol stacks. In +-- the end what is important is the delivery of print data +-- thru the channel. +-- +-- The channel sub-units are represented by the Channel +-- Group in the Model. It has a current Control Language +-- which can be used to specify which interpreter is to be +-- used for the print data and to query and change +-- environment variables used by the interpreters (and +-- Mangement Applications). There is also a default +-- interpreter that is to be used if an interpreter is not +-- explicitly specified using the Control Language. Channel +-- sub-units are based on an underlying interface. + +-- The channel table and its underlying structure +-- +-- The first seven items in the Channel Table define the +-- "channel" itself. A channel typically depends on other +-- protocols and interfaces to provide the data that flows +-- thru the channel. It is necessary to provide control of +-- the (perhaps complex) process by which print data arrives +-- at an interpreter. Control is largely limited to enabling +-- or disabling the whole channel. It is likely, however, +-- that more control of the process of accessing print data +-- will be needed over time. Thus, the ChannelType will +-- allow type specific data to be associated with each +-- channel (using ChannelType specific groups in a fashion +-- analogous to the media specific MIBs that are associated +-- with the IANAIfType in the Interfaces Table). As a first +-- step in this direction, each channel will identify the +-- underlying Interface on which it is based. This is the +-- eighth object in each row of the table. + +-- Some examples of the kind of control are where +-- compression or encoding is used; and whether the data is +-- filtered to remove file storage anomolies such as those +-- created by using MS-DOS/PC-DOS LPT1:. +-- + +-- The Channel Table + +-- +-- The prtChannelTable represents the set of input data sources which +-- can provide print data to one or more of the interpreters +-- available on a printer + +prtChannel OBJECT IDENTIFIER ::= { printmib 14 } + +prtChannelTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtChannelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtChannel 1 } + +prtChannelEntry OBJECT-TYPE + SYNTAX PrtChannelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtChannelIndex } + ::= { prtChannelTable 1 } + +PrtChannelEntry ::= SEQUENCE { + prtChannelIndex Integer32, + prtChannelType INTEGER, + prtChannelProtocolVersion OCTET STRING, + prtChannelCurrentJobCntlLangIndex Integer32, + prtChannelDefaultPageDescLangIndex Integer32, + prtChannelState INTEGER, + prtChannelIfIndex Integer32, + prtChannelStatus SubUnitStatus +} + +prtChannelIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this data + channel. Although these values may change due to a major + reconfiguration of the device (e.g. the addition of new data + channels to the printer), values are expected to remain + stable across successive printer power cycles." + + ::= { prtChannelEntry 1 } + +prtChannelType OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + chSerialPort(3), + chParallelPort(4), + chIEEE1284Port(5), + chSCSIPort(6), + chAppleTalkPAP(7), -- AppleTalk Printer Achess Protocol + chLPDServer(8), + chNetwareRPrinter(9), -- Netware + chNetwarePServer(10), -- Netware + chPort9100(11), + chAppSocket(12), -- a bi-directional, LPD-like + -- protocol using 9101 for + -- control and 9100 for data. + -- Adobe Systems, Inc. + chFTP(13), -- FTP "PUT" to printer + chTFTP(14), + chDLCLLCPort(15), + chIBM3270(16), + chIBM5250(17), + chFax(18), + chIEEE1394(19), + chTransport1(20), -- port 35 + chCPAP(21), -- port 170 + chDCERemoteProcCall(22), -- OSF + chONCRemoteProcCall(23), -- Sun Microsystems + chOLE(24), -- Microsoft + chNamedPipe(25), + chPCPrint(26), -- Banyan + chServerMessageBlock(27), + -- File/Print sharing protocol used by + -- various network operating systems + -- from IBM 3Com, Microsoft and others + chDPMF(28), -- Distributed Print Mgt. Framework, IBM + chDLLAPI(29), -- Microsoft + chVxDAPI(30), -- Microsoft + chSystemObjectManager(31), -- IBM + chDECLAT(32), -- Digital Equipment Corp. + chNPAP(33) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of this print data channel. This + + object provides the linkage to ChannelType-specific + + groups that may (conceptually) extend the prtChannelTable + with additional details about that channel." + ::= { prtChannelEntry 2 } + +prtChannelProtocolVersion OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The version of the protocol used on this + channel. The format used for version numbering depends + on prtChannelType." + ::= { prtChannelEntry 3 } + +prtChannelCurrentJobCntlLangIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of prtInterpreterIndex corresponding to the + Control Language Interpreter for this channel. This + interpreter defines the syntax used for control + functions, such as querying or changing environment + variables and identifying job boundaries (e.g. PJL, + PostScript, NPAP). Must be 1 or greater." + ::= { prtChannelEntry 4 } + +prtChannelDefaultPageDescLangIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of prtInterpreterIndex corresponding to the + Page Description Language Interpreter for this channel. + This interpreter defines the default Page Description + Language interpreter to be used for the print data unless + the Control Language is used to select a specific + interpreter (e.g., PCL, PostScript Language, + auto-sense). Must be 1 or greater." + ::= { prtChannelEntry 5 } + +prtChannelState OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + other(1), + printDataAccepted(3), + noDataAccepted(4) + + } + + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The state of this print data channel. The value determines + whether control information and print data is allowed through + this channel or not." + ::= { prtChannelEntry 6 } + +prtChannelIfIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of ifIndex (in the ifTable; see the interface + section of MIB-2/RFC 1213) which corresponds to this channel. + When more than one row of the ifTable is relevant, this is + the index of the row representing the topmost layer in the + interface hierarchy. A value of zero indicates that no + interface is associated with this channel." + ::= { prtChannelEntry 7 } + +prtChannelStatus OBJECT-TYPE + SYNTAX SubUnitStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current status of the channel." + ::= { prtChannelEntry 8 } + +-- The Interpreter Group +-- +-- The interpreter sub-units are responsible for the conversion of a +-- description of intended print instances into images that are to be +-- marked on the media. A printer may have one or more interpreters. The +-- interpreter sub-units are represented by the Interpreter Group in the +-- Model. Each interpreter is generally implemented with software running +-- on the System Controller sub-unit. The Interpreter Table has one entry +-- per interpreter where the interpreters include both Page Description +-- Language (PDL) Interpreters and Control Language Interpreters. +-- +-- Implementation of every object in this group is mandatory. + +prtInterpreter OBJECT IDENTIFIER ::= { printmib 15 } + +-- Interpreter Table +-- + +-- The prtInterpreterTable is a table representing the interpreters in + +-- the printer. An entry shall be placed in the interpreter table for +-- each interpreter on the printer. + +prtInterpreterTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtInterpreterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtInterpreter 1 } + +prtInterpreterEntry OBJECT-TYPE + SYNTAX PrtInterpreterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtInterpreterIndex } + ::= { prtInterpreterTable 1 } + +PrtInterpreterEntry ::= SEQUENCE { + prtInterpreterIndex Integer32, + prtInterpreterLangFamily INTEGER, + prtInterpreterLangLevel OCTET STRING, + prtInterpreterLangVersion OCTET STRING, + prtInterpreterDescription OCTET STRING, + prtInterpreterVersion OCTET STRING, + prtInterpreterDefaultOrientation INTEGER, + prtInterpreterFeedAddressability Integer32, + prtInterpreterXFeedAddressability Integer32, + prtInterpreterDefaultCharSetIn CodedCharSet, + prtInterpreterDefaultCharSetOut CodedCharSet, + prtInterpreterTwoWay INTEGER +} + +prtInterpreterIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value for each PDL or control language for which + there exists an interpreter or emulator in the printer. The + value is used to identify this interpreter. Although these + values may change due to a major reconfiguration of the device + (e.g. the addition of new interpreters to the printer), values + are expected to remain stable across successive printer power + + cycles." + + ::= { prtInterpreterEntry 1 } + +prtInterpreterLangFamily OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + langPCL(3), -- PCL. Starting with PCL version 5, + -- HP-GL/2 is included as part of the + -- PCL language. + -- PCL and HP-GL/2 are registered + -- trademarks of Hewlett-Packard Company. + langHPGL(4), -- Hewlett-Packard Graphics Language. + -- HP-GL is a registered trademark of + -- Hewlett-Packard Company. + langPJL(5), -- Peripheral Job Language. Appears in the + -- data stream between data intended for a + -- page description language. + -- Hewlett-Packard Co. + langPS(6), -- PostScript Language (tm) + -- Postscript - a trademark of Adobe + -- Systems Incorporated which may be + -- registered in certain jurisdictions + langPSPrinter(42), -- The PostScript Language used for + -- control (with any PDLs) + -- Adobe Systems Incorporated + langIPDS(7), -- Intelligent Printer Data Stream + -- Bi-directional print data stream for + -- documents consisting of data objects + -- (text, image, graphics, bar codes), + -- resources (fonts, overlays) and page, + -- form and finishing instructions. + -- Facilitates system level device + -- control, document tracking and error + -- recovery throughout the print process. + -- Pennant Systems, IBM + langPPDS(8), -- IBM Personal Printer Data Stream. + -- Originally called IBM ASCII, the name + -- was changed to PPDS when the Laser + -- Printer was introduced in 1989. + -- Lexmark International, Inc. + langEscapeP(9), + langEpson(10), + langDDIF(11), -- Digital Document Interchange Format + -- Digital Equipment Corp., Maynard MA + langInterpress(12), + langISO6429(13), -- ISO 6429. Control functions for Coded + -- Character Sets (has ASCII control + + -- characters, plus additional controls for + + -- character imaging devices.) + -- ISO Standard, Geneva, Switzerland + langLineData(14), -- line-data: Lines of data as separate + -- ASCII or EBCDIC records and containing + -- no control functions (no CR, LF, HT, FF, + -- etc.). For use with traditional line + -- printers. May use CR and/or LF to + -- delimit lines, instead of records. See + -- ISO 10175 Document Printing Application + -- (DPA) + -- ISO standard, Geneva, Switzerland + langMODCA(15), -- Mixed Object Document Content Architecture + -- Definitions that allow the composition, + -- interchange, and presentation of final + -- form documents as a collection of data + -- objects (text, image, graphics, bar + -- codes), resources (fonts, overlays) and + -- page, form and finishing instructions. + -- Pennant Systems, IBM + langREGIS(16), -- Remote Graphics Instruction Set, + -- Digital Equipment Corp., Maynard MA + langSCS(17), -- SNA Character String + -- Bi-directional print data stream for SNA + -- LU-1 mode of communications + -- IBM + langSPDL(18), -- ISO 10180 Standard Page Description + -- Language + -- ISO Standard + langTEK4014(19), + langPDS(20), + langIGP(21), + langCodeV(22), -- Magnum Code-V, Image and printer control + -- language used to control impact/dot- + -- matrix printers. + -- QMS, Inc., Mobile AL + langDSCDSE(23), -- DSC-DSE: Data Stream Compatible and + -- Emulation Bi-directional print data + -- stream for non-SNA (DSC) and SNA LU-3 + -- 3270 controller (DSE) communications + -- IBM + langWPS(24), -- Windows Printing System, Resource based + -- command/data stream used by Microsoft At + -- Work Peripherals. + -- Developed by the Microsoft Corporation. + langLN03(25), -- Early DEC-PPL3, Digital Equipment Corp. + langCCITT(26), + langQUIC(27), -- QUIC (Quality Information Code), Page + + -- Description Language for laser printers. + + -- Included graphics, printer control + -- capability and emulation of other well- + -- known printer . + -- QMS, Inc. + langCPAP(28), -- Common Printer Access Protocol + -- Digital Equipment Corp. + langDecPPL(29), -- Digital ANSI-Compliant Printing Protocol + -- (DEC-PPL) + -- Digital Equipment Corp. + langSimpleText(30),-- simple-text: character coded data, + -- including NUL, CR , LF, HT, and FF + -- control characters. See ISO 10175 + -- Document Printing Application (DPA) + -- ISO standard, Geneva, Switzerland + langNPAP(31), -- Network Printer Alliance Protocol + -- IEEE 1284.1 + langDOC(32), -- Document Option Commands, Appears in the + -- data stream between data intended for a + -- page description . + -- QMS, Inc. + langimPress(33), -- imPRESS, Page description language + -- originally developed for the ImageServer + -- line of systems. A binary language + -- providing representations for text, + -- simple graphics (rules, lines, conic + -- sections), and some large forms (simple + -- bit-map and CCITT group 3/4 encoded).The + -- language was intended to be sent over an + -- 8-bit channel and supported early + -- document preparation languages (e.g. TeX + -- and TROFF). + -- QMS, Inc. + langPinwriter(34), -- 24 wire dot matrix printer for + -- USA, Europe, and Asia except Japan. + -- More widely used in Germany, and some + -- Asian countries than in US. + -- NEC + langNPDL(35), -- Page printer for Japanese + -- market. + -- NEC + langNEC201PL(36), -- Serial printer language used in the + -- Japanese market. + -- NEC + langAutomatic(37), -- Automatic PDL sensing. Automatic + -- sensing of the interpreter language + -- family by the printer examining the + -- document content. Which actual + + -- interpreter language families are sensed + + -- depends on the printer implementation. + langPages(38), -- Page printer Advanced Graphic Escape Set + -- IBM Japan + langLIPS(39), -- LBP Image Processing System + langTIFF(40), -- Tagged Image File Format (Aldus) + langDiagnostic(41),-- A hex dump of the input to the + -- interpreter + langCaPSL(43), -- Canon Print Systems Language + langEXCL(44), -- Extended Command Language + -- Talaris Systems Inc. + langLCDS(45), -- Line Conditioned Data Stream + -- Xerox Corporation + langXES(46) -- Xerox Escape Sequences + -- Xerox Corporation + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The family name of a Page Description Language (PDL) or + control language which this interpreter in the printer can + interpret or emulate. This type 2 list of enumerations + requires review before additional entries are made." + ::= { prtInterpreterEntry 2 } + +prtInterpreterLangLevel OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..31)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level of the language which this interpreter is + interpreting or emulating. This might contain a value like + '5e' for an interpreter which is emulating level 5e of the PCL + language. It might contain '2' for an interpreter which is + emulating level 2 of the PostScript language. Similarly it + might contain '2' for an interpreter which is emulating level + 2 of the HPGL language." + ::= { prtInterpreterEntry 3 } + +prtInterpreterLangVersion OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..31)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The date code or version of the language which this interpreter + is interpreting or emulating." + ::= { prtInterpreterEntry 4 } + +prtInterpreterDescription OBJECT-TYPE + + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string to identify this interpreter in the localization + specified by prtGeneralCurrentLocalization as opposed to the + language which is being interpreted. It is anticipated that + this string will allow manufacturers to unambiguously identify + their interpreters." + ::= { prtInterpreterEntry 5 } + +prtInterpreterVersion OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..31)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The date code, version number, or other product specific + information tied to this interpreter. This value is + associated with the interpreter, rather than with the version + of the language which is being interpreted or emulated." + ::= { prtInterpreterEntry 6 } + +prtInterpreterDefaultOrientation OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + other(1), + portrait(3), + landscape(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current orientation default for this interpreter. This + value may be overridden for a particular job (e.g., by a + command in the input data stream)." + ::= { prtInterpreterEntry 7 } + +prtInterpreterFeedAddressability OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum interpreter addressability in the feed + direction in 10000 prtMarkerAddressabilityUnit s (see + prtMarkerAddressabilityFeedDir ) for this interpreter. + The value (-1) means other and specifically indicates + that the sub-unit places no restrictions on this parameter." + + ::= { prtInterpreterEntry 8 } + +prtInterpreterXFeedAddressability OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum interpreter addressability in the cross feed + direction in 10000 prtMarkerAddressabilityUnit s (see + prtMarkerAddressabilityXFeedDir) for this interpreter. + The value (-1) means other and specifically indicates + that the sub-unit places no restrictions on this + parameter." + ::= { prtInterpreterEntry 9 } + +prtInterpreterDefaultCharSetIn OBJECT-TYPE + SYNTAX CodedCharSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The default coded character set for input octets + encountered outside a context in which the Page + Description Language established the interpretation + of the octets. + + This value shall be (2) if there is no default." + ::= { prtInterpreterEntry 10 } + +prtInterpreterDefaultCharSetOut OBJECT-TYPE + SYNTAX CodedCharSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The default character set for data coming from this interpreter + through the printer's output channel. + + This value shall be (2) if there is no default." + ::= { prtInterpreterEntry 11 } + +prtInterpreterTwoWay OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + yes(3), + no(4) + } + MAX-ACCESS read-only + STATUS current + + DESCRIPTION + + "Indicates whether or not this interpreter returns information + back to the host." + ::= { prtInterpreterEntry 12 } + +-- The Console Group +-- +-- Many printers have a console on the printer, the operator console, +-- that is used to display and modify the state of the printer. The +-- console can be as simple as a few indicators and switches or as +-- complicated as full screen displays and keyboards. There can be +-- at most one such console. +-- +-- Implementation of every object in this group is mandatory. + +prtConsoleLocalization OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of the prtLocalizationIndex corresponding to + the language, country, and character set to be used for the + console. This localization applies both to the actual display + on the console as well as the encoding of these console + objects in management operations." + ::= { prtGeneralEntry 10 } + +prtConsoleNumberOfDisplayLines OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of lines on the printer's physical + display. This value is 0 if there are no lines on the + physical display or if there is no physical display" + ::= { prtGeneralEntry 11 } + +prtConsoleNumberOfDisplayChars OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of characters per line displayed on the physical + display. This value is 0 if there are no lines on the + physical display or if there is no physical display" + ::= { prtGeneralEntry 12 } + +prtConsoleDisable OBJECT-TYPE + + SYNTAX INTEGER { + + enabled(3), + disabled(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object enables or disables manual input from the + operators console." + ::= { prtGeneralEntry 13 } + +-- The Display Buffer Table + +prtConsoleDisplayBuffer OBJECT IDENTIFIER ::= { printmib 16 } + +prtConsoleDisplayBufferTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtConsoleDisplayBufferEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtConsoleDisplayBuffer 5 } + +prtConsoleDisplayBufferEntry OBJECT-TYPE + SYNTAX PrtConsoleDisplayBufferEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains one entry for each physical line on + the display. Lines cannot be added or deleted. + + Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtConsoleDisplayBufferIndex } + ::= { prtConsoleDisplayBufferTable 1 } + +PrtConsoleDisplayBufferEntry ::= SEQUENCE { + prtConsoleDisplayBufferIndex Integer32, + prtConsoleDisplayBufferText OCTET STRING +} + +prtConsoleDisplayBufferIndex OBJECT-TYPE + SYNTAX Integer32 (1..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value for each console line in the printer. The + value is used to identify this console line. Although + + these values may change due to a major reconfiguration of + + the device (e.g. the addition of new console lines to the + printer), values are expected to remain stable across + successive printer power cycles." + ::= { prtConsoleDisplayBufferEntry 1 } + +prtConsoleDisplayBufferText OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The content of a line in the logical display buffer of + the operator's console of the printer. When a write + operation occurs, normally a critical message, to one of + the LineText strings, the agent should make that line + displayable if a physical display is present. Writing + a zero length string clears the line. It is an + implementation-specific matter as to whether the agent allows + a line to be overwritten before it has been cleared. + Printer generated strings shall be in the localization + specified by ConsoleLocalization. Management Application + generated strings should be localized by the Management + Application." + ::= { prtConsoleDisplayBufferEntry 2 } + +-- The Console Light Table + +prtConsoleLights OBJECT IDENTIFIER ::= { printmib 17 } + +prtConsoleLightTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtConsoleLightEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtConsoleLights 6 } + +prtConsoleLightEntry OBJECT-TYPE + SYNTAX PrtConsoleLightEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtConsoleLightIndex } + ::= { prtConsoleLightTable 1 } + +PrtConsoleLightEntry ::= SEQUENCE { + + prtConsoleLightIndex Integer32, + + prtConsoleOnTime Integer32, + prtConsoleOffTime Integer32, + prtConsoleColor INTEGER, + prtConsoleDescription OCTET STRING +} + +prtConsoleLightIndex OBJECT-TYPE + SYNTAX Integer32 (0..65535) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique value used by the printer to identify this light. + Although these values may change due to a major + reconfiguration of the device (e.g. the addition of new lights + to the printer), values are expected to remain stable across + successive printer power cycles." + ::= { prtConsoleLightEntry 1 } + +prtConsoleOnTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The on time in milliseconds of blinking of this light; 0 + indicates off always. If both prtConsoleOnTime + and prtConsoleOffTime are 0, then the light is + always off." + ::= { prtConsoleLightEntry 2 } + +prtConsoleOffTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The off time in milliseconds of blinking of this light; 0 + indicates on always. If both prtConsoleOnTime + and prtConsoleOffTime are 0, then the light is + always off." + ::= { prtConsoleLightEntry 3 } + +prtConsoleColor OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + white(3), + red(4), + + green(5), + + blue(6), + cyan(7), + magenta(8), + yellow(9) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The color of this light." + ::= { prtConsoleLightEntry 4 } + +prtConsoleDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor description or label of this light in the + localization specified by prtConsoleLocalization." + ::= { prtConsoleLightEntry 5 } + +-- The Alerts Group +-- +-- The prtAlertTable lists all the critical and non-critical alerts +-- currently active in the printer. A critical alert is one that stops +-- the printer from printing immediately and printing can not continue +-- until the critical alert condition is eliminated. Non-critical +-- alerts are those items that do not stop printing but may at some +-- future time. +-- The table contains information on the severity, component, detail +-- location within the component, alert code and description of each +-- critical alert that is currently active within the printer. See +-- 2.2.13 for a more complete description of the alerts table and +-- its management. +-- +-- Implementation of every object in this group is mandatory. + +prtAlert OBJECT IDENTIFIER ::= { printmib 18 } + +prtAlertTable OBJECT-TYPE + SYNTAX SEQUENCE OF PrtAlertEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "" + ::= { prtAlert 1 } + +prtAlertEntry OBJECT-TYPE + + SYNTAX PrtAlertEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entries may exist in the table for each device + index who's device type is `printer'." + INDEX { hrDeviceIndex, prtAlertIndex } + ::= { prtAlertTable 1 } + +PrtAlertEntry ::= SEQUENCE { + prtAlertIndex Integer32, + prtAlertSeverityLevel INTEGER, + prtAlertTrainingLevel INTEGER, + prtAlertGroup INTEGER, + prtAlertGroupIndex Integer32, + prtAlertLocation Integer32, + prtAlertCode INTEGER, + prtAlertDescription OCTET STRING, + prtAlertTime TimeTicks +} + +prtAlertIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The index value used to determine which alerts + have been added or removed from the alert table. + This is an incrementing integer starting from zero + every time the printer is reset. When the printer + adds an alert to the table, that alert is assigned + the next higher integer value from the last item + entered into the table. If the index value reaches + its maximum value, the next item entered will cause + the index value to roll over and start at zero + again. The first event placed in the alert table + after a reset of the printer shall + have an index value of 1. NOTE: The management + application will read the alert table when a trap + or event notification occurs or at a periodic rate + and then parse the table to determine if any new + entries were added by comparing the last known index + value with the current highest index value. The + management application will then update its copy of + the alert table. When the printer discovers that + an alert is no longer active, the printer shall + remove the row for that alert from the table and + + shall reduce the number of rows in the table. The + + printer may add or delete any number of rows from + the table at any time. The management station + can detect when binary alerts have been deleted by + requesting an attribute of each alert, and noting + alerts as deleted when that retrieval is not possible." + ::= { prtAlertEntry 1 } + +prtAlertSeverityLevel OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + other(1), + critical(3), + warning(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level of severity of this alert table entry. The printer + determines the severity level assigned to each entry into the + table." + ::= { prtAlertEntry 2 } + +prtAlertTrainingLevel OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + untrained(3), + trained(4), + fieldService(5), + management(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The level of training required to handle this alert. The + training level is an enumeration that is determined and + assigned by the printer manufacturer based on the information + or the training required to handle this alert. The printer + will break alerts into these different training levels. It is + the responsibility of the management application in the system + to determine how a particular alert is handled and how and to + whom that alert is routed. The following are the four + training levels of alerts: + + Field Service - Alerts that typically require advanced + training and technical knowledge of the printer + + and its sub-units. An example of a technical + + person would be a manufacture's Field Service + representative, or other person formally + trained by the manufacturer or similar + representative. + Trained - Alerts that require an intermediate or moderate + level of knowledge of the printer and its + sub-units. A typical examples of alerts that + a trained operator can handle is replacing + toner cartridges. + Untrained - Alerts that can be fixed without prior + training either because the action to correct + the alert is obvious or the printer can help the + untrained person fix the problem. A typical + example of such an alert is reloading paper + trays and emptying output bins on a low end + printer. + Management - Alerts that have to do with overall + operation of and configuration of the printer. + Examples of management events are configuration + change of sub-units." + ::= { prtAlertEntry 3 } + +prtAlertGroup OBJECT-TYPE + -- This value is a type 1 enumeration + SYNTAX INTEGER { + other(1), + hostResourcesMIBStorageTable(3), + hostResourcesMIBDeviceTable(4), + generalPrinter(5), + cover(6), + localization(7), + input(8), + output(9), + marker(10), + markerSupplies(11), + markerColorant(12), + mediaPath(13), + channel(14), + interpreter(15), + consoleDisplayBuffer(16), + consoleLights(17) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of sub-unit within the printer model that this alert + is related. Input, output, and markers are examples of + + printer model groups, i.e., examples of types of sub-units. + + Whereever possible, these enumerations match the + sub-identifier that identifies the relevant table in the + printmib." + ::= { prtAlertEntry 4 } + +prtAlertGroupIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An index of the row within the principle table in the + group identified by prtAlertGroup that represents the + sub-unit of the printer that caused this alert. The + combination of the Group and the GroupIndex defines + exactly which printer sub-unit caused the alert.; for + example, Input #3, Output #2, and Marker #1. + + Every object in this MIB is indexed with hrDeviceIndex and + optionally, another index variable. If this other index + variable is present in the table that generated the alert, it + will be used as the value for this object. Otherwise, this + value shall be -1." + ::= { prtAlertEntry 5 } + +prtAlertLocation OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The sub-unit location that is defined by the printer + manufacturer to further refine the location of this alert + within the designated sub-unit. The location is used in + conjunction with the Group and GroupIndex values; for + example, there is an alert in Input #2 at location number 7." + ::= { prtAlertEntry 6 } + +prtAlertCode OBJECT-TYPE + -- This value is a type 2 enumeration + SYNTAX INTEGER { + other(1), + unknown(2), + -- codes common to serveral groups + coverOpen(3), + coverClosed(4), + interlockOpen(5), + interlockClosed(6), + + configurationChange(7), + + jam(8), + -- general Printer group + doorOpen(501), + doorClosed(502), + powerUp(503), + powerDown(504), + -- Input Group + inputMediaTrayMissing(801), + inputMediaSizeChange(802), + inputMediaWeightChange(803), + inputMediaTypeChange(804), + inputMediaColorChange(805), + inputMediaFormPartsChange(806), + inputMediaSupplyLow(807), + inputMediaSupplyEmpty(808), + -- Output Group + outputMediaTrayMissing(901), + outputMediaTrayAlmostFull(902), + outputMediaTrayFull(903), + -- Marker group + markerFuserUnderTemperature(1001), + markerFuserOverTemperature(1002), + -- Marker Supplies group + markerTonerEmpty(1101), + markerInkEmpty(1102), + markerPrintRibbonEmpty(1103), + markerTonerAlmostEmpty(1104), + markerInkAlmostEmpty(1105), + markerPrintRibbonAlmostEmpty(1106), + markerWasteTonerReceptacleAlmostFull(1107), + markerWasteInkReceptacleAlmostFull(1108), + markerWasteTonerReceptacleFull(1109), + markerWasteInkReceptacleFull(1110), + markerOpcLifeAlmostOver(1111), + markerOpcLifeOver(1112), + markerDeveloperAlmostEmpty(1113), + markerDeveloperEmpty(1114), + -- Media Path Device Group + mediaPathMediaTrayMissing(1301), + mediaPathMediaTrayAlmostFull(1302), + mediaPathMediaTrayFull(1303), + -- interpreter Group + interpreterMemoryIncrease(1501), + interpreterMemoryDecrease(1502), + interpreterCartridgeAdded(1503), + interpreterCartridgeDeleted(1504), + interpreterResourceAdded(1505), + + interpreterResourceDeleted(1506), + + interpreterResourceUnavailable(1507) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The code that describes the type of alert for this entry in + the table. There are different codes for each + sub-unit type: for example, Media Supply Low and Media + Supply Empty are Aler codes for the Input sub-unit." + ::= { prtAlertEntry 7} + +prtAlertDescription OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A description of this alert entry in the localization + specified by prtGeneralCurrentLocalization. The description is + provided by the printer to further elaborate on the enumerated + alert or provide information in the case where the code is + classified ask `other' or `unknown'. The printer is required + to return a description string but the string may be a null + string." + ::= { prtAlertEntry 8 } + +printerV1Alert OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The value of the enterprise-specific oid in a SNMPv1 trap sent + signalling a critical event in the prtAlertTable." + ::= { prtAlert 2 } + +printerV2AlertPrefix OBJECT IDENTIFIER ::= { printerV1Alert 0 } + +printerV2Alert NOTIFICATION-TYPE + OBJECTS { prtAlertIndex, prtAlertSeverityLevel, prtAlertGroup, + prtAlertGroupIndex, prtAlertLocation, prtAlertCode } + STATUS current + DESCRIPTION + "This trap is sent whenever a critical event is added to the + prtAlertTable." + ::= { printerV2AlertPrefix 1 } + +-- Note that the SNMPv2 to SNMPv1 translation rules dictate that the +-- preceding structure will result in SNMPv1 traps of the following +-- form: +-- + +-- printerAlert TRAP-TYPE + +-- ENTERPRISE printerV1Alert +-- VARIABLES { prtAlertIndex, prtAlertSeverityLevel, prtAlertGroup, +-- prtAlertGroupIndex, prtAlertLocation, prtAlertCode } +-- DESCRIPTION +-- "This trap is sent whenever a critical event is added to the +-- prtAlertTable." +-- ::= 1 + +-- The Alert Time Group +-- +-- This group is optional. However, to claim conformance to this +-- group, it is necessary to implement every object in the group. + +prtAlertTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time that this alert was + generated." + ::= { prtAlertEntry 9 } + +-- Conformance Information + +prtMIBConformance OBJECT IDENTIFIER ::= { printmib 2 } + +-- compliance statements +prtMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for agents that implement the + printer MIB." + MODULE -- this module + MANDATORY-GROUPS { prtGeneralGroup, prtInputGroup, prtOutputGroup, + prtMarkerGroup, prtMediaPathGroup, + prtChannelGroup, prtInterpreterGroup, + prtConsoleGroup, prtAlertTableGroup } + + OBJECT prtGeneralReset + SYNTAX INTEGER { + notResetting(3), + resetToNVRAM(5) + } + DESCRIPTION + + "It is conformant to implement just these two states in + + this object. Any additional states are optional." + + OBJECT prtConsoleOnTime + MIN-ACCESS read-only + DESCRIPTION + "It is conformant to implement this object as read-only." + + OBJECT prtConsoleOffTime + MIN-ACCESS read-only + DESCRIPTION + "It is conformant to implement this object as read-only." + + -- the prtResponsiblePartyGroup, prtExtendedInputGroup, + -- prtInputMediaGroup, prtExtendedOutputGroup, + -- prtOutputDimensionsGroup, prtOutputFeaturesGroup, + -- prtMarkerSuppliesGroup, prtMarkerColorantGroup, + -- and the prtAlertTimeGroup are completely optional. + ::= { prtMIBConformance 1 } + +prtMIBGroups OBJECT IDENTIFIER ::= { prtMIBConformance 2 } + +prtGeneralGroup OBJECT-GROUP + OBJECTS { prtGeneralConfigChanges, prtGeneralCurrentLocalization, + prtGeneralReset, prtCoverDescription, prtCoverStatus, + prtLocalizationLanguage, prtLocalizationCountry, + prtLocalizationCharacterSet, prtStorageRefIndex, + prtDeviceRefIndex } + STATUS current + DESCRIPTION + "The general printer group." + ::= { prtMIBGroups 1 } + +prtResponsiblePartyGroup OBJECT-GROUP + OBJECTS { prtGeneralCurrentOperator, prtGeneralServicePerson } + STATUS current + DESCRIPTION + "The responsible party group contains contact information for + humans responsible for the printer." + ::= { prtMIBGroups 2 } + +prtInputGroup OBJECT-GROUP + OBJECTS { prtInputDefaultIndex, prtInputType, prtInputDimUnit, + prtInputMediaDimFeedDirDeclared, + prtInputMediaDimXFeedDirDeclared, + prtInputMediaDimFeedDirChosen, + prtInputMediaDimXFeedDirChosen, prtInputCapacityUnit, + prtInputMaxCapacity, prtInputCurrentLevel, + + prtInputStatus, prtInputMediaName } + + STATUS current + DESCRIPTION + "The input group." + ::= { prtMIBGroups 3 } + +prtExtendedInputGroup OBJECT-GROUP + OBJECTS { prtInputName, prtInputVendorName, prtInputModel, + prtInputVersion, prtInputSerialNumber, + prtInputDescription, prtInputSecurity } + STATUS current + DESCRIPTION + "The extended input group." + ::= { prtMIBGroups 4 } + +prtInputMediaGroup OBJECT-GROUP + OBJECTS { prtInputMediaWeight, prtInputMediaType, + prtInputMediaColor, prtInputMediaFormParts } + STATUS current + DESCRIPTION + "The input media group." + ::= { prtMIBGroups 5 } + +prtOutputGroup OBJECT-GROUP + OBJECTS { prtOutputDefaultIndex, prtOutputType, + prtOutputCapacityUnit, prtOutputMaxCapacity, + prtOutputRemainingCapacity, prtOutputStatus } + STATUS current + DESCRIPTION + "The output group." + ::= { prtMIBGroups 6 } + +prtExtendedOutputGroup OBJECT-GROUP + OBJECTS { prtOutputName, prtOutputVendorName, prtOutputModel, + prtOutputVersion, prtOutputSerialNumber, + prtOutputDescription, prtOutputSecurity } + STATUS current + DESCRIPTION + "The extended output group." + ::= { prtMIBGroups 7 } + +prtOutputDimensionsGroup OBJECT-GROUP + OBJECTS { prtOutputDimUnit, prtOutputMaxDimFeedDir, + prtOutputMaxDimXFeedDir, prtOutputMinDimFeedDir, + prtOutputMinDimXFeedDir } + STATUS current + DESCRIPTION + "The output dimensions group" + + ::= { prtMIBGroups 8 } + +prtOutputFeaturesGroup OBJECT-GROUP + OBJECTS { prtOutputStackingOrder, + prtOutputPageDeliveryOrientation, prtOutputBursting, + prtOutputDecollating, prtOutputPageCollated, + prtOutputOffsetStacking } + STATUS current + DESCRIPTION + "The output features group." + ::= { prtMIBGroups 9 } + +prtMarkerGroup OBJECT-GROUP + OBJECTS { prtMarkerDefaultIndex, prtMarkerMarkTech, + prtMarkerCounterUnit, prtMarkerLifeCount, + prtMarkerPowerOnCount, prtMarkerProcessColorants, + prtMarkerSpotColorants, prtMarkerAddressabilityUnit, + prtMarkerAddressabilityFeedDir, + prtMarkerAddressabilityXFeedDir, prtMarkerNorthMargin, + prtMarkerSouthMargin, prtMarkerWestMargin, + prtMarkerEastMargin, prtMarkerStatus } + STATUS current + DESCRIPTION + "The marker group." + ::= { prtMIBGroups 10 } + +prtMarkerSuppliesGroup OBJECT-GROUP + OBJECTS { prtMarkerSuppliesMarkerIndex, + prtMarkerSuppliesColorantIndex, prtMarkerSuppliesClass, + prtMarkerSuppliesType, prtMarkerSuppliesDescription, + prtMarkerSuppliesSupplyUnit, + prtMarkerSuppliesMaxCapacity, prtMarkerSuppliesLevel } + STATUS current + DESCRIPTION + "The marker supplies group." + ::= { prtMIBGroups 11 } + +prtMarkerColorantGroup OBJECT-GROUP + OBJECTS { prtMarkerColorantMarkerIndex, prtMarkerColorantRole, + prtMarkerColorantValue, prtMarkerColorantTonality } + STATUS current + DESCRIPTION + "The marker colorant group." + ::= { prtMIBGroups 12 } + +prtMediaPathGroup OBJECT-GROUP + OBJECTS { prtMediaPathDefaultIndex, prtMediaPathMaxSpeedPrintUnit, + prtMediaPathMediaSizeUnit, prtMediaPathMaxSpeed, + + prtMediaPathMaxMediaFeedDir, + + prtMediaPathMaxMediaXFeedDir, + prtMediaPathMinMediaFeedDir, + prtMediaPathMinMediaXFeedDir, prtMediaPathType, + prtMediaPathDescription, prtMediaPathStatus} + STATUS current + DESCRIPTION + "The media path group." + ::= { prtMIBGroups 13 } + +prtChannelGroup OBJECT-GROUP + OBJECTS { prtChannelType, prtChannelProtocolVersion, + prtChannelCurrentJobCntlLangIndex, + prtChannelDefaultPageDescLangIndex, prtChannelState, + prtChannelIfIndex, prtChannelStatus } + STATUS current + DESCRIPTION + "The channel group." + ::= { prtMIBGroups 14 } + +prtInterpreterGroup OBJECT-GROUP + OBJECTS { prtInterpreterLangFamily, prtInterpreterLangLevel, + prtInterpreterLangVersion, prtInterpreterDescription, + prtInterpreterVersion, prtInterpreterDefaultOrientation, + prtInterpreterFeedAddressability, + prtInterpreterXFeedAddressability, + prtInterpreterDefaultCharSetIn, + prtInterpreterDefaultCharSetOut, prtInterpreterTwoWay } + STATUS current + DESCRIPTION + "The interpreter group." + ::= { prtMIBGroups 15 } + +prtConsoleGroup OBJECT-GROUP + OBJECTS { prtConsoleLocalization, prtConsoleNumberOfDisplayLines, + prtConsoleNumberOfDisplayChars, prtConsoleDisable, + prtConsoleDisplayBufferText, prtConsoleOnTime, + prtConsoleOffTime, prtConsoleColor, + prtConsoleDescription } + STATUS current + DESCRIPTION + "The console group." + ::= { prtMIBGroups 16 } + +prtAlertTableGroup OBJECT-GROUP + OBJECTS { prtAlertSeverityLevel, prtAlertTrainingLevel, + prtAlertGroup, prtAlertGroupIndex, prtAlertLocation, + prtAlertCode, prtAlertDescription } + + STATUS current + + DESCRIPTION + "The alert table group." + ::= { prtMIBGroups 17 } + +prtAlertTimeGroup OBJECT-GROUP + OBJECTS { prtAlertTime } + STATUS current + DESCRIPTION + "The alert time group." + ::= { prtMIBGroups 18 } + +END diff --git a/pandora_console/attachment/mibs/Q-BRIDGE-MIB b/pandora_console/attachment/mibs/Q-BRIDGE-MIB new file mode 100644 index 0000000000..4938751ffa --- /dev/null +++ b/pandora_console/attachment/mibs/Q-BRIDGE-MIB @@ -0,0 +1,1876 @@ +-- extracted from rfc2674.txt +-- at Mon Nov 15 17:12:07 1999 + +Q-BRIDGE-MIB DEFINITIONS ::= BEGIN + +-- ------------------------------------------------------------- +-- MIB for IEEE 802.1Q Devices +-- ------------------------------------------------------------- + +IMPORTS +MODULE-IDENTITY, OBJECT-TYPE, +Counter32, Counter64, Unsigned32, TimeTicks +FROM SNMPv2-SMI +RowStatus, TruthValue, TEXTUAL-CONVENTION, MacAddress +FROM SNMPv2-TC +SnmpAdminString +FROM SNMP-FRAMEWORK-MIB +MODULE-COMPLIANCE, OBJECT-GROUP +FROM SNMPv2-CONF +dot1dBridge, dot1dBasePortEntry, dot1dBasePort +FROM BRIDGE-MIB +EnabledStatus +FROM P-BRIDGE-MIB +TimeFilter +FROM RMON2-MIB; + +qBridgeMIB MODULE-IDENTITY +LAST-UPDATED "9908250000Z" +ORGANIZATION "IETF Bridge MIB Working Group" +CONTACT-INFO +" Les Bell +Postal: 3Com Europe Ltd. +3Com Centre, Boundary Way +Hemel Hempstead, Herts. HP2 7YU +UK +Phone: +44 1442 438025 +Email: Les_Bell@3Com.com + +Andrew Smith +Postal: Extreme Networks +3585 Monroe St. +Santa Clara CA 95051 +USA +Phone: +1 408 579 2821 +Email: andrew@extremenetworks.com + +Paul Langille +Postal: Newbridge Networks +5 Corporate Drive +Andover, MA 01810 +USA +Phone: +1 978 691 4665 +Email: langille@newbridge.com + +Anil Rijhsinghani +Postal: Cabletron Systems +50 Minuteman Road +Andover, MA 01810 +USA +Phone: +1 978 684 1295 +Email: anil@cabletron.com + +Keith McCloghrie +Postal: cisco Systems, Inc. +170 West Tasman Drive +San Jose, CA 95134-1706 +USA +Phone: +1 408 526 5260 +Email: kzm@cisco.com" +DESCRIPTION +"The VLAN Bridge MIB module for managing Virtual Bridged +Local Area Networks, as defined by IEEE 802.1Q-1998." + +-- revision history + +REVISION "9908250000Z" +DESCRIPTION +"Initial version, published as RFC 2674." + +::= { dot1dBridge 7 } + +qBridgeMIBObjects OBJECT IDENTIFIER ::= { qBridgeMIB 1 } + +-- ------------------------------------------------------------- +-- Textual Conventions +-- ------------------------------------------------------------- + +PortList ::= TEXTUAL-CONVENTION +STATUS current +DESCRIPTION +"Each octet within this value specifies a set of eight +ports, with the first octet specifying ports 1 through +8, the second octet specifying ports 9 through 16, etc. +Within each octet, the most significant bit represents +the lowest numbered port, and the least significant bit +represents the highest numbered port. Thus, each port +of the bridge is represented by a single bit within the +value of this object. If that bit has a value of '1' +then that port is included in the set of ports; the port +is not included if its bit has a value of '0'." +SYNTAX OCTET STRING + +VlanIndex ::= TEXTUAL-CONVENTION +STATUS current +DESCRIPTION +"A value used to index per-VLAN tables: values of 0 and +4095 are not permitted; if the value is between 1 and +4094 inclusive, it represents an IEEE 802.1Q VLAN-ID with +global scope within a given bridged domain (see VlanId +textual convention). If the value is greater than 4095 +then it represents a VLAN with scope local to the +particular agent, i.e. one without a global VLAN-ID +assigned to it. Such VLANs are outside the scope of +IEEE 802.1Q but it is convenient to be able to manage them +in the same way using this MIB." +SYNTAX Unsigned32 + +VlanId ::= TEXTUAL-CONVENTION +STATUS current +DESCRIPTION +"A 12-bit VLAN ID used in the VLAN Tag header." +SYNTAX INTEGER (1..4094) + +-- ------------------------------------------------------------- +-- groups in the Q-BRIDGE MIB +-- ------------------------------------------------------------- + +dot1qBase OBJECT IDENTIFIER ::= { qBridgeMIBObjects 1 } +dot1qTp OBJECT IDENTIFIER ::= { qBridgeMIBObjects 2 } +dot1qStatic OBJECT IDENTIFIER ::= { qBridgeMIBObjects 3 } +dot1qVlan OBJECT IDENTIFIER ::= { qBridgeMIBObjects 4 } + +-- ------------------------------------------------------------- + +-- ------------------------------------------------------------- +-- dot1qBase group +-- ------------------------------------------------------------- + +dot1qVlanVersionNumber OBJECT-TYPE +SYNTAX INTEGER { +version1(1) +} +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The version number of IEEE 802.1Q that this device +supports." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.1.1" +::= { dot1qBase 1 } + +dot1qMaxVlanId OBJECT-TYPE +SYNTAX VlanId +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The maximum IEEE 802.1Q VLAN ID that this device +supports." +REFERENCE +"IEEE 802.1Q/D11 Section 9.3.2.3" +::= { dot1qBase 2 } + +dot1qMaxSupportedVlans OBJECT-TYPE +SYNTAX Unsigned32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The maximum number of IEEE 802.1Q VLANs that this +device supports." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.1.1" +::= { dot1qBase 3 } + +dot1qNumVlans OBJECT-TYPE +SYNTAX Unsigned32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The current number of IEEE 802.1Q VLANs that are +configured in this device." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.1.1" +::= { dot1qBase 4 } + +dot1qGvrpStatus OBJECT-TYPE +SYNTAX EnabledStatus +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The administrative status requested by management for +GVRP. The value enabled(1) indicates that GVRP should +be enabled on this device, on all ports for which it has +not been specifically disabled. When disabled(2), GVRP +is disabled on all ports and all GVRP packets will be +forwarded transparently. This object affects all GVRP +Applicant and Registrar state machines. A transition +from disabled(2) to enabled(1) will cause a reset of all +GVRP state machines on all ports." +DEFVAL { enabled } +::= { dot1qBase 5 } + +-- ------------------------------------------------------------- +-- the dot1qTp group +-- ------------------------------------------------------------- + +-- ------------------------------------------------------------- +-- the current Filtering Database Table +-- ------------------------------------------------------------- +dot1qFdbTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qFdbEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table that contains configuration and control +information for each Filtering Database currently +operating on this device. Entries in this table appear +automatically when VLANs are assigned FDB IDs in the +dot1qVlanCurrentTable." +::= { dot1qTp 1 } + +dot1qFdbEntry OBJECT-TYPE +SYNTAX Dot1qFdbEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Information about a specific Filtering Database." +INDEX { dot1qFdbId } +::= { dot1qFdbTable 1 } + +Dot1qFdbEntry ::= +SEQUENCE { +dot1qFdbId +Unsigned32, +dot1qFdbDynamicCount +Counter32 +} + +dot1qFdbId OBJECT-TYPE +SYNTAX Unsigned32 +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The identity of this Filtering Database." +::= { dot1qFdbEntry 1 } + +dot1qFdbDynamicCount OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The current number of dynamic entries in this +Filtering Database." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.1.1.3" +::= { dot1qFdbEntry 2 } + +-- ------------------------------------------------------------- +-- Multiple Forwarding Databases for 802.1Q Transparent devices +-- This table is an alternative to the dot1dTpFdbTable, +-- previously defined for 802.1D devices which only support a +-- single Forwarding Database. +-- ------------------------------------------------------------- + +dot1qTpFdbTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qTpFdbEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table that contains information about unicast entries +for which the device has forwarding and/or filtering +information. This information is used by the +transparent bridging function in determining how to +propagate a received frame." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.7" +::= { dot1qTp 2 } + +dot1qTpFdbEntry OBJECT-TYPE +SYNTAX Dot1qTpFdbEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Information about a specific unicast MAC address for +which the device has some forwarding and/or filtering +information." +INDEX { dot1qFdbId, dot1qTpFdbAddress } +::= { dot1qTpFdbTable 1 } + +Dot1qTpFdbEntry ::= +SEQUENCE { +dot1qTpFdbAddress +MacAddress, +dot1qTpFdbPort +INTEGER, +dot1qTpFdbStatus +INTEGER +} + +dot1qTpFdbAddress OBJECT-TYPE +SYNTAX MacAddress +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A unicast MAC address for which the device has +forwarding and/or filtering information." +::= { dot1qTpFdbEntry 1 } + +dot1qTpFdbPort OBJECT-TYPE +SYNTAX INTEGER (0..65535) +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"Either the value '0', or the port number of the port on +which a frame having a source address equal to the value +of the corresponding instance of dot1qTpFdbAddress has +been seen. A value of '0' indicates that the port +number has not been learned but that the device does +have some forwarding/filtering information about this +address (e.g. in the dot1qStaticUnicastTable). +Implementors are encouraged to assign the port value to +this object whenever it is learned even for addresses +for which the corresponding value of dot1qTpFdbStatus is +not learned(3)." +::= { dot1qTpFdbEntry 2 } + +dot1qTpFdbStatus OBJECT-TYPE +SYNTAX INTEGER { +other(1), +invalid(2), +learned(3), +self(4), +mgmt(5) +} +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The status of this entry. The meanings of the values +are: +other(1) - none of the following. This may include +the case where some other MIB object (not the +corresponding instance of dot1qTpFdbPort, nor an +entry in the dot1qStaticUnicastTable) is being +used to determine if and how frames addressed to +the value of the corresponding instance of +dot1qTpFdbAddress are being forwarded. +invalid(2) - this entry is no longer valid (e.g., it +was learned but has since aged out), but has not +yet been flushed from the table. +learned(3) - the value of the corresponding instance +of dot1qTpFdbPort was learned and is being used. + +self(4) - the value of the corresponding instance of +dot1qTpFdbAddress represents one of the device's +addresses. The corresponding instance of +dot1qTpFdbPort indicates which of the device's +ports has this address. +mgmt(5) - the value of the corresponding instance of +dot1qTpFdbAddress is also the value of an +existing instance of dot1qStaticAddress." +::= { dot1qTpFdbEntry 3 } + +-- ------------------------------------------------------------- +-- Dynamic Group Registration Table +-- ------------------------------------------------------------- + +dot1qTpGroupTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qTpGroupEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing filtering information for VLANs +configured into the bridge by (local or network) +management, or learnt dynamically, specifying the set of +ports to which frames received on a VLAN for this FDB +and containing a specific Group destination address are +allowed to be forwarded." +::= { dot1qTp 3 } + +dot1qTpGroupEntry OBJECT-TYPE +SYNTAX Dot1qTpGroupEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Filtering information configured into the bridge by +management, or learnt dynamically, specifying the set of +ports to which frames received on a VLAN and containing +a specific Group destination address, are allowed to be +forwarded. The subset of these ports learnt dynamically +is also provided." +INDEX { dot1qVlanIndex, dot1qTpGroupAddress } +::= { dot1qTpGroupTable 1 } + +Dot1qTpGroupEntry ::= +SEQUENCE { +dot1qTpGroupAddress +MacAddress, +dot1qTpGroupEgressPorts +PortList, +dot1qTpGroupLearnt +PortList +} + +dot1qTpGroupAddress OBJECT-TYPE +SYNTAX MacAddress +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The destination Group MAC address in a frame to which +this entry's filtering information applies." +::= { dot1qTpGroupEntry 1 } + +dot1qTpGroupEgressPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The complete set of ports, in this VLAN, to which +frames destined for this Group MAC address are currently +being explicitly forwarded. This does not include ports +for which this address is only implicitly forwarded, in +the dot1qForwardAllPorts list." +::= { dot1qTpGroupEntry 2 } + +dot1qTpGroupLearnt OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The subset of ports in dot1qTpGroupEgressPorts which +were learnt by GMRP or some other dynamic mechanism, in +this Filtering database." +::= { dot1qTpGroupEntry 3 } + +-- ------------------------------------------------------------- +-- Service Requirements Group +-- ------------------------------------------------------------- + +dot1qForwardAllTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qForwardAllEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing forwarding information for each +VLAN, specifying the set of ports to which forwarding of +all multicasts applies, configured statically by +management or dynamically by GMRP. An entry appears in +this table for all VLANs that are currently +instantiated." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.2, 12.7.7" +::= { dot1qTp 4 } + +dot1qForwardAllEntry OBJECT-TYPE +SYNTAX Dot1qForwardAllEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Forwarding information for a VLAN, specifying the set +of ports to which all multicasts should be forwarded, +configured statically by management or dynamically by +GMRP." +INDEX { dot1qVlanIndex } +::= { dot1qForwardAllTable 1 } + +Dot1qForwardAllEntry ::= +SEQUENCE { +dot1qForwardAllPorts +PortList, +dot1qForwardAllStaticPorts +PortList, +dot1qForwardAllForbiddenPorts +PortList +} + +dot1qForwardAllPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The complete set of ports in this VLAN to which all +multicast group-addressed frames are to be forwarded. +This includes ports for which this need has been +determined dynamically by GMRP, or configured statically +by management." +::= { dot1qForwardAllEntry 1 } + +dot1qForwardAllStaticPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The set of ports configured by management in this VLAN +to which all multicast group-addressed frames are to be +forwarded. Ports entered in this list will also appear +in the complete set shown by dot1qForwardAllPorts. This +value will be restored after the device is reset. This +only applies to ports that are members of the VLAN, +defined by dot1qVlanCurrentEgressPorts. A port may not +be added in this set if it is already a member of the +set of ports in dot1qForwardAllForbiddenPorts. The +default value is a string of ones of appropriate length, +to indicate standard non-EFS behaviour, i.e. forward +all multicasts to all ports." +::= { dot1qForwardAllEntry 2 } + +dot1qForwardAllForbiddenPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The set of ports configured by management in this VLAN +for which the Service Requirement attribute Forward All +Multicast Groups may not be dynamically registered by +GMRP. This value will be restored after the device is +reset. A port may not be added in this set if it is +already a member of the set of ports in +dot1qForwardAllStaticPorts. The default value is a +string of zeros of appropriate length." +::= { dot1qForwardAllEntry 3 } + +dot1qForwardUnregisteredTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qForwardUnregisteredEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing forwarding information for each +VLAN, specifying the set of ports to which forwarding of +multicast group-addressed frames for which there is no +more specific forwarding information applies. This is +configured statically by management and determined +dynamically by GMRP. An entry appears in this table for +all VLANs that are currently instantiated." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.2, 12.7.7" +::= { dot1qTp 5 } + +dot1qForwardUnregisteredEntry OBJECT-TYPE +SYNTAX Dot1qForwardUnregisteredEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Forwarding information for a VLAN, specifying the set +of ports to which all multicasts for which there is no +more specific forwarding information shall be forwarded. +This is configured statically by management or +dynamically by GMRP." +INDEX { dot1qVlanIndex } +::= { dot1qForwardUnregisteredTable 1 } + +Dot1qForwardUnregisteredEntry ::= +SEQUENCE { +dot1qForwardUnregisteredPorts +PortList, +dot1qForwardUnregisteredStaticPorts +PortList, +dot1qForwardUnregisteredForbiddenPorts +PortList +} + +dot1qForwardUnregisteredPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The complete set of ports in this VLAN to which +multicast group-addressed frames for which there is no +more specific forwarding information will be forwarded. +This includes ports for which this need has been +determined dynamically by GMRP, or configured statically +by management." +::= { dot1qForwardUnregisteredEntry 1 } + +dot1qForwardUnregisteredStaticPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The set of ports configured by management, in this +VLAN, to which multicast group-addressed frames for +which there is no more specific forwarding information +are to be forwarded. Ports entered in this list will +also appear in the complete set shown by +dot1qForwardUnregisteredPorts. This value will be +restored after the device is reset. A port may not be +added in this set if it is already a member of the set +of ports in dot1qForwardUnregisteredForbiddenPorts. The +default value is a string of zeros of appropriate +length, although this has no effect with the default +value of dot1qForwardAllStaticPorts." +::= { dot1qForwardUnregisteredEntry 2 } + +dot1qForwardUnregisteredForbiddenPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The set of ports configured by management in this VLAN +for which the Service Requirement attribute Forward +Unregistered Multicast Groups may not be dynamically +registered by GMRP. This value will be restored after +the device is reset. A port may not be added in this +set if it is already a member of the set of ports in +dot1qForwardUnregisteredStaticPorts. The default value +is a string of zeros of appropriate length." +::= { dot1qForwardUnregisteredEntry 3 } + +-- ------------------------------------------------------------- +-- The Static (Destination-Address Filtering) Database +-- ------------------------------------------------------------- + +dot1qStaticUnicastTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qStaticUnicastEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing filtering information for Unicast +MAC addresses for each Filtering Database, configured +into the device by (local or network) management +specifying the set of ports to which frames received +from specific ports and containing specific unicast +destination addresses are allowed to be forwarded. A +value of zero in this table as the port number from +which frames with a specific destination address are +received, is used to specify all ports for which there +is no specific entry in this table for that particular +destination address. Entries are valid for unicast +addresses only." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.7, +ISO/IEC 15802-3 Section 7.9.1" +::= { dot1qStatic 1 } + +dot1qStaticUnicastEntry OBJECT-TYPE +SYNTAX Dot1qStaticUnicastEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Filtering information configured into the device by +(local or network) management specifying the set of +ports to which frames received from a specific port and +containing a specific unicast destination address are +allowed to be forwarded." +INDEX { +dot1qFdbId, +dot1qStaticUnicastAddress, +dot1qStaticUnicastReceivePort +} +::= { dot1qStaticUnicastTable 1 } + +Dot1qStaticUnicastEntry ::= +SEQUENCE { +dot1qStaticUnicastAddress +MacAddress, +dot1qStaticUnicastReceivePort +INTEGER, +dot1qStaticUnicastAllowedToGoTo +PortList, +dot1qStaticUnicastStatus +INTEGER +} + +dot1qStaticUnicastAddress OBJECT-TYPE +SYNTAX MacAddress +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The destination MAC address in a frame to which this +entry's filtering information applies. This object must +take the value of a unicast address." +::= { dot1qStaticUnicastEntry 1 } + +dot1qStaticUnicastReceivePort OBJECT-TYPE +SYNTAX INTEGER (0..65535) +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Either the value '0', or the port number of the port +from which a frame must be received in order for this +entry's filtering information to apply. A value of zero +indicates that this entry applies on all ports of the +device for which there is no other applicable entry." +::= { dot1qStaticUnicastEntry 2 } + +dot1qStaticUnicastAllowedToGoTo OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The set of ports for which a frame with a specific +unicast address will be flooded in the event that it +has not been learned. It also specifies the set of +ports a specific unicast address may be dynamically +learnt on. The dot1qTpFdbTable will have an equivalent +entry with a dot1qTpFdbPort value of '0' until this +address has been learnt, when it will be updated with +the port the address has been seen on. This only +applies to ports that are members of the VLAN, defined +by dot1qVlanCurrentEgressPorts. The default value of +this object is a string of ones of appropriate length." +REFERENCE +"IEEE 802.1Q/D11 Table 8-5, ISO/IEC 15802-3 Table 7-5" +::= { dot1qStaticUnicastEntry 3 } + +dot1qStaticUnicastStatus OBJECT-TYPE +SYNTAX INTEGER { +other(1), +invalid(2), +permanent(3), +deleteOnReset(4), +deleteOnTimeout(5) +} +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"This object indicates the status of this entry. +other(1) - this entry is currently in use but +the conditions under which it will remain +so differ from the following values. +invalid(2) - writing this value to the object +removes the corresponding entry. +permanent(3) - this entry is currently in use +and will remain so after the next reset of +the bridge. +deleteOnReset(4) - this entry is currently in +use and will remain so until the next +reset of the bridge. + +deleteOnTimeout(5) - this entry is currently in +use and will remain so until it is aged out." +DEFVAL { permanent } +::= { dot1qStaticUnicastEntry 4 } + +dot1qStaticMulticastTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qStaticMulticastEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing filtering information for Multicast +and Broadcast MAC addresses for each VLAN, configured +into the device by (local or network) management +specifying the set of ports to which frames received +from specific ports and containing specific Multicast +and Broadcast destination addresses are allowed to be +forwarded. A value of zero in this table as the port +number from which frames with a specific destination +address are received, is used to specify all ports for +which there is no specific entry in this table for that +particular destination address. Entries are valid for +Multicast and Broadcast addresses only." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.7, +ISO/IEC 15802-3 Section 7.9.1" +::= { dot1qStatic 2 } + +dot1qStaticMulticastEntry OBJECT-TYPE +SYNTAX Dot1qStaticMulticastEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Filtering information configured into the device by +(local or network) management specifying the set of +ports to which frames received from this specific port +for this VLAN and containing this Multicast or Broadcast +destination address are allowed to be forwarded." +INDEX { +dot1qVlanIndex, +dot1qStaticMulticastAddress, +dot1qStaticMulticastReceivePort +} +::= { dot1qStaticMulticastTable 1 } + +Dot1qStaticMulticastEntry ::= +SEQUENCE { +dot1qStaticMulticastAddress +MacAddress, +dot1qStaticMulticastReceivePort +INTEGER, +dot1qStaticMulticastStaticEgressPorts +PortList, +dot1qStaticMulticastForbiddenEgressPorts +PortList, +dot1qStaticMulticastStatus +INTEGER +} + +dot1qStaticMulticastAddress OBJECT-TYPE +SYNTAX MacAddress +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The destination MAC address in a frame to which this +entry's filtering information applies. This object must +take the value of a Multicast or Broadcast address." +::= { dot1qStaticMulticastEntry 1 } + +dot1qStaticMulticastReceivePort OBJECT-TYPE +SYNTAX INTEGER (0..65535) +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Either the value '0', or the port number of the port +from which a frame must be received in order for this +entry's filtering information to apply. A value of zero +indicates that this entry applies on all ports of the +device for which there is no other applicable entry." +::= { dot1qStaticMulticastEntry 2 } + +dot1qStaticMulticastStaticEgressPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The set of ports to which frames received from a +specific port and destined for a specific Multicast or +Broadcast MAC address must be forwarded, regardless of +any dynamic information e.g. from GMRP. A port may not +be added in this set if it is already a member of the +set of ports in dot1qStaticMulticastForbiddenEgressPorts. +The default value of this object is a string of ones of +appropriate length." +::= { dot1qStaticMulticastEntry 3 } + +dot1qStaticMulticastForbiddenEgressPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The set of ports to which frames received from a +specific port and destined for a specific Multicast or +Broadcast MAC address must not be forwarded, regardless +of any dynamic information e.g. from GMRP. A port may +not be added in this set if it is already a member of the +set of ports in dot1qStaticMulticastStaticEgressPorts. +The default value of this object is a string of zeros of +appropriate length." +::= { dot1qStaticMulticastEntry 4 } + +dot1qStaticMulticastStatus OBJECT-TYPE +SYNTAX INTEGER { +other(1), +invalid(2), +permanent(3), +deleteOnReset(4), +deleteOnTimeout(5) +} +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"This object indicates the status of this entry. +other(1) - this entry is currently in use but +the conditions under which it will remain +so differ from the following values. +invalid(2) - writing this value to the object +removes the corresponding entry. +permanent(3) - this entry is currently in use +and will remain so after the next reset of +the bridge. + +deleteOnReset(4) - this entry is currently in +use and will remain so until the next +reset of the bridge. +deleteOnTimeout(5) - this entry is currently in +use and will remain so until it is aged out." +DEFVAL { permanent } +::= { dot1qStaticMulticastEntry 5 } + +-- ------------------------------------------------------------- +-- The Current VLAN Database +-- ------------------------------------------------------------- + +dot1qVlanNumDeletes OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of times a VLAN entry has been deleted from +the dot1qVlanCurrentTable (for any reason). If an entry +is deleted, then inserted, and then deleted, this +counter will be incremented by 2." +::= { dot1qVlan 1 } + +dot1qVlanCurrentTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qVlanCurrentEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing current configuration information +for each VLAN currently configured into the device by +(local or network) management, or dynamically created +as a result of GVRP requests received." +::= { dot1qVlan 2 } + +dot1qVlanCurrentEntry OBJECT-TYPE +SYNTAX Dot1qVlanCurrentEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Information for a VLAN configured into the device by +(local or network) management, or dynamically created +as a result of GVRP requests received." +INDEX { dot1qVlanTimeMark, dot1qVlanIndex } +::= { dot1qVlanCurrentTable 1 } + +Dot1qVlanCurrentEntry ::= +SEQUENCE { +dot1qVlanTimeMark +TimeFilter, +dot1qVlanIndex +VlanIndex, +dot1qVlanFdbId +Unsigned32, +dot1qVlanCurrentEgressPorts +PortList, +dot1qVlanCurrentUntaggedPorts +PortList, +dot1qVlanStatus +INTEGER, +dot1qVlanCreationTime +TimeTicks +} + +dot1qVlanTimeMark OBJECT-TYPE +SYNTAX TimeFilter +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A TimeFilter for this entry. See the TimeFilter +textual convention to see how this works." +::= { dot1qVlanCurrentEntry 1 } + +dot1qVlanIndex OBJECT-TYPE +SYNTAX VlanIndex +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The VLAN-ID or other identifier refering to this VLAN." +::= { dot1qVlanCurrentEntry 2 } + +dot1qVlanFdbId OBJECT-TYPE +SYNTAX Unsigned32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The Filtering Database used by this VLAN. This is one +of the dot1qFdbId values in the dot1qFdbTable. This +value is allocated automatically by the device whenever +the VLAN is created: either dynamically by GVRP, or by +management, in dot1qVlanStaticTable. Allocation of this +value follows the learning constraints defined for this +VLAN in dot1qLearningConstraintsTable." +::= { dot1qVlanCurrentEntry 3 } + +dot1qVlanCurrentEgressPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The set of ports which are transmitting traffic for +this VLAN as either tagged or untagged frames." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.2.1" +::= { dot1qVlanCurrentEntry 4 } + +dot1qVlanCurrentUntaggedPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The set of ports which are transmitting traffic for +this VLAN as untagged frames." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.2.1" +::= { dot1qVlanCurrentEntry 5 } + +dot1qVlanStatus OBJECT-TYPE +SYNTAX INTEGER { +other(1), +permanent(2), +dynamicGvrp(3) +} +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"This object indicates the status of this entry. +other(1) - this entry is currently in use but the +conditions under which it will remain so differ +from the following values. +permanent(2) - this entry, corresponding to an entry +in dot1qVlanStaticTable, is currently in use and +will remain so after the next reset of the +device. The port lists for this entry include +ports from the equivalent dot1qVlanStaticTable +entry and ports learnt dynamically. +dynamicGvrp(3) - this entry is currently in use +and will remain so until removed by GVRP. There +is no static entry for this VLAN and it will be +removed when the last port leaves the VLAN." +::= { dot1qVlanCurrentEntry 6 } + +dot1qVlanCreationTime OBJECT-TYPE +SYNTAX TimeTicks +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The value of sysUpTime when this VLAN was created." +::= { dot1qVlanCurrentEntry 7 } + +-- ------------------------------------------------------------- +-- The Static VLAN Database +-- ------------------------------------------------------------- + +dot1qVlanStaticTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qVlanStaticEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing static configuration information for +each VLAN configured into the device by (local or +network) management. All entries are permanent and will +be restored after the device is reset." +::= { dot1qVlan 3 } + +dot1qVlanStaticEntry OBJECT-TYPE +SYNTAX Dot1qVlanStaticEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Static information for a VLAN configured into the +device by (local or network) management." +INDEX { dot1qVlanIndex } +::= { dot1qVlanStaticTable 1 } + +Dot1qVlanStaticEntry ::= +SEQUENCE { +dot1qVlanStaticName +SnmpAdminString, +dot1qVlanStaticEgressPorts +PortList, +dot1qVlanForbiddenEgressPorts +PortList, + +dot1qVlanStaticUntaggedPorts +PortList, +dot1qVlanStaticRowStatus +RowStatus +} + +dot1qVlanStaticName OBJECT-TYPE +SYNTAX SnmpAdminString (SIZE (0..32)) +MAX-ACCESS read-create +STATUS current +DESCRIPTION +"An administratively assigned string, which may be used +to identify the VLAN." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.2.1" +::= { dot1qVlanStaticEntry 1 } + +dot1qVlanStaticEgressPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-create +STATUS current +DESCRIPTION +"The set of ports which are permanently assigned to the +egress list for this VLAN by management. Changes to a +bit in this object affect the per-port per-VLAN +Registrar control for Registration Fixed for the +relevant GVRP state machine on each port. A port may +not be added in this set if it is already a member of +the set of ports in dot1qVlanForbiddenEgressPorts. The +default value of this object is a string of zeros of +appropriate length, indicating not fixed." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.7.3, 11.2.3.2.3" +::= { dot1qVlanStaticEntry 2 } + +dot1qVlanForbiddenEgressPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-create +STATUS current +DESCRIPTION +"The set of ports which are prohibited by management +from being included in the egress list for this VLAN. +Changes to this object that cause a port to be included +or excluded affect the per-port per-VLAN Registrar +control for Registration Forbidden for the relevant GVRP +state machine on each port. A port may not be added in +this set if it is already a member of the set of ports +in dot1qVlanStaticEgressPorts. The default value of +this object is a string of zeros of appropriate length, +excluding all ports from the forbidden set." +REFERENCE +"IEEE 802.1Q/D11 Section 12.7.7.3, 11.2.3.2.3" +::= { dot1qVlanStaticEntry 3 } + +dot1qVlanStaticUntaggedPorts OBJECT-TYPE +SYNTAX PortList +MAX-ACCESS read-create +STATUS current +DESCRIPTION +"The set of ports which should transmit egress packets +for this VLAN as untagged. The default value of this +object for the default VLAN (dot1qVlanIndex = 1) is a string +of appropriate length including all ports. There is no +specified default for other VLANs. If a device agent cannot +support the set of ports being set then it will reject the +set operation with an error. An example might be if a +manager attempts to set more than one VLAN to be untagged +on egress where the device does not support this IEEE 802.1Q +option." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.2.1" +::= { dot1qVlanStaticEntry 4 } + +dot1qVlanStaticRowStatus OBJECT-TYPE +SYNTAX RowStatus +MAX-ACCESS read-create +STATUS current +DESCRIPTION +"This object indicates the status of this entry." +::= { dot1qVlanStaticEntry 5 } + +dot1qNextFreeLocalVlanIndex OBJECT-TYPE +SYNTAX INTEGER (0|4096..2147483647) +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The next available value for dot1qVlanIndex of a local +VLAN entry in dot1qVlanStaticTable. This will report +values >=4096 if a new Local VLAN may be created or else +the value 0 if this is not possible. +A row creation operation in this table for an entry with a local +VlanIndex value may fail if the current value of this object +is not used as the index. Even if the value read is used, +there is no guarantee that it will still be the valid index +when the create operation is attempted - another manager may +have already got in during the intervening time interval. +In this case, dot1qNextFreeLocalVlanIndex should be re-read +and the creation re-tried with the new value. + +This value will automatically change when the current value is +used to create a new row." +::= { dot1qVlan 4 } + +-- ------------------------------------------------------------- +-- The VLAN Port Configuration Table +-- ------------------------------------------------------------- + +dot1qPortVlanTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qPortVlanEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing per port control and status +information for VLAN configuration in the device." +::= { dot1qVlan 5 } + +dot1qPortVlanEntry OBJECT-TYPE +SYNTAX Dot1qPortVlanEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Information controlling VLAN configuration for a port +on the device. This is indexed by dot1dBasePort." +AUGMENTS { dot1dBasePortEntry } +::= { dot1qPortVlanTable 1 } + +Dot1qPortVlanEntry ::= +SEQUENCE { +dot1qPvid +VlanIndex, +dot1qPortAcceptableFrameTypes +INTEGER, +dot1qPortIngressFiltering +TruthValue, +dot1qPortGvrpStatus +EnabledStatus, + +dot1qPortGvrpFailedRegistrations +Counter32, +dot1qPortGvrpLastPduOrigin +MacAddress +} + +dot1qPvid OBJECT-TYPE +SYNTAX VlanIndex +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The PVID, the VLAN ID assigned to untagged frames or +Priority-Tagged frames received on this port." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.1.1" +DEFVAL { 1 } +::= { dot1qPortVlanEntry 1 } + +dot1qPortAcceptableFrameTypes OBJECT-TYPE +SYNTAX INTEGER { +admitAll(1), +admitOnlyVlanTagged(2) +} +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"When this is admitOnlyVlanTagged(2) the device will +discard untagged frames or Priority-Tagged frames +received on this port. When admitAll(1), untagged +frames or Priority-Tagged frames received on this port +will be accepted and assigned to the PVID for this port. + +This control does not affect VLAN independent BPDU +frames, such as GVRP and STP. It does affect VLAN +dependent BPDU frames, such as GMRP." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.1.3" +DEFVAL { admitAll } +::= { dot1qPortVlanEntry 2 } + +dot1qPortIngressFiltering OBJECT-TYPE +SYNTAX TruthValue +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"When this is true(1) the device will discard incoming +frames for VLANs which do not include this Port in its +Member set. When false(2), the port will accept all +incoming frames. + +This control does not affect VLAN independent BPDU +frames, such as GVRP and STP. It does affect VLAN +dependent BPDU frames, such as GMRP." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.1.4" +DEFVAL { false } +::= { dot1qPortVlanEntry 3 } + +dot1qPortGvrpStatus OBJECT-TYPE +SYNTAX EnabledStatus +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The state of GVRP operation on this port. The value +enabled(1) indicates that GVRP is enabled on this port, +as long as dot1qGvrpStatus is also enabled for this +device. When disabled(2) but dot1qGvrpStatus is still +enabled for the device, GVRP is disabled on this port: +any GVRP packets received will be silently discarded and +no GVRP registrations will be propagated from other +ports. This object affects all GVRP Applicant and +Registrar state machines on this port. A transition +from disabled(2) to enabled(1) will cause a reset of all +GVRP state machines on this port." +DEFVAL { enabled } +::= { dot1qPortVlanEntry 4 } + +dot1qPortGvrpFailedRegistrations OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The total number of failed GVRP registrations, for any +reason, on this port." +::= { dot1qPortVlanEntry 5 } + +dot1qPortGvrpLastPduOrigin OBJECT-TYPE +SYNTAX MacAddress +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The Source MAC Address of the last GVRP message +received on this port." +::= { dot1qPortVlanEntry 6 } + +-- ------------------------------------------------------------- +-- Per port VLAN Statistics Table +-- ------------------------------------------------------------- + +dot1qPortVlanStatisticsTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qPortVlanStatisticsEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing per-port, per-VLAN statistics for +traffic received. Separate objects are provided for both the +most-significant and least-significant bits of statistics +counters for ports that are associated with this transparent +bridge. The most-significant bit objects are only required on +high capacity interfaces, as defined in the conformance clauses +for these objects. This mechanism is provided as a way to read +64-bit counters for agents which support only SNMPv1. + +Note that the reporting of most-significant and least- +significant counter bits separately runs the risk of missing +an overflow of the lower bits in the interval between sampling. +The manager must be aware of this possibility, even within the +same varbindlist, when interpreting the results of a request or +asynchronous notification." +::= { dot1qVlan 6 } + +dot1qPortVlanStatisticsEntry OBJECT-TYPE +SYNTAX Dot1qPortVlanStatisticsEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Traffic statistics for a VLAN on an interface." +INDEX { dot1dBasePort, dot1qVlanIndex } +::= { dot1qPortVlanStatisticsTable 1 } + +Dot1qPortVlanStatisticsEntry ::= +SEQUENCE { +dot1qTpVlanPortInFrames +Counter32, +dot1qTpVlanPortOutFrames +Counter32, +dot1qTpVlanPortInDiscards +Counter32, +dot1qTpVlanPortInOverflowFrames +Counter32, +dot1qTpVlanPortOutOverflowFrames +Counter32, +dot1qTpVlanPortInOverflowDiscards +Counter32 +} + +dot1qTpVlanPortInFrames OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of valid frames received by this port from +its segment which were classified as belonging to this +VLAN. Note that a frame received on this port is +counted by this object if and only if it is for a +protocol being processed by the local forwarding process +for this VLAN. This object includes received bridge +management frames classified as belonging to this VLAN +(e.g. GMRP, but not GVRP or STP)." +REFERENCE +"IEEE 802.1Q/D11 Section 12.6.1.1.3(a)" +::= { dot1qPortVlanStatisticsEntry 1 } + +dot1qTpVlanPortOutFrames OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of valid frames transmitted by this port to +its segment from the local forwarding process for this +VLAN. This includes bridge management frames originated +by this device which are classified as belonging to this +VLAN (e.g. GMRP, but not GVRP or STP)." +REFERENCE +"IEEE 802.1Q/D11 Section 12.6.1.1.3(d)" +::= { dot1qPortVlanStatisticsEntry 2 } + +dot1qTpVlanPortInDiscards OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of valid frames received by this port from +its segment which were classified as belonging to this +VLAN which were discarded due to VLAN related reasons. +Specifically, the IEEE 802.1Q counters for Discard +Inbound and Discard on Ingress Filtering." +REFERENCE +"IEEE 802.1Q/D11 Section 12.6.1.1.3" +::= { dot1qPortVlanStatisticsEntry 3 } + +dot1qTpVlanPortInOverflowFrames OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of times the associated +dot1qTpVlanPortInFrames counter has overflowed." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1qPortVlanStatisticsEntry 4 } + +dot1qTpVlanPortOutOverflowFrames OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of times the associated +dot1qTpVlanPortOutFrames counter has overflowed." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1qPortVlanStatisticsEntry 5 } + +dot1qTpVlanPortInOverflowDiscards OBJECT-TYPE +SYNTAX Counter32 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of times the associated +dot1qTpVlanPortInDiscards counter has overflowed." +REFERENCE +"ISO/IEC 15802-3 Section 14.6.1.1.3" +::= { dot1qPortVlanStatisticsEntry 6 } + +dot1qPortVlanHCStatisticsTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qPortVlanHCStatisticsEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing per port, per VLAN statistics for +traffic on high capacity interfaces." +::= { dot1qVlan 7 } + +dot1qPortVlanHCStatisticsEntry OBJECT-TYPE +SYNTAX Dot1qPortVlanHCStatisticsEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"Traffic statistics for a VLAN on a high capacity +interface." +INDEX { dot1dBasePort, dot1qVlanIndex } +::= { dot1qPortVlanHCStatisticsTable 1 } + +Dot1qPortVlanHCStatisticsEntry ::= +SEQUENCE { +dot1qTpVlanPortHCInFrames +Counter64, +dot1qTpVlanPortHCOutFrames +Counter64, +dot1qTpVlanPortHCInDiscards +Counter64 +} + +dot1qTpVlanPortHCInFrames OBJECT-TYPE +SYNTAX Counter64 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of valid frames received by this port from +its segment which were classified as belonging to this +VLAN. Note that a frame received on this port is +counted by this object if and only if it is for a +protocol being processed by the local forwarding process +for this VLAN. This object includes received bridge +management frames classified as belonging to this VLAN +(e.g. GMRP, but not GVRP or STP)." +REFERENCE +"IEEE 802.1Q/D11 Section 12.6.1.1.3(a)" +::= { dot1qPortVlanHCStatisticsEntry 1 } + +dot1qTpVlanPortHCOutFrames OBJECT-TYPE +SYNTAX Counter64 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of valid frames transmitted by this port to +its segment from the local forwarding process for this +VLAN. This includes bridge management frames originated +by this device which are classified as belonging to this +VLAN (e.g. GMRP, but not GVRP or STP)." +REFERENCE +"IEEE 802.1Q/D11 Section 12.6.1.1.3(d)" +::= { dot1qPortVlanHCStatisticsEntry 2 } + +dot1qTpVlanPortHCInDiscards OBJECT-TYPE +SYNTAX Counter64 +MAX-ACCESS read-only +STATUS current +DESCRIPTION +"The number of valid frames received by this port from +its segment which were classified as belonging to this +VLAN which were discarded due to VLAN related reasons. +Specifically, the IEEE 802.1Q counters for Discard +Inbound and Discard on Ingress Filtering." +REFERENCE +"IEEE 802.1Q/D11 Section 12.6.1.1.3" +::= { dot1qPortVlanHCStatisticsEntry 3 } + +-- ------------------------------------------------------------- +-- The VLAN Learning Constraints Table +-- ------------------------------------------------------------- + +dot1qLearningConstraintsTable OBJECT-TYPE +SYNTAX SEQUENCE OF Dot1qLearningConstraintsEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A table containing learning constraints for sets of +Shared and Independendent VLANs." +REFERENCE +"IEEE 802.1Q/D11 Section 12.10.3.1" +::= { dot1qVlan 8 } + +dot1qLearningConstraintsEntry OBJECT-TYPE +SYNTAX Dot1qLearningConstraintsEntry +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"A learning constraint defined for a VLAN." +INDEX { dot1qConstraintVlan, dot1qConstraintSet } +::= { dot1qLearningConstraintsTable 1 } + +Dot1qLearningConstraintsEntry ::= +SEQUENCE { +dot1qConstraintVlan +VlanIndex, +dot1qConstraintSet +INTEGER, +dot1qConstraintType +INTEGER, +dot1qConstraintStatus +RowStatus +} + +dot1qConstraintVlan OBJECT-TYPE +SYNTAX VlanIndex +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The index of the row in dot1qVlanCurrentTable for the +VLAN constrained by this entry." +::= { dot1qLearningConstraintsEntry 1 } + +dot1qConstraintSet OBJECT-TYPE +SYNTAX INTEGER (0..65535) +MAX-ACCESS not-accessible +STATUS current +DESCRIPTION +"The identity of the constraint set to which +dot1qConstraintVlan belongs. These values may be chosen +by the management station." +::= { dot1qLearningConstraintsEntry 2 } + +dot1qConstraintType OBJECT-TYPE +SYNTAX INTEGER { +independent(1), +shared(2) +} +MAX-ACCESS read-create +STATUS current +DESCRIPTION +"The type of constraint this entry defines. +independent(1) - the VLAN, dot1qConstraintVlan, +uses an independent filtering database from all +other VLANs in the same set, defined by +dot1qConstraintSet. +shared(2) - the VLAN, dot1qConstraintVlan, shares +the same filtering database as all other VLANs +in the same set, defined by dot1qConstraintSet." +::= { dot1qLearningConstraintsEntry 3 } + +dot1qConstraintStatus OBJECT-TYPE +SYNTAX RowStatus +MAX-ACCESS read-create +STATUS current +DESCRIPTION +"The status of this entry." +::= { dot1qLearningConstraintsEntry 4 } + +dot1qConstraintSetDefault OBJECT-TYPE +SYNTAX INTEGER (0..65535) +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The identity of the constraint set to which a VLAN +belongs, if there is not an explicit entry for that VLAN +in dot1qLearningConstraintsTable." +::= { dot1qVlan 9 } + +dot1qConstraintTypeDefault OBJECT-TYPE +SYNTAX INTEGER { +independent(1), +shared(2) +} +MAX-ACCESS read-write +STATUS current +DESCRIPTION +"The type of constraint set to which a VLAN belongs, if +there is not an explicit entry for that VLAN in +dot1qLearningConstraintsTable. The types are as defined +for dot1qConstraintType." +::= { dot1qVlan 10 } + +-- ------------------------------------------------------------- +-- IEEE 802.1Q MIB - Conformance Information +-- ------------------------------------------------------------- + +qBridgeConformance OBJECT IDENTIFIER ::= { qBridgeMIB 2 } + +qBridgeGroups OBJECT IDENTIFIER ::= { qBridgeConformance 1 } + +qBridgeCompliances OBJECT IDENTIFIER +::= { qBridgeConformance 2 } + +-- ------------------------------------------------------------- +-- units of conformance +-- ------------------------------------------------------------- + +qBridgeBaseGroup OBJECT-GROUP +OBJECTS { +dot1qVlanVersionNumber, +dot1qMaxVlanId, +dot1qMaxSupportedVlans, +dot1qNumVlans, +dot1qGvrpStatus +} +STATUS current +DESCRIPTION +"A collection of objects providing device level control +and status information for the Virtual LAN bridge +services." +::= { qBridgeGroups 1 } + +qBridgeFdbUnicastGroup OBJECT-GROUP +OBJECTS { +dot1qFdbDynamicCount, +dot1qTpFdbPort, +dot1qTpFdbStatus +} +STATUS current +DESCRIPTION +"A collection of objects providing information about all +unicast addresses, learnt dynamically or statically +configured by management, in each Filtering Database." +::= { qBridgeGroups 2 } + +qBridgeFdbMulticastGroup OBJECT-GROUP +OBJECTS { +dot1qTpGroupEgressPorts, +dot1qTpGroupLearnt +} +STATUS current +DESCRIPTION +"A collection of objects providing information about all +multicast addresses, learnt dynamically or statically +configured by management, in each Filtering Database." +::= { qBridgeGroups 3 } + +qBridgeServiceRequirementsGroup OBJECT-GROUP +OBJECTS { +dot1qForwardAllPorts, +dot1qForwardAllStaticPorts, +dot1qForwardAllForbiddenPorts, +dot1qForwardUnregisteredPorts, +dot1qForwardUnregisteredStaticPorts, +dot1qForwardUnregisteredForbiddenPorts +} +STATUS current +DESCRIPTION +"A collection of objects providing information about +service requirements, learnt dynamically or statically +configured by management, in each Filtering Database." +::= { qBridgeGroups 4 } + +qBridgeFdbStaticGroup OBJECT-GROUP +OBJECTS { +dot1qStaticUnicastAllowedToGoTo, +dot1qStaticUnicastStatus, +dot1qStaticMulticastStaticEgressPorts, +dot1qStaticMulticastForbiddenEgressPorts, +dot1qStaticMulticastStatus +} +STATUS current +DESCRIPTION +"A collection of objects providing information about +unicast and multicast addresses statically configured by +management, in each Filtering Database or VLAN." +::= { qBridgeGroups 5 } + +qBridgeVlanGroup OBJECT-GROUP +OBJECTS { +dot1qVlanNumDeletes, +dot1qVlanFdbId, +dot1qVlanCurrentEgressPorts, +dot1qVlanCurrentUntaggedPorts, +dot1qVlanStatus, +dot1qVlanCreationTime +} +STATUS current +DESCRIPTION +"A collection of objects providing information about +all VLANs currently configured on this device." +::= { qBridgeGroups 6 } + +qBridgeVlanStaticGroup OBJECT-GROUP +OBJECTS { +dot1qVlanStaticName, +dot1qVlanStaticEgressPorts, +dot1qVlanForbiddenEgressPorts, +dot1qVlanStaticUntaggedPorts, +dot1qVlanStaticRowStatus, +dot1qNextFreeLocalVlanIndex +} +STATUS current +DESCRIPTION +"A collection of objects providing information about +VLANs statically configured by management." +::= { qBridgeGroups 7 } + +qBridgePortGroup OBJECT-GROUP +OBJECTS { +dot1qPvid, +dot1qPortAcceptableFrameTypes, +dot1qPortIngressFiltering, +dot1qPortGvrpStatus, +dot1qPortGvrpFailedRegistrations, +dot1qPortGvrpLastPduOrigin +} +STATUS current +DESCRIPTION +"A collection of objects providing port level VLAN +control and status information for all ports." +::= { qBridgeGroups 8 } + +qBridgeVlanStatisticsGroup OBJECT-GROUP +OBJECTS { +dot1qTpVlanPortInFrames, +dot1qTpVlanPortOutFrames, +dot1qTpVlanPortInDiscards +} +STATUS current +DESCRIPTION +"A collection of objects providing per-port packet +statistics for all VLANs currently configured on this +device." +::= { qBridgeGroups 9 } + +qBridgeVlanStatisticsOverflowGroup OBJECT-GROUP +OBJECTS { +dot1qTpVlanPortInOverflowFrames, +dot1qTpVlanPortOutOverflowFrames, +dot1qTpVlanPortInOverflowDiscards +} +STATUS current +DESCRIPTION +"A collection of objects providing overflow counters for +per-port packet statistics for all VLANs currently configured +on this device for high capacity interfaces, defined as those +that have the value of the corresponding instance of +ifSpeed greater than 650,000,000 bits/second." +::= { qBridgeGroups 10 } + +qBridgeVlanHCStatisticsGroup OBJECT-GROUP +OBJECTS { +dot1qTpVlanPortHCInFrames, +dot1qTpVlanPortHCOutFrames, +dot1qTpVlanPortHCInDiscards +} +STATUS current +DESCRIPTION +"A collection of objects providing per-port packet +statistics for all VLANs currently configured on this +device for high capacity interfaces, defined as those +that have the value of the corresponding instance of +ifSpeed greater than 650,000,000 bits/second." +::= { qBridgeGroups 11 } + +qBridgeLearningConstraintsGroup OBJECT-GROUP +OBJECTS { +dot1qConstraintType, +dot1qConstraintStatus +} +STATUS current +DESCRIPTION +"A collection of objects defining the Filtering Database +constraints all VLANs have with each other." +::= { qBridgeGroups 12 } + +qBridgeLearningConstraintDefaultGroup OBJECT-GROUP +OBJECTS { +dot1qConstraintSetDefault, +dot1qConstraintTypeDefault +} +STATUS current +DESCRIPTION +"A collection of objects defining the default Filtering +Database constraints for VLANs which have no specific +constraints defined." +::= { qBridgeGroups 13 } + +-- ------------------------------------------------------------- +-- compliance statements +-- ------------------------------------------------------------- + +qBridgeCompliance MODULE-COMPLIANCE +STATUS current +DESCRIPTION +"The compliance statement for device support of Virtual +LAN Bridge services." + +MODULE +MANDATORY-GROUPS { +qBridgeBaseGroup, +qBridgeVlanGroup, +qBridgeVlanStaticGroup, +qBridgePortGroup +} + +GROUP qBridgeFdbUnicastGroup +DESCRIPTION +"This group is mandatory for bridges that implement +802.1Q transparent bridging." + +GROUP qBridgeFdbMulticastGroup +DESCRIPTION +"This group is mandatory for bridges that implement +802.1Q transparent bridging." + +GROUP qBridgeServiceRequirementsGroup +DESCRIPTION +"This group is mandatory for bridges that implement +extended filtering services. All objects must be +read-write if extended-filtering services are +enabled." + +GROUP qBridgeFdbStaticGroup +DESCRIPTION +"This group is optional." + +GROUP qBridgeVlanStatisticsGroup +DESCRIPTION +"This group is optional as there may be significant +implementation cost associated with its support." + +GROUP qBridgeVlanStatisticsOverflowGroup +DESCRIPTION +"This group is optional as there may be significant +implementation cost associated with its support. It is most +relevant for high capacity interfaces where the SNMP agent +supports only SNMPv1." + +GROUP qBridgeVlanHCStatisticsGroup +DESCRIPTION +"This group is optional as there may be significant +implementation cost associated with its support. It is most +relevant for high capacity interfaces." + +GROUP qBridgeLearningConstraintsGroup +DESCRIPTION +"This group is mandatory for devices implementing +both Independent VLAN Learning (IVL) and Shared +VLAN Learning (SVL) modes of operation of the +filtering database, as defined by IEEE 802.1Q." + +GROUP qBridgeLearningConstraintDefaultGroup +DESCRIPTION +"This group is mandatory for devices implementing +both Independent VLAN Learning (IVL) and Shared +VLAN Learning (SVL) modes of operation of the +filtering database, as defined by IEEE 802.1Q." + +OBJECT dot1qPortAcceptableFrameTypes +MIN-ACCESS read-only +DESCRIPTION +"Write access is not required as this is an optional +capability in IEEE 802.1Q." + +OBJECT dot1qPortIngressFiltering +MIN-ACCESS read-only +DESCRIPTION +"Write access is not required as this is an optional +capability in IEEE 802.1Q." + +OBJECT dot1qConstraintSetDefault +MIN-ACCESS read-only +DESCRIPTION +"Write access is not required as this is an optional +capability in IEEE 802.1Q." + +OBJECT dot1qConstraintTypeDefault +MIN-ACCESS read-only +DESCRIPTION +"Write access is not required as this is an optional +capability in IEEE 802.1Q." + +::= { qBridgeCompliances 1 } + +END diff --git a/pandora_console/attachment/mibs/RAPID-CITY.mib b/pandora_console/attachment/mibs/RAPID-CITY.mib new file mode 100644 index 0000000000..87fc26969f --- /dev/null +++ b/pandora_console/attachment/mibs/RAPID-CITY.mib @@ -0,0 +1,4649 @@ +RAPID-CITY DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Gauge32, Counter32, Integer32, + enterprises, IpAddress, TimeTicks + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, RowStatus, TruthValue, MacAddress, DisplayString + FROM SNMPv2-TC + InterfaceIndex + FROM IF-MIB + SnmpAdminString,SnmpSecurityLevel,SnmpSecurityModel + FROM SNMP-FRAMEWORK-MIB + InetAddressType, InetAddress, InetPortNumber, InetAddressPrefixLength + FROM INET-ADDRESS-MIB + Ipv6Address + FROM IPV6-TC; + +rapidCity MODULE-IDENTITY + LAST-UPDATED "200510210000Z" + ORGANIZATION "Bay Networks, Rapid-City Group" + CONTACT-INFO "Yu-Ten Lee + Postal: Nortel Networks, Inc. + 4655 Great America Parkway + Santa Clara, CA 95052-8185 + + Tel: 408-495-2560 + Fax: 408-495-6680 + E-mail: ylee@baynetworks.com" + + DESCRIPTION "Enterprise MIB for the Accelar product family." + + REVISION "200510210000Z" + DESCRIPTION "Verion 46: Added new mibs rcFlowClassifier for 1600" + + REVISION "200509300000Z" -- 30 Sep 2005 + DESCRIPTION "Version 45: Modified rcSysDnsServerListTable, sorted objects in rcChassis, & added rcChasSystemMonitorEnable" + + REVISION "200509200000Z" -- 20 Sep 2005 + DESCRIPTION "Version 44: Added Ipv6 attributes to various tables" + + REVISION "200509090000Z" -- 09 Sep 2005 + DESCRIPTION "Version 43: Added rcSysVirtualIpv6PrefixLength & rcSysVirtualIpv6Addr" + + REVISION "200508290000Z" -- 29 Aug 2005 + DESCRIPTION "Version 42: Added rcIsis & rcSlpp" + + REVISION "200507270000Z" -- 27 July 2005 + DESCRIPTION "Version 41. Increased range for rcCardIndex" + + REVISION "200507190000Z" -- 19 Jul 2005 + DESCRIPTION "Version 40. Added rcSysAccPolSnmpGrpTable.Included snmp-v3 under + access policy service, removed the default value" + + REVISION "200506020000Z" -- 02 Jun 2005 + DESCRIPTION "Version 39. Added rcChasMcastCheckPktEnable." + + REVISION "200505060000Z" -- 06 May 2005 + DESCRIPTION "Version 39. Added rcSysFrcMsgControlTable." + + REVISION "200504270000Z" -- 27 Apr 2005 + DESCRIPTION "Version 38. Allow 0 length rsa and dsa key sizes." + + REVISION "200504210000Z" -- 21 Apr 2005 + DESCRIPTION "Version 37. Fixed typos, added rcIpfix." + + REVISION "200504140000Z" -- 14 Apr 2005 + DESCRIPTION "Version 36. Modified rcSysAccessPolicyService & + rcSyslogHostSeverity mib objects." + + REVISION "200503210000Z" -- 21 Mar 2005 + DESCRIPTION "Version 35: added rcLacpGlobalVlacpMulticastMACAddress." + + REVISION "200502220000Z" -- 22 Feb 2005 + DESCRIPTION "Version 34: Changed PortSet definition" + + REVISION "200502181200Z" -- 18 Feb 2005 + DESCRIPTION "Version 33: Added support for Tacacs" + + REVISION "200502171200Z" -- 17 Feb 2005 + DESCRIPTION "Version 32: Updated teritory to tertiary" + + REVISION "200502150000Z" -- 15 Feb 2005 + DESCRIPTION "Version 31: Added rcEsu1800dc" + + REVISION "200502110000Z" -- 11 Feb 2005 + DESCRIPTION "Version 30: Added rcSystem 92 & 93" + + REVISION "200502040000Z" -- 04 Feb 2005 + DESCRIPTION "Version 29: Changed range of rcSysVersion, rcCardSerialNumber, + rcChasPowerSupplyDetailSerialNumber, + rcChasPowerSupplyDetailHardwareRevision, + rcChasPowerSupplyDetailPartNumber, + rcCardSerialNumber" + + REVISION "200501160000Z" -- 16 January 2005 + DESCRIPTION "Version 28: Added rcSysPowerUsage and rcSysPowerAvailable" + + REVISION "200412210000Z" -- 21 December 2004 + DESCRIPTION "Version 27: Deprecated rcSysAction. Added + rcSysExtCplimitSysOctapidCongested, + rcSysExtCplimitPortsMonitored, + rcSysExtCplimitPortsShutDown, + rcSysActionL1, rcSysActionL2, + rcSysActionL3, rcSysActionRwa " + + REVISION "200411230000Z" -- 23 November 2004 + DESCRIPTION "Version 26: Added rcEsu1850 and rcEsu1850dc for ESU device" + + REVISION "200411110000Z" -- 11 November 2004 + DESCRIPTION "Version 25: Cleaned up REVISIONs and fixed typo." + + REVISION "200411040000Z" -- 04 November 2004 + DESCRIPTION "Version 24: Added rcSysExtCplimitEnable,rcSysExtCplimitMinCongTime, + rcSysExtCplimitMaxPorts, rcSysExtCplimitPortCongTime, + rcSysExtCplimitTrapLevel." + + REVISION "200409300000Z" -- 30 September 2004 + DESCRIPTION "Version 22: Fixed type mismatch for mib + rcSysDnsServerListRequestCount/SuccessCount" + + REVISION "200409280000Z" -- 28 September 2004 + DESCRIPTION "Version 21: Update enum value for mib rcSysDnsServerListType, + update syntax type for RequestCount, SuccessCount, + change rcRepeaterTable OID and add new mib + rcChasNewGlobalFilterOrderingEnable." + + REVISION "200409230000Z" -- 23 September 2004 + DESCRIPTION "Version 20: Add range for rcAgentId." + + REVISION "200409210000Z" -- 21 September 2004 + DESCRIPTION "Version 19: Remove range for rcAgentId." + + REVISION "200409130001Z" -- 13 September 2004 + DESCRIPTION "Version 18: Added rcCliRWEnable, rcCliRWL1Enable, rcCliRWL2Enable, + rcCliRWL3Enable, rcCliROEnable." + + REVISION "200409130000Z" -- 13 September 2004 + DESCRIPTION "Version 17: Added rcSysAutoRecoverDelay, rcSysMacFlapLimitTime, + rcSysMacFlapLimitCount" + + REVISION "200408310000Z" -- 31 August 2004 + DESCRIPTION "Version 16: Change rcVlacpPeerMacAddressMltIds to + rcVlacpPeerMacAddressMltId with SYNTAX INTEGER and + rcVlacpPeerMacAddressPort with SYNTAX InterfaceIndex" + + REVISION "200407070000Z" -- 07 July 2004 + DESCRIPTION "Version 15: Added rcVlacpPeerMacAddressTable" + + REVISION "200407060000Z" -- 06 July 2004 + DESCRIPTION "Version 14: Added Poe card type poe1400WPS(0x109e3100)" + + REVISION "200406240000Z" -- 24 June 2004 + DESCRIPTION "Version 13: Added rcSysSpanningTreeOperMode and + rcSysSpanningTreeAdminMode" + + REVISION "200406110000Z" -- 11 June 2004 + DESCRIPTION "Version 12: Added rcChasRspMode, rcChasRspOperMode, + and rcChasRspModeError objects" + + ::= { enterprises 2272 } + +-- +-- Textual Conventions +-- + +EnableValue ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "Enable/Disable value." + SYNTAX INTEGER { enable(1), disable(2) } + +PortSet ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The string is 88 octets long, for a total of 704 bits. Each bit + corresponds to a port, as represented by its ifIndex value . When a + bit has the value one(1), the corresponding port is a member of the + set. When a bit has the value zero(0), the corresponding port is not + a member of the set. The encoding is such that the most significant + bit of octet #1 corresponds to ifIndex 0, while the least significant + bit of octet #88 corresponds to ifIndex 703. In order to accommodate + future uses of this the string has a max size of 255 bytes." + SYNTAX OCTET STRING (SIZE (0..255)) + +IdList ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "" + SYNTAX OCTET STRING (SIZE(0..8192)) + + +-- +-- Enterprise specific MIB groups +-- +rcMgmt OBJECT IDENTIFIER ::= { rapidCity 1 } +rcA1100 OBJECT IDENTIFIER ::= { rapidCity 2 } +rcA1250 OBJECT IDENTIFIER ::= { rapidCity 6 } +rcA1150 OBJECT IDENTIFIER ::= { rapidCity 7 } +rcA1200 OBJECT IDENTIFIER ::= { rapidCity 8 } +rcA1050 OBJECT IDENTIFIER ::= { rapidCity 9 } +rcA740 OBJECT IDENTIFIER ::= { rapidCity 20 } +rcA750 OBJECT IDENTIFIER ::= { rapidCity 21 } +rcA790 OBJECT IDENTIFIER ::= { rapidCity 22 } +rcA750S OBJECT IDENTIFIER ::= { rapidCity 23 } +rcA8003 OBJECT IDENTIFIER ::= { rapidCity 280887555 } +rcA8006 OBJECT IDENTIFIER ::= { rapidCity 280887558 } +rcA8010 OBJECT IDENTIFIER ::= { rapidCity 280887562 } +rcA8010co OBJECT IDENTIFIER ::= { rapidCity 1623064842 } +rcA8610 OBJECT IDENTIFIER ::= { rapidCity 30 } +rcA8606 OBJECT IDENTIFIER ::= { rapidCity 31 } +rcA8110 OBJECT IDENTIFIER ::= { rapidCity 32 } +rcA8106 OBJECT IDENTIFIER ::= { rapidCity 33 } +rcA8603 OBJECT IDENTIFIER ::= { rapidCity 34 } +rcA8103 OBJECT IDENTIFIER ::= { rapidCity 35 } +rcA8110co OBJECT IDENTIFIER ::= { rapidCity 36 } +rcA8610co OBJECT IDENTIFIER ::= { rapidCity 37 } +-- This is a place holder for OM 2.0 chassises +-- NOTE that { rapidCity 40 } is also used for the rcBayStack branch, +-- and so we must be sure that nothing ever gets defined under rcAom8003 +-- in order to avoid any conflicts. +--rcAom8010 OBJECT IDENTIFIER ::= { rapidCity 38 } +--rcAom8010co OBJECT IDENTIFIER ::= { rapidCity 39 } +rcBayStack OBJECT IDENTIFIER ::= { rapidCity 40 } +--rcAom8006 OBJECT IDENTIFIER ::= { rapidCity 41 } +rcA1424 OBJECT IDENTIFIER ::= { rapidCity 42 } +rcA1648 OBJECT IDENTIFIER ::= { rapidCity 43 } +rcA1612 OBJECT IDENTIFIER ::= { rapidCity 44 } +rcA1624 OBJECT IDENTIFIER ::= { rapidCity 45 } +rcRBS2402 OBJECT IDENTIFIER ::= { rapidCity 46 } +rcAtr8310 OBJECT IDENTIFIER ::= { rapidCity 47 } +rcAtr8306 OBJECT IDENTIFIER ::= { rapidCity 48 } +rcAtr8010 OBJECT IDENTIFIER ::= { rapidCity 49 } +rcAtr8006 OBJECT IDENTIFIER ::= { rapidCity 50 } +rcEsu1850 OBJECT IDENTIFIER ::= { rapidCity 51 } +rcEsu1850dc OBJECT IDENTIFIER ::= { rapidCity 52 } +rcEsu1800dc OBJECT IDENTIFIER ::= { rapidCity 53 } + +-- From rapidCity 100 to rapidCity 200 is reserved for OM chassises + +-- +-- MIB groups. Note that the ones that are commented out are now defined in +-- separate MIB files. These are kept as placeholders here. +-- +rcSystem OBJECT IDENTIFIER ::= { rcMgmt 1 } +rcTftp OBJECT IDENTIFIER ::= { rcMgmt 2 } +rcVlan OBJECT IDENTIFIER ::= { rcMgmt 3 } +rcChassis OBJECT IDENTIFIER ::= { rcMgmt 4 } +rcMirror OBJECT IDENTIFIER ::= { rcMgmt 5 } +rcDipSwitch OBJECT IDENTIFIER ::= { rcMgmt 6 } +rcTblSize OBJECT IDENTIFIER ::= { rcMgmt 7 } +rcIp OBJECT IDENTIFIER ::= { rcMgmt 8 } +rcArp OBJECT IDENTIFIER ::= { rcMgmt 9 } +rcRip OBJECT IDENTIFIER ::= { rcMgmt 10 } +rcTest OBJECT IDENTIFIER ::= { rcMgmt 11 } +rcStat OBJECT IDENTIFIER ::= { rcMgmt 12 } +rcStg OBJECT IDENTIFIER ::= { rcMgmt 13 } +rcBridge OBJECT IDENTIFIER ::= { rcMgmt 14 } +rcBoot OBJECT IDENTIFIER ::= { rcMgmt 15 } +rcDevice OBJECT IDENTIFIER ::= { rcMgmt 16 } +rcMlt OBJECT IDENTIFIER ::= { rcMgmt 17 } +rcWeb OBJECT IDENTIFIER ::= { rcMgmt 18 } +rcCli OBJECT IDENTIFIER ::= { rcMgmt 19 } +rcError OBJECT IDENTIFIER ::= { rcMgmt 20 } +rcTraps OBJECT IDENTIFIER ::= { rcMgmt 21 } +rcSyslog OBJECT IDENTIFIER ::= { rcMgmt 22 } +rcDiag OBJECT IDENTIFIER ::= { rcMgmt 23 } +rcIpx OBJECT IDENTIFIER ::= { rcMgmt 24 } +rcPos OBJECT IDENTIFIER ::= { rcMgmt 26 } +rcLinkFlapDetect OBJECT IDENTIFIER ::= { rcMgmt 27 } +rcV1Traps OBJECT IDENTIFIER ::= { rcMgmt 28 } +rcRadius OBJECT IDENTIFIER ::= { rcMgmt 29 } +rcIgmp OBJECT IDENTIFIER ::= { rcMgmt 30 } +rcUserSetTime OBJECT IDENTIFIER ::= { rcMgmt 31 } +rcL2Redundancy OBJECT IDENTIFIER ::= { rcMgmt 32 } +rcNtp OBJECT IDENTIFIER ::= { rcMgmt 33 } +rcSsh OBJECT IDENTIFIER ::= { rcMgmt 34 } +rcSvlan OBJECT IDENTIFIER ::= { rcMgmt 35 } +rcOpm OBJECT IDENTIFIER ::= { rcMgmt 36 } +rcVpn OBJECT IDENTIFIER ::= { rcMgmt 37 } +rcOeAdm OBJECT IDENTIFIER ::= { rcMgmt 38 } +rcTlsVpn OBJECT IDENTIFIER ::= { rcMgmt 39 } +rcTls OBJECT IDENTIFIER ::= { rcMgmt 40 } +rcCos OBJECT IDENTIFIER ::= { rcMgmt 41 } +rcBanRing OBJECT IDENTIFIER ::= { rcMgmt 42 } +rcTengEnet OBJECT IDENTIFIER ::= { rcMgmt 50 } +rcRec OBJECT IDENTIFIER ::= { rcMgmt 51 } +rcTdc OBJECT IDENTIFIER ::= { rcMgmt 52 } +rcLacp OBJECT IDENTIFIER ::= { rcMgmt 53 } +rcQos OBJECT IDENTIFIER ::= { rcMgmt 54 } +rcFilter OBJECT IDENTIFIER ::= { rcMgmt 55 } +rcLicense OBJECT IDENTIFIER ::= { rcMgmt 56 } +rcEap OBJECT IDENTIFIER ::= { rcMgmt 57 } +rcMcast OBJECT IDENTIFIER ::= { rcMgmt 58 } +rcOspf OBJECT IDENTIFIER ::= { rcMgmt 59 } +rcFdb OBJECT IDENTIFIER ::= { rcMgmt 60 } +rcIgap OBJECT IDENTIFIER ::= { rcMgmt 61 } +rcIpv6 OBJECT IDENTIFIER ::= { rcMgmt 62 } +rcIsis OBJECT IDENTIFIER ::= { rcMgmt 63 } +rcSlpp OBJECT IDENTIFIER ::= { rcMgmt 64 } +rcTacacs OBJECT IDENTIFIER ::= { rcMgmt 65 } +rcIpfix OBJECT IDENTIFIER ::= { rcMgmt 66 } +rcOspfv3 OBJECT IDENTIFIER ::= { rcMgmt 67 } +rcFlowClassifier OBJECT IDENTIFIER ::= { rcMgmt 68 } +rc2k OBJECT IDENTIFIER ::= { rcMgmt 100 } +rcOm8k OBJECT IDENTIFIER ::= { rcMgmt 200 } +cobra OBJECT IDENTIFIER ::= { rcMgmt 201 } +rcPowerRanger OBJECT IDENTIFIER ::= { rcMgmt 202 } + +-- LOGICAL (System) Elements + +rcSysIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This entity's IP address." + ::= { rcSystem 1 } + +rcSysNetMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This entity's subnet mask." + ::= { rcSystem 2 } + +rcSysBroadcast OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This entity's broadcast address." + ::= { rcSystem 3 } + +-- Community Strings + +rcSysCommReadWriteAll OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, the + community string in the message is compared with this + string first. If it matches, read-write access is + granted to all items in the MIB. If it doesn't + match, the rcSysCommReadWrite string is compared next." + ::= { rcSystem 4 } + +rcSysCommReadWrite OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, the + community string in the message is compared with this + string second. If it matches, read-write access is + granted to all items in the MIB except community + strings. (Community strings appear empty when read + and return a no such name error when an attempt is + made to write them.) If it doesn't match, the + rcSysCommReadWriteLayer3 string is compared next." + ::= { rcSystem 5 } + +rcSysCommReadOnly OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, the + community string in the message is compared with this + string third. If it matches, read-only access is + granted to all items in the MIB except community + strings. (Community strings appear empty when read.) + If it doesn't match, no access is granted, no + response is sent back to the SNMP requester, and + SNMP traps are sent to the SNMP trap receiver(s) if + configured." + ::= { rcSystem 6 } + +-- Other + +rcSysVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..80)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Software version running on device" + ::= { rcSystem 7 } + +rcSysAction OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- none of the following + hardReset(2), -- power on tests + softReset(3), -- reset w/o power on tests + saveToNVRAM(4), -- save current config to NVRAM + resetCounters(5), -- reset all statistic counters + saveToStandbyNVRAM(6), -- save config to slave NVRAM + cpuSwitchOver(7), -- CPU board switch-over + checkSwInFlash(8), + checkSwInPcmcia(9), + resetConsole(10), + resetModem(11), + flushIpRouteTbl(12), + saveRuntimeConfig(13), -- 8k only + saveRuntimeConfigToSlave(14), -- 8k only + saveBootConfig(15), -- 8k only + saveSlaveBootConfig(16), -- 8k only + resetIstStatCounters(17), +-- being used in rel2.2(18) +-- being used in rel2.2(19) +-- reserve(20) +-- reserve(21) + resetEsmPortStats(22) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Initiate a system action." + DEFVAL { none } + ::= { rcSystem 8 } + +rcSysResult OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- none of the following + inProgress(2), -- in progress + success(3), -- success + fail(4), -- failure + flashReadFailed(5), -- could not read from flash + pcmciaReadFailed(6), -- could not read from pcmcia + crcCheckFailed(7), + noStandbyCpu(8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Result from the last system action." + DEFVAL { none } + ::= { rcSystem 9 } + +rcSysLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Last management initiated configuration + change since sysUpTime." + ::= { rcSystem 10 } + +rcSysLastVlanChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Last management initiated VLAN configuration + change since sysUpTime." + ::= { rcSystem 11 } + +rcSysLastStatisticsReset OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Last management initiated statistics reset + since sysUpTime." + ::= { rcSystem 12 } + +-- Global Statistics + +rcSysBufferUtil OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Buffer utilization as a percentage of the + total amount of buffer space in the system. + A high value indicates congestion." + ::= { rcSystem 13 } + +rcSysBufferUtilPeak OBJECT-TYPE + SYNTAX INTEGER (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The largest buffer utilization since sysUpTime" + ::= { rcSystem 14 } + +rcSysBufferUtilPeakTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Timestamp for rcSysPeakBandwidth" + ::= { rcSystem 15 } + +rcSysNVRamSize OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Total Non-volatile RAM in Kbytes" + ::= { rcSystem 16 } + +rcSysNVRamUsed OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Non-volatile RAM in use in Kbytes" + ::= { rcSystem 17 } + +rcSysLastSaveToNVRam OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "SysUpTime of the last time when NVRAM was + written to. This could be a save of the system + configuration or via a file transfer of a + configuration file." + ::= { rcSystem 18 } + +rcSysLastSaveToStandbyNVRam OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "SysUpTime of the last time when the standby NVRAM + (on the back-up CPU board) was written to." + ::= { rcSystem 19 } + +rcSysCpuUtil OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Percentage of CPU utilization" + ::= { rcSystem 20 } + +rcSysSwitchFabricUtil OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Percentage of Switching Fabric utilization" + ::= { rcSystem 21 } + +rcSysRmonMemSize OBJECT-TYPE + SYNTAX INTEGER (250000..4000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Amount of RAM in bytes to allocate for RMON + to use when rcSysRmonEnable is TRUE." + ::= { rcSystem 22 } + +rcSysRmonEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Control whether the RMON feature should be + enabled. + + To enable the RMON feature, set this variable to + true. The RMON agent in the device will get + started immediately if the amount of memory + specified by rcSysRmonMemSize is currently + available in the device. + + To disable the RMON feature, set this variable to + false, save the new setting to NVRAM, and reboot + the device. After the device is rebooted the + RMON agent will not be operational." + ::= { rcSystem 23 } + +rcSysRmonSaveConfig OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Control whether RMON configuration information + should be saved to NVRAM so RMON settings can + be automatically reinstalled after a system + reboot. + + Setting rcSysRmonSaveConfig to true does not + immediately save the configuration information. + The save happens when the rcSysAction variable + is set to 'saveToNVRAM(4)'. + + This option is only meaningful when the + rcSysRmonEnable variable is set to true." + ::= { rcSystem 24 } + +rcSysRmonTrapOption OBJECT-TYPE + SYNTAX INTEGER { + toOwner(1), + toAll(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate whether RMON traps should be + sent to only the owner of the RMON alarm (i.e., + the manager that created the alarm entry) or + all trap recipients in the system trap receiver + table." + DEFVAL { toOwner } + ::= { rcSystem 25 } + +rcSysSupportRouting OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate whether routing is supported + in this product." + ::= { rcSystem 26 } + +rcSysSupportWebServer OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate whether WebServer is supported + in this product." + ::= { rcSystem 27 } + +rcSysLastIpAddrChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Last management initiated IP address change + since sysUpTime. Any addition or deletion of + an IP address to a single routable port or + a VLAN is time-stamped by this variable." + ::= { rcSystem 28 } + +rcSysCommReadWriteLayer3 OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, the + community string in the message is compared with this + string third. If it matches, read-write access is + granted to all Layer-3 items in the MIB except community + strings. (Community strings appear empty when read + and return a no such name error when an attempt is + made to write them.) If it doesn't match, the + rcSysCommReadWriteLayer2 string is compared next." + ::= { rcSystem 29 } + +rcSysCommReadWriteLayer2 OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When an SNMP message is received by this entity, the + community string in the message is compared with this + string fourth. If it matches, read-write access is + granted to all Layer-2 items in the MIB except community + strings. (Community strings appear empty when read + and return a no such name error when an attempt is + made to write them.) If it doesn't match, the + rcSysCommReadOnly string is compared next." + ::= { rcSystem 30 } + +rcSysAccessPolicyEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to configure the system access policy feature. + if 'true', the rcSysAccessPolicyTable is examined to + determine which packets should be allowed or denied + access to this device." + DEFVAL { false } + ::= { rcSystem 31 } + +rcSysDefaultRuntimeConfigFileName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "default config." + ::= { rcSystem 32 } + +rcSysDefaultBootConfigFileName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "default boot config." + ::= { rcSystem 33 } + +rcSysConfigFileName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "File name used in conjunction with rcSysAction. + + If rcSysAction is set to 'saveRuntimeConfig' or + 'saveRuntimeConfigToSlave' then this file name + will be used instead of the file name specified + in rcSysDefaultRuntimeConfigFileName. + + If rcSysAction is set to 'saveBootConfig' or + 'saveBootConfigToSlave' then this file name will + be used insteaad of the file name specified in + rcSysDefaultBootConfigFileName. + + If the file name is blank (i.e., nothing is + entered) then the default file name will be + used." + ::= { rcSystem 34 } + +rcSysLastRunTimeConfigSave OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "SysUpTime of the last time when the run time + configuration was written to." + ::= { rcSystem 35 } + +rcSysLastRunTimeConfigSaveToSlave OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "SysUpTime of the last time when the run time + configuration was written to slave NVRAM." + ::= { rcSystem 36 } + +rcSysLastBootConfigSave OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "SysUpTime of the last time when the boot + configuration was written to." + ::= { rcSystem 37 } + +rcSysLastBootConfigSaveOnSlave OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "SysUpTime of the last time when the boot + configuration was written on the slave NVRAM." + ::= { rcSystem 38 } + +rcSysRmonUtilizationMethod OBJECT-TYPE --excluded + SYNTAX INTEGER { + halfDuplex(1), + fullDuplex(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to control whether RMON should use a half-duplex + or full-duplex formula to calculate port utilization. + When set to 'halfDuplex', RMON will use InOctets and + the port's speed to calculate port utilization (this + is the standard RMON rfc1271 convention). + When set to 'fullDuplex', RMON will use InOctets and + OutOctets and 2X the port's speed to calculate port + utilization. Furthermore, if this variable is set to + 'fullDuplex', but the port is operating in a + half-duplex mode, the calculation defaults back to + the rfc1271 convention." + DEFVAL { halfDuplex } + ::= { rcSystem 39 } + +rcSysCommReadWriteLayer1 OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "read-write L1 access" + ::= { rcSystem 40 } + +rcSysOtherBufferUtil OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "bw currently consumed" + ::= { rcSystem 41 } + +rcSysOtherBufferUtilPeak OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "peak bw since reset" + ::= { rcSystem 42 } + +rcSysOtherBufferUtilPeakTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "timestamp for rcSysPeakBw" + ::= { rcSystem 43 } + +rcSysOtherCpuUtil OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "% cpu utilization" + ::= { rcSystem 44 } + +rcSysOtherSwitchFabricUtil OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "% switch fabric util" + ::= { rcSystem 45 } + +rcSysDramSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Dram size in mega-bytes" + ::= { rcSystem 46 } + +rcSysDramUsed OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Dram used in percentage" + ::= { rcSystem 47 } + +rcSysDramFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Dram free size in kilo-bytes" + ::= { rcSystem 48 } + +rcSysDramMaxBlockFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Dram max block free size in kilo-bytes" + ::= { rcSystem 49 } + +rcSysVirtualIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Virtual IP is an IP address that owned and + advertised only by the master CPU. So whichever + CPU is master registers this IP address. Unlike the + management IP address, this address goes in the + switch config file and not the boot config" + ::= { rcSystem 51 } + +rcSysVirtualNetMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Net mask of the management virtual Ip address" + ::= { rcSystem 52 } + +rcSysReadWriteLevel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The status of the read/write level" + ::= { rcSystem 53 } + +rcSysMTUSize OBJECT-TYPE + SYNTAX INTEGER { + mtu1950(1), + mtu9600(2), + mtu1522(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This is the maximum transmission size of frames that all + the ports on the chassis support." + DEFVAL { mtu1950 } + ::= { rcSystem 55 } + +rcSysClockSyncTime OBJECT-TYPE + SYNTAX INTEGER (15..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Time interval at which RTC and system clocks are + synchronized." + DEFVAL { 60 } + ::= { rcSystem 56 } + +rcSysForceTrapSender OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This is a flag that if user wants to configured + CLIP (Circuit Less IP) as trap originator." + ::= { rcSystem 57 } + +rcSysMrouteStrLimit OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "enable or disable mroute stream limit in system." + DEFVAL { false } + ::= { rcSystem 58 } + +-- Trap Receiver Table + +rcSysTrapRecvTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSysTrapRecvEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "The trap receiver table (0 to 25 entries). This + table lists the addresses of Network Management + Stations that should receive trap messages from + this entity when an exception condition occurs." + ::= { rcSystem 60 } + +rcSysTrapRecvEntry OBJECT-TYPE + SYNTAX RcSysTrapRecvEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "A trap receiver table entry." + INDEX { rcSysTrapRecvAddress } + ::= { rcSysTrapRecvTable 1 } + +RcSysTrapRecvEntry ::= + SEQUENCE { + rcSysTrapRecvAddress IpAddress, + rcSysTrapRecvVersion INTEGER, + rcSysTrapRecvCommunity DisplayString, + rcSysTrapRecvSrcAddress IpAddress, + rcSysTrapRecvRowStatus RowStatus + } + +rcSysTrapRecvAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "IP address for trap receiver." + ::= { rcSysTrapRecvEntry 1 } + +rcSysTrapRecvVersion OBJECT-TYPE + SYNTAX INTEGER { + v1(1), + v2c(2) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The version of trap receiver." + DEFVAL { v1 } + ::= { rcSysTrapRecvEntry 2 } + +rcSysTrapRecvCommunity OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Community string used for trap messages to this + trap receiver." + ::= { rcSysTrapRecvEntry 3 } + +rcSysTrapRecvSrcAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Source IP address to use when sending traps. + This IP address will be inserted into the + source IP address field in the UDP trap packet." + ::= { rcSysTrapRecvEntry 4 } + +rcSysTrapRecvRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to create/delete entries" + ::= { rcSysTrapRecvEntry 5 } + + +-- Access Policy Table + +rcSysAccessPolicyTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSysAccesspolicyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Management access policy table. This table is + used to permit or deny access to this device via + the specified source Id." + ::= { rcSystem 61 } + +rcSysAccessPolicyEntry OBJECT-TYPE + SYNTAX RcSysAccesspolicyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An access policy table entry." + INDEX { rcSysAccessPolicyId } + ::= { rcSysAccessPolicyTable 1 } + +RcSysAccesspolicyEntry ::= + SEQUENCE { + rcSysAccessPolicyId INTEGER, + rcSysAccessPolicyName DisplayString, + rcSysAccessPolicyPolicyEnable TruthValue, + rcSysAccessPolicyMode INTEGER, + rcSysAccessPolicyService INTEGER, + rcSysAccessPolicyPrecedence INTEGER, + rcSysAccessPolicyNetAddr IpAddress, + rcSysAccessPolicyNetMask IpAddress, + rcSysAccessPolicyTrustedHostAddr IpAddress, + rcSysAccessPolicyTrustedHostUserName DisplayString, + rcSysAccessPolicyAccessLevel INTEGER, + rcSysAccessPolicyLog TruthValue, + rcSysAccessPolicyUsage Counter32, + rcSysAccessPolicyRowStatus RowStatus, + rcSysAccessPolicyAccessStrict TruthValue, + rcSysAccessPolicyNetInetAddrType InetAddressType, + rcSysAccessPolicyNetInetAddress InetAddress, + rcSysAccessPolicyNetInetAddrPrefixLen InetAddressPrefixLength, + rcSysAccessPolicyTrustedHostInetAddress InetAddress + } + +rcSysAccessPolicyId OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Policy Id." + ::= { rcSysAccessPolicyEntry 1 } + +rcSysAccessPolicyName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..15)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Name of this policy." + ::= { rcSysAccessPolicyEntry 2 } + +rcSysAccessPolicyPolicyEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicate whether this policy is currently + active." + DEFVAL { true } + ::= { rcSysAccessPolicyEntry 3 } + +rcSysAccessPolicyMode OBJECT-TYPE + SYNTAX INTEGER { + allow(1), + deny(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate whether a packet having a + source IP address that matches this entry + should be permitted to enter the device or + denied access." + DEFVAL { allow } + ::= { rcSysAccessPolicyEntry 4 } + +rcSysAccessPolicyService OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Is represented as bitset to indicate which protocol + this entry should be applied to. + Value is one of multiple(logical 'OR') + of the following values: + telnet(1): enables telnet service + snmp(2): enables snmp service + tftp(4): enables tftp service + ftp(8): enables ftp service + http(16): enables http service + rlogin(32): enables rlogin service + ssh(64): enables ssh service + snmp-v3(128): enables snmp service for v3 groups." + ::= { rcSysAccessPolicyEntry 5 } + +rcSysAccessPolicyPrecedence OBJECT-TYPE + SYNTAX INTEGER (1..128) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate the precedence of this policy. + The Lower the number the higher the precedence." + DEFVAL { 10 } + ::= { rcSysAccessPolicyEntry 6 } + +rcSysAccessPolicyNetAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Source network IP address." + ::= { rcSysAccessPolicyEntry 7 } + +rcSysAccessPolicyNetMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Source network mask." + ::= { rcSysAccessPolicyEntry 8 } + +rcSysAccessPolicyTrustedHostAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Trusted IP address of host performing a rlogin + into the device." + ::= { rcSysAccessPolicyEntry 9 } + +rcSysAccessPolicyTrustedHostUserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..30)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name on the trusted host performing a rlogin + into the device." + ::= { rcSysAccessPolicyEntry 10 } + +rcSysAccessPolicyAccessLevel OBJECT-TYPE + SYNTAX INTEGER { + readOnly(1), + readWrite(2), + readWriteAll(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Access level of trusted host." + DEFVAL { readOnly } + ::= { rcSysAccessPolicyEntry 11 } + +rcSysAccessPolicyLog OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate whether logging should be + performed if this policy was applied." + DEFVAL { false } + ::= { rcSysAccessPolicyEntry 12 } + +rcSysAccessPolicyUsage OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Usage Counter" + ::= { rcSysAccessPolicyEntry 13 } + +rcSysAccessPolicyRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to create/delete an entry" + ::= { rcSysAccessPolicyEntry 14 } + +rcSysAccessPolicyAccessStrict OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to restrict the access level specified in + the system access policy table to exactly the + same access level as specified by user. If TRUE + then only the access level in the policy table + is allowed access. If FALSE, then the default + behavior is to assume the access level specified + in policy table as the floor." + DEFVAL { false } + ::= { rcSysAccessPolicyEntry 15 } + +rcSysAccessPolicyNetInetAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Source network Inet Address Type." + ::= { rcSysAccessPolicyEntry 16 } + +rcSysAccessPolicyNetInetAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Source network Inet Address (prefix/network)." + ::= { rcSysAccessPolicyEntry 17 } + +rcSysAccessPolicyNetInetAddrPrefixLen OBJECT-TYPE + SYNTAX InetAddressPrefixLength + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Source network Inet Address Prefix-Length/Mask." + ::= { rcSysAccessPolicyEntry 18 } + +rcSysAccessPolicyTrustedHostInetAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Trusted Inet address of host performing a rlogin + into the device." + ::= { rcSysAccessPolicyEntry 19 } + + +-- Trap Sender Address Table + +rcSysTrapSenderTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSysTrapSenderEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The trap sender table (0 to 25 entries). This + table lists the addresses of Network Management + Stations and the Source Address that should receive + trap messages from this entity when an exception + condition occurs." + ::= { rcSystem 62 } + +rcSysTrapSenderEntry OBJECT-TYPE + SYNTAX RcSysTrapSenderEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A trap sender table entry." + INDEX { rcSysTrapSenderRecvAddress } + ::= { rcSysTrapSenderTable 1 } + +RcSysTrapSenderEntry ::= + SEQUENCE { + rcSysTrapSenderRecvAddress IpAddress, + rcSysTrapSenderSrcAddress IpAddress + } + +rcSysTrapSenderRecvAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "IP address for trap receiver." + ::= { rcSysTrapSenderEntry 1 } + +rcSysTrapSenderSrcAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "IP address for trap sender." + ::= { rcSysTrapSenderEntry 2 } + + +-- DNS Server List Mibs + +rcSysDnsServerListTableSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries in the + table." + ::= { rcSystem 63 } + +rcSysDnsServerListTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSysDnsServerListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "DNS serever list table used to store the + details of the DNS server configured." + ::= { rcSystem 64 } + +rcSysDnsServerListEntry OBJECT-TYPE + SYNTAX RcSysDnsServerListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "table entry." + INDEX {rcSysDnsServerListType} + ::= { rcSysDnsServerListTable 1 } + +RcSysDnsServerListEntry ::= + SEQUENCE { + rcSysDnsServerListType INTEGER, + rcSysDnsServerListIp IpAddress, -- deprecated + rcSysDnsServerListStatus INTEGER, + rcSysDnsServerListRequestCount Counter32, + rcSysDnsServerListSuccessCount Counter32, + rcSysDnsServerListRowStatus RowStatus, + rcSysDnsServerListAddressType InetAddressType, + rcSysDnsServerListAddress InetAddress + } + +rcSysDnsServerListType OBJECT-TYPE + SYNTAX INTEGER { + primary(0), + secondary(1), + tertiary(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Type of the DNS server" + ::= { rcSysDnsServerListEntry 1 } + +rcSysDnsServerListIp OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "IP address of the DNS server" + ::= { rcSysDnsServerListEntry 2 } + +rcSysDnsServerListStatus OBJECT-TYPE + SYNTAX INTEGER { + active(0), + in-active(1) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Status of DNS server" + ::= { rcSysDnsServerListEntry 3 } + +rcSysDnsServerListRequestCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of request send to this server" + ::= { rcSysDnsServerListEntry 4 } + +rcSysDnsServerListSuccessCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of request send to this server which + are successful" + ::= { rcSysDnsServerListEntry 5 } + +rcSysDnsServerListRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to create/delete DNS server entries + in rcSysDnsServerListTable." + ::= { rcSysDnsServerListEntry 6 } + +rcSysDnsServerListAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The type of ip address configured by the DNS server" + ::= { rcSysDnsServerListEntry 7 } + +rcSysDnsServerListAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The ip address configured by the DNS server" + ::= { rcSysDnsServerListEntry 8 } + +-- DNS Host Table + +rcSysDnsHostTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSysDnsHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "DNS Host table." + ::= { rcSystem 65 } + +rcSysDnsHostEntry OBJECT-TYPE + SYNTAX RcSysDnsHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "table entry." + INDEX { rcSysDnsHostData } + ::= { rcSysDnsHostTable 1 } + +RcSysDnsHostEntry ::= + SEQUENCE { + rcSysDnsHostData OCTET STRING, + rcSysDnsHostName OCTET STRING, + rcSysDnsHostIpAddress IpAddress, -- deprecated + rcSysDnsHostSource OCTET STRING, + rcSysDnsHostAddressType InetAddressType, + rcSysDnsHostAddress InetAddress + } + +rcSysDnsHostData OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..256)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Host Name or Host IP Address." + ::= { rcSysDnsHostEntry 1 } + +rcSysDnsHostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..256)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Host Name." + ::= { rcSysDnsHostEntry 2 } + +rcSysDnsHostIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Host IP Address." + ::= { rcSysDnsHostEntry 3 } + +rcSysDnsHostSource OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..256)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "DNS Server IP or /etc/host file." + ::= { rcSysDnsHostEntry 4 } + +rcSysDnsHostAddressType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The type of ip address for the DNS host" + ::= { rcSysDnsHostEntry 5 } + +rcSysDnsHostAddress OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The ip address of the DNS host" + ::= { rcSysDnsHostEntry 6 } + +rcSysMsgLogFrequency OBJECT-TYPE + SYNTAX INTEGER (2..500) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to specify the maximum frequency/count + of the occurence of the Log Message." + ::= { rcSystem 66 } + +rcSysMsgLogText OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..3)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A textual string containing the first four + characters of the Log Message." + ::= { rcSystem 67 } + +rcSysForceIpHdrSender OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Flag to decide if IP header source address will + be matched with SNMP header sender networks." + DEFVAL { false } + ::= { rcSystem 68 } + +rcSysVlanMaxId OBJECT-TYPE + SYNTAX INTEGER { + maxId2000(2000), + maxId4000(4000) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The maximum vlan Id that supported" + DEFVAL { maxId2000 } + ::= { rcSystem 69 } + +rcSysDnsDomainName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Default domain used for querying the DNS Server." + ::= { rcSystem 70 } + + +rcSysDnsServerListIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "DNS server's IP address " + ::= { rcSystem 71 } + +rcSysDnsRequestType OBJECT-TYPE + SYNTAX INTEGER { + request (0), + response (1) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "DNS Type: Whether it was Dns Request or a Response" + ::= { rcSystem 72 } + + +rcSysSpanningTreeOperMode OBJECT-TYPE + SYNTAX INTEGER { + nortelStpg(1), + pvst(2), + rstp(3), + mstp(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This object indicates the current spanning-tree mode of the system. . + The meaning of specific values is: + nortelStpg(1) .. The older proprietary mode which supports multiple spanning tree groups. + pvst(2) ........ Emulation of C***O spanning tree mode + rstp(3) ........ IEEE 802.1w mode + mstp(4) ........ IEEE 802.1s mode ." + DEFVAL { nortelStpg } + ::= { rcSystem 73} + +rcSysSpanningTreeAdminMode OBJECT-TYPE + SYNTAX INTEGER { + nortelStpg(1), + pvst(2), + rstp(3), + mstp(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This object indicates the desired spanning-tree mode of the system. + The meaning of specific values is: + nortelStpg(1) .. The older proprietary mode which supports multiple spanning tree groups. + pvst(2) ........ Emulation of C***O spanning tree mode + rstp(3) ........ IEEE 802.1w mode + mstp(4) ........ IEEE 802.1s mode + + Note that depending on the current value of rcSysSpanningTreeOperMode and + the value to which this object is set, the operational mode may be immediately changed, + or the change may not take effect until the next system reboot." + DEFVAL { nortelStpg } + ::= { rcSystem 74} + +rcSysAutoRecoverDelay OBJECT-TYPE + SYNTAX INTEGER (5..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Time interval in seconds after which auto-recovery + runs on ports to clear action taken by cp-limit, + link flap or loop detect" + ::= { rcSystem 75 } + +rcSysMacFlapLimitTime OBJECT-TYPE + SYNTAX INTEGER (10..5000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Time limit in milliseconds for MAC flapping for + loop-detect feature" + ::= { rcSystem 76 } + +rcSysMacFlapLimitCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of times mac flapping can happen for loop-detect + feature" + ::= { rcSystem 77 } + +rcSysExtCplimitEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "enable or disable extended CP-LIMIT in system." + DEFVAL { false } + ::= { rcSystem 78 } + +rcSysExtCplimitMinCongTime OBJECT-TYPE + SYNTAX INTEGER (100..6000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Minimum time for which System octapid should be + congested to trigger congestion algorithm for extended + CP-LIMIT in mSecs" + DEFVAL { 3000 } + ::= { rcSystem 79 } + +rcSysExtCplimitMaxPorts OBJECT-TYPE + SYNTAX INTEGER (0..512) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Maximum number of ports which need to be monitored + for congestion in Extended CP-LIMIT" + DEFVAL { 0 } + ::= { rcSystem 80 } + +rcSysExtCplimitPortCongTime OBJECT-TYPE + SYNTAX INTEGER (1..600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Minimum time for which ingress traffic utilization rate + of a monitored port should stay more than the allowed limits + in order to disable the port for extended CP-LIMIT in Secs" + DEFVAL { 300 } + ::= { rcSystem 81 } + +rcSysExtCplimitTrapLevel OBJECT-TYPE + SYNTAX INTEGER { + none(1), + normal(2), + verbose(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the trap level for extended CP-LIMIT" + DEFVAL { none } + ::= { rcSystem 82 } + +rcSysExtCplimitSysOctapidCongested OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether system octapid congestion detected for + extended cp-limit" + DEFVAL { false } + ::= {rcSystem 83 } + + rcSysExtCplimitPortsMonitored OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether ports has been shutdown due to extended + cp-limit" + DEFVAL { false } + ::= {rcSystem 84 } + + rcSysExtCplimitPortsShutDown OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Indicates whether ports has been shutdown due to + extended Cp-limit" + DEFVAL { false } + ::= {rcSystem 85 } + +rcSysActionL1 OBJECT-TYPE + SYNTAX INTEGER { + none(1), + resetCounters(2), -- reset all statistic counters + saveToNVRAM(3), + saveToStandbyNVRAM(4), -- save config to slave NVRAM + checkSwInFlash(5), + checkSwInPcmcia(6), + saveRuntimeConfig(7), -- 8k only + saveRuntimeConfigToSlave(8), -- 8k only + saveBootConfig(9), -- 8k only + saveSlaveBootConfig(10) -- 8k only + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Initiate a system action for layer1 user" + DEFVAL { none } + ::= { rcSystem 86 } + +rcSysActionL2 OBJECT-TYPE + SYNTAX INTEGER { + none(1), + resetIstStatCounters(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Initiate a system action for layer2 user" + DEFVAL { none } + ::= { rcSystem 87 } + +rcSysActionL3 OBJECT-TYPE + SYNTAX INTEGER { + none(1), + flushIpRouteTbl(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Initiate a system action for layer2 user" + DEFVAL { none } + ::= { rcSystem 88 } + +rcSysActionRwa OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- none of the following + hardReset(2), -- power on tests + softReset(3), -- reset w/o power on tests + cpuSwitchOver(4), -- CPU board switch-over + resetConsole(5), + resetModem(6) +-- being used in rel2.2(7) +-- being used in rel2.2(8) +-- reserve(9) +-- reserve(10) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Initiate a system action." + DEFVAL { none } + ::= { rcSystem 89 } + +rcSysPowerUsage OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The current power usage for the whole chassis." + ::= { rcSystem 90 } + +rcSysPowerAvailable OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The current power available for the whole chassis." + ::= { rcSystem 91 } + +rcSysBpduStartMacAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Starting Multicast MAC address for BPDUs" + ::= { rcSystem 92 } + +rcSysBpduMacAddressMask OBJECT-TYPE + SYNTAX INTEGER (1..48) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "BPDU MAC address Mask" + ::= { rcSystem 93 } + +rcSysFrcMsgControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSysFrcMsgControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Management Force-msg Control table. This table is used to + specify the pattern for Force-msg Control" + ::= { rcSystem 94 } + +rcSysFrcMsgControlEntry OBJECT-TYPE + SYNTAX RcSysFrcMsgControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A Force-msg Control table entry." + INDEX { rcSysFrcMsgControlPatternId } + ::= { rcSysFrcMsgControlTable 1 } + +RcSysFrcMsgControlEntry ::= + SEQUENCE { + rcSysFrcMsgControlPatternId Integer32, + rcSysFrcMsgControlPattern DisplayString, + rcSysFrcMsgControlRowStatus RowStatus + } + +rcSysFrcMsgControlPatternId OBJECT-TYPE + SYNTAX Integer32 (1..32) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Pattern Id." + ::= { rcSysFrcMsgControlEntry 1 } + + +rcSysFrcMsgControlPattern OBJECT-TYPE + SYNTAX DisplayString (SIZE (4)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Pattern for filtering the force-msg for msg control" + ::= { rcSysFrcMsgControlEntry 2 } + +rcSysFrcMsgControlRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to create/delete an entry" + ::= { rcSysFrcMsgControlEntry 3 } + +rcSysAccPolSnmpGrpTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSysAccPolSnmpGrpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "SNMP group list for access policy" + ::= { rcSystem 95 } + +rcSysAccPolSnmpGrpEntry OBJECT-TYPE + SYNTAX RcSysAccPolSnmpGrpEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The table entry which covers the groups under snmp service." + INDEX { rcSysAccessPolicyId, rcSysAccPolSnmpGrpName, rcSysAccPolSnmpGrpModel} + ::= { rcSysAccPolSnmpGrpTable 1 } + +RcSysAccPolSnmpGrpEntry ::= + SEQUENCE { + rcSysAccPolSnmpGrpName SnmpAdminString, + rcSysAccPolSnmpGrpModel SnmpSecurityModel, + rcSysAccPolSnmpGrpRowStatus RowStatus + } + +rcSysAccPolSnmpGrpName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(1..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The snmp-v3 group name" + ::= { rcSysAccPolSnmpGrpEntry 1 } + +rcSysAccPolSnmpGrpModel OBJECT-TYPE + SYNTAX SnmpSecurityModel + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The snmp model" + ::= { rcSysAccPolSnmpGrpEntry 2 } + +rcSysAccPolSnmpGrpRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Row status" + ::= { rcSysAccPolSnmpGrpEntry 3 } + +rcSysVirtualIpv6Addr OBJECT-TYPE + SYNTAX Ipv6Address + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The virtual ipv6 address that is owned, advertised, and registered by the master CPU only. Unlike the net management IP address this address is configured in the switch config file as opposed to the boot config." + ::= { rcSystem 96 } + +rcSysVirtualIpv6PrefixLength OBJECT-TYPE + SYNTAX INTEGER (0..128) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The length of the virtual ipv6 addr prefix (in bits)." + ::= { rcSystem 97 } + +-- TFTP Upload/Download + +rcTftpHost OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Name of source/destination host for the TFTP + transfer." + ::= { rcTftp 1 } + +rcTftpFile OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Name of file for the TFTP transfer." + ::= { rcTftp 2 } + +rcTftpAction OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- none of the following + downloadConfig(2), + uploadConfig(3), + downloadSwToFlash(4), + downloadSwToPcmcia(5), + uploadSw(6), + downloadSwToDram(7) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The action for the TFTP transfer." + DEFVAL { none } + ::= { rcTftp 3 } + +rcTftpResult OBJECT-TYPE + SYNTAX INTEGER { + none(1), + inProgress(2), + noResponse(3), + fileAccessError(4), + badFlash(5), + flashEraseFailed(6), + pcmciaEraseFailed(7), + success(8), + fail(9), + writeToNvramFailed(10), + flashWriteFailed(11), + pcmciaWriteFailed(12), + configFileTooBig(13), + imageFileTooBig(14), + noPcmciaDetect(15), + pcmciaNotSupported(16), + invalidFile(17), + noMemory(18), + xferError(19), + crcError(20), + readNvramFailed(21), + pcmciaWriteProtect(22) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Contains result of the last Tftp action request." + ::= { rcTftp 4 } + + +-- PHYSICAL Elements + +rcChasType OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), -- unknown chassis + a1100(2), -- 3 slot chassis (1/2, 1/2, full) + a1250(6), -- 4 slot chassis (full, ... , full) + a1150(7), -- 3 slot chassis (1/2, 1/2, full) + a1200(8), -- 8 slot chassis (full, ... , full) + a1050(9), -- 2 slot chassis (seahawk) + a8006(280887558), -- 6 slot chassis (raptillion) + a8010(280887562), -- 10 slot chassis (raptillion) + a8010co(1623064842), -- 10 slot Central Office Chassis + a8003(280887555), -- 3 slot chassis (raptillion) + a1612G(1086197761), -- 1 slot 12 port cobra (0x40be1001) + a1624G(1086201857), -- 1 slot 24 port cobra (0x40be2001) + a1648T(1086210049), -- 1 slot 52 port cobra (0x40be4001) + a8306(1354629382), -- 6 slot 8300 POE chassis (0x50be0106) + a8310(1354629386) -- 10 slot 8300 POE chassis (0x50be010a) + + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Chassis Type" + ::= { rcChassis 1 } + +rcChasSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Unique serial number for this chassis." + ::= { rcChassis 2 } + +rcChasHardwareRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Device hardware revision level" + ::= { rcChassis 3 } + +rcChasNumSlots OBJECT-TYPE + SYNTAX INTEGER (1..16) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of slots in the chassis available for + plug-in cards." + ::= { rcChassis 4 } + +rcChasNumPorts OBJECT-TYPE + SYNTAX INTEGER (0..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of ports currently installed in + the chassis." + ::= { rcChassis 5 } + +-- TBD FIXME : We need to get the final list from Hardware +rcChasTestResult OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ok(2), + crceeprom(3), + timer(4), + procdram(5), + led(6), + formaccpuaccess(7), + asiccpuaccess(8), + memory(9), + loopback(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Chassis start-up diagnostic tests." + ::= { rcChassis 6 } + +rcChasFan OBJECT IDENTIFIER ::= { rcChassis 7 } + +rcChasFanTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcChasFanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table contains information about Fans" + ::= { rcChasFan 1 } + +rcChasFanEntry OBJECT-TYPE + SYNTAX RcChasFanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Contains information regarding a Fan Unit" + INDEX { rcChasFanId } + ::= { rcChasFanTable 1 } + +RcChasFanEntry ::= + SEQUENCE { + rcChasFanId INTEGER, + rcChasFanOperStatus INTEGER, + rcChasFanAmbientTemperature Gauge32 + } + +rcChasFanId OBJECT-TYPE + SYNTAX INTEGER(1..4) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The chassis fan Id." + ::= { rcChasFanEntry 1 } + +rcChasFanOperStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + up(2), + down(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Actual status of the Fan: + - unknown(1) - status can not be determined. + - up(2) - present and supplying power. + - down(3) - present, but failure indicated." + ::= { rcChasFanEntry 2 } + +rcChasFanAmbientTemperature OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the temperature of the air + entering the fan." + ::= { rcChasFanEntry 3 } + +rcChasPowerSupply OBJECT IDENTIFIER ::= { rcChassis 8 } + +rcChasPowerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcChasPowerSupplyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table contains information about power + supplies." + ::= { rcChasPowerSupply 1 } + +rcChasPowerSupplyEntry OBJECT-TYPE + SYNTAX RcChasPowerSupplyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Contains information regarding a power supply + unit." + INDEX { rcChasPowerSupplyId } + ::= { rcChasPowerSupplyTable 1 } + +RcChasPowerSupplyEntry ::= + SEQUENCE { + rcChasPowerSupplyId INTEGER, + rcChasPowerSupplyOperStatus INTEGER + } + +rcChasPowerSupplyId OBJECT-TYPE + SYNTAX INTEGER(1..3) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The power supply Id." + ::= { rcChasPowerSupplyEntry 1 } + + +rcChasPowerSupplyOperStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + empty(2), + up(3), + down(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Actual status of the power supply: + - unknown(1) - status can not be determined. + - empty(2) - power supply not installed. + - up(3) - present and supplying power. + - down(4) - present, but failure indicated." + ::= { rcChasPowerSupplyEntry 2 } + + +rcChasPowerSupplyDetailTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcChasPowerSupplyDetailEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table contains detailed information about + power supplies." + ::= { rcChasPowerSupply 2 } + +rcChasPowerSupplyDetailEntry OBJECT-TYPE + SYNTAX RcChasPowerSupplyDetailEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Contains detailed info regarding a power supply + unit." + INDEX { rcChasPowerSupplyDetailId } + ::= { rcChasPowerSupplyDetailTable 1 } + +RcChasPowerSupplyDetailEntry ::= + SEQUENCE { + rcChasPowerSupplyDetailId INTEGER, + rcChasPowerSupplyDetailType INTEGER, + rcChasPowerSupplyDetailSerialNumber DisplayString, + rcChasPowerSupplyDetailHardwareRevision DisplayString, + rcChasPowerSupplyDetailPartNumber DisplayString, + rcChasPowerSupplyDetailDescription DisplayString, + rcChasPowerSupplyDetailPsePower INTEGER + } + +rcChasPowerSupplyDetailId OBJECT-TYPE + SYNTAX INTEGER(1..3) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The power supply Id." + ::= { rcChasPowerSupplyDetailEntry 1 } + +rcChasPowerSupplyDetailType OBJECT-TYPE + SYNTAX INTEGER { + unknown(0), + ac(1), + dc(2), + poe(278798592) , -- 8300 110/200 V AC/DC PoE(0x109e2100) + poe1400WPS(278802688) -- 8300 110/200 V 850W/1400W AC/DC PoE(0x109e3100) + + + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The power supply type." + ::= { rcChasPowerSupplyDetailEntry 2 } + +rcChasPowerSupplyDetailSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The power supply serial number." + ::= { rcChasPowerSupplyDetailEntry 3 } + +rcChasPowerSupplyDetailHardwareRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The hardware revision of the power supply." + ::= { rcChasPowerSupplyDetailEntry 4 } + +rcChasPowerSupplyDetailPartNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The power supply part number." + ::= { rcChasPowerSupplyDetailEntry 5 } + +rcChasPowerSupplyDetailDescription OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The detail description of power supply." + ::= { rcChasPowerSupplyDetailEntry 6 } + +rcChasPowerSupplyDetailPsePower OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The nominal power of the PSE expressed in Watts." + ::= { rcChasPowerSupplyDetailEntry 7 } + +rcCard OBJECT IDENTIFIER ::= { rcChassis 9 } + +rcCardTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcCardEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table that contains information about the + cards in this chassis. For those slots that + do not contain a physical card, the table may + be implemented to contain a conceptual row + with the type of physical module set to + 'chasCardEmpty', or it may be implemented to + have no conceptual row instance." + ::= { rcCard 1 } + +rcCardEntry OBJECT-TYPE + SYNTAX RcCardEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Card attributes" + INDEX { rcCardIndex } + ::= { rcCardTable 1 } + +RcCardEntry ::= + SEQUENCE { + rcCardIndex INTEGER, + rcCardType INTEGER, + rcCardSerialNumber DisplayString, + rcCardHardwareRevision DisplayString, + rcCardAdminStatus INTEGER, + rcCardOperStatus INTEGER, + rcCardPCMCIAType INTEGER, + rcCardPartNumber DisplayString + } + +rcCardIndex OBJECT-TYPE + SYNTAX INTEGER (1..10) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A unique value for each module within the chassis. + This value is determined by the chassis slot number + where the module is inserted. Valid entries are 1 + to the value of rcChasNumSlots" + ::= { rcCardEntry 1 } + +rcCardType OBJECT-TYPE + SYNTAX INTEGER + { + other(1), -- no card installed + rcCPU(2), -- [1200] CPU Card (A1200) + rc8x100BaseTX(3), -- [1208TX] 8 port (cat 5) (A1200) + rc8x100BaseT2(4), -- [] 8 port (cat 3) (A1200) + rc8x100BaseF(5), -- [1208FX] 8 port fiber (A1200) + rc16x100BaseTX(6), -- [1216TX] 16 port (cat 5) (A1200) + rc8x100BaseTXWG(12), -- [1108TX] 8 port (half width) (A1100) + rc16x100BaseTXWG(13), -- [1100] 16 port + CPU (A1100) + rc4x100BaseFWG(14), -- [1104FX] 4 port (half width) (A1100) + rc12x100BaseTXWG(15), -- [1050] 12 port + CPU (A1050) + rc12x100BaseFBB(16), -- [] 12 port (A1200) + rc8x100BaseFWG(17), -- [1108FX] 8 port (A1100) + rc12x100BaseTX-2x100BaseFBB(18), -- [] 12 port + 2 port (A1200) + rc2x155BaseFBB(19), -- [] 2 sonet port (A1200) + rc4x155BaseFBB(20), -- [] 4 sonet port (A1200) + rc16x100BaseFBB(21), -- [1216FX] 16 port fiber (A1200) + rc14x100BaseTX-2x100BaseFBB(22), -- [1216TF] 14 port + 2 port (A1200) + rc8x10BaseFBB(23), -- [1208FL] 8 port fiber low-speed (A1200) + rc4xOC3(24), -- [1200xx] 4 port OC3 (A1200) + rc1xOC12(25), -- [1200xx] 1 port OC12 (A1200) + rcRMON(26), -- [1200xx] RMON (A1200) + rc1xOC12POSBaseMMF(27), -- [1200xx] 1 port OC12 POS (A1200) + rc1xOC12POSBaseSMF(28), -- [1200xx] 1 port OC12 POS (A1200) + rc4x1000BaseSXWG(1028), -- [1150] 1 0 00 000 0100 + CPU (A1150) + rc1x1000BaseSXWG(1025), -- [1101SX] 1 0 00 000 0001 + rc2x1000BaseSXWG(1026), -- [1102SX] 1 0 00 000 0010 + rc1x1000BaseSXRWG(1537), -- [1101SR] 1 1 00 000 0001 + rc2x1000BaseSXRWG(1538), -- [1102SR] 1 1 00 000 0010 + rc1x1000BaseLXWG(1153), -- [1101LX] 1 0 01 000 0001 + rc2x1000BaseLXWG(1154), -- [1102LX] 1 0 01 000 0010 + rc2x1000BaseXDWG(1282), -- [1102XD] 1 0 10 000 0010 + rc1x1000BaseLXRWG(1665), -- [1101LR] 1 1 01 000 0001 + rc2x1000BaseLXRWG(1666), -- [1102LR] 1 1 01 000 0010 + rc1x1000BaseSXBB(1041), -- [1201SX] 1 0 00 001 0001 + rc2x1000BaseSXBB(1042), -- [1202SX] 1 0 00 001 0010 + rc1x1000BaseSXRBB(1553), -- [1201SR] 1 1 00 001 0001 + rc2x1000BaseSXRBB(1554), -- [1202SR] 1 1 00 001 0010 + rc1x1000BaseLXBB(1169), -- [1201LX] 1 0 01 001 0001 + rc2x1000BaseLXBB(1170), -- [1202LX] 1 0 01 001 0010 + rc2x1000BaseXDBB(1298), -- [1202XD] 1 0 10 001 0010 + rc1x1000BaseLXRBB(1681), -- [1201LR] 1 1 01 001 0001 + rc2x1000BaseLXRBB(1682) -- [1202LR] 1 1 01 001 0010 + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate a card types in the Accelar + 1000 product families. + + For Accelar 1000 devices, gigabit cards use + an encoded value according to the following rule: + + +-----+--+-+---+---+---+ + bits : |31-11|10|9|8-7|6-4|3-0| + +-----+--+-+---+---+---+ + field : | a | b|c| d | e | f | + +-----+--+-+---+---+---+ + + a : not-used + b : 1=gigabit + c : 0=non-redundant, + 1=redundant + d : 0=short-haul, + 1=long-haul, + 2=extra-distance, + e : 0=work-group(a1100 and a1150) + 1=back-bone(a1200, f1250, and f2000), + f : 1=1-port, 2=2-port, 4=4-port, 8=8-port + " + ::= { rcCardEntry 2 } + +rcCardSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..16)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Unique serial number for this card." + ::= { rcCardEntry 3 } + +rcCardHardwareRevision OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Hardware Version" + ::= { rcCardEntry 4 } + +rcCardAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + testing(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate the administrative status of this + card" + ::= { rcCardEntry 5 } + +rcCardOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), + down(2), + testing(3), + unknown(4), + dormant(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the operational status of this card." + ::= { rcCardEntry 6 } + +rcCardPCMCIAType OBJECT-TYPE + SYNTAX INTEGER { + none(1), + modem28kbs(2), + flash2meg(3), + flash4meg(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the type of PCMCIA card currently + installed in this CPU card, if any. + + For non-CPU cards, this variable has no meaning and + will always be set to none." + DEFVAL { none } + ::= { rcCardEntry 7 } + +rcCardPartNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Card Part Number" + ::= { rcCardEntry 8 } + +rcPort OBJECT IDENTIFIER ::= { rcChassis 10 } -- defined in rcPortXXX.mib + +-- Additional Chassis Group Variables + +rcChasAruMode OBJECT-TYPE + SYNTAX INTEGER + { + aruOne(1), + aruTwo(2), + aruThree(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The ARU mode the chassis is operating in." + ::= { rcChassis 12 } + +rcChasQuidMode OBJECT-TYPE + SYNTAX INTEGER + { + quidMixed(1), + quidTwo(2), + quidThree(3), + quidFour(4), + quidFive(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The Quid mode the chassis is operating in." + ::= { rcChassis 13 } + +rcChasEocModeAdminStatus OBJECT-TYPE + SYNTAX INTEGER + { + default(0), + aru1Quid4(1), + aru2Quid4(2), + aru2Quid5(3), + aru3Quid4(4), + aru3Quid5(5) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to specify the Enforce Operational + Configuration Mode(EOC) of the system. When a + device is configured with hardware of different + revisions, the system will initialize in some + deterministic manner (e.g., the lowest common + denominator that makes sense based on the hardware + configuration). This is the 'default(0)' mode. + The user can override this behavior by manually + specifying the EOC Mode they would like." + ::= { rcChassis 14 } + +-- Agent Table + +rcAgentTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcAgentEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Agents in a chassis table" + ::= { rcChassis 16 } + +rcAgentEntry OBJECT-TYPE + SYNTAX RcAgentEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing info. for a particular agent" + INDEX { rcAgentId } + ::= { rcAgentTable 1 } + +RcAgentEntry ::= SEQUENCE { + rcAgentId Integer32, + rcAgentSlot Integer32, + rcAgentIpAddr IpAddress + } + +rcAgentId OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "entry id" + ::= { rcAgentEntry 1 } + +rcAgentSlot OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "slot agent is in." + ::= { rcAgentEntry 2 } + +rcAgentIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "agent's ip address." + ::= { rcAgentEntry 3 } + +rcChasEocModeOperStatus OBJECT-TYPE + SYNTAX INTEGER + { + default(0), + aru1Quid4(1), + aru2Quid4(2), + aru2Quid5(3), + aru3Quid4(4), + aru3Quid5(5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the Enforce Operational + Configuration Mode(EOC) of the system." + ::= { rcChassis 15 } + +rcChasBrouterPorts OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate which ports in the system are + configured as Brouter ports." + ::= { rcChassis 17 } + +rcChasGlobalFilterEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to enable/disable global filters in the + system. This variable is currently not supported." + DEFVAL { false } + ::= { rcChassis 18 } + +rcChasVlanBySrcMacEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to enable/disable source MAC based VLANs + in the system." + DEFVAL { false } + ::= { rcChassis 19 } + +rcChasDiffServEcnCompatibilityEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to enable/disable the Explicit Congestion + Notification(ECN) compatibility feature. + When set to FALSE , the system will mask the ECN bits + in the DS field while re-marking DSCP and will not match + on ECN capable flows if filter is set on DSmatch. + When set to TRUE, it will preserve the ECN bits in the DS + field while re-marking and will match on full 8-bit DS field." + DEFVAL { false } + ::= { rcChassis 20 } + + +rcChasNewEnhancedOperMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enhanced operational mode." + ::= { rcChassis 21 } + +rcChasNewEMMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This configuration is for enabling/disabling 128K + mode. The change will take effect upon reboot." + ::= { rcChassis 22 } + +rcChasEmModeError OBJECT-TYPE + SYNTAX INTEGER { + none(1), + non128KCardOffLine(2), + checkSlaveConfigNResetForEmMMode(3), + mismatchResetForEmMode(4), + mismatchEmModeMasterSlave(5), + incompatMasterResetForEmMode(6), + putSlaveOffEmImcompat(7), + slave8690EmIncompatGoingOffline(8), + cpu8690DisableEm(9) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the Em-mode error status" + ::= { rcChassis 23 } + +rcChasEnhancedOperMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Enhanced Operational mode the switch currently has + booted and will remain the same unitl the next reboot." + ::= { rcChassis 24 } + +rcChasEMMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "EM mode the switch currently has booted and + will remain the same unitl the next reboot." + ::= { rcChassis 25 } + +rcChasFtpDaemonInSecondaryCpu OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to enable/disable FTP daemon in 2nd cpu." + DEFVAL { false } + ::= { rcChassis 26 } + +rcChasSmltOnSingleCpEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable SMLT on single CP feature in the switch" + ::= { rcChassis 27 } + +rcChasNewVlanOptmMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Vlan Optimization mode." + ::= { rcChassis 28 } + +rcChasVlanOptmMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Vlan Optimization mode the switch currently has + booted and will remain the same unitl the next + reboot." + ::= { rcChassis 29 } + +-- defined in rcLaunchPadXXX.mib +rcLaunchPad OBJECT IDENTIFIER ::= { rcChassis 30 } +rcChasNaapEnable OBJECT-TYPE + SYNTAX EnableValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "To enable/disbale to napp feature." + ::= { rcChassis 31 } + +rcChasGlobalFilterOrderingEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to enable/disable global filter ordering + in the system." + DEFVAL { false } + ::= { rcChassis 32 } + +rcChasNewGlobalFilterOrderingEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This configuration is for enabling/disabling + global filter ordering. The change will take + effect upon reboot." + DEFVAL { false } + ::= { rcChassis 33 } + +rcChasWsmDirectMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This is for enabling/disabling configuration of same + community strings on the WSM and 8600. This if for + allowing users to connect directly via SNMP to the WSM + blade." + DEFVAL { false } + ::= { rcChassis 34 } + +rcChasRspMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This configuration is for enabling/disabling 256K + mode. The change will take effect upon reboot." + ::= { rcChassis 35 } + +rcChasRspOperMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "R-mode the switch currently has booted and + will remain the same until the next reboot." + ::= { rcChassis 36 } + +rcChasRspModeError OBJECT-TYPE + SYNTAX INTEGER { + none(1), + non256KCardOffLine(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the r-mode error status" + ::= { rcChassis 37 } + +rcChasPOE OBJECT IDENTIFIER ::= { rcChassis 38 } + +rcChasPOEPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total PoE power which this chassis + supports (Unit in Watts)." + ::= { rcChasPOE 1 } + +rcChasPOEAllocatedPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total PoE power allocated for PoE modules + installed in this chassis (Unit in Watts)." + ::= { rcChasPOE 2 } + +rcChasPOEAvailablePower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total PoE power available for any + additional PoE power request or allocation + (Unit in Watts)." + ::= { rcChasPOE 3 } + +rcChasPOEBackUpPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total PoE power reserved for backup or + redundancy (Unit in Watts)." + ::= { rcChasPOE 4 } + +-- rcRepeater + +rcRepeater OBJECT IDENTIFIER ::= { rcChassis 39 } + +rcRepeaterTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcRepeaterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Port repeater table" + ::= { rcRepeater 1 } + +rcRepeaterEntry OBJECT-TYPE + SYNTAX RcRepeaterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing info. for a particular repeater" + INDEX { rcRepeaterId } + ::= { rcRepeaterTable 1 } + +RcRepeaterEntry ::= SEQUENCE { + rcRepeaterId INTEGER, + rcRepeaterFirstPort InterfaceIndex, + rcRepeaterSecondPort InterfaceIndex, + rcRepeaterVlanId INTEGER, + rcRepeaterName DisplayString, + rcRepeaterRowStatus RowStatus + } + +rcRepeaterId OBJECT-TYPE + SYNTAX INTEGER(1..32) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A value that uniquely identifies the repeater." + ::= { rcRepeaterEntry 1 } + +rcRepeaterFirstPort OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-write + STATUS current + DESCRIPTION "First port member of the Repeater" + ::= { rcRepeaterEntry 2 } + +rcRepeaterSecondPort OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Second port member of the Repeater" + ::= { rcRepeaterEntry 3 } + +rcRepeaterVlanId OBJECT-TYPE + SYNTAX INTEGER (0..4094) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A value that uniquely identifies the Virtual LAN + associated with first port" + ::= { rcRepeaterEntry 4 } + +rcRepeaterName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An administratively-assigned name for this repeater." + ::= { rcRepeaterEntry 5 } + +rcRepeaterRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to create/delete entries in the rcRepeater." + ::= { rcRepeaterEntry 6 } + +rcChasMcastCheckPktEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to enable/disable Multicast check packet in the + system. This change will take effect upon reboot. " + DEFVAL { true } + ::= { rcChassis 40 } + +rcChasSystemMonitorEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/Disable System monitoring in the switch" + DEFVAL { true } + ::= { rcChassis 41 } + +-- Dip-Switch Group + +rcIsolateUnconfigPorts OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate whether ports that are unconfigured + should be assigned to the 'isolated' VLAN. Ports + assigned to the 'isolated' VLAN can only communicate + with the CP port. If this option is not specified, + unconfigured ports will be assigned to the 'default' + VLAN" + ::= { rcDipSwitch 1 } + +rcUseFactorySettings OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate whether the system should ignore + the configuration information stored in NVRAM when + the system is booted." + ::= { rcDipSwitch 2 } + +rcHighPriorityMode OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate whether the system is configured + to operate in a high priority mode. The switch can + operate in either a 'best effort' or 'high priority' + mode. In the 'best effort' setting, the maximum + queue thresholds for the QUIDs are set to 768/768 + buffers. In the 'high priority' mode the setting + is 512/768. This means that in 'high priority' mode + the normal priority queue can't have more than 512 + buffers, while the high priority queue can have up + to 768." + ::= { rcDipSwitch 3 } + +-- Table Size Group + +rcTblRmonStatSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the current size of the RMON + Statistic table." + ::= { rcTblSize 1 } + +rcTblRmonHistoryControlSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the current size of the RMON + History Control table." + ::= { rcTblSize 2 } + +rcTblRmonHistoryEnetSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the current size of the RMON + History Ethernet table." + ::= { rcTblSize 3 } + +rcTblRmonAlarmSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the current size of the RMON + Alarm table." + ::= { rcTblSize 4 } + +rcTblRmonEventSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the current size of the RMON + Event table." + ::= { rcTblSize 5 } + +rcTblRmonLogSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the current size of the RMON + Log table." + ::= { rcTblSize 6 } + +rcTblArTblSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the size of the Address + Translation (AR) table." + ::= { rcTblSize 7 } + + +rcTblArFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of free + entries that are available in the Address + Translation (AR) table." + ::= { rcTblSize 8 } + +rcTblArNoSpace OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries that could + not be added to the Address Translation (AR) table + due to lack of space." + ::= { rcTblSize 9 } + +rcTblArAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries added to + the Address Translation (AR) table." + ::= { rcTblSize 10 } + +rcTblArDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries deleted to + the Address Translation (AR) table." + ::= { rcTblSize 11 } + +rcTblArMacAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of MAC entries added to + the Address Translation (AR) table." + ::= { rcTblSize 12 } + +rcTblArMacDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of MAC entries deleted to + the Address Translation (AR) table." + ::= { rcTblSize 13 } + +rcTblArMacMoved OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of MAC entries moved in + the Address Translation (AR) table." + ::= { rcTblSize 14 } + +rcTblArIpAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of IP entries added to + the Address Translation (AR) table." + ::= { rcTblSize 15 } + +rcTblArIpDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of IP entries deleted to + the Address Translation (AR) table." + ::= { rcTblSize 16 } + +rcTblArMcastTblSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the size of the Multicast + Address Translation (AR) table." + ::= { rcTblSize 17 } + + +rcTblArFreeMcastGroups OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of free multicast + groups availabe in the Address Translation (AR) + table." + ::= { rcTblSize 18 } + +rcTblArIpMcastAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of Ip multicast + entries that are added to the Address + Translation (AR) table." + ::= { rcTblSize 19 } + +rcTblArIpMcastDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of Ip multicast + entries that are deleted from the Address + Translation (AR) table." + ::= { rcTblSize 20 } + +rcTblArVlanByPortAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of VLAN by port + entries that are added to the Address + Translation (AR) table." + ::= { rcTblSize 21 } + +rcTblArVlanByPortDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of VLAN by port + entries that are deleted from the Address + Translation (AR) table." + ::= { rcTblSize 22 } + +rcTblArVlanByProtocolAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of Vlans by + Protocol Type entries that are added to + the Address Translation (AR) table." + ::= { rcTblSize 23 } + +rcTblArVlanByProtocolDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of Vlans by + Protocol Type entries that are deleted from + the Address Translation (AR) table." + ::= { rcTblSize 24 } + +rcTblArVlanByIpSubnetAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of VLAN by Ip + entries that are added to the Address + Translation (AR) table." + ::= { rcTblSize 25 } + +rcTblArVlanByIpSubnetDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of VLAN by Ip + entries that are deleted from the Address + Translation (AR) table." + ::= { rcTblSize 26 } + +rcTblArIpSubnetsAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of Ip subnet + entries that are added to the Address + Translation (AR) table." + ::= { rcTblSize 27 } + +rcTblArIpSubnetsDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of Ip subnet + entries that are deleted from the Address + Translation (AR) table." + ::= { rcTblSize 28 } + +rcTblArRsvpsAdded OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of RSVP + entries that are added to the Address + Translation (AR) table." + ::= { rcTblSize 29 } + +rcTblArRsvpsDeleted OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of RSVP + entries that are deleted from the Address + Translation (AR) table." + ::= { rcTblSize 30 } + + +rcTblBrdgFdbSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries in the + dot1d forwarding database table." + ::= { rcTblSize 31 } + +rcTblBrdgStaticSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries in the + dot1d Static Address Filtering table." + ::= { rcTblSize 32 } + +rcTblIpAddrSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries in the + IP Address table." + ::= { rcTblSize 33 } + +rcTblIpForwardingSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries in the + IP Forwarding/Best Route table." + ::= { rcTblSize 34 } + +rcTblIpNetToMediaSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of entries in the + IP Net-to-media table." + ::= { rcTblSize 35 } + +rcTblIpBestPlusAltRouteSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { rcTblSize 36 } + +rcTblIpBestPathSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { rcTblSize 37 } + +rcTblIpBestPlusAltPathSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "" + ::= { rcTblSize 38 } + + +-- rcBoot Group + +rcBootFlashSwVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION "BootFlashSwVersion indicates the software + version in the Flash." + ::= { rcBoot 1 } + +rcBootPcmciaSwVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION "BootPcmciaSwVersion indicate the software + version in the Pcmcia card." + ::= { rcBoot 2 } + + +rcBootLastBootSource OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION "Indicates the boot source of the last + the system boot." + ::= { rcBoot 3 } + +rcBootPrimary OBJECT-TYPE + SYNTAX INTEGER { + flash(1), + pcmcia(2), + net(3), + skip(4) + } + MAX-ACCESS read-write + STATUS obsolete + DESCRIPTION "BootPrimary is indicator for the + primary source to boot the system." + DEFVAL { flash } + ::= { rcBoot 4 } + +rcBootSecondary OBJECT-TYPE + SYNTAX INTEGER { + flash(1), + pcmcia(2), + net(3), + skip(4) + } + MAX-ACCESS read-write + STATUS obsolete + DESCRIPTION "BootSecondary indicates the second choice + of the boot source." + DEFVAL { pcmcia } + ::= { rcBoot 5 } + +rcBootTertiary OBJECT-TYPE + SYNTAX INTEGER { + flash(1), + pcmcia(2), + net(3), + skip(4) + } + MAX-ACCESS read-write + STATUS obsolete + DESCRIPTION "BootTertiary indicates the third choice + of boot source." + DEFVAL { net } + ::= { rcBoot 6 } + + +-- rcDevice Group +rcDeviceLastBootSource OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the source of the software + image the system was last booted with." + ::= { rcDevice 1 } + +rcDevicePrimarySource OBJECT-TYPE + SYNTAX INTEGER { + flash(1), + pcmcia(2), + net(3), + skip(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate the primary choice to get + a system software image." + ::= { rcDevice 2 } + +rcDevicePrimarySourceFileName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate a file number, if applicable." + ::= { rcDevice 3 } + +rcDeviceSecondarySource OBJECT-TYPE + SYNTAX INTEGER { + flash(1), + pcmcia(2), + net(3), + skip(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate the secondary choice to get + a system software image." + ::= { rcDevice 4 } + +rcDeviceSecondarySourceFileName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate a file name, if applicable." + ::= { rcDevice 5 } + +rcDeviceTertiarySource OBJECT-TYPE + SYNTAX INTEGER { + flash(1), + pcmcia(2), + net(3), + skip(4) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate the tertiary choice to get + a system software image." + ::= { rcDevice 6 } + +rcDeviceTertiarySourceFileName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate a file name, if applicable." + ::= { rcDevice 7 } + +rcDeviceConfigSource OBJECT-TYPE + SYNTAX INTEGER { + flash(1), + pcmcia(2), + nvram(5) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate the location to get a system + configuration file during system boot." + ::= { rcDevice 8 } + +rcDeviceConfigSourceFileName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..255)) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to indicate a file name, if applicable." + ::= { rcDevice 9 } + +rcDeviceFlashBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the number of bytes used in the + system's configuration flash device." + ::= { rcDevice 10 } + +rcDeviceFlashBytesFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the number of bytes available in + the system's configuration flash device." + ::= { rcDevice 11 } + +rcDevicePcmciaBytesUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the number of bytes used in the + system's PCMCIA device." + ::= { rcDevice 12 } + +rcDevicePcmciaBytesFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the number of bytes available in + the system's PCMCIA device." + ::= { rcDevice 13 } + +rcDeviceAction OBJECT-TYPE + SYNTAX INTEGER { + none(1), + squeezeFlash(2), + squeezePcmcia(3), + formatFlash(4), + formatPcmcia(5), + recoverFlash(6), + recoverPcmcia(7) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to specify a particular action to perform on + one of the system's device." + ::= { rcDevice 14 } + +rcDeviceResult OBJECT-TYPE + SYNTAX INTEGER { + none(1), + inProgress(2), + success(3), + fail(4) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the result of the last action + performed on one of the system's device." + ::= { rcDevice 15 } + +rcDeviceFlashNumFiles OBJECT-TYPE + SYNTAX INTEGER (0..128) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the number of files available in + the system's configuration flash device." + ::= { rcDevice 16 } + +rcDevicePcmciaNumFiles OBJECT-TYPE + SYNTAX INTEGER (0..128) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the number of files available in + the system's PCMCIA device." + ::= { rcDevice 17 } + + +-- The Device Flash Table + +rcDeviceFlashTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcDeviceFlashEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "Flash table." + ::= { rcDevice 25 } + +rcDeviceFlashEntry OBJECT-TYPE + SYNTAX RcDeviceFlashEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "An entry in the system's flash table." + INDEX { rcDeviceFlashFileNum } + ::= { rcDeviceFlashTable 1 } + +RcDeviceFlashEntry ::= + SEQUENCE { + rcDeviceFlashFileNum INTEGER, + rcDeviceFlashFileName DisplayString, + rcDeviceFlashFileVersion DisplayString, + rcDeviceFlashFileType INTEGER, + rcDeviceFlashFileMode INTEGER, + rcDeviceFlashFileSize Integer32, + rcDeviceFlashFileCrc Integer32, + rcDeviceFlashFileStatus INTEGER, + rcDeviceFlashRowStatus RowStatus + } + +rcDeviceFlashFileNum OBJECT-TYPE + SYNTAX INTEGER (0..128) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate a particular file in flash." + ::= { rcDeviceFlashEntry 1 } + +rcDeviceFlashFileName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate a flash file's name." + ::= { rcDeviceFlashEntry 2 } + +rcDeviceFlashFileVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the flash file's version." + ::= { rcDeviceFlashEntry 3 } + +rcDeviceFlashFileType OBJECT-TYPE + SYNTAX INTEGER { + config(1), + log(2), + trace(3), + executable(4) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the flash file's type." + ::= { rcDeviceFlashEntry 4 } + +rcDeviceFlashFileMode OBJECT-TYPE + SYNTAX INTEGER { + compressed(1), + uncompressed(2) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the flash file's mode." + ::= { rcDeviceFlashEntry 5 } + +rcDeviceFlashFileSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the flash file's size." + ::= { rcDeviceFlashEntry 6 } + +rcDeviceFlashFileCrc OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the flash file's CRC." + ::= { rcDeviceFlashEntry 7 } + +rcDeviceFlashFileStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + deleted(2) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the flash file's status. + A file that has been marked for deletion, but + who's space has not been reclaimed yet is marked + as 'deleted'." + ::= { rcDeviceFlashEntry 8 } + +rcDeviceFlashRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Row status." + ::= { rcDeviceFlashEntry 9 } + + +-- The Device Pcmcia Table + +rcDevicePcmciaTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcDevicePcmciaEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "PCMCIA table." + ::= { rcDevice 26 } + +rcDevicePcmciaEntry OBJECT-TYPE + SYNTAX RcDevicePcmciaEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "An entry in the system's PCMCIA table." + INDEX { rcDevicePcmciaFileNum } + ::= { rcDevicePcmciaTable 1 } + +RcDevicePcmciaEntry ::= + SEQUENCE { + rcDevicePcmciaFileNum INTEGER, + rcDevicePcmciaFileName DisplayString, + rcDevicePcmciaFileVersion DisplayString, + rcDevicePcmciaFileType INTEGER, + rcDevicePcmciaFileMode INTEGER, + rcDevicePcmciaFileSize Integer32, + rcDevicePcmciaFileCrc Integer32, + rcDevicePcmciaFileStatus INTEGER, + rcDevicePcmciaRowStatus RowStatus + } + +rcDevicePcmciaFileNum OBJECT-TYPE + SYNTAX INTEGER (0..128) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate a particular file in PCMCIA." + ::= { rcDevicePcmciaEntry 1 } + +rcDevicePcmciaFileName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the PCMCIA file's name." + ::= { rcDevicePcmciaEntry 2 } + +rcDevicePcmciaFileVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the PCMCIA file's version." + ::= { rcDevicePcmciaEntry 3 } + +rcDevicePcmciaFileType OBJECT-TYPE + SYNTAX INTEGER { + config(1), + log(2), + trace(3), + executable(4) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the PCMCIA file's type." + ::= { rcDevicePcmciaEntry 4 } + +rcDevicePcmciaFileMode OBJECT-TYPE + SYNTAX INTEGER { + compressed(1), + uncompressed(2) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate a particular file in mode." + ::= { rcDevicePcmciaEntry 5 } + +rcDevicePcmciaFileSize OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the PCMCIA file's size." + ::= { rcDevicePcmciaEntry 6 } + +rcDevicePcmciaFileCrc OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the PCMCIA file's CRC." + ::= { rcDevicePcmciaEntry 7 } + +rcDevicePcmciaFileStatus OBJECT-TYPE + SYNTAX INTEGER { + active(1), + deleted(2) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Used to indicate the PCMCIA file's status. + A file that has been marked for deletion, but + who's space has not been reclaimed yet is marked + as 'deleted'." + ::= { rcDevicePcmciaEntry 8 } + +rcDevicePcmciaRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Row status." + ::= { rcDevicePcmciaEntry 9 } + +-- rcWeb related information + +rcWebEnableServer OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Control whether the web server should be enabled. + Setting this variable to true will make the server + operational. Setting this variable to false will + disable server." + DEFVAL { false } + ::= { rcWeb 1 } + +rcWebRWAUserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-write-all web-server account." + ::= { rcWeb 2 } + +rcWebRWAPassword OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-write-all web-server account." + ::= { rcWeb 3 } + +rcWebRWUserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-write web-server account." + ::= { rcWeb 4 } + +rcWebRWPassword OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-write web-server account." + ::= { rcWeb 5 } + +rcWebROUserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-only web-server account." + ::= { rcWeb 6 } + +rcWebROPassword OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-only web-server account." + ::= { rcWeb 7 } + +rcWebLastChange OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Last web-browser initiated configuration + change since sysUpTime." + ::= { rcWeb 8 } + +rcWebNumHits OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of hits to the web-server" + ::= { rcWeb 9 } + +rcWebNumAccessChecks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of access checks performed by the web-server" + ::= { rcWeb 10 } + +rcWebNumAccessBlocks OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of accesses blocked by the web-server" + ::= { rcWeb 11 } + +rcWebNumRxErrors OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of receive errors encountered by the web-server" + ::= { rcWeb 12 } + +rcWebNumTxErrors OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of transmit errors encountered by the web-server" + ::= { rcWeb 13 } + +rcWebNumSetRequest OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of set-request to the web-server" + ::= { rcWeb 14 } + +rcWebPrimaryHtmlSourceDir OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "primary html source directory" + DEFVAL { "local" } + ::= { rcWeb 15 } + +rcWebSecondaryHtmlSourceDir OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "secondary html source directory" + DEFVAL { "pcmcia" } + ::= { rcWeb 16 } + +rcWebTertiaryHtmlSourceDir OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "tertiary html source directory" + ::= { rcWeb 17 } + +rcWebRWL3UserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "user name for the L3 web server account" + ::= { rcWeb 18 } + +rcWebRWL3Password OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "password for the L3 web server account" + ::= { rcWeb 19 } + +rcWebRWL2UserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "user name for the L2 web server account" + ::= { rcWeb 20 } + +rcWebRWL2Password OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "password for the L2 web server account" + ::= { rcWeb 21 } + +rcWebDefaultDisplayRows OBJECT-TYPE + SYNTAX INTEGER (10..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "default display rows in html page." + DEFVAL { 48 } + ::= { rcWeb 22 } + +rcWebLastHostAccessBlocked OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "last host access blocked" + ::= { rcWeb 23 } + +rcWebHelpTftpSourceDir OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..256)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "tftp source directory for help files" + ::= { rcWeb 24 } + +rcWebHttpPort OBJECT-TYPE + SYNTAX INTEGER (1..49151) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "the HTTP port for web access" + DEFVAL { 80 } + ::= { rcWeb 25 } + + +-- rcCli related information + +rcCliRWAUserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-write-all CLI account." + ::= { rcCli 1 } + +rcCliRWAPassword OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-write-all CLI account." + ::= { rcCli 2 } + +rcCliRWUserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-write CLI account." + ::= { rcCli 3 } + +rcCliRWPassword OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-write CLI account." + ::= { rcCli 4 } + +rcCliRWL3UserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-write layer-3 CLI account." + ::= { rcCli 5 } + +rcCliRWL3Password OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-write layer-3 CLI account." + ::= { rcCli 6 } + +rcCliRWL2UserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-write layer-2 CLI account." + ::= { rcCli 7 } + +rcCliRWL2Password OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-write layer-2 CLI account." + ::= { rcCli 8 } + +rcCliROUserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-only CLI account." + ::= { rcCli 9 } + +rcCliROPassword OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-only CLI account." + ::= { rcCli 10 } + +rcCliMaxTelnetSessions OBJECT-TYPE + SYNTAX INTEGER (0..8) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate the maximum number of telnet + sessions the system will support." + DEFVAL { 8 } + ::= { rcCli 11 } + +rcCliMaxRloginSessions OBJECT-TYPE + SYNTAX INTEGER (0..8) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate the maximum number of rlogin + sessions the system will support." + DEFVAL { 8 } + ::= { rcCli 12 } + +rcCliTimeout OBJECT-TYPE + SYNTAX INTEGER (30..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to indicate the amount of idle time, in + seconds to wait before timing out telnet and + rlogin sessions." + DEFVAL { 900 } + ::= { rcCli 13 } + +rcCliNumAccessViolations OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of CLI access + violations detected by the system." + ::= { rcCli 14 } + +rcCliRWL1UserName OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "User name for the read-write layer-1 CLI account." + ::= { rcCli 15 } + +rcCliRWL1Password OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Password for the read-write layer-1 CLI account." + ::= { rcCli 16 } + +rcCliPasswordChange OBJECT-TYPE + SYNTAX INTEGER { + ro(1), + l1(2), + l2(3), + l3(4), + rw(5), + rwa(6), + slboper(7), + l4oper(8), + oper(9), + slbadmin(10), + l4admin(11), + ssladmin(12), + commStrRo(13), + commStrRw(14), + commStrl3(15), + commStrl2(16), + commStrl1(17), + webPassWdRo(18) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indication which password is changed when + sending a rcCliPasswordChange trap." + ::= { rcCli 17 } + +rcCliPassChangeResult OBJECT-TYPE + SYNTAX INTEGER { + success(1), + fail(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indication the result of changing password when + sending a rcPasswordChange trap." + ::= { rcCli 18 } + +rcCliRWEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/Disable for the read-write CLI account." + DEFVAL { true } + ::= { rcCli 19 } + +rcCliRWL1Enable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/Disable for the read-write-layer1 CLI + account." + DEFVAL { true } + ::= { rcCli 20 } + +rcCliRWL2Enable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/Disable for the read-write-layer2 CLI + account." + DEFVAL { true } + ::= { rcCli 21 } + +rcCliRWL3Enable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/Disable for the read-write-layer3 CLI + account." + DEFVAL { true } + ::= { rcCli 22 } + +rcCliROEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/Disable for the read-only CLI account." + DEFVAL { true } + ::= { rcCli 23 } + + +-- Syslog Group + +rcSyslogGlobal OBJECT IDENTIFIER ::= { rcSyslog 1 } + +rcSyslogGlobalEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to enable/disable the SysLog feature. When + enabled this feature will send a message to a server + on a network that this configured to receive and + store diagnostic messages from this device. The + type of messages sent is user configurable." + DEFVAL { true } + ::= { rcSyslogGlobal 1 } + +rcSyslogGlobalMaxHosts OBJECT-TYPE + SYNTAX INTEGER (0..10) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Maximun number of remote hosts considered 'active' + and able to receive messages from the Syslog service + on the router." + DEFVAL { 5 } + ::= { rcSyslogGlobal 2 } + +rcSyslogGlobalOperState OBJECT-TYPE + SYNTAX INTEGER { + active(1), + inactive(2), + emptyHostTbl(3), + allHostDisabled(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The operational state of the syslog service + on the router." + DEFVAL { active } + ::= { rcSyslogGlobal 3 } + +rcSyslogHostTbl OBJECT-TYPE + SYNTAX SEQUENCE OF RcSyslogHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Table of remote host destinations for syslog." + ::= { rcSyslog 2 } + +rcSyslogHostEntry OBJECT-TYPE + SYNTAX RcSyslogHostEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing information for a particular + entry in rcSyslogHostTable." + INDEX { rcSyslogHostId } + ::= { rcSyslogHostTbl 1 } + +RcSyslogHostEntry ::= SEQUENCE { + rcSyslogHostId INTEGER, + rcSyslogHostIpAddr IpAddress, + rcSyslogHostUdpPort INTEGER, + rcSyslogHostFacility INTEGER, + rcSyslogHostModuleId INTEGER, + rcSyslogHostModuleId2 Integer32, + rcSyslogHostSeverity INTEGER, + rcSyslogHostMapInfoSeverity INTEGER, + rcSyslogHostMapWarningSeverity INTEGER, + rcSyslogHostMapErrorSeverity INTEGER, + rcSyslogHostMapMfgSeverity INTEGER, + rcSyslogHostMapFatalSeverity INTEGER, + rcSyslogHostMapTraceMsg INTEGER, + rcSyslogHostMapTrapMsg INTEGER, + rcSyslogHostLogTraceMsgs TruthValue, + rcSyslogHostLogTrapMsgs TruthValue, + rcSyslogHostEnable TruthValue, + rcSyslogHostRowStatus RowStatus + } + +rcSyslogHostId OBJECT-TYPE + SYNTAX INTEGER (1..10) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Host Id." + ::= { rcSyslogHostEntry 1 } + +rcSyslogHostIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Host Ip Address" + ::= { rcSyslogHostEntry 2 } + +rcSyslogHostUdpPort OBJECT-TYPE + SYNTAX INTEGER (514..530) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the UDP port to use to send syslog + messages to the host." + DEFVAL { 514 } + ::= { rcSyslogHostEntry 3 } + +rcSyslogHostFacility OBJECT-TYPE + SYNTAX INTEGER { + local0(128), + local1(136), + local2(144), + local3(152), + local4(160), + local5(168), + local6(176), + local7(184) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the UNIX facility used in messages + to the syslog host. Default is LOCAL7." + DEFVAL { local7 } + ::= { rcSyslogHostEntry 4 } + +rcSyslogHostModuleId OBJECT-TYPE + SYNTAX INTEGER { + common (1), -- '00000001'H + snmp (2), -- '00000002'H + rmon (4), -- '00000004'H + portmgr (8), -- '00000008'H + chasmgr (16), -- '00000010'H + bridge (32), -- '00000020'H + ospf (64), -- '00000040'H + hwif (128), -- '00000080'H + sim (256), -- '00000100'H + cpp (512), -- '00000200'H + netdrv (1024), -- '00000400'H + vlanmgr (2048), -- '00000800'H + cli (4096), -- '00001000'H + main (8192), -- '00002000'H + p2ip (16384), -- '00004000'H + rcip (32768), -- '00008000'H + rompager (65536), -- '00010000'H + acif (131072), -- '00020000'H + gbip (262144), -- '00040000'H + wdt (524288), -- '00080000'H + tdp (1048576), -- '00100000'H + mandiag (2097152), -- '00200000'H + mantest (4194304), -- '00400000'H + igmp (8388608), -- '00800000'H + ipfil (16777216), -- '01000000'H + mlt (33554432), -- '02000000'H + ippolicy(67108864), -- '04000000'H + ipmc (134217728), -- '08000000'H + syslog (268435456) -- '10000000'H + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies for which modules/tasks syslog messages + should be sent. Default is all modules/tasks." + ::= { rcSyslogHostEntry 5 } + +rcSyslogHostModuleId2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies for which modules/tasks syslog messages + should be sent. Default is all modules/tasks." + ::= { rcSyslogHostEntry 6 } + +rcSyslogHostSeverity OBJECT-TYPE + SYNTAX INTEGER (1..31) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the severity level for which syslog messages + should be sent for the modules specifies in + 'SyslogHostModule'. + Value is one of multiple (logical 'OR') of the following: + info(1), + warning(2), + error(4), + mfg(8), + fatal(16)." + DEFVAL { 1 } + ::= { rcSyslogHostEntry 7 } + +rcSyslogHostMapInfoSeverity OBJECT-TYPE + SYNTAX INTEGER { + emergency(1), + alert(2), + critical(3), + error(4), + warning(5), + notice(6), + info(7), + debug(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the syslog severity to use for Accelar + INFO messages. Default is INFO." + DEFVAL { info } + ::= { rcSyslogHostEntry 8 } + +rcSyslogHostMapWarningSeverity OBJECT-TYPE + SYNTAX INTEGER { + emergency(1), + alert(2), + critical(3), + error(4), + warning(5), + notice(6), + info(7), + debug(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the syslog severity to use for Accelar + WARNING messages. Default is WARNING. Should be + less than or equal to INFO." + DEFVAL { warning } + ::= { rcSyslogHostEntry 9 } + +rcSyslogHostMapErrorSeverity OBJECT-TYPE + SYNTAX INTEGER { + emergency(1), + alert(2), + critical(3), + error(4), + warning(5), + notice(6), + info(7), + debug(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the syslog severity to use for Accelar + ERROR messages. Default is ERROR. Should be + less than or equal to WARNING." + DEFVAL { error } + ::= { rcSyslogHostEntry 10 } + +rcSyslogHostMapMfgSeverity OBJECT-TYPE + SYNTAX INTEGER { + emergency(1), + alert(2), + critical(3), + error(4), + warning(5), + notice(6), + info(7), + debug(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the syslog severity to use for Accelar + Manufactoring messages. Dafault is ERROR." + DEFVAL { error } + ::= { rcSyslogHostEntry 11 } + +rcSyslogHostMapFatalSeverity OBJECT-TYPE + SYNTAX INTEGER { + emergency(1), + alert(2), + critical(3), + error(4), + warning(5), + notice(6), + info(7), + debug(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the syslog severity to use for Accelar + FATAL messages. Default is EMERGENCY. Should be + less than or equal to ERROR." + DEFVAL { emergency } + ::= { rcSyslogHostEntry 12 } + +rcSyslogHostMapTraceMsg OBJECT-TYPE + SYNTAX INTEGER { + emergency(1), + alert(2), + critical(3), + error(4), + warning(5), + notice(6), + info(7), + debug(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the syslog severity to use for syslog + trace messages. Default is DEBUG." + ::= { rcSyslogHostEntry 13 } + +rcSyslogHostMapTrapMsg OBJECT-TYPE + SYNTAX INTEGER { + emergency(1), + alert(2), + critical(3), + error(4), + warning(5), + notice(6), + info(7), + debug(8) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Specifies the UNIX severity code to use for syslog + messages for SNMP traps sent to the syslog host. + Default is INFO." + ::= { rcSyslogHostEntry 14 } + +rcSyslogHostLogTraceMsgs OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicate whether to activate the host to log the + syslog trace messages." + ::= { rcSyslogHostEntry 15 } + +rcSyslogHostLogTrapMsgs OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicate whether to activate the host to log the + syslog messages for SNMP traps." + ::= { rcSyslogHostEntry 16 } + +rcSyslogHostEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/Disable messages to be sent to syslog host." + DEFVAL { false } + ::= { rcSyslogHostEntry 17 } + +rcSyslogHostRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to create/delete entries in the rcSyslogTable." + ::= { rcSyslogHostEntry 18 } + +-- System Time Grp + +rcUserSetTimeYear OBJECT-TYPE + SYNTAX INTEGER (1998..2097) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Year of the time." + DEFVAL {1998} + ::= { rcUserSetTime 1 } + +rcUserSetTimeMonth OBJECT-TYPE + SYNTAX INTEGER (1..12) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Month of the time." + DEFVAL {1} + ::= { rcUserSetTime 2 } + +rcUserSetTimeDate OBJECT-TYPE + SYNTAX INTEGER (1..31) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Date of the time." + DEFVAL {1} + ::= { rcUserSetTime 3 } + +rcUserSetTimeHour OBJECT-TYPE + SYNTAX INTEGER (0..23) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Hour of the time." + DEFVAL {0} + ::= { rcUserSetTime 4 } + +rcUserSetTimeMinute OBJECT-TYPE + SYNTAX INTEGER (0..59) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Minute of the time." + DEFVAL {0} + ::= { rcUserSetTime 5 } + +rcUserSetTimeSecond OBJECT-TYPE + SYNTAX INTEGER (0..59) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Second of the time." + DEFVAL {0} + ::= { rcUserSetTime 6 } + + +-- RecRecord + +rcRecReservTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcRecReservEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table would display the statistics of several HW + record type used. This will also let the user reserve + certain number of records for each type." + ::= { rcRec 1 } + +rcRecReservTablEntry OBJECT-TYPE + SYNTAX RcRecReservEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "" + INDEX { rcRecReservRecordType } + ::= { rcRecReservTable 1 } + +RcRecReservEntry ::= + SEQUENCE { + rcRecReservRecordType INTEGER, + rcRecReservUsed Integer32, + rcRecReservReserved Integer32, + rcRecReservNewReserved Integer32, + rcRecReservDefReserved Integer32 + } + +rcRecReservRecordType OBJECT-TYPE + SYNTAX INTEGER { + filter(1), + ipmc(2), + local(3), + mac(4), + static(5), + vrrp(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "." + ::= { rcRecReservTablEntry 1 } + +rcRecReservUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Displayes the number of HW records actually usee + by the recordType." + ::= { rcRecReservTablEntry 2 } + +rcRecReservReserved OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Displayes the number of HW records reserved for + the recordType." + ::= { rcRecReservTablEntry 3 } + +rcRecReservNewReserved OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Displayes the number of HW records that w ill + be reserved for this recordType after reset if the + configuration is saved." + ::= { rcRecReservTablEntry 4 } + +rcRecReservDefReserved OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Number of records reserved for this recordType + if loaded with factory default." + ::= { rcRecReservTablEntry 5 } + +-- SSH Group +-- SSH Global Information. All requires RWA access. + +rcSshGlobal OBJECT IDENTIFIER ::= { rcSsh 1 } + +rcSshGlobalVersion OBJECT-TYPE + SYNTAX INTEGER { + v2only(1), + both(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "SSH version" + DEFVAL { v2only } + ::= { rcSshGlobal 1 } + +rcSshGlobalPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "SSH connection port." + DEFVAL { 22 } + ::= { rcSshGlobal 2 } + +rcSshGlobalMaxSession OBJECT-TYPE + SYNTAX INTEGER (0..8) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Number of session allowed." + DEFVAL { 4 } + ::= { rcSshGlobal 3 } + +rcSshGlobalTimeout OBJECT-TYPE + SYNTAX INTEGER (1..120) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "SSH connection timeout in seconds." + DEFVAL { 60 } + ::= { rcSshGlobal 4 } + +rcSshGlobalRsaKeySize OBJECT-TYPE + SYNTAX INTEGER (0|512..1024) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "SSH Rsa key size." + DEFVAL { 1024 } + ::= { rcSshGlobal 5 } + +rcSshGlobalDsaKeySize OBJECT-TYPE + SYNTAX INTEGER (0|512..1024) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "SSH Dsa key size." + DEFVAL { 1024 } + ::= { rcSshGlobal 6 } + +rcSshGlobalRsaAuth OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable SSH RSA authentication" + DEFVAL { true } + ::= { rcSshGlobal 7 } + +rcSshGlobalDsaAuth OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable SSH DSA authentication" + DEFVAL { true } + ::= { rcSshGlobal 8 } + +rcSshGlobalPassAuth OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable SSH RSA authentication" + DEFVAL { true } + ::= { rcSshGlobal 9 } + +rcSshGlobalKeyAction OBJECT-TYPE + SYNTAX INTEGER { + none(0), + generateDsa(1), + generateRsa(2), + deleteDsa(3), + deleteRsa(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "SSH key action." + ::= { rcSshGlobal 10 } + +rcSshGlobalEnable OBJECT-TYPE + SYNTAX INTEGER { + false(0), + true(1), + secure(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable, or securely enable SSH. Securely enable + turns off other daemon flag, and it takes ffect afte reboot" + DEFVAL { false } + ::= { rcSshGlobal 11 } + +rcSshGlobalHostIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "current remote ip addr" + ::= { rcSshGlobal 12 } + +rcSslMipTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSslMipEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table would display the MIP of the SSL blade + according to the slot number." + ::= { rcSsh 2 } + +rcSslMipTableEntry OBJECT-TYPE + SYNTAX RcSslMipEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table get the MIP of the SSL blade on which + the blade is in different cluster." + INDEX { rcSslMipSlot } + ::= { rcSslMipTable 1 } + +RcSslMipEntry ::= + SEQUENCE { + rcSslMipSlot Integer32, + rcSslMipMip DisplayString + } + +rcSslMipSlot OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used as an index to find out the MIP of SSL blade." + ::= { rcSslMipTableEntry 1 } + +rcSslMipMip OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Master IP of the SSL blade." + ::= { rcSslMipTableEntry 2 } + +-- LACP Group +-- LACP Global Information. + +rcLacpGlobal OBJECT IDENTIFIER ::= { rcLacp 1 } + +rcLacpGlobalEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "globally enable/disable LACP" + DEFVAL { false } + ::= { rcLacpGlobal 1 } + +rcLacpGlobalSystemPriority OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "set system priority to all the LACP enabled aggregators + and prots" + DEFVAL { 32768 } + ::= { rcLacpGlobal 2 } + +rcLacpGlobalFastPeriodicTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The number of miliseconds between periodic + transmissions using Short Timeouts. Set this + value to all LACP enabled ports." + DEFVAL { 1000 } + ::= { rcLacpGlobal 3 } + +rcLacpGlobalSlowPeriodicTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The number of miliseconds between periodic + transmissions using LONG Timeouts. Set this + value to all LACP enabled ports." + DEFVAL { 30000 } + ::= { rcLacpGlobal 4 } + +rcLacpGlobalTimeoutScale OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Scalar value used to calculate timeout time from + periodic time. Set this value to all LACP enabled ports." + DEFVAL { 3 } + ::= { rcLacpGlobal 5 } + +rcLacpGlobalAggrWaitTime OBJECT-TYPE + SYNTAX INTEGER (200..2000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The number of mili seconds to delay aggregation + to allow multiple links to aggregate simultaneously." + DEFVAL { 2000 } + ::= { rcLacpGlobal 6 } + +rcLacpGlobalVlacpEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "globally enable/disable Virtual LACP" + DEFVAL { false } + ::= { rcLacpGlobal 7 } + +rcLacpGlobalVlacpMulticastMACAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Virtual LACP multicast MAC address" + ::= { rcLacpGlobal 8 } + +-- rcVlacpPeerMacAddressTable + +rcVlacpPeerMacAddressTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcVlacpPeerMacAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION " Virtual LACP Peer Mac Address table" + ::= { rcLacp 2 } + +rcVlacpPeerMacAddressEntry OBJECT-TYPE + SYNTAX RcVlacpPeerMacAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing info. for a particular peer" + INDEX { rcVlacpPeerMacAddressMAC } + ::= { rcVlacpPeerMacAddressTable 1 } + +RcVlacpPeerMacAddressEntry ::= SEQUENCE { + rcVlacpPeerMacAddressMAC MacAddress, + rcVlacpPeerMacAddressMltId INTEGER, + rcVlacpPeerMacAddressPort InterfaceIndex, + rcVlacpPeerMacAddressIpAddr IpAddress, + rcVlacpPeerMacAddressRowStatus RowStatus + } + +rcVlacpPeerMacAddressMAC OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Virtual LACP peer mac address on a port/MLT" + ::= { rcVlacpPeerMacAddressEntry 1 } + +rcVlacpPeerMacAddressMltId OBJECT-TYPE + SYNTAX INTEGER(1..32) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "MLT Id on which Virtual LACP peer mac address is + directly or indirectly connected" + ::= { rcVlacpPeerMacAddressEntry 2 } + +rcVlacpPeerMacAddressPort OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Ports on which Virtual LACP peer mac address is + directly or indirectly connected" + ::= { rcVlacpPeerMacAddressEntry 3 } + +rcVlacpPeerMacAddressIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Virtual LACP peer Ip Address on port/MLT" + ::= { rcVlacpPeerMacAddressEntry 4 } + +rcVlacpPeerMacAddressRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Used to create/delete entries in the peer address table" + ::= { rcVlacpPeerMacAddressEntry 5 } + +END + diff --git a/pandora_console/attachment/mibs/RC-VLAN-MIB.mib b/pandora_console/attachment/mibs/RC-VLAN-MIB.mib new file mode 100644 index 0000000000..528401e3cd --- /dev/null +++ b/pandora_console/attachment/mibs/RC-VLAN-MIB.mib @@ -0,0 +1,1477 @@ +RC-VLAN-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, IpAddress + FROM SNMPv2-SMI + DisplayString, TruthValue, MacAddress, RowStatus + FROM SNMPv2-TC + InterfaceIndex, InterfaceIndexOrZero + FROM IF-MIB + rcVlan, rcSvlan, IdList, PortSet, EnableValue + FROM RAPID-CITY; + +rcVlanMib MODULE-IDENTITY + LAST-UPDATED "200511220000Z" + ORGANIZATION "Bay Networks, Rapid-City Group" + CONTACT-INFO " + Edwin Tsang + Postal: Bay Networks, Inc. + 4401 Great America Parkway + Santa Clara, CA 95052-8185 + + Tel: 408-495-6159 + Fax: 408-495-5215 + E-mail: edwin_tsang@baynetworks.com + " + DESCRIPTION "Enterprise MIB for the Accelar product family." + + REVISION "200511220000Z" -- 22 Nov 2005 + DESCRIPTION "Version 24: Updated rcVlanPortPerformTagging to match + existing implementations. Restored lost + revision history." + + REVISION "200508150000Z" -- 15 Aug 2005 + DESCRIPTION "Version 23: Added rcVlanOspfPassivePortMember to rcVlanEntry." + + REVISION "200508100000Z" -- 10 Aug 2005 + DESCRIPTION "Version 22: Added rcVlanUnkDstMacDiscard to rcVlanTable." + + REVISION "200504270000Z" -- 27 Apr 2005 + DESCRIPTION "Version 21: Allow rcVlanIgmpSnoopQuerierPort to have value 0." + + REVISION "200503140000Z" -- 14 Mar 2005 + DESCRIPTION "Version 20: Added rcVlanPortSpoofDetect" + + REVISION "200502040000Z" -- 04 Feb 2005 + DESCRIPTION "Version 19: changed ranges of rcVlanAgingTime, rcVlanPortVlanIds" + + REVISION "200501040000Z" -- 04 January 2005 + DESCRIPTION "Version 18: added new mib rcVlanPortArpDetect" + + REVISION "200412030000Z" -- 03 December 2004 + DESCRIPTION "Version 17: increased the range of rcVlanName to (0..64) characters" + + REVISION "200411290000Z" -- 29 November 2004 + DESCRIPTION "Version 16: Cleaned up REVISION info." + + REVISION "200411240000Z" -- 24 November 2004 + DESCRIPTION "Version 15: removed rcVlanNewName & changed the range + for rcVlanName." + + REVISION "200411200000Z" -- 20 November 2004 + DESCRIPTION "Version 14: added new mib rcVlanNewName & made + rcVlanName obsolete." + + REVISION "200410040000Z" -- 04 October 2004 + DESCRIPTION "Version 13: add the range for + rcVlanNewLoopDetectedVlanId." + + REVISION "200409280000Z" -- 28 September 2004 + DESCRIPTION "Version 12: Increase the range for + rvVlanFirwallClusterId." + + REVISION "200409230000Z" -- 23 September 2004 + DESCRIPTION "Version 11: Add range for mib rcVlanPortIndex, + rcVlanMacVlanId, rcVlanLoopDetectedPortIndex, + rcVlanLoopDetectedVlanId." + + REVISION "200409210000Z" -- 21 September 2004 + DESCRIPTION "Version 10: Remove range for mib rcVlanPortIndex, + rcVlanMacVlanId, rcVlanLoopDetectedPortIndex, + rcVlanLoopDetectedVlanId." + + REVISION "200409080000Z" -- 08 September 2004 + DESCRIPTION "Version 9: Added rcVlanNewLoopDetectedTable. Changed + rcVlanPortLoopDetectAction." + + REVISION "200408250000Z" -- 25 August 2004 + DESCRIPTION "Version 8: Added rcVlanFirewallClusterId in rcVlanTable" + + REVISION "200407130000Z" -- 13 July 2004 + DESCRIPTION "Version 7: Added rcVlanTlsIpmc" + + REVISION "200406220000Z" -- 22 June 2004 + DESCRIPTION "Version 6: Added rcVlanPortLoopDetectAction" + + REVISION "200406160000Z" -- 16 June 2004 + DESCRIPTION "Version 5: Added rcVlanIgmpVer1SnoopMRouterPorts and + rcVlanIgmpVer2SnoopMRouterPorts" + + ::= { rcVlan 0 } + +-- VLAN Table + +rcVlanNumVlans OBJECT-TYPE + SYNTAX INTEGER (1..128) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of VLANs currently defined in the switch." + ::= { rcVlan 1 } + +rcVlanTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcVlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of Virtual LAN entries. The number of entries + is given by rcVlanNumVlans." + ::= { rcVlan 2 } + +rcVlanEntry OBJECT-TYPE + SYNTAX RcVlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing configuration information for a + particular Virtual LAN. + + The relationship between the various port sets in a + VLAN Entry are : + + o The set of ports defined by PortMembers must be a + subset of the set of ports in the underlying STG of + the VLAN. + + o The bitwise AND of PortMembers and NotAllowToJoin must + be the empty set. + + o The bitwise OR of PortMembers and NotAllowToJoin must + be the set of ports in the underlying STG of the VLAN. + + o The set of ports defined by StaticMembers must be a + subset of the set of ports defined by PortMembers. + + o The bitwise XOR of PortMembers and StaticMembers defines + the set of dynamic (potential) members of the VLAN. + + o The set of ports defined by ActiveMembers must be a subset + of the set of ports defined by PortMembers. + " + INDEX { rcVlanId } + ::= { rcVlanTable 1 } + +RcVlanEntry ::= SEQUENCE { + rcVlanId INTEGER, + rcVlanName DisplayString, + rcVlanColor INTEGER, + rcVlanHighPriority TruthValue, --excluded + rcVlanRoutingEnable TruthValue, --excluded + rcVlanIfIndex InterfaceIndex, + rcVlanAction INTEGER, + rcVlanResult INTEGER, + rcVlanStgId INTEGER, + rcVlanType INTEGER, + rcVlanPortMembers PortSet, + rcVlanActiveMembers PortSet, + rcVlanStaticMembers PortSet, + rcVlanNotAllowToJoin PortSet, + rcVlanProtocolId INTEGER, + rcVlanSubnetAddr IpAddress, + rcVlanSubnetMask IpAddress, + rcVlanAgingTime INTEGER, + rcVlanMacAddress MacAddress, + rcVlanRowStatus RowStatus, + rcVlanIgmpSnoopEnable TruthValue, + rcVlanIgmpSnoopReportProxyEnable TruthValue, + rcVlanIgmpSnoopRobustness INTEGER, + rcVlanIgmpSnoopQueryInterval INTEGER, + rcVlanIgmpSnoopMRouterPorts PortSet, + rcVlanUserDefinedPid Integer32, + rcVlanIgmpSnoopActiveMRouterPorts PortSet, + rcVlanProtocolIds Integer32, + rcVlanIgmpSnoopActiveQuerier IpAddress, + rcVlanIgmpSnoopMRouterExpiration Integer32, + rcVlanIgmpSnoopQuerierPort InterfaceIndexOrZero, + rcVlanUserPriority INTEGER, + rcVlanQosLevel INTEGER, + rcVlanTosValue INTEGER, + rcVlanEncap INTEGER, + rcVlanFirewallVlanType INTEGER, + rcVlanFdbAging INTEGER, + rcVlanUpdateDynamicMacQosLevel EnableValue, + rcVlanUserDefinedPidList OCTET STRING, + rcVlanIgmpVer1SnoopMRouterPorts PortSet, + rcVlanIgmpVer2SnoopMRouterPorts PortSet, + rcVlanTlsIpmc EnableValue, + rcVlanFirewallClusterId INTEGER, + rcVlanOspfPassivePortMember PortSet + } + +rcVlanId OBJECT-TYPE + SYNTAX INTEGER (1..4094) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A value that uniquely identifies the Virtual LAN + associated with this entry. This value corresponds + to the lower 12 bits in the IEEE 802.1Q VLAN Tag." + ::= { rcVlanEntry 1 } + +rcVlanName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An administratively-assigned name for this VLAN." + ::= { rcVlanEntry 2 } + +rcVlanColor OBJECT-TYPE + SYNTAX INTEGER (0..32) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An administratively-assigned color code for this + VLAN. The value of this object is used by the VLAN + Manager GUI tool to select a color when it draws + this VLAN on the screen." + ::= { rcVlanEntry 3 } + +rcVlanHighPriority OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "A flag to note whether frames in this VLAN should + be assigned a high switching priority." + DEFVAL { false } + ::= { rcVlanEntry 4 } + +rcVlanRoutingEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "A flag to note whether IP routing is enabled in + this VLAN." + DEFVAL { false } + ::= { rcVlanEntry 5 } + +rcVlanIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "When rcVlanRoutingEnable is set to true(1), this + value indicates the 'logical' ifIndex assigned to + this VLAN. Otherwise, this value is meaningless + and should be set to zero." + ::= { rcVlanEntry 6 } + +rcVlanAction OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- none of the following + flushMacFdb(2), -- flush MAC forwarding table + flushArp(3), -- flush ARP table + flushIp(4), -- flush IP route table + flushDynMemb(5), -- flush Dynamic Members + all(6), -- flush all tables + flushSnoopMemb(7), -- flush IGMP Snoop Members + triggerRipUpdate(8), -- manually trigger rip update + flushSnoopMRtr(9) -- flush snoop multicast router + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "VLAN related actions." + DEFVAL { none } + ::= { rcVlanEntry 7 } + +rcVlanResult OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- none of the following + inProgress(2), -- in progress + success(3), -- success + fail(4) -- failure + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The result from the last VLAN action." + DEFVAL { none } + ::= { rcVlanEntry 8 } + +rcVlanStgId OBJECT-TYPE + SYNTAX INTEGER (0..128) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Indicates the Spanning Tree Group (STG) used by + this VLAN to determine the state of its ports. + If this VLAN is not associated with any STG, this + value should be set to zero." + DEFVAL { 1 } + ::= { rcVlanEntry 9 } + +rcVlanType OBJECT-TYPE + SYNTAX INTEGER { + byPort(1), -- VLAN by Port + byIpSubnet(2), -- VLAN by IP subnet + byProtocolId(3), -- VLAN by Protocol Id + bySrcMac(4), -- VLAN by Src MAC address + byDstMcast(5), -- VLAN by Dst MultiCast + bySvlan(6), -- VLAN by Stacked Vlan + byIds(7) -- VLAN by IDS Vlan + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The type of VLAN, distinguished according to the + policy used to define its port membership." + ::= { rcVlanEntry 10 } + +rcVlanPortMembers OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The set of ports that are members (static or + dynamic) of this VLAN." + ::= { rcVlanEntry 11 } + +rcVlanActiveMembers OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The set of ports that are currently active in + this VLAN. Active ports include all static ports + and any dynamic ports where the VLAN policy was + met." + ::= { rcVlanEntry 12 } + +rcVlanStaticMembers OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The set of ports that are static members of this + VLAN. A static member of a VLAN is always active + and is never aged out." + ::= { rcVlanEntry 13 } + +rcVlanNotAllowToJoin OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The set of ports that are not allowed to become + members of this VLAN." + ::= { rcVlanEntry 14 } + +rcVlanProtocolId OBJECT-TYPE + SYNTAX INTEGER { + none(0), + ip(1), + ipx802dot3(2), + ipx802dot2(3), + ipxSnap(4), + ipxEthernet2(5), + appleTalk(6), + decLat(7), + decOther(8), + sna802dot2(9), + snaEthernet2(10), + netBios(11), + xns(12), + vines(13), + ipV6(14), + usrDefined(15), + rarp(16), + pPPoE(17) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The protocol identifier of this VLAN. This value + is meaningful only if rcVlanType is equal to + byProtocolId(3). For other VLAN types it should + have the value none(0)." + ::= { rcVlanEntry 15 } + +rcVlanSubnetAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The IP subnet address of this VLAN. This value + is meaningful only if rcVlanType is equal to + byIpSubnet(2). For other VLAN types it should + have the value 0.0.0.0." + ::= { rcVlanEntry 16 } + +rcVlanSubnetMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The IP subnet mask of this VLAN. This value + is meaningful only if rcVlanType is equal to + byIpSubnet(2). For other VLAN types it should + have the value 0.0.0.0." + ::= { rcVlanEntry 17 } + +rcVlanAgingTime OBJECT-TYPE + SYNTAX INTEGER (0 | 10..1000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The timeout period (in seconds) used for aging + out dynamic members of this VLAN. This field is + only relevant for policy-based VLANs." + DEFVAL { 600 } + ::= { rcVlanEntry 18 } + +rcVlanMacAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The MAC address assigned to the virtual router + interface of this VLAN. This field is meaningful + only if rcVlanRoutingEnable is equal to true(1)." + ::= { rcVlanEntry 19 } + +rcVlanRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to create/delete entries in the rcVlanTable." + ::= { rcVlanEntry 20 } + +rcVlanIgmpSnoopEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "A flag to note whether IGMP Snooping is enabled + on this VLAN." + DEFVAL { false } + ::= { rcVlanEntry 21 } + +rcVlanIgmpSnoopReportProxyEnable OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "A flag to note whether IGMP Report Proxy is + enabled on this VLAN." + DEFVAL { true } + ::= { rcVlanEntry 22 } + +rcVlanIgmpSnoopRobustness OBJECT-TYPE + SYNTAX INTEGER (1..255) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "This variable allows tuning for the expected + packet loss on a subnet. If a subnet is expected + to be lossy, the Robustness variable may be + increased. IGMP is robust to (Robustness - 1) + packet losses." + DEFVAL { 2 } + ::= { rcVlanEntry 23 } + +rcVlanIgmpSnoopQueryInterval OBJECT-TYPE + SYNTAX INTEGER (1..65535) + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The interval (in seconds) between IGMP Host-Query + packets transmitted on this interface." + DEFVAL { 125 } + ::= { rcVlanEntry 24 } + +rcVlanIgmpSnoopMRouterPorts OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The set of ports in this VLAN that provide + connectivity to an IP Multicast router." + ::= { rcVlanEntry 25 } + +rcVlanUserDefinedPid OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "When rcVlanProtocolId is set to usrDefined(15) + in a protocol-based VLAN, this field represents + the 16-bit user defined protocol identifier." + ::= { rcVlanEntry 26 } + +rcVlanIgmpSnoopActiveMRouterPorts OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Active ports." + ::= { rcVlanEntry 27 } + +rcVlanProtocolIds OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Bitfield of protocol ids." + ::= { rcVlanEntry 28 } + +rcVlanIgmpSnoopActiveQuerier OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "IP address of multicast querier router." + ::= { rcVlanEntry 29 } + +rcVlanIgmpSnoopMRouterExpiration OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "Multicast querier router aging time out." + ::= { rcVlanEntry 30 } + +rcVlanIgmpSnoopQuerierPort OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The port on which the multicast querier router + was heard." + ::= { rcVlanEntry 31 } + +rcVlanUserPriority OBJECT-TYPE + SYNTAX INTEGER { + level0(0), + level1(1), + level2(2), + level3(3), + level4(4), + level5(5), + level6(6), + level7(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "User priority level." + ::= { rcVlanEntry 32 } + +rcVlanQosLevel OBJECT-TYPE + SYNTAX INTEGER { + level0(0), + level1(1), + level2(2), + level3(3), + level4(4), + level5(5), + level6(6), + level7(7) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Used to specify the Qos level packets, carried in this + VLAN, should be processed with." + DEFVAL { level1 } + ::= { rcVlanEntry 33 } + +rcVlanTosValue OBJECT-TYPE + SYNTAX INTEGER (1..64) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Tos value." + DEFVAL { 1 } + ::= { rcVlanEntry 34 } + +rcVlanEncap OBJECT-TYPE + SYNTAX INTEGER { + ethernet2(1), + llc(2), + snap(3), + all(4), + notapplicable(5) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This is the encapsulation type for userdefined protocol + based vlans. This is not meaningful for other types of + vlan. The default value is null." + DEFVAL { notapplicable } + ::= { rcVlanEntry 35 } + +rcVlanFirewallVlanType OBJECT-TYPE + SYNTAX INTEGER { + none(1), + naap(2), + enforceable(3), + peering(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This is the firewall vlan type for port based + vlans." + DEFVAL { none } + ::= { rcVlanEntry 36 } + +rcVlanFdbAging OBJECT-TYPE + SYNTAX INTEGER (10..1000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The timeout required to." + DEFVAL { 300 } + ::= { rcVlanEntry 37 } + +rcVlanUpdateDynamicMacQosLevel OBJECT-TYPE + SYNTAX EnableValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "It is used to indicate whether to update qos + level for dynamic learned mac add resses + associated with a subnet-based or protocol-based + vlan when vlan qos level changes. If it is set + to TRUE, qos level for all dynamic learned mac + addresses will be changed upon changing vlan qos + level. If it is set to DISABLE, once a mac address + is learned, qos level will not updated when vlan + qos level changes." + DEFVAL { disable } + ::= { rcVlanEntry 38 } + +rcVlanUserDefinedPidList OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A list of Protocol Id to usrDefined in a protocol-based + VLAN, this field represents the list user defined protocol identifier." + ::= { rcVlanEntry 39 } + +rcVlanIgmpVer1SnoopMRouterPorts OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The set of ports in this VLAN that provide connectivity + to an IP Multicast router using IGMP Version 1." + ::= { rcVlanEntry 40 } + +rcVlanIgmpVer2SnoopMRouterPorts OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The set of ports in this VLAN that provide connectivity + to an IP Multicast router using IGMP version 2." + ::= { rcVlanEntry 41 } + +rcVlanTlsIpmc OBJECT-TYPE + SYNTAX EnableValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable the IP Mcast for this SP IP service Vlan for + TLS OE feature" + DEFVAL { disable } + ::= { rcVlanEntry 42 } + +rcVlanFirewallClusterId OBJECT-TYPE + SYNTAX INTEGER (0..64) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Firewall cluster Id" + DEFVAL { 1 } + ::= { rcVlanEntry 43 } + +rcVlanOspfPassivePortMember OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The set of ports in the vlan that are designated as ospf passive." + ::= { rcVlanEntry 44 } + +-- VLAN Port Table + +rcVlanPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcVlanPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table used to maintain VLAN port related + information." + ::= { rcVlan 3 } + +rcVlanPortEntry OBJECT-TYPE + SYNTAX RcVlanPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing VLAN information regarding a + particular port." + INDEX { rcVlanPortIndex } + ::= { rcVlanPortTable 1 } + +RcVlanPortEntry ::= SEQUENCE { + rcVlanPortIndex Integer32, + rcVlanPortNumVlanIds Integer32, + rcVlanPortVlanIds IdList, + rcVlanPortType INTEGER, + rcVlanPortDiscardTaggedFrames TruthValue, + rcVlanPortDiscardUntaggedFrames TruthValue, + rcVlanPortDefaultVlanId INTEGER, + rcVlanPortPerformTagging INTEGER, + rcVlanPortSVlanPortType INTEGER, + rcVlanPortLoopDetect TruthValue, + rcVlanPortFirstPortInOpid InterfaceIndex, + rcVlanPortLastPortInOpid InterfaceIndex, + rcVlanPortUntagDefaultVlan TruthValue, + rcVlanPortLoopDetectAction INTEGER, + rcVlanPortArpDetect TruthValue, + rcVlanPortSpoofDetect TruthValue + + } + +rcVlanPortIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An unique index used to identify a particular + port in the system. This index is equal to the + ifIndex of the port." + ::= { rcVlanPortEntry 1 } + +rcVlanPortNumVlanIds OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Used to indicate the number of VLAN IDs that + are stored in the rcVlanPortVlanIds variable." + ::= { rcVlanPortEntry 2 } + +rcVlanPortVlanIds OBJECT-TYPE + SYNTAX IdList (SIZE (0..4096)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An array used to identify which VLANs this port + is assigned to. Each VLAN ID is stored as a two + octet value. The first octet in the pair holds + bits 15-8 of the VLAN ID, while the second octet + holds bits 7-0 of the VLAN ID." + ::= { rcVlanPortEntry 3 } + +rcVlanPortType OBJECT-TYPE + SYNTAX INTEGER { + access(1), -- access port type + trunk(2) -- trunk port type + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The type of port: access(1) or trunk(2)." + DEFVAL { access } + ::= { rcVlanPortEntry 4 } + +rcVlanPortDiscardTaggedFrames OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A flag used to determine how to process tagged + frames received on this access port. When the + flag is set, these frames are discarded by the + forwarding process. When the flag is reset, these + frames are processed normally. + + This field is meaningless when the port is not + an access port and should be set to false(2)." + DEFVAL { false } + ::= { rcVlanPortEntry 5 } + +rcVlanPortDiscardUntaggedFrames OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "A flag used to determine how to process untagged + frames received on this trunk port. When the flag + is set, these frames are discarded by the + forwarding process. When the flag is reset, these + frames are assigned to the VLAN specified by + rcVlanPortDefaultVlanId. + + This field is meaningless when the port is not + a trunk port and should be set to false(2)." + DEFVAL { false } + ::= { rcVlanPortEntry 6 } + +rcVlanPortDefaultVlanId OBJECT-TYPE + SYNTAX INTEGER (0..4094) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The VLAN ID assigned to untagged frames received + on this trunk port. + + This field is meaningless when the port is not + a trunk port." + DEFVAL { 1 } + ::= { rcVlanPortEntry 7 } + +rcVlanPortPerformTagging OBJECT-TYPE + SYNTAX INTEGER { + true(1), + false(2), + tagPvidOnly(3), + untagPvidOnly(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable the port on the current vlan to + perform tagging on the incoming and outgoing traffic." + DEFVAL { false } + ::= { rcVlanPortEntry 8 } + +rcVlanPortSVlanPortType OBJECT-TYPE + SYNTAX INTEGER { + normal(1), + uni(2), + nni(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The type of port." + DEFVAL { normal } + ::= { rcVlanPortEntry 9 } + +rcVlanPortLoopDetect OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable loop detection on this port" + DEFVAL { false } + ::= { rcVlanPortEntry 10 } + +rcVlanPortFirstPortInOpid OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This value gives the IfIndex of the first port in the + octapid. This value is used to generate an error message + when changing port type from normal to uni/nni and + viceversa" + ::= { rcVlanPortEntry 11 } + +rcVlanPortLastPortInOpid OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This value gives the IfIndex of the first port in the + octapid. This value is used to generate an error message + when changing port type from normal to uni/nni and + viceversa" + ::= { rcVlanPortEntry 12 } + +rcVlanPortUntagDefaultVlan OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "enable/disable Egress Tagging on the Default Vlan + of the port." + DEFVAL { false } + ::= { rcVlanPortEntry 13 } + + +rcVlanPortLoopDetectAction OBJECT-TYPE + SYNTAX INTEGER { + portDown(1), + vlanBlock(2), + macDiscard(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION "This value is used to specify the action which needs to be + taken once a loop is detected on a specific port." + DEFVAL { portDown } + ::= { rcVlanPortEntry 14 } + +rcVlanPortArpDetect OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable Arp detection on this port" + DEFVAL { false } + ::= { rcVlanPortEntry 15 } + +rcVlanPortSpoofDetect OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Enable/disable spoof detection on this port" + DEFVAL { false } + ::= { rcVlanPortEntry 16 } + + + +-- VLAN MAC Table + +rcVlanMacTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcVlanMacEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table used to maintain MAC addresses assigned + to a particular VLAN by MAC address." + ::= { rcVlan 4 } + +rcVlanMacEntry OBJECT-TYPE + SYNTAX RcVlanMacEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Entry containing VLAN information regarding a + particular port." + INDEX { rcVlanMacVlanId, rcVlanMacAddr } + ::= { rcVlanMacTable 1 } + +RcVlanMacEntry ::= SEQUENCE { + rcVlanMacVlanId Integer32, + rcVlanMacAddr MacAddress, + rcVlanMacRowStatus RowStatus + } + +rcVlanMacVlanId OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An unique index used to identify a VLAN (by MAC + address) in the system." + ::= { rcVlanMacEntry 1 } + +rcVlanMacAddr OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An unique index used to identify a MAC address + assigned to a particular VLAN." + ::= { rcVlanMacEntry 2 } + +rcVlanMacRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Row status for this entry." + ::= { rcVlanMacEntry 3 } + + +-- VLAN IGMP Snoop Table + +rcVlanIgmpSnoopNumGroups OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of entries (rows) in the + rcVlanIgmpSnoopTable." + ::= { rcVlan 5 } + +rcVlanIgmpSnoopTable OBJECT-TYPE --excluded + SYNTAX SEQUENCE OF RcVlanIgmpSnoopEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "The (conceptual) table listing the IP multicast + groups for which there are members on a particular + interface on a particular VLAN (i.e., a list + known multicast receivers). + + A row is created by the system when it receives + an IGMP Join messages on a port." + ::= { rcVlan 6 } + +rcVlanIgmpSnoopEntry OBJECT-TYPE + SYNTAX RcVlanIgmpSnoopEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "An entry (row) in the rcVlanIgmpSnoopTable." + INDEX { rcVlanIgmpSnoopVlanId, rcVlanIgmpSnoopIpAddress, + rcVlanIgmpSnoopIfIndex, rcVlanIgmpSnoopMember } + ::= { rcVlanIgmpSnoopTable 1 } + +RcVlanIgmpSnoopEntry ::= SEQUENCE { + rcVlanIgmpSnoopVlanId INTEGER, + rcVlanIgmpSnoopIpAddress IpAddress, + rcVlanIgmpSnoopIfIndex InterfaceIndex, + rcVlanIgmpSnoopMember IpAddress, + rcVlanIgmpSnoopExpiration Integer32, + rcVlanIgmpSnoopType INTEGER + } + +rcVlanIgmpSnoopVlanId OBJECT-TYPE + SYNTAX INTEGER (1..4094) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The VLAN for which this entry contains + information." + ::= { rcVlanIgmpSnoopEntry 1 } + +rcVlanIgmpSnoopIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP multicast group address for which this + entry contains information." + ::= { rcVlanIgmpSnoopEntry 2 } + +rcVlanIgmpSnoopIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The interface for which this entry contains + information for this IP multicast group address + (i.e., the port the Join message was received)." + ::= { rcVlanIgmpSnoopEntry 3 } + +rcVlanIgmpSnoopMember OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP Address of the source of the membership + report received for this IP Multicast group address + on this interface (i.e., the address of the host + sending the Join message)." + ::= { rcVlanIgmpSnoopEntry 4 } + +rcVlanIgmpSnoopExpiration OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The minimum amount of time remaining before this + entry will be aged out." + ::= { rcVlanIgmpSnoopEntry 5 } + +rcVlanIgmpSnoopType OBJECT-TYPE + SYNTAX INTEGER { + dynamic(1), -- created via IGMP + static(2), -- created via management + blocked(3) + } + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The type of entry: dynamic(1) entries are + created by snooping IGMP messages, static(2) + entries are created via management." + ::= { rcVlanIgmpSnoopEntry 6 } + + +-- VLAN IGMP Snoop Static Table + +rcVlanIgmpSnoopStaticTable OBJECT-TYPE --excluded + SYNTAX SEQUENCE OF RcVlanIgmpSnoopStaticEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "The (conceptual) table listing the statically- + defined IP multicast groups for which there are + members on a particular interface on a particular + VLAN." + ::= { rcVlan 7 } + +rcVlanIgmpSnoopStaticEntry OBJECT-TYPE + SYNTAX RcVlanIgmpSnoopStaticEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "An entry (row) in the rcVlanIgmpSnoopStaticTable." + INDEX { rcVlanIgmpSnoopStaticVlanId, rcVlanIgmpSnoopStaticIpAddress } + ::= { rcVlanIgmpSnoopStaticTable 1 } + +RcVlanIgmpSnoopStaticEntry ::= SEQUENCE { + rcVlanIgmpSnoopStaticVlanId INTEGER, + rcVlanIgmpSnoopStaticIpAddress IpAddress, + rcVlanIgmpSnoopStaticMemberPorts PortSet, + rcVlanIgmpSnoopStaticRowStatus RowStatus, + rcVlanIgmpSnoopStaticNotAllowedToJoin PortSet + } + +rcVlanIgmpSnoopStaticVlanId OBJECT-TYPE + SYNTAX INTEGER (1..4094) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The VLAN for which this entry contains information." + ::= { rcVlanIgmpSnoopStaticEntry 1 } + +rcVlanIgmpSnoopStaticIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP multicast group address for which this + entry contains information. The address must + fall within 224.0.1.0 to 239.255.255.255." + ::= { rcVlanIgmpSnoopStaticEntry 2 } + +rcVlanIgmpSnoopStaticMemberPorts OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "The set of ports in this VLAN multicast traffic + for the rcVlanIgmpSnoopStaticIpAddress is to be + forwarded to." + ::= { rcVlanIgmpSnoopStaticEntry 3 } + +rcVlanIgmpSnoopStaticRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to create/delete entries in the + rcVlanIgmpSnoopStaticTable." + ::= { rcVlanIgmpSnoopStaticEntry 4 } + +rcVlanIgmpSnoopStaticNotAllowedToJoin OBJECT-TYPE + SYNTAX PortSet + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Not allowed to join" + ::= { rcVlanIgmpSnoopStaticEntry 5 } + + +-- VLAN IGMP Snoop Access Table + +rcVlanIgmpSnoopAccessTable OBJECT-TYPE --excluded + SYNTAX SEQUENCE OF RcVlanIgmpSnoopAccessEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "Table used to specify which host(s) can send + and/or receive IP Multicast traffic." + ::= { rcVlan 8 } + +rcVlanIgmpSnoopAccessEntry OBJECT-TYPE + SYNTAX RcVlanIgmpSnoopAccessEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "An entry (row) in the rcVlanIgmpSnoopAccessTable." + INDEX { rcVlanIgmpSnoopAccessVlanId, + rcVlanIgmpSnoopAccessGrpAddr, + rcVlanIgmpSnoopAccessHostAddr, + rcVlanIgmpSnoopAccessHostMask } + ::= { rcVlanIgmpSnoopAccessTable 1 } + + +RcVlanIgmpSnoopAccessEntry ::= SEQUENCE { + rcVlanIgmpSnoopAccessVlanId INTEGER, + rcVlanIgmpSnoopAccessGrpAddr IpAddress, + rcVlanIgmpSnoopAccessHostAddr IpAddress, + rcVlanIgmpSnoopAccessHostMask IpAddress, + rcVlanIgmpSnoopAccessMode INTEGER, + rcVlanIgmpSnoopAccessRowStatus RowStatus + } + +rcVlanIgmpSnoopAccessVlanId OBJECT-TYPE + SYNTAX INTEGER (1..4094) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The VLAN for which this entry contains information." + ::= { rcVlanIgmpSnoopAccessEntry 1 } + +rcVlanIgmpSnoopAccessGrpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP multicast group address for which this + entry contains information." + ::= { rcVlanIgmpSnoopAccessEntry 2 } + +rcVlanIgmpSnoopAccessHostAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP address of a host for which this + entry contains information." + ::= { rcVlanIgmpSnoopAccessEntry 3 } + +rcVlanIgmpSnoopAccessHostMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP netmask of a host for which this + entry contains information." + ::= { rcVlanIgmpSnoopAccessEntry 4 } + +rcVlanIgmpSnoopAccessMode OBJECT-TYPE + SYNTAX INTEGER { + denyTx(1), + denyRx(2), + denyBoth(3) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to specify whether the host identified by + rcVlanIgmpSnoopAccessHostAddr should be denied + IP multicast transmit, receive, or both." + ::= { rcVlanIgmpSnoopAccessEntry 5 } + +rcVlanIgmpSnoopAccessRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Row status" + ::= { rcVlanIgmpSnoopAccessEntry 6 } + + +-- VLAN IGMP Snoop Sender Table + +rcVlanIgmpSnoopSenderTable OBJECT-TYPE --excluded + SYNTAX SEQUENCE OF RcVlanIgmpSnoopSenderEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "The (conceptual) table listing the IP multicast + groups for which there are members on a particular + interface on a particular VLAN (i.e., a list + known multicast senders). + + A row is created by the system when it receives + an IGMP Join messages on a port." + ::= { rcVlan 9 } + +rcVlanIgmpSnoopSenderEntry OBJECT-TYPE + SYNTAX RcVlanIgmpSnoopSenderEntry + MAX-ACCESS not-accessible + STATUS deprecated + DESCRIPTION "An entry (row) in the rcVlanIgmpSnoopSenderTable." + INDEX { rcVlanIgmpSnoopSenderVlanId, + rcVlanIgmpSnoopSenderIpAddress, + rcVlanIgmpSnoopSenderIfIndex, + rcVlanIgmpSnoopSenderMember } + ::= { rcVlanIgmpSnoopSenderTable 1 } + + +RcVlanIgmpSnoopSenderEntry ::= SEQUENCE { + rcVlanIgmpSnoopSenderVlanId INTEGER, + rcVlanIgmpSnoopSenderIpAddress IpAddress, + rcVlanIgmpSnoopSenderIfIndex InterfaceIndex, + rcVlanIgmpSnoopSenderMember IpAddress, + rcVlanIgmpSnoopSenderAction INTEGER + } + +rcVlanIgmpSnoopSenderVlanId OBJECT-TYPE + SYNTAX INTEGER (1..4094) + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The VLAN for which this entry contains information." + ::= { rcVlanIgmpSnoopSenderEntry 1 } + +rcVlanIgmpSnoopSenderIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP multicast group address for which this + entry contains information." + ::= { rcVlanIgmpSnoopSenderEntry 2 } + +rcVlanIgmpSnoopSenderIfIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The interface for which this entry contains + information for this IP multicast group address + (i.e., the port the multicast traffic was received)." + ::= { rcVlanIgmpSnoopSenderEntry 3 } + +rcVlanIgmpSnoopSenderMember OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION "The IP Address of the host sending the multicast + traffic." + ::= { rcVlanIgmpSnoopSenderEntry 4 } + +rcVlanIgmpSnoopSenderAction OBJECT-TYPE + SYNTAX INTEGER { + none(0), + flushEntry(1), + flushGrp(2) + } + MAX-ACCESS read-write + STATUS deprecated + DESCRIPTION "Used to specify an action to perform on this group." + ::= { rcVlanIgmpSnoopSenderEntry 5 } + +-- Vlan Loop Detected Table + +rcVlanLoopDetectedTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcVlanLoopDetectedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of Vlans the port belongs to +and the + corresponding loop detected status." + ::= { rcVlan 10 } + +rcVlanLoopDetectedEntry OBJECT-TYPE + SYNTAX RcVlanLoopDetectedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Loop-Detected Entry." + INDEX { rcVlanLoopDetectedPortIndex, rcVlanLoopDetectedVlanId } + ::= { rcVlanLoopDetectedTable 1 } + +RcVlanLoopDetectedEntry ::= SEQUENCE { + rcVlanLoopDetectedPortIndex Integer32, + rcVlanLoopDetectedVlanId Integer32, + rcVlanLoopDetectedValue INTEGER + } + +rcVlanLoopDetectedPortIndex OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Port Number." + ::= { rcVlanLoopDetectedEntry 1 } + +rcVlanLoopDetectedVlanId OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Gives the VlanId to which the port belongs." + ::= { rcVlanLoopDetectedEntry 2 } + +rcVlanLoopDetectedValue OBJECT-TYPE + SYNTAX INTEGER { + no(0), -- loop not detected + yes(1) -- loop detected + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Gives the Loop Detected status of the port + in a vlan." + DEFVAL { no } + ::= { rcVlanLoopDetectedEntry 3 } + +-- Vlan Dsap Ssap Table + +rcVlanDsapSsapTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcVlanDsapSsapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A table used to maintain DSAP/SSAP values + assigned to a sna802dot2 or userdefined vlan." + ::= { rcVlan 11 } + +rcVlanDsapSsapEntry OBJECT-TYPE + SYNTAX RcVlanDsapSsapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An entry in the rcVlanDsapSsap table." + INDEX { rcVlanDsapSsapVlanId, rcVlanDsapSsapPid } + ::= { rcVlanDsapSsapTable 1 } + +RcVlanDsapSsapEntry ::= SEQUENCE { + rcVlanDsapSsapVlanId INTEGER, + rcVlanDsapSsapPid INTEGER, + rcVlanDsapSsapRowStatus RowStatus + } + +rcVlanDsapSsapVlanId OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A unique index to identify a vlan." + ::= { rcVlanDsapSsapEntry 1 } + +rcVlanDsapSsapPid OBJECT-TYPE + SYNTAX INTEGER (0..'ffff'h) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Values of DSAP/SSAP assigned to a particular + vlan." + ::= { rcVlanDsapSsapEntry 2 } + +rcVlanDsapSsapRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Row Status." + ::= { rcVlanDsapSsapEntry 3 } + +-- Vlan New Loop Detect + +rcVlanNewLoopDetectedTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcVlanNewLoopDetectedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of Vlans the port belongs to and the + corresponding loop detected status." + ::= { rcVlan 12 } + +rcVlanNewLoopDetectedEntry OBJECT-TYPE + SYNTAX RcVlanNewLoopDetectedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Loop-Detected Entry." + INDEX { rcVlanNewLoopDetectedPortIndex, + rcVlanNewLoopDetectedVlanId, + rcVlanNewLoopDetectedMac } + ::= { rcVlanNewLoopDetectedTable 1 } + +RcVlanNewLoopDetectedEntry ::= SEQUENCE { + rcVlanNewLoopDetectedPortIndex InterfaceIndex, + rcVlanNewLoopDetectedVlanId Integer32, + rcVlanNewLoopDetectedMac MacAddress, + rcVlanNewLoopDetectedAction INTEGER, + rcVlanNewLoopDetectedSmltRemote TruthValue + } + +rcVlanNewLoopDetectedPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Port Number." + ::= { rcVlanNewLoopDetectedEntry 1 } + +rcVlanNewLoopDetectedVlanId OBJECT-TYPE + SYNTAX Integer32 (0..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Gives the VlanId to which the port belongs." + ::= { rcVlanNewLoopDetectedEntry 2 } + +rcVlanNewLoopDetectedMac OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Mac address" + ::= {rcVlanNewLoopDetectedEntry 3} + +rcVlanNewLoopDetectedAction OBJECT-TYPE + SYNTAX INTEGER { + portDown(1), + vlanBlock(2), + macDiscard(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION "This value is used to specify the action which + needs to be taken once a loop is detected on a + specific port." + DEFVAL { portDown } + ::= { rcVlanNewLoopDetectedEntry 4 } + +rcVlanNewLoopDetectedSmltRemote OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A MAC address indicate for remote learnt, + either local or remote." + ::= { rcVlanNewLoopDetectedEntry 5 } + +-- Stack Vlan Group Information + +rcSvlanGlobal OBJECT IDENTIFIER ::= { rcSvlan 1 } + +rcSvlanActiveLevel OBJECT-TYPE + SYNTAX INTEGER (0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION "Stacked Vlan active level." + DEFVAL { 0 } + ::= { rcSvlanGlobal 1 } + +-- Stacked Vlan Table Information + +rcSvlanTable OBJECT-TYPE + SYNTAX SEQUENCE OF RcSvlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A list of possible levels and their corresponding ether type. + The number of entries is eight." + ::= { rcSvlan 2 } + +rcSvlanEntry OBJECT-TYPE + SYNTAX RcSvlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A Stacked Vlan table entry." + INDEX { rcSvlanId } + ::= { rcSvlanTable 1 } + +RcSvlanEntry ::= + SEQUENCE { + rcSvlanId INTEGER, + rcSvlanLevel Integer32, + rcSvlanEtherType Integer32 + } + +rcSvlanId OBJECT-TYPE + SYNTAX INTEGER (1..8) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "Row Index." + ::= { rcSvlanEntry 1 } + +rcSvlanLevel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A value that identifies the switch level associated + with this entry." + ::= { rcSvlanEntry 2 } + +rcSvlanEtherType OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION "The ether type value is used for svlan tagging." + ::= { rcSvlanEntry 3 } + + +END diff --git a/pandora_console/attachment/mibs/RDBMS-MIB b/pandora_console/attachment/mibs/RDBMS-MIB new file mode 100644 index 0000000000..723efeb6f5 --- /dev/null +++ b/pandora_console/attachment/mibs/RDBMS-MIB @@ -0,0 +1,1305 @@ + +RDBMS-MIB DEFINITIONS ::= BEGIN + + +IMPORTS + AutonomousType + FROM RFC1316-MIB + TRAP-TYPE + FROM RFC-1215 + DisplayString + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212 + Gauge, Counter + FROM RFC1155-SMI + mib-2 + FROM RFC1213-MIB + applGroup, applIndex + FROM APPLICATION-MIB; + +DateAndTime ::= OCTET STRING (SIZE (8 .. 11)) + +rdbmsMIB OBJECT IDENTIFIER ::= { mib-2 39 } + +rdbmsObjects OBJECT IDENTIFIER ::= { rdbmsMIB 1 } + +rdbmsDbTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of databases installed on a system." + ::= { rdbmsObjects 1 } + +rdbmsDbEntry OBJECT-TYPE + SYNTAX RdbmsDbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single database on the host. Whether a + particular database is represented by a row in rdbmsDbTable + may be dependent on the activity level of that database, + according to the product's implementation. An instance of + rdbmsRelState having the value active, other, or restricted + implies that an entry, corresponding to that instance, will + be present." + INDEX { rdbmsDbIndex } + ::= { rdbmsDbTable 1 } + +RdbmsDbEntry ::= + SEQUENCE { + rdbmsDbIndex + INTEGER, + + rdbmsDbPrivateMibOID + OBJECT IDENTIFIER, + + rdbmsDbVendorName + DisplayString, + + rdbmsDbName + DisplayString, + + rdbmsDbContact + DisplayString + } + +rdbmsDbIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A numeric index, unique among all the databases from all + products on this host. This value is a surrogate for the + conceptually unique key, which is {PrivateMibOID, + databasename}" + ::= { rdbmsDbEntry 1 } + +rdbmsDbPrivateMibOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The authoritative identification for the private MIB for + this database, presumably based on the vendor, e.g., { + enterprises 111 } for Oracle + databases, {enterprises 757 } for + Ingres databases, { enterprises 897 } for Sybase databases, etc. + + If no OBJECT IDENTIFIER exists for the private MIB, attempts + to access this object will return noSuchName (SNMPv1) + or noSuchInstance (SNMPv2)." + ::= { rdbmsDbEntry 2 } + +rdbmsDbVendorName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the vendor whose RDBMS manages this database, + for informational purposes." + ::= { rdbmsDbEntry 3 } + +rdbmsDbName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of this database, in a product specific format. The + product may need to qualify the name in some way to resolve + conflicts if it is possible for a database name to be + duplicated on a host. It might be necessary to construct a + hierarchical name embedding the RDBMS instance/installation + on the host, and/or the owner of the database. For instance, + '/test-installation/database-owner/database-name'." + ::= { rdbmsDbEntry 4 } + +rdbmsDbContact OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The textual identification of the contact person for this + managed database, together with information on how to contact + this person. + + Note: if there is no server associated with this database, an + agent may need to keep this in other persistent storage, + e.g., a configuration file. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbEntry 5 } + +rdbmsDbInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of additional information about databases present + on the host." + ::= { rdbmsObjects 2 } + +rdbmsDbInfoEntry OBJECT-TYPE + SYNTAX RdbmsDbInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information that must be present if the database is actively + opened. If the database is not actively opened, then + attempts to access corresponding instances in this table may + result in either noSuchName (SNMPv1) or noSuchInstance + (SNMPv2). 'Actively opened' means at least one of the + rdbmsRelState entries for this database in the rdbmsRelTable + is active(2)." + INDEX { rdbmsDbIndex } + ::= { rdbmsDbInfoTable 1 } + +RdbmsDbInfoEntry ::= + SEQUENCE { + rdbmsDbInfoProductName + DisplayString, + + rdbmsDbInfoVersion + DisplayString, + + rdbmsDbInfoSizeUnits + INTEGER, + + rdbmsDbInfoSizeAllocated + INTEGER, + + rdbmsDbInfoSizeUsed + INTEGER, + + rdbmsDbInfoLastBackup + DateAndTime + } + +rdbmsDbInfoProductName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The textual product name of the server that created or last + restructured this database. The format is product specific." + ::= { rdbmsDbInfoEntry 1 } + +rdbmsDbInfoVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The version number of the server that created or last + restructured this database. The format is product specific." + ::= { rdbmsDbInfoEntry 2 } + +rdbmsDbInfoSizeUnits OBJECT-TYPE + SYNTAX INTEGER { + bytes(1), + kbytes(2), + mbytes(3), + gbytes(4), + tbytes(5) +} + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identification of the units used to measure the size of this + database in rdbmsDbInfoSizeAllocated and rdbmsDbInfoSizeUsed. + bytes(1) indicates individual bytes, kbytes(2) indicates + units of kilobytes, mbytes(3) indicates units of megabytes, + gbytes(4) indicates units of gigabytes, and tbytes(5) + indicates units of terabytes. All are binary multiples -- 1K + = 1024. If writable, changes here are reflected in the get + values of the associated objects." + ::= { rdbmsDbInfoEntry 3 } + +rdbmsDbInfoSizeAllocated OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The estimated size of this database (in + rdbmsDbInfoSizeUnits), which is the disk space that has been + allocated to it and is no longer available to users on this + host. rdbmsDbInfoSize does not necessarily indicate the + amount of space actually in use for database data. Some + databases may support extending allocated size, and others + may not. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbInfoEntry 4 } + +rdbmsDbInfoSizeUsed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The estimated size of this database, in rdbmsDbInfoSizeUnits, + which is actually in use for database data." + ::= { rdbmsDbInfoEntry 5 } + +rdbmsDbInfoLastBackup OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date and time that the latest complete or partial backup + of the database was taken. If a database has never been + backed up, then attempts to access this object will + result in either noSuchName (SNMPv1) or noSuchInstance + (SNMPv2)." + ::= { rdbmsDbInfoEntry 6 } + +rdbmsDbParamTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of configuration parameters for a database. + Entries should be populated according to the following + guidelines: + (1) The value should be specified through administrative + (human) intervention. + (2) It should be configured on a per-database basis. + (3) One of the following is true: + (a) The parameter has a non-numeric value; + (b) The current value is numeric, but it only changes due + to human intervention; + (c) The current value is numeric and dynamic, but the + RDBMS does not track access/allocation failures + related to the parameter; + (d) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, but the failure has no + significant impact on RDBMS performance or + availability. + (e) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, the failure has + significant impact on RDBMS performance or + availability, and is shown in the + rdbmsDbLimitedResource table." + ::= { rdbmsObjects 3 } + +rdbmsDbParamEntry OBJECT-TYPE + SYNTAX RdbmsDbParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single configuration parameter for a database. + Parameters with single values have a subindex value of one. + If the parameter is naturally considered to contain a + variable number of members of a class, e.g. members of the + DBA user group, or files which are part of the database, then + it must be presented as a set of rows. If, on the other + hand, the parameter represents a set of choices from a class, + e.g. the permissions on a file or the options chosen out of + the set of all options allowed, AND is guaranteed to always + fit in the 255 character length of a DisplayString, then it + may be presented as a comma separated list with a subindex + value of one. Zero may not be used as a subindex value. + + If the database is not actively opened, then attempts + to access corresponding instances in this table may result in + either noSuchName (SNMPv1) or noSuchInstance (SNMPv2). + 'Actively opened' means at least one of the + rdbmsRelState entries for this database in the rdbmsRelTable + is active(2)." + INDEX { rdbmsDbIndex, rdbmsDbParamName, rdbmsDbParamSubIndex } + ::= { rdbmsDbParamTable 1 } + +RdbmsDbParamEntry ::= + SEQUENCE { + rdbmsDbParamName + DisplayString, + + rdbmsDbParamSubIndex + INTEGER, + + rdbmsDbParamID + AutonomousType, + + rdbmsDbParamCurrValue + DisplayString, + + rdbmsDbParamComment + DisplayString + } + +rdbmsDbParamName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of a configuration parameter for a database. This + name is product-specific. The length is limited to 64 + characters to constrain the number of sub-identifiers needed + for instance identification (and to minimize network + traffic)." + ::= { rdbmsDbParamEntry 1 } + +rdbmsDbParamSubIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The subindex value for this parameter. If the parameter is + naturally considered to contain a variable number of members + of a class, e.g. members of the DBA user group, or files + which are part of the database, then it must be presented as + a set of rows. If, on the other hand, the parameter + represents a set of choices from a class, e.g. the + permissions on a file or the options chosen out of the set of + all options allowed, AND is guaranteed to always fit in the + 255 character length of a DisplayString, then it may be + presented as a comma separated list with a subindex value of + one. Zero may not be used as a value." + ::= { rdbmsDbParamEntry 2 } + +rdbmsDbParamID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the parameter which may be described in some other + MIB (e.g., an enterprise-specific MIB module). If there is + no ID for this rdbmsDbParamName, attempts to access this + object will return noSuchName (SNMPv1) or noSuchInstance + (SNMPv2)." + ::= { rdbmsDbParamEntry 3 } + +rdbmsDbParamCurrValue OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value for a configuration parameter now in effect, the + actual setting for the database. While there may multiple + values in the temporal domain of interest (for instance, the + value to take effect at the next restart), this is the + current setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbParamEntry 4 } + +rdbmsDbParamComment OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Annotation which describes the purpose of a configuration + parameter or the reason for a particular parameter's + setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbParamEntry 5 } + +rdbmsDbLimitedResourceTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of limited resources that are kept per-database." + ::= { rdbmsObjects 4 } + +rdbmsDbLimitedResourceEntry OBJECT-TYPE + SYNTAX RdbmsDbLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single limited resource kept per-database. + A limited resource has maximum use determined by a parameter + that might or might not be changeable at run time, or visible + in the rdbmsDbParamTable. Examples would be the number of + available locks, or disk space on a partition. Arrays of + resources are supported through an integer sub index, which + should have the value of one for single-instance names. + + Limited resources that are shared across databases, are best + put in the rdbmsSvrLimitedResourceTable instead of this one. + If the database is not actively opened, then attempts to + access corresponding instances in this table may result in + either noSuchName (SNMPv1) or noSuchInstance (SNMPv2). + 'Actively opened' means at least one of the rdbmsRelState + entries for this database in the rdbmsRelTable is active(2)." + INDEX { rdbmsDbIndex, rdbmsDbLimitedResourceName } + ::= { rdbmsDbLimitedResourceTable 1 } + +RdbmsDbLimitedResourceEntry ::= + SEQUENCE { + rdbmsDbLimitedResourceName + DisplayString, + + rdbmsDbLimitedResourceID + AutonomousType, + + rdbmsDbLimitedResourceLimit + INTEGER, + + rdbmsDbLimitedResourceCurrent + INTEGER, + + rdbmsDbLimitedResourceHighwater + INTEGER, + + rdbmsDbLimitedResourceFailures + Counter, + + rdbmsDbLimitedResourceDescription + DisplayString + } + +rdbmsDbLimitedResourceName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of the resource, for instance 'global locks' or + 'locks for the FOO database', or 'data space on /dev/rdsk/5s0 + for FOO'. The length is limited to 64 characters to constrain + the number of sub-identifiers needed for instance + identification (and to minimize network traffic)." + ::= { rdbmsDbLimitedResourceEntry 1 } + +rdbmsDbLimitedResourceID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the resource which may be described in some other + MIB (e.g., an enterprise-specific MIB module). If there is + no ID for this rdbmsDbLimitedResourceName, attempts to access + this object will return noSuchName (SNMPv1) or noSuchInstance + (SNMPv2)." + ::= { rdbmsDbLimitedResourceEntry 2 } + +rdbmsDbLimitedResourceLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum value the resource use may attain. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbLimitedResourceEntry 3 } + +rdbmsDbLimitedResourceCurrent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current value for the resource." + ::= { rdbmsDbLimitedResourceEntry 4 } + +rdbmsDbLimitedResourceHighwater OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum value of the resource seen since applUpTime + was reset for the earliest server which has the database + actively opened. + + If there are two servers with the database open, and the + oldest one dies, the proper way to invalidate the value is by + resetting sysUpTime." + ::= { rdbmsDbLimitedResourceEntry 5 } + +rdbmsDbLimitedResourceFailures OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the system wanted to exceed the limit of + the resource since applUpTime was reset for the earliest + server which has the database actively opened. + + If there are two servers with the DB open, and the + oldest one dies, the proper way to invalidate the value is by + resetting sysUpTime." + ::= { rdbmsDbLimitedResourceEntry 6 } + +rdbmsDbLimitedResourceDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A description of the resource and the meaning of the integer + units used for Limit, Current, and Highwater. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbLimitedResourceEntry 7 } + +rdbmsSrvTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of database servers running or installed + on a system." + ::= { rdbmsObjects 5 } + +rdbmsSrvEntry OBJECT-TYPE + SYNTAX RdbmsSrvEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single database server. A server is an + independent entity that provides access to one or more + databases. Failure of one does not affect access to + databases through any other servers. There might be one or + more servers providing access to a database. A server may be + a 'process' or collection of 'processes', as interpreted by + the product." + INDEX { applIndex } + ::= { rdbmsSrvTable 1 } + +RdbmsSrvEntry ::= + SEQUENCE { + rdbmsSrvPrivateMibOID + OBJECT IDENTIFIER, + + rdbmsSrvVendorName + DisplayString, + + rdbmsSrvProductName + DisplayString, + + rdbmsSrvContact + DisplayString + } + +rdbmsSrvPrivateMibOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The authoritative identification for the private MIB for this + server, presumably based on the vendor, e.g., { enterprises + 111 } for Oracle servers, { + enterprises 757 } for Ingres + servers, { enterprises 897 } for + Sybase servers, etc. + + If no OBJECT IDENTIFIER exists for the private MIB, attempts + to access this object will return noSuchName (SNMPv1) + or noSuchInstance (SNMPv2)." + ::= { rdbmsSrvEntry 1 } + +rdbmsSrvVendorName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the vendor whose RDBMS manages this database, + for informational purposes." + ::= { rdbmsSrvEntry 2 } + +rdbmsSrvProductName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product name of this server. This is normally the + vendor's formal name for the product, in product specific + format." + ::= { rdbmsSrvEntry 3 } + +rdbmsSrvContact OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The textual identification of the contact person for this + managed server, together with information on how to contact + this person. + + Note: if there is no active server associated with this + object, an agent may need to keep this in other persistent + storage, e.g., a configuration file. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvEntry 4 } + +rdbmsSrvInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of additional information about database servers. + + Entries in this table correspond to applications in the + APPLICATION-MIB applTable. Some objects in that table are + application-specific. When they are associated with an RDBMS + server in this table, the objects have the following + meanings. + + applName - The name of this server, i.e., the process or + group of processes providing access to this database. The + exact format will be product and host specific. + + applVersion - The version number of this server, in product + specific format. + + applOperStatus - up(1) means operational and available for + general use. down(2) means the server is not available for + use, but is known to the agent. The other states have broad + meaning, and may need to be supplemented by the vendor + private MIB. Halted(3) implies an administrative state of + unavailability. Congested(4) implies a resource or or + administrative limit is prohibiting new inbound associations. + The 'available soon' description of restarting(5) may include + an indeterminate amount of recovery. + + applLastChange is the time the agent noticed the most recent + change to applOperStatus. + + applInboundAssociation is the number of currently active + local and remote conversations (usually SQL connects). + + applOutboundAssociations is not provided by this MIB. + + applAccumulatedInboundAssociations is the total number of + local and remote conversations started since the server came + up. + + applAccumulatedOutbound associations is not provided by this + MIB. + + applLastInboundActivity is the time the most recent local or + remote conversation was attempted or disconnected. + + applLastOutboundActivity is not provided by this MIB. + + applRejectedInboundAssociations is the number of local or + remote conversations rejected by the server for + administrative reasons or because of resource limitations. + + applFailedOutboundAssociations is not provided by this MIB." + ::= { rdbmsObjects 6 } + +rdbmsSrvInfoEntry OBJECT-TYPE + SYNTAX RdbmsSrvInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information that must be present for a single 'up' database + server, with visibility determined by the value of the + corresponding applOperStatus object. If an instance of + applOperStatus is not up(1), then attempts to access + corresponding instances in this table may result in either + noSuchName (SNMPv1) or noSuchInstance (SNMPv2) being returned + by the agent." + INDEX { applIndex } + ::= { rdbmsSrvInfoTable 1 } + +RdbmsSrvInfoEntry ::= + SEQUENCE { + rdbmsSrvInfoStartupTime + DateAndTime, + + rdbmsSrvInfoFinishedTransactions + Gauge, + + rdbmsSrvInfoDiskReads + Counter, + + rdbmsSrvInfoDiskWrites + Counter, + + rdbmsSrvInfoLogicalReads + Counter, + + rdbmsSrvInfoLogicalWrites + Counter, + + rdbmsSrvInfoPageWrites + Counter, + + rdbmsSrvInfoPageReads + Counter, + + rdbmsSrvInfoDiskOutOfSpaces + Counter, + + rdbmsSrvInfoHandledRequests + Counter, + + rdbmsSrvInfoRequestRecvs + Counter, + + rdbmsSrvInfoRequestSends + Counter, + + rdbmsSrvInfoHighwaterInboundAssociations + Gauge, + + rdbmsSrvInfoMaxInboundAssociations + Gauge + } + +rdbmsSrvInfoStartupTime OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date and time at which this server was last started." + ::= { rdbmsSrvInfoEntry 1 } + +rdbmsSrvInfoFinishedTransactions OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of transactions visible to this server that have + been completed by either commit or abort. Some database + operations, such as read-only queries, may not result in the + creation of a transaction." + ::= { rdbmsSrvInfoEntry 2 } + +rdbmsSrvInfoDiskReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of reads of database files issued to the + operating system by this server since startup. Numbers are + not comparable between products. What constitutes a + readand how it is accounted is product-specific." + ::= { rdbmsSrvInfoEntry 3 } + +rdbmsSrvInfoLogicalReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of logical reads of database files made + internally by this server since startup. The values of this + object and those of rdbmsSrvInfoDiskReads reveal the effect + of caching on read operation. Numbers are not comparable + between products, and may only be meaningful when aggregated + across all servers sharing a common cache." + ::= { rdbmsSrvInfoEntry 4 } + +rdbmsSrvInfoDiskWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of writes to database files issued to the + operating system by this server since startup. Numbers are + not comparable between products." + ::= { rdbmsSrvInfoEntry 5 } + +rdbmsSrvInfoLogicalWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of times parts of the database files have + been marked 'dirty' and in need of writing to the disk. This + value and rdbmsSrvInfoDiskWrites give some indication of the + effect of 'write-behind' strategies in reducing the number of + disk writes compared to database operations. Because the + writes may be done by servers other than those marking the + parts of the database files dirty, these values may only be + meaningful when aggregated across all servers sharing a + common cache. Numbers are not comparable between products." + ::= { rdbmsSrvInfoEntry 6 } + +rdbmsSrvInfoPageReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of pages in database files read by this + server since startup. 'Pages' are product specific units of + disk i/o operations. This value, along with + rdbmsSrvInfoDiskReads, reveals the effect of any grouping + read-ahead that may be used to enhance performance of some + queries, such as scans." + ::= { rdbmsSrvInfoEntry 7 } + +rdbmsSrvInfoPageWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of pages in database files written by this + server since startup. Pages are product-specific units of + disk I/O. This value, with rdbmsSrvInfoDiskWrites, shows the + effect of write strategies that collapse logical writes of + contiguous pages into single calls to the operating system." + ::= { rdbmsSrvInfoEntry 8 } + +rdbmsSrvInfoDiskOutOfSpaces OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of times the server has been unable to + obtain disk space that it wanted, since server startup. This + would be inspected by an agent on receipt of an + rdbmsOutOfSpace trap." + ::= { rdbmsSrvInfoEntry 9 } + +rdbmsSrvInfoHandledRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of requests made to the server on inbound + associations. The meaning of 'requests' is product specific, + and is not comparable between products. + + This is intended to encapsulate high level semantic + operations between clients and servers, or between peers. + For instance, one request might correspond to a 'select' or + an 'insert' statement. It is not intended to capture disk + i/o described in rdbmsSrvInfoDiskReads and + rdbmsSrvInfoDiskWrites." + ::= { rdbmsSrvInfoEntry 10 } + +rdbmsSrvInfoRequestRecvs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of receive operations made processing any requests + on inbound associations. The meaning of operations is product + specific, and is not comparable between products. + + This is intended to capture lower-level i/o operations than + shown by HandledRequests, between clients and servers, or + between peers. For instance, it might roughly correspond to + the amount of data given with an 'insert' statement. It is + not intended to capture disk i/o described in + rdbmsSrvInfoDiskReads and rdbmsSrvInfoDiskWrites." + ::= { rdbmsSrvInfoEntry 11 } + +rdbmsSrvInfoRequestSends OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of send operations made processing requests + handled on inbound associations. The meaning of operations + is product specific, and is not comparable between products. + This is intended to capture lower-level i/o operations than + shown by HandledRequests, between between clients and + servers, or between peers. It might roughly correspond to + the number of rows returned by a 'select' statement. It is + not intended to capture disk i/o described in DiskReads." + ::= { rdbmsSrvInfoEntry 12 } + +rdbmsSrvInfoHighwaterInboundAssociations OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The greatest number of inbound associations that have been + simultaneously open to this server since startup." + ::= { rdbmsSrvInfoEntry 13 } + +rdbmsSrvInfoMaxInboundAssociations OBJECT-TYPE + SYNTAX Gauge + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The greatest number of inbound associations that can be + simultaneously open with this server. If there is no limit, + then the value should be zero. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvInfoEntry 14 } + +rdbmsSrvParamTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of configuration parameters for a server. Entries + should be populated according to the following guidelines: + (1) The value should be specified through administrative + (human) intervention. + (2) It should be configured on a per-server or a more global + basis, with duplicate entries for each server sharing + use of the parameter. + (3) One of the following is true: + (a) The parameter has a non-numeric value; + (b) The current value is numeric, but it only changes due + to human intervention; + (c) The current value is numeric and dynamic, but the + RDBMS does not track access/allocation failures + related to the parameter; + (d) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, but the failure has no + significant impact on RDBMS performance or + availability. + (e) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, the failure has + significant impact on RDBMS performance or + availability, and is shown in the + rdbmsSrvLimitedResource table." + ::= { rdbmsObjects 7 } + +rdbmsSrvParamEntry OBJECT-TYPE + SYNTAX RdbmsSrvParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single configuration parameter for a server. + Parameters with single values have a subindex value of one. + If the parameter is naturally considered to contain a + variable number of members of a class, e.g. members of the + DBA user group, or tracepoints active in the server, then it + must be presented as a set of rows. If, on the other hand, + the parameter represents a set of choices from a class, + e.g. the permissions on a file or the options chosen out of + the set of all options allowed, AND is guaranteed to always + fit in the 255 character length of a DisplayString, then it + may be presented as a comma separated list with a subindex + value of one. Zero may not be used as a subindex value. + + Entries for a server must be present if the value of the + corresponding applOperStatus object is up(1). If an instance + of applOperStatus is not up(1), then attempts to access + corresponding instances in this table may result in either + noSuchName (SNMPv1) or noSuchInstance (SNMPv2) being returned + by the agent." + INDEX { applIndex, rdbmsSrvParamName, rdbmsSrvParamSubIndex } + ::= { rdbmsSrvParamTable 1 } + +RdbmsSrvParamEntry ::= + SEQUENCE { + rdbmsSrvParamName + DisplayString, + + rdbmsSrvParamSubIndex + INTEGER, + + rdbmsSrvParamID + AutonomousType, + + rdbmsSrvParamCurrValue + DisplayString, + + rdbmsSrvParamComment + DisplayString + } + +rdbmsSrvParamName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of a configuration parameter for a server. This + name is product-specific. The length is limited to 64 + characters to constrain the number of sub-identifiers needed + for instance identification (and to minimize network + traffic)." + ::= { rdbmsSrvParamEntry 1 } + +rdbmsSrvParamSubIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The subindex value for this parameter. If the parameter is + naturally considered to contain a variable number of members + of a class, e.g. members of the DBA user group, or files + which are part of the database, then it must be presented as + a set of rows. If, on the other hand, the parameter + represents a set of choices from a class, e.g. the + permissions on a file or the options chosen out of the set of + all options allowed, AND is guaranteed to always fit in the + 255 character length of a DisplayString, then it may be + presented as a comma separated list with a subindex value of + one. Zero may not be used as a value." + ::= { rdbmsSrvParamEntry 2 } + +rdbmsSrvParamID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the parameter which may be described in some + other MIB. If there is no ID for this rdbmsSrvParamName, + attempts to access this object will return noSuchName + (SNMPv1) or noSuchInstance (SNMPv2)." + ::= { rdbmsSrvParamEntry 3 } + +rdbmsSrvParamCurrValue OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value for a configuration parameter now in effect, the + actual setting for the server. While there may multiple + values in the temporal domain of interest (for instance, the + value to take effect at the next restart), this is the + current setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvParamEntry 4 } + +rdbmsSrvParamComment OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Annotation which describes the purpose of a configuration + parameter or the reason for a particular parameter's + setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvParamEntry 5 } + +rdbmsSrvLimitedResourceTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of limited resources relevant to a server." + ::= { rdbmsObjects 8 } + +rdbmsSrvLimitedResourceEntry OBJECT-TYPE + SYNTAX RdbmsSrvLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single limited resource kept by the server. + A limited resource has maximum use determined by a parameter + that might or might not changeable at run time, or visible in + the rbmsSrvParamTable. Examples would be the number of + available locks, or number of concurrent executions allowed + in a server. Arrays of resources are supported through an + integer subindex, which should have the value of one for + single-instance names. + + Limited resources that are shared across servers or databases + are best duplicated in this table across + all servers accessing the resource." + INDEX { applIndex, rdbmsSrvLimitedResourceName } + ::= { rdbmsSrvLimitedResourceTable 1 } + +RdbmsSrvLimitedResourceEntry ::= + SEQUENCE { + rdbmsSrvLimitedResourceName + DisplayString, + + rdbmsSrvLimitedResourceID + AutonomousType, + + rdbmsSrvLimitedResourceLimit + INTEGER, + + rdbmsSrvLimitedResourceCurrent + INTEGER, + + rdbmsSrvLimitedResourceHighwater + INTEGER, + + rdbmsSrvLimitedResourceFailures + Counter, + + rdbmsSrvLimitedResourceDescription + DisplayString + } + +rdbmsSrvLimitedResourceName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of the resource, for instance 'threads' or + 'semaphores', or 'buffer pages'" + ::= { rdbmsSrvLimitedResourceEntry 1 } + +rdbmsSrvLimitedResourceID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the resource which may be described in some other + MIB. If there is no ID for this rdbmsSrvLimitedResourceName, + attempts to access this object will return noSuchName + (SNMPv1) or noSuchInstance (SNMPv2)." + ::= { rdbmsSrvLimitedResourceEntry 2 } + +rdbmsSrvLimitedResourceLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum value the resource use may attain. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvLimitedResourceEntry 3 } + +rdbmsSrvLimitedResourceCurrent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current value for the resource." + ::= { rdbmsSrvLimitedResourceEntry 4 } + +rdbmsSrvLimitedResourceHighwater OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum value of the resource seen since applUpTime + was reset." + ::= { rdbmsSrvLimitedResourceEntry 5 } + +rdbmsSrvLimitedResourceFailures OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the system wanted to exceed the limit of + the resource since applUpTime was reset." + ::= { rdbmsSrvLimitedResourceEntry 6 } + +rdbmsSrvLimitedResourceDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A description of the resource and the meaning of the integer + units used for Limit, Current, and Highwater. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvLimitedResourceEntry 7 } + +rdbmsRelTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsRelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table relating databases and servers present on a host." + ::= { rdbmsObjects 9 } + +rdbmsRelEntry OBJECT-TYPE + SYNTAX RdbmsRelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry relating a single database server to a single + database to which it may provide access. The table is + indexed first by the index of rdbmsDbTable, and then + rdbmsSrvTable, so that all servers capable of providing + access to a given database may be found by SNMP traversal + operations (get-next and get-bulk). The makeup of this table + depends on the product's architecture, e.g. if it is one + server - many databases, then each server will appear n + times, where n is the number of databases it may access, and + each database will appear once. If the architecture is one + database - many servers, then each server will appear once + and each database will appear n times, where n is the number + of servers that may be accessing it." + INDEX { rdbmsDbIndex, applIndex } + ::= { rdbmsRelTable 1 } + +RdbmsRelEntry ::= + SEQUENCE { + rdbmsRelState + INTEGER, + + rdbmsRelActiveTime + DateAndTime + } + +rdbmsRelState OBJECT-TYPE + SYNTAX INTEGER { + other(1), + active(2), + available(3), + restricted(4), + unavailable(5) +} + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of this server's access to this database. + Active(2) means the server is actively using the database. + Available(3) means the server could use the database if + necessary. Restricted(4) means the database is in some + administratively determined state of less-than-complete + availability. Unavailable(5) means the database is not + available through this server. Other(1) means the + database/server is in some other condition, possibly + described in the vendor private MIB." + ::= { rdbmsRelEntry 1 } + +rdbmsRelActiveTime OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time the database was made active by the server. If an + instance of rdbmsRelState is not active(1), then attempts to + access the corresponding instance of this object may result + in either noSuchName (SNMPv1) or noSuchInstance (SNMPv2) + being returned by the agent." + ::= { rdbmsRelEntry 2 } + +rdbmsWellKnownLimitedResources OBJECT IDENTIFIER ::= { rdbmsObjects 10 } + +rdbmsLogSpace OBJECT IDENTIFIER ::= { rdbmsWellKnownLimitedResources 1 } + +rdbmsTraps OBJECT IDENTIFIER ::= { rdbmsMIB 2 } + +rdbmsStateChange TRAP-TYPE + ENTERPRISE rdbmsTraps + VARIABLES { rdbmsRelState } + DESCRIPTION + "An rdbmsStateChange trap signifies that one of the database + server/databases managed by this agent has changed its + rdbmsRelState in a way that makes it less accessible for use. + For these purposes, both active(2) and available(3) are + considered fully accessible. The state sent with the trap is + the new, less accessible state." + ::= 1 + +rdbmsOutOfSpace TRAP-TYPE + ENTERPRISE rdbmsTraps + VARIABLES { rdbmsSrvInfoDiskOutOfSpaces } + DESCRIPTION + "An rdbmsOutOfSpace trap signifies that one of the database + servers managed by this agent has been unable to allocate + space for one of the databases managed by this agent. Care + should be taken to avoid flooding the network with these + traps." + ::= 2 + +rdbmsConformance OBJECT IDENTIFIER ::= { rdbmsMIB 3 } + +rdbmsCompliances OBJECT IDENTIFIER ::= { rdbmsConformance 1 } + +rdbmsGroups OBJECT IDENTIFIER ::= { rdbmsConformance 2 } + +rdbmsCompliance OBJECT IDENTIFIER ::= { rdbmsCompliances 1 } + +rdbmsGroup OBJECT IDENTIFIER ::= { rdbmsGroups 1 } + +END diff --git a/pandora_console/attachment/mibs/RFC1155-SMI b/pandora_console/attachment/mibs/RFC1155-SMI new file mode 100644 index 0000000000..14c5a75262 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1155-SMI @@ -0,0 +1,27 @@ +RFC1155-SMI DEFINITIONS ::= BEGIN +-- These are all loaded by default - so this is just a shell for IMPORTS to work + + internet OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 } + + directory OBJECT IDENTIFIER ::= { internet 1 } + mgmt OBJECT IDENTIFIER ::= { internet 2 } + + experimental OBJECT IDENTIFIER ::= { internet 3 } + + private OBJECT IDENTIFIER ::= { internet 4 } + enterprises OBJECT IDENTIFIER ::= { private 1 } + + +-- NetworkAddress ::= + +-- IpAddress ::= + +-- Counter ::= + +-- Gauge ::= + +-- TimeTicks ::= + +-- Opaque ::= + +END diff --git a/pandora_console/attachment/mibs/RFC1158-MIB b/pandora_console/attachment/mibs/RFC1158-MIB new file mode 100644 index 0000000000..0576296abc --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1158-MIB @@ -0,0 +1,1521 @@ +-- Changes to RFC1158 (obsolete MIB-II): +-- Changed OBJECT-TYPE to be imported from RFC1212. +-- Changed ACCESS for all tables and rows to not-accessable. +-- Added INDEX clauses for all rows. +-- Changed name of ipRoutingTable to ipRouteTable. +-- Added DisplayString definition. +-- Removed definition of nullSpecific. +-- Added missing comma in ipRouteProto enumerations. +-- Fixed misspellings of ipAdEntReasmMaxSiz and ipNetoToMediaType. +-- dperkins@scruznet.com + + + RFC1158-MIB DEFINITIONS ::= BEGIN + + IMPORTS + mgmt, NetworkAddress, IpAddress, + Counter, Gauge, TimeTicks + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212; + + DisplayString ::= + OCTET STRING + + + mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } -- MIB-II + -- (same prefix as MIB-I) + + system OBJECT IDENTIFIER ::= { mib-2 1 } + interfaces OBJECT IDENTIFIER ::= { mib-2 2 } + at OBJECT IDENTIFIER ::= { mib-2 3 } + ip OBJECT IDENTIFIER ::= { mib-2 4 } + icmp OBJECT IDENTIFIER ::= { mib-2 5 } + tcp OBJECT IDENTIFIER ::= { mib-2 6 } + udp OBJECT IDENTIFIER ::= { mib-2 7 } + egp OBJECT IDENTIFIER ::= { mib-2 8 } + -- cmot OBJECT IDENTIFIER ::= { mib-2 9 } + transmission OBJECT IDENTIFIER ::= { mib-2 10 } + snmp OBJECT IDENTIFIER ::= { mib-2 11 } + + + -- object types + + -- the System group + + sysDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + ::= { system 1 } + + sysObjectID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + ::= { system 2 } + + sysUpTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + ::= { system 3 } + + sysContact OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + ::= { system 4 } + + sysName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + ::= { system 5 } + + sysLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + ::= { system 6 } + + sysServices OBJECT-TYPE + SYNTAX INTEGER (0..127) + ACCESS read-only + STATUS mandatory + ::= { system 7 } + + + -- the Interfaces group + + ifNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { interfaces 1 } + + -- the Interfaces table + + ifTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfEntry + ACCESS not-accessible + STATUS mandatory + ::= { interfaces 2 } + + ifEntry OBJECT-TYPE + SYNTAX IfEntry + ACCESS not-accessible + STATUS mandatory + INDEX { ifIndex } + ::= { ifTable 1 } + + IfEntry ::= SEQUENCE { + ifIndex + INTEGER, + ifDescr + DisplayString, + ifType + INTEGER, + ifMtu + INTEGER, + ifSpeed + Gauge, + ifPhysAddress + OCTET STRING, + ifAdminStatus + INTEGER, + ifOperStatus + INTEGER, + ifLastChange + TimeTicks, + ifInOctets + Counter, + ifInUcastPkts + Counter, + ifInNUcastPkts + Counter, + ifInDiscards + Counter, + ifInErrors + Counter, + ifInUnknownProtos + Counter, + ifOutOctets + Counter, + ifOutUcastPkts + Counter, + ifOutNUcastPkts + Counter, + ifOutDiscards + Counter, + ifOutErrors + Counter, + ifOutQLen + Gauge, + ifSpecific + OBJECT IDENTIFIER + } + + ifIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { ifEntry 1 } + + ifDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + ::= { ifEntry 2 } + + ifType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the + -- following + regular1822(2), + hdh1822(3), + ddn-x25(4), + rfc877-x25(5), + ethernet-csmacd(6), + iso88023-csmacd(7), + iso88024-tokenBus(8), + iso88025-tokenRing(9), + iso88026-man(10), + starLan(11), + proteon-10Mbit(12), + proteon-80Mbit(13), + hyperchannel(14), + fddi(15), + lapb(16), + sdlc(17), + t1-carrier(18), + cept(19), -- european + --equivalent of T-1 + basicISDN(20), + primaryISDN(21), + -- proprietary + -- serial + propPointToPointSerial(22), + terminalServer-asyncPort(23), + softwareLoopback(24), + eon(25), -- CLNP over IP + ethernet-3Mbit(26), + nsip(27), -- XNS over IP + slip(28) -- generic SLIP + } + ACCESS read-only + STATUS mandatory + ::= { ifEntry 3 } + + ifMtu OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { ifEntry 4 } + + ifSpeed OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + ::= { ifEntry 5 } + + ifPhysAddress OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + ::= { ifEntry 6 } + + ifAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + ACCESS read-write + STATUS mandatory + ::= { ifEntry 7 } + + ifOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + ACCESS read-only + STATUS mandatory + ::= { ifEntry 8 } + + ifLastChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + ::= { ifEntry 9 } + + ifInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 10 } + + ifInUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 11 } + + ifInNUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 12 } + + ifInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 13 } + + ifInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 14 } + + ifInUnknownProtos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 15 } + + ifOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 16 } + + ifOutUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 17 } + + ifOutNUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 18 } + + ifOutDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 19 } + + ifOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ifEntry 20 } + + ifOutQLen OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + ::= { ifEntry 21 } + + ifSpecific OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + ::= { ifEntry 22 } + +-- nullSpecific OBJECT IDENTIFIER ::= { 0 0 } + + -- the Address Translation group (deprecated) + + atTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtEntry + ACCESS not-accessible + STATUS deprecated + ::= { at 1 } + + atEntry OBJECT-TYPE + SYNTAX AtEntry + ACCESS not-accessible + STATUS deprecated + INDEX { atIfIndex, + atNetAddress } + ::= { atTable 1 } + + AtEntry ::= SEQUENCE { + atIfIndex + INTEGER, + atPhysAddress + OCTET STRING, + atNetAddress + NetworkAddress + } + + atIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS deprecated + ::= { atEntry 1 } + + atPhysAddress OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS deprecated + ::= { atEntry 2 } + + atNetAddress OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-write + STATUS deprecated + ::= { atEntry 3 } + + + -- the IP group + + ipForwarding OBJECT-TYPE + SYNTAX INTEGER { + gateway(1), -- entity forwards + -- datagrams + host(2) -- entity does NOT + -- forward datagrams + } + ACCESS read-write + STATUS mandatory + ::= { ip 1 } + + ipDefaultTTL OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ip 2 } + + ipInReceives OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 3 } + + ipInHdrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 4 } + + ipInAddrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 5 } + + ipForwDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 6 } + + ipInUnknownProtos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 7 } + + ipInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 8 } + + ipInDelivers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 9 } + + ipOutRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 10 } + + ipOutDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 11 } + + ipOutNoRoutes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 12 } + + ipReasmTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { ip 13 } + + ipReasmReqds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 14 } + + ipReasmOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 15 } + + ipReasmFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 16 } + + ipFragOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 17 } + + ipFragFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 18 } + + ipFragCreates OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { ip 19 } + + -- the IP Interface table + + ipAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpAddrEntry + ACCESS not-accessible + STATUS mandatory + ::= { ip 20 } + + ipAddrEntry OBJECT-TYPE + SYNTAX IpAddrEntry + ACCESS not-accessible + STATUS mandatory + INDEX { ipAdEntAddr } + ::= { ipAddrTable 1 } + + IpAddrEntry ::= SEQUENCE { + ipAdEntAddr + IpAddress, + ipAdEntIfIndex + INTEGER, + ipAdEntNetMask + IpAddress, + ipAdEntBcastAddr + INTEGER, + ipAdEntReasmMaxSize + INTEGER (0..65535) + } + + ipAdEntAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + ::= { ipAddrEntry 1 } + + ipAdEntIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { ipAddrEntry 2 } + + ipAdEntNetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + ::= { ipAddrEntry 3 } + + ipAdEntBcastAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { ipAddrEntry 4 } + + ipAdEntReasmMaxSize OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + ::= { ipAddrEntry 5 } + + -- the IP Routing table + + ipRouteTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpRouteEntry + ACCESS not-accessible + STATUS mandatory + ::= { ip 21 } + + ipRouteEntry OBJECT-TYPE + SYNTAX IpRouteEntry + ACCESS not-accessible + STATUS mandatory + INDEX { ipRouteDest } + ::= { ipRouteTable 1 } + + IpRouteEntry ::= SEQUENCE { + ipRouteDest + IpAddress, + ipRouteIfIndex + INTEGER, + ipRouteMetric1 + INTEGER, + ipRouteMetric2 + INTEGER, + ipRouteMetric3 + INTEGER, + ipRouteMetric4 + INTEGER, + ipRouteNextHop + IpAddress, + ipRouteType + INTEGER, + ipRouteProto + INTEGER, + ipRouteAge + INTEGER, + ipRouteMask + IpAddress + } + + ipRouteDest OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 1 } + + ipRouteIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 2 } + + ipRouteMetric1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 3 } + + ipRouteMetric2 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 4 } + + ipRouteMetric3 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 5 } + + ipRouteMetric4 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 6 } + + ipRouteNextHop OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 7 } + + ipRouteType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + invalid(2), -- an invalidated route + + -- route to directly + direct(3), -- connected + -- (sub-)network + + -- route to a non-local + remote(4) -- host/network/ + -- sub-network + } + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 8 } + + ipRouteProto OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + -- non-protocol + -- information + + -- e.g., manually + local(2), -- configured entries + + -- set via a network + netmgmt(3), -- management protocol + + -- obtained via ICMP, + icmp(4), -- e.g., Redirect + + -- the following are + -- gateway routing + -- protocols + egp(5), + ggp(6), + hello(7), + rip(8), + is-is(9), + es-is(10), + ciscoIgrp(11), + bbnSpfIgp(12), + ospf(13), + bgp(14) + } + ACCESS read-only + STATUS mandatory + ::= { ipRouteEntry 9 } + + ipRouteAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 10 } + + ipRouteMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + ::= { ipRouteEntry 11 } + + -- the IP Address Translation tables + + ipNetToMediaTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + ::= { ip 22 } + + ipNetToMediaEntry OBJECT-TYPE + SYNTAX IpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + INDEX { ipNetToMediaIfIndex, + ipNetToMediaNetAddress } + ::= { ipNetToMediaTable 1 } + + IpNetToMediaEntry ::= SEQUENCE { + ipNetToMediaIfIndex + INTEGER, + ipNetToMediaPhysAddress + OCTET STRING, + ipNetToMediaNetAddress + IpAddress, + ipNetToMediaType + INTEGER + } + + ipNetToMediaIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + ::= { ipNetToMediaEntry 1 } + + ipNetToMediaPhysAddress OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + ::= { ipNetToMediaEntry 2 } + + ipNetToMediaNetAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + ::= { ipNetToMediaEntry 3 } + + ipNetToMediaType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + invalid(2), -- an invalidated mapping + dynamic(3), -- connected (sub-)network + + static(4) + } + ACCESS read-write + STATUS mandatory + ::= { ipNetToMediaEntry 4 } + + -- the ICMP group + + icmpInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 1 } + + icmpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 2 } + + icmpInDestUnreachs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 3 } + + icmpInTimeExcds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 4 } + + icmpInParmProbs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 5 } + + icmpInSrcQuenchs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 6 } + + icmpInRedirects OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 7 } + + icmpInEchos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 8 } + + icmpInEchoReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 9 } + + icmpInTimestamps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 10 } + + icmpInTimestampReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 11 } + + icmpInAddrMasks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 12 } + + icmpInAddrMaskReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 13 } + + icmpOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 14 } + + icmpOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 15 } + + icmpOutDestUnreachs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 16 } + + icmpOutTimeExcds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 17 } + + icmpOutParmProbs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 18 } + + icmpOutSrcQuenchs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 19 } + + icmpOutRedirects OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 20 } + + icmpOutEchos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 21 } + + icmpOutEchoReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 22 } + + icmpOutTimestamps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 23 } + + icmpOutTimestampReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 24 } + + icmpOutAddrMasks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 25 } + + icmpOutAddrMaskReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { icmp 26 } + + + -- the TCP group + + tcpRtoAlgorithm OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + constant(2), -- a constant rto + rsre(3), -- MIL-STD-1778, + -- Appendix B + vanj(4) -- Van Jacobson's + -- algorithm + } + ACCESS read-only + STATUS mandatory + ::= { tcp 1 } + + tcpRtoMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { tcp 2 } + + tcpRtoMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { tcp 3 } + + tcpMaxConn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { tcp 4 } + + tcpActiveOpens OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 5 } + + tcpPassiveOpens OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 6 } + + tcpAttemptFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 7 } + + tcpEstabResets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 8 } + + tcpCurrEstab OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + ::= { tcp 9 } + + tcpInSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 10 } + + tcpOutSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 11 } + + tcpRetransSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 12 } + + -- the TCP connections table + + tcpConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpConnEntry + ACCESS not-accessible + STATUS mandatory + ::= { tcp 13 } + + tcpConnEntry OBJECT-TYPE + SYNTAX TcpConnEntry + ACCESS not-accessible + STATUS mandatory + INDEX { tcpConnLocalAddress, + tcpConnLocalPort, + tcpConnRemAddress, + tcpConnRemPort } + ::= { tcpConnTable 1 } + + TcpConnEntry ::= SEQUENCE { + tcpConnState + INTEGER, + tcpConnLocalAddress + IpAddress, + tcpConnLocalPort + INTEGER (0..65535), + tcpConnRemAddress + IpAddress, + tcpConnRemPort + INTEGER (0..65535) + } + + tcpConnState OBJECT-TYPE + SYNTAX INTEGER { + closed(1), + listen(2), + synSent(3), + synReceived(4), + established(5), + finWait1(6), + finWait2(7), + closeWait(8), + lastAck(9), + closing(10), + timeWait(11) + } + ACCESS read-only + STATUS mandatory + ::= { tcpConnEntry 1 } + + tcpConnLocalAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + ::= { tcpConnEntry 2 } + + tcpConnLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + ::= { tcpConnEntry 3 } + + tcpConnRemAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + ::= { tcpConnEntry 4 } + + tcpConnRemPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + ::= { tcpConnEntry 5 } + + -- additional TCP variables + + tcpInErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 14 } + + tcpOutRsts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { tcp 15 } + + + -- the UDP group + + udpInDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { udp 1 } + + udpNoPorts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { udp 2 } + + udpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { udp 3 } + + udpOutDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { udp 4 } + + -- the UDP listener table + + udpTable OBJECT-TYPE + SYNTAX SEQUENCE OF UdpEntry + ACCESS not-accessible + STATUS mandatory + ::= { udp 5 } + + udpEntry OBJECT-TYPE + SYNTAX UdpEntry + ACCESS not-accessible + STATUS mandatory + INDEX { udpLocalAddress, udpLocalPort } + ::= { udpTable 1 } + + UdpEntry ::= SEQUENCE { + udpLocalAddress + IpAddress, + udpLocalPort + INTEGER (0..65535) + } + + udpLocalAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + ::= { udpEntry 1 } + + udpLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + ::= { udpEntry 2 } + + -- the EGP group + + egpInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egp 1 } + + egpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egp 2 } + + egpOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egp 3 } + + egpOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egp 4 } + + -- the EGP Neighbor table + + egpNeighTable OBJECT-TYPE + SYNTAX SEQUENCE OF EgpNeighEntry + ACCESS not-accessible + STATUS mandatory + ::= { egp 5 } + + egpNeighEntry OBJECT-TYPE + SYNTAX EgpNeighEntry + ACCESS not-accessible + STATUS mandatory + INDEX { egpNeighAddr } + ::= { egpNeighTable 1 } + + EgpNeighEntry ::= SEQUENCE { + egpNeighState + INTEGER, + egpNeighAddr + IpAddress, + egpNeighAs + INTEGER, + egpNeighInMsgs + Counter, + egpNeighInErrs + Counter, + egpNeighOutMsgs + Counter, + egpNeighOutErrs + Counter, + egpNeighInErrMsgs + Counter, + egpNeighOutErrMsgs + Counter, + egpNeighStateUps + Counter, + egpNeighStateDowns + Counter, + egpNeighIntervalHello + INTEGER, + egpNeighIntervalPoll + INTEGER, + egpNeighMode + INTEGER, + egpNeighEventTrigger + INTEGER + } + + egpNeighState OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + acquisition(2), + down(3), + up(4), + cease(5) + } + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 1 } + + egpNeighAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 2 } + + egpNeighAs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 3 } + + egpNeighInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 4 } + + egpNeighInErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 5 } + + egpNeighOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 6 } + + egpNeighOutErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 7 } + + egpNeighInErrMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 8 } + + egpNeighOutErrMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 9 } + + egpNeighStateUps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 10 } + + egpNeighStateDowns OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 11 } + + egpNeighIntervalHello OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 12 } + + egpNeighIntervalPoll OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 13 } + + egpNeighMode OBJECT-TYPE + SYNTAX INTEGER { + active(1), + passive(2) + } + ACCESS read-only + STATUS mandatory + ::= { egpNeighEntry 14 } + + egpNeighEventTrigger OBJECT-TYPE + SYNTAX INTEGER { + start(1), + stop(2) + } + ACCESS read-write + STATUS mandatory + ::= { egpNeighEntry 15 } + + -- additional EGP variables + + egpAs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + ::= { egp 6 } + + + -- the Transmission group (empty at present) + + -- the SNMP group + + snmpInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 1 } + + snmpOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 2 } + + snmpInBadVersions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 3 } + + snmpInBadCommunityNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 4 } + + snmpInBadCommunityUses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 5 } + + snmpInASNParseErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 6 } + + snmpInBadTypes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 7 } + + snmpInTooBigs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 8 } + + snmpInNoSuchNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 9 } + + snmpInBadValues OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 10 } + + snmpInReadOnlys OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 11 } + + snmpInGenErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 12 } + + snmpInTotalReqVars OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 13 } + + snmpInTotalSetVars OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 14 } + + snmpInGetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 15 } + + snmpInGetNexts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 16 } + + snmpInSetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 17 } + + snmpInGetResponses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 18 } + + snmpInTraps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 19 } + + snmpOutTooBigs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 20 } + + snmpOutNoSuchNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 21 } + + snmpOutBadValues OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 22 } + + snmpOutReadOnlys OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 23 } + + snmpOutGenErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 24 } + + snmpOutGetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 25 } + + snmpOutGetNexts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 26 } + + snmpOutSetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 27 } + + snmpOutGetResponses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 28 } + + snmpOutTraps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + ::= { snmp 29 } + + snmpEnableAuthTraps OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(2) + } + ACCESS read-write + STATUS mandatory + ::= { snmp 30 } + + END diff --git a/pandora_console/attachment/mibs/RFC1213-MIB b/pandora_console/attachment/mibs/RFC1213-MIB new file mode 100644 index 0000000000..f5fd1bb57e --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1213-MIB @@ -0,0 +1,2640 @@ + RFC1213-MIB DEFINITIONS ::= BEGIN + + IMPORTS + mgmt, NetworkAddress, IpAddress, Counter, Gauge, + TimeTicks + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212; + + mgmt OBJECT IDENTIFIER ::= { iso org(3) dod(6) internet(1) mgmt(2) } + directory OBJECT IDENTIFIER ::= { internet 1 } + experimental OBJECT IDENTIFIER ::= { internet 3 } + private OBJECT IDENTIFIER ::= { internet 4 } + enterprises OBJECT IDENTIFIER ::= { private 1 } + + -- This MIB module uses the extended OBJECT-TYPE macro as + -- defined in [14]; + + + -- MIB-II (same prefix as MIB-I) + + mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } + + -- textual conventions + + DisplayString ::= + OCTET STRING + -- This data type is used to model textual information taken + -- from the NVT ASCII character set. By convention, objects + -- with this syntax are declared as having + -- + (SIZE (0..255)) + + PhysAddress ::= + OCTET STRING + -- This data type is used to model media addresses. For many + -- types of media, this will be in a binary representation. + -- For example, an ethernet address would be represented as + -- a string of 6 octets. + + + -- groups in MIB-II + + system OBJECT IDENTIFIER ::= { mib-2 1 } + + interfaces OBJECT IDENTIFIER ::= { mib-2 2 } + + at OBJECT IDENTIFIER ::= { mib-2 3 } + + ip OBJECT IDENTIFIER ::= { mib-2 4 } + + icmp OBJECT IDENTIFIER ::= { mib-2 5 } + + tcp OBJECT IDENTIFIER ::= { mib-2 6 } + + udp OBJECT IDENTIFIER ::= { mib-2 7 } + + egp OBJECT IDENTIFIER ::= { mib-2 8 } + + -- historical (some say hysterical) + -- cmot OBJECT IDENTIFIER ::= { mib-2 9 } + + transmission OBJECT IDENTIFIER ::= { mib-2 10 } + + snmp OBJECT IDENTIFIER ::= { mib-2 11 } + + + -- the System group + + -- Implementation of the System group is mandatory for all + -- systems. If an agent is not configured to have a value + -- for any of these variables, a string of length 0 is + -- returned. + + sysDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DEFVAL "Test Agent Simulator" + DESCRIPTION + "A textual description of the entity. This value + should include the full name and version + identification of the system's hardware type, + software operating-system, and networking + software. It is mandatory that this only contain + printable ASCII characters." + ::= { system 1 } + + sysObjectID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The vendor's authoritative identification of the + network management subsystem contained in the + entity. This value is allocated within the SMI + enterprises subtree (1.3.6.1.4.1) and provides an + easy and unambiguous means for determining `what + kind of box' is being managed. For example, if + vendor `Flintstones, Inc.' was assigned the + subtree 1.3.6.1.4.1.4242, it could assign the + identifier 1.3.6.1.4.1.4242.1.1 to its `Fred + Router'." + ::= { system 2 } + + sysUpTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time (in hundredths of a second) since the + network management portion of the system was last + re-initialized." + ::= { system 3 } + + sysContact OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The textual identification of the contact person + for this managed node, together with information + on how to contact this person." + ::= { system 4 } + + sysName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An administratively-assigned name for this + managed node. By convention, this is the node's + fully-qualified domain name." + ::= { system 5 } + + sysLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The physical location of this node (e.g., + `telephone closet, 3rd floor')." + ::= { system 6 } + + sysServices OBJECT-TYPE + SYNTAX INTEGER (0..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A value which indicates the set of services that + this entity primarily offers. + + The value is a sum. This sum initially takes the + value zero, Then, for each layer, L, in the range + 1 through 7, that this node performs transactions + for, 2 raised to (L - 1) is added to the sum. For + example, a node which performs primarily routing + functions would have a value of 4 (2^(3-1)). In + contrast, a node which is a host offering + application services would have a value of 72 + (2^(4-1) + 2^(7-1)). Note that in the context of + the Internet suite of protocols, values should be + calculated accordingly: + + layer functionality + 1 physical (e.g., repeaters) + 2 datalink/subnetwork (e.g., bridges) + 3 internet (e.g., IP gateways) + 4 end-to-end (e.g., IP hosts) + 7 applications (e.g., mail relays) + + For systems including OSI protocols, layers 5 and + 6 may also be counted." + ::= { system 7 } + + -- the Interfaces group + + -- Implementation of the Interfaces group is mandatory for + -- all systems. + + ifNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DEFVAL 1 + DESCRIPTION + "The number of network interfaces (regardless of + their current state) present on this system." + ::= { interfaces 1 } + + + -- the Interfaces table + + -- The Interfaces table contains information on the entity's + -- interfaces. Each interface is thought of as being + -- attached to a `subnetwork'. Note that this term should + -- not be confused with `subnet' which refers to an + -- addressing partitioning scheme used in the Internet suite + -- of protocols. + + ifTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of interface entries. The number of + entries is given by the value of ifNumber." + ::= { interfaces 2 } + + ifEntry OBJECT-TYPE + SYNTAX IfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An interface entry containing objects at the + subnetwork layer and below for a particular + interface." + INDEX { ifIndex } + ::= { ifTable 1 } + + IfEntry ::= + SEQUENCE { + ifIndex + INTEGER, + ifDescr + DisplayString, + ifType + INTEGER, + ifMtu + INTEGER, + ifSpeed + Gauge, + ifPhysAddress + PhysAddress, + ifAdminStatus + INTEGER, + ifOperStatus + INTEGER, + ifLastChange + TimeTicks, + ifInOctets + Counter, + ifInUcastPkts + Counter, + ifInNUcastPkts + Counter, + ifInDiscards + Counter, + ifInErrors + Counter, + ifInUnknownProtos + Counter, + ifOutOctets + Counter, + ifOutUcastPkts + Counter, + ifOutNUcastPkts + Counter, + ifOutDiscards + Counter, + ifOutErrors + Counter, + ifOutQLen + Gauge, + ifSpecific + OBJECT IDENTIFIER + } + + ifIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each interface. Its value + ranges between 1 and the value of ifNumber. The + value for each interface must remain constant at + least from one re-initialization of the entity's + network management system to the next re- + initialization." + ::= { ifEntry 1 } + + ifDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DEFVAL "Test Interface" + DESCRIPTION + "A textual string containing information about the + interface. This string should include the name of + the manufacturer, the product name and the version + of the hardware interface." + ::= { ifEntry 2 } + + ifType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + regular1822(2), + hdh1822(3), + ddn-x25(4), + rfc877-x25(5), + ethernet-csmacd(6), + iso88023-csmacd(7), + iso88024-tokenBus(8), + iso88025-tokenRing(9), + iso88026-man(10), + starLan(11), + proteon-10Mbit(12), + proteon-80Mbit(13), + hyperchannel(14), + fddi(15), + lapb(16), + sdlc(17), + ds1(18), -- T-1 + e1(19), -- european equiv. of T-1 + basicISDN(20), + primaryISDN(21), -- proprietary serial + propPointToPointSerial(22), + ppp(23), + softwareLoopback(24), + eon(25), -- CLNP over IP [11] + ethernet-3Mbit(26), + nsip(27), -- XNS over IP + slip(28), -- generic SLIP + ultra(29), -- ULTRA technologies + ds3(30), -- T-3 + sip(31), -- SMDS + frame-relay(32) + } + ACCESS read-only + STATUS mandatory + DEFVAL 32 + DESCRIPTION + "The type of interface, distinguished according to + the physical/link protocol(s) immediately `below' + the network layer in the protocol stack." + ::= { ifEntry 3 } + + ifMtu OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the largest datagram which can be + sent/received on the interface, specified in + octets. For interfaces that are used for + transmitting network datagrams, this is the size + of the largest network datagram that can be sent + on the interface." + ::= { ifEntry 4 } + + ifSpeed OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An estimate of the interface's current bandwidth + in bits per second. For interfaces which do not + vary in bandwidth or for those where no accurate + estimation can be made, this object should contain + the nominal bandwidth." + ::= { ifEntry 5 } + + ifPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interface's address at the protocol layer + immediately `below' the network layer in the + protocol stack. For interfaces which do not have + such an address (e.g., a serial line), this object + should contain an octet string of zero length." + ::= { ifEntry 6 } + + ifAdminStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The desired state of the interface. The + testing(3) state indicates that no operational + packets can be passed." + ::= { ifEntry 7 } + + ifOperStatus OBJECT-TYPE + SYNTAX INTEGER { + up(1), -- ready to pass packets + down(2), + testing(3) -- in some test mode + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operational state of the interface. + The testing(3) state indicates that no operational + packets can be passed." + ::= { ifEntry 8 } + + ifLastChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime at the time the interface + entered its current operational state. If the + current state was entered prior to the last re- + initialization of the local network management + subsystem, then this object contains a zero + value." + ::= { ifEntry 9 } + + ifInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of octets received on the + interface, including framing characters." + ::= { ifEntry 10 } + + ifInUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of subnetwork-unicast packets + delivered to a higher-layer protocol." + ::= { ifEntry 11 } + + ifInNUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of non-unicast (i.e., subnetwork- + broadcast or subnetwork-multicast) packets + delivered to a higher-layer protocol." + ::= { ifEntry 12 } + + ifInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of inbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being deliverable to a + higher-layer protocol. One possible reason for + discarding such a packet could be to free up + buffer space." + ::= { ifEntry 13 } + + ifInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of inbound packets that contained + errors preventing them from being deliverable to a + higher-layer protocol." + ::= { ifEntry 14 } + + ifInUnknownProtos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets received via the interface + which were discarded because of an unknown or + unsupported protocol." + ::= { ifEntry 15 } + + ifOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of octets transmitted out of the + interface, including framing characters." + ::= { ifEntry 16 } + + ifOutUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a + subnetwork-unicast address, including those that + were discarded or not sent." + ::= { ifEntry 17 } + + ifOutNUcastPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of packets that higher-level + protocols requested be transmitted to a non- + unicast (i.e., a subnetwork-broadcast or + subnetwork-multicast) address, including those + that were discarded or not sent." + ::= { ifEntry 18 } + + ifOutDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of outbound packets which were chosen + to be discarded even though no errors had been + detected to prevent their being transmitted. One + possible reason for discarding such a packet could + be to free up buffer space." + ::= { ifEntry 19 } + + ifOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of outbound packets that could not be + transmitted because of errors." + ::= { ifEntry 20 } + + ifOutQLen OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The length of the output packet queue (in + packets)." + ::= { ifEntry 21 } + + ifSpecific OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A reference to MIB definitions specific to the + particular media being used to realize the + interface. For example, if the interface is + realized by an ethernet, then the value of this + object refers to a document defining objects + specific to ethernet. If this information is not + present, its value should be set to the OBJECT + IDENTIFIER { 0 0 }, which is a syntatically valid + object identifier, and any conformant + implementation of ASN.1 and BER must be able to + generate and recognize this value." + ::= { ifEntry 22 } + + + -- the Address Translation group + + -- Implementation of the Address Translation group is + -- mandatory for all systems. Note however that this group + -- is deprecated by MIB-II. That is, it is being included + -- solely for compatibility with MIB-I nodes, and will most + -- likely be excluded from MIB-III nodes. From MIB-II and + -- onwards, each network protocol group contains its own + -- address translation tables. + + -- The Address Translation group contains one table which is + -- the union across all interfaces of the translation tables + -- for converting a NetworkAddress (e.g., an IP address) into + -- a subnetwork-specific address. For lack of a better term, + -- this document refers to such a subnetwork-specific address + -- as a `physical' address. + + -- Examples of such translation tables are: for broadcast + -- media where ARP is in use, the translation table is + -- equivalent to the ARP cache; or, on an X.25 network where + -- non-algorithmic translation to X.121 addresses is + -- required, the translation table contains the + -- NetworkAddress to X.121 address equivalences. + + atTable OBJECT-TYPE + SYNTAX SEQUENCE OF AtEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "The Address Translation tables contain the + NetworkAddress to `physical' address equivalences. + Some interfaces do not use translation tables for + determining address equivalences (e.g., DDN-X.25 + has an algorithmic method); if all interfaces are + of this type, then the Address Translation table + is empty, i.e., has zero entries." + ::= { at 1 } + + atEntry OBJECT-TYPE + SYNTAX AtEntry + ACCESS not-accessible + STATUS deprecated + DESCRIPTION + "Each entry contains one NetworkAddress to + `physical' address equivalence." + INDEX { atIfIndex, + atNetAddress } + ::= { atTable 1 } + + AtEntry ::= + SEQUENCE { + atIfIndex + INTEGER, + atPhysAddress + PhysAddress, + atNetAddress + NetworkAddress + } + + atIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS deprecated + DESCRIPTION + "The interface on which this entry's equivalence + is effective. The interface identified by a + particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { atEntry 1 } + + atPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-write + STATUS deprecated + DESCRIPTION + "The media-dependent `physical' address. + + Setting this object to a null string (one of zero + length) has the effect of invaliding the + corresponding entry in the atTable object. That + is, it effectively dissasociates the interface + identified with said entry from the mapping + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant atPhysAddress object." + ::= { atEntry 2 } + + atNetAddress OBJECT-TYPE + SYNTAX NetworkAddress + ACCESS read-write + STATUS deprecated + DESCRIPTION + "The NetworkAddress (e.g., the IP address) + corresponding to the media-dependent `physical' + address." + ::= { atEntry 3 } + + + -- the IP group + + -- Implementation of the IP group is mandatory for all + -- systems. + + ipForwarding OBJECT-TYPE + SYNTAX INTEGER { + forwarding(1), -- acting as a gateway + not-forwarding(2) -- NOT acting as a gateway + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The indication of whether this entity is acting + as an IP gateway in respect to the forwarding of + datagrams received by, but not addressed to, this + entity. IP gateways forward datagrams. IP hosts + do not (except those source-routed via the host). + + Note that for some managed nodes, this object may + take on only a subset of the values possible. + Accordingly, it is appropriate for an agent to + return a `badValue' response if a management + station attempts to change this object to an + inappropriate value." + ::= { ip 1 } + + ipDefaultTTL OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default value inserted into the Time-To-Live + field of the IP header of datagrams originated at + this entity, whenever a TTL value is not supplied + by the transport layer protocol." + ::= { ip 2 } + + ipInReceives OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of input datagrams received from + interfaces, including those received in error." + ::= { ip 3 } + + ipInHdrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input datagrams discarded due to + errors in their IP headers, including bad + checksums, version number mismatch, other format + errors, time-to-live exceeded, errors discovered + in processing their IP options, etc." + ::= { ip 4 } + + ipInAddrErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input datagrams discarded because + the IP address in their IP header's destination + field was not a valid address to be received at + this entity. This count includes invalid + addresses (e.g., 0.0.0.0) and addresses of + unsupported Classes (e.g., Class E). For entities + which are not IP Gateways and therefore do not + forward datagrams, this counter includes datagrams + discarded because the destination address was not + a local address." + ::= { ip 5 } + + ipForwDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input datagrams for which this + entity was not their final IP destination, as a + result of which an attempt was made to find a + route to forward them to that final destination. + In entities which do not act as IP Gateways, this + counter will include only those packets which were + Source-Routed via this entity, and the Source- + Route option processing was successful." + ::= { ip 6 } + + ipInUnknownProtos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally-addressed datagrams + received successfully but discarded because of an + unknown or unsupported protocol." + ::= { ip 7 } + + ipInDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input IP datagrams for which no + problems were encountered to prevent their + continued processing, but which were discarded + (e.g., for lack of buffer space). Note that this + counter does not include any datagrams discarded + while awaiting re-assembly." + ::= { ip 8 } + + ipInDelivers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of input datagrams successfully + delivered to IP user-protocols (including ICMP)." + ::= { ip 9 } + + ipOutRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of IP datagrams which local IP + user-protocols (including ICMP) supplied to IP in + requests for transmission. Note that this counter + does not include any datagrams counted in + ipForwDatagrams." + ::= { ip 10 } + + ipOutDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of output IP datagrams for which no + problem was encountered to prevent their + transmission to their destination, but which were + discarded (e.g., for lack of buffer space). Note + that this counter would include datagrams counted + in ipForwDatagrams if any such packets met this + (discretionary) discard criterion." + ::= { ip 11 } + + ipOutNoRoutes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams discarded because no + route could be found to transmit them to their + destination. Note that this counter includes any + packets counted in ipForwDatagrams which meet this + `no-route' criterion. Note that this includes any + datagarms which a host cannot route because all of + its default gateways are down." + ::= { ip 12 } + + ipReasmTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum number of seconds which received + fragments are held while they are awaiting + reassembly at this entity." + ::= { ip 13 } + + ipReasmReqds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP fragments received which needed + to be reassembled at this entity." + ::= { ip 14 } + + ipReasmOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams successfully re- + assembled." + ::= { ip 15 } + + ipReasmFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of failures detected by the IP re- + assembly algorithm (for whatever reason: timed + out, errors, etc). Note that this is not + necessarily a count of discarded IP fragments + since some algorithms (notably the algorithm in + RFC 815) can lose track of the number of fragments + by combining them as they are received." + ::= { ip 16 } + + ipFragOKs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams that have been + successfully fragmented at this entity." + ::= { ip 17 } + + ipFragFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagrams that have been + discarded because they needed to be fragmented at + this entity but could not be, e.g., because their + Don't Fragment flag was set." + ::= { ip 18 } + + ipFragCreates OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of IP datagram fragments that have + been generated as a result of fragmentation at + this entity." + ::= { ip 19 } + + -- the IP address table + + -- The IP address table contains this entity's IP addressing + -- information. + + ipAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of addressing information relevant to + this entity's IP addresses." + ::= { ip 20 } + + ipAddrEntry OBJECT-TYPE + SYNTAX IpAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The addressing information for one of this + entity's IP addresses." + INDEX { ipAdEntAddr } + ::= { ipAddrTable 1 } + + IpAddrEntry ::= + SEQUENCE { + ipAdEntAddr + IpAddress, + ipAdEntIfIndex + INTEGER, + ipAdEntNetMask + IpAddress, + ipAdEntBcastAddr + INTEGER, + ipAdEntReasmMaxSize + INTEGER (0..65535) + } + + ipAdEntAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address to which this entry's addressing + information pertains." + ::= { ipAddrEntry 1 } + + ipAdEntIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + interface to which this entry is applicable. The + interface identified by a particular value of this + index is the same interface as identified by the + same value of ifIndex." + ::= { ipAddrEntry 2 } + + ipAdEntNetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The subnet mask associated with the IP address of + this entry. The value of the mask is an IP + address with all the network bits set to 1 and all + the hosts bits set to 0." + ::= { ipAddrEntry 3 } + + ipAdEntBcastAddr OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of the least-significant bit in the IP + broadcast address used for sending datagrams on + the (logical) interface associated with the IP + address of this entry. For example, when the + Internet standard all-ones broadcast address is + used, the value will be 1. This value applies to + both the subnet and network broadcasts addresses + used by the entity on this (logical) interface." + ::= { ipAddrEntry 4 } + + ipAdEntReasmMaxSize OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the largest IP datagram which this + entity can re-assemble from incoming IP fragmented + datagrams received on this interface." + ::= { ipAddrEntry 5 } + + -- the IP routing table + + -- The IP routing table contains an entry for each route + -- presently known to this entity. + + ipRouteTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This entity's IP Routing table." + ::= { ip 21 } + + ipRouteEntry OBJECT-TYPE + SYNTAX IpRouteEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A route to a particular destination." + INDEX { ipRouteDest } + ::= { ipRouteTable 1 } + + IpRouteEntry ::= + SEQUENCE { + ipRouteDest + IpAddress, + ipRouteIfIndex + INTEGER, + ipRouteMetric1 + INTEGER, + ipRouteMetric2 + INTEGER, + ipRouteMetric3 + INTEGER, + ipRouteMetric4 + INTEGER, + ipRouteNextHop + IpAddress, + ipRouteType + INTEGER, + ipRouteProto + INTEGER, + ipRouteAge + INTEGER, + ipRouteMask + IpAddress, + ipRouteMetric5 + INTEGER, + ipRouteInfo + OBJECT IDENTIFIER + } + + ipRouteDest OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The destination IP address of this route. An + entry with a value of 0.0.0.0 is considered a + default route. Multiple routes to a single + destination can appear in the table, but access to + such multiple entries is dependent on the table- + access mechanisms defined by the network + management protocol in use." + ::= { ipRouteEntry 1 } + + ipRouteIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + local interface through which the next hop of this + route should be reached. The interface identified + by a particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { ipRouteEntry 2 } + + ipRouteMetric1 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The primary routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 3 } + + ipRouteMetric2 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 4 } + + ipRouteMetric3 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 5 } + + ipRouteMetric4 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 6 } + + ipRouteNextHop OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IP address of the next hop of this route. + (In the case of a route bound to an interface + which is realized via a broadcast media, the value + of this field is the agent's IP address on that + interface.)" + ::= { ipRouteEntry 7 } + + ipRouteType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + invalid(2), -- an invalidated route + + -- route to directly + direct(3), -- connected (sub-)network + + -- route to a non-local + indirect(4) -- host/network/sub-network + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of route. Note that the values + direct(3) and indirect(4) refer to the notion of + direct and indirect routing in the IP + architecture. + + Setting this object to the value invalid(2) has + the effect of invalidating the corresponding entry + in the ipRouteTable object. That is, it + effectively dissasociates the destination + identified with said entry from the route + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant ipRouteType object." + ::= { ipRouteEntry 8 } + + ipRouteProto OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + -- non-protocol information, + -- e.g., manually configured + local(2), -- entries + + -- set via a network + netmgmt(3), -- management protocol + + -- obtained via ICMP, + icmp(4), -- e.g., Redirect + + -- the remaining values are + -- all gateway routing + -- protocols + egp(5), + ggp(6), + hello(7), + rip(8), + is-is(9), + es-is(10), + ciscoIgrp(11), + bbnSpfIgp(12), + ospf(13), + bgp(14) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The routing mechanism via which this route was + learned. Inclusion of values for gateway routing + protocols is not intended to imply that hosts + should support those protocols." + ::= { ipRouteEntry 9 } + + ipRouteAge OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds since this route was last + updated or otherwise determined to be correct. + Note that no semantics of `too old' can be implied + except through knowledge of the routing protocol + by which the route was learned." + ::= { ipRouteEntry 10 } + + ipRouteMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicate the mask to be logical-ANDed with the + destination address before being compared to the + value in the ipRouteDest field. For those systems + that do not support arbitrary subnet masks, an + agent constructs the value of the ipRouteMask by + determining whether the value of the correspondent + ipRouteDest field belong to a class-A, B, or C + network, and then using one of: + + mask network + 255.0.0.0 class-A + 255.255.0.0 class-B + 255.255.255.0 class-C + + If the value of the ipRouteDest is 0.0.0.0 (a + default route), then the mask value is also + 0.0.0.0. It should be noted that all IP routing + subsystems implicitly use this mechanism." + ::= { ipRouteEntry 11 } + + ipRouteMetric5 OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An alternate routing metric for this route. The + semantics of this metric are determined by the + routing-protocol specified in the route's + ipRouteProto value. If this metric is not used, + its value should be set to -1." + ::= { ipRouteEntry 12 } + + ipRouteInfo OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A reference to MIB definitions specific to the + particular routing protocol which is responsible + for this route, as determined by the value + specified in the route's ipRouteProto value. If + this information is not present, its value should + be set to the OBJECT IDENTIFIER { 0 0 }, which is + a syntatically valid object identifier, and any + conformant implementation of ASN.1 and BER must be + able to generate and recognize this value." + ::= { ipRouteEntry 13 } + + + -- the IP Address Translation table + + -- The IP address translation table contain the IpAddress to + -- `physical' address equivalences. Some interfaces do not + -- use translation tables for determining address + -- equivalences (e.g., DDN-X.25 has an algorithmic method); + -- if all interfaces are of this type, then the Address + -- Translation table is empty, i.e., has zero entries. + + ipNetToMediaTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The IP Address Translation table used for mapping + from IP addresses to physical addresses." + ::= { ip 22 } + + ipNetToMediaEntry OBJECT-TYPE + SYNTAX IpNetToMediaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Each entry contains one IpAddress to `physical' + address equivalence." + INDEX { ipNetToMediaIfIndex, + ipNetToMediaNetAddress } + ::= { ipNetToMediaTable 1 } + + IpNetToMediaEntry ::= + SEQUENCE { + ipNetToMediaIfIndex + INTEGER, + ipNetToMediaPhysAddress + PhysAddress, + ipNetToMediaNetAddress + IpAddress, + ipNetToMediaType + INTEGER + } + + ipNetToMediaIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The interface on which this entry's equivalence + is effective. The interface identified by a + particular value of this index is the same + interface as identified by the same value of + ifIndex." + ::= { ipNetToMediaEntry 1 } + + ipNetToMediaPhysAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The media-dependent `physical' address." + ::= { ipNetToMediaEntry 2 } + + ipNetToMediaNetAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IpAddress corresponding to the media- + dependent `physical' address." + ::= { ipNetToMediaEntry 3 } + + ipNetToMediaType OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + invalid(2), -- an invalidated mapping + dynamic(3), + static(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of mapping. + + Setting this object to the value invalid(2) has + the effect of invalidating the corresponding entry + in the ipNetToMediaTable. That is, it effectively + dissasociates the interface identified with said + entry from the mapping identified with said entry. + It is an implementation-specific matter as to + whether the agent removes an invalidated entry + from the table. Accordingly, management stations + must be prepared to receive tabular information + from agents that corresponds to entries not + currently in use. Proper interpretation of such + entries requires examination of the relevant + ipNetToMediaType object." + ::= { ipNetToMediaEntry 4 } + + + -- additional IP objects + + ipRoutingDiscards OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of routing entries which were chosen + to be discarded even though they are valid. One + possible reason for discarding such an entry could + be to free-up buffer space for other routing + entries." + ::= { ip 23 } + + + -- the ICMP group + + -- Implementation of the ICMP group is mandatory for all + -- systems. + + icmpInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of ICMP messages which the + entity received. Note that this counter includes + all those counted by icmpInErrors." + ::= { icmp 1 } + + icmpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP messages which the entity + received but determined as having ICMP-specific + errors (bad ICMP checksums, bad length, etc.)." + ::= { icmp 2 } + + icmpInDestUnreachs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Destination Unreachable + messages received." + ::= { icmp 3 } + + icmpInTimeExcds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Time Exceeded messages + received." + ::= { icmp 4 } + + icmpInParmProbs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Parameter Problem messages + received." + ::= { icmp 5 } + + icmpInSrcQuenchs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Source Quench messages + received." + ::= { icmp 6 } + + icmpInRedirects OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Redirect messages received." + ::= { icmp 7 } + + icmpInEchos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo (request) messages + received." + ::= { icmp 8 } + + icmpInEchoReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo Reply messages received." + ::= { icmp 9 } + + icmpInTimestamps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp (request) messages + received." + ::= { icmp 10 } + + icmpInTimestampReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp Reply messages + received." + ::= { icmp 11 } + + icmpInAddrMasks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Request messages + received." + ::= { icmp 12 } + + icmpInAddrMaskReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Reply messages + received." + ::= { icmp 13 } + + icmpOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of ICMP messages which this + entity attempted to send. Note that this counter + includes all those counted by icmpOutErrors." + ::= { icmp 14 } + + icmpOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP messages which this entity did + not send due to problems discovered within ICMP + such as a lack of buffers. This value should not + include errors discovered outside the ICMP layer + such as the inability of IP to route the resultant + datagram. In some implementations there may be no + types of error which contribute to this counter's + value." + ::= { icmp 15 } + + icmpOutDestUnreachs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Destination Unreachable + messages sent." + ::= { icmp 16 } + + icmpOutTimeExcds OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Time Exceeded messages sent." + ::= { icmp 17 } + + icmpOutParmProbs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Parameter Problem messages + sent." + ::= { icmp 18 } + + icmpOutSrcQuenchs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Source Quench messages sent." + ::= { icmp 19 } + + icmpOutRedirects OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Redirect messages sent. For a + host, this object will always be zero, since hosts + do not send redirects." + ::= { icmp 20 } + + icmpOutEchos OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo (request) messages sent." + ::= { icmp 21 } + + icmpOutEchoReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Echo Reply messages sent." + ::= { icmp 22 } + + icmpOutTimestamps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp (request) messages + sent." + ::= { icmp 23 } + + icmpOutTimestampReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Timestamp Reply messages + sent." + ::= { icmp 24 } + + icmpOutAddrMasks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Request messages + sent." + ::= { icmp 25 } + + icmpOutAddrMaskReps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ICMP Address Mask Reply messages + sent." + ::= { icmp 26 } + + + -- the TCP group + + -- Implementation of the TCP group is mandatory for all + -- systems that implement the TCP. + + -- Note that instances of object types that represent + -- information about a particular TCP connection are + -- transient; they persist only as long as the connection + -- in question. + + tcpRtoAlgorithm OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- none of the following + + constant(2), -- a constant rto + rsre(3), -- MIL-STD-1778, Appendix B + vanj(4) -- Van Jacobson's algorithm [10] + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The algorithm used to determine the timeout value + used for retransmitting unacknowledged octets." + ::= { tcp 1 } + + tcpRtoMin OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minimum value permitted by a TCP + implementation for the retransmission timeout, + measured in milliseconds. More refined semantics + for objects of this type depend upon the algorithm + used to determine the retransmission timeout. In + particular, when the timeout algorithm is rsre(3), + an object of this type has the semantics of the + LBOUND quantity described in RFC 793." + ::= { tcp 2 } + + + tcpRtoMax OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum value permitted by a TCP + implementation for the retransmission timeout, + measured in milliseconds. More refined semantics + for objects of this type depend upon the algorithm + used to determine the retransmission timeout. In + particular, when the timeout algorithm is rsre(3), + an object of this type has the semantics of the + UBOUND quantity described in RFC 793." + ::= { tcp 3 } + + tcpMaxConn OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The limit on the total number of TCP connections + the entity can support. In entities where the + maximum number of connections is dynamic, this + object should contain the value -1." + ::= { tcp 4 } + + tcpActiveOpens OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the SYN-SENT state from the + CLOSED state." + ::= { tcp 5 } + + tcpPassiveOpens OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the SYN-RCVD state from the + LISTEN state." + ::= { tcp 6 } + + tcpAttemptFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the CLOSED state from either + the SYN-SENT state or the SYN-RCVD state, plus the + number of times TCP connections have made a direct + transition to the LISTEN state from the SYN-RCVD + state." + ::= { tcp 7 } + + tcpEstabResets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times TCP connections have made a + direct transition to the CLOSED state from either + the ESTABLISHED state or the CLOSE-WAIT state." + ::= { tcp 8 } + + tcpCurrEstab OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of TCP connections for which the + current state is either ESTABLISHED or CLOSE- + WAIT." + ::= { tcp 9 } + + tcpInSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments received, including + those received in error. This count includes + segments received on currently established + connections." + ::= { tcp 10 } + + tcpOutSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments sent, including + those on current connections but excluding those + containing only retransmitted octets." + ::= { tcp 11 } + + tcpRetransSegs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments retransmitted - that + is, the number of TCP segments transmitted + containing one or more previously transmitted + octets." + ::= { tcp 12 } + + + -- the TCP Connection table + + -- The TCP connection table contains information about this + -- entity's existing TCP connections. + + tcpConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing TCP connection-specific + information." + ::= { tcp 13 } + + tcpConnEntry OBJECT-TYPE + SYNTAX TcpConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current TCP + connection. An object of this type is transient, + in that it ceases to exist when (or soon after) + the connection makes the transition to the CLOSED + state." + INDEX { tcpConnLocalAddress, + tcpConnLocalPort, + tcpConnRemAddress, + tcpConnRemPort } + ::= { tcpConnTable 1 } + + TcpConnEntry ::= + SEQUENCE { + tcpConnState + INTEGER, + tcpConnLocalAddress + IpAddress, + tcpConnLocalPort + INTEGER (0..65535), + tcpConnRemAddress + IpAddress, + tcpConnRemPort + INTEGER (0..65535) + } + + tcpConnState OBJECT-TYPE + SYNTAX INTEGER { + closed(1), + listen(2), + synSent(3), + synReceived(4), + established(5), + finWait1(6), + finWait2(7), + closeWait(8), + lastAck(9), + closing(10), + timeWait(11), + deleteTCB(12) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of this TCP connection. + + The only value which may be set by a management + station is deleteTCB(12). Accordingly, it is + appropriate for an agent to return a `badValue' + response if a management station attempts to set + this object to any other value. + + If a management station sets this object to the + value deleteTCB(12), then this has the effect of + deleting the TCB (as defined in RFC 793) of the + corresponding connection on the managed node, + resulting in immediate termination of the + connection. + + As an implementation-specific option, a RST + segment may be sent from the managed node to the + other TCP endpoint (note however that RST segments + are not sent reliably)." + ::= { tcpConnEntry 1 } + + tcpConnLocalAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local IP address for this TCP connection. In + the case of a connection in the listen state which + is willing to accept connections for any IP + interface associated with the node, the value + 0.0.0.0 is used." + ::= { tcpConnEntry 2 } + + tcpConnLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this TCP connection." + ::= { tcpConnEntry 3 } + + tcpConnRemAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The remote IP address for this TCP connection." + ::= { tcpConnEntry 4 } + + tcpConnRemPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The remote port number for this TCP connection." + ::= { tcpConnEntry 5 } + + + -- additional TCP objects + + tcpInErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of segments received in error + (e.g., bad TCP checksums)." + ::= { tcp 14 } + + tcpOutRsts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of TCP segments sent containing the + RST flag." + ::= { tcp 15 } + + + -- the UDP group + + -- Implementation of the UDP group is mandatory for all + -- systems which implement the UDP. + + udpInDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of UDP datagrams delivered to + UDP users." + ::= { udp 1 } + + udpNoPorts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of received UDP datagrams for + which there was no application at the destination + port." + ::= { udp 2 } + + udpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received UDP datagrams that could + not be delivered for reasons other than the lack + of an application at the destination port." + ::= { udp 3 } + + udpOutDatagrams OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of UDP datagrams sent from this + entity." + ::= { udp 4 } + + + -- the UDP Listener table + + -- The UDP listener table contains information about this + -- entity's UDP end-points on which a local application is + -- currently accepting datagrams. + + udpTable OBJECT-TYPE + SYNTAX SEQUENCE OF UdpEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing UDP listener information." + ::= { udp 5 } + + udpEntry OBJECT-TYPE + SYNTAX UdpEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current UDP + listener." + INDEX { udpLocalAddress, udpLocalPort } + ::= { udpTable 1 } + + UdpEntry ::= + SEQUENCE { + udpLocalAddress + IpAddress, + udpLocalPort + INTEGER (0..65535) + } + + udpLocalAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local IP address for this UDP listener. In + the case of a UDP listener which is willing to + accept datagrams for any IP interface associated + with the node, the value 0.0.0.0 is used." + ::= { udpEntry 1 } + + udpLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this UDP listener." + ::= { udpEntry 2 } + + + -- the EGP group + + -- Implementation of the EGP group is mandatory for all + -- systems which implement the EGP. + + egpInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received without + error." + ::= { egp 1 } + + egpInErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received that proved + to be in error." + ::= { egp 2 } + + egpOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of locally generated EGP + messages." + ::= { egp 3 } + + egpOutErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally generated EGP messages not + sent due to resource limitations within an EGP + entity." + ::= { egp 4 } + + + -- the EGP Neighbor table + + -- The EGP neighbor table contains information about this + -- entity's EGP neighbors. + + egpNeighTable OBJECT-TYPE + SYNTAX SEQUENCE OF EgpNeighEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The EGP neighbor table." + ::= { egp 5 } + + egpNeighEntry OBJECT-TYPE + SYNTAX EgpNeighEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about this entity's relationship with + a particular EGP neighbor." + INDEX { egpNeighAddr } + ::= { egpNeighTable 1 } + + EgpNeighEntry ::= + SEQUENCE { + egpNeighState + INTEGER, + egpNeighAddr + IpAddress, + egpNeighAs + INTEGER, + egpNeighInMsgs + Counter, + egpNeighInErrs + Counter, + egpNeighOutMsgs + Counter, + egpNeighOutErrs + Counter, + egpNeighInErrMsgs + Counter, + egpNeighOutErrMsgs + Counter, + egpNeighStateUps + Counter, + egpNeighStateDowns + Counter, + egpNeighIntervalHello + INTEGER, + egpNeighIntervalPoll + INTEGER, + egpNeighMode + INTEGER, + egpNeighEventTrigger + INTEGER + } + + egpNeighState OBJECT-TYPE + SYNTAX INTEGER { + idle(1), + acquisition(2), + down(3), + up(4), + cease(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The EGP state of the local system with respect to + this entry's EGP neighbor. Each EGP state is + represented by a value that is one greater than + the numerical value associated with said state in + RFC 904." + ::= { egpNeighEntry 1 } + + egpNeighAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address of this entry's EGP neighbor." + ::= { egpNeighEntry 2 } + + egpNeighAs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The autonomous system of this EGP peer. Zero + should be specified if the autonomous system + number of the neighbor is not yet known." + ::= { egpNeighEntry 3 } + + egpNeighInMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received without error + from this EGP peer." + ::= { egpNeighEntry 4 } + + egpNeighInErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP messages received from this EGP + peer that proved to be in error (e.g., bad EGP + checksum)." + ::= { egpNeighEntry 5 } + + egpNeighOutMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally generated EGP messages to + this EGP peer." + ::= { egpNeighEntry 6 } + + egpNeighOutErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of locally generated EGP messages not + sent to this EGP peer due to resource limitations + within an EGP entity." + ::= { egpNeighEntry 7 } + + egpNeighInErrMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP-defined error messages received + from this EGP peer." + ::= { egpNeighEntry 8 } + + egpNeighOutErrMsgs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP-defined error messages sent to + this EGP peer." + ::= { egpNeighEntry 9 } + + egpNeighStateUps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP state transitions to the UP + state with this EGP peer." + ::= { egpNeighEntry 10 } + + egpNeighStateDowns OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of EGP state transitions from the UP + state to any other state with this EGP peer." + ::= { egpNeighEntry 11 } + + egpNeighIntervalHello OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interval between EGP Hello command + retransmissions (in hundredths of a second). This + represents the t1 timer as defined in RFC 904." + ::= { egpNeighEntry 12 } + + egpNeighIntervalPoll OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The interval between EGP poll command + retransmissions (in hundredths of a second). This + represents the t3 timer as defined in RFC 904." + ::= { egpNeighEntry 13 } + + egpNeighMode OBJECT-TYPE + SYNTAX INTEGER { active(1), passive(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The polling mode of this EGP entity, either + passive or active." + ::= { egpNeighEntry 14 } + + egpNeighEventTrigger OBJECT-TYPE + SYNTAX INTEGER { start(1), stop(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A control variable used to trigger operator- + initiated Start and Stop events. When read, this + variable always returns the most recent value that + egpNeighEventTrigger was set to. If it has not + been set since the last initialization of the + network management subsystem on the node, it + returns a value of `stop'. + + When set, this variable causes a Start or Stop + event on the specified neighbor, as specified on + pages 8-10 of RFC 904. Briefly, a Start event + causes an Idle peer to begin neighbor acquisition + and a non-Idle peer to reinitiate neighbor + acquisition. A stop event causes a non-Idle peer + to return to the Idle state until a Start event + occurs, either via egpNeighEventTrigger or + otherwise." + ::= { egpNeighEntry 15 } + + + -- additional EGP objects + + egpAs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The autonomous system number of this EGP entity." + ::= { egp 6 } + + -- the Transmission group + + -- Based on the transmission media underlying each interface + -- on a system, the corresponding portion of the Transmission + -- group is mandatory for that system. + + -- When Internet-standard definitions for managing + -- transmission media are defined, the transmission group is + -- used to provide a prefix for the names of those objects. + + -- Typically, such definitions reside in the experimental + -- portion of the MIB until they are "proven", then as a + -- part of the Internet standardization process, the + -- definitions are accordingly elevated and a new object + -- identifier, under the transmission group is defined. By + -- convention, the name assigned is: + -- + -- type OBJECT IDENTIFIER ::= { transmission number } + -- + -- where "type" is the symbolic value used for the media in + -- the ifType column of the ifTable object, and "number" is + -- the actual integer value corresponding to the symbol. + + + -- the SNMP group + + -- Implementation of the SNMP group is mandatory for all + -- systems which support an SNMP protocol entity. Some of + -- the objects defined below will be zero-valued in those + -- SNMP implementations that are optimized to support only + -- those functions specific to either a management agent or + -- a management station. In particular, it should be + -- observed that the objects below refer to an SNMP entity, + -- and there may be several SNMP entities residing on a + -- managed node (e.g., if the node is hosting acting as + -- a management station). + + snmpInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of Messages delivered to the + SNMP entity from the transport service." + ::= { snmp 1 } + + snmpOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages which were + passed from the SNMP protocol entity to the + transport service." + ::= { snmp 2 } + + snmpInBadVersions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages which were + delivered to the SNMP protocol entity and were for + an unsupported SNMP version." + ::= { snmp 3 } + + snmpInBadCommunityNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages delivered to + the SNMP protocol entity which used a SNMP + community name not known to said entity." + ::= { snmp 4 } + + snmpInBadCommunityUses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Messages delivered to + the SNMP protocol entity which represented an SNMP + operation which was not allowed by the SNMP + community named in the Message." + ::= { snmp 5 } + + snmpInASNParseErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of ASN.1 or BER errors + encountered by the SNMP protocol entity when + decoding received SNMP Messages." + ::= { snmp 6 } + + -- { snmp 7 } is not used + + snmpInTooBigs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `tooBig'." + ::= { snmp 8 } + + snmpInNoSuchNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `noSuchName'." + ::= { snmp 9 } + + snmpInBadValues OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 10 } + + snmpInReadOnlys OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number valid SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `readOnly'. It should be noted that it is a + protocol error to generate an SNMP PDU which + contains the value `readOnly' in the error-status + field, as such this object is provided as a means + of detecting incorrect implementations of the + SNMP." + ::= { snmp 11 } + + snmpInGenErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 12 } + + snmpInTotalReqVars OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of MIB objects which have been + retrieved successfully by the SNMP protocol entity + as the result of receiving valid SNMP Get-Request + and Get-Next PDUs." + ::= { snmp 13 } + + snmpInTotalSetVars OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of MIB objects which have been + altered successfully by the SNMP protocol entity + as the result of receiving valid SNMP Set-Request + PDUs." + ::= { snmp 14 } + + snmpInGetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 15 } + + snmpInGetNexts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 16 } + + snmpInSetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 17 } + + snmpInGetResponses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 18 } + + snmpInTraps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 19 } + + snmpOutTooBigs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `tooBig.'" + ::= { snmp 20 } + + snmpOutNoSuchNames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status is + `noSuchName'." + ::= { snmp 21 } + + snmpOutBadValues OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 22 } + + -- { snmp 23 } is not used + + snmpOutGenErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 24 } + + snmpOutGetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 25 } + + snmpOutGetNexts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 26 } + + snmpOutSetRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 27 } + + snmpOutGetResponses OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 28 } + + snmpOutTraps OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 29 } + + snmpEnableAuthenTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates whether the SNMP agent process is + permitted to generate authentication-failure + traps. The value of this object overrides any + configuration information; as such, it provides a + means whereby all authentication-failure traps may + be disabled. + + Note that it is strongly recommended that this + object be stored in non-volatile memory so that it + remains constant between re-initializations of the + network management system." + ::= { snmp 30 } + + egpNeighborLoss TRAP-TYPE + ENTERPRISE snmp + VARIABLES { egpNeighAddr } + DESCRIPTION + "An egpNeighborLoss trap signifies that an EGP + neighbor for whom the sending protocol entity + was an EGP peer has been marked down and the + peer relationship no longer obtains." + ::= 5 + + END diff --git a/pandora_console/attachment/mibs/RFC1215-TRAP b/pandora_console/attachment/mibs/RFC1215-TRAP new file mode 100644 index 0000000000..4a65305f82 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1215-TRAP @@ -0,0 +1,77 @@ +-- Changes for rfc1215 (SNMP generic traps): +-- Added MODULE definition. +-- Added IMPORTS. +-- dperkins@scruznet.com + + +RFC1215-TRAP DEFINITIONS ::= BEGIN + + + IMPORTS + snmp, ifIndex, egpNeighAddr + FROM RFC1213-MIB + TRAP-TYPE + FROM RFC-1215; + + coldStart TRAP-TYPE + ENTERPRISE snmp + DESCRIPTION + "A coldStart trap signifies that the sending + protocol entity is reinitializing itself such + that the agent's configuration or the protocol + entity implementation may be altered." + ::= 0 + + warmStart TRAP-TYPE + ENTERPRISE snmp + DESCRIPTION + "A warmStart trap signifies that the sending + protocol entity is reinitializing itself such + that neither the agent configuration nor the + protocol entity implementation is altered." + ::= 1 + + linkDown TRAP-TYPE + ENTERPRISE snmp + VARIABLES { ifIndex } + DESCRIPTION + "A linkDown trap signifies that the sending + protocol entity recognizes a failure in one of + the communication links represented in the + agent's configuration." + ::= 2 + + linkUp TRAP-TYPE + ENTERPRISE snmp + VARIABLES { ifIndex } + DESCRIPTION + "A linkUp trap signifies that the sending + protocol entity recognizes that one of the + communication links represented in the agent's + configuration has come up." + ::= 3 + + authenticationFailure TRAP-TYPE + ENTERPRISE snmp + DESCRIPTION + "An authenticationFailure trap signifies that + the sending protocol entity is the addressee + of a protocol message that is not properly + authenticated. While implementations of the + SNMP must be capable of generating this trap, + they must also be capable of suppressing the + emission of such traps via an + implementation-specific mechanism." + ::= 4 + + egpNeighborLoss TRAP-TYPE + ENTERPRISE snmp + VARIABLES { egpNeighAddr } + DESCRIPTION + "An egpNeighborLoss trap signifies that an EGP + neighbor for whom the sending protocol entity + was an EGP peer has been marked down and the + peer relationship no longer obtains." + ::= 5 + +END diff --git a/pandora_console/attachment/mibs/RFC1229-MIB b/pandora_console/attachment/mibs/RFC1229-MIB new file mode 100644 index 0000000000..1bcdd4c65b --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1229-MIB @@ -0,0 +1,473 @@ +-- Changes to RFC1229 (Interface Extensions MIB): +-- Changes from RFC-1239 applied which include: +-- removing import of experimental, +-- adding import of mib-2, changing +-- ifExtensions to be { mib-2 12 } +-- instead of { experimental 6 } +-- dperkins@scruznet.com + + + RFC1229-MIB DEFINITIONS ::= BEGIN + + -- RFC1229 + -- May 91 + + -- Extensions to MIB-II's Generic Interface Table + + IMPORTS + Counter FROM RFC1155-SMI + mib-2, DisplayString, PhysAddress + FROM RFC1213-MIB + OBJECT-TYPE FROM RFC-1212; + + + ifExtensions OBJECT IDENTIFIER ::= { mib-2 12 } + + + -- Generic Interface Extension Table + -- + -- This group of objects is mandatory for all types of + -- subnetwork interface. + + ifExtnsTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfExtnsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of interfaces extension entries. + The number of entries is given by the value + of ifNumber, defined in [4,6]." + ::= { ifExtensions 1 } + + ifExtnsEntry OBJECT-TYPE + SYNTAX IfExtnsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An extension to the interfaces entry, + defined in [4,6], containing additional + objects at the subnetwork layer and below + for a particular interface." + INDEX { ifExtnsIfIndex } + ::= { ifExtnsTable 1 } + + IfExtnsEntry ::= + SEQUENCE { + ifExtnsIfIndex + INTEGER, + ifExtnsChipSet + OBJECT IDENTIFIER, + ifExtnsRevWare + DisplayString, + ifExtnsMulticastsTransmittedOks + Counter, + ifExtnsBroadcastsTransmittedOks + Counter, + ifExtnsMulticastsReceivedOks + Counter, + ifExtnsBroadcastsReceivedOks + Counter, + ifExtnsPromiscuous + INTEGER + } + + ifExtnsIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the + interface for which this entry contains + extended management information. The value + of this object for a particular interface + has the same value as the ifIndex object, + defined in [4,6], for the same interface." + ::= { ifExtnsEntry 1 } + + ifExtnsChipSet OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object identifies the hardware chip + set being used in the interface. The + assignment of OBJECT IDENTIFIERs to various + types of hardware chip sets is managed + by the IANA. If the hardware chip set is + unknown, the object identifier + + unknownChipSet OBJECT IDENTIFIER ::= { 0 0 } + + is returned. Note that unknownChipSet is a + syntactically valid object identifier, and + any conformant implementation of ASN.1 and + the BER must be able to generate and + recognize this value." + ::= { ifExtnsEntry 2 } + + ifExtnsRevWare OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An arbitrary octet string that describes + the firmware version of this interface. + It is intended that this should be human + readable. It must only contain ASCII + printable characters. Typically this + will be the firmware version of the main + interface software." + ::= { ifExtnsEntry 3 } + + ifExtnsMulticastsTransmittedOks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The count of frames successfully + transmitted to a subnetwork or link-layer + multicast destination address other than a + broadcast address. For a MAC layer protocol, + this includes both Group and Functional + addresses." + ::= { ifExtnsEntry 4 } + + ifExtnsBroadcastsTransmittedOks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The count of frames successfully + transmitted to a subnetwork or link-layer + broadcast addresses. It does not include + frames sent to a multicast address." + ::= { ifExtnsEntry 5 } + + ifExtnsMulticastsReceivedOks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The count of frames successfully received + that are directed to an active subnetwork + or link-layer multicast address (for a MAC + layer protocol, this includes both Group and + Functional addresses). This does not include + frames directed to a broadcast address, nor + frames received with errors." + ::= { ifExtnsEntry 6 } + + ifExtnsBroadcastsReceivedOks OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The count of frames successfully received + that are directed to a subnetwork or + link-layer broadcast address. This does not + include frames received with errors." + ::= { ifExtnsEntry 7 } + + ifExtnsPromiscuous OBJECT-TYPE + SYNTAX INTEGER { + true(1), + false(2) + } + ACCESS read-only -- Note: agent implementors are + -- encouraged to extend this + -- access to read-write if that + -- makes sense in their agent. + STATUS mandatory + DESCRIPTION + "This object has a value of false(2) if + this interface only accepts packets/frames + that are addressed to this station. This + object has a value of true(1) when the + station accepts all packets/frames + transmitted on the media. The value + true(1) is only legal on certain types of + media. If legal, setting this object to a + value of true(1) may require the interface + to be reset before becoming effective." + ::= { ifExtnsEntry 8 } + + -- + -- Generic Interface Test Table + -- + -- This group of objects is optional, but if the table is + -- implemented, all objects in the table must be implemented. + + ifExtnsTestTable OBJECT-TYPE + + SYNTAX SEQUENCE OF IfExtnsTestEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains one entry per interface." + ::= { ifExtensions 2 } + + ifExtnsTestEntry OBJECT-TYPE + SYNTAX IfExtnsTestEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry containing objects for invoking + tests on an interface." + INDEX { ifExtnsTestIfIndex } + ::= { ifExtnsTestTable 1 } + + IfExtnsTestEntry ::= + SEQUENCE { + ifExtnsTestIfIndex + INTEGER, + ifExtnsTestCommunity + OCTET STRING, + ifExtnsTestRequestId + INTEGER, + ifExtnsTestType + OBJECT IDENTIFIER, + ifExtnsTestResult + INTEGER, + ifExtnsTestCode + OBJECT IDENTIFIER + } + + ifExtnsTestIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the + interface for which this entry contains + information on interface tests. The value + of this object for a particular interface + has the same value as the ifIndex object, + defined in [4,6], for the same interface." + ::= { ifExtnsTestEntry 1 } + + ifExtnsTestCommunity OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object contains the name of the SNMP + authentication community [5] which was used + to authenticate the SNMP Message which invoked + the current or most recent test on this + interface. If the authentication community + is unknown or undefined, this value contains + the zero-length string." + ::= { ifExtnsTestEntry 2 } + + ifExtnsTestRequestId OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object contains the value of the + request-id field in the SNMP PDU [5] which + invoked the current or most recent test on + this interface. If the request-id is + unknown or undefined, this value contains + the value zero." + ::= { ifExtnsTestEntry 3 } + + ifExtnsTestType OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A control variable used to start and stop + operator-initiated interface tests. + Most OBJECT IDENTIFIER values assigned + to tests are defined elsewhere, in associ- + ation with specific types of interface. + However, this document assigns a value for + a full-duplex loopback test, and defines the + special meanings of the subject identifier: + + noTest OBJECT IDENTIFIER ::= { 0 0 } + + When the value noTest is written to this + object, no action is taken unless a test is + in progress, in which case the test is + aborted. Writing any other value to this + object is only valid when no test is + currently in progress, in which case the + indicated test is initiated. + Note that noTest is a syntactically valid + object identifier, and any conformant + implementation of ASN.1 and BER must be able + to generate and recognize this value. + When read, this object always returns + the most recent value that ifExtnsTestType + was set to. If it has not been set since + the last initialization of the network + management subsystem on the agent, a value + of noTest is returned." + ::= { ifExtnsTestEntry 4 } + + wellKnownTests OBJECT IDENTIFIER ::= { ifExtensions 4 } + + -- full-duplex loopback test + testFullDuplexLoopBack OBJECT IDENTIFIER ::= + { wellKnownTests 1 } + + ifExtnsTestResult OBJECT-TYPE + SYNTAX INTEGER { + none(1), -- no test yet requested + success(2), + inProgress(3), + notSupported(4), + unAbleToRun(5), -- due to state of system + aborted(6), + failed(7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object contains the result of the most + recently requested test, or the value + none(1) if no tests have been requested since + the last reset. Note that this facility + provides no provision for saving the results + of one test when starting another, as could + be required if used by multiple managers + concurrently." + ::= { ifExtnsTestEntry 5 } + + ifExtnsTestCode OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object contains a code which contains + more specific information on the test result, + for example an error-code after a failed + test. Error codes and other values this + object may take are specific to the type of + interface and/or test. However, one subject + identifier: + + testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 } + + for use if no additional result code is + available. + Note that testCodeUnknown is a + syntactically valid object identifier, and + any conformant implementation of ASN.1 and + the BER must be able to generate and + recognize this value." + ::= { ifExtnsTestEntry 6 } + + + -- Generic Receive Address Table + -- + -- This group of objects is mandatory for all types of + -- interfaces which can receive packets/frames addressed to + -- more than one address. + + ifExtnsRcvAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF IfExtnsRcvAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains an entry for each + address (broadcast, multicast, or uni-cast) + for which the system will receive packets/ + frames on a particular interface. When an + interface is operating in promiscuous mode, + entries are only required for those addresses + for which the system would receive frames + were it not operating in promiscuous mode." + ::= { ifExtensions 3 } + + ifExtnsRcvAddrEntry OBJECT-TYPE + SYNTAX IfExtnsRcvAddrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of objects identifying an address + for which the system will accept packets/ + frames on a particular interface." + INDEX { ifExtnsRcvAddrIfIndex, ifExtnsRcvAddress } + ::= { ifExtnsRcvAddrTable 1 } + + IfExtnsRcvAddrEntry ::= + SEQUENCE { + ifExtnsRcvAddrIfIndex + INTEGER, + ifExtnsRcvAddress + PhysAddress, + ifExtnsRcvAddrStatus + INTEGER + } + + ifExtnsRcvAddrIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of ifIndex, defined in [4,6], of an + interface which recognizes this entry's + address." + ::= { ifExtnsRcvAddrEntry 1 } + + ifExtnsRcvAddress OBJECT-TYPE + SYNTAX PhysAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An address for which the system will accept + packets/frames on this entry's interface." + ::= { ifExtnsRcvAddrEntry 2 } + + ifExtnsRcvAddrStatus OBJECT-TYPE + SYNTAX INTEGER { + other(1), + invalid(2), + volatile(3), + nonVolatile(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object has the value nonVolatile(4) + for those entries in the table which are + valid and will not be deleted by the next + restart of the managed system. Entries + having the value volatile(3) are valid + and exist, but have not been saved, so + that will not exist after the next + restart of the managed system. Entries + having the value other(1) are valid and + exist but are not classified as to whether + they will continue to exist after the next + restart. Entries having the value invalid(2) + are invalid and do not represent an address + for which an interface accepts frames. + Setting an object instance to one of + the values other(1), volatile(3), or + nonVolatile(4) causes the corresponding + entry to exist or continue to exist, and + to take on the respective status as regards + the next restart of the managed system. + Setting an object instance to the value + invalid(2) causes the corresponding entry + to become invalid or cease to exist. + It is an implementation-specific matter + as to whether the agent removes an + invalidated entry from the table. + Accordingly, management stations must be + prepared to receive tabular information + from agents that corresponds to entries not + currently in use. Proper interpretation of + such entries requires examination of the + relevant ifExtnsRcvAddrStatus object + instance." + DEFVAL { volatile } + ::= { ifExtnsRcvAddrEntry 3 } + + END + + diff --git a/pandora_console/attachment/mibs/RFC1231-MIB b/pandora_console/attachment/mibs/RFC1231-MIB new file mode 100644 index 0000000000..2d2277b25d --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1231-MIB @@ -0,0 +1,869 @@ +-- Changes for RFC1231 (Token Ring MIB): +-- Changes from RFC-1239 applied which include: +-- removing import of experimental, +-- adding import of transmission, changing +-- dot5 to be { transmission 9 } +-- instead of { experimental 4 } +-- Added import for Counter. +-- Changed the status from optional to mandatory for +-- dot5StatsFreqErrors. +-- dperkins@scruznet.com + + RFC1231-MIB DEFINITIONS ::= BEGIN + + -- RFC1231 + -- May 91 + + -- IEEE 802.5 Token Ring MIB + + IMPORTS + Counter + FROM RFC1155-SMI + transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + + dot5 OBJECT IDENTIFIER ::= { transmission 9 } + + + -- All representations of MAC addresses in this MIB Module + -- use, as a textual convention (i.e. this convention does + -- not affect their encoding), the data type: + + MacAddress ::= OCTET STRING (SIZE (6)) -- a 6 octet + -- address in the + -- "canonical" order + -- defined by IEEE 802.1a, i.e., as if it were transmitted + -- least significant bit first, even though 802.5 (in + -- contrast to other 802.x protocols) requires MAC addresses + -- to be transmitted most significant bit first. + -- + -- 16-bit addresses, if needed, are represented by setting + -- their upper 4 octets to all 0's, i.e., AAFF would be + -- represented as 00000000AAFF. + + + + -- The Interface Table + + -- This table contains state and parameter information which + -- is specific to 802.5 interfaces. It is mandatory that + -- systems having 802.5 interfaces implement this table in + -- addition to the generic interfaces table [4,6] and its + -- generic extensions [11]. + + dot5Table OBJECT-TYPE + SYNTAX SEQUENCE OF Dot5Entry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains Token Ring interface + parameters and state variables, one entry + per 802.5 interface." + ::= { dot5 1 } + + dot5Entry OBJECT-TYPE + SYNTAX Dot5Entry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of Token Ring status and parameter + values for an 802.5 interface." + INDEX { dot5IfIndex } + ::= { dot5Table 1 } + + Dot5Entry + ::= SEQUENCE { + dot5IfIndex + INTEGER, + dot5Commands + INTEGER, + dot5RingStatus + INTEGER, + dot5RingState + INTEGER, + dot5RingOpenStatus + INTEGER, + dot5RingSpeed + INTEGER, + dot5UpStream + MacAddress, + dot5ActMonParticipate + INTEGER, + dot5Functional + MacAddress + } + + dot5IfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the + 802.5 interface for which this entry + contains management information. The + value of this object for a particular + interface has the same value as the + ifIndex object, defined in [4,6], + for the same interface." + ::= { dot5Entry 1 } + + dot5Commands OBJECT-TYPE + SYNTAX INTEGER { + no-op(1), + open(2), + reset(3), + close(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When this object is set to the value of + open(2), the station should go into the + open state. The progress and success of + the open is given by the values of the + objects dot5RingState and + dot5RingOpenStatus. + When this object is set to the value + of reset(3), then the station should do + a reset. On a reset, all MIB counters + should retain their values, if possible. + Other side affects are dependent on the + hardware chip set. + When this object is set to the value + of close(4), the station should go into + the stopped state by removing itself + from the ring. + Setting this object to a value of + no-op(1) has no effect. + When read, this object always has a + value of no-op(1)." + ::= { dot5Entry 2 } + + dot5RingStatus OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current interface status which can + be used to diagnose fluctuating problems + that can occur on token rings, after a + station has successfully been added to + the ring. + Before an open is completed, this + object has the value for the 'no status' + condition. The dot5RingState and + dot5RingOpenStatus objects provide for + debugging problems when the station + can not even enter the ring. + The object's value is a sum of + values, one for each currently applicable + condition. The following values are + defined for various conditions: + + 0 = No Problems detected + 32 = Ring Recovery + 64 = Single Station + 256 = Remove Received + 512 = reserved + 1024 = Auto-Removal Error + 2048 = Lobe Wire Fault + 4096 = Transmit Beacon + 8192 = Soft Error + 16384 = Hard Error + 32768 = Signal Loss + 131072 = no status, open not completed." + ::= { dot5Entry 3 } + + dot5RingState OBJECT-TYPE + SYNTAX INTEGER { + opened(1), + closed(2), + opening(3), + closing(4), + openFailure(5), + ringFailure(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current interface state with respect + to entering or leaving the ring." + ::= { dot5Entry 4 } + + dot5RingOpenStatus OBJECT-TYPE + SYNTAX INTEGER { + noOpen(1), -- no open attempted + badParam(2), + lobeFailed(3), + signalLoss(4), + insertionTimeout(5), + ringFailed(6), + beaconing(7), + duplicateMAC(8), + requestFailed(9), + removeReceived(10), + open(11) -- last open successful + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object indicates the success, or the + reason for failure, of the station's most + recent attempt to enter the ring." + ::= { dot5Entry 5 } + + dot5RingSpeed OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + oneMegabit(2), + fourMegabit(3), + sixteenMegabit(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The ring's bandwidth." + ::= { dot5Entry 6 } + + dot5UpStream OBJECT-TYPE + SYNTAX MacAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MAC-address of the up stream neighbor + station in the ring." + ::= { dot5Entry 7 } + + dot5ActMonParticipate OBJECT-TYPE + SYNTAX INTEGER { + true(1), + false(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If this object has a value of true(1) then + this interface will participate in the + active monitor selection process. If the + value is false(2) then it will not. + Setting this object might not have an + effect until the next time the interface + is opened." + ::= { dot5Entry 8 } + + dot5Functional OBJECT-TYPE + SYNTAX MacAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The bit mask of all Token Ring functional + addresses for which this interface will + accept frames." + ::= { dot5Entry 9 } + + + + -- The Statistics Table + + -- This table contains statistics and error counter which are + -- specific to 802.5 interfaces. It is mandatory that systems + -- having 802.5 interfaces implement this table. + + dot5StatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot5StatsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing Token Ring statistics, + one entry per 802.5 interface. + All the statistics are defined using + the syntax Counter as 32-bit wrap around + counters. Thus, if an interface's + hardware maintains these statistics in + 16-bit counters, then the agent must read + the hardware's counters frequently enough + to prevent loss of significance, in order + to maintain 32-bit counters in software." + ::= { dot5 2 } + + dot5StatsEntry OBJECT-TYPE + SYNTAX Dot5StatsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry contains the 802.5 statistics + for a particular interface." + INDEX { dot5StatsIfIndex } + ::= { dot5StatsTable 1 } + + Dot5StatsEntry + ::= SEQUENCE { + dot5StatsIfIndex + INTEGER, + dot5StatsLineErrors + Counter, + dot5StatsBurstErrors + Counter, + dot5StatsACErrors + Counter, + dot5StatsAbortTransErrors + Counter, + dot5StatsInternalErrors + Counter, + dot5StatsLostFrameErrors + Counter, + dot5StatsReceiveCongestions + Counter, + dot5StatsFrameCopiedErrors + Counter, + dot5StatsTokenErrors + Counter, + dot5StatsSoftErrors + Counter, + dot5StatsHardErrors + Counter, + dot5StatsSignalLoss + Counter, + dot5StatsTransmitBeacons + Counter, + dot5StatsRecoverys + Counter, + dot5StatsLobeWires + Counter, + dot5StatsRemoves + Counter, + dot5StatsSingles + Counter, + dot5StatsFreqErrors + Counter + } + + + dot5StatsIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the + 802.5 interface for which this entry + contains management information. The + value of this object for a particular + interface has the same value as the + ifIndex object, defined in [4,6], for + the same interface." + ::= { dot5StatsEntry 1 } + + dot5StatsLineErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a frame + or token is copied or repeated by a + station, the E bit is zero in the frame + or token and one of the following + conditions exists: 1) there is a + non-data bit (J or K bit) between the SD + and the ED of the frame or token, or + 2) there is an FCS error in the frame." + ::= { dot5StatsEntry 2 } + + dot5StatsBurstErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + detects the absence of transitions for five + half-bit timers (burst-five error)." + ::= { dot5StatsEntry 3 } + + dot5StatsACErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + receives an AMP or SMP frame in which A is + equal to C is equal to 0, and then receives + another SMP frame with A is equal to C is + equal to 0 without first receiving an AMP + frame. It denotes a station that cannot set + the AC bits properly." + ::= { dot5StatsEntry 4 } + + dot5StatsAbortTransErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + transmits an abort delimiter while + transmitting." + ::= { dot5StatsEntry 5 } + + dot5StatsInternalErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + recognizes an internal error." + ::= { dot5StatsEntry 6 } + + dot5StatsLostFrameErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + is transmitting and its TRR timer expires. + This condition denotes a condition where a + transmitting station in strip mode does not + receive the trailer of the frame before the + TRR timer goes off." + ::= { dot5StatsEntry 7 } + + dot5StatsReceiveCongestions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + recognizes a frame addressed to its + specific address, but has no available + buffer space indicating that the station + is congested." + ::= { dot5StatsEntry 8 } + + dot5StatsFrameCopiedErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + recognizes a frame addressed to its + specific address and detects that the FS + field A bits are set to 1 indicating a + possible line hit or duplicate address." + ::= { dot5StatsEntry 9 } + + dot5StatsTokenErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This counter is incremented when a station + acting as the active monitor recognizes an + error condition that needs a token + transmitted." + ::= { dot5StatsEntry 10 } + + dot5StatsSoftErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Soft Errors the interface + has detected. It directly corresponds to + the number of Report Error MAC frames + that this interface has transmitted. + Soft Errors are those which are + recoverable by the MAC layer protocols." + ::= { dot5StatsEntry 11 } + + dot5StatsHardErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this interface has + detected an immediately recoverable + fatal error. It denotes the number of + times this interface is either + transmitting or receiving beacon MAC + frames." + ::= { dot5StatsEntry 12 } + + dot5StatsSignalLoss OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this interface has + detected the loss of signal condition from + the ring." + ::= { dot5StatsEntry 13 } + + dot5StatsTransmitBeacons OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this interface has + transmitted a beacon frame." + ::= { dot5StatsEntry 14 } + + dot5StatsRecoverys OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Claim Token MAC frames + received or transmitted after the interface + has received a Ring Purge MAC frame. This + counter signifies the number of times the + ring has been purged and is being recovered + back into a normal operating state." + ::= { dot5StatsEntry 15 } + + dot5StatsLobeWires OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the interface has + detected an open or short circuit in the + lobe data path. The adapter will be closed + and dot5RingState will signify this + condition." + ::= { dot5StatsEntry 16 } + + dot5StatsRemoves OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the interface has + received a Remove Ring Station MAC frame + request. When this frame is received + the interface will enter the close state + and dot5RingState will signify this + condition." + ::= { dot5StatsEntry 17 } + + dot5StatsSingles OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the interface has + sensed that it is the only station on the + ring. This will happen if the interface + is the first one up on a ring, or if + there is a hardware problem." + ::= { dot5StatsEntry 18 } + + dot5StatsFreqErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the interface has + detected that the frequency of the + incoming signal differs from the expected + frequency by more than that specified by + the IEEE 802.5 standard, see chapter 7 + in [10]." + ::= { dot5StatsEntry 19 } + + + -- The Timer Table + + -- This group contains the values of the timers defined in + -- [10] for 802.5 interfaces. It is optional that systems + -- having 802.5 interfaces implement this group. + + dot5TimerTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot5TimerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains Token Ring interface + timer values, one entry per 802.5 + interface." + ::= { dot5 5 } + + dot5TimerEntry OBJECT-TYPE + SYNTAX Dot5TimerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of Token Ring timer values for an + 802.5 interface." + INDEX { dot5TimerIfIndex } + ::= { dot5TimerTable 1 } + + Dot5TimerEntry + ::= SEQUENCE { + dot5TimerIfIndex + INTEGER, + dot5TimerReturnRepeat + INTEGER, + dot5TimerHolding + INTEGER, + dot5TimerQueuePDU + INTEGER, + dot5TimerValidTransmit + INTEGER, + dot5TimerNoToken + INTEGER, + dot5TimerActiveMon + INTEGER, + dot5TimerStandbyMon + INTEGER, + dot5TimerErrorReport + INTEGER, + dot5TimerBeaconTransmit + INTEGER, + dot5TimerBeaconReceive + INTEGER + } + + dot5TimerIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the + 802.5 interface for which this entry + contains timer values. The value of + this object for a particular interface + has the same value as the ifIndex + object, defined in [4,6], for the same + interface." + ::= { dot5TimerEntry 1 } + + dot5TimerReturnRepeat OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value used to ensure the + interface will return to Repeat State, in + units of 100 micro-seconds. The value + should be greater than the maximum ring + latency. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 2 } + + dot5TimerHolding OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Maximum period of time a station is + permitted to transmit frames after capturing + a token, in units of 100 micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 3 } + + dot5TimerQueuePDU OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value for enqueuing of an SMP + PDU after reception of an AMP or SMP + frame in which the A and C bits were + equal to 0, in units of 100 + micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 4 } + + dot5TimerValidTransmit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value used by the active + monitor to detect the absence of valid + transmissions, in units of 100 + micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 5 } + + dot5TimerNoToken OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value used to recover from + various-related error situations [9]. + If N is the maximum number of stations on + the ring, the value of this timer is + normally: + dot5TimerReturnRepeat + N*dot5TimerHolding. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 6 } + + dot5TimerActiveMon OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value used by the active + monitor to stimulate the enqueuing of an + AMP PDU for transmission, in units of + 100 micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 7 } + + dot5TimerStandbyMon OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value used by the stand-by + monitors to ensure that there is an active + monitor on the ring and to detect a + continuous stream of tokens, in units of + 100 micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 8 } + + dot5TimerErrorReport OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value which determines how + often a station shall send a Report Error + MAC frame to report its error counters, + in units of 100 micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 9 } + + dot5TimerBeaconTransmit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value which determines how + long a station shall remain in the state + of transmitting Beacon frames before + entering the Bypass state, in units of + 100 micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 10 } + + dot5TimerBeaconReceive OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time-out value which determines how + long a station shall receive Beacon + frames from its downstream neighbor + before entering the Bypass state, in + units of 100 micro-seconds. + Implementors are encouraged to provide + read-write access to this object if that is + possible/useful in their system, but giving + due consideration to the dangers of + write-able timers." + ::= { dot5TimerEntry 11 } + + + -- 802.5 Interface Tests + + dot5Tests OBJECT IDENTIFIER ::= { dot5 3 } + + -- The extensions to the interfaces table proposed in [11] + -- define a table object, ifExtnsTestTable, through which a + -- network manager can instruct an agent to test an interface + -- for various faults. A test to be performed is identified + -- (as the value of ifExtnsTestType) via an OBJECT IDENTIFIER. + -- + -- The Full-Duplex Loop Back Test is a common test, defined + -- in [11] as: + -- + -- testFullDuplexLoopBack + -- + -- Invoking this test on a 802.5 interface causes the + -- interface to check the path from memory through the + -- chip set's internal logic and back to memory, thus + -- checking the proper functioning of the systems's + -- interface to the chip set. + + -- The Insert Function test is defined by: + + testInsertFunc OBJECT IDENTIFIER ::= { dot5Tests 1 } + + -- Invoking this test causes the station to test the insert + -- ring logic of the hardware if the station's lobe media + -- cable is connected to a wiring concentrator. Note that + -- this command inserts the station into the network, and + -- thus, could cause problems if the station is connected + -- to a operational network. + + + -- 802.5 Hardware Chip Sets + + dot5ChipSets OBJECT IDENTIFIER ::= { dot5 4 } + + -- The extensions to the interfaces table proposed in [11] + -- define an object, ifExtnsChipSet, with the syntax of + -- OBJECT IDENTIFIER, to identify the hardware chip set in + -- use by an interface. That definition specifies just + -- one applicable object identifier: + -- + -- unknownChipSet + -- + -- for use as the value of ifExtnsChipSet when the specific + -- chip set is unknown. + -- + -- This MIB defines the following for use as values of + -- ifExtnsChipSet: + + -- IBM 16/4 Mb/s + chipSetIBM16 OBJECT IDENTIFIER ::= { dot5ChipSets 1 } + + -- TI 4Mb/s + chipSetTItms380 OBJECT IDENTIFIER ::= { dot5ChipSets 2 } + + -- TI 16/4 Mb/s + chipSetTItms380c16 OBJECT IDENTIFIER ::= { dot5ChipSets 3 } + + END + + diff --git a/pandora_console/attachment/mibs/RFC1232-MIB b/pandora_console/attachment/mibs/RFC1232-MIB new file mode 100644 index 0000000000..2013c60fc1 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1232-MIB @@ -0,0 +1,890 @@ +-- Changes for RFC1232 (DS1 MIB): +-- Changes from RFC-1239 applied which include: +-- removing import of experimental, +-- adding import of transmission, changing +-- ds1 to be { transmission 10 } +-- instead of { experimental 2 } +-- Changed defintions and references from "DS1" to "Ds1" for +-- the following: DS1ConfigEntry, DS1IntervalEntry, +-- DS1CurrentEntry, DS1TotalEntry, DS1FracEntry +-- dperkins@scruznet.com + + RFC1232-MIB DEFINITIONS ::= BEGIN + + -- RFC1232 + -- May 91 + + IMPORTS + Counter + FROM RFC1155-SMI + DisplayString, transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + + -- this is the MIB module for ds1 objects + + ds1 OBJECT IDENTIFIER ::= { transmission 18 } + + -- the DS1 Configuration group + + -- Although the objects in this group are read-only, at the + -- agent's discretion they may be made read-write so that the + -- management station, when appropriately authorized, may + -- change the behavior of the CSU, e.g., to place the device + -- into a loopback state or emit a QRSS BER test. + + -- Implementation of this group is mandatory for all systems + -- that attach to a ds1. + + ds1ConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds1ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Configuration table." + ::= { ds1 1 } + + ds1ConfigEntry OBJECT-TYPE + SYNTAX Ds1ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Configuration table." + INDEX { ds1CSUIndex } + ::= { ds1ConfigTable 1 } + + Ds1ConfigEntry ::= + SEQUENCE { + ds1CSUIndex + INTEGER, + ds1Index + INTEGER, + ds1TimeElapsed + INTEGER (1..900), + ds1ValidIntervals + INTEGER (0..96), + ds1LineType + INTEGER, + ds1ZeroCoding + INTEGER, + ds1Loopback + INTEGER, + ds1SendCode + INTEGER, + ds1YellowAlarm + INTEGER, + ds1RedAlarm + INTEGER, + ds1CircuitIdentifier + DisplayString (SIZE (0..255)) + } + + ds1CSUIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the CSU + to which this entry is applicable." + ::= { ds1ConfigEntry 1 } + + ds1Index OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index value that uniquely identifies an + interface to a ds1. The interface identified by a + particular value of this index is the same + interface as identified by the same value an + ifIndex object instance." + ::= { ds1ConfigEntry 2 } + + ds1TimeElapsed OBJECT-TYPE + SYNTAX INTEGER (1..900) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of seconds that have elapsed since the + beginning of the current error-measurement period. + Any fraction is rounded up." + ::= { ds1ConfigEntry 3 } + + ds1ValidIntervals OBJECT-TYPE + SYNTAX INTEGER (0..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of previous intervals for which valid + data was collected. The value will be 96 unless + the CSU device was brought online within the last + 24 hours, in which case the value will be the + number of complete 15 minute intervals the CSU has + been online." + ::= { ds1ConfigEntry 4 } + + ds1LineType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ds1ESF(2), + ds1D4(3), + ds1ANSI-ESF(4), + ds1G704(5), + ds1G704-CRC(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the variety of DS1 Line + implementing this circuit. The type of circuit + affects the number of bits per second that the + circuit can reasonably carry, as well as the + interpretation of the usage and error statistics. + + The values, in sequence, describe: + TITLE: SPECIFICATION: + ds1ESF AT&T Extended SuperFrame DS1 [10] + ds1D4 AT&T D4 format DS1 [16], [17] + ds1ANSI-ESF ANSI Extended SuperFrame format [14] + ds1G704 CCITT Recommendation G.704 [12] + (section 2.1.3.2) + ds1G704-CRC CCITT Recommendation G.704 [12] + (section 2.1.3.1) + " + ::= { ds1ConfigEntry 5 } + + ds1ZeroCoding OBJECT-TYPE + SYNTAX INTEGER { + ds1JammedBit(1), + ds1B8ZS(2), + ds1InvertedHDLC(3), + ds1HDB3(4), + ds1ZBTSI(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable describes the variety of Zero Code + Suppression used on the link, which in turn + affects a number of its characteristics. + + ds1JammedBit refers the Jammed bit Zero Encoding, + in which the AT&T specification of at least one + pulse every 8 bit periods is literally implemented + by forcing a pulse in bit 8 of each channel. + Thus, only seven bits per channel, or 1.344 Mbps, + is available for data. + + ds1B8ZS refers to the use of a specified pattern + of normal bits and bipolar violations which are + used to replace a sequence of eight zero bits (see + [14]). In this context, all eight bits in a + channel are technically available for data, but + care must be taken with D4 encoded data to avoid + having HDLC Flag streams imitate spurious Yellow + Alarm conditions. Typically, one bit per frame is + ignored to force flag streams to rotate, thereby + avoiding this error type. CCITT Recommendation + G.703 [11] may be referred to for further + definition of these. + + ds1InvertedHDLC refers to the practice, common on + HDLC encoded DS1 data links, of inverting the data + between the serial interface chip and the CSU. + Since HDLC guarantees one zero every 6 bits in the + worst case, while the standards call for (in + effect) at least one pulse every eight, inverted + HDLC enjoys 4/24 one's density on the line, which + may improve the effective clock stability of a DS1 + line. As with B8ZS, all eight bits in a channel + are technically available for data, but care must + be taken with D4 encoded data to avoid having HDLC + Flag streams imitate spurious Yellow Alarm + conditions. Typically, one bit per frame is + ignored to force flag streams to rotate, thereby + avoiding this error type. + + ANSI Clear Channels may use ds1ZBTSI, or Zero Byte + Time Slot Interchange (see [14]). + + G.704 links, with or without CRC, use ds1HDB3 (see + [11]). " + ::= { ds1ConfigEntry 6 } + + ds1Loopback OBJECT-TYPE + SYNTAX INTEGER { + ds1NoLoop(1), + ds1LocalLoopbackLocalSide(2), + ds1LocalLoopbackRemoteSide(3), + ds1RemoteLoopbackLocalSide(4), + ds1RemoteLoopbackRemoteSide(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable represents the loopback state of + the CSU. Devices supporting read/write access + should return badValue in response to a requested + loopback state that the CSU does not support. The + values mean: + + ds1NoLoop + + Not in the loopback state. A device that is + not capable of performing a loopback on either + interface shall always return this as it's + value. + + ds1LocalLoopbackLocalSide + + Signal received from the local side of the + device is looped back at the local connector + (eg, without involving the CSU). + + ds1LocalLoopbackRemoteSide + + Signal received from the local side of the + device is looped back at the remote connector + (eg, through the CSU). + + ds1RemoteLoopbackLocalSide + + Signal received from the remote side of the + device is looped back at the local connector + (eg, through the CSU). + + ds1RemoteLoopbackRemoteSide + + Signal received from the remote side of the + device is looped back at the remote connector + (eg, without involving the CSU)." + ::= { ds1ConfigEntry 7 } + + ds1SendCode OBJECT-TYPE + SYNTAX INTEGER { + ds1OtherTest(1), + ds1SendNoCode(2), + ds1SendSetCode(3), + ds1SendResetCode(4), + ds1SendQRSS(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates what type of code is + being sent across the DS1 circuit by the CSU. The + values mean: + + ds1SendNoCode sending looped or normal data + ds1SendSetCode sending a loopback request + ds1SendResetCode sending a loopback termination request + ds1SendQRSS sending the BERT pattern described in + ANSI T1.403-1989 section 5.6 + ds1OtherTest sending a different BERT/BLERT pattern, + such as all zeroes, all ones, etc." + ::= { ds1ConfigEntry 8 } + + ds1YellowAlarm OBJECT-TYPE + SYNTAX INTEGER { + ds1NoYellowAlarm (1), + ds1YellowAlarm (2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates if a Yellow Alarm + condition exists. + + Note that G.704 interfaces do not support Yellow + Alarms. Accordingly, such agents should return + the value ds1NoYellowAlarm." + ::= { ds1ConfigEntry 9 } + + ds1RedAlarm OBJECT-TYPE + SYNTAX INTEGER { + ds1NoRedAlarm (1), + ds1RedAlarm (2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates if a Red Alarm condition + exists. + + Note that G.704 interfaces do not support Red + Alarms. Accordingly, such agents should return + the value ds1NoRedAlarm." + ::= { ds1ConfigEntry 10 } + + ds1CircuitIdentifier OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains the transmission vendor's + circuit identifier, for the purpose of + facilitating troubleshooting." + ::= { ds1ConfigEntry 11 } + + + -- the DS1 Interval group + + -- Implementation of this group is mandatory for all systems + -- that attach to a ds1. + + -- It is recognized that some currently deployed CSUs do not + -- record the entire set of statistics specified in this + -- group. Accordingly, some agents queried for these objects + -- may treat these objects as having an ACCESS clause value + -- of not-accessible. + + -- The DS1 Interval Table contains various statistics + -- collected by each CSU over the previous 24 hours of + -- operation. The past 24 hours are broken into 96 completed + -- 15 minute intervals. + + ds1IntervalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds1IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Interval table." + ::= { ds1 2 } + + ds1IntervalEntry OBJECT-TYPE + SYNTAX Ds1IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Interval table." + INDEX { ds1IntervalIndex, ds1IntervalNumber } + ::= { ds1IntervalTable 1 } + + Ds1IntervalEntry ::= + SEQUENCE { + ds1IntervalIndex + INTEGER, + ds1IntervalNumber + INTEGER (1..96), + ds1IntervalESs + Counter, + ds1IntervalSESs + Counter, + ds1IntervalSEFSs + Counter, + ds1IntervalUASs + Counter, + ds1IntervalCSSs + Counter, + ds1IntervalBPVs + Counter, + ds1IntervalCVs + Counter + } + + ds1IntervalIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the CSU + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an ds1CSUIndex object instance." + ::= { ds1IntervalEntry 1 } + + ds1IntervalNumber OBJECT-TYPE + SYNTAX INTEGER (1..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number between 1 and 96, where 1 is the most + recently completed 15 minute interval and 96 is + the least recently completed 15 minute interval + (assuming that all 96 intervals are valid)." + ::= { ds1IntervalEntry 2 } + + ds1IntervalESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Errored + Seconds, as defined by ANSI Draft Standard + T1M1.3/90 - 027R2[15], encountered by a DS1 CSU + during one of the previous 96 fifteen minute + intervals." + ::= { ds1IntervalEntry 3 } + + ds1IntervalSESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU during one of the previous 96 fifteen + minute intervals." + ::= { ds1IntervalEntry 4 } + + ds1IntervalSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, as defined by + ANSI Draft Standard T1M1.3/90 - 027R2[15], + encountered by a DS1 CSU during one of the + previous 96 fifteen minute intervals." + ::= { ds1IntervalEntry 5 } + + ds1IntervalUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU during one of the previous 96 fifteen + minute intervals." + ::= { ds1IntervalEntry 6 } + + ds1IntervalCSSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Controlled Slip Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU during one of the previous 96 fifteen + minute intervals." + ::= { ds1IntervalEntry 7 } + + ds1IntervalBPVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Bipolar + Violations, as defined by ANSI Draft Standard + T1M1.3/90 - 027R2[15], encountered by a DS1 CSU + during one of the previous 96 fifteen minute + intervals." + ::= { ds1IntervalEntry 8 } + + ds1IntervalCVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Code + Violation Error Events, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU during one of the previous 96 fifteen + minute intervals. + + Note that D4 and G.704 (section 2.1.3.2) + interfaces do not support Code Violation Error + Events. Accordingly, such agents may treat this + object as having an ACCESS clause value of not- + accessible." + ::= { ds1IntervalEntry 9 } + + + -- the DS1 Current group + + -- Implementation of this group is mandatory for all systems + -- that attach to a ds1. + + -- It is recognized that some currently deployed CSUs do not + -- record the entire set of statistics specified in this + -- group. Accordingly, some agents queried for these objects + -- may treat these objects as having an ACCESS clause value + -- of not-accessible. + + -- The DS1 current table contains various statistics being + -- collected for the current 15 minute interval. + + ds1CurrentTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds1CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Current table." + ::= { ds1 3 } + + ds1CurrentEntry OBJECT-TYPE + SYNTAX Ds1CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Current table." + INDEX { ds1CurrentIndex } + ::= { ds1CurrentTable 1 } + + Ds1CurrentEntry ::= + SEQUENCE { + ds1CurrentIndex + INTEGER, + ds1CurrentESs + Counter, + ds1CurrentSESs + Counter, + ds1CurrentSEFSs + Counter, + ds1CurrentUASs + Counter, + ds1CurrentCSSs + Counter, + ds1CurrentBPVs + Counter, + ds1CurrentCVs + Counter + } + + ds1CurrentIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the CSU + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an ds1CSUIndex object instance." + ::= { ds1CurrentEntry 1 } + + ds1CurrentESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Errored + Seconds, as defined by ANSI Draft Standard + T1M1.3/90 - 027R2[15], encountered by a DS1 CSU in + the current 15 minute interval." + ::= { ds1CurrentEntry 2 } + + ds1CurrentSESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the current 15 minute interval." + ::= { ds1CurrentEntry 3 } + + ds1CurrentSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, as defined by + ANSI Draft Standard T1M1.3/90 - 027R2[15], + encountered by a DS1 CSU in the current 15 minute + interval." + ::= { ds1CurrentEntry 4 } + + ds1CurrentUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the current 15 minute interval." + ::= { ds1CurrentEntry 5 } + + ds1CurrentCSSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Controlled Slip Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the current 15 minute interval." + ::= { ds1CurrentEntry 6 } + + ds1CurrentBPVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Bipolar + Violations, as defined by ANSI Draft Standard + T1M1.3/90 - 027R2[15], encountered by a DS1 CSU in + the current 15 minute interval." + ::= { ds1CurrentEntry 7 } + + ds1CurrentCVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Code + Violation Error Events, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the current 15 minute interval. + + Note that D4 and G.704 (section 2.1.3.2) + interfaces do not support Code Violation Error + Events. Accordingly, such agents may treat this + object as having an ACCESS clause value of not- + accessible." + ::= { ds1CurrentEntry 8 } + + + -- the DS1 Total group + + -- Implementation of this group is mandatory for all systems + -- that attach to a ds1. + + -- It is recognized that some currently deployed CSUs do not + -- record the entire set of statistics specified in this + -- group. Accordingly, some agents queried for these objects + -- may treat these objects as having an ACCESS clause value + -- of not-accessible. + + -- The DS1 Total Table contains the cumulative sum of the + -- various statistics for the 24 hour interval preceding the + -- first valid interval in the ds1CurrentTable. + + ds1TotalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds1TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Total table. 24 hour interval." + ::= { ds1 4 } + + ds1TotalEntry OBJECT-TYPE + SYNTAX Ds1TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Total table." + INDEX { ds1TotalIndex } + ::= { ds1TotalTable 1 } + + Ds1TotalEntry ::= + SEQUENCE { + ds1TotalIndex + INTEGER, + ds1TotalESs + Counter, + ds1TotalSESs + Counter, + ds1TotalSEFSs + Counter, + ds1TotalUASs + Counter, + ds1TotalCSSs + Counter, + ds1TotalBPVs + Counter, + ds1TotalCVs + Counter + } + + ds1TotalIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the CSU + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an ds1CSUIndex object instance." + ::= { ds1TotalEntry 1 } + + ds1TotalESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Errored + Seconds, as defined by ANSI Draft Standard + T1M1.3/90 - 027R2[15], encountered by a DS1 CSU in + the previous 24 hour interval" + ::= { ds1TotalEntry 2 } + + ds1TotalSESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the previous 24 hour interval." + ::= { ds1TotalEntry 3 } + + ds1TotalSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, as defined by + ANSI Draft Standard T1M1.3/90 - 027R2[15], + encountered by a DS1 CSU in the previous 24 hour + interval." + ::= { ds1TotalEntry 4 } + + ds1TotalUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the previous 24 hour interval." + ::= { ds1TotalEntry 5 } + + ds1TotalCSSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Controlled Slip Seconds, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the previous 24 hour interval." + ::= { ds1TotalEntry 6 } + + ds1TotalBPVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Bipolar + Violations, as defined by ANSI Draft Standard + T1M1.3/90 - 027R2[15], encountered by a DS1 CSU in + the previous 24 hour interval." + ::= { ds1TotalEntry 7 } + + ds1TotalCVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Code + Violation Error Events, as defined by ANSI Draft + Standard T1M1.3/90 - 027R2[15], encountered by a + DS1 CSU in the previous 24 hour interval. + + Note that D4 and G.704 (section 2.1.3.2) + interfaces do not support Code Violation Error + Events. Accordingly, such agents may treat this + object as having an ACCESS clause value of not- + accessible." + ::= { ds1TotalEntry 8 } + + + -- the DS1 Fractional group + + -- Implementation of this group is mandatory for those + -- systems utilizing a fractional DS1 capability + + + -- The DS1 fractional table contains identifies which DS1 + -- channels associated with a CSU are being used to support a + -- logical interface, i.e., an entry in the interfaces table + -- from the Internet-standard MIB. For Clear Channel + -- implementations, exactly one ifTable entry corresponds to + -- the CSU being managed. In this very typical case, the + -- variable ds1Index indicates the value of ifIndex which + -- corresponds to the interface being supported by a + -- particular CSU. + + -- However, for fractional DS1 implementations, the + -- correspondent value of ds1Index is 0, and for each DS1 + -- channel supporting a logical interface, there is an entry + -- in the DS1 fractional table which names a value for + -- ifIndex. + -- + -- For ds1ESF, ds1D4, and ds1ANSI-ESF, there are 24 legal + -- channels, numbered 1 through 24. + -- + -- For G.704, there are 32 legal channels, numbered 1 + -- through 32. ds1G704 can carry user data in channels 2 + -- through 32, channel 1 being an overhead channel. + -- ds1G704-CRC can carry user data in channels 2 through + -- 16 and 18 through 32, channels 1 and 17 being overhead + -- channels. + + ds1FracTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds1FracEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Fractional table." + ::= { ds1 5 } + + ds1FracEntry OBJECT-TYPE + SYNTAX Ds1FracEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Fractional table." + INDEX { ds1FracIndex, ds1FracNumber } + ::= { ds1FracTable 1 } + + Ds1FracEntry ::= + SEQUENCE { + ds1FracIndex + INTEGER, + ds1FracNumber + INTEGER (1..32), + ds1FracIfIndex + INTEGER + } + + ds1FracIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the CSU + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an ds1CSUIndex object instance." + ::= { ds1FracEntry 1 } + + ds1FracNumber OBJECT-TYPE + SYNTAX INTEGER (1..32) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The channel number for this entry." + ::= { ds1FracEntry 2 } + + ds1FracIfIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index value that uniquely identifies an + interface to a ds1. The interface identified by a + particular value of this index is the same + interface as identified by the same value an + ifIndex object instance." + ::= { ds1FracEntry 3 } + + END + diff --git a/pandora_console/attachment/mibs/RFC1233-MIB b/pandora_console/attachment/mibs/RFC1233-MIB new file mode 100644 index 0000000000..4334119f11 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1233-MIB @@ -0,0 +1,729 @@ +-- Changes for RFC1233 (DS3 MIB): +-- Changes from RFC-1239 applied which include: +-- removing import of experimental, +-- adding import of transmission, changing +-- ds3 to be { transmission 30 } +-- instead of { experimental 15 } +-- Changed defintions and references from "DS3" to "Ds3" for +-- the following: DS3ConfigEntry, DS3IntervalEntry, +-- DS3CurrentEntry, DS3TotalEntry +-- Question: should the description for ds3SendCode say +-- "DS3" instead of "DS1"? +-- dperkins@scruznet.com + + RFC1233-MIB DEFINITIONS ::= BEGIN + + -- RFC1233 + -- May 91 + + IMPORTS + Counter + FROM RFC1155-SMI + DisplayString, transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + + -- this is the MIB module for the DS3 objects + + ds3 OBJECT IDENTIFIER ::= { transmission 30 } + + -- the DS3 Configuration group + + -- Although the objects in this group are read-only, at + -- the agent's discretion they may be made read-write + -- so that the management station, when appropriately + -- authorized, may change the behavior of the CSU, + -- e.g., to place the device into a loopback state. + + -- Implementation of this group is mandatory for all + -- systems that attach to a DS3 Interface. + + ds3ConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds3ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Ds3 Configuration table." + ::= { ds3 1 } + + ds3ConfigEntry OBJECT-TYPE + SYNTAX Ds3ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Ds3 Configuration table." + INDEX { ds3CSUIndex } + ::= { ds3ConfigTable 1 } + + Ds3ConfigEntry ::= + SEQUENCE { + ds3CSUIndex + INTEGER, + ds3Index + INTEGER, + ds3TimeElapsed + INTEGER (1..900), + ds3ValidIntervals + INTEGER (0..96), + ds3LineType + INTEGER, + ds3ZeroCoding + INTEGER, + ds3Loopback + INTEGER, + ds3SendCode + INTEGER, + ds3YellowAlarm + INTEGER, + ds3RedAlarm + INTEGER, + ds3CircuitIdentifier + DisplayString (SIZE (0..255)) + } + + ds3CSUIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + CSU to which this entry is applicable." + ::= { ds3ConfigEntry 1 } + + ds3Index OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index value that uniquely identifies a DS3 + Interface. The interface identified by a + particular value of this index is the same + interface as identified by the same value an + ifIndex object instance." + ::= { ds3ConfigEntry 2 } + + ds3TimeElapsed OBJECT-TYPE + SYNTAX INTEGER (1..900) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of seconds, including partial + seconds, that have elapsed since the beginning of + the current error-measurement period." + ::= { ds3ConfigEntry 3 } + + ds3ValidIntervals OBJECT-TYPE + SYNTAX INTEGER (0..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of previous intervals for which valid + data was collected. The value will be 96 unless + the CSU device was brought online within the last + 24 hours, in which case the value will be the + number of complete 15 minute intervals the CSU has + been online." + ::= { ds3ConfigEntry 4 } + + ds3LineType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + ds3M23(2), + ds3SYNTRAN(3), + ds3CbitParity(4), + ds3ClearChannel(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the variety of DS3 C-bit + application implementing this circuit. The type + of circuit affects the interpretation of the usage + and error statistics. The rate of all of them is + 44.736 Mbps. + + The values, in sequence, describe: + TITLE: SPECIFICATION: + ds3M23 ANSI T1.107-1988 [10] + ds3SYNTRAN ANSI T1.107-1988 [10] + ds3C-bitParity ANSI T1.107a-1989 [10a] + ds3ClearChannel ANSI T1.102-1987 [9] + " + ::= { ds3ConfigEntry 5 } + + ds3ZeroCoding OBJECT-TYPE + SYNTAX INTEGER { + ds3other(1), + ds3B3ZS(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable describes the variety of Zero Code + Suppression used on the link, which in turn + affects a number of its characteristics. + ds3B3ZS refers to the use of specified patterns of + normal bits and bipolar violations which are used + to replace sequences of zero bits of a specified + length." + ::= { ds3ConfigEntry 6 } + + ds3Loopback OBJECT-TYPE + SYNTAX INTEGER { + ds3NoLoop(1), + ds3LocalLoopbackLocalSide(2), + ds3LocalLoopbackRemoteSide(3), + ds3RemoteLoopbackLocalSide(4), + ds3RemoteLoopbackRemoteSide(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable represents the loopback state of + the CSU. Devices supporting read/write access + should return badValue in response to a requested + loopback state that the CSU does not support. The + values mean: + + ds3NoLoop + Not in the loopback state. A device that is + not capable of performing a loopback on + either interface shall always return this as + it's value. + + ds3LocalLoopbackLocalSide + Signal received from the local side of the + device is looped back at the local connector + (eg, without involving the CSU). + + ds3LocalLoopbackRemoteSide + Signal received from the local side of the + device is looped back at the remote connector + (eg, through the CSU). + + ds3RemoteLoopbackLocalSide + Signal received from the remote side of the + device is looped back at the local connector + (eg, through the CSU). + + ds3RemoteLoopbackRemoteSide + Signal received from the remote side of the + device is looped back at the remote connector + (eg, without involving the CSU). + + Note that M23 and ClearChannel interfaces do not + support the Loopback managed object." + ::= { ds3ConfigEntry 7 } + + + ds3SendCode OBJECT-TYPE + SYNTAX INTEGER { + ds3SendTestMessage(1), + ds3SendNoCode(2), + ds3SendSetCode(3), + ds3SendLoopbackCode(4), + ds3SendResetCode(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates what type of code is + being sent across the DS1 circuit by the CSU. The + values mean: + + ds3SendNoCode + sending looped or normal data + + ds3SendSetCode + sending a loopback request + + ds3SendLoopbackCode + sending the code to choose a specific + loopback + + ds3SendResetCode + sending a loopback termination request + + ds3SendTestMessage + sending a Test pattern as defined in + T1.107a-1989 [10a]. + " + ::= { ds3ConfigEntry 8 } + + ds3YellowAlarm OBJECT-TYPE + SYNTAX INTEGER { + ds3YellowAlarm(1), + ds3NoYellowAlarm(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates if a Yellow + Alarm condition exists." + ::= { ds3ConfigEntry 9 } + + ds3RedAlarm OBJECT-TYPE + SYNTAX INTEGER { + ds3RedAlarm(1), + ds3NoRedAlarm(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates if a Red Alarm + condition exists." + ::= { ds3ConfigEntry 10 } + + ds3CircuitIdentifier OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable contains the transmission + vendor's circuit identifier, for the + purpose of facilitating troubleshooting." + ::= { ds3ConfigEntry 11 } + + + -- the DS3 Interval group + + -- Implementation of this group is mandatory for all + -- systems that attach to a DS3 interface. + + -- The DS3 Interval Table contains various statistics + -- collected by each CSU over the previous 24 hours of + -- operation. The past 24 hours are broken into 96 + -- completed 15 minute intervals. + + ds3IntervalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds3IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Interval table." + ::= { ds3 2 } + + ds3IntervalEntry OBJECT-TYPE + SYNTAX Ds3IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Interval table." + INDEX { ds3IntervalIndex, ds3IntervalNumber } + ::= { ds3IntervalTable 1 } + + Ds3IntervalEntry ::= + SEQUENCE { + ds3IntervalIndex + INTEGER, + ds3IntervalNumber + INTEGER (1..96), + ds3IntervalESs + Counter, + ds3IntervalSESs + Counter, + ds3IntervalSEFSs + Counter, + ds3IntervalUASs + Counter, + ds3IntervalCSSs + Counter, + ds3IntervalBPVs + Counter, + ds3IntervalCVs + Counter + } + + ds3IntervalIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + CSU to which this entry is applicable. The + interface identified by a particular value of + this index is the same interface as identified + by the same value an DS3CSUIndex object + instance." + ::= { ds3IntervalEntry 1 } + + ds3IntervalNumber OBJECT-TYPE + SYNTAX INTEGER (1..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number between 1 and 96, where 1 is the most + recently completed 15 minute interval and 96 is + the least recently completed 15 minutes + interval (assuming that all 96 intervals are + valid)." + ::= { ds3IntervalEntry 2 } + + + ds3IntervalESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Errored Seconds, as defined by [12], encountered + by a DS3 CSU in one of the previous 96, + individual 15 minute, intervals." + ::= { ds3IntervalEntry 3 } + + ds3IntervalSESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Seconds, as defined by [12], + encountered by a DS3 CSU in one of the previous + 96, individual 15 minute, intervals." + ::= { ds3IntervalEntry 4 } + + ds3IntervalSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, as defined by + [12], encountered by a DS3 CSU in one of the + previous 96, individual 15 minute, intervals." + ::= { ds3IntervalEntry 5 } + + ds3IntervalUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by [12], + encountered by a DS3 CSU in one of the previous + 96, individual 15 minute, intervals." + ::= { ds3IntervalEntry 6 } + + ds3IntervalCSSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Controlled Slip Seconds, as defined by [12], + encountered by a DS3 CSU in one of the previous + 96, individual 15 minute, intervals. + + Note that SYNTRAN interfaces are the only + interfaces that support the Controlled Slip + Seconds managed object. Accordingly, agents + configured with non-SYNTRAN interfaces may treat + this object as having an ACCESS clause value of + not-accessible." + ::= { ds3IntervalEntry 7} + + ds3IntervalBPVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Bipolar + Violations, as defined by [12], encountered by a + DS3 CSU in one of the previous 96, individual 15 + minute, intervals." + ::= { ds3IntervalEntry 8 } + + ds3IntervalCVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Coding + Violations, as defined by [12], encountered by a + DS3 CSU in one of the previous 96, individual 15 + minute, intervals." + ::= { ds3IntervalEntry 9 } + + + -- the DS3 Current group + + -- Implementation of this group is mandatory for all systems + -- that attach to a DS3 Interface. + + -- The DS3 current table contains various statistics being + -- collected for the current 15 minute interval. + + + ds3CurrentTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds3CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Current table." + ::= { ds3 3 } + + ds3CurrentEntry OBJECT-TYPE + SYNTAX Ds3CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Current table." + INDEX { ds3CurrentIndex } + ::= { ds3CurrentTable 1 } + + Ds3CurrentEntry ::= + SEQUENCE { + ds3CurrentIndex + INTEGER, + ds3CurrentESs + Counter, + ds3CurrentSESs + Counter, + ds3CurrentSEFSs + Counter, + ds3CurrentUASs + Counter, + ds3CurrentCSSs + Counter, + ds3CurrentBPVs + Counter, + ds3CurrentCVs + Counter + } + + ds3CurrentIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the CSU + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an DS3CSUIndex object instance." + ::= { ds3CurrentEntry 1 } + + ds3CurrentESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Errored + Seconds, as defined by [12], encountered by a DS3 + CSU in the current 15 minute interval." + ::= { ds3CurrentEntry 2 } + + ds3CurrentSESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Seconds, as defined by [12], + encountered by a DS3 CSU in the current 15 minute + interval." + ::= { ds3CurrentEntry 3 } + + ds3CurrentSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, as defined by + [12], encountered by a DS3 CSU in the current 15 + minute interval." + ::= { ds3CurrentEntry 4 } + + ds3CurrentUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by [12], + encountered by a DS3 CSU in the current 15 minute + interval." + ::= { ds3CurrentEntry 5 } + + ds3CurrentCSSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Controlled Slip Seconds, as defined by [12], + encountered by a DS3 CSU in the current 15 minute + interval. + + Note that SYNTRAN interfaces are the only + interfaces that support the Controlled Slip + Seconds managed object. Accordingly, agents + configured with non-SYNTRAN interfaces may treat + this object as having an ACCESS clause value of + not-accessible." + ::= { ds3CurrentEntry 6 } + + ds3CurrentBPVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Bipolar + Violations, as defined by [12], encountered by a + DS3 CSU in the current 15 minute interval." + ::= { ds3CurrentEntry 7} + + ds3CurrentCVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Coding + Violations, as defined by [12], encountered by a + DS3 CSU in the current 15 minute interval." + ::= { ds3CurrentEntry 8 } + + + -- the DS3 Total group + + -- Implementation of this group is mandatory for all systems + -- that attach to a DS3. + + -- The DS3 Total Table contains the cumulative sum of the + -- various statistics for the 24 hour interval preceding the + -- first valid interval in the DS3CurrentTable. + + ds3TotalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Ds3TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Total table. 24 hour interval." + ::= { ds3 4 } + + ds3TotalEntry OBJECT-TYPE + SYNTAX Ds3TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Total table." + INDEX { ds3TotalIndex } + ::= { ds3TotalTable 1 } + + Ds3TotalEntry ::= + SEQUENCE { + ds3TotalIndex + INTEGER, + ds3TotalESs + Counter, + ds3TotalSESs + Counter, + ds3TotalSEFSs + Counter, + ds3TotalUASs + Counter, + ds3TotalCSSs + Counter, + ds3TotalBPVs + Counter, + ds3TotalCVs + Counter + } + + ds3TotalIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the CSU + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an DS3CSUIndex object instance." + ::= { ds3TotalEntry 1 } + + ds3TotalESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Errored + Seconds, as defined by [12], encountered by a DS3 + CSU in the previous 24 hour interval." + ::= { ds3TotalEntry 2 } + + ds3TotalSESs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Seconds, as defined by [12], + encountered by a DS3 CSU in the previous 24 hour + interval." + ::= { ds3TotalEntry 3 } + + ds3TotalSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, as defined by + [12], encountered by a DS3 CSU in the previous 24 + hour interval." + ::= { ds3TotalEntry 4 } + + ds3TotalUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by [12], + encountered by a DS3 CSU in the previous 24 hour + interval." + ::= { ds3TotalEntry 5 } + + ds3TotalCSSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Controlled Slip Seconds, as defined by [12], + encountered by a DS3 CSU in the previous 24 hour + interval. + Note that SYNTRAN interfaces are the only + interfaces that support the Controlled Slip + Seconds managed object. Accordingly, agents + configured with non-SYNTRAN interfaces may treat + this object as having an ACCESS clause value of + not-accessible." + ::= { ds3TotalEntry 6 } + + ds3TotalBPVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Bipolar + Violations, as defined by [12], encountered by a + DS3 CSU in the previous 24 hour interval." + ::= { ds3TotalEntry 7 } + + ds3TotalCVs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Coding + Violations, as defined by [12], encountered by a + DS3 CSU in the previous 24 hour interval." + ::= { ds3TotalEntry 8 } + + END + diff --git a/pandora_console/attachment/mibs/RFC1253-MIB b/pandora_console/attachment/mibs/RFC1253-MIB new file mode 100644 index 0000000000..4d2acb5204 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1253-MIB @@ -0,0 +1,1608 @@ +-- Changes to rfc1253 (OSPF MIB): +-- Changed ospfAreaID in index clause for ospfAreaEntry to +-- ospfAreaId. +-- Changed ospfLSACount in definition for sequence OspfAreaEntry +-- to ospfAreaLSACount. +-- Suggestion: the DEFVAL clauses should be removed from +-- the objects that are counters. Some objects that +-- are gauges should probably not have DEFVAL clauses. +-- dperkins@scruznet.com + + RFC1253-MIB DEFINITIONS ::= BEGIN + + -- RFC1253 + -- August 91 + + IMPORTS + Counter, Gauge, IpAddress + FROM RFC1155-SMI + mib-2 + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- This MIB module uses the extended OBJECT-TYPE macro as + -- defined in [9]. + + ospf OBJECT IDENTIFIER ::= { mib-2 14 } + + -- The Area ID, in OSPF, has the same format as an IP Address, + -- but has the function of defining a summarization point for + -- Link State Advertisements + + AreaID ::= IpAddress + + -- The Router ID, in OSPF, has the same format as an IP Address, + -- but identifies the router independent of its IP Address. + + RouterID ::= IpAddress + + -- The OSPF Metric is defined as an unsigned value in the range + + Metric ::= INTEGER (1..'FFFF'h) + BigMetric ::= INTEGER (1..'FFFFFF'h) + + -- Boolean Values + + TruthValue ::= INTEGER { true (1), false (2) } + + -- Status Values + + Status ::= INTEGER { enabled (1), disabled (2) } + + -- Row Creation/Deletion Values + + Validation ::= INTEGER { valid (1), invalid (2) } + + -- Time Durations measured in seconds + + PositiveInteger ::= INTEGER (1..'FFFFFFFF'h) + HelloRange ::= INTEGER (1..'FFFF'h) + UpToMaxAge ::= INTEGER (1..3600) + + -- The range of ifIndex, i.e. (1..ifNumber) + + InterfaceIndex ::= INTEGER + + -- Potential Priorities for the Designated Router Election + + DesignatedRouterPriority ::= INTEGER (0..'FF'h) + + -- Type of Service is defined as a mapping to the IP Type of + -- Service Flags as defined in the Router Requirements + -- Document: + -- + -- D => Low Delay R => Reliable Route + -- T => High Bandwidth + + -- D T R TOS D T R TOS + -- 0 0 0 => 0 0 0 1 => 4 + -- 0 1 0 => 8 0 1 1 => 12 + -- 1 0 0 => 16 1 0 1 => 20 + -- 1 1 0 => 24 1 1 1 => 28 + + -- The remaining values are left for future definition. + + TOSType ::= INTEGER (0..31) + + -- OSPF General Variables + + -- These parameters apply globally to the Router's + -- OSPF Process. + + ospfGeneralGroup OBJECT IDENTIFIER ::= { ospf 1 } + + ospfRouterId OBJECT-TYPE + SYNTAX RouterID + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A 32-bit integer uniquely identifying the router in + the Autonomous System. + + By convention, to ensure uniqueness, this should + default to the value of one of the router's IP + interface addresses." + REFERENCE + "OSPF Version 2, C.1 Global parameters" + ::= { ospfGeneralGroup 1 } + + ospfAdminStat OBJECT-TYPE + SYNTAX Status + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The administrative status of OSPF in the router. The + value 'enabled' denotes that the OSPF Process is active + on at least one interface; 'disabled' disables it on + all interfaces." + ::= { ospfGeneralGroup 2 } + + ospfVersionNumber OBJECT-TYPE + SYNTAX INTEGER { version2 (2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current version number of the OSPF protocol is 2." + REFERENCE + "OSPF Version 2, Title" + ::= { ospfGeneralGroup 3 } + + ospfAreaBdrRtrStatus OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A flag to note whether this router is an area border + router." + REFERENCE + "OSPF Version 2, Section 3 Splitting the AS into Areas" + ::= { ospfGeneralGroup 4 } + + ospfASBdrRtrStatus OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A flag to note whether this router is an Autonomous + System border router." + REFERENCE + "OSPF Version 2, Section 3.3 Classification of routers" + ::= { ospfGeneralGroup 5 } + + ospfExternLSACount OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of external (LS type 5) link-state + advertisements in the link-state database." + REFERENCE + "OSPF Version 2, Appendix A.4.5 AS external link + advertisements" + ::= { ospfGeneralGroup 6 } + + ospfExternLSACksumSum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The 32-bit unsigned sum of the LS checksums of the + external link-state advertisements contained in the + link-state database. This sum can be used to determine + if there has been a change in a router's link state + database, and to compare the link-state database of two + routers." + ::= { ospfGeneralGroup 7 } + + ospfTOSSupport OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The router's support for type-of-service routing." + REFERENCE + "OSPF Version 2, Appendix F.1.2 Optional TOS support" + ::= { ospfGeneralGroup 8 } + + ospfOriginateNewLSAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of new link-state advertisements that have + been originated. This number is incremented each time + the router originates a new LSA." + ::= { ospfGeneralGroup 9 } + + ospfRxNewLSAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of link-state advertisements received + determined to be new instantiations. This number does + not include newer instantiations of self-originated + link-state advertisements." + ::= { ospfGeneralGroup 10 } + + + -- The OSPF Area Data Structure contains information + -- regarding the various areas. The interfaces and + -- virtual links are configured as part of these areas. + -- Area 0.0.0.0, by definition, is the Backbone Area + + ospfAreaTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfAreaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information describing the configured parameters and + cumulative statistics of the router's attached areas." + REFERENCE + "OSPF Version 2, Section 6 The Area Data Structure" + ::= { ospf 2 } + + ospfAreaEntry OBJECT-TYPE + SYNTAX OspfAreaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information describing the configured parameters and + cumulative statistics of one of the router's attached + areas." + INDEX { ospfAreaId } + ::= { ospfAreaTable 1 } + + OspfAreaEntry ::= + SEQUENCE { + ospfAreaId + AreaID, + ospfAuthType + INTEGER, + ospfImportASExtern + TruthValue, + ospfSpfRuns + Counter, + ospfAreaBdrRtrCount + Gauge, + ospfASBdrRtrCount + Gauge, + ospfAreaLSACount + Gauge, + ospfAreaLSACksumSum + INTEGER + } + + ospfAreaId OBJECT-TYPE + SYNTAX AreaID + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A 32-bit integer uniquely identifying an area. Area + ID 0.0.0.0 is used for the OSPF backbone." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaEntry 1 } + + ospfAuthType OBJECT-TYPE + SYNTAX INTEGER + -- none (0), + -- simplePassword (1) + -- reserved for specification by IANA (> 1) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The authentication type specified for an area. + Additional authentication types may be assigned locally + on a per Area basis." + REFERENCE + "OSPF Version 2, Appendix E Authentication" + DEFVAL { 0 } -- no authentication, by default + ::= { ospfAreaEntry 2 } + + ospfImportASExtern OBJECT-TYPE + SYNTAX TruthValue + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The area's support for importing AS external link- + state advertisements." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + DEFVAL { true } + ::= { ospfAreaEntry 3 } + + ospfSpfRuns OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times that the intra-area route table + has been calculated using this area's link-state + database. This is typically done using Dijkstra's + algorithm." + DEFVAL { 0 } + ::= { ospfAreaEntry 4 } + + ospfAreaBdrRtrCount OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of area border routers reachable + within this area. This is initially zero, and is + calculated in each SPF Pass." + DEFVAL { 0 } + ::= { ospfAreaEntry 5 } + + ospfASBdrRtrCount OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of Autonomous System border routers + reachable within this area. This is initially zero, + and is calculated in each SPF Pass." + DEFVAL { 0 } + ::= { ospfAreaEntry 6 } + + ospfAreaLSACount OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of link-state advertisements in this + area's link-state database, excluding AS External + LSA's." + DEFVAL { 0 } + ::= { ospfAreaEntry 7 } + + ospfAreaLSACksumSum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The 32-bit unsigned sum of the link-state + advertisements' LS checksums contained in this area's + link-state database. This sum excludes external (LS + type 5) link-state advertisements. The sum can be used + to determine if there has been a change in a router's + link state database, and to compare the link-state + database of two routers." + DEFVAL { 0 } + ::= { ospfAreaEntry 8 } + + + -- OSPF Area Default Metric Table + + -- The OSPF Area Default Metric Table describes the metrics + -- that a default Area Border Router will advertise into a + -- Stub area. + + ospfStubAreaTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfStubAreaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The set of metrics that will be advertised by a + default Area Border Router into a stub area." + REFERENCE + "OSPF Version 2, Appendix C.2, Area Parameters" + ::= { ospf 3 } + + ospfStubAreaEntry OBJECT-TYPE + SYNTAX OspfStubAreaEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The metric for a given Type of Service that will be + advertised by a default Area Border Router into a stub + area." + REFERENCE + "OSPF Version 2, Appendix C.2, Area Parameters" + INDEX { ospfStubAreaID, ospfStubTOS } + ::= { ospfStubAreaTable 1 } + + OspfStubAreaEntry ::= + SEQUENCE { + ospfStubAreaID + AreaID, + ospfStubTOS + TOSType, + ospfStubMetric + BigMetric, + ospfStubStatus + Validation + } + + ospfStubAreaID OBJECT-TYPE + SYNTAX AreaID + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The 32 bit identifier for the Stub Area. On creation, + this can be derived from the instance." + ::= { ospfStubAreaEntry 1 } + + ospfStubTOS OBJECT-TYPE + SYNTAX TOSType + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Type of Service associated with the metric. On + creation, this can be derived from the instance." + + ::= { ospfStubAreaEntry 2 } + + ospfStubMetric OBJECT-TYPE + SYNTAX BigMetric + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The metric value applied at the indicated type of + service. By default, this equals the least metric at + the type of service among the interfaces to other + areas." + ::= { ospfStubAreaEntry 3 } + + ospfStubStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable displays the validity or invalidity of + the entry. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect (row + removal) is implementation dependent." + DEFVAL { valid } + ::= { ospfStubAreaEntry 4 } + + + -- OSPF Link State Database + + -- The Link State Database contains the Link State + -- Advertisements from throughout the areas that the + -- device is attached to. + + ospfLsdbTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfLsdbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The OSPF Process's Links State Database." + REFERENCE + "OSPF Version 2, Section 12 Link State Advertisements" + ::= { ospf 4 } + + ospfLsdbEntry OBJECT-TYPE + SYNTAX OspfLsdbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A single Link State Advertisement." + INDEX { ospfLsdbAreaId, ospfLsdbType, + ospfLsdbLSID, ospfLsdbRouterId } + ::= { ospfLsdbTable 1 } + + OspfLsdbEntry ::= + SEQUENCE { + ospfLsdbAreaId + AreaID, + ospfLsdbType + INTEGER, + ospfLsdbLSID + IpAddress, + ospfLsdbRouterId + RouterID, + ospfLsdbSequence + INTEGER, + ospfLsdbAge + INTEGER, + ospfLsdbChecksum + INTEGER, + ospfLsdbAdvertisement + OCTET STRING + } + + ospfLsdbAreaId OBJECT-TYPE + SYNTAX AreaID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The 32 bit identifier of the Area from which the LSA + was received." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfLsdbEntry 1 } + + ospfLsdbType OBJECT-TYPE + SYNTAX INTEGER { + routerLink (1), + networkLink (2), + summaryLink (3), + asSummaryLink (4), + asExternalLink (5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of the link state advertisement. Each link + state type has a separate advertisement format." + REFERENCE + "OSPF Version 2, Appendix A.4.1 The Link State + Advertisement header" + ::= { ospfLsdbEntry 2 } + + ospfLsdbLSID OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Link State ID is an LS Type Specific field + containing either a Router ID or an IP Address; it + identifies the piece of the routing domain that is + being described by the advertisement." + REFERENCE + "OSPF Version 2, Section 12.1.4 Link State ID" + ::= { ospfLsdbEntry 3 } + + ospfLsdbRouterId OBJECT-TYPE + SYNTAX RouterID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The 32 bit number that uniquely identifies the + originating router in the Autonomous System." + REFERENCE + "OSPF Version 2, Appendix C.1 Global parameters" + ::= { ospfLsdbEntry 4 } + + -- Note that the OSPF Sequence Number is a 32 bit signed + -- integer. It starts with the value '80000001'h, + -- or -'7FFFFFFF'h, and increments until '7FFFFFFF'h + -- Thus, a typical sequence number will be very negative. + + ospfLsdbSequence OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The sequence number field is a signed 32-bit integer. + It is used to detect old and duplicate link state + advertisements. The space of sequence numbers is + linearly ordered. The larger the sequence number the + more recent the advertisement." + REFERENCE + "OSPF Version 2, Section 12.1.6 LS sequence number" + ::= { ospfLsdbEntry 5 } + + ospfLsdbAge OBJECT-TYPE + SYNTAX INTEGER -- Should be 0..MaxAge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field is the age of the link state advertisement + in seconds." + REFERENCE + "OSPF Version 2, Section 12.1.1 LS age" + ::= { ospfLsdbEntry 6 } + + ospfLsdbChecksum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This field is the checksum of the complete contents of + the advertisement, excepting the age field. The age + field is excepted so that an advertisement's age can be + incremented without updating the checksum. The + checksum used is the same that is used for ISO + connectionless datagrams; it is commonly referred to as + the Fletcher checksum." + REFERENCE + "OSPF Version 2, Section 12.1.7 LS checksum" + ::= { ospfLsdbEntry 7 } + + ospfLsdbAdvertisement OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The entire Link State Advertisement, including its + header." + REFERENCE + "OSPF Version 2, Section 12 Link State Advertisements" + ::= { ospfLsdbEntry 8 } + + + -- Address Range Table + + -- The Address Range Table acts as an adjunct to the Area + -- Table; It describes those Address Range Summaries that + -- are configured to be propagated from an Area to reduce + -- the amount of information about it which is known beyond + -- its borders. + + ospfAreaRangeTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfAreaRangeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A range if IP addresses specified by an IP address/IP + network mask pair. For example, class B address range + of X.X.X.X with a network mask of 255.255.0.0 includes + all IP addresses from X.X.0.0 to X.X.255.255" + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospf 5 } + + ospfAreaRangeEntry OBJECT-TYPE + SYNTAX OspfAreaRangeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A range if IP addresses specified by an IP address/IP + network mask pair. For example, class B address range + of X.X.X.X with a network mask of 255.255.0.0 includes + all IP addresses from X.X.0.0 to X.X.255.255" + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + INDEX { ospfAreaRangeAreaID, ospfAreaRangeNet } + ::= { ospfAreaRangeTable 1 } + + OspfAreaRangeEntry ::= + SEQUENCE { + ospfAreaRangeAreaID + AreaID, + ospfAreaRangeNet + IpAddress, + ospfAreaRangeMask + IpAddress, + ospfAreaRangeStatus + Validation + } + + ospfAreaRangeAreaID OBJECT-TYPE + SYNTAX AreaID + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Area the Address Range is to be found within." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaRangeEntry 1 } + + ospfAreaRangeNet OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IP Address of the Net or Subnet indicated by the + range." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaRangeEntry 2 } + + ospfAreaRangeMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Subnet Mask that pertains to the Net or Subnet." + REFERENCE + "OSPF Version 2, Appendix C.2 Area parameters" + ::= { ospfAreaRangeEntry 3 } + + ospfAreaRangeStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable displays the validity or invalidity of + the entry. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect (row + removal) is implementation dependent." + DEFVAL { valid } + ::= { ospfAreaRangeEntry 4 } + + + -- OSPF Host Table + + -- The Host/Metric Table indicates what hosts are directly + -- attached to the Router, and what metrics and types of + -- service should be advertised for them. + + ospfHostTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfHostEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The list of Hosts, and their metrics, that the router + will advertise as host routes." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route parameters" + ::= { ospf 6 } + + ospfHostEntry OBJECT-TYPE + SYNTAX OspfHostEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A metric to be advertised, for a given type of service, + when a given host is reachable." + INDEX { ospfHostIpAddress, ospfHostTOS } + ::= { ospfHostTable 1 } + + OspfHostEntry ::= + SEQUENCE { + ospfHostIpAddress + IpAddress, + ospfHostTOS + TOSType, + ospfHostMetric + Metric, + ospfHostStatus + Validation + } + + ospfHostIpAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IP Address of the Host." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route parameters" + ::= { ospfHostEntry 1 } + + ospfHostTOS OBJECT-TYPE + SYNTAX TOSType + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Type of Service of the route being configured." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route parameters" + ::= { ospfHostEntry 2 } + + ospfHostMetric OBJECT-TYPE + SYNTAX Metric + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Metric to be advertised." + REFERENCE + "OSPF Version 2, Appendix C.6 Host route parameters" + ::= { ospfHostEntry 3 } + + ospfHostStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable displays the validity or invalidity of + the entry. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect (row + removal) is implementation dependent." + DEFVAL { valid } + ::= { ospfHostEntry 4 } + + -- OSPF Interface Table + + -- The OSPF Interface Table augments the ifTable with OSPF + -- specific information. + + ospfIfTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfIfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The OSPF Interface Table describes the interfaces from + the viewpoint of OSPF." + REFERENCE + "OSPF Version 2, Appendix C.3 Router interface + parameters" + ::= { ospf 7 } + + ospfIfEntry OBJECT-TYPE + SYNTAX OspfIfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The OSPF Interface Entry describes one interface from + the viewpoint of OSPF." + INDEX { ospfIfIpAddress, ospfAddressLessIf } + ::= { ospfIfTable 1 } + + OspfIfEntry ::= + SEQUENCE { + ospfIfIpAddress + IpAddress, + ospfAddressLessIf + INTEGER, + ospfIfAreaId + AreaID, + ospfIfType + INTEGER, + ospfIfAdminStat + Status, + ospfIfRtrPriority + DesignatedRouterPriority, + ospfIfTransitDelay + UpToMaxAge, + ospfIfRetransInterval + UpToMaxAge, + ospfIfHelloInterval + HelloRange, + ospfIfRtrDeadInterval + PositiveInteger, + ospfIfPollInterval + PositiveInteger, + ospfIfState + INTEGER, + ospfIfDesignatedRouter + IpAddress, + ospfIfBackupDesignatedRouter + IpAddress, + ospfIfEvents + Counter, + ospfIfAuthKey + OCTET STRING + } + + ospfIfIpAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IP address of this OSPF interface." + ::= { ospfIfEntry 1 } + + ospfAddressLessIf OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "For the purpose of easing the instancing of addressed + and addressless interfaces; This variable takes the + value 0 on interfaces with IP Addresses, and the + corresponding value of ifIndex for interfaces having no + IP Address." + ::= { ospfIfEntry 2 } + + ospfIfAreaId OBJECT-TYPE + SYNTAX AreaID + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A 32-bit integer uniquely identifying the area to + which the interface connects. Area ID 0.0.0.0 is used + for the OSPF backbone." + DEFVAL { '00000000'h } -- 0.0.0.0 + ::= { ospfIfEntry 3 } + + ospfIfType OBJECT-TYPE + SYNTAX INTEGER { + broadcast (1), + nbma (2), + pointToPoint (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The OSPF interface type. + + By way of a default, this field may be intuited from + the corresponding value of ifType. Broadcast LANs, + such as Ethernet and IEEE 802.5, take the value + 'broadcast', X.25, Frame Relay, and similar + technologies take the value 'nbma', and links that are + definitively point to point take the value + 'pointToPoint'." + ::= { ospfIfEntry 4 } + + ospfIfAdminStat OBJECT-TYPE + SYNTAX Status + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The OSPF interface's administrative status. The value + 'enabled' denotes that neighbor relationships may be + formed on the interface, and the interface will be + advertised as an internal route to some area. The + value 'disabled' denotes that the interface is external + to OSPF." + DEFVAL { enabled } + ::= { ospfIfEntry 5 } + + ospfIfRtrPriority OBJECT-TYPE + SYNTAX DesignatedRouterPriority + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The priority of this interface. Used in multi-access + networks, this field is used in the designated router + election algorithm. The value 0 signifies that the + router is not eligible to become the designated router + on this particular network. In the event of a tie in + this value, routers will use their router id as a tie + breaker." + DEFVAL { 1 } + ::= { ospfIfEntry 6 } + + ospfIfTransitDelay OBJECT-TYPE + SYNTAX UpToMaxAge + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The estimated number of seconds it takes to transmit a + link- state update packet over this interface." + DEFVAL { 1 } + ::= { ospfIfEntry 7 } + + ospfIfRetransInterval OBJECT-TYPE + SYNTAX UpToMaxAge + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds between link-state advertisement + retransmissions, for adjacencies belonging to this + interface. This value is also used when retransmitting + database description and link-state request packets." + DEFVAL { 5 } + ::= { ospfIfEntry 8 } + + ospfIfHelloInterval OBJECT-TYPE + SYNTAX HelloRange + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The length of time, in seconds, between the Hello + packets that the router sends on the interface. This + value must be the same for all routers attached to a + common network." + DEFVAL { 10 } + ::= { ospfIfEntry 9 } + + ospfIfRtrDeadInterval OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds that a router's Hello packets + have not been seen before it's neighbors declare the + router down. This should be some multiple of the Hello + interval. This value must be the same for all routers + attached to a common network." + DEFVAL { 40 } + ::= { ospfIfEntry 10 } + + ospfIfPollInterval OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The larger time interval, in seconds, between the + Hello packets sent to an inactive non-broadcast multi- + access neighbor." + DEFVAL { 120 } + ::= { ospfIfEntry 11 } + + ospfIfState OBJECT-TYPE + SYNTAX INTEGER { + down (1), + loopback (2), + waiting (3), + pointToPoint (4), + designatedRouter (5), + backupDesignatedRouter (6), + otherDesignatedRouter (7) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The OSPF Interface State." + DEFVAL { down } + ::= { ospfIfEntry 12 } + + ospfIfDesignatedRouter OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP Address of the Designated Router." + DEFVAL { '00000000'h } -- 0.0.0.0 + ::= { ospfIfEntry 13 } + + ospfIfBackupDesignatedRouter OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP Address of the Backup Designated Router." + DEFVAL { '00000000'h } -- 0.0.0.0 + ::= { ospfIfEntry 14 } + + ospfIfEvents OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this OSPF interface has changed + its state, or an error has occurred." + DEFVAL { 0 } + ::= { ospfIfEntry 15 } + + ospfIfAuthKey OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Authentication Key. If the Area's Authorization + Type is simplePassword, and the key length is shorter + than 8 octets, the agent will left adjust and zero fill + to 8 octets. + + When read, ospfIfAuthKey always returns an Octet String + of length zero." + REFERENCE + "OSPF Version 2, Section 9 The Interface Data + Structure" + DEFVAL { '0000000000000000'h } -- 0.0.0.0.0.0.0.0 + ::= { ospfIfEntry 16 } + + + -- OSPF Interface Metric Table + + -- The Metric Table describes the metrics to be advertised + -- for a specified interface at the various types of service. + -- As such, this table is an adjunct of the OSPF Interface + -- Table. + + -- Types of service, as defined by RFC 791, have the ability + -- to request low delay, high bandwidth, or reliable linkage. + + -- For the purposes of this specification, the measure of + -- bandwidth + + -- Metric = 10^8 / ifSpeed + + -- is the default value. For multiple link interfaces, note + -- that ifSpeed is the sum of the individual link speeds. + -- This yields a number having the following typical values: + + -- Network Type/bit rate Metric + + -- >= 100 MBPS 1 + -- Ethernet/802.3 10 + -- E1 48 + -- T1 (ESF) 65 + -- 64 KBPS 1562 + -- 56 KBPS 1785 + -- 19.2 KBPS 5208 + -- 9.6 KBPS 10416 + + -- Routes that are not specified use the default (TOS 0) metric + + ospfIfMetricTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfIfMetricEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The TOS metrics for a non-virtual interface identified + by the interface index." + REFERENCE + "OSPF Version 2, Appendix C.3 Router interface + parameters" + ::= { ospf 8 } + + ospfIfMetricEntry OBJECT-TYPE + SYNTAX OspfIfMetricEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A particular TOS metric for a non-virtual interface + identified by the interface index." + REFERENCE + "OSPF Version 2, Appendix C.3 Router interface + parameters" + INDEX { ospfIfMetricIpAddress, + ospfIfMetricAddressLessIf, + ospfIfMetricTOS } + ::= { ospfIfMetricTable 1 } + + OspfIfMetricEntry ::= + SEQUENCE { + ospfIfMetricIpAddress + IpAddress, + ospfIfMetricAddressLessIf + INTEGER, + ospfIfMetricTOS + TOSType, + ospfIfMetricMetric + Metric, + ospfIfMetricStatus + Validation + } + + ospfIfMetricIpAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IP address of this OSPF interface. On row + creation, this can be derived from the instance." + ::= { ospfIfMetricEntry 1 } + + ospfIfMetricAddressLessIf OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "For the purpose of easing the instancing of addressed + and addressless interfaces; This variable takes the + value 0 on interfaces with IP Addresses, and the value + of ifIndex for interfaces having no IP Address. On row + creation, this can be derived from the instance." + ::= { ospfIfMetricEntry 2 } + + ospfIfMetricTOS OBJECT-TYPE + SYNTAX TOSType + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of service metric being referenced. On row + creation, this can be derived from the instance." + ::= { ospfIfMetricEntry 3 } + + ospfIfMetricMetric OBJECT-TYPE + SYNTAX Metric + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The metric of using this type of service on this + interface. The default value of the TOS 0 Metric is + 10^8 / ifSpeed. + + The value FFFF is distinguished to mean 'no route via + this TOS'." + ::= { ospfIfMetricEntry 4 } + + ospfIfMetricStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable displays the validity or invalidity of + the entry. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect (row + removal) is implementation dependent." + DEFVAL { valid } + ::= { ospfIfMetricEntry 5 } + + + -- OSPF Virtual Interface Table + + -- The Virtual Interface Table describes the virtual + -- links that the OSPF Process is configured to + -- carry on. + + ospfVirtIfTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfVirtIfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about this router's virtual interfaces." + REFERENCE + "OSPF Version 2, Appendix C.4 Virtual link parameters" + ::= { ospf 9 } + + ospfVirtIfEntry OBJECT-TYPE + SYNTAX OspfVirtIfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a single Virtual Interface." + INDEX { ospfVirtIfAreaID, ospfVirtIfNeighbor } + ::= { ospfVirtIfTable 1 } + + OspfVirtIfEntry ::= + SEQUENCE { + ospfVirtIfAreaID + AreaID, + ospfVirtIfNeighbor + RouterID, + ospfVirtIfTransitDelay + UpToMaxAge, + ospfVirtIfRetransInterval + UpToMaxAge, + ospfVirtIfHelloInterval + HelloRange, + ospfVirtIfRtrDeadInterval + PositiveInteger, + ospfVirtIfState + INTEGER, + ospfVirtIfEvents + Counter, + ospfVirtIfAuthKey + OCTET STRING, + ospfVirtIfStatus + Validation + } + + ospfVirtIfAreaID OBJECT-TYPE + SYNTAX AreaID + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Transit Area that the Virtual Link traverses. By + definition, this is not 0.0.0.0" + ::= { ospfVirtIfEntry 1 } + + ospfVirtIfNeighbor OBJECT-TYPE + SYNTAX RouterID + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Router ID of the Virtual Neighbor." + ::= { ospfVirtIfEntry 2 } + + ospfVirtIfTransitDelay OBJECT-TYPE + SYNTAX UpToMaxAge + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The estimated number of seconds it takes to transmit a + link- state update packet over this interface." + DEFVAL { 1 } + ::= { ospfVirtIfEntry 3 } + + ospfVirtIfRetransInterval OBJECT-TYPE + SYNTAX UpToMaxAge + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds between link-state advertisement + retransmissions, for adjacencies belonging to this + interface. This value is also used when retransmitting + database description and link-state request packets. + This value should be well over the expected round-trip + time." + DEFVAL { 5 } + ::= { ospfVirtIfEntry 4 } + + ospfVirtIfHelloInterval OBJECT-TYPE + SYNTAX HelloRange + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The length of time, in seconds, between the Hello + packets that the router sends on the interface. This + value must be the same for the virtual neighbor." + DEFVAL { 10 } + ::= { ospfVirtIfEntry 5 } + + ospfVirtIfRtrDeadInterval OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of seconds that a router's Hello packets + have not been seen before it's neighbors declare the + router down. This should be some multiple of the Hello + interval. This value must be the same for the virtual + neighbor." + DEFVAL { 60 } + ::= { ospfVirtIfEntry 6 } + + ospfVirtIfState OBJECT-TYPE + SYNTAX INTEGER { + down (1), -- these use the same encoding + pointToPoint (4) -- as the ospfIfTable + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "OSPF virtual interface states." + DEFVAL { down } + ::= { ospfVirtIfEntry 7 } + + ospfVirtIfEvents OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of state changes or error events on this + Virtual Link" + DEFVAL { 0 } + ::= { ospfVirtIfEntry 8 } + + ospfVirtIfAuthKey OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Authentication Type is simplePassword, the device + will left adjust and zero fill to 8 octets. + + When read, ospfVifAuthKey always returns a string of + length zero." + REFERENCE + "OSPF Version 2, Section 9 The Interface Data + Structure" + DEFVAL { '0000000000000000'h } -- 0.0.0.0.0.0.0.0 + ::= { ospfVirtIfEntry 9 } + + ospfVirtIfStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable displays the validity or invalidity of + the entry. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect (row + removal) is implementation dependent." + DEFVAL { valid } + ::= { ospfVirtIfEntry 10 } + + + -- OSPF Neighbor Table + + -- The OSPF Neighbor Table describes all neighbors in + -- the locality of the subject router. + + ospfNbrTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfNbrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of non-virtual neighbor information." + REFERENCE + "OSPF Version 2, Section 10 The Neighbor Data + Structure" + ::= { ospf 10 } + + ospfNbrEntry OBJECT-TYPE + SYNTAX OspfNbrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The information regarding a single neighbor." + REFERENCE + "OSPF Version 2, Section 10 The Neighbor Data + Structure" + INDEX { ospfNbrIpAddr, ospfNbrAddressLessIndex } + ::= { ospfNbrTable 1 } + + OspfNbrEntry ::= + SEQUENCE { + ospfNbrIpAddr + IpAddress, + ospfNbrAddressLessIndex + InterfaceIndex, + ospfNbrRtrId + RouterID, + ospfNbrOptions + INTEGER, + ospfNbrPriority + DesignatedRouterPriority, + ospfNbrState + INTEGER, + ospfNbrEvents + Counter, + ospfNbrLSRetransQLen + Gauge, + ospfNBMANbrStatus + Validation + } + + ospfNbrIpAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IP address of this neighbor." + ::= { ospfNbrEntry 1 } + + ospfNbrAddressLessIndex OBJECT-TYPE + SYNTAX InterfaceIndex + ACCESS read-write + STATUS mandatory + DESCRIPTION + " On an interface having an IP Address, zero. On + addressless interfaces, the corresponding value of + ifIndex in the Internet Standard MIB. On row creation, + this can be derived from the instance." + ::= { ospfNbrEntry 2 } + + ospfNbrRtrId OBJECT-TYPE + SYNTAX RouterID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A 32-bit integer (represented as a type IpAddress) + uniquely identifying the neighboring router in the + Autonomous System." + DEFVAL { '00000000'h } -- 0.0.0.0 + ::= { ospfNbrEntry 3 } + + ospfNbrOptions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A Bit Mask corresponding to the neighbor's options + field. + + Bit 0, if set, indicates that the area accepts and + operates on external information; if zero, it is a stub + area. + + Bit 1, if set, indicates that the system will operate + on Type of Service metrics other than TOS 0. If zero, + the neighbor will ignore all metrics except the TOS 0 + metric." + REFERENCE + "OSPF Version 2, Section 12.1.2 Options" + DEFVAL { 0 } + ::= { ospfNbrEntry 4 } + + ospfNbrPriority OBJECT-TYPE + SYNTAX DesignatedRouterPriority + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The priority of this neighbor in the designated router + election algorithm. The value 0 signifies that the + neighbor is not eligible to become the designated + router on this particular network." + DEFVAL { 1 } + ::= { ospfNbrEntry 5 } + + ospfNbrState OBJECT-TYPE + SYNTAX INTEGER { + down (1), + attempt (2), + init (3), + twoWay (4), + exchangeStart (5), + exchange (6), + loading (7), + full (8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The State of the relationship with this Neighbor." + REFERENCE + "OSPF Version 2, Section 10.1 Neighbor States" + DEFVAL { down } + ::= { ospfNbrEntry 6 } + + ospfNbrEvents OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this neighbor relationship has + changed state, or an error has occurred." + DEFVAL { 0 } + ::= { ospfNbrEntry 7 } + + ospfNbrLSRetransQLen OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current length of the retransmission queue." + DEFVAL { 0 } + ::= { ospfNbrEntry 8 } + + ospfNBMANbrStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable displays the validity or invalidity of + the entry. Setting it to 'invalid' has the effect of + rendering it inoperative. The internal effect (row + removal) is implementation dependent." + DEFVAL { valid } + ::= { ospfNbrEntry 9 } + + + -- OSPF Virtual Neighbor Table + + -- This table describes all virtual neighbors. + -- Since Virtual Links are configured in the + -- virtual interface table, this table is read-only. + + ospfVirtNbrTable OBJECT-TYPE + SYNTAX SEQUENCE OF OspfVirtNbrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of virtual neighbor information." + REFERENCE + "OSPF Version 2, Section 15 Virtual Links" + ::= { ospf 11 } + + ospfVirtNbrEntry OBJECT-TYPE + SYNTAX OspfVirtNbrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Virtual neighbor information." + INDEX { ospfVirtNbrArea, ospfVirtNbrRtrId } + ::= { ospfVirtNbrTable 1 } + + OspfVirtNbrEntry ::= + SEQUENCE { + ospfVirtNbrArea + AreaID, + ospfVirtNbrRtrId + RouterID, + ospfVirtNbrIpAddr + IpAddress, + ospfVirtNbrOptions + INTEGER, + ospfVirtNbrState + INTEGER, + ospfVirtNbrEvents + Counter, + ospfVirtNbrLSRetransQLen + Gauge + } + + ospfVirtNbrArea OBJECT-TYPE + SYNTAX AreaID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Transit Area Identifier." + ::= { ospfVirtNbrEntry 1 } + + ospfVirtNbrRtrId OBJECT-TYPE + SYNTAX RouterID + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A 32-bit integer uniquely identifying the neighboring + router in the Autonomous System." + ::= { ospfVirtNbrEntry 2 } + + ospfVirtNbrIpAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address this Virtual Neighbor is using." + ::= { ospfVirtNbrEntry 3 } + + ospfVirtNbrOptions OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A bit map corresponding to the neighbor's options + field. Thus, Bit 1, if set, indicates that the + neighbor supports Type of Service Routing; if zero, no + metrics other than TOS 0 are in use by the neighbor." + ::= { ospfVirtNbrEntry 4 } + + ospfVirtNbrState OBJECT-TYPE + SYNTAX INTEGER { + down (1), + attempt (2), + init (3), + twoWay (4), + exchangeStart (5), + exchange (6), + loading (7), + full (8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the Virtual Neighbor Relationship." + ::= { ospfVirtNbrEntry 5 } + + ospfVirtNbrEvents OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this virtual link has changed its + state, or an error has occurred." + ::= { ospfVirtNbrEntry 6 } + + ospfVirtNbrLSRetransQLen OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current length of the retransmission queue." + ::= { ospfVirtNbrEntry 7 } + + END diff --git a/pandora_console/attachment/mibs/RFC1304-MIB b/pandora_console/attachment/mibs/RFC1304-MIB new file mode 100644 index 0000000000..61f2f99872 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1304-MIB @@ -0,0 +1,913 @@ +-- Changes for RFC1304 (SIP MIB) +-- no changes needed. +-- dperkins@scruznet.com + + + RFC1304-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter, TimeTicks, IpAddress + FROM RFC1155-SMI + transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- This MIB module uses the extended OBJECT-TYPE macro + -- as defined in RFC-1212. + + -- This is the MIB module for the SIP objects. + + + sip OBJECT IDENTIFIER ::= { transmission 31 } + + -- All representations of SMDS addresses in this MIB + -- module use, as a textual convention (i.e., this + -- convention does not affect their encoding), the + -- data type: + + SMDSAddress ::= OCTET STRING (SIZE (8)) + -- the 60-bit SMDS address, preceded by 4 bits with the + -- following values: + -- "1100" when representing an individual address + -- "1110" when representing a group address + + + -- The SIP Level 3 group + -- Implementation of the SIP Level 3 group is mandatory + -- for all systems implementing SIP Level 3. + + sipL3Table OBJECT-TYPE + SYNTAX SEQUENCE OF SipL3Entry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains SIP L3 parameters and + state variables, one entry per SIP port." + ::= { sip 1 } + + sipL3Entry OBJECT-TYPE + SYNTAX SipL3Entry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This list contains SIP L3 parameters and + state variables." + INDEX { sipL3Index } + ::= { sipL3Table 1 } + + SipL3Entry ::= SEQUENCE { + sipL3Index + INTEGER, + sipL3ReceivedIndividualDAs + Counter, + sipL3ReceivedGAs + Counter, + sipL3UnrecognizedIndividualDAs + Counter, + sipL3UnrecognizedGAs + Counter, + sipL3SentIndividualDAs + Counter, + sipL3SentGAs + Counter, + sipL3Errors + Counter, + sipL3InvalidSMDSAddressTypes + Counter, + sipL3VersionSupport + INTEGER + } + + sipL3Index OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the SIP + port interface for which this entry contains + management information. The value of this + object for a particular interface has the same + value as the ifIndex object, defined in RFC + 1156 and RFC 1213, for the same interface." + ::= { sipL3Entry 1 } + + sipL3ReceivedIndividualDAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of individually addressed SIP + Level 3 PDUs received from the remote system + across the SNI. The total includes only + unerrored L3PDUs." + ::= { sipL3Entry 2 } + + sipL3ReceivedGAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of group addressed SIP Level 3 + PDUs received from the remote system across the + SNI. The total includes only unerrored L3PDUs." + ::= { sipL3Entry 3 } + + sipL3UnrecognizedIndividualDAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of SIP Level 3 PDUs received from the + remote system with invalid or unknown individual + destination addresses (Destination Address + Screening violations are not included). See SMDS + Subscription MIB module." + ::= { sipL3Entry 4 } + + sipL3UnrecognizedGAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of SIP Level 3 PDUs received from the + remote system with invalid or unknown group + addresses. (Destination Address Screening + violations are not included). See SMDS + Subscription MIB module." + ::= { sipL3Entry 5 } + + sipL3SentIndividualDAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of individually addressed SIP Level 3 + PDUs that have been sent by this system across the + SNI." + ::= { sipL3Entry 6 } + + sipL3SentGAs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of group addressed SIP L3PDUs that + have been sent by this system across the SNI." + ::= { sipL3Entry 7 } + + -- The total number of SIP L3PDU errors can be calculated as + -- (Syntactic errors + Semantic Service errors ) + -- Syntactic errors include: + -- sipL3Errors + -- Latest occurrences of syntactic error types are logged in + -- sipL3PDUErrorTable. + -- Semantic Service errors include: + -- sipL3UnrecognizedIndividualDAs + -- sipL3UnrecognizedGAs + -- sipL3InvalidSMDSAddressTypes + -- Note that public networks supporting SMDS may discard + -- SIP L3PDUs due to subscription violations. Related + -- managed objects are defined in Definitions of Managed + -- Objects for SMDS Subscription. + + + sipL3Errors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of SIP Level 3 PDUs received + from the remote system that were discovered to + have errors (including protocol processing and bit + errors but excluding addressing-related errors) + and were discarded. Includes both group addressed + L3PDUs and L3PDUs containing an individual + destination address." + ::= { sipL3Entry 8 } + + sipL3InvalidSMDSAddressTypes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of SIP Level 3 PDUs received from the + remote system that had the Source or Destination + Address_Type subfields, (the four most significant + bits of the 64 bit address field), not equal to + the value 1100 or 1110. Also, an error is + considered to have occurred if the Address_Type + field for a Source Address, the four most + significant bits of the 64 bits, is equal to 1110 + (a group address)." + ::= { sipL3Entry 9 } + + sipL3VersionSupport OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A value which indicates the version(s) of SIP + that this interface supports. The value is a sum. + This sum initially takes the value zero. For each + version, V, that this interface supports, 2 raised + to (V - 1) is added to the sum. For example, a + port supporting versions 1 and 2 would have a + value of (2^(1-1)+2^(2-1))=3. The + sipL3VersionSupport is effectively a bit mask with + Version 1 equal to the least significant bit + (LSB)." + ::= { sipL3Entry 10 } + + + -- The SIP Level 2 group + -- Implementation of the SIP Level 2 group is mandatory + -- for all systems implementing SIP Level 2. + + + sipL2Table OBJECT-TYPE + SYNTAX SEQUENCE OF SipL2Entry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains SIP L2PDU parameters and + state variables, one entry per SIP port." + ::= { sip 2 } + + sipL2Entry OBJECT-TYPE + SYNTAX SipL2Entry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This list contains SIP L2 parameters and state + variables." + INDEX { sipL2Index } + ::= { sipL2Table 1 } + + SipL2Entry ::= SEQUENCE { + sipL2Index + INTEGER, + sipL2ReceivedCounts + Counter, + sipL2SentCounts + Counter, + sipL2HcsOrCRCErrors + Counter, + sipL2PayloadLengthErrors + Counter, + sipL2SequenceNumberErrors + Counter, + sipL2MidCurrentlyActiveErrors + Counter, + sipL2BomOrSSMsMIDErrors + Counter, + sipL2EomsMIDErrors + Counter + } + + sipL2Index OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the SIP port + interface for which this entry contains management + information. The value of this object for a + particular interface has the same value as the + ifIndex object, defined in RFC 1156 and RFC 1213, + for the same interface." + ::= { sipL2Entry 1 } + + sipL2ReceivedCounts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of SIP Level 2 PDUs received from the + remote system across the SNI. The total includes + only unerrored L2PDUs." + ::= { sipL2Entry 2 } + + sipL2SentCounts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of SIP Level 2 PDUs that have been + sent by this system across the SNI." + ::= { sipL2Entry 3 } + + -- The total number of SIP L2PDU errors can be calculated as + -- the sum of: + -- sipL2HcsOrCRCErrors + -- sipL2PayloadLengthErrors + -- sipL2SequenceNumberErrors + -- sipL2MidCurrentlyActiveErrors + -- sipL2BomOrSSMsMIDErrors + -- sipL2EomsMIDErrors + + sipL2HcsOrCRCErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received SIP Level 2 PDUs that were + discovered to have either a Header Check Sequence + error or a Payload CRC violation." + ::= { sipL2Entry 4 } + + sipL2PayloadLengthErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received SIP Level 2 PDUs that had + Payload Length errors that fall in the following + specifications: + - SSM L2_PDU payload length field value less + - than 28 octets or greater than 44 octets, + + - BOM or COM L2_PDU payload length field not + - equal to 44 octets, + + - EOM L2_PDU payload length field value less + - than 4 octets or greater than 44 octets." + ::= { sipL2Entry 5 } + + sipL2SequenceNumberErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received SIP Level 2 PDUs that had + a sequence number within the L2PDU not equal to + the expected sequence number of the SMDS SS + receive process." + ::= { sipL2Entry 6 } + + sipL2MidCurrentlyActiveErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received SIP Level 2 PDUs that are + BOMs for which an active receive process is + already started." + ::= { sipL2Entry 7 } + + sipL2BomOrSSMsMIDErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received SIP Level 2 PDUs that are + SSMs with a MID not equal to zero or are BOMs with + MIDs equal to zero." + ::= { sipL2Entry 8 } + + sipL2EomsMIDErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of received SIP Level 2 PDUs that are + EOMs for which there is no active receive process + for the MID (i.e., the receipt of an EOM which + does not correspond to a BOM) OR the EOM has a MID + equal to zero." + ::= { sipL2Entry 9 } + + -- The SIP PLCP group + -- Implementation of one of these groups is mandatory + -- if the PLCP is implemented. + + sipPLCP OBJECT IDENTIFIER ::= { sip 3 } + + + -- The SIP DS1 PLCP group + -- Implementation of this group is mandatory + -- if the DS1 PLCP is implemented. + + sipDS1PLCPTable OBJECT-TYPE + SYNTAX SEQUENCE OF SipDS1PLCPEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains SIP DS1 PLCP parameters and + state variables, one entry per SIP port." + ::= { sipPLCP 1 } + + sipDS1PLCPEntry OBJECT-TYPE + SYNTAX SipDS1PLCPEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This list contains SIP DS1 PLCP parameters and + state variables." + INDEX { sipDS1PLCPIndex } + ::= { sipDS1PLCPTable 1 } + + SipDS1PLCPEntry ::= SEQUENCE { + sipDS1PLCPIndex + INTEGER, + sipDS1PLCPSEFSs + Counter, + sipDS1PLCPAlarmState + INTEGER, + sipDS1PLCPUASs + Counter + } + + + sipDS1PLCPIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the SIP port + interface for which this entry contains management + information. The value of this object for a + particular interface has the same value as the + ifIndex object, defined in RFC 1156 and RFC 1213, + for the same interface." + ::= { sipDS1PLCPEntry 1 } + + + sipDS1PLCPSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A DS1 Severely Errored Framing Second (SEFS) is a + count of one-second intervals containing one or + more SEF events. A Severely Errored Framing (SEF) + event is declared when an error in the A1 octet + and an error in the A2 octet of a framing octet + pair (i.e., errors in both framing octets), or two + consecutive invalid and/or nonsequential Path + Overhead Identifier octets are detected." + ::= { sipDS1PLCPEntry 2 } + + sipDS1PLCPAlarmState OBJECT-TYPE + SYNTAX INTEGER { + noAlarm (1), + receivedFarEndAlarm (2), + incomingLOF (3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates if there is an alarm + present for the DS1 PLCP. The value + receivedFarEndAlarm means that the DS1 PLCP has + received an incoming Yellow Signal, the value + incomingLOF means that the DS1 PLCP has declared a + loss of frame (LOF) failure condition, and the + value noAlarm means that there are no alarms + present. See TR-TSV-000773 for a description of + alarm states." + ::= { sipDS1PLCPEntry 3 } + + + sipDS1PLCPUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by TR-TSV-000773, + encountered by the PLCP." + ::= { sipDS1PLCPEntry 4 } + + + -- The SIP DS3 PLCP group + -- Implementation of this group is mandatory + -- if the DS3 PLCP is implemented. + + sipDS3PLCPTable OBJECT-TYPE + SYNTAX SEQUENCE OF SipDS3PLCPEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains SIP DS3 PLCP parameters and + state variables, one entry per SIP port." + ::= { sipPLCP 2 } + + sipDS3PLCPEntry OBJECT-TYPE + SYNTAX SipDS3PLCPEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This list contains SIP DS3 PLCP parameters and + state variables." + INDEX { sipDS3PLCPIndex } + ::= { sipDS3PLCPTable 1 } + + SipDS3PLCPEntry ::= SEQUENCE { + sipDS3PLCPIndex + INTEGER, + sipDS3PLCPSEFSs + Counter, + sipDS3PLCPAlarmState + INTEGER, + sipDS3PLCPUASs + Counter + } + + + sipDS3PLCPIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the SIP port + interface for which this entry contains management + information. The value of this object for a + particular interface has the same value as the + ifIndex object, defined in RFC 1156 and RFC 1213, + for the same interface." + ::= { sipDS3PLCPEntry 1 } + + sipDS3PLCPSEFSs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A DS3 Severely Errored Framing Second (SEFS) is a + count of one-second intervals containing one or + more SEF events. A Severely Errored Framing (SEF) + event is declared when an error in the A1 octet + and an error in the A2 octet of a framing octet + pair (i.e., errors in both framing octets), or two + consecutive invalid and/or nonsequential Path + Overhead Identifier octets are detected." + ::= { sipDS3PLCPEntry 2 } + + sipDS3PLCPAlarmState OBJECT-TYPE + SYNTAX INTEGER { + noAlarm (1), + receivedFarEndAlarm (2), + incomingLOF (3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates if there is an alarm + present for the DS3 PLCP. The value + receivedFarEndAlarm means that the DS3 PLCP has + received an incoming Yellow Signal, the value + incomingLOF means that the DS3 PLCP has declared a + loss of frame (LOF) failure condition, and the + value noAlarm means that there are no alarms + present. See TR-TSV-000773 for a description of + alarm states." + ::= { sipDS3PLCPEntry 3 } + + + sipDS3PLCPUASs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by TR-TSV-000773, + encountered by the PLCP." + ::= { sipDS3PLCPEntry 4 } + + + -- The SMDS Applications group + -- Applications that have been identified for this group are: + -- * IP-over-SMDS (details are specified in RFC 1209) + -- Implementation of this group is mandatory for systems + -- that implement IP-over-SMDS Interface Protocol. + + smdsApplications OBJECT IDENTIFIER ::= { sip 4 } + + ipOverSMDS OBJECT IDENTIFIER ::= { smdsApplications 1 } + + -- Although the objects in this group are read-only, at the + -- agent's discretion they may be made read-write so that the + -- management station, when appropriately authorized, may + -- change the addressing information related to the + -- configuration of a logical IP subnetwork implemented on + -- top of SMDS. + + -- This table is necessary to support RFC1209 (IP-over-SMDS) + -- and gives information on the Group Addresses and ARP + -- Addresses used in the Logical IP subnetwork. + -- One SMDS address may be associated with multiple IP + -- addresses. One SNI may be associated with multiple LISs. + + ipOverSMDSTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpOverSMDSEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of addressing information relevant to + this entity's IP addresses." + ::= { ipOverSMDS 1 } + + ipOverSMDSEntry OBJECT-TYPE + SYNTAX IpOverSMDSEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The addressing information for one of this + entity's IP addresses." + INDEX { ipOverSMDSIndex, ipOverSMDSAddress } + ::= { ipOverSMDSTable 1 } + + IpOverSMDSEntry ::= + SEQUENCE { + ipOverSMDSIndex + INTEGER, + ipOverSMDSAddress + IpAddress, + ipOverSMDSHA + SMDSAddress, + ipOverSMDSLISGA + SMDSAddress, + ipOverSMDSARPReq + SMDSAddress + } + + ipOverSMDSIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the SIP port + interface for which this entry contains management + information. The value of this object for a + particular interface has the same value as the + ifIndex object, defined in RFC 1156 and RFC 1213, + for the same interface." + ::= { ipOverSMDSEntry 1 } + + ipOverSMDSAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP address to which this entry's addressing + information pertains." + ::= { ipOverSMDSEntry 2 } + + ipOverSMDSHA OBJECT-TYPE + SYNTAX SMDSAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SMDS Individual address of the IP station." + ::= { ipOverSMDSEntry 3 } + + ipOverSMDSLISGA OBJECT-TYPE + SYNTAX SMDSAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SMDS Group Address that has been configured + to identify the SMDS Subscriber-Network Interfaces + (SNIs) of all members of the Logical IP Subnetwork + (LIS) connected to the network supporting SMDS." + ::= { ipOverSMDSEntry 4 } + + ipOverSMDSARPReq OBJECT-TYPE + SYNTAX SMDSAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SMDS address (individual or group) to which + ARP Requests are to be sent." + ::= { ipOverSMDSEntry 5 } + + + -- The SMDS Carrier Selection group + -- This group is used as a place holder + -- for carrier selection objects. + + smdsCarrierSelection OBJECT IDENTIFIER ::= { sip 5} + + + -- The SIP Error Log + -- Implementation of this group is mandatory + -- for all systems that implement SIP Level 3. + + sipErrorLog OBJECT IDENTIFIER ::= { sip 6 } + + sipL3PDUErrorTable OBJECT-TYPE + SYNTAX SEQUENCE OF SipL3PDUErrorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table that contains the latest occurrence of + the following syntactical SIP L3PDU errors: + + - Destination Address Field Format Error, + + The following pertains to the 60 least significant + bits of the 64 bit address field. The 60 bits + contained in the address subfield can be used to + represent addresses up to 15 decimal digits. Each + decimal digit shall be encoded into four bits + using Binary Coded Decimal (BCD), with the most + significant digit occurring left-most. If not all + 15 digits are required, then the remainder of this + field shall be padded on the right with bits set + to one. An error is considered to have occurred: + a). if the first four bits of the address + subfield are not BCD, OR b). if the first four + bits of the address subfield are populated with + the country code value 0001, AND the 40 bits which + follow are not Binary Coded Decimal (BCD) encoded + values of the 10 digit addresses, OR the remaining + 16 least significant bits are not populated with + 1's, OR c). if the address subfield is not + correct according to another numbering plan which + is dependent upon the carrier assigning the + numbers and offering SMDS. + + - Source Address Field Format Error, + + The description of this parameter is the same as + the description of the Destination Address Field + Format Error. + + - Invalid BAsize Field Value, + + An error is considered to have occurred when the + BAsize field of an SIP L3PDU contains a value less + that 32, greater than 9220 octets without the + CRC32 field present, greater than 9224 octets with + the CRC32 field present, or not equal to a + multiple of 4 octets, + + - Invalid Header Extension Length Field Value, + + An error is considered to have occurred when the + Header Extension Length field value is not equal + 3. + + - Invalid Header Extension - Element Length, + + An error is considered to have occurred when the + Header Extension - Element Length is greater than + 12. + + - Invalid Header Extension - Version Element + Position, Length, or Value, + + An error is considered to have occurred when a + Version element with Length=3, Type=0, and Value=1 + does not appear first within the Header Extension, + or an element Type=0 appears somewhere other than + within the first three octets in the Header + Extension. + + - Invalid Header Extension - Carrier Selection + Element Position, Length, Value or Format, + + An error is considered to have occurred when a + Carrier Selection element does not appear second + within the Header Extension, if the Element Type + does not equal 1, the Element Length does not + equal 4, 6, or 8, the Element Value field is not + four BCD encoded decimal digits used in specifying + the Carrier Identification Code (CIC), or the + identified CIC code is invalid. + + - Header Extension PAD Error + + An error is considered to have occurred when the + Header Extension PAD is 9 octets in length, or if + the Header Extension PAD is greater than zero + octets in length and the Header Extension PAD does + not follow all Header Extension elements or does + not begin with at least one octet of all zeros. + + - BEtag Mismatch Error, + + An error is considered to have occurred when the + Beginning-End Tags in the SIP L3PDU header and + trailer are not equal. + + - BAsize Field not equal to Length Field Error, + + An error is considered to have occurred when the + value of the BAsize Field does not equal the value + of the Length Field. + + - Incorrect Length Error, and + + An error is considered to have occurred when the + the Length field value is not equal to the portion + of the SIP L3PDU which extends from the + Destination Address field up to and including the + CRC32 field (if present) or up to and including + the PAD field (if the CRC32 field is not present). + As an optional check, an error is considered to + have occurred when the length of a partially + received SIP L3PDU exceeds the BAsize value. + + - MRI Timeout Error. + + An error is considered to have occurred when the + elapsed time between receipt of BOM and + corresponding EOM exceeds the value of the MRI + (Message Receive Interval) for a particular + transport signal format. + + An entry is indexed by interface number and error + type, and contains Source Address, Destination + Address and a timestamp. All these errors are + counted in the sipL3Errors counter. When + sipL3PDUErrorTimeStamp is equal to zero, the + SipL3PDUErrorEntry does not contain any valid + information." + ::= { sipErrorLog 1 } + + sipL3PDUErrorEntry OBJECT-TYPE + SYNTAX SipL3PDUErrorEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the service disagreement table." + INDEX { sipL3PDUErrorIndex, sipL3PDUErrorType } + ::= { sipL3PDUErrorTable 1 } + + SipL3PDUErrorEntry ::= SEQUENCE { + sipL3PDUErrorIndex + INTEGER, + sipL3PDUErrorType + INTEGER, + sipL3PDUErrorSA + SMDSAddress, + sipL3PDUErrorDA + SMDSAddress, + sipL3PDUErrorTimeStamp + TimeTicks + } + + sipL3PDUErrorIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of this object identifies the SIP port + interface for which this entry contains management + information. The value of this object for a + particular interface has the same value as the + ifIndex object, defined in RFC 1156 and RFC 1213, + for the same interface." + ::= { sipL3PDUErrorEntry 1 } + + sipL3PDUErrorType OBJECT-TYPE + SYNTAX INTEGER { + erroredDAFieldFormat (1), + erroredSAFieldFormat (2), + invalidBAsizeFieldValue (3), + invalidHdrExtLength (4), + invalidHdrExtElementLength (5), + invalidHdrExtVersionElementPositionLenthOrValue (6), + invalidHdrExtCarSelectElementPositionLenghtValueOrFormat (7), + hePADError (8), + beTagMismatch (9), + baSizeFieldNotEqualToLengthField (10), + incorrectLength (11), + mriTimeout (12) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of error." + ::= { sipL3PDUErrorEntry 2 } + + sipL3PDUErrorSA OBJECT-TYPE + SYNTAX SMDSAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A rejected SMDS source address." + ::= { sipL3PDUErrorEntry 3 } + + sipL3PDUErrorDA OBJECT-TYPE + SYNTAX SMDSAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A rejected SMDS destination address." + ::= { sipL3PDUErrorEntry 4 } + + sipL3PDUErrorTimeStamp OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The timestamp for the service disagreement. The + timestamp contains the value of sysUpTime at the + latest occurrence of this type of service + disagreement. See textual description under + sipL3PDUErrorTable for boundary conditions." + ::= { sipL3PDUErrorEntry 5 } + + END diff --git a/pandora_console/attachment/mibs/RFC1315-FRAME b/pandora_console/attachment/mibs/RFC1315-FRAME new file mode 100644 index 0000000000..22341ed08f --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1315-FRAME @@ -0,0 +1,634 @@ + RFC1315-FRAME DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE + FROM RFC-1212 + transmission + FROM RFC1213-MIB + TimeTicks + FROM RFC-1155 + TRAP-TYPE + FROM RFC-1215; + + -- Frame Relay DTE MIB + + frame-relay OBJECT IDENTIFIER ::= { transmission 32 } + + -- + -- the range of ifIndex + -- + Index ::= INTEGER -- 1..ifNumber + + -- + -- the range of a Data Link Connection Identifier + -- + DLCI ::= INTEGER -- 0..DLCINumber + + + -- Data Link Connection Management Interface + + -- The variables that configure the DLC Management Interface. + + frDlcmiTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrDlcmiEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Parameters for the Data Link Connection Management + Interface for the frame relay service on this + interface." + REFERENCE + "Draft American National Standard T1.617-1991, Annex D" + ::= { frame-relay 1 } + + frDlcmiEntry OBJECT-TYPE + SYNTAX FrDlcmiEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Parameters for a particular Data Link Con- + nection Management Interface." + INDEX { frDlcmiIfIndex } + ::= { frDlcmiTable 1 } + + FrDlcmiEntry ::= + SEQUENCE { + frDlcmiIfIndex + Index, + frDlcmiState + INTEGER, + frDlcmiAddress + INTEGER, + frDlcmiAddressLen + INTEGER, + frDlcmiPollingInterval + INTEGER, + frDlcmiFullEnquiryInterval + INTEGER, + frDlcmiErrorThreshold + INTEGER, + frDlcmiMonitoredEvents + INTEGER, + frDlcmiMaxSupportedVCs + INTEGER, + frDlcmiMulticast + INTEGER + } + + + + frDlcmiIfIndex OBJECT-TYPE + SYNTAX Index + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value of the corresponding ifEn- + try." + ::= { frDlcmiEntry 1 } + + frDlcmiState OBJECT-TYPE + SYNTAX INTEGER { + noLmiConfigured (1), + lmiRev1 (2), + ansiT1-617-D (3), -- ANSI T1.617 Annex D + ansiT1-617-B (4) -- ANSI T1.617 Annex B + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable states which Data Link Connec- + tion Management scheme is active (and by impli- + cation, what DLCI it uses) on the Frame Relay + interface." + REFERENCE + "Draft American National Standard T1.617-1991" + ::= { frDlcmiEntry 2 } + + + + frDlcmiAddress OBJECT-TYPE + SYNTAX INTEGER { + q921 (1), -- 13 bit DLCI + q922March90 (2), -- 11 bit DLCI + q922November90 (3), -- 10 bit DLCI + q922 (4) -- Final Standard + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable states which address format is + in use on the Frame Relay interface." + ::= { frDlcmiEntry 3 } + + + frDlcmiAddressLen OBJECT-TYPE + SYNTAX INTEGER { + two-octets (2), + three-octets (3), + four-octets (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable states which address length in + octets. In the case of Q922 format, the length + indicates the entire length of the address in- + cluding the control portion." + ::= { frDlcmiEntry 4 } + + + + frDlcmiPollingInterval OBJECT-TYPE + SYNTAX INTEGER (5..30) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the number of seconds between succes- + sive status enquiry messages." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.7 Timer T391." + DEFVAL { 10 } + ::= { frDlcmiEntry 5 } + + + frDlcmiFullEnquiryInterval OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number of status enquiry intervals that pass + before issuance of a full status enquiry mes- + sage." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.7 Counter N391." + DEFVAL { 6 } + ::= { frDlcmiEntry 6 } + + + + frDlcmiErrorThreshold OBJECT-TYPE + SYNTAX INTEGER (1..10) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the maximum number of unanswered + Status Enquiries the equipment shall accept be- + fore declaring the interface down." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.5.1 Counter N392." + DEFVAL { 3 } + ::= { frDlcmiEntry 7 } + + frDlcmiMonitoredEvents OBJECT-TYPE + SYNTAX INTEGER (1..10) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the number of status polling intervals + over which the error threshold is counted. For + example, if within 'MonitoredEvents' number of + events the station receives 'ErrorThreshold' + number of errors, the interface is marked as + down." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.5.2 Counter N393." + DEFVAL { 4 } + ::= { frDlcmiEntry 8 } + + + + frDlcmiMaxSupportedVCs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum number of Virtual Circuits allowed + for this interface. Usually dictated by the + Frame Relay network. + + In response to a SET, if a value less than zero + or higher than the agent's maximal capability + is configured, the agent should respond bad- + Value" + ::= { frDlcmiEntry 9 } + + + frDlcmiMulticast OBJECT-TYPE + SYNTAX INTEGER { + nonBroadcast (1), + broadcast (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This indicates whether the Frame Relay inter- + face is using a multicast service." + ::= { frDlcmiEntry 10 } + + -- A Frame Relay service is a multiplexing service. Data + -- Link Connection Identifiers enumerate virtual circuits + -- (permanent or dynamic) which are layered onto the underlying + -- circuit, represented by ifEntry. Therefore, each of the entries + -- in the Standard MIB's Interface Table with an IfType of + -- Frame Relay represents a Q.922 interface. Zero or more + -- virtual circuits are layered onto this interface and provide + -- interconnection with various remote destinations. + -- Each such virtual circuit is represented by an entry in the + -- circuit table. + + -- Circuit Table + + -- The table describing the use of the DLCIs attached to + -- each Frame Relay Interface. + + frCircuitTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrCircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing information about specific Data + Link Connection Identifiers and corresponding virtual + circuits." + ::= { frame-relay 2 } + + frCircuitEntry OBJECT-TYPE + SYNTAX FrCircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The information regarding a single Data Link + Connection Identifier." + INDEX { frCircuitIfIndex, frCircuitDlci } + ::= { frCircuitTable 1 } + + + FrCircuitEntry ::= + SEQUENCE { + frCircuitIfIndex + Index, + frCircuitDlci + DLCI, + frCircuitState + INTEGER, + frCircuitReceivedFECNs + Counter, + frCircuitReceivedBECNs + Counter, + frCircuitSentFrames + Counter, + frCircuitSentOctets + Counter, + frCircuitReceivedFrames + Counter, + frCircuitReceivedOctets + Counter, + frCircuitCreationTime + TimeTicks, + frCircuitLastTimeChange + TimeTicks, + frCircuitCommittedBurst + INTEGER, + frCircuitExcessBurst + INTEGER, + frCircuitThroughput + INTEGER + } + + + + frCircuitIfIndex OBJECT-TYPE + SYNTAX Index + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex Value of the ifEntry this virtual + circuit is layered onto." + ::= { frCircuitEntry 1 } + + + frCircuitDlci OBJECT-TYPE + SYNTAX DLCI + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Data Link Connection Identifier for this + virtual circuit." + REFERENCE + "Draft American National Standard T1.618-1991, + Section 3.3.6" + ::= { frCircuitEntry 2 } + + frCircuitState OBJECT-TYPE + SYNTAX INTEGER { + invalid (1), + active (2), + inactive (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates whether the particular virtual cir- + cuit is operational. In the absence of a Data + Link Connection Management Interface, virtual + circuit entries (rows) may be created by set- + ting virtual circuit state to 'active', or + deleted by changing Circuit state to 'invalid'. + Whether or not the row actually disappears is + left to the implementation, so this object may + actually read as 'invalid' for some arbitrary + length of time. It is also legal to set the + state of a virtual circuit to 'inactive' to + temporarily disable a given circuit." + DEFVAL { active } + ::= { frCircuitEntry 3 } + + + frCircuitReceivedFECNs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of frames received from the network in- + dicating forward congestion since the virtual + circuit was created." + REFERENCE + "Draft American National Standard T1.618-1991, + Section 3.3.3" + ::= { frCircuitEntry 4 } + + + + frCircuitReceivedBECNs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of frames received from the network in- + dicating backward congestion since the virtual + circuit was created." + REFERENCE + "Draft American National Standard T1.618-1991, + Section 3.3.4" + ::= { frCircuitEntry 5 } + + + + frCircuitSentFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of frames sent from this virtual + circuit since it was created." + ::= { frCircuitEntry 6 } + + + + frCircuitSentOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of octets sent from this virtual + circuit since it was created." + ::= { frCircuitEntry 7 } + + + + frCircuitReceivedFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of frames received over this virtual + circuit since it was created." + ::= { frCircuitEntry 8 } + + + + frCircuitReceivedOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of octets received over this virtual + circuit since it was created." + ::= { frCircuitEntry 9 } + + frCircuitCreationTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when the virtual cir- + cuit was created, whether by the Data Link Con- + nection Management Interface or by a SetRe- + quest." + ::= { frCircuitEntry 10 } + + + + frCircuitLastTimeChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when last there was a + change in the virtual circuit state" + ::= { frCircuitEntry 11 } + + + + frCircuitCommittedBurst OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the maximum amount of + data, in bits, that the network agrees to + transfer under normal conditions, during the + measurement interval." + REFERENCE + "Draft American National Standard T1.617-1991, + Section 6.5.19" + DEFVAL { 0 } -- the default indicates no commitment + ::= { frCircuitEntry 12 } + + + + frCircuitExcessBurst OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the maximum amount of + uncommitted data bits that the network will at- + tempt to deliver over the measurement interval. + + By default, if not configured when creating the + entry, the Excess Information Burst Size is set + to the value of ifSpeed." + REFERENCE + "Draft American National Standard T1.617-1991, + Section 6.5.19" + ::= { frCircuitEntry 13 } + + + + frCircuitThroughput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Throughput is the average number of 'Frame Re- + lay Information Field' bits transferred per + second across a user network interface in one + direction, measured over the measurement inter- + val. + + If the configured committed burst rate and + throughput are both non-zero, the measurement + interval + T=frCircuitCommittedBurst/frCircuitThroughput. + + If the configured committed burst rate and + throughput are both zero, the measurement in- + terval + T=frCircuitExcessBurst/ifSpeed." + REFERENCE + "Draft American National Standard T1.617-1991, + Section 6.5.19" + DEFVAL {0} -- the default value of Throughput is + -- "no commitment". + ::= { frCircuitEntry 14 } + + + -- Error Table + + -- The table describing errors encountered on each Frame + -- Relay Interface. + + frErrTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrErrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing information about Errors on the + Frame Relay interface." + ::= { frame-relay 3 } + + frErrEntry OBJECT-TYPE + SYNTAX FrErrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The error information for a single frame relay + interface." + INDEX { frErrIfIndex } + ::= { frErrTable 1 } + + + + FrErrEntry ::= + SEQUENCE { + frErrIfIndex + Index, + frErrType + INTEGER, + frErrData + OCTET STRING, + frErrTime + TimeTicks + } + + + + frErrIfIndex OBJECT-TYPE + SYNTAX Index + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex Value of the corresponding ifEn- + try." + ::= { frErrEntry 1 } + + + + frErrType OBJECT-TYPE + SYNTAX INTEGER { + unknownError(1), + receiveShort(2), + receiveLong(3), + illegalDLCI(4), + unknownDLCI(5), + dlcmiProtoErr(6), + dlcmiUnknownIE(7), + dlcmiSequenceErr(8), + dlcmiUnknownRpt(9), + noErrorSinceReset(10) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of error that was last seen on this + interface." + ::= { frErrEntry 2 } + + + + frErrData OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An octet string containing as much of the er- + ror packet as possible. As a minimum, it must + contain the Q.922 Address or as much as was + delivered. It is desirable to include all in- + formation up to the PDU." + ::= { frErrEntry 3 } + + + + frErrTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime at which the error was + detected." + ::= { frErrEntry 4 } + + + -- Frame Relay Globals + + frame-relay-globals OBJECT IDENTIFIER ::= { frame-relay 4 } + + frTrapState OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether the system + produces the frDLCIStatusChange trap." + DEFVAL { disabled } + ::= { frame-relay-globals 1 } + + + -- Data Link Connection Management Interface Related Traps + + frDLCIStatusChange TRAP-TYPE + ENTERPRISE frame-relay + VARIABLES { frCircuitIfIndex, frCircuitDlci, frCircuitState } + DESCRIPTION + "This trap indicates that the indicated Virtual + Circuit has changed state. It has either been + created or invalidated, or has toggled between + the active and inactive states." + ::= 1 + + END diff --git a/pandora_console/attachment/mibs/RFC1315-MIB b/pandora_console/attachment/mibs/RFC1315-MIB new file mode 100644 index 0000000000..77702c7480 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1315-MIB @@ -0,0 +1,634 @@ + RFC1315-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE + FROM RFC-1212 + transmission + FROM RFC1213-MIB + TimeTicks + FROM RFC-1155 + TRAP-TYPE + FROM RFC-1215; + + -- Frame Relay DTE MIB + + frame-relay OBJECT IDENTIFIER ::= { transmission 32 } + + -- + -- the range of ifIndex + -- + Index ::= INTEGER -- 1..ifNumber + + -- + -- the range of a Data Link Connection Identifier + -- + DLCI ::= INTEGER -- 0..DLCINumber + + + -- Data Link Connection Management Interface + + -- The variables that configure the DLC Management Interface. + + frDlcmiTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrDlcmiEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Parameters for the Data Link Connection Management + Interface for the frame relay service on this + interface." + REFERENCE + "Draft American National Standard T1.617-1991, Annex D" + ::= { frame-relay 1 } + + frDlcmiEntry OBJECT-TYPE + SYNTAX FrDlcmiEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The Parameters for a particular Data Link Con- + nection Management Interface." + INDEX { frDlcmiIfIndex } + ::= { frDlcmiTable 1 } + + FrDlcmiEntry ::= + SEQUENCE { + frDlcmiIfIndex + Index, + frDlcmiState + INTEGER, + frDlcmiAddress + INTEGER, + frDlcmiAddressLen + INTEGER, + frDlcmiPollingInterval + INTEGER, + frDlcmiFullEnquiryInterval + INTEGER, + frDlcmiErrorThreshold + INTEGER, + frDlcmiMonitoredEvents + INTEGER, + frDlcmiMaxSupportedVCs + INTEGER, + frDlcmiMulticast + INTEGER + } + + + + frDlcmiIfIndex OBJECT-TYPE + SYNTAX Index + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value of the corresponding ifEn- + try." + ::= { frDlcmiEntry 1 } + + frDlcmiState OBJECT-TYPE + SYNTAX INTEGER { + noLmiConfigured (1), + lmiRev1 (2), + ansiT1-617-D (3), -- ANSI T1.617 Annex D + ansiT1-617-B (4) -- ANSI T1.617 Annex B + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable states which Data Link Connec- + tion Management scheme is active (and by impli- + cation, what DLCI it uses) on the Frame Relay + interface." + REFERENCE + "Draft American National Standard T1.617-1991" + ::= { frDlcmiEntry 2 } + + + + frDlcmiAddress OBJECT-TYPE + SYNTAX INTEGER { + q921 (1), -- 13 bit DLCI + q922March90 (2), -- 11 bit DLCI + q922November90 (3), -- 10 bit DLCI + q922 (4) -- Final Standard + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable states which address format is + in use on the Frame Relay interface." + ::= { frDlcmiEntry 3 } + + + frDlcmiAddressLen OBJECT-TYPE + SYNTAX INTEGER { + two-octets (2), + three-octets (3), + four-octets (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable states which address length in + octets. In the case of Q922 format, the length + indicates the entire length of the address in- + cluding the control portion." + ::= { frDlcmiEntry 4 } + + + + frDlcmiPollingInterval OBJECT-TYPE + SYNTAX INTEGER (5..30) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the number of seconds between succes- + sive status enquiry messages." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.7 Timer T391." + DEFVAL { 10 } + ::= { frDlcmiEntry 5 } + + + frDlcmiFullEnquiryInterval OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number of status enquiry intervals that pass + before issuance of a full status enquiry mes- + sage." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.7 Counter N391." + DEFVAL { 6 } + ::= { frDlcmiEntry 6 } + + + + frDlcmiErrorThreshold OBJECT-TYPE + SYNTAX INTEGER (1..10) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the maximum number of unanswered + Status Enquiries the equipment shall accept be- + fore declaring the interface down." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.5.1 Counter N392." + DEFVAL { 3 } + ::= { frDlcmiEntry 7 } + + frDlcmiMonitoredEvents OBJECT-TYPE + SYNTAX INTEGER (1..10) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the number of status polling intervals + over which the error threshold is counted. For + example, if within 'MonitoredEvents' number of + events the station receives 'ErrorThreshold' + number of errors, the interface is marked as + down." + REFERENCE + "Draft American National Standard T1.617-1991, + Section D.5.2 Counter N393." + DEFVAL { 4 } + ::= { frDlcmiEntry 8 } + + + + frDlcmiMaxSupportedVCs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum number of Virtual Circuits allowed + for this interface. Usually dictated by the + Frame Relay network. + + In response to a SET, if a value less than zero + or higher than the agent's maximal capability + is configured, the agent should respond bad- + Value" + ::= { frDlcmiEntry 9 } + + + frDlcmiMulticast OBJECT-TYPE + SYNTAX INTEGER { + nonBroadcast (1), + broadcast (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This indicates whether the Frame Relay inter- + face is using a multicast service." + ::= { frDlcmiEntry 10 } + + -- A Frame Relay service is a multiplexing service. Data + -- Link Connection Identifiers enumerate virtual circuits + -- (permanent or dynamic) which are layered onto the underlying + -- circuit, represented by ifEntry. Therefore, each of the entries + -- in the Standard MIB's Interface Table with an IfType of + -- Frame Relay represents a Q.922 interface. Zero or more + -- virtual circuits are layered onto this interface and provide + -- interconnection with various remote destinations. + -- Each such virtual circuit is represented by an entry in the + -- circuit table. + + -- Circuit Table + + -- The table describing the use of the DLCIs attached to + -- each Frame Relay Interface. + + frCircuitTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrCircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing information about specific Data + Link Connection Identifiers and corresponding virtual + circuits." + ::= { frame-relay 2 } + + frCircuitEntry OBJECT-TYPE + SYNTAX FrCircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The information regarding a single Data Link + Connection Identifier." + INDEX { frCircuitIfIndex, frCircuitDlci } + ::= { frCircuitTable 1 } + + + FrCircuitEntry ::= + SEQUENCE { + frCircuitIfIndex + Index, + frCircuitDlci + DLCI, + frCircuitState + INTEGER, + frCircuitReceivedFECNs + Counter, + frCircuitReceivedBECNs + Counter, + frCircuitSentFrames + Counter, + frCircuitSentOctets + Counter, + frCircuitReceivedFrames + Counter, + frCircuitReceivedOctets + Counter, + frCircuitCreationTime + TimeTicks, + frCircuitLastTimeChange + TimeTicks, + frCircuitCommittedBurst + INTEGER, + frCircuitExcessBurst + INTEGER, + frCircuitThroughput + INTEGER + } + + + + frCircuitIfIndex OBJECT-TYPE + SYNTAX Index + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex Value of the ifEntry this virtual + circuit is layered onto." + ::= { frCircuitEntry 1 } + + + frCircuitDlci OBJECT-TYPE + SYNTAX DLCI + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Data Link Connection Identifier for this + virtual circuit." + REFERENCE + "Draft American National Standard T1.618-1991, + Section 3.3.6" + ::= { frCircuitEntry 2 } + + frCircuitState OBJECT-TYPE + SYNTAX INTEGER { + invalid (1), + active (2), + inactive (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates whether the particular virtual cir- + cuit is operational. In the absence of a Data + Link Connection Management Interface, virtual + circuit entries (rows) may be created by set- + ting virtual circuit state to 'active', or + deleted by changing Circuit state to 'invalid'. + Whether or not the row actually disappears is + left to the implementation, so this object may + actually read as 'invalid' for some arbitrary + length of time. It is also legal to set the + state of a virtual circuit to 'inactive' to + temporarily disable a given circuit." + DEFVAL { active } + ::= { frCircuitEntry 3 } + + + frCircuitReceivedFECNs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of frames received from the network in- + dicating forward congestion since the virtual + circuit was created." + REFERENCE + "Draft American National Standard T1.618-1991, + Section 3.3.3" + ::= { frCircuitEntry 4 } + + + + frCircuitReceivedBECNs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of frames received from the network in- + dicating backward congestion since the virtual + circuit was created." + REFERENCE + "Draft American National Standard T1.618-1991, + Section 3.3.4" + ::= { frCircuitEntry 5 } + + + + frCircuitSentFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of frames sent from this virtual + circuit since it was created." + ::= { frCircuitEntry 6 } + + + + frCircuitSentOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of octets sent from this virtual + circuit since it was created." + ::= { frCircuitEntry 7 } + + + + frCircuitReceivedFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of frames received over this virtual + circuit since it was created." + ::= { frCircuitEntry 8 } + + + + frCircuitReceivedOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of octets received over this virtual + circuit since it was created." + ::= { frCircuitEntry 9 } + + frCircuitCreationTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when the virtual cir- + cuit was created, whether by the Data Link Con- + nection Management Interface or by a SetRe- + quest." + ::= { frCircuitEntry 10 } + + + + frCircuitLastTimeChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when last there was a + change in the virtual circuit state" + ::= { frCircuitEntry 11 } + + + + frCircuitCommittedBurst OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the maximum amount of + data, in bits, that the network agrees to + transfer under normal conditions, during the + measurement interval." + REFERENCE + "Draft American National Standard T1.617-1991, + Section 6.5.19" + DEFVAL { 0 } -- the default indicates no commitment + ::= { frCircuitEntry 12 } + + + + frCircuitExcessBurst OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the maximum amount of + uncommitted data bits that the network will at- + tempt to deliver over the measurement interval. + + By default, if not configured when creating the + entry, the Excess Information Burst Size is set + to the value of ifSpeed." + REFERENCE + "Draft American National Standard T1.617-1991, + Section 6.5.19" + ::= { frCircuitEntry 13 } + + + + frCircuitThroughput OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Throughput is the average number of 'Frame Re- + lay Information Field' bits transferred per + second across a user network interface in one + direction, measured over the measurement inter- + val. + + If the configured committed burst rate and + throughput are both non-zero, the measurement + interval + T=frCircuitCommittedBurst/frCircuitThroughput. + + If the configured committed burst rate and + throughput are both zero, the measurement in- + terval + T=frCircuitExcessBurst/ifSpeed." + REFERENCE + "Draft American National Standard T1.617-1991, + Section 6.5.19" + DEFVAL {0} -- the default value of Throughput is + -- "no commitment". + ::= { frCircuitEntry 14 } + + + -- Error Table + + -- The table describing errors encountered on each Frame + -- Relay Interface. + + frErrTable OBJECT-TYPE + SYNTAX SEQUENCE OF FrErrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing information about Errors on the + Frame Relay interface." + ::= { frame-relay 3 } + + frErrEntry OBJECT-TYPE + SYNTAX FrErrEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The error information for a single frame relay + interface." + INDEX { frErrIfIndex } + ::= { frErrTable 1 } + + + + FrErrEntry ::= + SEQUENCE { + frErrIfIndex + Index, + frErrType + INTEGER, + frErrData + OCTET STRING, + frErrTime + TimeTicks + } + + + + frErrIfIndex OBJECT-TYPE + SYNTAX Index + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex Value of the corresponding ifEn- + try." + ::= { frErrEntry 1 } + + + + frErrType OBJECT-TYPE + SYNTAX INTEGER { + unknownError(1), + receiveShort(2), + receiveLong(3), + illegalDLCI(4), + unknownDLCI(5), + dlcmiProtoErr(6), + dlcmiUnknownIE(7), + dlcmiSequenceErr(8), + dlcmiUnknownRpt(9), + noErrorSinceReset(10) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of error that was last seen on this + interface." + ::= { frErrEntry 2 } + + + + frErrData OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An octet string containing as much of the er- + ror packet as possible. As a minimum, it must + contain the Q.922 Address or as much as was + delivered. It is desirable to include all in- + formation up to the PDU." + ::= { frErrEntry 3 } + + + + frErrTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime at which the error was + detected." + ::= { frErrEntry 4 } + + + -- Frame Relay Globals + + frame-relay-globals OBJECT IDENTIFIER ::= { frame-relay 4 } + + frTrapState OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether the system + produces the frDLCIStatusChange trap." + DEFVAL { disabled } + ::= { frame-relay-globals 1 } + + + -- Data Link Connection Management Interface Related Traps + + frDLCIStatusChange TRAP-TYPE + ENTERPRISE frame-relay + VARIABLES { frCircuitIfIndex, frCircuitDlci, frCircuitState } + DESCRIPTION + "This trap indicates that the indicated Virtual + Circuit has changed state. It has either been + created or invalidated, or has toggled between + the active and inactive states." + ::= 1 + + END diff --git a/pandora_console/attachment/mibs/RFC1316-MIB b/pandora_console/attachment/mibs/RFC1316-MIB new file mode 100644 index 0000000000..8734fd9410 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1316-MIB @@ -0,0 +1,519 @@ +-- Changes for RFC1316 (Character MIB) +-- Added IMPORT for mib-2. +-- dperkins@scruznet.com + + + RFC1316-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter, TimeTicks, Gauge + FROM RFC1155-SMI + mib-2, DisplayString + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- this is the MIB module for character stream devices + + char OBJECT IDENTIFIER ::= { mib-2 19 } + + -- Textual Conventions + + AutonomousType ::= OBJECT IDENTIFIER + + -- The object identifier is an independently extensible type + -- identification value. It may, for example indicate a + -- particular sub-tree with further MIB definitions, or + -- define something like a protocol type or type of + -- hardware. + + InstancePointer ::= OBJECT IDENTIFIER + + -- The object identifier is a pointer to a specific instance + -- of a MIB object in this agent's implemented MIB. By + -- convention, it is the first object in the conceptual row + -- for the instance. + + + -- the generic Character group + + -- Implementation of this group is mandatory for all + -- systems that offer character ports + + charNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of entries in charPortTable, regardless + of their current state." + ::= { char 1 } + + + -- the Character Port table + + charPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF CharPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port entries. The number of entries is + given by the value of charNumber." + ::= { char 2 } + + charPortEntry OBJECT-TYPE + SYNTAX CharPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Status and parameter values for a character port." + INDEX { charPortIndex } + ::= { charPortTable 1 } + + CharPortEntry ::= + SEQUENCE { + charPortIndex + INTEGER, + charPortName + DisplayString, + charPortType + INTEGER, + charPortHardware + AutonomousType, + charPortReset + INTEGER, + charPortAdminStatus + INTEGER, + charPortOperStatus + INTEGER, + charPortLastChange + TimeTicks, + charPortInFlowType + INTEGER, + charPortOutFlowType + INTEGER, + charPortInFlowState + INTEGER, + charPortOutFlowState + INTEGER, + charPortInCharacters + Counter, + charPortOutCharacters + Counter, + charPortAdminOrigin + INTEGER, + charPortSessionMaximum + INTEGER, + charPortSessionNumber + Gauge, + charPortSessionIndex + INTEGER + } + + charPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each character port. Its value + ranges between 1 and the value of charNumber. By + convention and if possible, hardware port numbers + come first, with a simple, direct mapping. The + value for each port must remain constant at least + from one re-initialization of the network management + agent to the next." + ::= { charPortEntry 1 } + + charPortName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..32)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An administratively assigned name for the port, + typically with some local significance." + ::= { charPortEntry 2 } + + charPortType OBJECT-TYPE + SYNTAX INTEGER { physical(1), virtual(2) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port's type, 'physical' if the port represents + an external hardware connector, 'virtual' if it does + not." + ::= { charPortEntry 3 } + + charPortHardware OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A reference to hardware MIB definitions specific to + a physical port's external connector. For example, + if the connector is RS-232, then the value of this + object refers to a MIB sub-tree defining objects + specific to RS-232. If an agent is not configured + to have such values, the agent returns the object + identifier: + + nullHardware OBJECT IDENTIFIER ::= { 0 0 } + " + ::= { charPortEntry 4 } + + charPortReset OBJECT-TYPE + SYNTAX INTEGER { ready(1), execute(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A control to force the port into a clean, initial + state, both hardware and software, disconnecting all + the port's existing sessions. In response to a + get-request or get-next-request, the agent always + returns 'ready' as the value. Setting the value to + 'execute' causes a reset." + ::= { charPortEntry 5 } + + charPortAdminStatus OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2), off(3), + maintenance(4) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's desired state, independent of flow + control. 'enabled' indicates that the port is + allowed to pass characters and form new sessions. + 'disabled' indicates that the port is allowed to + pass characters but not form new sessions. 'off' + indicates that the port is not allowed to pass + characters or have any sessions. 'maintenance' + indicates a maintenance mode, exclusive of normal + operation, such as running a test." + ::= { charPortEntry 6 } + + charPortOperStatus OBJECT-TYPE + SYNTAX INTEGER { up(1), down(2), + maintenance(3), absent(4), active(5) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port's actual, operational state, independent + of flow control. 'up' indicates able to function + normally. 'down' indicates inability to function + for administrative or operational reasons. + 'maintenance' indicates a maintenance mode, + exclusive of normal operation, such as running a + test. 'absent' indicates that port hardware is not + present. 'active' indicates up with a user present + (e.g. logged in)." + ::= { charPortEntry 7 } + + charPortLastChange OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime at the time the port entered + its current operational state. If the current state + was entered prior to the last reinitialization of + the local network management subsystem, then this + object contains a zero value." + ::= { charPortEntry 8 } + + charPortInFlowType OBJECT-TYPE + SYNTAX INTEGER { none(1), xonXoff(2), hardware(3), + ctsRts(4), dsrDtr(5) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's type of input flow control. 'none' + indicates no flow control at this level or below. + 'xonXoff' indicates software flow control by + recognizing XON and XOFF characters. 'hardware' + indicates flow control delegated to the lower level, + for example a parallel port. + + 'ctsRts' and 'dsrDtr' are specific to RS-232-like + ports. Although not architecturally pure, they are + included here for simplicity's sake." + ::= { charPortEntry 9 } + + charPortOutFlowType OBJECT-TYPE + SYNTAX INTEGER { none(1), xonXoff(2), hardware(3), + ctsRts(4), dsrDtr(5) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's type of output flow control. 'none' + indicates no flow control at this level or below. + 'xonXoff' indicates software flow control by + recognizing XON and XOFF characters. 'hardware' + indicates flow control delegated to the lower level, + for example a parallel port. + + 'ctsRts' and 'dsrDtr' are specific to RS-232-like + ports. Although not architecturally pure, they are + included here for simplicy's sake." + ::= { charPortEntry 10 } + + charPortInFlowState OBJECT-TYPE + SYNTAX INTEGER { none(1), unknown(2), stop(3), go(4) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operational state of input flow control + on the port. 'none' indicates not applicable. + 'unknown' indicates this level does not know. + 'stop' indicates flow not allowed. 'go' indicates + flow allowed." + ::= { charPortEntry 11 } + + charPortOutFlowState OBJECT-TYPE + SYNTAX INTEGER { none(1), unknown(2), stop(3), go(4) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operational state of output flow + control on the port. 'none' indicates not + applicable. 'unknown' indicates this level does not + know. 'stop' indicates flow not allowed. 'go' + indicates flow allowed." + ::= { charPortEntry 12 } + + charPortInCharacters OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of characters detected as input from + the port since system re-initialization and while + the port operational state was 'up', 'active', or + 'maintenance', including, for example, framing, flow + control (i.e. XON and XOFF), each occurrence of a + BREAK condition, locally-processed input, and input + sent to all sessions." + ::= { charPortEntry 13 } + + charPortOutCharacters OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of characters detected as output to + the port since system re-initialization and while + the port operational state was 'up', 'active', or + 'maintenance', including, for example, framing, flow + control (i.e. XON and XOFF), each occurrence of a + BREAK condition, locally-created output, and output + received from all sessions." + ::= { charPortEntry 14 } + + charPortAdminOrigin OBJECT-TYPE + SYNTAX INTEGER { dynamic(1), network(2), local(3), + none(4) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The administratively allowed origin for + establishing session on the port. 'dynamic' allows + 'network' or 'local' session establishment. 'none' + disallows session establishment." + ::= { charPortEntry 15 } + + charPortSessionMaximum OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum number of concurrent sessions allowed + on the port. A value of -1 indicates no maximum. + Setting the maximum to less than the current number + of sessions has unspecified results." + ::= { charPortEntry 16 } + + charPortSessionNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of open sessions on the port that are in + the connecting, connected, or disconnecting state." + ::= { charPortEntry 17 } + + charPortSessionIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of charSessIndex for the port's first or + only active session. If the port has no active + session, the agent returns the value zero." + ::= { charPortEntry 18 } + + + -- the Character Session table + + charSessTable OBJECT-TYPE + SYNTAX SEQUENCE OF CharSessEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port session entries." + ::= { char 3 } + + charSessEntry OBJECT-TYPE + SYNTAX CharSessEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Status and parameter values for a character port + session." + INDEX { charSessPortIndex, charSessIndex } + ::= { charSessTable 1 } + + CharSessEntry ::= + SEQUENCE { + charSessPortIndex + INTEGER, + charSessIndex + INTEGER, + charSessKill + INTEGER, + charSessState + INTEGER, + charSessProtocol + AutonomousType, + charSessOperOrigin + INTEGER, + charSessInCharacters + Counter, + charSessOutCharacters + Counter, + charSessConnectionId + InstancePointer, + charSessStartTime + TimeTicks + } + + charSessPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of charPortIndex for the port to which + this session belongs." + ::= { charSessEntry 1 } + + charSessIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The session index in the context of the port, a + non-zero positive integer. Session indexes within a + port need not be sequential. Session indexes may be + reused for different ports. For example, port 1 and + port 3 may both have a session 2 at the same time. + Session indexes may have any valid integer value, + with any meaning convenient to the agent + implementation." + ::= { charSessEntry 2 } + + charSessKill OBJECT-TYPE + SYNTAX INTEGER { ready(1), execute(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A control to terminate the session. In response to + a get-request or get-next-request, the agent always + returns 'ready' as the value. Setting the value to + 'execute' causes termination." + ::= { charSessEntry 3 } + + charSessState OBJECT-TYPE + SYNTAX INTEGER { connecting(1), connected(2), + disconnecting(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operational state of the session, + disregarding flow control. 'connected' indicates + that character data could flow on the network side + of session. 'connecting' indicates moving from + nonexistent toward 'connected'. 'disconnecting' + indicates moving from 'connected' or 'connecting' to + nonexistent." + ::= { charSessEntry 4 } + + charSessProtocol OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The network protocol over which the session is + running. Other OBJECT IDENTIFIER values may be + defined elsewhere, in association with specific + protocols. However, this document assigns those of + known interest as of this writing." + ::= { charSessEntry 5 } + + wellKnownProtocols OBJECT IDENTIFIER ::= { char 4 } + + protocolOther OBJECT IDENTIFIER ::= {wellKnownProtocols 1} + protocolTelnet OBJECT IDENTIFIER ::= {wellKnownProtocols 2} + protocolRlogin OBJECT IDENTIFIER ::= {wellKnownProtocols 3} + protocolLat OBJECT IDENTIFIER ::= {wellKnownProtocols 4} + protocolX29 OBJECT IDENTIFIER ::= {wellKnownProtocols 5} + protocolVtp OBJECT IDENTIFIER ::= {wellKnownProtocols 6} + + charSessOperOrigin OBJECT-TYPE + SYNTAX INTEGER { unknown(1), network(2), local(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The session's source of establishment." + ::= { charSessEntry 6 } + + charSessInCharacters OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This session's subset of charPortInCharacters." + ::= { charSessEntry 7 } + + charSessOutCharacters OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This session's subset of charPortOutCharacters." + ::= { charSessEntry 8 } + + charSessConnectionId OBJECT-TYPE + SYNTAX InstancePointer + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A reference to additional local MIB information. + This should be the highest available related MIB, + corresponding to charSessProtocol, such as Telnet. + For example, the value for a TCP connection (in the + absence of a Telnet MIB) is the object identifier of + tcpConnState. If an agent is not configured to have + such values, the agent returns the object + identifier: + + nullConnectionId OBJECT IDENTIFIER ::= { 0 0 } + " + ::= { charSessEntry 9 } + + charSessStartTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime in MIB-2 when the session + entered connecting state." + ::= { charSessEntry 10 } + + END diff --git a/pandora_console/attachment/mibs/RFC1317-MIB b/pandora_console/attachment/mibs/RFC1317-MIB new file mode 100644 index 0000000000..5ea6dab0b3 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1317-MIB @@ -0,0 +1,548 @@ +-- Changes for RFC1317 (RS-232 MIB) +-- No changes needed. +-- dperkins@scruznet.com + + + RFC1317-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter + FROM RFC1155-SMI + transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- this is the MIB module for RS-232-like hardware devices + + rs232 OBJECT IDENTIFIER ::= { transmission 33 } + + + -- the generic RS-232-like group + + -- Implementation of this group is mandatory for all + -- systems that have RS-232-like hardware ports + -- supporting higher level services such as character + -- streams or network interfaces + + rs232Number OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ports (regardless of their current + state) in the RS-232-like general port table." + ::= { rs232 1 } + + + -- the RS-232-like general Port table + + rs232PortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232PortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port entries. The number of entries is + given by the value of rs232Number." + ::= { rs232 2 } + + rs232PortEntry OBJECT-TYPE + SYNTAX Rs232PortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Status and parameter values for a port." + INDEX { rs232PortIndex } + ::= { rs232PortTable 1 } + + Rs232PortEntry ::= + SEQUENCE { + rs232PortIndex + INTEGER, + rs232PortType + INTEGER, + rs232PortInSigNumber + INTEGER, + rs232PortOutSigNumber + INTEGER, + rs232PortInSpeed + INTEGER, + rs232PortOutSpeed + INTEGER } + + rs232PortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each port. Its value ranges + between 1 and the value of rs232Number. By + convention and if possible, hardware port numbers + map directly to external connectors. The value for + each port must remain constant at least from one + re-initialization of the network management agent to + the next." + ::= { rs232PortEntry 1 } + + rs232PortType OBJECT-TYPE + SYNTAX INTEGER { other(1), rs232(2), rs422(3), + rs423(4), v35(5) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port's hardware type." + ::= { rs232PortEntry 2 } + + rs232PortInSigNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input signals for the port in the + input signal table (rs232PortInSigTable). The table + contains entries only for those signals the software + can detect." + ::= { rs232PortEntry 3 } + + rs232PortOutSigNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of output signals for the port in the + output signal table (rs232PortOutSigTable). The + table contains entries only for those signals the + software can assert." + ::= { rs232PortEntry 4 } + + rs232PortInSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's input speed in bits per second." + ::= { rs232PortEntry 5 } + + rs232PortOutSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's output speed in bits per second." + ::= { rs232PortEntry 6 } + + + -- the RS-232-like Asynchronous Port group + + -- Implementation of this group is mandatory if the system + -- has any asynchronous ports. Otherwise it is not + -- present. + + rs232AsyncPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232AsyncPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of asynchronous port entries. The maximum + entry number is given by the value of rs232Number. + Entries need not exist for synchronous ports." + ::= { rs232 3 } + + rs232AsyncPortEntry OBJECT-TYPE + SYNTAX Rs232AsyncPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Status and parameter values for an asynchronous + port." + INDEX { rs232AsyncPortIndex } + ::= { rs232AsyncPortTable 1 } + + Rs232AsyncPortEntry ::= + SEQUENCE { + rs232AsyncPortIndex + INTEGER, + rs232AsyncPortBits + INTEGER, + rs232AsyncPortStopBits + INTEGER, + rs232AsyncPortParity + INTEGER, + rs232AsyncPortAutobaud + INTEGER, + rs232AsyncPortParityErrs + Counter, + rs232AsyncPortFramingErrs + Counter, + rs232AsyncPortOverrunErrs + Counter + + } + + rs232AsyncPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each port. Its value is the + same as rs232PortIndex for the port." + ::= { rs232AsyncPortEntry 1 } + + rs232AsyncPortBits OBJECT-TYPE + SYNTAX INTEGER (5..8) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's number of bits in a character." + ::= { rs232AsyncPortEntry 2 } + + rs232AsyncPortStopBits OBJECT-TYPE + SYNTAX INTEGER { one(1), two(2), + one-and-half(3), dynamic(4) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's number of stop bits." + ::= { rs232AsyncPortEntry 3 } + + rs232AsyncPortParity OBJECT-TYPE + SYNTAX INTEGER { none(1), odd(2), even(3), + mark(4), space(5) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port's sense of a character parity bit." + ::= { rs232AsyncPortEntry 4 } + + rs232AsyncPortAutobaud OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A control for the port's ability to automatically + sense input speed. + + When rs232PortAutoBaud is 'enabled', a port may + autobaud to values different from the set values for + speed, parity, and character size. As a result a + network management system may temporarily observe + values different from what was previously set." + ::= { rs232AsyncPortEntry 5 } + + rs232AsyncPortParityErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of characters with a parity error, + input from the port since system re-initialization + and while the port state was 'up' or 'test'." + ::= { rs232AsyncPortEntry 6 } + + rs232AsyncPortFramingErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of characters with a framing error, + input from the port since system re-initialization + and while the port state was 'up' or 'test'." + ::= { rs232AsyncPortEntry 7 } + + rs232AsyncPortOverrunErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of characters with an overrun error, + input from the port since system re-initialization + and while the port state was 'up' or 'test'." + ::= { rs232AsyncPortEntry 8 } + + + -- the RS-232-like Synchronous Port group + + -- Implementation of this group is mandatory if the system + -- has any synchronous ports. Otherwise it is not + -- present. + + rs232SyncPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232SyncPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of synchronous port entries. The maximum + entry number is given by the value of rs232Number. + Entries need not exist for asynchronous ports." + ::= { rs232 4 } + + rs232SyncPortEntry OBJECT-TYPE + SYNTAX Rs232SyncPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Status and parameter values for a synchronous + port." + INDEX { rs232SyncPortIndex } + ::= { rs232SyncPortTable 1 } + + Rs232SyncPortEntry ::= + SEQUENCE { + rs232SyncPortIndex + INTEGER, + rs232SyncPortClockSource + INTEGER, + rs232SyncPortFrameCheckErrs + Counter, + rs232SyncPortTransmitUnderrunErrs + Counter, + rs232SyncPortReceiveOverrunErrs + Counter, + rs232SyncPortInterruptedFrames + Counter, + rs232SyncPortAbortedFrames + Counter + } + + rs232SyncPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each port. Its value is the + same as rs232PortIndex for the port." + ::= { rs232SyncPortEntry 1 } + + rs232SyncPortClockSource OBJECT-TYPE + SYNTAX INTEGER { internal(1), external(2), split(3) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Source of the port's bit rate clock. 'split' means + the tranmit clock is internal and the receive clock + is external." + ::= { rs232SyncPortEntry 2 } + + rs232SyncPortFrameCheckErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of frames with an invalid frame check + sequence, input from the port since system + re-initialization and while the port state was 'up' + or 'test'." + ::= { rs232SyncPortEntry 3 } + + rs232SyncPortTransmitUnderrunErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of frames that failed to be + transmitted on the port since system + re-initialization and while the port state was 'up' + or 'test' because data was not available to the + transmitter in time." + ::= { rs232SyncPortEntry 4 } + + rs232SyncPortReceiveOverrunErrs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of frames that failed to be received + on the port since system re-initialization and while + the port state was 'up' or 'test' because the + receiver did not accept the data in time." + ::= { rs232SyncPortEntry 5 } + + rs232SyncPortInterruptedFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Total number of frames that failed to be received + or transmitted on the port due to loss of modem + signals since system re-initialization and while the + port state was 'up' or 'test'." + ::= { rs232SyncPortEntry 6 } + + rs232SyncPortAbortedFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of frames aborted on the port due to + receiving an abort sequence since system + re-initialization and while the port state was 'up' + or 'test'." + ::= { rs232SyncPortEntry 7 } + + + -- the Input Signal table + + rs232InSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232InSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port input control signal entries." + ::= { rs232 5 } + + rs232InSigEntry OBJECT-TYPE + SYNTAX Rs232InSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Input control signal status for a hardware port." + INDEX { rs232InSigPortIndex, rs232InSigName } + ::= { rs232InSigTable 1 } + + Rs232InSigEntry ::= + SEQUENCE { + rs232InSigPortIndex + INTEGER, + rs232InSigName + INTEGER, + rs232InSigState + INTEGER, + rs232InSigChanges + Counter + } + + rs232InSigPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of rs232PortIndex for the port to which + this entry belongs." + ::= { rs232InSigEntry 1 } + + rs232InSigName OBJECT-TYPE + SYNTAX INTEGER { rts(1), cts(2), dsr(3), dtr(4), ri(5), + dcd(6), sq(7), srs(8), srts(9), + scts(10), sdcd(11) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identification of a hardware signal, as follows: + + rts Request to Send + cts Clear to Send + dsr Data Set Ready + dtr Data Terminal Ready + ri Ring Indicator + dcd Received Line Signal Detector + sq Signal Quality Detector + srs Data Signaling Rate Selector + srts Secondary Request to Send + scts Secondary Clear to Send + sdcd Secondary Received Line Signal Detector + " + REFERENCE + "EIA Standard RS-232-C, August 1969." + ::= { rs232InSigEntry 2 } + + rs232InSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current signal state." + ::= { rs232InSigEntry 3 } + + rs232InSigChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { rs232InSigEntry 4 } + + + -- the Output Signal table + + rs232OutSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232OutSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port output control signal entries." + ::= { rs232 6 } + + rs232OutSigEntry OBJECT-TYPE + SYNTAX Rs232OutSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Output control signal status for a hardware port." + INDEX { rs232OutSigPortIndex, rs232OutSigName } + ::= { rs232OutSigTable 1 } + + Rs232OutSigEntry ::= + SEQUENCE { + rs232OutSigPortIndex + INTEGER, + rs232OutSigName + INTEGER, + rs232OutSigState + INTEGER, + rs232OutSigChanges + Counter + } + + rs232OutSigPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of rs232PortIndex for the port to which + this entry belongs." + ::= { rs232OutSigEntry 1 } + + rs232OutSigName OBJECT-TYPE + SYNTAX INTEGER { rts(1), cts(2), dsr(3), dtr(4), ri(5), + dcd(6), sq(7), srs(8), srts(9), + scts(10), sdcd(11) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identification of a hardware signal, as follows: + + rts Request to Send + cts Clear to Send + dsr Data Set Ready + dtr Data Terminal Ready + ri Ring Indicator + dcd Received Line Signal Detector + sq Signal Quality Detector + srs Data Signaling Rate Selector + srts Secondary Request to Send + scts Secondary Clear to Send + sdcd Secondary Received Line Signal Detector + " + REFERENCE + "EIA Standard RS-232-C, August 1969." + ::= { rs232OutSigEntry 2 } + + rs232OutSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current signal state." + ::= { rs232OutSigEntry 3 } + + rs232OutSigChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { rs232OutSigEntry 4 } + + END diff --git a/pandora_console/attachment/mibs/RFC1318-MIB b/pandora_console/attachment/mibs/RFC1318-MIB new file mode 100644 index 0000000000..3ae3384874 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1318-MIB @@ -0,0 +1,253 @@ +-- Changes to RFC1318 (Parallel Printer MIB) +-- No changes needed. +-- dperkins@scruznet.com + + + RFC1318-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter + FROM RFC1155-SMI + transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- this is the MIB module for Parallel-printer-like + -- hardware devices + + para OBJECT IDENTIFIER ::= { transmission 34 } + + -- the generic Parallel-printer-like group + + -- Implementation of this group is mandatory for all + -- systems that have Parallel-printer-like hardware + -- ports supporting higher level services such as + -- character streams + + paraNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of ports (regardless of their current + state) in the Parallel-printer-like port table." + ::= { para 1 } + + + -- the Parallel-printer-like Port table + + paraPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParaPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port entries. The number of entries is + given by the value of paraNumber." + ::= { para 2 } + + + paraPortEntry OBJECT-TYPE + SYNTAX ParaPortEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Status and parameter values for a port." + INDEX { paraPortIndex } + ::= { paraPortTable 1 } + + ParaPortEntry ::= + SEQUENCE { + paraPortIndex + INTEGER, + paraPortType + INTEGER, + paraPortInSigNumber + INTEGER, + paraPortOutSigNumber + INTEGER + } + + paraPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A unique value for each port. Its value ranges + between 1 and the value of paraNumber. By + convention and if possible, hardware port numbers + map directly to external connectors. The value for + each port must remain constant at least from one + re-initialization of the network management agent to + the next." + ::= { paraPortEntry 1 } + + paraPortType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + centronics(2), + dataproducts(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The port's hardware type." + ::= { paraPortEntry 2 } + + paraPortInSigNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of input signals for the port in the + input signal table (paraPortInSigTable). The table + contains entries only for those signals the software + can detect." + ::= { paraPortEntry 3 } + + paraPortOutSigNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of output signals for the port in the + output signal table (paraPortOutSigTable). The + table contains entries only for those signals the + software can assert." + ::= { paraPortEntry 4 } + + + -- the Input Signal table + + paraInSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParaInSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port input control signal entries." + ::= { para 3 } + + paraInSigEntry OBJECT-TYPE + SYNTAX ParaInSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Input control signal status for a hardware port." + INDEX { paraInSigPortIndex, paraInSigName } + ::= { paraInSigTable 1 } + + ParaInSigEntry ::= + SEQUENCE { + paraInSigPortIndex + INTEGER, + paraInSigName + INTEGER, + paraInSigState + INTEGER, + paraInSigChanges + Counter + } + + paraInSigPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of paraPortIndex for the port to which + this entry belongs." + ::= { paraInSigEntry 1 } + + paraInSigName OBJECT-TYPE + SYNTAX INTEGER { power(1), online(2), busy(3), + paperout(4), fault(5) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identification of a hardware signal." + ::= { paraInSigEntry 2 } + + paraInSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current signal state." + ::= { paraInSigEntry 3 } + + paraInSigChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { paraInSigEntry 4 } + + + -- the Output Signal table + + paraOutSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF ParaOutSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of port output control signal entries." + ::= { para 4 } + + paraOutSigEntry OBJECT-TYPE + SYNTAX ParaOutSigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Output control signal status for a hardware port." + INDEX { paraOutSigPortIndex, paraOutSigName } + ::= { paraOutSigTable 1 } + + ParaOutSigEntry ::= + SEQUENCE { + paraOutSigPortIndex + INTEGER, + paraOutSigName + INTEGER, + paraOutSigState + INTEGER, + paraOutSigChanges + Counter + } + + paraOutSigPortIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of paraPortIndex for the port to which + this entry belongs." + ::= { paraOutSigEntry 1 } + + paraOutSigName OBJECT-TYPE + SYNTAX INTEGER { power(1), online(2), busy(3), + paperout(4), fault(5) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identification of a hardware signal." + ::= { paraOutSigEntry 2 } + + paraOutSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current signal state." + ::= { paraOutSigEntry 3 } + + paraOutSigChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { paraOutSigEntry 4 } + + END diff --git a/pandora_console/attachment/mibs/RFC1381-MIB b/pandora_console/attachment/mibs/RFC1381-MIB new file mode 100644 index 0000000000..65236e2254 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1381-MIB @@ -0,0 +1,1005 @@ +-- Changes to rfc1381 (X.25 LAPB MIB): +-- No changes needed. +-- dperkins@scruznet.com + +RFC1381-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter + FROM RFC1155-SMI + transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- LAPB MIB + + lapb OBJECT IDENTIFIER ::= { transmission 16 } + + PositiveInteger ::= INTEGER (0..2147483647) + + IfIndexType ::= INTEGER (1..2147483647) + -- IfIndexType specifies an index object for a table + -- with entries that match entries in the MIB-II ifTable. + -- The value of the index for the table will match the + -- ifIndex entry for same interface in the ifTable. + -- The values of this object range from 1 to ifNumber + -- inclusive. + + -- ########################################################### + -- LAPB Admn Table + -- ########################################################### + + -- Support of the lapbAdmnTable is mandatory for all + -- agents of systems that implement LAPB. + + lapbAdmnTable OBJECT-TYPE + SYNTAX SEQUENCE OF LapbAdmnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains objects that can be + changed to manage a LAPB interface. + Changing one of these parameters may take + effect in the operating LAPB immediately or + may wait until the interface is restarted + depending on the details of the + implementation. + + Most of the objects in this read-write table + have corresponding read-only objects in the + lapbOperTable that return the current + operating value. + + The operating values may be different from + these configured values if changed by XID + negotiation or if a configured parameter was + changed after the interface was started." + ::= { lapb 1 } + + lapbAdmnEntry OBJECT-TYPE + SYNTAX LapbAdmnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Configured parameter values for a specific + LAPB." + INDEX { lapbAdmnIndex } + ::= { lapbAdmnTable 1 } + + LapbAdmnEntry ::= SEQUENCE { + lapbAdmnIndex + IfIndexType, + lapbAdmnStationType + INTEGER, + lapbAdmnControlField + INTEGER, + lapbAdmnTransmitN1FrameSize + PositiveInteger, + lapbAdmnReceiveN1FrameSize + PositiveInteger, + lapbAdmnTransmitKWindowSize + INTEGER, + lapbAdmnReceiveKWindowSize + INTEGER, + lapbAdmnN2RxmitCount + INTEGER, + lapbAdmnT1AckTimer + PositiveInteger, + lapbAdmnT2AckDelayTimer + PositiveInteger, + lapbAdmnT3DisconnectTimer + PositiveInteger, + lapbAdmnT4IdleTimer + PositiveInteger, + lapbAdmnActionInitiate + INTEGER, + lapbAdmnActionRecvDM + INTEGER + } + + lapbAdmnIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the LAPB interface." + ::= { lapbAdmnEntry 1 } + + lapbAdmnStationType OBJECT-TYPE + SYNTAX INTEGER { + dte (1), + dce (2), + dxe (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Identifies the desired station type of this + interface." + REFERENCE "ISO 7776 section 3.1" + DEFVAL { dte } + ::= { lapbAdmnEntry 2 } + + lapbAdmnControlField OBJECT-TYPE + SYNTAX INTEGER { + modulo8 (1), + modulo128 (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The desired size of the sequence numbers + used to number frames." + REFERENCE "ISO 8885 Table 3, Name: HDLC Option - 10" + DEFVAL { modulo8 } + ::= { lapbAdmnEntry 3 } + + lapbAdmnTransmitN1FrameSize OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default maximum N1 frame size desired + in number of bits for a frame transmitted by + this DTE. This excludes flags and 0 bits + inserted for transparency." + REFERENCE "ISO 8885 Table 3, + Name: Information Field length" + DEFVAL { 36000 } -- 4500 * 8; 802.5 Frame size + ::= { lapbAdmnEntry 4 } + + lapbAdmnReceiveN1FrameSize OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default maximum N1 frame size desired + in number of bits for a frame the DCE/remote + DTE transmits to this DTE. This excludes + flags and 0 bits inserted for transparency." + DEFVAL { 36000 } -- 4500 * 8; 802.5 Frame size + ::= { lapbAdmnEntry 5 } + + lapbAdmnTransmitKWindowSize OBJECT-TYPE + SYNTAX INTEGER (1..127) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default transmit window size for this + Interface. This is the maximum number of + unacknowledged sequenced PDUs that may be + outstanding from this DTE at any one time." + REFERENCE "ISO 8885 Table 3, Name: Window size" + DEFVAL { 7 } + ::= { lapbAdmnEntry 6 } + + lapbAdmnReceiveKWindowSize OBJECT-TYPE + SYNTAX INTEGER (1..127) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default receive window size for this + Interface. This is the maximum number of + unacknowledged sequenced PDUs that may be + outstanding from the DCE/remote DTE at any + one time." + REFERENCE "ISO 8885 Table 3, Name: Window size" + DEFVAL { 7 } + ::= { lapbAdmnEntry 7 } + + lapbAdmnN2RxmitCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default N2 retry counter for this + interface. This specifies the number of + times a PDU will be resent after the T1 + timer expires without an acknowledgement for + the PDU." + REFERENCE "ISO 8885 Table 3, + Name: Retransmission Attempts" + DEFVAL { 20 } + ::= { lapbAdmnEntry 8 } + + lapbAdmnT1AckTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default T1 timer for this interface. + This specifies the maximum time in + Milliseconds to wait for acknowledgment of a + PDU." + REFERENCE "ISO 8885 Table 3, Name: + Acknowledgement timer" + DEFVAL { 3000 } + ::= { lapbAdmnEntry 9 } + + lapbAdmnT2AckDelayTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The default T2 timer for this interface. + This specifies the maximum time in + Milliseconds to wait before sending an + acknowledgment for a sequenced PDU. A value + of zero means there will be no delay in + acknowledgement generation." + REFERENCE "ISO 8885 Table 3, + Name: Reply delay timer" + DEFVAL { 0 } + ::= { lapbAdmnEntry 10 } + + lapbAdmnT3DisconnectTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T3 timer for this interface. This + specifies the time in Milliseconds to wait + before considering the link disconnected. A + value of zero indicates the link will be + considered disconnected upon completion of + the frame exchange to disconnect the link." + REFERENCE "ISO 7776 section 5.7.1.3" + DEFVAL { 60000 } + ::= { lapbAdmnEntry 11 } + + lapbAdmnT4IdleTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T4 timer for this interface. This + specifies the maximum time in Milliseconds + to allow without frames being exchanged on + the data link. A value of 2147483647 + indicates no idle timer is being kept." + REFERENCE "ISO 7776 section 5.7.1.4" + DEFVAL { 2147483647 } + ::= { lapbAdmnEntry 12 } + + lapbAdmnActionInitiate OBJECT-TYPE + SYNTAX INTEGER { + sendSABM (1), + sendDISC (2), + sendDM (3), + none (4), + other (5) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This identifies the action LAPB will take + to initiate link set-up." + DEFVAL { sendSABM } + ::= { lapbAdmnEntry 13 } + + + lapbAdmnActionRecvDM OBJECT-TYPE + SYNTAX INTEGER { + sendSABM (1), + sendDISC (2), + other (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This identifies the action LAPB will take + when it receives a DM response." + DEFVAL { sendSABM } + ::= { lapbAdmnEntry 14 } + + -- ########################################################### + -- LAPB operating parameters. + -- ########################################################### + + -- Support of the lapbOperTable is mandatory for all + -- agents of systems that implement LAPB. + + lapbOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF LapbOperEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains configuration + information about interface parameters + currently set in the interface. Many of + these objects have corresponding objects in + the lapbAdmnTable." + ::= { lapb 2 } + + lapbOperEntry OBJECT-TYPE + SYNTAX LapbOperEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Currently set parameter values for a + specific LAPB." + INDEX { lapbOperIndex } + ::= { lapbOperTable 1 } + + LapbOperEntry ::= SEQUENCE { + lapbOperIndex + IfIndexType, + lapbOperStationType + INTEGER, + lapbOperControlField + INTEGER, + lapbOperTransmitN1FrameSize + PositiveInteger, + lapbOperReceiveN1FrameSize + PositiveInteger, + lapbOperTransmitKWindowSize + INTEGER, + lapbOperReceiveKWindowSize + INTEGER, + lapbOperN2RxmitCount + INTEGER, + lapbOperT1AckTimer + PositiveInteger, + lapbOperT2AckDelayTimer + PositiveInteger, + lapbOperT3DisconnectTimer + PositiveInteger, + lapbOperT4IdleTimer + PositiveInteger, + lapbOperPortId + OBJECT IDENTIFIER, + lapbOperProtocolVersionId + OBJECT IDENTIFIER + } + + lapbOperIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the LAPB interface." + ::= { lapbOperEntry 1 } + + lapbOperStationType OBJECT-TYPE + SYNTAX INTEGER { + dte (1), + dce (2), + dxe (3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identifies the current operating station + type of this interface. A value of dxe (3) + indicates XID negotiation has not yet taken + place." + REFERENCE "ISO 7776 section 3.1" + ::= { lapbOperEntry 2 } + + lapbOperControlField OBJECT-TYPE + SYNTAX INTEGER { + modulo8 (1), + modulo128 (2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operating size of the sequence + numbers used to number frames." + REFERENCE "ISO 7776 section 3.3" + ::= { lapbOperEntry 3 } + + lapbOperTransmitN1FrameSize OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current operating N1 frame size used + for the maximum number of bits in a frame + this DTE can transmit. This excludes flags + and 0 bits inserted for transparency." + REFERENCE "ISO 7776 section 5.7.3" + ::= { lapbOperEntry 4 } + + lapbOperReceiveN1FrameSize OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + -- See lapbOperTransmitN1FrameSize above + DESCRIPTION + "The current operating N1 frame size used + for the maximum number of bits in a frame + the DCE/remote DTE can transmit. This + excludes flags and 0 bits inserted for + transparency." + ::= { lapbOperEntry 5 } + + lapbOperTransmitKWindowSize OBJECT-TYPE + SYNTAX INTEGER (1..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current PDU window size this Interface + uses to transmit. This is the maximum + number of unacknowledged sequenced PDUs that + may be outstanding from this DTE at any one + time." + REFERENCE "ISO 7776 section 5.7.4" + ::= { lapbOperEntry 6 } + + lapbOperReceiveKWindowSize OBJECT-TYPE + SYNTAX INTEGER (1..127) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current receive PDU window size for + this Interface. This is the maximum number + of unacknowledged sequenced PDUs that may be + outstanding from the DCE/remote DTE at any + one time." + REFERENCE "ISO 7776 section 5.7.4" + ::= { lapbOperEntry 7 } + + lapbOperN2RxmitCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current N2 retry counter used for this + interface. This specifies the number of + times a PDU will be resent after the T1 + timer expires without an acknowledgement for + the PDU." + REFERENCE "ISO 7776 section 5.7.2" + ::= { lapbOperEntry 8 } + + lapbOperT1AckTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current T1 timer for this interface. + This specifies the maximum time in + Milliseconds to wait for acknowledgment of a + PDU." + REFERENCE "ISO 7776 section 5.7.1.1" + ::= { lapbOperEntry 9 } + + lapbOperT2AckDelayTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current T2 timer for this interface. + This specifies the maximum time in + Milliseconds to wait before sending an + acknowledgment for a sequenced PDU. A value + of zero means there will be no delay in + acknowledgement generation." + REFERENCE "ISO 7776 section 5.7.1.2" + ::= { lapbOperEntry 10 } + + lapbOperT3DisconnectTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current T3 timer for this interface. + This specifies the time in Milliseconds to + wait before considering the link + disconnected. A value of zero indicates the + link will be considered disconnected upon + completion of the frame exchange to + disconnect the link." + REFERENCE "ISO 7776 section 5.7.1.3" + ::= { lapbOperEntry 11 } + + lapbOperT4IdleTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The current T4 timer for this interface. + This specifies the maximum time in + Milliseconds to allow without frames being + exchanged on the data link. A value of + 2147483647 indicates no idle timer is being + kept." + REFERENCE "ISO 7776 section 5.7.1.4" + ::= { lapbOperEntry 12 } + + lapbOperPortId OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object identifies an instance of the + index object in the first group of objects + in the MIB specific to the physical device + or interface used to send and receive + frames. If an agent does not support any + such objects, it should return nullSpec + OBJECT IDENTIFIER {0 0}." + ::= { lapbOperEntry 13 } + + lapbOperProtocolVersionId OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object identifies the version of the + lapb protocol implemented by this + interface." + ::= { lapbOperEntry 14 } + + -- ########################################################### + -- LAPB Flow Table + -- ########################################################### + + -- Support of the lapbFlowTable is mandatory for all + -- agents of systems that implement LAPB. + + lapbFlowTable OBJECT-TYPE + SYNTAX SEQUENCE OF LapbFlowEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table defines the objects recorded by + LAPB to provide information about the + traffic flow through the interface." + ::= { lapb 3 } + + lapbFlowEntry OBJECT-TYPE + SYNTAX LapbFlowEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The information regarding the effects of + flow controls in LAPB." + INDEX { lapbFlowIfIndex } + ::= { lapbFlowTable 1 } + + LapbFlowEntry ::= SEQUENCE { + lapbFlowIfIndex + IfIndexType, + lapbFlowStateChanges + Counter, + lapbFlowChangeReason + INTEGER, + lapbFlowCurrentMode + INTEGER, + lapbFlowBusyDefers + Counter, + lapbFlowRejOutPkts + Counter, + lapbFlowRejInPkts + Counter, + lapbFlowT1Timeouts + Counter, + lapbFlowFrmrSent + OCTET STRING, + lapbFlowFrmrReceived + OCTET STRING, + lapbFlowXidReceived + OCTET STRING + } + + lapbFlowIfIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the LAPB Interface." + ::= { lapbFlowEntry 1 } + + lapbFlowStateChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of LAPB State Changes, including + resets." + ::= { lapbFlowEntry 2 } + + lapbFlowChangeReason OBJECT-TYPE + SYNTAX INTEGER { + notStarted (1), -- Initial state + abmEntered (2), -- SABM or UA + abmeEntered (3), -- SABME or UA + abmReset (4), -- SABM in ABM + abmeReset (5), -- SABME in ABME + dmReceived (6), -- DM Response + dmSent (7), -- DM sent + discReceived (8), -- DISC Response + discSent (9), -- DISC Sent + frmrReceived (10), -- FRMR Received + frmrSent (11), -- FRMR Sent + n2Timeout (12), -- N2 Timer Expired + other (13) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The reason for the most recent incrementing + of lapbFlowStateChanges. A DM or DISC frame + generated to initiate link set-up does not + alter this object. When the MIB-II object + ifOperStatus does not have a value of + testing, there exists a correlation between + this object and ifOperStatus. IfOperStatus + will have a value of up when this object + contains: abmEntered, abmeEntered, + abmReset, or abmeReset. IfOperStatus will + have a value of down when this object has a + value of notStarted, or dmReceived through + n2Timeout. There is no correlation when + this object has the value other." + ::= { lapbFlowEntry 3 } + + lapbFlowCurrentMode OBJECT-TYPE + SYNTAX INTEGER { + disconnected (1), + -- initial state or DISC received + + linkSetup (2), + -- SABM sent + + frameReject (3), + -- Invalid frame received and + -- FRMR sent + + disconnectRequest (4), + -- DISC sent + + informationTransfer (5), + -- normal information transfer state + -- SABM(E) sent and UA received, or + -- SABM(E) received and UA sent + + rejFrameSent (6), + -- invalid NS received and REJ sent + + waitingAcknowledgement (7), + -- T1 expired and RR sent + + stationBusy (8), + -- RNR sent + + remoteStationBusy (9), + -- RNR received + + bothStationsBusy (10), + -- RNR received and RNR sent + + waitingAckStationBusy (11), + -- T1 expired, RNR sent + + waitingAckRemoteBusy (12), + -- T1 expired, RNR received + + waitingAckBothBusy (13), + -- T1 expired, RNR sent, + -- and RNR received + + rejFrameSentRemoteBusy (14), + -- REJ sent and RNR received + + xidFrameSent (15), + -- XID frame sent + + error (16), + -- An error state other than + -- a one defined above + + other (17) + -- A state not listed above + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the conversation." + ::= { lapbFlowEntry 4 } + + lapbFlowBusyDefers OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times this device was unable + to transmit a frame due to a perceived + remote busy condition. Busy conditions can + result from the receipt of an RNR from the + remote device, the lack of valid sequence + number space (window saturation), or other + conditions." + ::= { lapbFlowEntry 5 } + + lapbFlowRejOutPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of REJ or SREJ frames sent by + this station." + ::= { lapbFlowEntry 6 } + + lapbFlowRejInPkts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of REJ or SREJ frames received + by this station." + ::= { lapbFlowEntry 7 } + + lapbFlowT1Timeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times a re-transmission was + effected by the T1 Timer expiring." + ::= { lapbFlowEntry 8 } + + lapbFlowFrmrSent OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Information Field of the FRMR most + recently sent. If no FRMR has been sent + (the normal case) or the information isn't + available, this will be an OCTET STRING of + zero length." + REFERENCE "ISO 7776 Section 4.3.9, tables 7 and 8" + ::= { lapbFlowEntry 9 } + + lapbFlowFrmrReceived OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..7)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Information Field of the FRMR most + recently received. If no FRMR has been + received (the normal case) or the + information isn't available, this will be an + OCTET STRING of zero length." + REFERENCE "ISO 7776 Section 4.3.9, tables 7 and 8" + ::= { lapbFlowEntry 10 } + + lapbFlowXidReceived OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..8206)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Information Field of the XID frame most + recently received. If no XID frame has been + received, this will be an OCTET STRING of + zero length." + REFERENCE "ISO 8885" + ::= { lapbFlowEntry 11 } + + -- ########################################################### + -- LAPB XID Table + -- ########################################################### + + -- Support for the lapbXidTable is mandatory for all agents + -- of systems that have a LAPB implementation using XID + -- negotiation. Agents of systems without XID negotiation + -- support should not implement this table. + + lapbXidTable OBJECT-TYPE + SYNTAX SEQUENCE OF LapbXidEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table defines values to use for XID + negotiation that are not found in the + lapbAdmnTable. This table is optional for + implementations that don't support XID and + mandatory for implementations that do + initiate XID negotiation." + ::= { lapb 4 } + + lapbXidEntry OBJECT-TYPE + SYNTAX LapbXidEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "XId negotiation parameter values for a + specific LAPB." + INDEX { lapbXidIndex } + ::= { lapbXidTable 1 } + + LapbXidEntry ::= SEQUENCE { + lapbXidIndex + IfIndexType, + lapbXidAdRIdentifier + OCTET STRING, + lapbXidAdRAddress + OCTET STRING, + lapbXidParameterUniqueIdentifier + OCTET STRING, + lapbXidGroupAddress + OCTET STRING, + lapbXidPortNumber + OCTET STRING, + lapbXidUserDataSubfield + OCTET STRING + } + + lapbXidIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the LAPB interface." + ::= { lapbXidEntry 1 } + + lapbXidAdRIdentifier OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the Address Resolution + Identifier. A zero length string indicates + no Identifier value has been assigned." + REFERENCE "ISO 8885 Table 2, Name: Identifier" + DEFVAL { ''h } + ::= { lapbXidEntry 2 } + + lapbXidAdRAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the Address Resolution + Address. A zero length string indicates no + Address value has been assigned." + REFERENCE "ISO 8885 Table 2, Name: Address" + DEFVAL { ''h } + ::= { lapbXidEntry 3 } + + lapbXidParameterUniqueIdentifier OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the parameter unique + Identifier. A zero length string indicates + no Unique identifier value has been + assigned." + REFERENCE "ISO 8885 Table 3, Name: Identifier" + DEFVAL { ''h } + ::= { lapbXidEntry 4 } + + lapbXidGroupAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value of the parameter Group address. + A zero length string indicates no Group + address value has been assigned." + REFERENCE "ISO 8885 Table 3, Name: Group address" + DEFVAL { ''h } + ::= { lapbXidEntry 5 } + + lapbXidPortNumber OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The port number assigned for this link. A + zero length string indicates no local port + number identifier has been assigned." + REFERENCE "ISO 8885 Table 3, Name: Port number" + DEFVAL { ''h } + ::= { lapbXidEntry 6 } + + lapbXidUserDataSubfield OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..8206)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A user data subfield, if any, to be + transmitted in an XID frame. A zero length + frame indicates no user data subfield has + been assigned. The octet string should + include both the User data identifier and + User data field as shown in Figures 1 and + 4." + REFERENCE "ISO 8885 section 4.3" + DEFVAL { ''h } + ::= { lapbXidEntry 7 } + + -- ########################################################### + -- LAPB protocol versions + -- ########################################################### + + lapbProtocolVersion OBJECT IDENTIFIER + ::= { lapb 5 } + + lapbProtocolIso7776v1986 OBJECT IDENTIFIER + ::= { lapbProtocolVersion 1 } + + lapbProtocolCcittV1980 OBJECT IDENTIFIER + ::= { lapbProtocolVersion 2 } + + lapbProtocolCcittV1984 OBJECT IDENTIFIER + ::= { lapbProtocolVersion 3 } + + -- The following describes some of the MIB-II interface + -- objects and their relationship with the objects in this + -- MIB extension. + + -- ifDescr: describes the interface. It should include + -- identification information for the physical line and a + -- description of the network. For connections to PDNs, + -- it should name the PDN. + + -- ifMtu: the maximum number of octets an upper layer can + -- pass to this interface as a single frame. + + -- ifSpeed: + + -- ifAdminStatus: + + -- ifOperStatus: + + -- ifLastChange: the last time the state of the interface + -- changed. A reset is considered an instantaneous change to + -- the ndm state and back to abm or abme. This will be the + -- last time that lapbFlowChangeReason and lapbFlowChanges + -- changed. + + -- ifInOctets: contains the number of octets + -- received from the peer LAPB including FCS. + + -- ifInUcastPkts: contains the number of I-frames delivered + -- by this interface to a higher layer interface. + + -- ifInDiscards: contains the number of received + -- frames discarded because of internal conditions + -- (such as lack of buffering). + + -- ifInErrors: contains the number of Invalid frames received. + -- This does not have any relationship with the number REJ, + -- or RNR frames sent or received. + + -- ifInUnknownProtos: contains the number of frames + -- that were correct but were dropped because they + -- were inappropriate for the current state. This + -- includes an invalid Poll bit, an unknown address, + -- or other condition such as an RNR when connection + -- not established. This also includes the number of + -- DISC or other frames that were ignored because the + -- link was not established and this interface was not + -- configured to perform link setup on that type frame. + + -- ifOutOctets: number of octets sent to peer including + -- FCS octets. + + -- ifOutUcastPkts: number of I-frames received from + -- a higher layer for transmission to peer. + + -- ifOutDiscards: number of frames to be sent that were + -- dropped due to internal conditions such as buffering etc. + + -- ifOutErrors: number of transmissions that failed + -- due to errors or were considered invalid by the receiver. + -- This does not have any relationship with the number REJ, + -- or RNR frames sent or received. + + -- ifOutQLen: number of frames waiting to be transmitted. + + -- This MIB does not provide any support for: + -- Multilink procedure (MLP) in ISO 7776 section 6 + -- LLC Pbit timer + -- LLC REJ timer + -- LLC Busy State Timer 7.8.1.4 + + -- ########################################################### + +END diff --git a/pandora_console/attachment/mibs/RFC1382-MIB b/pandora_console/attachment/mibs/RFC1382-MIB new file mode 100644 index 0000000000..670f55473e --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1382-MIB @@ -0,0 +1,2625 @@ +-- Changes to rfc1382 (X.25 Packet Layer MIB): +-- No changes needed. +-- dperkins@scruznet.com + +RFC1382-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter, Gauge, TimeTicks + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString, transmission + FROM RFC1213-MIB + TRAP-TYPE + FROM RFC-1215 + EntryStatus + FROM RFC1271-MIB + PositiveInteger, + IfIndexType + FROM RFC1381-MIB; + + x25 OBJECT IDENTIFIER ::= { transmission 5 } + + -- Support of the X25 subtree and all subtrees under it + -- is mandatory for all agents of system that implement X.25. + + X121Address ::= OCTET STRING (SIZE(0..17)) + -- 0 to 17 bytes in length containing the ASCII + -- characters [0-9], each octet contains one digit + -- of the address. + + -- ########################################################### + -- X.25 Administration Table + -- ########################################################### + + x25AdmnTable OBJECT-TYPE + SYNTAX SEQUENCE OF X25AdmnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "This table contains the administratively + set configuration parameters for an X.25 + Packet Level Entity (PLE). + + Most of the objects in this table have + corresponding objects in the x25OperTable. + This table contains the values as last set + by the administrator. The x25OperTable + contains the values actually in use by an + X.25 PLE. + + Changing an administrative value may or may + not change a current operating value. The + operating value may not change until the + interface is restarted. Some + implementations may change the values + immediately upon changing the administrative + table. All implementations are required to + load the values from the administrative + table when initializing a PLE." + ::= { x25 1 } + + x25AdmnEntry OBJECT-TYPE + SYNTAX X25AdmnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Entries of x25AdmnTable." + INDEX { x25AdmnIndex } + ::= { x25AdmnTable 1 } + + X25AdmnEntry ::= SEQUENCE { + x25AdmnIndex + IfIndexType, + x25AdmnInterfaceMode + INTEGER, + x25AdmnMaxActiveCircuits + INTEGER, + x25AdmnPacketSequencing + INTEGER, + x25AdmnRestartTimer + PositiveInteger, + x25AdmnCallTimer + PositiveInteger, + x25AdmnResetTimer + PositiveInteger, + x25AdmnClearTimer + PositiveInteger, + x25AdmnWindowTimer + PositiveInteger, + x25AdmnDataRxmtTimer + PositiveInteger, + x25AdmnInterruptTimer + PositiveInteger, + x25AdmnRejectTimer + PositiveInteger, + x25AdmnRegistrationRequestTimer + PositiveInteger, + x25AdmnMinimumRecallTimer + PositiveInteger, + x25AdmnRestartCount + INTEGER, + x25AdmnResetCount + INTEGER, + x25AdmnClearCount + INTEGER, + x25AdmnDataRxmtCount + INTEGER, + x25AdmnRejectCount + INTEGER, + x25AdmnRegistrationRequestCount + INTEGER, + x25AdmnNumberPVCs + INTEGER, + x25AdmnDefCallParamId + OBJECT IDENTIFIER, + x25AdmnLocalAddress + X121Address, + x25AdmnProtocolVersionSupported + OBJECT IDENTIFIER + } + + x25AdmnIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the X.25 Interface." + ::= { x25AdmnEntry 1 } + + x25AdmnInterfaceMode OBJECT-TYPE + SYNTAX INTEGER { + dte (1), + dce (2), + dxe (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Identifies DCE/DTE mode in which the + interface operates. A value of dxe + indicates the mode will be determined by XID + negotiation." + REFERENCE "10733 5.9 interfaceMode" + ::= { x25AdmnEntry 2 } + + x25AdmnMaxActiveCircuits OBJECT-TYPE + SYNTAX INTEGER (0..4096) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum number of circuits this PLE can + support; including PVCs." + REFERENCE "10733 5.9 maxActiveCircuits; + See ISO 8208, Section 3.7" + ::= { x25AdmnEntry 3 } + + x25AdmnPacketSequencing OBJECT-TYPE + SYNTAX INTEGER { + modulo8 (1), + modulo128 (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The modulus of the packet sequence number + space." + REFERENCE "10733 extendedPacketSequencing; + See ISO 8208 Section 7.1.1" + ::= { x25AdmnEntry 4 } + + x25AdmnRestartTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T20 restart timer in milliseconds." + REFERENCE "10733 5.9 restartTime + See ISO 8208 Section 4.1, table 26" + ::= { x25AdmnEntry 5 } + + + x25AdmnCallTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T21 Call timer in milliseconds." + REFERENCE "10733 callTime; + See ISO 8208 Section 5.2.1, table 26" + ::= { x25AdmnEntry 6 } + + x25AdmnResetTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T22 Reset timer in milliseconds." + REFERENCE "10733 resetTime; + See ISO 8208 Section 8.1, table 26" + ::= { x25AdmnEntry 7 } + + x25AdmnClearTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T23 Clear timer in milliseconds." + REFERENCE "10733 clearTime; + See ISO 8208 Section 5.5.1, table 26" + ::= { x25AdmnEntry 8 } + + x25AdmnWindowTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T24 window status transmission timer in + milliseconds. A value of 2147483647 + indicates no window timer in use." + REFERENCE "10733 5.10.1 windowTime (opt); + See ISO 8208 Section 11.2.2, table 26" + ::= { x25AdmnEntry 9 } + + x25AdmnDataRxmtTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T25 data retransmission timer in + milliseconds. A value of 2147483647 + indicates no data retransmission timer in + use." + REFERENCE "10733 5.10.1 dataRetransmissionTime (opt); + See ISO 8208 Section 11.2.1, table 26" + ::= { x25AdmnEntry 10 } + + x25AdmnInterruptTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T26 interrupt timer in milliseconds. A + value of 2147483647 indicates no interrupt + timer in use." + REFERENCE "10733 interruptTime; + See ISO 8208 Section 6.8.1, table 26" + ::= { x25AdmnEntry 11 } + + x25AdmnRejectTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T27 Reject retransmission timer in + milliseconds. A value of 2147483647 + indicates no reject timer in use." + REFERENCE "10733 5.10.1 dataRejectTime (opt); + See ISO 8208 Section 13.4.1, table 26" + ::= { x25AdmnEntry 12 } + + x25AdmnRegistrationRequestTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The T28 registration timer in milliseconds. + A value of 2147483647 indicates no + registration timer in use." + REFERENCE "10733 5.8.1 registrationRequestTime (opt) + See ISO 8208 Section 13.1.1.1, table 26" + ::= { x25AdmnEntry 13 } + + x25AdmnMinimumRecallTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Minimum time interval between unsuccessful + call attempts in milliseconds." + REFERENCE "10733 5.9 minimum RecallTimer" + ::= { x25AdmnEntry 14 } + + x25AdmnRestartCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The R20 restart retransmission count." + REFERENCE "10733 5.9 restartCount; + See ISO 8208 Section 4.1, table 27" + ::= { x25AdmnEntry 15 } + + x25AdmnResetCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The r22 Reset retransmission count." + REFERENCE "10733 resetCount; + See section ISO 8208 8.1, table 27" + ::= { x25AdmnEntry 16 } + + x25AdmnClearCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The r23 Clear retransmission count." + REFERENCE "10733 clearCount; + See ISO 8208 Section 5.5.1, table 27" + ::= { x25AdmnEntry 17 } + + x25AdmnDataRxmtCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The R25 Data retransmission count. This + value is irrelevant if the + x25AdmnDataRxmtTimer indicates no timer in + use." + REFERENCE "10733 5.10.1 dataRetransmissionCount (opt) + See ISO 8208 Section 11.2.1, table 27" + ::= { x25AdmnEntry 18 } + + + x25AdmnRejectCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The R27 reject retransmission count. This + value is irrelevant if the + x25AdmnRejectTimer indicates no timer in + use." + REFERENCE "10733 5.10.1 dataRejectCount (opt)" + ::= { x25AdmnEntry 19 } + + x25AdmnRegistrationRequestCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The R28 Registration retransmission Count. + This value is irrelevant if the + x25AdmnRegistrationRequestTimer indicates no + timer in use." + REFERENCE "10733 5.8.1 registrationRequestCount (opt); + See ISO 8208 Section 13.1.1.1, table 27" + ::= { x25AdmnEntry 20 } + + x25AdmnNumberPVCs OBJECT-TYPE + SYNTAX INTEGER (0..4096) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of PVC configured for this PLE. + The PVCs use channel numbers from 1 to this + number." + ::= { x25AdmnEntry 21 } + + x25AdmnDefCallParamId OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This identifies the instance of the + x25CallParmIndex for the entry in the + x25CallParmTable which contains the default + call parameters for this PLE." + ::= { x25AdmnEntry 22 } + + x25AdmnLocalAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The local address for this PLE subnetwork. + A zero length address maybe returned by PLEs + that only support PVCs." + REFERENCE "10733 5.9 localDTEAddress" + ::= { x25AdmnEntry 23 } + + x25AdmnProtocolVersionSupported OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Identifies the version of the X.25 protocol + this interface should support. Object + identifiers for common versions are defined + below in the x25ProtocolVersion subtree." + REFERENCE "10733 5.9 protocolVersionSupported" + ::= { x25AdmnEntry 24 } + + -- ########################################################### + -- X.25 Operational Table + -- ########################################################### + + x25OperTable OBJECT-TYPE + SYNTAX SEQUENCE OF X25OperEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The operation parameters in use by the X.25 + PLE." + ::= { x25 2 } + + x25OperEntry OBJECT-TYPE + SYNTAX X25OperEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Entries of x25OperTable." + INDEX { x25OperIndex } + ::= { x25OperTable 1 } + + X25OperEntry ::= SEQUENCE { + x25OperIndex + IfIndexType, + x25OperInterfaceMode + INTEGER, + x25OperMaxActiveCircuits + INTEGER, + x25OperPacketSequencing + INTEGER, + x25OperRestartTimer + PositiveInteger, + x25OperCallTimer + PositiveInteger, + x25OperResetTimer + PositiveInteger, + x25OperClearTimer + PositiveInteger, + x25OperWindowTimer + PositiveInteger, + x25OperDataRxmtTimer + PositiveInteger, + x25OperInterruptTimer + PositiveInteger, + x25OperRejectTimer + PositiveInteger, + x25OperRegistrationRequestTimer + PositiveInteger, + x25OperMinimumRecallTimer + PositiveInteger, + x25OperRestartCount + INTEGER, + x25OperResetCount + INTEGER, + x25OperClearCount + INTEGER, + x25OperDataRxmtCount + INTEGER, + x25OperRejectCount + INTEGER, + x25OperRegistrationRequestCount + INTEGER, + x25OperNumberPVCs + INTEGER, + x25OperDefCallParamId + OBJECT IDENTIFIER, + x25OperLocalAddress + X121Address, + x25OperDataLinkId + OBJECT IDENTIFIER, + x25OperProtocolVersionSupported + OBJECT IDENTIFIER + } + + + x25OperIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the X.25 interface." + ::= { x25OperEntry 1 } + + x25OperInterfaceMode OBJECT-TYPE + SYNTAX INTEGER { + dte (1), + dce (2), + dxe (3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identifies DCE/DTE mode in which the + interface operates. A value of dxe + indicates the role will be determined by XID + negotiation at the Link Layer and that + negotiation has not yet taken place." + REFERENCE "10733 5.9 interfaceMode" + ::= { x25OperEntry 2 } + + x25OperMaxActiveCircuits OBJECT-TYPE + SYNTAX INTEGER (0..4096) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Maximum number of circuits this PLE can + support." + REFERENCE "10733 5.9 maxActiveCircuits + See ISO 8208, Section 3.7" + ::= { x25OperEntry 3 } + + x25OperPacketSequencing OBJECT-TYPE + SYNTAX INTEGER { + modulo8 (1), + modulo128 (2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The modulus of the packet sequence number + space." + REFERENCE "10733 extendedPacketSequencing; + See ISO 8208 Section 7.1.1" + ::= { x25OperEntry 4 } + + x25OperRestartTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T20 restart timer in milliseconds." + REFERENCE "10733 5.9 restartTime; + See ISO 8208 Section 4.1, table 26" + ::= { x25OperEntry 5 } + + x25OperCallTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T21 Call timer in milliseconds." + REFERENCE "10733 callTime; + See ISO 8208 Section 5.2.1, table 26" + ::= { x25OperEntry 6 } + + x25OperResetTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T22 Reset timer in milliseconds." + REFERENCE "10733 resetTime; + See ISO 8208 Section 8.1, table 26" + ::= { x25OperEntry 7 } + + x25OperClearTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T23 Clear timer in milliseconds." + REFERENCE "10733 clearTime; + See ISO 8208 Section 5.5.1, table 26" + ::= { x25OperEntry 8 } + + x25OperWindowTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T24 window status transmission timer + milliseconds. A value of 2147483647 + indicates no window timer in use." + REFERENCE "10733 5.10.1 windowTime (opt); + See ISO 8208 Section 11.2.2, table 26" + ::= { x25OperEntry 9 } + + x25OperDataRxmtTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T25 Data Retransmission timer in + milliseconds. A value of 2147483647 + indicates no data retransmission timer in + use." + REFERENCE "10733 5.10.1 dataRetransmissionTime (opt); + See ISO 8208 Section 11.2.1, table 26" + ::= { x25OperEntry 10 } + + x25OperInterruptTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T26 Interrupt timer in milliseconds. A + value of 2147483647 indicates interrupts are + not being used." + REFERENCE "10733 interruptTime; + See ISO 8208 Section 6.8.1, table 26" + ::= { x25OperEntry 11 } + + x25OperRejectTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T27 Reject retransmission timer in + milliseconds. A value of 2147483647 + indicates no reject timer in use." + REFERENCE "10733 5.10.1 dataRejectTime (opt); + See ISO 8208 Section 13.4.1, table 26" + ::= { x25OperEntry 12 } + + x25OperRegistrationRequestTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The T28 registration timer in milliseconds. + A value of 2147483647 indicates no + registration timer in use." + REFERENCE "10733 5.8.1 registrationRequestTime (opt); + See ISO 8208 Section 13.1.1.1, table 26" + ::= { x25OperEntry 13 } + + x25OperMinimumRecallTimer OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Minimum time interval between unsuccessful + call attempts in milliseconds." + REFERENCE "10733 5.9 minimum RecallTimer" + ::= { x25OperEntry 14 } + + x25OperRestartCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The R20 restart retransmission count." + REFERENCE "10733 5.9 restartCount + See ISO 8208 Section 4.1, table 27" + ::= { x25OperEntry 15 } + + x25OperResetCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The r22 Reset retransmission count." + REFERENCE "10733 resetCount; + See section ISO 8208 8.1, table 27" + ::= { x25OperEntry 16 } + + x25OperClearCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The r23 Clear retransmission count." + REFERENCE "10733 clearCount; + See ISO 8208 Section 5.5.1, table 27" + ::= { x25OperEntry 17 } + + x25OperDataRxmtCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The R25 Data retransmission count. This + value is undefined if the + x25OperDataRxmtTimer indicates no timer in + use." + REFERENCE "10733 5.10.1 dataRetransmissionCount (opt); + See ISO 8208 Section 11.2.1, table 27" + ::= { x25OperEntry 18 } + + x25OperRejectCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The R27 reject retransmission count. This + value is undefined if the x25OperRejectTimer + indicates no timer in use." + REFERENCE "10733 5.10.1 dataRejectCount (opt)" + ::= { x25OperEntry 19 } + + x25OperRegistrationRequestCount OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The R28 Registration retransmission Count. + This value is undefined if the + x25OperREgistrationRequestTimer indicates no + timer in use." + REFERENCE "10733 5.8.1 registrationRequestCount (opt); + See ISO 8208 Section 13.1.1.1, table 27" + ::= { x25OperEntry 20 } + + x25OperNumberPVCs OBJECT-TYPE + SYNTAX INTEGER (0..4096) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of PVC configured for this PLE. + The PVCs use channel numbers from 1 to this + number." + ::= { x25OperEntry 21 } + + x25OperDefCallParamId OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This identifies the instance of the + x25CallParmIndex for the entry in the + x25CallParmTable that contains the default + call parameters for this PLE." + ::= { x25OperEntry 22 } + + x25OperLocalAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local address for this PLE subnetwork. + A zero length address maybe returned by PLEs + that only support PVCs." + REFERENCE "10733 5.9 localDTEAddress" + ::= { x25OperEntry 23 } + + x25OperDataLinkId OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This identifies the instance of the index + object in the first table of the most device + specific MIB for the interface used by this + PLE." + ::= { x25OperEntry 24 } + + x25OperProtocolVersionSupported OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identifies the version of the X.25 protocol + this interface supports. Object identifiers + for common versions are defined below in the + x25ProtocolVersion subtree." + REFERENCE "10733 5.9 protocolVersionSupported" + ::= { x25OperEntry 25 } + + -- MIB-II also provides: + + -- ifDescr: + -- On an X.25 interface this must include sufficient + + + -- information to enable the system's administrator + -- to determine the appropriate configuration + -- information on a system having multiple X.25 + -- subnetworks. + + -- ifType: ddn-x25 or rfc877-x25 + -- an interface of type ddn-x25 will use an algorithm to + -- translate between X.121 address and IP addresses. + -- An interface of type rfc877-x25 will use a + -- configuration table to translate between X.121 + -- addresses and IP addresses. + + -- ifMtu: the maximum PDU a higher layer can pass to X.25 or + -- receive from X.25 + + -- ifSpeed: + -- This will be the value of the local clock for this line. + -- A value of zero indicates external clocking. + + -- ifAdminStatus: + + -- ifOperStatus + + -- ifLastChange + + -- ########################################################### + -- X.25 Statistics Table + -- ########################################################### + + x25StatTable OBJECT-TYPE + SYNTAX SEQUENCE OF X25StatEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Statistics information about this X.25 + PLE." + ::= { x25 3 } + + x25StatEntry OBJECT-TYPE + SYNTAX X25StatEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Entries of the x25StatTable." + INDEX { x25StatIndex } + ::= { x25StatTable 1 } + + + X25StatEntry ::= SEQUENCE { + x25StatIndex + IfIndexType, + x25StatInCalls + Counter, + x25StatInCallRefusals + Counter, + x25StatInProviderInitiatedClears + Counter, + x25StatInRemotelyInitiatedResets + Counter, + x25StatInProviderInitiatedResets + Counter, + x25StatInRestarts + Counter, + x25StatInDataPackets + Counter, + x25StatInAccusedOfProtocolErrors + Counter, + x25StatInInterrupts + Counter, + x25StatOutCallAttempts + Counter, + x25StatOutCallFailures + Counter, + x25StatOutInterrupts + Counter, + x25StatOutDataPackets + Counter, + x25StatOutgoingCircuits + Gauge, + x25StatIncomingCircuits + Gauge, + x25StatTwowayCircuits + Gauge, + x25StatRestartTimeouts + Counter, + x25StatCallTimeouts + Counter, + x25StatResetTimeouts + Counter, + x25StatClearTimeouts + Counter, + x25StatDataRxmtTimeouts + Counter, + x25StatInterruptTimeouts + Counter, + x25StatRetryCountExceededs + Counter, + x25StatClearCountExceededs + Counter + } + + x25StatIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the X.25 interface." + ::= { x25StatEntry 1 } + + x25StatInCalls OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of incoming calls received." + ::= { x25StatEntry 2 } + + x25StatInCallRefusals OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of incoming calls refused. This + includes calls refused by the PLE and by + higher layers. This also includes calls + cleared because of restricted fast select." + ::= { x25StatEntry 3 } + + x25StatInProviderInitiatedClears OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of clear requests with a cause + code other than DTE initiated." + REFERENCE "10733 providerInitiatedDisconnect" + ::= { x25StatEntry 4 } + + x25StatInRemotelyInitiatedResets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of reset requests received with + cause code DTE initiated." + REFERENCE "10733 remotelyInitiatedResets" + ::= { x25StatEntry 5 } + + x25StatInProviderInitiatedResets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of reset requests received with + cause code other than DTE initiated." + REFERENCE "10733 ProviderInitiatedResets" + ::= { x25StatEntry 6 } + + x25StatInRestarts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of remotely initiated (including + provider initiated) restarts experienced by + the PLE excluding the restart associated + with bringing up the PLE interface. This + only counts restarts received when the PLE + already has an established connection with + the remove PLE." + REFERENCE "10733 5.9 remotelyInitiatedRestarts" + ::= { x25StatEntry 7 } + + x25StatInDataPackets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of data packets received." + REFERENCE "10733 5.9 dataPacketsReceived." + ::= { x25StatEntry 8 } + + x25StatInAccusedOfProtocolErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of packets received containing a + procedure error cause code. These include + clear, reset, restart, or diagnostic + packets." + REFERENCE "CD 10733 5.9 accusedOfProtocolError" + + + ::= { x25StatEntry 9 } + + x25StatInInterrupts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of interrupt packets received by + the PLE or over the PVC/VC." + REFERENCE "10733 interruptPacketsReceived" + ::= { x25StatEntry 10 } + + x25StatOutCallAttempts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of calls attempted." + REFERENCE "10733 5.9 callAttempts" + ::= { x25StatEntry 11 } + + x25StatOutCallFailures OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of call attempts which failed. + This includes calls that were cleared + because of restrictive fast select." + ::= { x25StatEntry 12 } + + x25StatOutInterrupts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of interrupt packets send by the + PLE or over the PVC/VC." + REFERENCE "10733 InterruptPacketsSent" + ::= { x25StatEntry 13 } + + x25StatOutDataPackets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of data packets sent by this + PLE." + REFERENCE "10733 dataPacketSent" + ::= { x25StatEntry 14 } + + x25StatOutgoingCircuits OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of active outgoing circuits. + This includes call requests sent but not yet + confirmed. This does not count PVCs." + ::= { x25StatEntry 15 } + + x25StatIncomingCircuits OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of active Incoming Circuits. + This includes call indications received but + not yet acknowledged. This does not count + PVCs." + ::= { x25StatEntry 16 } + + x25StatTwowayCircuits OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of active two-way Circuits. + This includes call requests sent but not yet + confirmed. This does not count PVCs." + ::= { x25StatEntry 17 } + + x25StatRestartTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T20 restart timer + expired." + REFERENCE "10733 5.9 restartTimeouts" + ::= { x25StatEntry 18 } + + x25StatCallTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T21 call timer + expired." + REFERENCE "10733 5.9 callTimeouts" + ::= { x25StatEntry 19 } + + x25StatResetTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T22 reset timer + expired." + REFERENCE "10733 5.9 resetTimeouts" + ::= { x25StatEntry 20 } + + x25StatClearTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T23 clear timer + expired." + REFERENCE "10733 5.9 clearTimeouts" + ::= { x25StatEntry 21 } + + x25StatDataRxmtTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T25 data timer + expired." + REFERENCE "10733 5.9 dataRetransmissionsTimerExpiries" + ::= { x25StatEntry 22 } + + x25StatInterruptTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T26 interrupt timer + expired." + REFERENCE "10733 5.9 interruptTimerExpires" + ::= { x25StatEntry 23 } + + x25StatRetryCountExceededs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times a retry counter was + exhausted." + REFERENCE "10733 5.9 retryCountsExceeded" + ::= { x25StatEntry 24 } + + x25StatClearCountExceededs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the R23 clear count was + exceeded." + REFERENCE "10733 5.9 clearCountsExceeded" + ::= { x25StatEntry 25 } + + -- MIB-II also contains: + + -- ifInOctets: Number of data octets delivered to upper + -- layer entities. + + -- ifInUcastPkts: Number of packets with a clear M-bit + -- delivered to higher layer entities. + + -- ifDiscards: Number of packets dropped for lack of buffering + + -- ifInErrors: Number of packets received containing errors + -- REFERENCE ProtocolErrorsDetectedLocally + + -- ifInUnknownProtos: Number of packets with unknown circuit + -- identifier. + + -- ifOutOctets: Number of data octets delivered by + -- X.25 to upper layers. + + -- ifOutUcastPkts: Number of packets with a clear M-bit + -- received from higher layer entities. + + -- ########################################################### + -- X.25 Channel Table + -- ########################################################### + + x25ChannelTable OBJECT-TYPE + SYNTAX SEQUENCE OF X25ChannelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "These objects contain information about the + channel number configuration in an X.25 PLE. + These values are the configured values. + changes in these values after the interfaces + has started may not be reflected in the + operating PLE." + REFERENCE "See ISO 8208, Section 3.7" + ::= { x25 4 } + + x25ChannelEntry OBJECT-TYPE + SYNTAX X25ChannelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Entries of x25ChannelTable." + REFERENCE "This provides the information available + in 10733 logicalChannelAssignments." + INDEX { x25ChannelIndex } + ::= { x25ChannelTable 1 } + + X25ChannelEntry ::= SEQUENCE { + x25ChannelIndex + IfIndexType, + x25ChannelLIC + INTEGER, + x25ChannelHIC + INTEGER, + x25ChannelLTC + INTEGER, + x25ChannelHTC + INTEGER, + x25ChannelLOC + INTEGER, + x25ChannelHOC + INTEGER + } + + x25ChannelIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the X.25 Interface." + ::= { x25ChannelEntry 1 } + + + x25ChannelLIC OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Lowest Incoming channel." + ::= { x25ChannelEntry 2 } + + x25ChannelHIC OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Highest Incoming channel. A value of zero + indicates no channels in this range." + ::= { x25ChannelEntry 3 } + + x25ChannelLTC OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Lowest Two-way channel." + ::= { x25ChannelEntry 4 } + + x25ChannelHTC OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Highest Two-way channel. A value of zero + indicates no channels in this range." + ::= { x25ChannelEntry 5 } + + x25ChannelLOC OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Lowest outgoing channel." + ::= { x25ChannelEntry 6 } + + x25ChannelHOC OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Highest outgoing channel. A value of zero + indicates no channels in this range." + ::= { x25ChannelEntry 7 } + + -- ########################################################### + -- X25 Per Circuits Information Table + -- ########################################################### + + x25CircuitTable OBJECT-TYPE + SYNTAX SEQUENCE OF X25CircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "These objects contain general information + about a specific circuit of an X.25 PLE." + ::= { x25 5 } + + x25CircuitEntry OBJECT-TYPE + SYNTAX X25CircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Entries of x25CircuitTable." + INDEX { x25CircuitIndex, + x25CircuitChannel } + ::= { x25CircuitTable 1 } + + X25CircuitEntry ::= SEQUENCE { + x25CircuitIndex + IfIndexType, + x25CircuitChannel + INTEGER, + x25CircuitStatus + INTEGER, + x25CircuitEstablishTime + TimeTicks, + x25CircuitDirection + INTEGER, + x25CircuitInOctets + Counter, + x25CircuitInPdus + Counter, + x25CircuitInRemotelyInitiatedResets + Counter, + x25CircuitInProviderInitiatedResets + Counter, + x25CircuitInInterrupts + Counter, + x25CircuitOutOctets + Counter, + x25CircuitOutPdus + Counter, + x25CircuitOutInterrupts + Counter, + x25CircuitDataRetransmissionTimeouts + Counter, + x25CircuitResetTimeouts + Counter, + x25CircuitInterruptTimeouts + Counter, + x25CircuitCallParamId + OBJECT IDENTIFIER, + x25CircuitCalledDteAddress + X121Address, + x25CircuitCallingDteAddress + X121Address, + x25CircuitOriginallyCalledAddress + X121Address, + x25CircuitDescr + DisplayString + } + + x25CircuitIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ifIndex value for the X.25 Interface." + ::= { x25CircuitEntry 1 } + + x25CircuitChannel OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The channel number for this circuit." + ::= { x25CircuitEntry 2 } + + x25CircuitStatus OBJECT-TYPE + SYNTAX INTEGER { -- state table states + invalid (1), + closed (2), -- (p1) + calling (3), -- (p2,p3,p5) + open (4), -- (p4) + clearing (5), -- (p6,p7) + pvc (6), + pvcResetting (7), + startClear (8), -- Close cmd + startPvcResetting (9), -- Reset cmd + other (10) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This object reports the current status of + the circuit. + + An existing instance of this object can only + be set to startClear, startPvcResetting, or + invalid. An instance with the value calling + or open can only be set to startClear and + that action will start clearing the circuit. + An instance with the value PVC can only be + set to startPvcResetting or invalid and that + action resets the PVC or deletes the circuit + respectively. The values startClear or + startPvcResetting will never be returned by + an agent. An attempt to set the status of + an existing instance to a value other than + one of these values will result in an error. + + A non-existing instance can be set to PVC to + create a PVC if the implementation supports + dynamic creation of PVCs. Some + implementations may only allow creation and + deletion of PVCs if the interface is down. + Since the instance identifier will supply + the PLE index and the channel number, + setting this object alone supplies + sufficient information to create the + instance. All the DEFVAL clauses for the + other objects of this table are appropriate + for creating a PVC; PLEs creating entries + for placed or accepted calls will use values + appropriate for the call rather than the + value of the DEFVAL clause. Two managers + trying to create the same PVC can determine + from the return code which manager succeeded + and which failed (the failing manager fails + because it can not set a value of PVC for an + existing object). + + An entry in the closed or invalid state may + be deleted or reused at the agent's + convence. If the entry is kept in the + closed state, the values of the parameters + associated with the entry must be correct. + Closed implies the values in the circuit + table are correct. + + The value of invalid indicates the other + values in the table are invalid. Many + agents may never return a value of invalid + because they dynamically allocate and free + unused table entries. An agent for a + statically configured systems can return + invalid to indicate the entry has not yet + been used so the counters contain no + information." + REFERENCE "See ISO 8208, + table 33 for (p) state table" + ::= { x25CircuitEntry 3 } + + x25CircuitEstablishTime OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when the channel was + associated with this circuit. For outgoing + SVCs, this is the time the first call packet + was sent. For incoming SVCs, this is the + time the call indication was received. For + PVCs this is the time the PVC was able to + pass data to a higher layer entity without + loss of data." + ::= { x25CircuitEntry 4 } + + x25CircuitDirection OBJECT-TYPE + SYNTAX INTEGER { + incoming (1), + outgoing (2), + pvc (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The direction of the call that established + this circuit." + REFERENCE "10733 direction" + DEFVAL { pvc } + ::= { x25CircuitEntry 5 } + + -- X25 Circuit data flow statistics + + x25CircuitInOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of octets of user data delivered + to upper layer." + REFERENCE "5.11 octetsReceivedCounter" + ::= { x25CircuitEntry 6 } + + x25CircuitInPdus OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of PDUs received for this + circuit." + REFERENCE "10733 5.11 dataPacketsReceived" + ::= { x25CircuitEntry 7 } + + x25CircuitInRemotelyInitiatedResets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Resets received for this + circuit with cause code of DTE initiated." + REFERENCE "10733 remotelyInitiatedResets" + ::= { x25CircuitEntry 8 } + + x25CircuitInProviderInitiatedResets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Resets received for this + circuit with cause code other than DTE + initiated." + REFERENCE "10733 ProviderInitiatedResets" + ::= { x25CircuitEntry 9 } + + x25CircuitInInterrupts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of interrupt packets received + for this circuit." + REFERENCE "10733 interruptPacketsReceived" + ::= { x25CircuitEntry 10 } + + x25CircuitOutOctets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of octets of user data sent for + this circuit." + REFERENCE "10733 5.11 octetsSentCounter" + ::= { x25CircuitEntry 11 } + + x25CircuitOutPdus OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of PDUs sent for this circuit." + REFERENCE "10733 5.11 dataPacketsSent" + ::= { x25CircuitEntry 12 } + + x25CircuitOutInterrupts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of interrupt packets sent on + this circuit." + REFERENCE "10733 interruptPacketsSent" + ::= { x25CircuitEntry 13 } + + -- X25 circuit timer statistics + + x25CircuitDataRetransmissionTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T25 data + retransmission timer expired for this + circuit." + REFERENCE "10733 5.11 dataRetransmissionTimerExpiries" + ::= { x25CircuitEntry 14 } + + x25CircuitResetTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T22 reset timer + expired for this circuit." + REFERENCE "10733 5.11 resetTimeouts" + ::= { x25CircuitEntry 15 } + + x25CircuitInterruptTimeouts OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the T26 Interrupt timer + expired for this circuit." + REFERENCE "10733 interruptTimerExpiries" + ::= { x25CircuitEntry 16 } + + x25CircuitCallParamId OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This identifies the instance of the + x25CallParmIndex for the entry in the + x25CallParmTable which contains the call + parameters in use with this circuit. The + entry referenced must contain the values + that are currently in use by the circuit + rather than proposed values. A value of + NULL indicates the circuit is a PVC or is + using all the default parameters." + DEFVAL { {0 0} } + ::= { x25CircuitEntry 17 } + + x25CircuitCalledDteAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-write + STATUS mandatory + DESCRIPTION + "For incoming calls, this is the called + address from the call indication packet. + For outgoing calls, this is the called + address from the call confirmation packet. + This will be zero length for PVCs." + REFERENCE "10733 calledDTEAddress" + DEFVAL { ''h } + ::= { x25CircuitEntry 18 } + + x25CircuitCallingDteAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-write + STATUS mandatory + DESCRIPTION + "For incoming calls, this is the calling + address from the call indication packet. + For outgoing calls, this is the calling + address from the call confirmation packet. + This will be zero length for PVCs." + REFERENCE "10733 callingDTEAddress" + DEFVAL { ''h } + ::= { x25CircuitEntry 19 } + + x25CircuitOriginallyCalledAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-write + STATUS mandatory + DESCRIPTION + "For incoming calls, this is the address in + the call Redirection or Call Deflection + Notification facility if the call was + deflected or redirected, otherwise it will + be called address from the call indication + packet. For outgoing calls, this is the + address from the call request packet. This + will be zero length for PVCs." + REFERENCE "10733 originallyCalledAddress" + DEFVAL { ''h } + ::= { x25CircuitEntry 20 } + + x25CircuitDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A descriptive string associated with this + circuit. This provides a place for the + agent to supply any descriptive information + it knows about the use or owner of the + circuit. The agent may return the process + identifier and user name for the process + using the circuit. Alternative the agent + may return the name of the configuration + entry that caused a bridge to establish the + circuit. A zero length value indicates the + agent doesn't have any additional + information." + DEFVAL { ''h } + ::= { x25CircuitEntry 21 } + + -- ########################################################### + -- The Cleared Circuit Table + -- ########################################################### + + x25ClearedCircuitEntriesRequested OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The requested number of entries for the + agent to keep in the x25ClearedCircuit + table." + ::= { x25 6 } + + x25ClearedCircuitEntriesGranted OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The actual number of entries the agent will + keep in the x25ClearedCircuit Table." + ::= { x25 7 } + + x25ClearedCircuitTable OBJECT-TYPE + SYNTAX SEQUENCE OF X25ClearedCircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of entries about closed circuits. + Entries must be made in this table whenever + circuits are closed and the close request or + close indication packet contains a clearing + cause other than DTE Originated or a + Diagnostic code field other than Higher + Layer Initiated disconnection-normal. An + agent may optionally make entries for normal + closes (to record closing facilities or + other information). + + Agents will delete the oldest entry in the + table when adding a new entry would exceed + agent resources. Agents are required to + keep the last entry put in the table and may + keep more entries. The object + x25OperClearEntriesGranted returns the + maximum number of entries kept in the + table." + REFERENCE "See ISO 8208 Section 12.2.3.1.1 + and 12.2.3.1.2" + ::= { x25 8 } + + x25ClearedCircuitEntry OBJECT-TYPE + SYNTAX X25ClearedCircuitEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a cleared circuit." + INDEX { x25ClearedCircuitIndex } + ::= { x25ClearedCircuitTable 1 } + + X25ClearedCircuitEntry ::= SEQUENCE { + x25ClearedCircuitIndex + PositiveInteger, + x25ClearedCircuitPleIndex + IfIndexType, + x25ClearedCircuitTimeEstablished + TimeTicks, + x25ClearedCircuitTimeCleared + TimeTicks, + x25ClearedCircuitChannel + INTEGER, + x25ClearedCircuitClearingCause + INTEGER, + x25ClearedCircuitDiagnosticCode + INTEGER, + x25ClearedCircuitInPdus + Counter, + x25ClearedCircuitOutPdus + Counter, + x25ClearedCircuitCalledAddress + X121Address, + x25ClearedCircuitCallingAddress + X121Address, + x25ClearedCircuitClearFacilities + OCTET STRING + } + + x25ClearedCircuitIndex OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index that uniquely distinguishes one + entry in the clearedCircuitTable from + another. This index will start at + 2147483647 and will decrease by one for each + new entry added to the table. Upon reaching + one, the index will reset to 2147483647. + Because the index starts at 2147483647 and + decreases, a manager may do a getnext on + entry zero and obtain the most recent entry. + When the index has the value of 1, the next + entry will delete all entries in the table + and that entry will be numbered 2147483647." + ::= { x25ClearedCircuitEntry 1 } + + x25ClearedCircuitPleIndex OBJECT-TYPE + SYNTAX IfIndexType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of ifIndex for the PLE which + cleared the circuit that created the entry." + ::= { x25ClearedCircuitEntry 2 } + + x25ClearedCircuitTimeEstablished OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when the circuit was + established. This will be the same value + that was in the x25CircuitEstablishTime for + the circuit." + ::= { x25ClearedCircuitEntry 3 } + + x25ClearedCircuitTimeCleared OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when the circuit was + cleared. For locally initiated clears, this + will be the time when the clear confirmation + was received. For remotely initiated + clears, this will be the time when the clear + indication was received." + ::= { x25ClearedCircuitEntry 4 } + + x25ClearedCircuitChannel OBJECT-TYPE + SYNTAX INTEGER (0..4095) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The channel number for the circuit that was + cleared." + ::= { x25ClearedCircuitEntry 5 } + + x25ClearedCircuitClearingCause OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Clearing Cause from the clear request + or clear indication packet that cleared the + circuit." + REFERENCE "See ISO 8208 Section 12.2.3.1.1" + ::= { x25ClearedCircuitEntry 6 } + + x25ClearedCircuitDiagnosticCode OBJECT-TYPE + SYNTAX INTEGER (0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Diagnostic Code from the clear request + or clear indication packet that cleared the + circuit." + REFERENCE "See ISO 8208 Section 12.2.3.1.2" + ::= { x25ClearedCircuitEntry 7 } + + x25ClearedCircuitInPdus OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of PDUs received on the + circuit." + ::= { x25ClearedCircuitEntry 8 } + + x25ClearedCircuitOutPdus OBJECT-TYPE + SYNTAX Counter + + + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of PDUs transmitted on the + circuit." + ::= { x25ClearedCircuitEntry 9 } + + x25ClearedCircuitCalledAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The called address from the cleared + circuit." + ::= { x25ClearedCircuitEntry 10 } + + x25ClearedCircuitCallingAddress OBJECT-TYPE + SYNTAX X121Address + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The calling address from the cleared + circuit." + ::= { x25ClearedCircuitEntry 11 } + + x25ClearedCircuitClearFacilities OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..109)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The facilities field from the clear request + or clear indication packet that cleared the + circuit. A size of zero indicates no + facilities were present." + ::= { x25ClearedCircuitEntry 12 } + + -- ########################################################### + -- The Call Parameter Table + -- ########################################################### + + x25CallParmTable OBJECT-TYPE + SYNTAX SEQUENCE OF X25CallParmEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "These objects contain the parameters that + can be varied between X.25 calls. The + entries in this table are independent of the + PLE. There exists only one of these tables + for the entire system. The indexes for the + entries are independent of any PLE or any + circuit. Other tables reference entries in + this table. Entries in this table can be + used for default PLE parameters, for + parameters to use to place/answer a call, + for the parameters currently in use for a + circuit, or parameters that were used by a + circuit. + + The number of references to a given set of + parameters can be found in the + x25CallParmRefCount object sharing the same + instance identifier with the parameters. + The value of this reference count also + affects the access of the objects in this + table. An object in this table with the + same instance identifier as the instance + identifier of an x25CallParmRefCount must be + consider associated with that reference + count. An object with an associated + reference count of zero can be written (if + its ACCESS clause allows it). An object + with an associated reference count greater + than zero can not be written (regardless of + the ACCESS clause). This ensures that a set + of call parameters being referenced from + another table can not be modified or changed + in a ways inappropriate for continued use by + that table." + ::= { x25 9 } + + x25CallParmEntry OBJECT-TYPE + SYNTAX X25CallParmEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Entries of x25CallParmTable." + INDEX { x25CallParmIndex } + ::= { x25CallParmTable 1 } + + X25CallParmEntry ::= SEQUENCE { + x25CallParmIndex + PositiveInteger, + x25CallParmStatus + EntryStatus, + x25CallParmRefCount + PositiveInteger, + x25CallParmInPacketSize + INTEGER, + x25CallParmOutPacketSize + INTEGER, + x25CallParmInWindowSize + INTEGER, + x25CallParmOutWindowSize + INTEGER, + x25CallParmAcceptReverseCharging + INTEGER, + x25CallParmProposeReverseCharging + INTEGER, + x25CallParmFastSelect + INTEGER, + x25CallParmInThruPutClasSize + INTEGER, + x25CallParmOutThruPutClasSize + INTEGER, + x25CallParmCug + DisplayString, + x25CallParmCugoa + DisplayString, + x25CallParmBcug + DisplayString, + x25CallParmNui + OCTET STRING, + x25CallParmChargingInfo + INTEGER, + x25CallParmRpoa + DisplayString, + x25CallParmTrnstDly + INTEGER, + x25CallParmCallingExt + DisplayString, + x25CallParmCalledExt + DisplayString, + x25CallParmInMinThuPutCls + INTEGER, + x25CallParmOutMinThuPutCls + INTEGER, + x25CallParmEndTrnsDly + OCTET STRING, + x25CallParmPriority + OCTET STRING, + x25CallParmProtection + DisplayString, + x25CallParmExptData + INTEGER, + x25CallParmUserData + OCTET STRING, + x25CallParmCallingNetworkFacilities + OCTET STRING, + x25CallParmCalledNetworkFacilities + OCTET STRING + } + + x25CallParmIndex OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A value that distinguishes this entry from + another entry. Entries in this table are + referenced from other objects which identify + call parameters. + + It is impossible to know which other objects + in the MIB reference entries in the table by + looking at this table. Because of this, + changes to parameters must be accomplished + by creating a new entry in this table and + then changing the referencing table to + identify the new entry. + + Note that an agent will only use the values + in this table when another table is changed + to reference those values. The number of + other tables that reference an index object + in this table can be found in + x25CallParmRefCount. The value of the + reference count will affect the writability + of the objects as explained above. + + Entries in this table which have a reference + count of zero maybe deleted at the convence + of the agent. Care should be taken by the + agent to give the NMS sufficient time to + create a reference to newly created entries. + + Should a Management Station not find a free + index with which to create a new entry, it + may feel free to delete entries with a + reference count of zero. However in doing + so the Management Station much realize it + may impact other Management Stations." + ::= { x25CallParmEntry 1 } + + x25CallParmStatus OBJECT-TYPE + SYNTAX EntryStatus + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The status of this call parameter entry. + See RFC 1271 for details of usage." + ::= { x25CallParmEntry 2 } + + x25CallParmRefCount OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of references know by a + management station to exist to this set of + call parameters. This is the number of + other objects that have returned a value of, + and will return a value of, the index for + this set of call parameters. Examples of + such objects are the x25AdmnDefCallParamId, + x25OperDataLinkId, or x25AdmnDefCallParamId + objects defined above." + ::= { x25CallParmEntry 3 } + + x25CallParmInPacketSize OBJECT-TYPE + SYNTAX INTEGER (0..4096) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum receive packet size in octets + for a circuit. A size of zero for a circuit + means use the PLE default size. A size of + zero for the PLE means use a default size of + 128." + REFERENCE "10733 proposedPacketSize; + See ISO 8208 Section 15.2.2.1.1" + DEFVAL { 128 } + ::= { x25CallParmEntry 4 } + + x25CallParmOutPacketSize OBJECT-TYPE + SYNTAX INTEGER (0..4096) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum transmit packet size in octets + for a circuit. A size of zero for a circuit + means use the PLE default size. A size of + zero for the PLE default means use a default + size of 128." + REFERENCE "10733 proposedPacketSize; + See ISO 8208 Section 15.2.2.1.1" + DEFVAL { 128 } + ::= { x25CallParmEntry 5 } + + x25CallParmInWindowSize OBJECT-TYPE + SYNTAX INTEGER (0..127) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The receive window size for a circuit. A + size of zero for a circuit means use the PLE + default size. A size of zero for the PLE + default means use 2." + REFERENCE "10733 proposedWindowSize; + See ISO 8208 Section 15.2.2.1.2" + DEFVAL { 2 } + ::= { x25CallParmEntry 6 } + + x25CallParmOutWindowSize OBJECT-TYPE + SYNTAX INTEGER (0..127) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The transmit window size for a circuit. A + size of zero for a circuit means use the PLE + default size. A size of zero for the PLE + default means use 2." + REFERENCE "10733 proposedWindowSize; + See ISO 8208 Section 15.2.2.1.2" + DEFVAL { 2 } + ::= { x25CallParmEntry 7 } + + x25CallParmAcceptReverseCharging OBJECT-TYPE + SYNTAX INTEGER { + default (1), + accept (2), + refuse (3), + neverAccept (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An enumeration defining if the PLE will + accept or refuse charges. A value of + default for a circuit means use the PLE + default value. A value of neverAccept is + only used for the PLE default and indicates + the PLE will never accept reverse charging. + A value of default for a PLE default means + refuse." + REFERENCE "10733 acceptReverseCharging" + DEFVAL { refuse } + ::= { x25CallParmEntry 8 } + + x25CallParmProposeReverseCharging OBJECT-TYPE + SYNTAX INTEGER { + default (1), + reverse (2), + local (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An enumeration defining if the PLE should + propose reverse or local charging. The + value of default for a circuit means use the + PLE default. The value of default for the + PLE default means use local." + REFERENCE "10733 proposedPacketSize; + See ISO 8208 Section 15.2.2.6" + DEFVAL { local } + ::= { x25CallParmEntry 9 } + + x25CallParmFastSelect OBJECT-TYPE + SYNTAX INTEGER { + default (1), + notSpecified (2), + fastSelect (3), + restrictedFastResponse (4), + noFastSelect (5), + noRestrictedFastResponse (6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Expresses preference for use of fast select + facility. The value of default for a + circuit is the PLE default. A value of + default for the PLE means noFastSelect. A + value of noFastSelect or + noRestrictedFastResponse indicates a circuit + may not use fast select or restricted fast + response." + REFERENCE "10733 fastSelect; + Sec ISO 8208 Section 15.2.2.6" + DEFVAL { noFastSelect } + ::= { x25CallParmEntry 10 } + + x25CallParmInThruPutClasSize OBJECT-TYPE + SYNTAX INTEGER { + tcReserved1 (1), + tcReserved2 (2), + tc75 (3), + tc150 (4), + tc300 (5), + tc600 (6), + tc1200 (7), + tc2400 (8), + tc4800 (9), + tc9600 (10), + tc19200 (11), + tc48000 (12), + tc64000 (13), + tcReserved14 (14), + tcReserved15 (15), + tcReserved0 (16), + tcNone (17), + tcDefault (18) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The incoming throughput class to negotiate. + A value of tcDefault for a circuit means use + the PLE default. A value of tcDefault for + the PLE default means tcNone. A value of + tcNone means do not negotiate throughtput + class." + REFERENCE "See ISO 8208 Section 15.2.2.2, table 18" + DEFVAL { tcNone } + ::= { x25CallParmEntry 11 } + + x25CallParmOutThruPutClasSize OBJECT-TYPE + SYNTAX INTEGER { + tcReserved1 (1), + tcReserved2 (2), + tc75 (3), + tc150 (4), + tc300 (5), + tc600 (6), + tc1200 (7), + tc2400 (8), + tc4800 (9), + tc9600 (10), + tc19200 (11), + tc48000 (12), + tc64000 (13), + tcReserved14 (14), + tcReserved15 (15), + tcReserved0 (16), + tcNone (17), + tcDefault (18) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The outgoing throughput class to negotiate. + A value of tcDefault for a circuit means use + the PLE default. A value of tcDefault for + the PLE default means use tcNone. A value + of tcNone means do not negotiate throughtput + class." + REFERENCE "See ISO 8208 Section 15.2.2.2, table 18" + DEFVAL { tcNone } + ::= { x25CallParmEntry 12 } + + x25CallParmCug OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..4)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Closed User Group to specify. This + consists of two or four octets containing + the characters 0 through 9. A zero length + string indicates no facility requested. A + string length of three containing the + characters DEF for a circuit means use the + PLE default, (the PLE default parameter may + not reference an entry of DEF.)" + REFERENCE "See ISO 8208 Section 15.2.2.3" + DEFVAL { ''h } + ::= { x25CallParmEntry 13 } + + x25CallParmCugoa OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..4)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Closed User Group with Outgoing Access + to specify. This consists of two or four + octets containing the characters 0 through + 9. A string length of three containing the + characters DEF for a circuit means use the + PLE default (the PLE default parameters may + not reference an entry of DEF). A zero + length string indicates no facility + requested." + REFERENCE "See ISO 8208 Section 15.2.2.4" + DEFVAL { ''h } + ::= { x25CallParmEntry 14 } + + x25CallParmBcug OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..3)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Bilateral Closed User Group to specify. + This consists of two octets containing the + characters 0 through 9. A string length of + three containing the characters DEF for a + circuit means use the PLE default (the PLE + default parameter may not reference an entry + of DEF). A zero length string indicates no + facility requested." + REFERENCE "See ISO 8208 Section 15.2.2.5" + DEFVAL { ''h } + ::= { x25CallParmEntry 15 } + + x25CallParmNui OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..108)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Network User Identifier facility. This + is binary value to be included immediately + after the length field. The PLE will supply + the length octet. A zero length string + indicates no facility requested. This value + is ignored for the PLE default parameters + entry." + REFERENCE "See ISO 8208 Section 15.2.2.7" + DEFVAL { ''h } + + + ::= { x25CallParmEntry 16 } + + x25CallParmChargingInfo OBJECT-TYPE + SYNTAX INTEGER { + default (1), + noFacility (2), + noChargingInfo (3), + chargingInfo (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The charging Information facility. A value + of default for a circuit means use the PLE + default. The value of default for the + default PLE parameters means use noFacility. + The value of noFacility means do not include + a facility." + REFERENCE "See ISO 8208 Section 15.2.2.8" + DEFVAL { noFacility } + ::= { x25CallParmEntry 17 } + + x25CallParmRpoa OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..108)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The RPOA facility. The octet string + contains n * 4 sequences of the characters + 0-9 to specify a facility with n entries. + The octet string containing the 3 characters + DEF for a circuit specifies use of the PLE + default (the entry for the PLE default may + not contain DEF). A zero length string + indicates no facility requested." + REFERENCE "See ISO 8208, section 15.2.2.9" + DEFVAL { ''h } + ::= { x25CallParmEntry 18 } + + x25CallParmTrnstDly OBJECT-TYPE + SYNTAX INTEGER (0..65537) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Transit Delay Selection and Indication + value. A value of 65536 indicates no + facility requested. A value of 65537 for a + circuit means use the PLE default (the PLE + default parameters entry may not use the + value 65537). The value 65535 may only be + used to indicate the value in use by a + circuit." + REFERENCE "See ISO 8208, Section 15.2.2.13" + DEFVAL { 65536 } + ::= { x25CallParmEntry 19 } + + -- The following parameters are for CCITT facilities. + + x25CallParmCallingExt OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..40)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Calling Extension facility. This + contains one of the following: + + A sequence of hex digits with the value to + be put in the facility. These digits will be + converted to binary by the agent and put in + the facility. These octets do not include + the length octet. + + A value containing the three character DEF + for a circuit means use the PLE default, + (the entry for the PLE default parameters + may not use the value DEF). + + A zero length string indicates no facility + requested." + REFERENCE "See ISO 8208 Section 15.3.2.1" + DEFVAL { ''h } + ::= { x25CallParmEntry 20 } + + x25CallParmCalledExt OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..40)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Called Extension facility. This + contains one of the following: + + A sequence of hex digits with the value to + be put in the facility. These digits will be + converted to binary by the agent and put in + the facility. These octets do not include + the length octet. + + A value containing the three character DEF + for a circuit means use the PLE default, + (the entry for the PLE default parameters + may not use the value DEF). + + A zero length string indicates no facility + requested." + REFERENCE "See ISO 8208 Section 15.3.2.2" + DEFVAL { ''h } + ::= { x25CallParmEntry 21 } + + x25CallParmInMinThuPutCls OBJECT-TYPE + SYNTAX INTEGER (0..17) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The minimum input throughput Class. A + value of 16 for a circuit means use the PLE + default (the PLE parameters entry may not + use this value). A value of 17 indicates no + facility requested." + REFERENCE "See ISO 8208 Section 15.3.2.3" + DEFVAL { 17 } + ::= { x25CallParmEntry 22 } + + x25CallParmOutMinThuPutCls OBJECT-TYPE + SYNTAX INTEGER (0..17) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The minimum output throughput Class. A + value of 16 for a circuit means use the PLE + default (the PLE parameters entry may not + use this value). A value of 17 indicates no + facility requested." + REFERENCE "See ISO 8208 Section 15.3.2.3" + DEFVAL { 17 } + ::= { x25CallParmEntry 23 } + + x25CallParmEndTrnsDly OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..6)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The End-to-End Transit Delay to negotiate. + An octet string of length 2, 4, or 6 + contains the facility encoded as specified + in ISO/IEC 8208 section 15.3.2.4. An octet + string of length 3 containing the three + character DEF for a circuit means use the + PLE default (the entry for the PLE default + can not contain the characters DEF). A zero + length string indicates no facility + requested." + REFERENCE "See ISO 8208 Section 15.3.2.4" + DEFVAL { ''h } + ::= { x25CallParmEntry 24 } + + x25CallParmPriority OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..6)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The priority facility to negotiate. The + octet string encoded as specified in ISO/IEC + 8208 section 15.3.2.5. A zero length string + indicates no facility requested. The entry + for the PLE default parameters must be zero + length." + REFERENCE "See ISO 8208 Section 15.3.2.5" + DEFVAL { ''h } + ::= { x25CallParmEntry 25 } + + x25CallParmProtection OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..108)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A string contains the following: + A hex string containing the value for the + protection facility. This will be converted + from hex to the octets actually in the + packet by the agent. The agent will supply + the length field and the length octet is not + contained in this string. + + An string containing the 3 characters DEF + for a circuit means use the PLE default (the + entry for the PLE default parameters may not + use the value DEF). + + A zero length string mean no facility + requested." + REFERENCE "See ISO 8208 Section 15.3.2.5" + DEFVAL { ''h } + ::= { x25CallParmEntry 26 } + + x25CallParmExptData OBJECT-TYPE + SYNTAX INTEGER { + default (1), + noExpeditedData (2), + expeditedData (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The Expedited Data facility to negotiate. + A value of default for a circuit means use + the PLE default value. The entry for the + PLE default parameters may not have the + value default." + REFERENCE "See ISO 8208 Section 15.3.2.7" + DEFVAL { noExpeditedData } + ::= { x25CallParmEntry 27 } + + x25CallParmUserData OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..128)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The call user data as placed in the packet. + A zero length string indicates no call user + data. If both the circuit call parameters + and the PLE default have call user data + defined, the data from the circuit call + parameters will be used. If only the PLE + has data defined, the PLE entry will be + used. If neither the circuit call + parameters or the PLE default entry has a + value, no call user data will be sent." + REFERENCE "See ISO 8208 Section 12.2.1.1.6, 12.2.1.2" + DEFVAL { ''h } + ::= { x25CallParmEntry 28 } + + x25CallParmCallingNetworkFacilities OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..108)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The calling network facilities. The + facilities are encoded here exactly as + encoded in the call packet. These + facilities do not include the marker + facility code. + + A zero length string in the entry for the + parameter to use when establishing a circuit + means use the PLE default. A zero length + string in the entry for PLE default + parameters indicates no default facilities." + REFERENCE "See ISO 8206 Section 15.1, category b" + DEFVAL { ''h } + ::= { x25CallParmEntry 29 } + + x25CallParmCalledNetworkFacilities OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..108)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The called network facilities. The + facilities are encoded here exactly as + encoded in the call packet. These + facilities do not include the marker + facility code. + + A zero length string in the entry for the + parameter to use when establishing a circuit + means use the PLE default. A zero length + string in the entry for PLE default + parameters indicates no default facilities." + REFERENCE "See ISO 8206 Section 15.1, category c" + DEFVAL { ''h } + ::= { x25CallParmEntry 30 } + + -- ########################################################### + -- X.25 Traps + -- ########################################################### + + x25Restart TRAP-TYPE + ENTERPRISE x25 + VARIABLES { x25OperIndex } + DESCRIPTION + "This trap means the X.25 PLE sent or + received a restart packet. The restart that + brings up the link should not send a + x25Restart trap so the interface should send + a linkUp trap. Sending this trap means the + agent does not send a linkDown and linkUp + trap." + ::= 1 + + + x25Reset TRAP-TYPE + ENTERPRISE x25 + VARIABLES { x25CircuitIndex, + x25CircuitChannel } + DESCRIPTION + "If the PLE sends or receives a reset, the + agent should send an x25Reset trap." + ::= 2 + + -- ########################################################### + -- X.25 Protocol Version Identifiers + -- ########################################################### + + x25ProtocolVersion OBJECT IDENTIFIER + ::= { x25 10 } + + -- X.25 CCITT 1976 version. + x25protocolCcittV1976 OBJECT IDENTIFIER + ::= { x25ProtocolVersion 1 } + + -- X.25 CCITT 1980 version. + x25protocolCcittV1980 OBJECT IDENTIFIER + ::= { x25ProtocolVersion 2 } + + -- X.25 CCITT 1984 version. + x25protocolCcittV1984 OBJECT IDENTIFIER + ::= { x25ProtocolVersion 3 } + + -- X.25 CCITT 1988 version. + x25protocolCcittV1988 OBJECT IDENTIFIER + ::= { x25ProtocolVersion 4 } + + -- X.25 1987 version of ISO 8208. + x25protocolIso8208V1987 OBJECT IDENTIFIER + ::= { x25ProtocolVersion 5 } + + -- X.25 1989 version of ISO 8208. + x25protocolIso8208V1989 OBJECT IDENTIFIER + ::= { x25ProtocolVersion 6 } + + -- ########################################################### + +END diff --git a/pandora_console/attachment/mibs/RFC1389-MIB b/pandora_console/attachment/mibs/RFC1389-MIB new file mode 100644 index 0000000000..84a0f81cb8 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1389-MIB @@ -0,0 +1,398 @@ +-- Changes to rfc1389 (RIP MIB): +-- No changes needed. +-- dperkins@scruznet.com + +RFC1389-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter, TimeTicks, IpAddress + FROM RFC1155-SMI + mib-2 + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- RIP-2 Management Information Base + + rip2 OBJECT IDENTIFIER ::= { mib-2 23 } + + + -- the RouteTag type represents the contents of the + -- Route Tag field in the packet header or route entry. + + RouteTag ::= OCTET STRING (SIZE (2)) + + -- the Validation type is used for the variable that deletes + -- an entry from a table, and ALWAYS takes at least these values: + + Validation ::= INTEGER { valid (1), invalid (2) } + + -- The RIP-2 Globals Group. + -- Implementation of this group is mandatory for systems that + -- implement RIP-2. + + -- These counters are intended to facilitate debugging quickly + -- changing routes or failing neighbors + + rip2GlobalGroup OBJECT IDENTIFIER ::= { rip2 1 } + + rip2GlobalRouteChanges OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of changes made to the IP Route Da- + tabase by RIP." + ::= { rip2GlobalGroup 1 } + + rip2GlobalQueries OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of responses sent to RIP queries + from other systems." + ::= { rip2GlobalGroup 2 } + + -- RIP Interfaces Groups + -- Implementation of these Groups is mandatory for systems that + -- implement RIP-2. + + -- Since RIP versions 1 and 2 do not deal with addressless links, + -- it is assumed that RIP "interfaces" are subnets within a + -- routing domain. + + + -- The RIP Interface Status Table. + + rip2IfStatTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rip2IfStatEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of subnets which require separate + status monitoring in RIP." + ::= { rip2 2 } + + rip2IfStatEntry OBJECT-TYPE + SYNTAX Rip2IfStatEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A Single Routing Domain in a single Subnet." + INDEX { rip2IfStatAddress } + ::= { rip2IfStatTable 1 } + + Rip2IfStatEntry ::= + SEQUENCE { + rip2IfStatAddress + IpAddress, + rip2IfStatRcvBadPackets + Counter, + rip2IfStatRcvBadRoutes + Counter, + rip2IfStatSentUpdates + Counter, + rip2IfStatStatus + Validation + } + + rip2IfStatAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP Address of this system on the indicated + subnet." + ::= { rip2IfStatEntry 1 } + + rip2IfStatRcvBadPackets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of RIP response packets received by + the RIP process which were subsequently dis- + carded for any reason (e.g. a version 0 packet, + or an unknown command type)." + ::= { rip2IfStatEntry 2 } + + rip2IfStatRcvBadRoutes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of routes, in valid RIP packets, + which were ignored for any reason (e.g. unknown + address family, or invalid metric)." + ::= { rip2IfStatEntry 3 } + + rip2IfStatSentUpdates OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of triggered RIP updates actually + sent on this interface. This explicitly does + NOT include full updates sent containing new + information." + ::= { rip2IfStatEntry 4 } + + rip2IfStatStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Writing invalid has the effect of deleting + this interface." + DEFVAL { valid } + ::= { rip2IfStatEntry 5 } + + -- The RIP Interface Configuration Table. + + rip2IfConfTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rip2IfConfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of subnets which require separate con- + figuration in RIP." + ::= { rip2 3 } + + rip2IfConfEntry OBJECT-TYPE + SYNTAX Rip2IfConfEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A Single Routing Domain in a single Subnet." + INDEX { rip2IfConfAddress } + ::= { rip2IfConfTable 1 } + + Rip2IfConfEntry ::= + SEQUENCE { + rip2IfConfAddress + IpAddress, + rip2IfConfDomain + RouteTag, + rip2IfConfAuthType + INTEGER, + rip2IfConfAuthKey + OCTET STRING (SIZE(0..16)), + rip2IfConfSend + INTEGER, + rip2IfConfReceive + INTEGER, + rip2IfConfDefaultMetric + INTEGER, + rip2IfConfStatus + Validation + } + + rip2IfConfAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP Address of this system on the indicated + subnet." + ::= { rip2IfConfEntry 1 } + + rip2IfConfDomain OBJECT-TYPE + SYNTAX RouteTag + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Value inserted into the Routing Domain field + of all RIP packets sent on this interface." + DEFVAL { '0000'h } + ::= { rip2IfConfEntry 2 } + + rip2IfConfAuthType OBJECT-TYPE + SYNTAX INTEGER { + noAuthentication (1), + simplePassword (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of Authentication used on this inter- + face." + DEFVAL { noAuthentication } + ::= { rip2IfConfEntry 3 } + + rip2IfConfAuthKey OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value to be used as the Authentication Key + whenever the corresponding instance of + rip2IfConfAuthType has the value simplePass- + word. A modification of the corresponding in- + stance of rip2IfConfAuthType does not modify + the rip2IfConfAuthKey value. + + If a string shorter than 16 octets is supplied, + it will be left-justified and padded to 16 oc- + tets, on the right, with nulls (0x00). + + Reading this object always results in an OCTET + STRING of length zero; authentication may not + be bypassed by reading the MIB object." + DEFVAL { ''h } + ::= { rip2IfConfEntry 4 } + + rip2IfConfSend OBJECT-TYPE + SYNTAX INTEGER { + doNotSend (1), + ripVersion1 (2), + rip1Compatible (3), + ripVersion2 (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "What the router sends on this interface. + ripVersion1 implies sending RIP updates compli- + ant with RFC 1058. rip1Compatible implies + broadcasting RIP-2 updates using RFC 1058 route + subsumption rules. ripVersion2 implies multi- + casting RIP-2 updates." + DEFVAL { rip1Compatible } + ::= { rip2IfConfEntry 5 } + + rip2IfConfReceive OBJECT-TYPE + SYNTAX INTEGER { + rip1 (1), + rip2 (2), + rip1OrRip2 (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This indicates which version of RIP updates + are to be accepted. Note that rip2 and + rip1OrRip2 implies reception of multicast pack- + ets." + DEFVAL { rip1OrRip2 } + ::= { rip2IfConfEntry 6 } + + rip2IfConfDefaultMetric OBJECT-TYPE + SYNTAX INTEGER ( 0..15 ) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates what metric is to be + used as a default route in RIP updates ori- + ginated on this interface. A value of zero in- + dicates that no default route should be ori- + ginated; in this case, a default route via + another router may be propagated." + ::= { rip2IfConfEntry 7 } + + + rip2IfConfStatus OBJECT-TYPE + SYNTAX Validation + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Writing invalid has the effect of deleting + this interface." + DEFVAL { valid } + ::= { rip2IfConfEntry 8 } + + -- Peer Table + + -- The RIP Peer Group + -- Implementation of this Group is Optional + + -- This group provides information about active peer + -- relationships intended to assist in debugging. + + rip2PeerTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rip2PeerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of RIP Peers." + ::= { rip2 4 } + + rip2PeerEntry OBJECT-TYPE + SYNTAX Rip2PeerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information regarding a single routing peer." + INDEX { rip2PeerAddress, rip2PeerDomain } + ::= { rip2PeerTable 1 } + + Rip2PeerEntry ::= + SEQUENCE { + rip2PeerAddress + IpAddress, + rip2PeerDomain + RouteTag, + rip2PeerLastUpdate + TimeTicks, + rip2PeerVersion + INTEGER, + rip2PeerRcvBadPackets + Counter, + rip2PeerRcvBadRoutes + Counter + } + + rip2PeerAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IP Address of the Peer System." + ::= { rip2PeerEntry 1 } + + rip2PeerDomain OBJECT-TYPE + SYNTAX RouteTag + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value in the Routing Domain field in RIP + packets received from the peer." + ::= { rip2PeerEntry 2 } + + rip2PeerLastUpdate OBJECT-TYPE + SYNTAX TimeTicks + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The value of sysUpTime when the most recent + RIP update was received from this system." + ::= { rip2PeerEntry 3 } + + rip2PeerVersion OBJECT-TYPE + SYNTAX INTEGER ( 0..255 ) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The RIP version number in the header of the + last RIP packet received." + ::= { rip2PeerEntry 4 } + + rip2PeerRcvBadPackets OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of RIP response packets from this + peer discarded as invalid." + ::= { rip2PeerEntry 5 } + + rip2PeerRcvBadRoutes OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of routes from this peer that were + ignored because the entry format was invalid." + ::= { rip2PeerEntry 6 } + +END diff --git a/pandora_console/attachment/mibs/RFC1398-MIB b/pandora_console/attachment/mibs/RFC1398-MIB new file mode 100644 index 0000000000..8cb2afa0d0 --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1398-MIB @@ -0,0 +1,495 @@ +-- Changes to rfc1398 (Ethernet like MIB): +-- Removed Gauge from the IMPORT list since it was not +-- used. +-- dperkins@scruznet.com + +RFC1398-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Counter + FROM RFC1155-SMI + transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- This MIB module uses the extended OBJECT-TYPE macro as + -- defined in RFC-1212. + + -- this is the MIB module for ethernet-like objects + + dot3 OBJECT IDENTIFIER ::= { transmission 7 } + + -- { dot3 1 } is obsolete and has been deleted. + + -- the Ethernet-like Statistics group + + -- Implementation of this group is mandatory + + dot3StatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot3StatsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Statistics for a collection of ethernet-like + interfaces attached to a particular system." + ::= { dot3 2 } + + dot3StatsEntry OBJECT-TYPE + SYNTAX Dot3StatsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Statistics for a particular interface to an + ethernet-like medium." + INDEX { dot3StatsIndex } + ::= { dot3StatsTable 1 } + + + Dot3StatsEntry ::= SEQUENCE { + dot3StatsIndex + INTEGER, + dot3StatsAlignmentErrors + Counter, + dot3StatsFCSErrors + Counter, + dot3StatsSingleCollisionFrames + Counter, + dot3StatsMultipleCollisionFrames + Counter, + dot3StatsSQETestErrors + Counter, + dot3StatsDeferredTransmissions + Counter, + dot3StatsLateCollisions + Counter, + dot3StatsExcessiveCollisions + Counter, + dot3StatsInternalMacTransmitErrors + Counter, + dot3StatsCarrierSenseErrors + Counter, + dot3StatsFrameTooLongs + Counter, + dot3StatsInternalMacReceiveErrors + Counter + } + + dot3StatsIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index value that uniquely identifies an + interface to an ethernet-like medium. The + interface identified by a particular value of + this index is the same interface as identified + by the same value of ifIndex." + ::= { dot3StatsEntry 1 } + + dot3StatsAlignmentErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of frames received on a particular + interface that are not an integral number of + octets in length and do not pass the FCS check. + + The count represented by an instance of this + object is incremented when the alignmentError + status is returned by the MAC service to the + LLC (or other MAC user). Received frames for + which multiple error conditions obtain are, + according to the conventions of IEEE 802.3 + Layer Management, counted exclusively according + to the error status presented to the LLC." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 2 } + + dot3StatsFCSErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of frames received on a particular + interface that are an integral number of octets + in length but do not pass the FCS check. + + The count represented by an instance of this + object is incremented when the frameCheckError + status is returned by the MAC service to the + LLC (or other MAC user). Received frames for + which multiple error conditions obtain are, + according to the conventions of IEEE 802.3 + Layer Management, counted exclusively according + to the error status presented to the LLC." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 3 } + + dot3StatsSingleCollisionFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of successfully transmitted frames on + a particular interface for which transmission + is inhibited by exactly one collision. + + A frame that is counted by an instance of this + object is also counted by the corresponding + instance of either the ifOutUcastPkts or + ifOutNUcastPkts object and is not counted by + the corresponding instance of the + dot3StatsMultipleCollisionFrames object." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 4 } + + dot3StatsMultipleCollisionFrames OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of successfully transmitted frames on + a particular interface for which transmission + is inhibited by more than one collision. + + A frame that is counted by an instance of this + object is also counted by the corresponding + instance of either the ifOutUcastPkts or + ifOutNUcastPkts object and is not counted by + the corresponding instance of the + dot3StatsSingleCollisionFrames object." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 5 } + + dot3StatsSQETestErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of times that the SQE TEST ERROR + message is generated by the PLS sublayer for a + particular interface. The SQE TEST ERROR + message is defined in section 7.2.2.2.4 of + ANSI/IEEE 802.3-1985 and its generation is + described in section 7.2.4.6 of the same + document." + REFERENCE + "ANSI/IEEE Std 802.3-1985 Carrier Sense + Multiple Access with Collision Detection Access + Method and Physical Layer Specifications" + ::= { dot3StatsEntry 6 } + + + dot3StatsDeferredTransmissions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of frames for which the first + transmission attempt on a particular interface + is delayed because the medium is busy. + + The count represented by an instance of this + object does not include frames involved in + collisions." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 7 } + + dot3StatsLateCollisions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times that a collision is + detected on a particular interface later than + 512 bit-times into the transmission of a + packet. + + Five hundred and twelve bit-times corresponds + to 51.2 microseconds on a 10 Mbit/s system. A + (late) collision included in a count + represented by an instance of this object is + also considered as a (generic) collision for + purposes of other collision-related + statistics." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 8 } + + dot3StatsExcessiveCollisions OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of frames for which transmission on a + particular interface fails due to excessive + collisions." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 9 } + + dot3StatsInternalMacTransmitErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of frames for which transmission on a + particular interface fails due to an internal + MAC sublayer transmit error. A frame is only + counted by an instance of this object if it is + not counted by the corresponding instance of + either the dot3StatsLateCollisions object, the + dot3StatsExcessiveCollisions object, or the + dot3StatsCarrierSenseErrors object. + + The precise meaning of the count represented by + an instance of this object is implementation- + specific. In particular, an instance of this + object may represent a count of transmission + errors on a particular interface that are not + otherwise counted." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 10 } + + dot3StatsCarrierSenseErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times that the carrier sense + condition was lost or never asserted when + attempting to transmit a frame on a particular + interface. + + The count represented by an instance of this + object is incremented at most once per + transmission attempt, even if the carrier sense + condition fluctuates during a transmission + attempt." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 11 } + + + -- { dot3StatsEntry 12 } is not assigned + + dot3StatsFrameTooLongs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of frames received on a particular + interface that exceed the maximum permitted + frame size. + + The count represented by an instance of this + object is incremented when the frameTooLong + status is returned by the MAC service to the + LLC (or other MAC user). Received frames for + which multiple error conditions obtain are, + according to the conventions of IEEE 802.3 + Layer Management, counted exclusively according + to the error status presented to the LLC." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 13 } + + -- { dot3StatsEntry 14 } is not assigned + + -- { dot3StatsEntry 15 } is not assigned + + dot3StatsInternalMacReceiveErrors OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of frames for which reception on a + particular interface fails due to an internal + MAC sublayer receive error. A frame is only + counted by an instance of this object if it is + not counted by the corresponding instance of + either the dot3StatsFrameTooLongs object, the + dot3StatsAlignmentErrors object, or the + dot3StatsFCSErrors object. + + The precise meaning of the count represented by + an instance of this object is implementation- + specific. In particular, an instance of this + object may represent a count of receive errors + on a particular interface that are not + otherwise counted." + REFERENCE + "IEEE 802.3 Layer Management" + ::= { dot3StatsEntry 16 } + + + -- the Ethernet-like Collision Statistics group + + -- Implementation of this group is optional; it is appropriate + -- for all systems which have the necessary metering + + dot3CollTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot3CollEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A collection of collision histograms for a + particular set of interfaces." + ::= { dot3 5 } + + dot3CollEntry OBJECT-TYPE + SYNTAX Dot3CollEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A cell in the histogram of per-frame + collisions for a particular interface. An + instance of this object represents the + frequency of individual MAC frames for which + the transmission (successful or otherwise) on a + particular interface is accompanied by a + particular number of media collisions." + INDEX { dot3CollIndex, dot3CollCount } + ::= { dot3CollTable 1 } + + Dot3CollEntry ::= SEQUENCE { + dot3CollIndex + INTEGER, + dot3CollCount + INTEGER, + dot3CollFrequencies + Counter + } + + dot3CollIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value that uniquely identifies the + interface to which a particular collision + histogram cell pertains. The interface + identified by a particular value of this index + is the same interface as identified by the same + value of ifIndex." + ::= { dot3CollEntry 1 } + + dot3CollCount OBJECT-TYPE + SYNTAX INTEGER (1..16) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of per-frame media collisions for + which a particular collision histogram cell + represents the frequency on a particular + interface." + ::= { dot3CollEntry 2 } + + dot3CollFrequencies OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A count of individual MAC frames for which the + transmission (successful or otherwise) on a + particular interface is accompanied by a + particular number of media collisions." + ::= { dot3CollEntry 3 } + + -- 802.3 Tests + + -- The ifExtnsTestTable defined in RFC 1229 provides a common + -- means for a manager to test any interface corresponding to + + + -- a value of ifIndex. + + -- At this time, one well known test (testFullDuplexLoopBack) is + -- defined in RFC 1229. For ethernet-like interfaces, this test + -- configures the MAC chip and executes an internal loopback + -- test of memory and the MAC chip logic. This loopback test can + -- only be executed if the interface is offline. Once the test + -- has completed, the MAC chip should be reinitialized for network + -- operation, but it should remain offline. + + -- If an error occurs during a test, the object ifExtnsTestResult + -- (defined in RFC 1229) will be set to failed(7). The following + -- two OBJECT IDENTIFIERs may be used to provided more + -- information as values for the object ifExtnsTestCode in + -- RFC 1229: + + dot3Errors OBJECT IDENTIFIER ::= { dot3 7 } + + -- couldn't initialize MAC chip for test + dot3ErrorInitError OBJECT IDENTIFIER ::= { dot3Errors 1 } + + -- expected data not received (or not + -- received correctly) in loopback test + dot3ErrorLoopbackError OBJECT IDENTIFIER ::= { dot3Errors 2 } + + -- Tests + -- TDR Test + + -- Another test, specific to ethernet-like interfaces with the + -- exception of 10BaseT and 10BaseF, is Time-domain Reflectometry + -- (TDR). + -- The TDR value may be useful in determining the approximate + -- distance to a cable fault. It is advisable to repeat this + -- test to check for a consistent resulting TDR value, to verify + -- that there is a fault. + + dot3Tests OBJECT IDENTIFIER ::= { dot3 6 } + dot3TestTdr OBJECT IDENTIFIER ::= { dot3Tests 1 } + + -- A TDR test returns as its result the time interval, measured + -- in 10 MHz ticks or 100 nsec units, between the start of + -- TDR test transmission and the subsequent detection of a + -- collision or deassertion of carrier. On successful completion + -- of a TDR test, the appropriate instance of ifExtnsTestResult + -- contains the OBJECT IDENTIFIER of the MIB object which + -- contains the value of this time interval. + + + -- 802.3 Hardware Chipsets + + -- The object ifExtnsChipSet is provided in RFC 1229 to identify + -- the MAC hardware used to communcate on an interface. The + -- following hardware chipsets are provided for 802.3: + + dot3ChipSets OBJECT IDENTIFIER ::= { dot3 8 } + dot3ChipSetAMD OBJECT IDENTIFIER ::= { dot3ChipSets 1 } + dot3ChipSetAMD7990 OBJECT IDENTIFIER ::= { dot3ChipSetAMD 1 } + dot3ChipSetAMD79900 OBJECT IDENTIFIER ::= { dot3ChipSetAMD 2 } + + dot3ChipSetIntel OBJECT IDENTIFIER ::= { dot3ChipSets 2 } + dot3ChipSetIntel82586 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 1 } + dot3ChipSetIntel82596 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 2 } + dot3ChipSetSeeq OBJECT IDENTIFIER ::= { dot3ChipSets 3 } + dot3ChipSetSeeq8003 OBJECT IDENTIFIER ::= { dot3ChipSetSeeq 1 } + + dot3ChipSetNational OBJECT IDENTIFIER ::= { dot3ChipSets 4 } + dot3ChipSetNational8390 OBJECT IDENTIFIER ::= + { dot3ChipSetNational 1 } + dot3ChipSetNationalSonic OBJECT IDENTIFIER ::= + { dot3ChipSetNational 2 } + + dot3ChipSetFujitsu OBJECT IDENTIFIER ::= { dot3ChipSets 5 } + dot3ChipSetFujitsu86950 OBJECT IDENTIFIER ::= + { dot3ChipSetFujitsu 1 } + dot3ChipSetFujitsu86960 OBJECT IDENTIFIER ::= + { dot3ChipSetFujitsu 2 } + + -- For those chipsets not represented above, OBJECT IDENTIFIER + -- assignment is required in other documentation, e.g., assignment + -- within that part of the registration tree delegated to + -- individual enterprises (see RFC 1155). + +END diff --git a/pandora_console/attachment/mibs/RFC1406-MIB b/pandora_console/attachment/mibs/RFC1406-MIB new file mode 100644 index 0000000000..bc5b73e9eb --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1406-MIB @@ -0,0 +1,1547 @@ +-- Changes to rfc1406 (DS1/E1 MIB): +-- No changes needed. +-- dperkins@scruznet.com + +RFC1406-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Gauge + FROM RFC1155-SMI + transmission, DisplayString + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- This MIB module uses the extended OBJECT-TYPE macro as + -- defined in RFC 1212. + + -- this is the MIB module for the DS1 objects + + ds1 OBJECT IDENTIFIER ::= { transmission 18 } + + -- note that this subsumes cept (19); there is no separate CEPT MIB + + -- The DS1 Near End Group + + -- Implementation of this group is mandatory for all systems + -- that attach to a DS1 Interface. + + -- The DS1 Near End Group consists of four tables: + -- DS1 Configuration + -- DS1 Current + -- DS1 Interval + -- DS1 Total + + -- the DS1 Configuration Table + + dsx1ConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Configuration table." + ::= { ds1 6 } + + dsx1ConfigEntry OBJECT-TYPE + SYNTAX Dsx1ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Configuration table." + INDEX { dsx1LineIndex } + ::= { dsx1ConfigTable 1 } + + Dsx1ConfigEntry ::= + SEQUENCE { + dsx1LineIndex + INTEGER, + dsx1IfIndex + INTEGER, + dsx1TimeElapsed + INTEGER, + dsx1ValidIntervals + INTEGER, + dsx1LineType + INTEGER, + dsx1LineCoding + INTEGER, + dsx1SendCode + INTEGER, + dsx1CircuitIdentifier + DisplayString, + dsx1LoopbackConfig + INTEGER, + dsx1LineStatus + INTEGER, + dsx1SignalMode + INTEGER, + dsx1TransmitClockSource + INTEGER, + dsx1Fdl + INTEGER + } + + dsx1LineIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object is the identifier of a DS1 Inter- + face on a managed device. If there is an ifEn- + try that is directly associated with this and + only this DS1 interface, it should have the + same value as ifIndex. Otherwise, the value + exceeds ifNumber, and is a unique identifier + following this rule: inside interfaces (e.g., + equipment side) with even numbers and outside + interfaces (e.g., network side) with odd + numbers." + ::= { dsx1ConfigEntry 1 } + + dsx1IfIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value for this object is equal to the + value of ifIndex from the Interfaces table of + MIB II (RFC 1213)." + ::= { dsx1ConfigEntry 2 } + + dsx1TimeElapsed OBJECT-TYPE + SYNTAX INTEGER (0..899) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of seconds that have elapsed since + the beginning of the current error-measurement + period." + ::= { dsx1ConfigEntry 3 } + + dsx1ValidIntervals OBJECT-TYPE + SYNTAX INTEGER (0..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of previous intervals for which + valid data was collected. The value will be 96 + unless the interface was brought on-line within + the last 24 hours, in which case the value will + be the number of complete 15 minute intervals + the since interface has been online." + ::= { dsx1ConfigEntry 4 } + + dsx1LineType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + dsx1ESF(2), + dsx1D4(3), + dsx1E1(4), + dsx1E1-CRC(5), + dsx1E1-MF(6), + dsx1E1-CRC-MF(7) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the variety of DS1 + Line implementing this circuit. The type of + circuit affects the number of bits per second + that the circuit can reasonably carry, as well + as the interpretation of the usage and error + statistics. The values, in sequence, describe: + + TITLE: SPECIFICATION: + dsx1ESF Extended SuperFrame DS1 + dsx1D4 AT&T D4 format DS1 + dsx1E1 CCITT Recommendation G.704 + (Table 4a) + dsx1E1-CRC CCITT Recommendation G.704 + (Table 4b) + dsxE1-MF G.704 (Table 4a) with TS16 + multiframing enabled + dsx1E1-CRC-MF G.704 (Table 4b) with TS16 + multiframing enabled" + ::= { dsx1ConfigEntry 5 } + + dsx1LineCoding OBJECT-TYPE + SYNTAX INTEGER { + dsx1JBZS (1), + dsx1B8ZS (2), + dsx1HDB3 (3), + dsx1ZBTSI (4), + dsx1AMI (5), + other(6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable describes the variety of Zero + Code Suppression used on the link, which in + turn affects a number of its characteristics. + + dsx1JBZS refers the Jammed Bit Zero Suppres- + sion, in which the AT&T specification of at + least one pulse every 8 bit periods is literal- + ly implemented by forcing a pulse in bit 8 of + each channel. Thus, only seven bits per chan- + nel, or 1.344 Mbps, is available for data. + + dsx1B8ZS refers to the use of a specified pat- + tern of normal bits and bipolar violations + which are used to replace a sequence of eight + zero bits. + + ANSI Clear Channels may use dsx1ZBTSI, or Zero + Byte Time Slot Interchange. + + E1 links, with or without CRC, use dsx1HDB3 or + dsx1AMI. + + dsx1AMI refers to a mode wherein no zero code + suppression is present and the line encoding + does not solve the problem directly. In this + application, the higher layer must provide data + which meets or exceeds the pulse density re- + quirements, such as inverting HDLC data." + ::= { dsx1ConfigEntry 6 } + + dsx1SendCode OBJECT-TYPE + SYNTAX INTEGER { + dsx1SendNoCode(1), + dsx1SendLineCode(2), + dsx1SendPayloadCode(3), + dsx1SendResetCode(4), + dsx1SendQRS(5), + dsx1Send511Pattern(6), + dsx1Send3in24Pattern(7), + dsx1SendOtherTestPattern(8) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates what type of code is + being sent across the DS1 interface by the dev- + ice. The values mean: + + dsx1SendNoCode + sending looped or normal data + + dsx1SendLineCode + sending a request for a line loopback + + dsx1SendPayloadCode + sending a request for a payload loopback + + + dsx1SendResetCode + sending a loopback termination request + + dsx1SendQRS + sending a Quasi-Random Signal (QRS) test + pattern + + dsx1Send511Pattern + sending a 511 bit fixed test pattern + + dsx1Send3in24Pattern + sending a fixed test pattern of 3 bits set + in 24 + + dsx1SendOtherTestPattern + sending a test pattern other than those + described by this object" + ::= { dsx1ConfigEntry 7 } + + dsx1CircuitIdentifier OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable contains the transmission + vendor's circuit identifier, for the purpose of + facilitating troubleshooting." + ::= { dsx1ConfigEntry 8 } + + dsx1LoopbackConfig OBJECT-TYPE + SYNTAX INTEGER { + dsx1NoLoop(1), + dsx1PayloadLoop(2), + dsx1LineLoop(3), + dsx1OtherLoop(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable represents the loopback confi- + guration of the DS1 interface. Agents support- + ing read/write access should return badValue in + response to a requested loopback state that the + interface does not support. The values mean: + + dsx1NoLoop + Not in the loopback state. A device that + is not capable of performing a loopback on + the interface shall always return this as + it's value. + + dsx1PayloadLoop + The received signal at this interface is + looped through the device. Typically the + received signal is looped back for re- + transmission after it has passed through + the device's framing function. + + dsx1LineLoop + The received signal at this interface does + not go through the device (minimum pene- + tration) but is looped back out. + + dsx1OtherLoop + Loopbacks that are not defined here." + ::= { dsx1ConfigEntry 9 } + + dsx1LineStatus OBJECT-TYPE + SYNTAX INTEGER (1..8191) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the Line Status of the + interface. It contains loopback, failure, re- + ceived 'alarm' and transmitted 'alarm' infor- + mation. + + The dsx1LineStatus is a bit map represented as a sum, + therefore, it can represent multiple failures (alarms) and + a LoopbackState simultaneously. + + dsx1NoAlarm should be set if and only if no other flag is + set. + + If the dsx1LoopbackState bit is set, the loopback in ef- + fect can be determined from the dsx1LoopbackConfig object. + + The various bit positions are: + 1 dsx1NoAlarm No Alarm Present + 2 dsx1RcvFarEndLOF Far end LOF (a.k.a., Yellow Alarm) + 4 dsx1XmtFarEndLOF Near end sending LOF Indication + 8 dsx1RcvAIS Far end sending AIS + + + 16 dsx1XmtAIS Near end sending AIS + 32 dsx1LossOfFrame Near end LOF (a.k.a., Red Alarm) + 64 dsx1LossOfSignal Near end Loss Of Signal + 128 dsx1LoopbackState Near end is looped + 256 dsx1T16AIS E1 TS16 AIS + 512 dsx1RcvFarEndLOMF Far End Sending TS16 LOMF + 1024 dsx1XmtFarEndLOMF Near End Sending TS16 LOMF + 2048 dsx1RcvTestCode Near End detects a test code + 4096 dsx1OtherFailure any line status not defined here" + ::= { dsx1ConfigEntry 10 } + + dsx1SignalMode OBJECT-TYPE + SYNTAX INTEGER { + none (1), + robbedBit (2), + bitOriented (3), + messageOriented (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "'none' indicates that no bits are reserved for + signaling on this channel. + + 'robbedBit' indicates that T1 Robbed Bit Sig- + naling is in use. + + 'bitOriented' indicates that E1 Channel Asso- + ciated Signaling is in use. + + 'messageOriented' indicates that Common Chan- + nel Signaling is in use either on channel 16 of + an E1 link or channel 24 of a T1." + ::= { dsx1ConfigEntry 11 } + + dsx1TransmitClockSource OBJECT-TYPE + SYNTAX INTEGER { + loopTiming (1), + localTiming (2), + throughTiming (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The source of Tranmit Clock. + 'loopTiming' indicates that the recovered re- + ceive clock is used as the transmit clock. + + 'localTiming' indicates that a local clock + source is used. + + 'throughTiming' indicates that recovered re- + ceive clock from another interface is used as + the transmit clock." + ::= { dsx1ConfigEntry 12 } + + dsx1Fdl OBJECT-TYPE + SYNTAX INTEGER { + other(1), + dsx1Ansi-T1-403(2), + dsx1Att-54016(4), + dsx1Fdl-none(8) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This bitmap describes the use of the facili- + ties data link, and is the sum of the capabili- + ties: + + 'other' indicates that a protocol other than + one following is used. + + 'dsx1Ansi-T1-403' refers to the FDL exchange + recommended by ANSI. + + 'dsx1Att-54016' refers to ESF FDL exchanges. + + 'dsx1Fdl-none' indicates that the device does + not use the FDL." + ::= { dsx1ConfigEntry 13 } + + -- the DS1 Current Table + + -- The DS1 current table contains various statistics being + -- collected for the current 15 minute interval. + + dsx1CurrentTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Current table." + ::= { ds1 7 } + + dsx1CurrentEntry OBJECT-TYPE + SYNTAX Dsx1CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Current table." + INDEX { dsx1CurrentIndex } + ::= { dsx1CurrentTable 1 } + + Dsx1CurrentEntry ::= + SEQUENCE { + dsx1CurrentIndex + INTEGER, + dsx1CurrentESs + Gauge, + dsx1CurrentSESs + Gauge, + dsx1CurrentSEFSs + Gauge, + dsx1CurrentUASs + Gauge, + dsx1CurrentCSSs + Gauge, + dsx1CurrentPCVs + Gauge, + dsx1CurrentLESs + Gauge, + dsx1CurrentBESs + Gauge, + dsx1CurrentDMs + Gauge, + dsx1CurrentLCVs + Gauge + } + + dsx1CurrentIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS1 interface to which this entry is applica- + ble. The interface identified by a particular + value of this index is the same interface as + identified by the same value as a dsx1LineIndex + object instance." + ::= { dsx1CurrentEntry 1 } + + dsx1CurrentESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Errored Seconds, encountered by + a DS1 interface in the current 15 minute inter- + val." + ::= { dsx1CurrentEntry 2 } + + dsx1CurrentSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Severely Errored Seconds encoun- + tered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1CurrentEntry 3 } + + dsx1CurrentSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Severely Errored Framing Seconds + encountered by a DS1 interface in the current + 15 minute interval." + ::= { dsx1CurrentEntry 4 } + + dsx1CurrentUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Unavailable Seconds encountered + by a DS1 interface in the current 15 minute in- + terval." + ::= { dsx1CurrentEntry 5 } + + + dsx1CurrentCSSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Controlled Slip Seconds encoun- + tered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1CurrentEntry 6 } + + dsx1CurrentPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Path Coding Violations encoun- + tered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1CurrentEntry 7 } + + dsx1CurrentLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Errored Seconds encountered + by a DS1 interface in the current 15 minute in- + terval." + ::= { dsx1CurrentEntry 8 } + + dsx1CurrentBESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Bursty Errored Seconds (BESs) + encountered by a DS1 interface in the current + 15 minute interval." + ::= {dsx1CurrentEntry 9 } + + dsx1CurrentDMs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Degraded Minutes (DMs) encoun- + tered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1CurrentEntry 10 } + + dsx1CurrentLCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Code Violations (LCVs) en- + countered by a DS1 interface in the current 15 + minute interval." + ::= {dsx1CurrentEntry 11 } + + -- the DS1 Interval + + -- The DS1 Interval Table contains various statistics + -- collected by each DS1 Interface over the previous 24 hours of + -- operation. The past 24 hours are broken into 96 completed + -- 15 minute intervals. + + dsx1IntervalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Interval table." + ::= { ds1 8 } + + dsx1IntervalEntry OBJECT-TYPE + SYNTAX Dsx1IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Interval table." + INDEX { dsx1IntervalIndex, dsx1IntervalNumber } + ::= { dsx1IntervalTable 1 } + + Dsx1IntervalEntry ::= + SEQUENCE { + dsx1IntervalIndex + INTEGER, + dsx1IntervalNumber + INTEGER, + dsx1IntervalESs + Gauge, + dsx1IntervalSESs + Gauge, + dsx1IntervalSEFSs + Gauge, + dsx1IntervalUASs + Gauge, + dsx1IntervalCSSs + Gauge, + dsx1IntervalPCVs + Gauge, + dsx1IntervalLESs + Gauge, + dsx1IntervalBESs + Gauge, + dsx1IntervalDMs + Gauge, + dsx1IntervalLCVs + Gauge + } + + dsx1IntervalIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS1 interface to which this entry is applica- + ble. The interface identified by a particular + value of this index is the same interface as + identified by the same value as a dsx1LineIndex + object instance." + ::= { dsx1IntervalEntry 1 } + + dsx1IntervalNumber OBJECT-TYPE + SYNTAX INTEGER (1..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number between 1 and 96, where 1 is the most + recently completed 15 minute interval and 96 is + the least recently completed 15 minutes inter- + val (assuming that all 96 intervals are + valid)." + ::= { dsx1IntervalEntry 2 } + + + dsx1IntervalESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Errored Seconds encountered by a + DS1 interface in one of the previous 96, indi- + vidual 15 minute, intervals." + ::= { dsx1IntervalEntry 3 } + + dsx1IntervalSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Severely Errored Seconds encoun- + tered by a DS1 interface in one of the previous + 96, individual 15 minute, intervals." + ::= { dsx1IntervalEntry 4 } + + dsx1IntervalSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Severely Errored Framing Seconds + encountered by a DS1 interface in one of the + previous 96, individual 15 minute, intervals." + ::= { dsx1IntervalEntry 5 } + + dsx1IntervalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Unavailable Seconds encountered + by a DS1 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx1IntervalEntry 6 } + + dsx1IntervalCSSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Controlled Slip Seconds encoun- + tered by a DS1 interface in one of the previous + 96, individual 15 minute, intervals." + ::= { dsx1IntervalEntry 7 } + + dsx1IntervalPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Path Coding Violations encoun- + tered by a DS1 interface in one of the previous + 96, individual 15 minute, intervals." + ::= { dsx1IntervalEntry 8 } + + dsx1IntervalLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Errored Seconds encountered + by a DS1 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx1IntervalEntry 9 } + + dsx1IntervalBESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Bursty Errored Seconds (BESs) + encountered by a DS1 interface in one of the + previous 96, individual 15 minute, intervals." + ::= {dsx1IntervalEntry 10 } + + dsx1IntervalDMs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Degraded Minutes (DMs) encoun- + tered by a DS1 interface in one of the previous + 96, individual 15 minute, intervals." + ::= { dsx1IntervalEntry 11 } + + dsx1IntervalLCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Code Violations (LCVs) en- + countered by a DS1 interface in the current 15 + minute interval." + ::= {dsx1IntervalEntry 12 } + + -- the DS1 Total + + -- The DS1 Total Table contains the cumulative sum of the + -- various statistics for the 24 hour period preceding the + -- current interval. + + dsx1TotalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Total table. 24 hour interval." + ::= { ds1 9 } + + dsx1TotalEntry OBJECT-TYPE + SYNTAX Dsx1TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Total table." + INDEX { dsx1TotalIndex } + ::= { dsx1TotalTable 1 } + + Dsx1TotalEntry ::= + SEQUENCE { + dsx1TotalIndex + INTEGER, + dsx1TotalESs + Gauge, + dsx1TotalSESs + Gauge, + dsx1TotalSEFSs + Gauge, + dsx1TotalUASs + Gauge, + dsx1TotalCSSs + Gauge, + dsx1TotalPCVs + Gauge, + dsx1TotalLESs + Gauge, + dsx1TotalBESs + Gauge, + dsx1TotalDMs + Gauge, + dsx1TotalLCVs + Gauge + } + + dsx1TotalIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS1 interface to which this entry is applica- + ble. The interface identified by a particular + value of this index is the same interface as + identified by the same value as a dsx1LineIndex + object instance." + ::= { dsx1TotalEntry 1 } + + dsx1TotalESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Errored Seconds encountered by a + DS1 interface in the previous 24 hour interval" + ::= { dsx1TotalEntry 2 } + + dsx1TotalSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Severely Errored Seconds encoun- + tered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1TotalEntry 3 } + + dsx1TotalSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Severely Errored Framing Seconds + encountered by a DS1 interface in the previous + 24 hour interval." + ::= { dsx1TotalEntry 4 } + + dsx1TotalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Unavailable Seconds encountered + by a DS1 interface in the previous 24 hour in- + terval." + ::= { dsx1TotalEntry 5 } + + dsx1TotalCSSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Controlled Slip Seconds encoun- + tered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1TotalEntry 6 } + + dsx1TotalPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Path Coding Violations encoun- + tered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1TotalEntry 7 } + + + dsx1TotalLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Errored Seconds encountered + by a DS1 interface in the previous 24 hour in- + terval." + ::= { dsx1TotalEntry 8 } + + dsx1TotalBESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Bursty Errored Seconds (BESs) + encountered by a DS1 interface in the previous + 24 hour interval." + ::= { dsx1TotalEntry 9 } + + dsx1TotalDMs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Degraded Minutes (DMs) encoun- + tered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1TotalEntry 10 } + + dsx1TotalLCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Code Violations (LCVs) en- + countered by a DS1 interface in the current 15 + minute interval." + ::= {dsx1TotalEntry 11 } + + -- The DS1 Far End Group + + -- Implementation of this group is optional for all systems + -- that attach to a DS1 Interface. + + + -- The DS1 Far End Group consists of three tables: + -- DS1 Far End Current + -- DS1 Far End Interval + -- DS1 Far End Total + + -- The DS1 Far End Current Table + + -- The DS1 Far End Current table contains various statistics + -- being collected for the current 15 minute interval. + -- The statistics are collected from the far end messages on the + -- Facilities Data Link. The definitions are the same as + -- described for the near-end information. + + dsx1FarEndCurrentTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1FarEndCurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Far End Current table." + ::= { ds1 10 } + + dsx1FarEndCurrentEntry OBJECT-TYPE + SYNTAX Dsx1FarEndCurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Far End Current table." + INDEX { dsx1FarEndCurrentIndex } + ::= { dsx1FarEndCurrentTable 1 } + + Dsx1FarEndCurrentEntry ::= + SEQUENCE { + dsx1FarEndCurrentIndex + INTEGER, + dsx1FarEndTimeElapsed + INTEGER, + dsx1FarEndValidIntervals + INTEGER, + dsx1FarEndCurrentESs + Gauge, + dsx1FarEndCurrentSESs + Gauge, + dsx1FarEndCurrentSEFSs + Gauge, + dsx1FarEndCurrentUASs + Gauge, + dsx1FarEndCurrentCSSs + Gauge, + dsx1FarEndCurrentLESs + Gauge, + dsx1FarEndCurrentPCVs + Gauge, + dsx1FarEndCurrentBESs + Gauge, + dsx1FarEndCurrentDMs + Gauge + } + + dsx1FarEndCurrentIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS1 interface to which this entry is applica- + ble. The interface identified by a particular + value of this index is the same interface as + identified by the same value an dsx1LineIndex + object instance." + ::= { dsx1FarEndCurrentEntry 1 } + + dsx1FarEndTimeElapsed OBJECT-TYPE + SYNTAX INTEGER (0..899) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of seconds that have elapsed + since the beginning of the far end current + error-measurement period." + ::= { dsx1FarEndCurrentEntry 2 } + + dsx1FarEndValidIntervals OBJECT-TYPE + SYNTAX INTEGER (0..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of previous far end intervals + for which valid data was collected. The + value will be 96 unless the interface was + brought online within the last 24 hours, + in which case the value will be the number + of complete 15 minute far end intervals + since the interface has been online." + ::= { dsx1FarEndCurrentEntry 3 } + + dsx1FarEndCurrentESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far Far End Errored Seconds en- + countered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1FarEndCurrentEntry 4 } + + dsx1FarEndCurrentSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Severely Errored Seconds + encountered by a DS1 interface in the current + 15 minute interval." + ::= { dsx1FarEndCurrentEntry 5 } + + dsx1FarEndCurrentSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Severely Errored Framing + Seconds encountered by a DS1 interface in the + current 15 minute interval." + ::= { dsx1FarEndCurrentEntry 6 } + + dsx1FarEndCurrentUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Unavailable Seconds encountered + by a DS1 interface in the current 15 minute in- + terval." + ::= { dsx1FarEndCurrentEntry 7 } + + + dsx1FarEndCurrentCSSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Controlled Slip Seconds + encountered by a DS1 interface in the current + 15 minute interval." + ::= { dsx1FarEndCurrentEntry 8 } + + dsx1FarEndCurrentLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Line Errored Seconds en- + countered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1FarEndCurrentEntry 9 } + + dsx1FarEndCurrentPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Path Coding Violations + reported via the far end block error count en- + countered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1FarEndCurrentEntry 10 } + + dsx1FarEndCurrentBESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Bursty Errored Seconds (BESs) + encountered by a DS1 interface in the current + 15 minute interval." + ::= {dsx1FarEndCurrentEntry 11 } + + dsx1FarEndCurrentDMs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Degraded Minutes (DMs) encoun- + tered by a DS1 interface in the current 15 + minute interval." + ::= { dsx1FarEndCurrentEntry 12 } + + -- The DS1 Far End Interval Table + + -- The DS1 Far End Interval Table contains various statistics + -- collected by each DS1 interface over the previous 24 hours of + -- operation. The past 24 hours are broken into 96 + -- completed 15 minute intervals. + + dsx1FarEndIntervalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1FarEndIntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Far End Interval table." + ::= { ds1 11 } + + dsx1FarEndIntervalEntry OBJECT-TYPE + SYNTAX Dsx1FarEndIntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Far End Interval table." + INDEX { dsx1FarEndIntervalIndex, + dsx1FarEndIntervalNumber } + ::= { dsx1FarEndIntervalTable 1 } + + Dsx1FarEndIntervalEntry ::= + SEQUENCE { + dsx1FarEndIntervalIndex + INTEGER, + dsx1FarEndIntervalNumber + INTEGER, + dsx1FarEndIntervalESs + Gauge, + dsx1FarEndIntervalSESs + Gauge, + dsx1FarEndIntervalSEFSs + Gauge, + dsx1FarEndIntervalUASs + Gauge, + dsx1FarEndIntervalCSSs + Gauge, + dsx1FarEndIntervalLESs + Gauge, + dsx1FarEndIntervalPCVs + Gauge, + dsx1FarEndIntervalBESs + Gauge, + dsx1FarEndIntervalDMs + Gauge + } + + dsx1FarEndIntervalIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS1 interface to which this entry is applica- + ble. The interface identified by a particular + value of this index is the same interface as + identified by the same value as a dsx1LineIndex + object instance." + ::= { dsx1FarEndIntervalEntry 1 } + + dsx1FarEndIntervalNumber OBJECT-TYPE + SYNTAX INTEGER (1..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number between 1 and 96, where 1 is the most + recently completed 15 minute interval and 96 is + the least recently completed 15 minutes inter- + val (assuming that all 96 intervals are + valid)." + ::= { dsx1FarEndIntervalEntry 2 } + + dsx1FarEndIntervalESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Errored Seconds encoun- + tered by a DS1 interface in one of the previous + 96, individual 15 minute, intervals." + ::= { dsx1FarEndIntervalEntry 3 } + + + dsx1FarEndIntervalSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Severely Errored Seconds + encountered by a DS1 interface in one of the + previous 96, individual 15 minute, intervals." + ::= { dsx1FarEndIntervalEntry 4 } + + dsx1FarEndIntervalSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Severely Errored Framing + Seconds encountered by a DS1 interface in one + of the previous 96, individual 15 minute, in- + tervals." + ::= { dsx1FarEndIntervalEntry 5 } + + dsx1FarEndIntervalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Unavailable Seconds encountered + by a DS1 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx1FarEndIntervalEntry 6 } + + dsx1FarEndIntervalCSSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Controlled Slip Seconds + encountered by a DS1 interface in one of the + previous 96, individual 15 minute, intervals." + ::= { dsx1FarEndIntervalEntry 7 } + + dsx1FarEndIntervalLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Line Errored Seconds en- + countered by a DS1 interface in one of the pre- + vious 96, individual 15 minute, intervals." + ::= { dsx1FarEndIntervalEntry 8 } + + dsx1FarEndIntervalPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Path Coding Violations + reported via the far end block error count en- + countered by a DS1 interface in one of the pre- + vious 96, individual 15 minute, intervals." + ::= { dsx1FarEndIntervalEntry 9 } + + dsx1FarEndIntervalBESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Bursty Errored Seconds (BESs) + encountered by a DS1 interface in one of the + previous 96, individual 15 minute, intervals." + ::= {dsx1FarEndIntervalEntry 10 } + + dsx1FarEndIntervalDMs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Degraded Minutes (DMs) encoun- + tered by a DS1 interface in one of the previous + 96, individual 15 minute, intervals." + ::= { dsx1FarEndIntervalEntry 11 } + + -- The DS1 Far End Total Table + + -- The DS1 Far End Total Table contains the cumulative sum of the + -- various statistics for the 24 hour period preceding the + -- current interval. + + + dsx1FarEndTotalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1FarEndTotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Far End Total table." + ::= { ds1 12 } + + dsx1FarEndTotalEntry OBJECT-TYPE + SYNTAX Dsx1FarEndTotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Far End Total table." + INDEX { dsx1FarEndTotalIndex } + ::= { dsx1FarEndTotalTable 1 } + + Dsx1FarEndTotalEntry ::= + SEQUENCE { + dsx1FarEndTotalIndex + INTEGER, + dsx1FarEndTotalESs + Gauge, + dsx1FarEndTotalSESs + Gauge, + dsx1FarEndTotalSEFSs + Gauge, + dsx1FarEndTotalUASs + Gauge, + dsx1FarEndTotalCSSs + Gauge, + dsx1FarEndTotalLESs + Gauge, + dsx1FarEndTotalPCVs + Gauge, + dsx1FarEndTotalBESs + Gauge, + dsx1FarEndTotalDMs + Gauge + } + + dsx1FarEndTotalIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS1 interface to which this entry is applica- + ble. The interface identified by a particular + value of this index is the same interface as + identified by the same value an dsx1LineIndex + object instance." + ::= { dsx1FarEndTotalEntry 1 } + + dsx1FarEndTotalESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Errored Seconds encoun- + tered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1FarEndTotalEntry 2 } + + dsx1FarEndTotalSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Severely Errored Seconds + encountered by a DS1 interface in the previous + 24 hour interval." + ::= { dsx1FarEndTotalEntry 3 } + + dsx1FarEndTotalSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Severely Errored Framing + Seconds encountered by a DS1 interface in the + previous 24 hour interval." + ::= { dsx1FarEndTotalEntry 4 } + + dsx1FarEndTotalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Unavailable Seconds encountered + by a DS1 interface in the previous 24 hour in- + terval." + ::= { dsx1FarEndTotalEntry 5 } + + dsx1FarEndTotalCSSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Controlled Slip Seconds + encountered by a DS1 interface in the previous + 24 hour interval." + ::= { dsx1FarEndTotalEntry 6 } + + dsx1FarEndTotalLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Line Errored Seconds en- + countered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1FarEndTotalEntry 7 } + + dsx1FarEndTotalPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Far End Path Coding Violations + reported via the far end block error count en- + countered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1FarEndTotalEntry 8 } + + dsx1FarEndTotalBESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Bursty Errored Seconds (BESs) + encountered by a DS1 interface in the previous + 24 hour interval." + ::= { dsx1FarEndTotalEntry 9 } + + + dsx1FarEndTotalDMs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Degraded Minutes (DMs) encoun- + tered by a DS1 interface in the previous 24 + hour interval." + ::= { dsx1FarEndTotalEntry 10 } + + -- the DS1 Fractional Group + + -- Implementation of this group is mandatory for those + -- systems dividing a DS1 into channels containing different + -- data streams that are of local interest. Systems which + -- are indifferent to data content, such as CSUs, need not + -- implement it. + + -- The DS1 fractional table identifies which DS1 channels + -- associated with a CSU are being used to support a + -- logical interface, i.e., an entry in the interfaces table + -- from the Internet-standard MIB. + + -- For example, consider an application managing a North + -- American ISDN Primary Rate link whose division is a 384 kbit/s + -- H1 "B" Channel for Video, a second H1 for data to a primary + -- routing peer, and 12 64 kbit/s H0 "B" Channels. Consider that + -- some subset of the H0 channels are used for voice and the + -- remainder are available for dynamic data calls. + + -- we count a total of 14 interfaces multiplexed onto the DS1 + -- interface. Six DS1 channels (for the sake of the example, + -- channels 1..6) are used for Video, six more (7..11 and 13) + -- are used for data, and the remaining 12 are are in channels + -- 12 and 14..24. + + -- Let us further imagine that ifIndex 2 is of type DS1 and + -- refers to the DS1 interface, and that the interfaces layered + -- onto it are numbered 3..16. + + -- We might describe the allocation of channels, in the + -- dsx1FracTable, as follows: + + -- dsx1FracIfIndex.2. 1 = 3 dsx1FracIfIndex.2.13 = 4 + -- dsx1FracIfIndex.2. 2 = 3 dsx1FracIfIndex.2.14 = 6 + -- dsx1FracIfIndex.2. 3 = 3 dsx1FracIfIndex.2.15 = 7 + -- dsx1FracIfIndex.2. 4 = 3 dsx1FracIfIndex.2.16 = 8 + -- dsx1FracIfIndex.2. 5 = 3 dsx1FracIfIndex.2.17 = 9 + -- dsx1FracIfIndex.2. 6 = 3 dsx1FracIfIndex.2.18 = 10 + -- dsx1FracIfIndex.2. 7 = 4 dsx1FracIfIndex.2.19 = 11 + -- dsx1FracIfIndex.2. 8 = 4 dsx1FracIfIndex.2.20 = 12 + -- dsx1FracIfIndex.2. 9 = 4 dsx1FracIfIndex.2.21 = 13 + -- dsx1FracIfIndex.2.10 = 4 dsx1FracIfIndex.2.22 = 14 + -- dsx1FracIfIndex.2.11 = 4 dsx1FracIfIndex.2.23 = 15 + -- dsx1FracIfIndex.2.12 = 5 dsx1FracIfIndex.2.24 = 16 + + -- For North American (DS1) interfaces, there are 24 legal + -- channels, numbered 1 through 24. + + -- For G.704 interfaces, there are 31 legal channels, + -- numbered 1 through 31. The channels (1..31) correspond + -- directly to the equivalently numbered time-slots. + + dsx1FracTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx1FracEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS1 Fractional table." + ::= { ds1 13 } + + dsx1FracEntry OBJECT-TYPE + SYNTAX Dsx1FracEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS1 Fractional table." + INDEX { dsx1FracIndex, dsx1FracNumber } + ::= { dsx1FracTable 1 } + + Dsx1FracEntry ::= + SEQUENCE { + dsx1FracIndex + INTEGER, + dsx1FracNumber + INTEGER, + dsx1FracIfIndex + INTEGER + } + + dsx1FracIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS1 interface to which this entry is applica- + ble. The interface identified by a particular + value of this index is the same interface as + identified by the same value an dsx1LineIndex + object instance." + ::= { dsx1FracEntry 1 } + + dsx1FracNumber OBJECT-TYPE + SYNTAX INTEGER (1..31) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The channel number for this entry." + ::= { dsx1FracEntry 2 } + + dsx1FracIfIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An index value that uniquely identifies an in- + terface. The interface identified by a partic- + ular value of this index is the same interface + as identified by the same value an ifIndex ob- + ject instance. If no interface is currently us- + ing a channel, the value should be zero. If a + single interface occupies more than one time + slot, that ifIndex value will be found in mul- + tiple time slots." + ::= { dsx1FracEntry 3 } + +END diff --git a/pandora_console/attachment/mibs/RFC1407-MIB b/pandora_console/attachment/mibs/RFC1407-MIB new file mode 100644 index 0000000000..31c0497e0f --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1407-MIB @@ -0,0 +1,1398 @@ +-- Changes to rfc1407 (DS3/E3 MIB): +-- No changes needed. +-- dperkins@scruznet.com + +RFC1407-MIB DEFINITIONS ::= BEGIN + + IMPORTS + Gauge + FROM RFC1155-SMI + DisplayString, transmission + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212; + + -- This MIB module uses the extended OBJECT-TYPE macro + -- as defined in RFC 1212. + + ds3 OBJECT IDENTIFIER ::= { transmission 30 } + + -- The DS3/E3 Near End Group + + -- Implementation of this group is mandatory for all + -- systems that attach to a DS3/E3 Interface. + + -- The DS3/E3 Near End Group consists of four tables: + -- DS3/E3 Configuration + -- DS3/E3 Current + -- DS3/E3 Interval + -- DS3/E3 Total + + -- the DS3/E3 Configuration + + dsx3ConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3/E3 Configuration table." + ::= { ds3 5 } + + dsx3ConfigEntry OBJECT-TYPE + SYNTAX Dsx3ConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3/E3 Configuration table." + INDEX { dsx3LineIndex } + ::= { dsx3ConfigTable 1 } + + + Dsx3ConfigEntry ::= + SEQUENCE { + dsx3LineIndex + INTEGER, + dsx3IfIndex + INTEGER, + dsx3TimeElapsed + INTEGER, + dsx3ValidIntervals + INTEGER, + dsx3LineType + INTEGER, + dsx3LineCoding + INTEGER, + dsx3SendCode + INTEGER, + dsx3CircuitIdentifier + DisplayString, + dsx3LoopbackConfig + INTEGER, + dsx3LineStatus + INTEGER, + dsx3TransmitClockSource + INTEGER + } + + dsx3LineIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This object is the identifier of a DS3/E3 + Interface on a managed device. If there is an + ifEntry that is directly associated with this + and only this DS3/E3 interface, it should have + the same value as ifIndex. Otherwise, number + the dsx3LineIndices with an unique identifier + following the rules of choosing a number that + is greater than ifNumber and numbering the + inside interfaces (e.g., equipment side) with + even numbers and outside interfaces (e.g, + network side) with odd numbers." + ::= { dsx3ConfigEntry 1 } + + dsx3IfIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This value for this object is equal to the + value of ifIndex from the Interfaces table of + MIB II (RFC 1213)." + ::= { dsx3ConfigEntry 2 } + + dsx3TimeElapsed OBJECT-TYPE + SYNTAX INTEGER (0..899) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of seconds that have elapsed since + the beginning of the near end current error- + measurement period." + ::= { dsx3ConfigEntry 3 } + + dsx3ValidIntervals OBJECT-TYPE + SYNTAX INTEGER (0..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of previous near end intervals for + which valid data was collected. The value will be + 96 unless the interface was brought online within + the last 24 hours, in which case the value will be + the number of complete 15 minute near end + intervals since the interface has been online." + ::= { dsx3ConfigEntry 4 } + + dsx3LineType OBJECT-TYPE + SYNTAX INTEGER { + dsx3other(1), + dsx3M23(2), + dsx3SYNTRAN(3), + dsx3CbitParity(4), + dsx3ClearChannel(5), + e3other(6), + e3Framed(7), + e3Plcp(8) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the variety of DS3 C-bit + or E3 application + implementing this interface. The type of + interface affects the interpretation of the + usage and error statistics. + + + The rate of DS3 is 44.736 Mbps and E3 is + 34.368 Mbps. + The dsx3ClearChannel value means that the C-bits + are not used except for sending/receiving + AIS. + + The values, in sequence, describe: + + TITLE: SPECIFICATION: + dsx3M23 ANSI T1.107-1988 + dsx3SYNTRAN ANSI T1.107-1988 + dsx3CbitParity ANSI T1.107a-1989 + dsx3ClearChannel ANSI T1.102-1987 + e3Framed CCITT G.751 + e3Plcp ETSI T/NA(91)18." + ::= { dsx3ConfigEntry 5 } + + dsx3LineCoding OBJECT-TYPE + SYNTAX INTEGER { + dsx3Other(1), + dsx3B3ZS(2), + e3HDB3(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable describes the variety of Zero Code + Suppression used on this interface, which in turn + affects a number of its characteristics. + + dsx3B3ZS and e3HDB3 refer to the use of specified + patterns of normal bits and bipolar violations + which are used to replace sequences of zero bits + of a specified length." + ::= { dsx3ConfigEntry 6 } + + dsx3SendCode OBJECT-TYPE + SYNTAX INTEGER { + dsx3SendNoCode(1), + dsx3SendLineCode(2), + dsx3SendPayloadCode(3), + dsx3SendResetCode(4), + dsx3SendDS1LoopCode(5), + dsx3SendTestPattern(6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates what type of code is + being sent across the DS3/E3 interface by the + device. (These are optional for E3 interfaces.) + The values mean: + + dsx3SendNoCode + sending looped or normal data + + dsx3SendLineCode + sending a request for a line loopback + + dsx3SendPayloadCode + sending a request for a payload loopback + (i.e., all DS1/E1s in a DS3/E3 frame) + + dsx3SendResetCode + sending a loopback deactivation request + + dsx3SendDS1LoopCode + requesting to loopback a particular DS1/E1 + within a DS3/E3 frame + + dsx3SendTestPattern + sending a test pattern." + ::= { dsx3ConfigEntry 7 } + + dsx3CircuitIdentifier OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable contains the transmission vendor's + circuit identifier, for the purpose of + facilitating troubleshooting." + ::= { dsx3ConfigEntry 8 } + + dsx3LoopbackConfig OBJECT-TYPE + SYNTAX INTEGER { + dsx3NoLoop(1), + dsx3PayloadLoop(2), + dsx3LineLoop(3), + dsx3OtherLoop(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable represents the loopback configuration + of the DS3/E3 interface. + The values mean: + + dsx3NoLoop + Not in the loopback state. A device that is + not capable of performing a loopback on + the interface shall always return this as + it's value. + + dsx3PayloadLoop + The received signal at this interface is looped + through the device. + Typically the received signal + is looped back for retransmission after it has + passed through the device's framing function. + + dsx3LineLoop + The received signal at this interface does not + go through the device (minimum penetration) but + is looped back out. + + dsx3OtherLoop + Loopbacks that are not defined here." + ::= { dsx3ConfigEntry 9 } + + dsx3LineStatus OBJECT-TYPE + SYNTAX INTEGER (1..1023) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the + Line Status of the interface. + It contains loopback state information + and failure state information. + The dsx3LineStatus is a bit map represented + as a sum, therefore, + it can represent multiple failures + and a loopback (see dsx3LoopbackConfig object + for the type of loopback) + simultaneously. + The dsx3NoAlarm should be set if and only if + no other flag is set. + + The various bit positions are: + 1 dsx3NoAlarm No alarm present + 2 dsx3RcvRAIFailure Receiving Yellow/Remote + Alarm Indication + 4 dsx3XmitRAIAlarm Transmitting Yellow/Remote + Alarm Indication + + + 8 dsx3RcvAIS Receiving AIS failure state + 16 dsx3XmitAIS Transmitting AIS + 32 dsx3LOF Receiving LOF failure state + 64 dsx3LOS Receiving LOS failure state + 128 dsx3LoopbackState Looping the received signal + 256 dsx3RcvTestCode Receiving a Test Pattern + 512 dsx3OtherFailure any line status not defined + here" + ::= { dsx3ConfigEntry 10 } + + dsx3TransmitClockSource OBJECT-TYPE + SYNTAX INTEGER { + loopTiming(1), + localTiming(2), + throughTiming(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The source of Transmit Clock. + is derived from the recovered receive clock of + another DS3 interface." + ::= { dsx3ConfigEntry 11 } + + -- the DS3/E3 Current + + -- The DS3/E3 current table contains various statistics being + -- collected for the current 15 minute interval. + + dsx3CurrentTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3/E3 Current table." + ::= { ds3 6 } + + dsx3CurrentEntry OBJECT-TYPE + SYNTAX Dsx3CurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3/E3 Current table." + INDEX { dsx3CurrentIndex } + ::= { dsx3CurrentTable 1 } + + + Dsx3CurrentEntry ::= + SEQUENCE { + dsx3CurrentIndex + INTEGER, + dsx3CurrentPESs + Gauge, + dsx3CurrentPSESs + Gauge, + dsx3CurrentSEFSs + Gauge, + dsx3CurrentUASs + Gauge, + dsx3CurrentLCVs + Gauge, + dsx3CurrentPCVs + Gauge, + dsx3CurrentLESs + Gauge, + dsx3CurrentCCVs + Gauge, + dsx3CurrentCESs + Gauge, + dsx3CurrentCSESs + Gauge + } + + dsx3CurrentIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3/E3 interface to which this entry is + applicable. The interface identified by a + particular value of this index is the same + interface as identified by the same value an + dsx3LineIndex object instance." + ::= { dsx3CurrentEntry 1 } + + dsx3CurrentPESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Errored Seconds, encountered by a DS3 interface in + the current 15 minute interval." + ::= { dsx3CurrentEntry 2 } + + + dsx3CurrentPSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Severely Errored Seconds, encountered by a DS3 + interface in the current 15 minute interval." + ::= { dsx3CurrentEntry 3 } + + dsx3CurrentSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, encountered by a + DS3/E3 interface in the current 15 minute + interval." + ::= { dsx3CurrentEntry 4 } + + dsx3CurrentUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, encountered by a DS3 + interface in the current 15 minute interval." + ::= { dsx3CurrentEntry 5 } + + dsx3CurrentLCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Line + Coding Violations encountered by a DS3/E3 + interface in the current 15 minute interval." + ::= { dsx3CurrentEntry 6 } + + dsx3CurrentPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Coding Violations, encountered by a DS3 interface + in the current 15 minute interval." + ::= { dsx3CurrentEntry 7 } + + dsx3CurrentLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Errored Seconds encountered by + a DS3/E3 interface in the current 15 minute + interval." + ::= { dsx3CurrentEntry 8 } + + dsx3CurrentCCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Coding Violations encountered + by a DS3 interface in the current 15 minute + interval." + ::= { dsx3CurrentEntry 9 } + + dsx3CurrentCESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Errored Seconds encountered + by a DS3 interface in the current 15 minute + interval." + ::= { dsx3CurrentEntry 10 } + + dsx3CurrentCSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Severely Errored Seconds + encountered by a DS3 interface in the current 15 + minute interval." + ::= { dsx3CurrentEntry 11 } + + -- the DS3/E3 Interval + + -- The DS3/E3 Interval Table contains various statistics + -- collected by each DS3/E3 Interface over the previous 24 + + + -- hours of operation. The past 24 hours are broken into 96 + -- completed 15 minute intervals. + + dsx3IntervalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3/E3 Interval table." + ::= { ds3 7 } + + dsx3IntervalEntry OBJECT-TYPE + SYNTAX Dsx3IntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3/E3 Interval table." + INDEX { dsx3IntervalIndex, dsx3IntervalNumber } + ::= { dsx3IntervalTable 1 } + + Dsx3IntervalEntry ::= + SEQUENCE { + dsx3IntervalIndex + INTEGER, + dsx3IntervalNumber + INTEGER, + dsx3IntervalPESs + Gauge, + dsx3IntervalPSESs + Gauge, + dsx3IntervalSEFSs + Gauge, + dsx3IntervalUASs + Gauge, + dsx3IntervalLCVs + Gauge, + dsx3IntervalPCVs + Gauge, + dsx3IntervalLESs + Gauge, + dsx3IntervalCCVs + Gauge, + dsx3IntervalCESs + Gauge, + dsx3IntervalCSESs + Gauge + } + + + dsx3IntervalIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3/E3 interface to which this entry is + applicable. The interface identified by a + particular value of this index is the same + interface as identified by the same value an + dsx3LineIndex object instance." + ::= { dsx3IntervalEntry 1 } + + dsx3IntervalNumber OBJECT-TYPE + SYNTAX INTEGER (1..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number between 1 and 96, where 1 is the most + recently completed 15 minute interval and 96 is + the least recently completed 15 minutes interval + (assuming that all 96 intervals are valid)." + ::= { dsx3IntervalEntry 2 } + + dsx3IntervalPESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Errored Seconds, encountered by a DS3 interface in + one of the previous 96, individual 15 minute, + intervals." + ::= { dsx3IntervalEntry 3 } + + dsx3IntervalPSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Severely Errored Seconds, encountered by a DS3 + interface in one of the previous 96, individual 15 + minute, intervals." + ::= { dsx3IntervalEntry 4 } + + dsx3IntervalSEFSs OBJECT-TYPE + SYNTAX Gauge + + + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, encountered by a + DS3/E3 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx3IntervalEntry 5 } + + dsx3IntervalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, encountered by a DS3 + interface in one of the previous 96, individual 15 + minute, intervals." + ::= { dsx3IntervalEntry 6 } + + dsx3IntervalLCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Line + Coding Violations encountered by a DS3/E3 + interface in one of the previous 96, individual 15 + minute, intervals." + ::= { dsx3IntervalEntry 7 } + + dsx3IntervalPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Coding Violations, encountered by a DS3 interface + in one of the previous 96, individual 15 minute, + intervals." + ::= { dsx3IntervalEntry 8 } + + dsx3IntervalLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Errored Seconds (BPVs or + + + illegal zero sequences) encountered by a DS3/E3 + interface in one of the previous 96, individual + 15 minute, intervals." + ::= { dsx3IntervalEntry 9 } + + dsx3IntervalCCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Coding Violations encountered + by a DS3 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx3IntervalEntry 10 } + + dsx3IntervalCESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Errored Seconds encountered + by a DS3 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx3IntervalEntry 11 } + + dsx3IntervalCSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Severely Errored Seconds + encountered by a DS3 interface in one of the + previous 96, individual 15 minute, intervals." + ::= { dsx3IntervalEntry 12 } + + -- the DS3/E3 Total + + -- The DS3/E3 Total Table contains the cumulative sum of the + -- various statistics for the 24 hour period preceding the + -- current interval. + + dsx3TotalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3/E3 Total table. 24 hour interval." + ::= { ds3 8 } + + dsx3TotalEntry OBJECT-TYPE + SYNTAX Dsx3TotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3/E3 Total table." + INDEX { dsx3TotalIndex } + ::= { dsx3TotalTable 1 } + + Dsx3TotalEntry ::= + SEQUENCE { + dsx3TotalIndex + INTEGER, + dsx3TotalPESs + Gauge, + dsx3TotalPSESs + Gauge, + dsx3TotalSEFSs + Gauge, + dsx3TotalUASs + Gauge, + dsx3TotalLCVs + Gauge, + dsx3TotalPCVs + Gauge, + dsx3TotalLESs + Gauge, + dsx3TotalCCVs + Gauge, + dsx3TotalCESs + Gauge, + dsx3TotalCSESs + Gauge + } + + dsx3TotalIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3/E3 interface to which this entry is + applicable. The interface identified by a + particular value of this index is the same + interface as identified by the same value an + dsx3LineIndex object instance." + ::= { dsx3TotalEntry 1 } + + dsx3TotalPESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Errored Seconds, encountered by a DS3 interface in + the previous 24 hour interval" + ::= { dsx3TotalEntry 2 } + + dsx3TotalPSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Severely Errored Seconds, encountered by a DS3 + interface in the previous 24 hour interval." + ::= { dsx3TotalEntry 3 } + + dsx3TotalSEFSs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Severely Errored Framing Seconds, encountered by a + DS3/E3 interface in the previous 24 hour + interval." + ::= { dsx3TotalEntry 4 } + + dsx3TotalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, encountered by a DS3 + interface in the previous 24 hour interval." + ::= { dsx3TotalEntry 5 } + + dsx3TotalLCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Line + Coding Violations encountered by a DS3/E3 + interface in the previous 24 hour interval." + ::= { dsx3TotalEntry 6 } + + dsx3TotalPCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of P-bit + Coding Violations, encountered by a DS3 interface + in the previous 24 hour interval." + ::= { dsx3TotalEntry 7 } + + dsx3TotalLESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of Line Errored Seconds (BPVs or + illegal zero sequences) encountered by a DS3/E3 + interface in the previous 24 hour interval." + ::= { dsx3TotalEntry 8 } + + dsx3TotalCCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Coding Violations encountered + by a DS3 interface in the previous 24 hour + interval." + ::= { dsx3TotalEntry 9 } + + dsx3TotalCESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Errored Seconds encountered + by a DS3 interface in the previous 24 hour + interval." + ::= { dsx3TotalEntry 10 } + + dsx3TotalCSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of C-bit Severely Errored Seconds + encountered by a DS3 interface in the previous 24 + hour interval." + ::= { dsx3TotalEntry 11 } + + -- The DS3 Far End Group + + -- Implementation of this group is optional for all systems + -- that attach to a DS3 Interface. + -- However, only C-bit Parity and SYNTRAN DS3 applications + -- have the capability (option) of providing this information. + + -- The DS3 Far End Group consists of four tables: + -- DS3 Far End Configuration + -- DS3 Far End Current + -- DS3 Far End Interval + -- DS3 Far End Total + + -- The DS3 Far End Configuration Table contains + -- configuration information + -- reported in the C-bits from the remote end. + + dsx3FarEndConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3FarEndConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Far End Configuration table." + ::= { ds3 9 } + + dsx3FarEndConfigEntry OBJECT-TYPE + SYNTAX Dsx3FarEndConfigEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Far End Configuration table." + INDEX { dsx3FarEndLineIndex } + ::= { dsx3FarEndConfigTable 1 } + + Dsx3FarEndConfigEntry ::= + SEQUENCE { + dsx3FarEndLineIndex + INTEGER, + dsx3FarEndEquipCode + DisplayString, + dsx3FarEndLocationIDCode + DisplayString, + dsx3FarEndFrameIDCode + DisplayString, + dsx3FarEndUnitCode + DisplayString, + dsx3FarEndFacilityIDCode + DisplayString + } + + dsx3FarEndLineIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3 interface + to which this entry is applicable. The + interface identified by a particular value of + this index is the same interface as identified + by the same value an dsx3LineIndex object + instance." + ::= { dsx3FarEndConfigEntry 1 } + + dsx3FarEndEquipCode OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..10)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the Far End Equipment Identification code + that describes the specific piece of equipment. + It is sent within the Path + Identification Message." + ::= { dsx3FarEndConfigEntry 2 } + + dsx3FarEndLocationIDCode OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..11)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the Far End Location Identification code + that describes the specific location of the + equipment. + It is sent within the Path + Identification Message." + ::= { dsx3FarEndConfigEntry 3 } + + + dsx3FarEndFrameIDCode OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..10)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the Far End Frame Identification code + that identifies where the equipment is located + within a building at a given location. + It is sent within the Path + Identification Message." + ::= { dsx3FarEndConfigEntry 4 } + + dsx3FarEndUnitCode OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..6)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the Far End code + that identifies the equipment location within a bay. + It is sent within the Path + Identification Message." + ::= { dsx3FarEndConfigEntry 5 } + + dsx3FarEndFacilityIDCode OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..38)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This code identifies a specific Far End DS3 path. + It is sent within the Path + Identification Message." + ::= { dsx3FarEndConfigEntry 6 } + + -- The DS3 Far End Current + + -- The DS3 Far End Current table contains various statistics + -- being collected for the current 15 minute interval. + -- The statistics are collected from the far end block error + -- code within the C-bits. + + dsx3FarEndCurrentTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3FarEndCurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Far End Current table." + ::= { ds3 10 } + + + dsx3FarEndCurrentEntry OBJECT-TYPE + SYNTAX Dsx3FarEndCurrentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Far End Current table." + INDEX { dsx3FarEndCurrentIndex } + ::= { dsx3FarEndCurrentTable 1 } + + Dsx3FarEndCurrentEntry ::= + SEQUENCE { + dsx3FarEndCurrentIndex + INTEGER, + dsx3FarEndTimeElapsed + INTEGER, + dsx3FarEndValidIntervals + INTEGER, + dsx3FarEndCurrentCESs + Gauge, + dsx3FarEndCurrentCSESs + Gauge, + dsx3FarEndCurrentCCVs + Gauge, + dsx3FarEndCurrentUASs + Gauge + } + + dsx3FarEndCurrentIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3 interface + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an dsx3LineIndex object instance." + ::= { dsx3FarEndCurrentEntry 1 } + + dsx3FarEndTimeElapsed OBJECT-TYPE + SYNTAX INTEGER (0..899) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of seconds that have elapsed since the + beginning of the far end current error-measurement + period." + ::= { dsx3FarEndCurrentEntry 2 } + + dsx3FarEndValidIntervals OBJECT-TYPE + SYNTAX INTEGER (0..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of previous far end intervals for + which valid data was collected. The value will be + 96 unless the interface was brought online within + the last 24 hours, in which case the value will be + the number of complete 15 minute far end intervals + since the interface has been online." + ::= { dsx3FarEndCurrentEntry 3 } + + dsx3FarEndCurrentCESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Far + Far End C-bit Errored Seconds encountered by a DS3 + interface in the current 15 minute interval." + ::= { dsx3FarEndCurrentEntry 4 } + + dsx3FarEndCurrentCSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End C-bit Severely Errored Seconds + encountered by a DS3 interface in the current 15 + minute interval." + ::= { dsx3FarEndCurrentEntry 5 } + + dsx3FarEndCurrentCCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End C-bit Coding Violations reported via + the far end block error count + encountered by a + DS3 interface in the current 15 minute interval." + ::= { dsx3FarEndCurrentEntry 6 } + + + dsx3FarEndCurrentUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End unavailable seconds + encountered by a + DS3 interface in the current 15 minute interval." + ::= { dsx3FarEndCurrentEntry 7 } + + -- The DS3 Far End Interval + + -- The DS3 Far End Interval Table contains various statistics + -- collected by each DS3 interface over the previous 24 + -- hours of operation. The past 24 hours are broken into 96 + -- completed 15 minute intervals. + + dsx3FarEndIntervalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3FarEndIntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Far End Interval table." + ::= { ds3 11 } + + dsx3FarEndIntervalEntry OBJECT-TYPE + SYNTAX Dsx3FarEndIntervalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Far + End Interval table." + INDEX { dsx3FarEndIntervalIndex, + dsx3FarEndIntervalNumber } + ::= { dsx3FarEndIntervalTable 1 } + + Dsx3FarEndIntervalEntry ::= + SEQUENCE { + dsx3FarEndIntervalIndex + INTEGER, + dsx3FarEndIntervalNumber + INTEGER, + dsx3FarEndIntervalCESs + Gauge, + dsx3FarEndIntervalCSESs + Gauge, + dsx3FarEndIntervalCCVs + Gauge, + dsx3FarEndIntervalUASs + Gauge + } + + dsx3FarEndIntervalIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3 interface + to which this entry is applicable. The + interface identified by a particular value of + this index is the same interface as identified + by the same value an dsx3LineIndex object + instance." + ::= { dsx3FarEndIntervalEntry 1 } + + dsx3FarEndIntervalNumber OBJECT-TYPE + SYNTAX INTEGER (1..96) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A number between 1 and 96, where 1 is the most + recently completed 15 minute interval and 96 is + the least recently completed 15 minutes + interval (assuming that all 96 intervals are + valid)." + ::= { dsx3FarEndIntervalEntry 2 } + + dsx3FarEndIntervalCESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End C-bit Errored Seconds encountered + by a DS3 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx3FarEndIntervalEntry 3 } + + dsx3FarEndIntervalCSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End C-bit Severely Errored Seconds + encountered by a DS3 interface in one of the + previous 96, individual 15 minute, intervals." + ::= { dsx3FarEndIntervalEntry 4 } + + dsx3FarEndIntervalCCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End C-bit Coding Violations reported via + the far end block error count + encountered by a + DS3 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx3FarEndIntervalEntry 5 } + + dsx3FarEndIntervalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End unavailable seconds + encountered by a + DS3 interface in one of the previous 96, + individual 15 minute, intervals." + ::= { dsx3FarEndIntervalEntry 6 } + + -- The DS3 Far End Total + + -- The DS3 Far End Total Table contains the cumulative sum + -- of the various statistics for the 24 hour period preceding + -- the current interval. + + dsx3FarEndTotalTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3FarEndTotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Far End Total table. 24 hour interval." + ::= { ds3 12 } + + dsx3FarEndTotalEntry OBJECT-TYPE + SYNTAX Dsx3FarEndTotalEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Far End Total table." + INDEX { dsx3FarEndTotalIndex } + ::= { dsx3FarEndTotalTable 1 } + + Dsx3FarEndTotalEntry ::= + SEQUENCE { + dsx3FarEndTotalIndex + INTEGER, + dsx3FarEndTotalCESs + Gauge, + dsx3FarEndTotalCSESs + Gauge, + dsx3FarEndTotalCCVs + Gauge, + dsx3FarEndTotalUASs + Gauge + } + + dsx3FarEndTotalIndex OBJECT-TYPE + SYNTAX INTEGER (1..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3 interface + to which this entry is applicable. The interface + identified by a particular value of this index is + the same interface as identified by the same value + an dsx3LineIndex object instance." + ::= { dsx3FarEndTotalEntry 1 } + + dsx3FarEndTotalCESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of Far + End C-bit Errored Seconds encountered by a DS3 + interface in the previous 24 hour interval." + ::= { dsx3FarEndTotalEntry 2 } + + dsx3FarEndTotalCSESs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End C-bit Severely Errored Seconds + encountered by a DS3 interface in the previous 24 + hour interval." + ::= { dsx3FarEndTotalEntry 3 } + + dsx3FarEndTotalCCVs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End C-bit Coding Violations reported via the + far end block error count + encountered by a + DS3 interface in the previous 24 hour interval." + ::= { dsx3FarEndTotalEntry 4 } + + dsx3FarEndTotalUASs OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The counter associated with the number of + Far End unavailable seconds + encountered by a + DS3 interface in the previous 24 hour interval." + ::= { dsx3FarEndTotalEntry 5 } + + -- the DS3/E3 Fractional Group + + -- Implementation of this group is optional. It is designed + -- for those systems dividing a DS3/E3 into channels + -- containing different data streams that are of local + -- interest. + + -- The DS3/E3 fractional table identifies which DS3/E3 + -- channels associated with a CSU are being used to + -- support a logical interface, i.e., an entry in the + -- interfaces table from the Internet-standard MIB. + + -- For example, consider a DS3 device with 4 high speed links + -- carrying router traffic, a feed for voice, a feed for + -- video, and a synchronous channel for a non-routed + -- protocol. + -- We might describe the allocation of channels, in the + + + -- dsx3FracTable, as follows: + + -- dsx3FracIfIndex.2. 1 = 3 dsx3FracIfIndex.2.15 = 4 + -- dsx3FracIfIndex.2. 2 = 3 dsx3FracIfIndex.2.16 = 6 + -- dsx3FracIfIndex.2. 3 = 3 dsx3FracIfIndex.2.17 = 6 + -- dsx3FracIfIndex.2. 4 = 3 dsx3FracIfIndex.2.18 = 6 + -- dsx3FracIfIndex.2. 5 = 3 dsx3FracIfIndex.2.19 = 6 + -- dsx3FracIfIndex.2. 6 = 3 dsx3FracIfIndex.2.20 = 6 + -- dsx3FracIfIndex.2. 7 = 4 dsx3FracIfIndex.2.21 = 6 + -- dsx3FracIfIndex.2. 8 = 4 dsx3FracIfIndex.2.22 = 6 + -- dsx3FracIfIndex.2. 9 = 4 dsx3FracIfIndex.2.23 = 6 + -- dsx3FracIfIndex.2.10 = 4 dsx3FracIfIndex.2.24 = 6 + -- dsx3FracIfIndex.2.11 = 4 dsx3FracIfIndex.2.25 = 6 + -- dsx3FracIfIndex.2.12 = 5 dsx3FracIfIndex.2.26 = 6 + -- dsx3FracIfIndex.2.13 = 5 dsx3FracIfIndex.2.27 = 6 + -- dsx3FracIfIndex.2.14 = 5 dsx3FracIfIndex.2.28 = 6 + + -- For dsx3M23, dsx3SYNTRAN, dsx3CbitParity, and + -- dsx3ClearChannel there are 28 legal channels, numbered 1 + -- through 28. + + -- For e3Framed there are 16 legal channels, + -- numbered 1 through 16. The channels (1..16) correspond + -- directly to the equivalently numbered time-slots. + + dsx3FracTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dsx3FracEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The DS3 Fractional table." + ::= { ds3 13 } + + dsx3FracEntry OBJECT-TYPE + SYNTAX Dsx3FracEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the DS3 Fractional table." + INDEX { dsx3FracIndex, dsx3FracNumber } + ::= { dsx3FracTable 1 } + + Dsx3FracEntry ::= + SEQUENCE { + dsx3FracIndex + INTEGER, + dsx3FracNumber + INTEGER, + dsx3FracIfIndex + INTEGER + } + + dsx3FracIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The index value which uniquely identifies the + DS3 interface to which this entry is applicable + The interface identified by a particular + value of this index is the same interface as + identified by the same value an dsx3LineIndex + object instance." + ::= { dsx3FracEntry 1 } + + dsx3FracNumber OBJECT-TYPE + SYNTAX INTEGER (1..31) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The channel number for this entry." + ::= { dsx3FracEntry 2 } + + dsx3FracIfIndex OBJECT-TYPE + SYNTAX INTEGER (1..'7fffffff'h) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "An index value that uniquely identifies an + interface. The interface identified by a particular + value of this index is the same interface + as identified by the same value an ifIndex + object instance. If no interface is currently using + a channel, the value should be zero. If a + single interface occupies more than one time + slot, that ifIndex value will be found in multiple + time slots." + ::= { dsx3FracEntry 3 } + +END diff --git a/pandora_console/attachment/mibs/RFC1414-MIB b/pandora_console/attachment/mibs/RFC1414-MIB new file mode 100644 index 0000000000..84f9ca4e8e --- /dev/null +++ b/pandora_console/attachment/mibs/RFC1414-MIB @@ -0,0 +1,134 @@ +-- Changes to rfc1414 (Identification MIB): +-- Added IMPORT for mib-2. +-- dperkins@scruznet.com + +RFC1414-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE + FROM RFC-1212 + mib-2, + tcpConnLocalAddress, tcpConnLocalPort, + tcpConnRemAddress, tcpConnRemPort + FROM RFC1213-MIB; + + ident OBJECT IDENTIFIER ::= { mib-2 24 } + + -- conformance groups + + identInfo OBJECT IDENTIFIER ::= { ident 1 } + + -- textual conventions + + -- none + + -- the ident information system group + -- + -- implementation of this group is mandatory + + identTable OBJECT-TYPE + SYNTAX SEQUENCE OF IdentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing user information for TCP + connections. + + Note that this table contains entries for all TCP + connections on a managed system. The + corresponding instance of tcpConnState (defined in + MIB-II) indicates the state of a particular + connection." + ::= { identInfo 1 } + + identEntry OBJECT-TYPE + SYNTAX IdentEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "User information about a particular TCP + connection." + INDEX { tcpConnLocalAddress, tcpConnLocalPort, + tcpConnRemAddress, tcpConnRemPort } + ::= { identTable 1 } + + IdentEntry ::= + SEQUENCE { + identStatus INTEGER, + identOpSys OCTET STRING, + identCharset OCTET STRING, + identUserid OCTET STRING, + identMisc OCTET STRING + } + + identStatus OBJECT-TYPE + SYNTAX INTEGER { + noError(1), + unknownError(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether user information for the + associated TCP connection can be determined. A + value of `noError(1)' indicates that user + information is available. A value of + `unknownError(2)' indicates that user information + is not available." + ::= { identEntry 1 } + + identOpSys OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..40)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the type of operating system in use. + In addition to identifying an operating system, + each assignment made for this purpose also + (implicitly) identifies the textual format and + maximum size of the corresponding identUserid and + identMisc objects. + + The legal values for the `indentOpSys' strings + are those listed in the SYSTEM NAMES section of + the most recent edition of the ASSIGNED NUMBERS + RFC [8]." + ::= { identEntry 2 } + + identCharset OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..40)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the repertoire of the corresponding + identUserid and identMisc objects. + + The legal values for the `identCharset' strings + are those listed in the CHARACTER SET section of + the most recent edition of the ASSIGNED NUMBERS + RFC [8]." + ::= { identEntry 3 } + + identUserid OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the user's identity. Interpretation of + this object requires examination of the + corresponding value of the identOpSys and + identCharset objects." + ::= { identEntry 4 } + + identMisc OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates miscellaneous information about the + user. Interpretation of this object requires + examination of the corresponding value of the + identOpSys and identCharset objects." + ::= { identEntry 5 } + +END diff --git a/pandora_console/attachment/mibs/RS-232-MIB b/pandora_console/attachment/mibs/RS-232-MIB new file mode 100644 index 0000000000..a0f5515dd3 --- /dev/null +++ b/pandora_console/attachment/mibs/RS-232-MIB @@ -0,0 +1,801 @@ +-- Changes for RFC1659 - RS-232-MIB +-- Removed unused IMPORT of NOTIFICATION-TYPE. +-- The following enumerated values need to be changed +-- so they do not contain hyphens: simplex-receive & simplex-send. +-- dperkins@scruznet.com + + + RS-232-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + Counter32, Integer32 + FROM SNMPv2-SMI + InterfaceIndex + FROM IF-MIB + transmission + FROM RFC1213-MIB + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF; + + + rs232 MODULE-IDENTITY + LAST-UPDATED "9405261700Z" + ORGANIZATION "IETF Character MIB Working Group" + CONTACT-INFO + " Bob Stewart + Postal: Xyplex, Inc. + 295 Foster Street + Littleton, MA 01460 + + Tel: 508-952-4816 + Fax: 508-952-4887 + E-mail: rlstewart@eng.xyplex.com" + DESCRIPTION + "The MIB module for RS-232-like hardware devices." + ::= { transmission 33 } + + + -- Generic RS-232-like information + + rs232Number OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of ports (regardless of their current + state) in the RS-232-like general port table." + ::= { rs232 1 } + + + -- RS-232-like General Port Table + + rs232PortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port entries. The number of entries is + given by the value of rs232Number." + ::= { rs232 2 } + + rs232PortEntry OBJECT-TYPE + SYNTAX Rs232PortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Status and parameter values for a port." + INDEX { rs232PortIndex } + ::= { rs232PortTable 1 } + + Rs232PortEntry ::= + SEQUENCE { + rs232PortIndex + InterfaceIndex, + rs232PortType + INTEGER, + rs232PortInSigNumber + Integer32, + rs232PortOutSigNumber + Integer32, + rs232PortInSpeed + Integer32, + rs232PortOutSpeed + Integer32, + rs232PortInFlowType + INTEGER, + rs232PortOutFlowType + INTEGER + } + + rs232PortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of ifIndex for the port. By convention + and if possible, hardware port numbers map directly + to external connectors. The value for each port must + remain constant at least from one re-initialization + of the network management agent to the next." + ::= { rs232PortEntry 1 } + + rs232PortType OBJECT-TYPE + SYNTAX INTEGER { other(1), rs232(2), rs422(3), + rs423(4), v35(5), x21(6) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The port's hardware type." + ::= { rs232PortEntry 2 } + + rs232PortInSigNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input signals for the port in the + input signal table (rs232PortInSigTable). The table + contains entries only for those signals the software + can detect and that are useful to observe." + ::= { rs232PortEntry 3 } + + rs232PortOutSigNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of output signals for the port in the + output signal table (rs232PortOutSigTable). The + table contains entries only for those signals the + software can assert and that are useful to observe." + ::= { rs232PortEntry 4 } + + rs232PortInSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's input speed in bits per second. Note that + non-standard values, such as 9612, are probably not allowed + on most implementations." + ::= { rs232PortEntry 5 } + + rs232PortOutSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's output speed in bits per second. Note that + non-standard values, such as 9612, are probably not allowed + on most implementations." + ::= { rs232PortEntry 6 } + + rs232PortInFlowType OBJECT-TYPE + SYNTAX INTEGER { none(1), ctsRts(2), dsrDtr(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's type of input flow control. 'none' + indicates no flow control at this level. + 'ctsRts' and 'dsrDtr' indicate use of the indicated + hardware signals." + ::= { rs232PortEntry 7 } + + rs232PortOutFlowType OBJECT-TYPE + SYNTAX INTEGER { none(1), ctsRts(2), dsrDtr(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's type of output flow control. 'none' + indicates no flow control at this level. + 'ctsRts' and 'dsrDtr' indicate use of the indicated + hardware signals." + ::= { rs232PortEntry 8 } + + + -- RS-232-like Asynchronous Port Table + + rs232AsyncPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232AsyncPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of asynchronous port entries. Entries need + not exist for synchronous ports." + ::= { rs232 3 } + + rs232AsyncPortEntry OBJECT-TYPE + SYNTAX Rs232AsyncPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Status and parameter values for an asynchronous + port." + INDEX { rs232AsyncPortIndex } + ::= { rs232AsyncPortTable 1 } + + Rs232AsyncPortEntry ::= + SEQUENCE { + rs232AsyncPortIndex + InterfaceIndex, + rs232AsyncPortBits + INTEGER, + rs232AsyncPortStopBits + INTEGER, + rs232AsyncPortParity + INTEGER, + rs232AsyncPortAutobaud + INTEGER, + rs232AsyncPortParityErrs + Counter32, + rs232AsyncPortFramingErrs + Counter32, + rs232AsyncPortOverrunErrs + Counter32 + + } + + rs232AsyncPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each port. Its value is the + same as rs232PortIndex for the port." + ::= { rs232AsyncPortEntry 1 } + + rs232AsyncPortBits OBJECT-TYPE + SYNTAX INTEGER (5..8) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's number of bits in a character." + ::= { rs232AsyncPortEntry 2 } + + rs232AsyncPortStopBits OBJECT-TYPE + SYNTAX INTEGER { one(1), two(2), + oneAndHalf(3), dynamic(4) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's number of stop bits." + ::= { rs232AsyncPortEntry 3 } + + rs232AsyncPortParity OBJECT-TYPE + SYNTAX INTEGER { none(1), odd(2), even(3), + mark(4), space(5) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The port's sense of a character parity bit." + ::= { rs232AsyncPortEntry 4 } + + rs232AsyncPortAutobaud OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A control for the port's ability to automatically + sense input speed. + + When rs232PortAutoBaud is 'enabled', a port may + autobaud to values different from the set values for + speed, parity, and character size. As a result a + network management system may temporarily observe + values different from what was previously set." + ::= { rs232AsyncPortEntry 5 } + + rs232AsyncPortParityErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of characters with a parity error, + input from the port since system re-initialization + and while the port state was 'up' or 'test'." + ::= { rs232AsyncPortEntry 6 } + + rs232AsyncPortFramingErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of characters with a framing error, + input from the port since system re-initialization + and while the port state was 'up' or 'test'." + ::= { rs232AsyncPortEntry 7 } + + rs232AsyncPortOverrunErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of characters with an overrun error, + input from the port since system re-initialization + and while the port state was 'up' or 'test'." + ::= { rs232AsyncPortEntry 8 } + + + -- RS-232-like Synchronous Port Table + + rs232SyncPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232SyncPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of asynchronous port entries. Entries need + not exist for synchronous ports." + ::= { rs232 4 } + + rs232SyncPortEntry OBJECT-TYPE + SYNTAX Rs232SyncPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Status and parameter values for a synchronous + port." + INDEX { rs232SyncPortIndex } + ::= { rs232SyncPortTable 1 } + + Rs232SyncPortEntry ::= + SEQUENCE { + rs232SyncPortIndex + InterfaceIndex, + rs232SyncPortClockSource + INTEGER, + rs232SyncPortFrameCheckErrs + Counter32, + rs232SyncPortTransmitUnderrunErrs + Counter32, + rs232SyncPortReceiveOverrunErrs + Counter32, + rs232SyncPortInterruptedFrames + Counter32, + rs232SyncPortAbortedFrames + Counter32, + rs232SyncPortRole + INTEGER, + rs232SyncPortEncoding + INTEGER, + rs232SyncPortRTSControl + INTEGER, + rs232SyncPortRTSCTSDelay + Integer32, + rs232SyncPortMode + INTEGER, + rs232SyncPortIdlePattern + INTEGER, + rs232SyncPortMinFlags + Integer32 + } + + rs232SyncPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A unique value for each port. Its value is the + same as rs232PortIndex for the port." + ::= { rs232SyncPortEntry 1 } + + rs232SyncPortClockSource OBJECT-TYPE + SYNTAX INTEGER { internal(1), external(2), split(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Source of the port's bit rate clock. 'split' means + the tranmit clock is internal and the receive clock + is external." + ::= { rs232SyncPortEntry 2 } + + rs232SyncPortFrameCheckErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of frames with an invalid frame check + sequence, input from the port since system + re-initialization and while the port state was 'up' + or 'test'." + ::= { rs232SyncPortEntry 3 } + + rs232SyncPortTransmitUnderrunErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of frames that failed to be + transmitted on the port since system + re-initialization and while the port state was 'up' + or 'test' because data was not available to the + transmitter in time." + ::= { rs232SyncPortEntry 4 } + + rs232SyncPortReceiveOverrunErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of frames that failed to be received + on the port since system re-initialization and while + the port state was 'up' or 'test' because the + receiver did not accept the data in time." + ::= { rs232SyncPortEntry 5 } + + rs232SyncPortInterruptedFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total number of frames that failed to be received + or transmitted on the port due to loss of modem + signals since system re-initialization and while the + port state was 'up' or 'test'." + ::= { rs232SyncPortEntry 6 } + + rs232SyncPortAbortedFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of frames aborted on the port due to + receiving an abort sequence since system + re-initialization and while the port state was 'up' + or 'test'." + ::= { rs232SyncPortEntry 7 } + + rs232SyncPortRole OBJECT-TYPE + SYNTAX INTEGER { dte(1), dce(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The role the device is playing that is using this port. + dte means the device is performing the role of + data terminal equipment + dce means the device is performing the role of + data circuit-terminating equipment." + DEFVAL { dce } + ::= { rs232SyncPortEntry 8 } + + rs232SyncPortEncoding OBJECT-TYPE + SYNTAX INTEGER { nrz(1), nrzi(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The bit stream encoding technique that is in effect + for this port. + nrz for Non-Return to Zero encoding + nrzi for Non-Return to Zero Inverted encoding." + DEFVAL { nrz } + ::= { rs232SyncPortEntry 9 } + + rs232SyncPortRTSControl OBJECT-TYPE + SYNTAX INTEGER { controlled(1), constant(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The method used to control the Request To Send (RTS) + signal. + + controlled when the DTE is asserts RTS each time + data needs to be transmitted and drops + RTS at some point after data + transmission begins. + + If rs232SyncPortRole is 'dte', the + RTS is an output signal. The device + will issue a RTS and wait for a CTS + from the DCE before starting to + transmit. + + If rs232SyncPortRole is 'dce', the + RTS is an input signal. The device + will issue a CTS only after having + received RTS and waiting the + rs232SyncPortRTSCTSDelay interval. + + constant when the DTE constantly asserts RTS." + DEFVAL { constant } + ::= { rs232SyncPortEntry 10 } + + rs232SyncPortRTSCTSDelay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The interval (in milliseconds) that the DCE must wait + after it sees RTS asserted before asserting CTS. This + object exists in support of older synchronous devices + that cannot recognize CTS within a certain interval + after it asserts RTS." + DEFVAL { 0 } + ::= { rs232SyncPortEntry 11 } + + rs232SyncPortMode OBJECT-TYPE + SYNTAX INTEGER { fdx(1), hdx(2), simplex-receive(3), + simplex-send(4) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The mode of operation of the port with respect to the + direction and simultaneity of data transfer. + + fdx when frames on the data link can be + transmitted and received at the same + time + + hdx when frames can either be received + from the data link or transmitted + onto the data link but not at the + same time. + + simplex-receive when frames can only be received on + this data link. + + simplex-send when frames can only be sent on this + data link." + DEFVAL { fdx } + ::= { rs232SyncPortEntry 12 } + + rs232SyncPortIdlePattern OBJECT-TYPE + SYNTAX INTEGER { mark(1), space(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The bit pattern used to indicate an idle line." + DEFVAL { space } + ::= { rs232SyncPortEntry 13 } + + rs232SyncPortMinFlags OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The minimum number of flag patterns this port needs in + order to recognize the end of one frame and the start + of the next. Plausible values are 1 and 2." + DEFVAL { 2 } + ::= { rs232SyncPortEntry 14 } + + + -- Input Signal Table + + rs232InSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232InSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port input control signal entries + implemented and visible to the software on the port, + and useful to monitor." + ::= { rs232 5 } + + rs232InSigEntry OBJECT-TYPE + SYNTAX Rs232InSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Input control signal status for a hardware port." + INDEX { rs232InSigPortIndex, rs232InSigName } + ::= { rs232InSigTable 1 } + + Rs232InSigEntry ::= + SEQUENCE { + rs232InSigPortIndex + InterfaceIndex, + rs232InSigName + INTEGER, + rs232InSigState + INTEGER, + rs232InSigChanges + Counter32 + } + + rs232InSigPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of rs232PortIndex for the port to which + this entry belongs." + ::= { rs232InSigEntry 1 } + + rs232InSigName OBJECT-TYPE + SYNTAX INTEGER { rts(1), cts(2), dsr(3), dtr(4), ri(5), + dcd(6), sq(7), srs(8), srts(9), + scts(10), sdcd(11) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identification of a hardware signal, as follows: + + rts Request to Send + cts Clear to Send + dsr Data Set Ready + dtr Data Terminal Ready + ri Ring Indicator + dcd Received Line Signal Detector + sq Signal Quality Detector + srs Data Signaling Rate Selector + srts Secondary Request to Send + scts Secondary Clear to Send + sdcd Secondary Received Line Signal Detector + " + REFERENCE + "EIA Standard RS-232-C, August 1969." + ::= { rs232InSigEntry 2 } + + rs232InSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current signal state." + ::= { rs232InSigEntry 3 } + + rs232InSigChanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { rs232InSigEntry 4 } + + + -- Output Signal Table + + rs232OutSigTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rs232OutSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of port output control signal entries + implemented and visible to the software on the port, + and useful to monitor." + ::= { rs232 6 } + + rs232OutSigEntry OBJECT-TYPE + SYNTAX Rs232OutSigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Output control signal status for a hardware port." + INDEX { rs232OutSigPortIndex, rs232OutSigName } + ::= { rs232OutSigTable 1 } + + Rs232OutSigEntry ::= + SEQUENCE { + rs232OutSigPortIndex + InterfaceIndex, + rs232OutSigName + INTEGER, + rs232OutSigState + INTEGER, + rs232OutSigChanges + Counter32 + } + + rs232OutSigPortIndex OBJECT-TYPE + SYNTAX InterfaceIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of rs232PortIndex for the port to which + this entry belongs." + ::= { rs232OutSigEntry 1 } + + rs232OutSigName OBJECT-TYPE + SYNTAX INTEGER { rts(1), cts(2), dsr(3), dtr(4), ri(5), + dcd(6), sq(7), srs(8), srts(9), + scts(10), sdcd(11) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Identification of a hardware signal, as follows: + + rts Request to Send + cts Clear to Send + dsr Data Set Ready + dtr Data Terminal Ready + ri Ring Indicator + dcd Received Line Signal Detector + sq Signal Quality Detector + srs Data Signaling Rate Selector + srts Secondary Request to Send + scts Secondary Clear to Send + sdcd Secondary Received Line Signal Detector + " + REFERENCE + "EIA Standard RS-232-C, August 1969." + ::= { rs232OutSigEntry 2 } + + rs232OutSigState OBJECT-TYPE + SYNTAX INTEGER { none(1), on(2), off(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current signal state." + ::= { rs232OutSigEntry 3 } + + rs232OutSigChanges OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the signal has changed from + 'on' to 'off' or from 'off' to 'on'." + ::= { rs232OutSigEntry 4 } + + + -- conformance information + + rs232Conformance OBJECT IDENTIFIER ::= { rs232 7 } + + rs232Groups OBJECT IDENTIFIER ::= { rs232Conformance 1 } + rs232Compliances OBJECT IDENTIFIER ::= { rs232Conformance 2 } + + + -- compliance statements + + rs232Compliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities + which have RS-232-like hardware interfaces." + + MODULE -- this module + MANDATORY-GROUPS { rs232Group } + + GROUP rs232AsyncGroup + DESCRIPTION + "The Asynch group is mandatory only for those + SNMPv2 entities which have asynchronous + interfaces Rs-232-like." + + GROUP rs232SyncGroup + DESCRIPTION + "The Synch group is mandatory only for those + SNMPv2 entities which have synchronous + interfaces Rs-232-like." + ::= { rs232Compliances 1 } + + + -- units of conformance + + rs232Group OBJECT-GROUP + OBJECTS { rs232Number, rs232PortIndex, rs232PortType, + rs232PortInSigNumber, rs232PortOutSigNumber, + rs232PortInSpeed, rs232PortOutSpeed, + rs232PortInFlowType, rs232PortOutFlowType, + rs232InSigPortIndex, rs232InSigName, + rs232InSigState, rs232InSigChanges, + rs232OutSigPortIndex, rs232OutSigName, + rs232OutSigState, rs232OutSigChanges } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to all RS-232-like interfaces." + ::= { rs232Groups 1 } + + rs232AsyncGroup OBJECT-GROUP + OBJECTS { rs232AsyncPortIndex, rs232AsyncPortBits, + rs232AsyncPortStopBits, rs232AsyncPortParity, + rs232AsyncPortAutobaud, rs232AsyncPortParityErrs, + rs232AsyncPortFramingErrs, rs232AsyncPortOverrunErrs } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to asynchronous RS-232-like interfaces." + ::= { rs232Groups 2 } + + rs232SyncGroup OBJECT-GROUP + OBJECTS { rs232SyncPortIndex, rs232SyncPortClockSource, + rs232SyncPortFrameCheckErrs, + rs232SyncPortTransmitUnderrunErrs, + rs232SyncPortReceiveOverrunErrs, + rs232SyncPortInterruptedFrames, + rs232SyncPortAbortedFrames } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to synchronous RS-232-like interfaces." + ::= { rs232Groups 3 } + + rs232SyncSDLCGroup OBJECT-GROUP + OBJECTS { rs232SyncPortRole, + rs232SyncPortEncoding, + rs232SyncPortRTSControl, + rs232SyncPortRTSCTSDelay, + rs232SyncPortMode, + rs232SyncPortIdlePattern, + rs232SyncPortMinFlags } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to synchronous RS-232-like interfaces + running SDLC." + ::= { rs232Groups 4 } + + END diff --git a/pandora_console/attachment/mibs/SIP-MIB b/pandora_console/attachment/mibs/SIP-MIB new file mode 100644 index 0000000000..e190c10f49 --- /dev/null +++ b/pandora_console/attachment/mibs/SIP-MIB @@ -0,0 +1,1132 @@ +-- Changes to RFC1694 - SIP-MIB +-- The following items are not contained in any group and +-- need to be reviewed to add them to a group: +-- sipL3ReceivedIndividualDAs +-- sipL3ReceivedGAs +-- sipL3UnrecognizedIndividualDAs +-- sipL3UnrecognizedGAs +-- sipL3SentIndividualDAs +-- sipL3SentGAs +-- sipL3Errors +-- sipL3InvalidSMDSAddressTypes +-- sipL2ReceivedCounts +-- sipL2SentCounts +-- dperkins@scruznet.com + + + SIP-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Counter32, + Integer32, IpAddress FROM SNMPv2-SMI + TimeStamp, TEXTUAL-CONVENTION FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF + transmission, ifIndex, mib-2 FROM RFC1213-MIB; + + -- This is the MIB module for the SMDS Interface objects. + + sipMIB MODULE-IDENTITY + LAST-UPDATED "9403311818Z" + ORGANIZATION "IETF Interfaces Working Group" + CONTACT-INFO + " Tracy Brown + Postal: Bell Communications Research + 331 Newman Springs Road + P.O. Box 7020 + Red Bank, NJ 07701-7020 + US + + Tel: +1 908 758-2107 + Fax: +1 908 758-4177 + E-mail: tacox@mail.bellcore.com + + Kaj Tesink + Postal: Bell Communications Research + 331 Newman Springs Road + P.O. Box 7020 + Red Bank, NJ 07701-7020 + US + + Tel: +1 908 758 5254 + Fax: +1 908 758 4177 + E-mail: kaj@cc.bellcore.com." + DESCRIPTION + "The MIB module to describe + SMDS interfaces objects." + ::= { mib-2 36 } + + SMDSAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1h:" + STATUS current + DESCRIPTION + "The 60-bit SMDS address, + preceded by 4 bits with the following values: + 1100 when representing an individual address + 1110 when representing a group address." + SYNTAX OCTET STRING (SIZE (8)) + + IfIndex ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The value of this object identifies the + interface for which this entry contains + management information. The value of this + object for a particular interface has the same + value as the ifIndex object, defined in RFC + 1213, for the same interface." + SYNTAX Integer32 + + + sip OBJECT IDENTIFIER ::= { transmission 31 } + sipMIBObjects OBJECT IDENTIFIER ::= { sipMIB 1 } + + + -- The SIP Level 3 Group + + sipL3Table OBJECT-TYPE + SYNTAX SEQUENCE OF SipL3Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains SIP L3 parameters and + state variables, one entry per SIPL3 interface." + ::= { sip 1 } + + sipL3Entry OBJECT-TYPE + SYNTAX SipL3Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains SIP L3 parameters and + state variables." + INDEX { sipL3Index } + ::= { sipL3Table 1 } + + SipL3Entry ::= SEQUENCE { + sipL3Index IfIndex, + sipL3ReceivedIndividualDAs Counter32, + sipL3ReceivedGAs Counter32, + sipL3UnrecognizedIndividualDAs Counter32, + sipL3UnrecognizedGAs Counter32, + sipL3SentIndividualDAs Counter32, + sipL3SentGAs Counter32, + sipL3Errors Counter32, + sipL3InvalidSMDSAddressTypes Counter32, + sipL3VersionSupport Integer32 + } + + sipL3Index OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the SIP + L3 interface for which this entry contains + management information. " + ::= { sipL3Entry 1 } + + sipL3ReceivedIndividualDAs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + -- Moved to ifTable + -- ifInUcastPkts defined in [9] must be used instead. + DESCRIPTION + "The total number of individually addressed SIP + Level 3 PDUs received from the remote system + across the SNI. The total includes only + unerrored L3PDUs." + ::= { sipL3Entry 2 } + + sipL3ReceivedGAs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + -- Moved to ifTable + -- ifInMulticastPkts defined in [9] must be used instead. + DESCRIPTION + "The total number of group addressed SIP Level 3 + PDUs received from the remote system across the + SNI. The total includes only unerrored L3PDUs." + ::= { sipL3Entry 3 } + + sipL3UnrecognizedIndividualDAs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of SIP Level 3 PDUs received from the + remote system with invalid or unknown individual + destination addresses (Destination Address + Screening violations are not included). See SMDS + Subscription MIB module." + ::= { sipL3Entry 4 } + + sipL3UnrecognizedGAs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + "The number of SIP Level 3 PDUs received from the + remote system with invalid or unknown group + addresses. (Destination Address Screening + violations are not included). See SMDS + Subscription MIB module." + ::= { sipL3Entry 5 } + + sipL3SentIndividualDAs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + -- Moved to ifTable + -- ifOutUcastPkts defined in [9] must be used instead. + DESCRIPTION + "The number of individually addressed SIP Level 3 + PDUs that have been sent by this system across the + SNI." + ::= { sipL3Entry 6 } + + sipL3SentGAs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + -- Moved to ifTable + -- ifOutMulticastPkts defined in [9] must be used instead. + DESCRIPTION + "The number of group addressed SIP L3PDUs that + have been sent by this system across the SNI." + ::= { sipL3Entry 7 } + + -- The total number of SIP L3PDU errors can be calculated as + -- (Syntactic errors + Semantic Service errors ) + -- Syntactic errors include: + -- sipL3Errors + -- Latest occurrences of syntactic error types are logged in + -- sipL3PDUErrorTable. + -- Semantic Service errors include: + -- sipL3UnrecognizedIndividualDAs + -- sipL3UnrecognizedGAs + -- sipL3InvalidSMDSAddressTypes + -- Note that public networks supporting SMDS may discard + -- SIP L3PDUs due to subscription violations. Related + -- managed objects are defined in Definitions of Managed + -- Objects for SMDS Subscription. + + sipL3Errors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + -- Moved to ifTable + -- ifInErrors defined in [9] must be used instead. + DESCRIPTION + "The total number of SIP Level 3 PDUs received + from the remote system that were discovered to + have errors (including protocol processing and bit + errors but excluding addressing-related errors) + and were discarded. Includes both group addressed + L3PDUs and L3PDUs containing an individual + destination address." + ::= { sipL3Entry 8 } + + sipL3InvalidSMDSAddressTypes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + -- Moved to ifTable + -- ifInUnknownProtos defined in [9] must be used instead. + DESCRIPTION + "The number of SIP Level 3 PDUs received from the + remote system that had the Source or Destination + Address_Type subfields, (the four most significant + bits of the 64 bit address field), not equal to + the value 1100 or 1110. Also, an error is + considered to have occurred if the Address_Type + field for a Source Address, the four most + significant bits of the 64 bits, is equal to 1110 + (a group address)." + ::= { sipL3Entry 9 } + + sipL3VersionSupport OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value which indicates the version(s) of SIP + that this interface supports. The value is a sum. + This sum initially takes the value zero. For each + version, V, that this interface supports, 2 raised + to (V - 1) is added to the sum. For example, a + port supporting versions 1 and 2 would have a + value of (2^(1-1)+2^(2-1))=3. The + sipL3VersionSupport is effectively a bit mask with + Version 1 equal to the least significant bit + (LSB)." + ::= { sipL3Entry 10 } + + + -- The SIP Level 2 Group + + sipL2Table OBJECT-TYPE + SYNTAX SEQUENCE OF SipL2Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains SIP L2PDU parameters and + state variables, one entry per SIP L2 interface." + ::= { sip 2 } + + sipL2Entry OBJECT-TYPE + SYNTAX SipL2Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains SIP L2 parameters and state + variables." + INDEX { sipL2Index } + ::= { sipL2Table 1 } + + SipL2Entry ::= SEQUENCE { + sipL2Index IfIndex, + sipL2ReceivedCounts Counter32, + sipL2SentCounts Counter32, + sipL2HcsOrCRCErrors Counter32, + sipL2PayloadLengthErrors Counter32, + sipL2SequenceNumberErrors Counter32, + sipL2MidCurrentlyActiveErrors Counter32, + sipL2BomOrSSMsMIDErrors Counter32, + sipL2EomsMIDErrors Counter32 + } + + sipL2Index OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the SIP + interface for which this entry contains management + information." + ::= { sipL2Entry 1 } + + sipL2ReceivedCounts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SIP Level 2 PDUs received from the + remote system across the SNI. The total includes + only unerrored L2PDUs." + ::= { sipL2Entry 2 } + + sipL2SentCounts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SIP Level 2 PDUs that have been + sent by this system across the SNI." + ::= { sipL2Entry 3 } + + -- The following error types are counted, and + -- preclude sipL2ReceivedCounts to be incremented: + -- sipL2HcsOrCRCErrors + -- sipL2PayloadLengthErrors + -- sipL2SequenceNumberErrors + -- sipL2BomOrSSMsMIDErrors + -- sipL2EomsMIDErrors + -- The receipt of SIP Level 2 PDUs which are BOMs and + -- for with a MID that is already active will cause + -- sipL2MidCurrentlyActiveErrors to increment. + -- Any already accumulated (correct) segmentation + -- units are discarded.The sipL2ReceivedCounts + -- is incremented by 1. Thus, + -- sipL2ReceivedCounts defines the number of + -- correct SIP Level 2 PDUs delivered to the reassembly + -- process. + + sipL2HcsOrCRCErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of received SIP Level 2 PDUs that were + discovered to have either a Header Check Sequence + error or a Payload CRC violation." + ::= { sipL2Entry 4 } + + sipL2PayloadLengthErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of received SIP Level 2 PDUs that had + Payload Length errors that fall in the following + specifications: + - SSM L2_PDU payload length field value less + - than 28 octets or greater than 44 octets, + + - BOM or COM L2_PDU payload length field not + - equal to 44 octets, + - EOM L2_PDU payload length field value less + - than 4 octets or greater than 44 octets." + ::= { sipL2Entry 5 } + + sipL2SequenceNumberErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of received SIP Level 2 PDUs that had + a sequence number within the L2PDU not equal to + the expected sequence number of the SMDS SS + receive process." + ::= { sipL2Entry 6 } + + sipL2MidCurrentlyActiveErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of received SIP Level 2 PDUs that are + BOMs for which an active receive process is + already started." + ::= { sipL2Entry 7 } + + sipL2BomOrSSMsMIDErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of received SIP Level 2 PDUs that are + SSMs with a MID not equal to zero or are BOMs with + MIDs equal to zero." + ::= { sipL2Entry 8 } + + sipL2EomsMIDErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of received SIP Level 2 PDUs that are + EOMs for which there is no active receive process + for the MID (i.e., the receipt of an EOM which + does not correspond to a BOM) OR the EOM has a MID + equal to zero." + ::= { sipL2Entry 9 } + + + -- The SIP PLCP Group + + sipPLCP OBJECT IDENTIFIER ::= { sip 3 } + + + -- The DS1 PLCP Group + + sipDS1PLCPTable OBJECT-TYPE + SYNTAX SEQUENCE OF SipDS1PLCPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains SIP DS1 PLCP parameters and + state variables, one entry per SIP port." + ::= { sipPLCP 1 } + + sipDS1PLCPEntry OBJECT-TYPE + SYNTAX SipDS1PLCPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains SIP DS1 PLCP parameters and + state variables." + INDEX { sipDS1PLCPIndex } + ::= { sipDS1PLCPTable 1 } + + SipDS1PLCPEntry ::= SEQUENCE { + sipDS1PLCPIndex IfIndex, + sipDS1PLCPSEFSs Counter32, + sipDS1PLCPAlarmState INTEGER, + sipDS1PLCPUASs Counter32 + } + + sipDS1PLCPIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the + interface for which this entry contains management + information. " + ::= { sipDS1PLCPEntry 1 } + + sipDS1PLCPSEFSs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A DS1 Severely Errored Framing Second (SEFS) is a + count of one-second intervals containing one or + more SEF events. A Severely Errored Framing (SEF) + event is declared when an error in the A1 octet + and an error in the A2 octet of a framing octet + pair (i.e., errors in both framing octets), or two + consecutive invalid and/or nonsequential Path + Overhead Identifier octets are detected." + ::= { sipDS1PLCPEntry 2 } + + sipDS1PLCPAlarmState OBJECT-TYPE + SYNTAX INTEGER { + noAlarm (1), + receivedFarEndAlarm (2), + incomingLOF (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This variable indicates if there is an alarm + present for the DS1 PLCP. The value + receivedFarEndAlarm means that the DS1 PLCP has + received an incoming Yellow Signal, the value + incomingLOF means that the DS1 PLCP has declared a + loss of frame (LOF) failure condition, and the + value noAlarm means that there are no alarms + present. See TR-TSV-000773 for a description of + alarm states." + ::= { sipDS1PLCPEntry 3 } + + sipDS1PLCPUASs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by TR-TSV-000773, + encountered by the PLCP." + ::= { sipDS1PLCPEntry 4 } + + + -- The DS3 PLCP Group + + sipDS3PLCPTable OBJECT-TYPE + SYNTAX SEQUENCE OF SipDS3PLCPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains SIP DS3 PLCP parameters and + state variables, one entry per SIP port." + ::= { sipPLCP 2 } + + sipDS3PLCPEntry OBJECT-TYPE + SYNTAX SipDS3PLCPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This list contains SIP DS3 PLCP parameters and + state variables." + INDEX { sipDS3PLCPIndex } + ::= { sipDS3PLCPTable 1 } + + SipDS3PLCPEntry ::= SEQUENCE { + sipDS3PLCPIndex IfIndex, + sipDS3PLCPSEFSs Counter32, + sipDS3PLCPAlarmState INTEGER, + sipDS3PLCPUASs Counter32 + } + + sipDS3PLCPIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the + interface for which this entry contains management + information. " + ::= { sipDS3PLCPEntry 1 } + + sipDS3PLCPSEFSs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A DS3 Severely Errored Framing Second (SEFS) is a + count of one-second intervals containing one or + more SEF events. A Severely Errored Framing (SEF) + event is declared when an error in the A1 octet + and an error in the A2 octet of a framing octet + pair (i.e., errors in both framing octets), or two + consecutive invalid and/or nonsequential Path + Overhead Identifier octets are detected." + ::= { sipDS3PLCPEntry 2 } + + sipDS3PLCPAlarmState OBJECT-TYPE + SYNTAX INTEGER { + noAlarm (1), + receivedFarEndAlarm (2), + incomingLOF (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This variable indicates if there is an alarm + present for the DS3 PLCP. The value + receivedFarEndAlarm means that the DS3 PLCP has + received an incoming Yellow Signal, the value + incomingLOF means that the DS3 PLCP has declared a + loss of frame (LOF) failure condition, and the + value noAlarm means that there are no alarms + present. See TR-TSV-000773 for a description of + alarm states." + ::= { sipDS3PLCPEntry 3 } + + sipDS3PLCPUASs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The counter associated with the number of + Unavailable Seconds, as defined by TR-TSV-000773, + encountered by the PLCP." + ::= { sipDS3PLCPEntry 4 } + + + -- The SMDS Applications group + -- Applications that have been identified for this group are: + -- * IP-over-SMDS (details are specified in RFC 1209) + + smdsApplications OBJECT IDENTIFIER ::= { sip 4 } + + ipOverSMDS OBJECT IDENTIFIER ::= { smdsApplications 1 } + + -- Although the objects in this group are read-only, at the + -- agent's discretion they may be made read-write so that the + -- management station, when appropriately authorized, may + -- change the addressing information related to the + -- configuration of a logical IP subnetwork implemented on + -- top of SMDS. + + -- This table is necessary to support RFC1209 (IP-over-SMDS) + -- and gives information on the Group Addresses and ARP + -- Addresses used in the Logical IP subnetwork. + -- One SMDS address may be associated with multiple IP + -- addresses. One SNI may be associated with multiple LISs. + + ipOverSMDSTable OBJECT-TYPE + SYNTAX SEQUENCE OF IpOverSMDSEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The table of addressing information relevant to + this entity's IP addresses." + ::= { ipOverSMDS 1 } + + ipOverSMDSEntry OBJECT-TYPE + SYNTAX IpOverSMDSEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The addressing information for one of this + entity's IP addresses." + INDEX { ipOverSMDSIndex, ipOverSMDSAddress } + ::= { ipOverSMDSTable 1 } + + IpOverSMDSEntry ::= + SEQUENCE { + ipOverSMDSIndex IfIndex, + ipOverSMDSAddress IpAddress, + ipOverSMDSHA SMDSAddress, + ipOverSMDSLISGA SMDSAddress, + ipOverSMDSARPReq SMDSAddress + } + + ipOverSMDSIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the + interface for which this entry contains management + information. " + ::= { ipOverSMDSEntry 1 } + + ipOverSMDSAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address to which this entry's addressing + information pertains." + ::= { ipOverSMDSEntry 2 } + + ipOverSMDSHA OBJECT-TYPE + SYNTAX SMDSAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMDS Individual address of the IP station." + ::= { ipOverSMDSEntry 3 } + + ipOverSMDSLISGA OBJECT-TYPE + SYNTAX SMDSAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMDS Group Address that has been configured + to identify the SMDS Subscriber-Network Interfaces + (SNIs) of all members of the Logical IP Subnetwork + (LIS) connected to the network supporting SMDS." + ::= { ipOverSMDSEntry 4 } + + ipOverSMDSARPReq OBJECT-TYPE + SYNTAX SMDSAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The SMDS address (individual or group) to which + ARP Requests are to be sent." + ::= { ipOverSMDSEntry 5 } + + + -- The SMDS Carrier Selection group + -- This group is used as a place holder + -- for carrier selection objects. + + smdsCarrierSelection OBJECT IDENTIFIER ::= { sip 5 } + + + -- The SIP Error Log + + sipErrorLog OBJECT IDENTIFIER ::= { sip 6 } + + sipL3PDUErrorTable OBJECT-TYPE + SYNTAX SEQUENCE OF SipL3PDUErrorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table that contains the latest occurrence of + the following syntactical SIP L3PDU errors: + + - Destination Address Field Format Error, + + The following pertains to the 60 least significant + bits of the 64 bit address field. The 60 bits + contained in the address subfield can be used to + represent addresses up to 15 decimal digits. Each + decimal digit shall be encoded into four bits + using Binary Coded Decimal (BCD), with the most + significant digit occurring left-most. If not all + 15 digits are required, then the remainder of this + field shall be padded on the right with bits set + to one. An error is considered to have occurred: + a). if the first four bits of the address + subfield are not BCD, OR b). if the first four + bits of the address subfield are populated with + the country code value 0001, AND the 40 bits which + follow are not Binary Coded Decimal (BCD) encoded + values of the 10 digit addresses, OR the remaining + 16 least significant bits are not populated with + 1's, OR c). if the address subfield is not + correct according to another numbering plan which + is dependent upon the carrier assigning the + numbers and offering SMDS. + + - Source Address Field Format Error, + + The description of this parameter is the same as + the description of the Destination Address Field + Format Error. + + - Invalid BAsize Field Value, + + An error is considered to have occurred when the + BAsize field of an SIP L3PDU contains a value less + that 32, greater than 9220 octets without the + CRC32 field present, greater than 9224 octets with + the CRC32 field present, or not equal to a + multiple of 4 octets, + + - Invalid Header Extension Length Field Value, + + An error is considered to have occurred when the + Header Extension Length field value is not equal + 3. + + - Invalid Header Extension - Element Length, + + An error is considered to have occurred when the + Header Extension - Element Length is greater than + 12. + + - Invalid Header Extension - Version Element + Position, Length, or Value, + + An error is considered to have occurred when a + Version element with Length=3, Type=0, and Value=1 + does not appear first within the Header Extension, + or an element Type=0 appears somewhere other than + within the first three octets in the Header + Extension. + + - Invalid Header Extension - Carrier Selection + Element Position, Length, Value or Format, + + An error is considered to have occurred when a + Carrier Selection element does not appear second + within the Header Extension, if the Element Type + does not equal 1, the Element Length does not + equal 4, 6, or 8, the Element Value field is not + four BCD encoded decimal digits used in specifying + the Carrier Identification Code (CIC), or the + identified CIC code is invalid. + + - Header Extension PAD Error + + An error is considered to have occurred when the + Header Extension PAD is 9 octets in length, or if + the Header Extension PAD is greater than zero + octets in length and the Header Extension PAD does + not follow all Header Extension elements or does + not begin with at least one octet of all zeros. + + - BEtag Mismatch Error, + + An error is considered to have occurred when the + Beginning-End Tags in the SIP L3PDU header and + trailer are not equal. + + - BAsize Field not equal to Length Field Error, + + An error is considered to have occurred when the + value of the BAsize Field does not equal the value + of the Length Field. + + - Incorrect Length Error, and + + An error is considered to have occurred when the + the Length field value is not equal to the portion + of the SIP L3PDU which extends from the + Destination Address field up to and including the + CRC32 field (if present) or up to and including + the PAD field (if the CRC32 field is not present). + As an optional check, an error is considered to + have occurred when the length of a partially + received SIP L3PDU exceeds the BAsize value. + + - MRI Timeout Error. + + An error is considered to have occurred when the + elapsed time between receipt of BOM and + corresponding EOM exceeds the value of the MRI + (Message Receive Interval) for a particular + transport signal format. + + An entry is indexed by interface number and error + type, and contains Source Address, Destination + Address and a timestamp. All these errors are + counted in the sipL3Errors counter. When + sipL3PDUErrorTimeStamp is equal to zero, the + SipL3PDUErrorEntry does not contain any valid + information." + ::= { sipErrorLog 1 } + + sipL3PDUErrorEntry OBJECT-TYPE + SYNTAX SipL3PDUErrorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the service disagreement table." + INDEX { sipL3PDUErrorIndex, sipL3PDUErrorType } + ::= { sipL3PDUErrorTable 1 } + + SipL3PDUErrorEntry ::= SEQUENCE { + sipL3PDUErrorIndex IfIndex, + sipL3PDUErrorType INTEGER, + sipL3PDUErrorSA SMDSAddress, + sipL3PDUErrorDA SMDSAddress, + sipL3PDUErrorTimeStamp TimeStamp + } + + sipL3PDUErrorIndex OBJECT-TYPE + SYNTAX IfIndex + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the + interface for which this entry contains management + information." + ::= { sipL3PDUErrorEntry 1 } + + sipL3PDUErrorType OBJECT-TYPE + SYNTAX INTEGER { + erroredDAFieldFormat (1), + erroredSAFieldFormat (2), + invalidBAsizeFieldValue (3), + invalidHdrExtLength (4), + invalidHdrExtElementLength (5), + invalidHdrExtVersionElementPositionLenthOrValue (6), + invalidHdrExtCarSelectElementPositionLenghtValueOrFormat (7), + hePADError (8), + beTagMismatch (9), + baSizeFieldNotEqualToLengthField (10), + incorrectLength (11), + mriTimeout (12) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of error." + ::= { sipL3PDUErrorEntry 2 } + + sipL3PDUErrorSA OBJECT-TYPE + SYNTAX SMDSAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A rejected SMDS source address." + ::= { sipL3PDUErrorEntry 3 } + + sipL3PDUErrorDA OBJECT-TYPE + SYNTAX SMDSAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A rejected SMDS destination address." + ::= { sipL3PDUErrorEntry 4 } + + sipL3PDUErrorTimeStamp OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp for the service disagreement. The + timestamp contains the value of sysUpTime at the + latest occurrence of this type of service + disagreement. See textual description under + sipL3PDUErrorTable for boundary conditions." + ::= { sipL3PDUErrorEntry 5 } + + + -- The DXI Group + + sipDxiTable OBJECT-TYPE + SYNTAX SEQUENCE OF SipDxiEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The DXI table." + ::= { sipMIBObjects 1 } + + sipDxiEntry OBJECT-TYPE + SYNTAX SipDxiEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry in the DXI table." + INDEX { ifIndex } + ::= { sipDxiTable 1 } + + SipDxiEntry ::= + SEQUENCE { + sipDxiCrc + INTEGER, + sipDxiOutDiscards + Counter32, + sipDxiInErrors + Counter32, + sipDxiInAborts + Counter32, + sipDxiInTestFrames + Counter32, + sipDxiOutTestFrames + Counter32, + sipDxiHbpNoAcks + Counter32 + } + + sipDxiCrc OBJECT-TYPE + SYNTAX INTEGER { + crc16(1), + crc32(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object indicates the type + of Frame Checksum used by DXI. Current + choices include CCITT CRC16 or CRC32." + ::= { sipDxiEntry 1 } + + sipDxiOutDiscards OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outbound frames discarded + because of congestion." + ::= { sipDxiEntry 2 } + + sipDxiInErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound frames discarded + because of errors such as frame checksum + (CRC) violations, + non-integral number of octets, address + and control field violations, and frame + size errors." + ::= { sipDxiEntry 3 } + + sipDxiInAborts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of inbound frames discarded + because of an abort bit sequence (1111111) + received before closing flag." + ::= { sipDxiEntry 4 } + + sipDxiInTestFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of unerrored, + inbound Test frames received + (generally as part of Heart + Beat Poll procedure)." + ::= { sipDxiEntry 5 } + + sipDxiOutTestFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of unerrored, + outbound Test frames sent + (generally as part of Heart + Beat Poll procedure)." + ::= { sipDxiEntry 6 } + + sipDxiHbpNoAcks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Heart Beat + Poll (HBP) No Ack timeouts." + ::= { sipDxiEntry 7 } + + + -- conformance information + + smdsConformance OBJECT IDENTIFIER ::= { sipMIB 2 } + + smdsGroups OBJECT IDENTIFIER ::= { smdsConformance 1 } + smdsCompliances OBJECT IDENTIFIER ::= { smdsConformance 2 } + + + -- compliance statements + + smdsCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SMDS interfaces." + + MODULE -- this module + MANDATORY-GROUPS { sipLevel3Stuff } + + GROUP sipLevel2Stuff + DESCRIPTION + "This group is mandatory only for those + interfaces (SNIs) which run SIP Level 2." + + GROUP sipDS1PLCPStuff + DESCRIPTION + "This group is mandatory only for those + interfaces (SNIs) which run the DS1 PLCP." + + GROUP sipDS3PLCPStuff + DESCRIPTION + "This group is mandatory only for those + interfaces (SNIs) which run the DS3 PLCP." + + GROUP sipIPApplicationsStuff + DESCRIPTION + "This group is mandatory only for interfaces + operating IP over SMDS in accordance with + RFC1209." + + GROUP sipDxiStuff + DESCRIPTION + "This group is mandatory only for those interfaces + (DXI-SNI) + which run the DXI protocol." + ::= { smdsCompliances 1 } + + -- units of conformance + + sipLevel3Stuff OBJECT-GROUP + OBJECTS { sipL3Index, + sipL3VersionSupport, sipL3PDUErrorIndex, + sipL3PDUErrorType, + sipL3PDUErrorSA, sipL3PDUErrorDA, + sipL3PDUErrorTimeStamp } + STATUS current + DESCRIPTION + "A collection of objects providing information + applicable to all SMDS interfaces." + ::= { smdsGroups 1 } + + sipLevel2Stuff OBJECT-GROUP + OBJECTS { sipL2Index, sipL2HcsOrCRCErrors, + sipL2PayloadLengthErrors, + sipL2SequenceNumberErrors, + sipL2MidCurrentlyActiveErrors, + sipL2BomOrSSMsMIDErrors, + sipL2EomsMIDErrors } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to interfaces using the SIP Level 2." + ::= { smdsGroups 2 } + + sipDS1PLCPStuff OBJECT-GROUP + OBJECTS { sipDS1PLCPIndex, sipDS1PLCPSEFSs, + sipDS1PLCPAlarmState, sipDS1PLCPUASs } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to interfaces using the DS1 PLCP." + ::= { smdsGroups 3 } + + sipDS3PLCPStuff OBJECT-GROUP + OBJECTS { sipDS3PLCPIndex, sipDS3PLCPSEFSs, + sipDS3PLCPAlarmState, sipDS3PLCPUASs } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to interfaces using the DS3 PLCP." + ::= { smdsGroups 4 } + + + sipIPApplicationsStuff OBJECT-GROUP + OBJECTS { ipOverSMDSIndex, ipOverSMDSAddress, + ipOverSMDSHA, ipOverSMDSLISGA, ipOverSMDSARPReq } + STATUS current + DESCRIPTION + "A collection of objects providing information + for running IP over SMDS." + ::= { smdsGroups 5 } + + sipDxiStuff OBJECT-GROUP + OBJECTS { sipDxiCrc, sipDxiOutDiscards, + sipDxiInErrors, sipDxiInAborts, + sipDxiInTestFrames, sipDxiOutTestFrames, + sipDxiHbpNoAcks } + STATUS current + DESCRIPTION + "A collection of objects providing information + specific to interfaces using the DXI protocol." + ::= { smdsGroups 6 } + + END diff --git a/pandora_console/attachment/mibs/SMUX-MIB b/pandora_console/attachment/mibs/SMUX-MIB new file mode 100644 index 0000000000..d817cab779 --- /dev/null +++ b/pandora_console/attachment/mibs/SMUX-MIB @@ -0,0 +1,168 @@ +-- Changes to rfc1227 (SMUX MIB): +-- changed RFC1212 to RFC-1212 +-- added import for DisplayString +-- dperkins@scruznet.com + + SMUX-MIB DEFINITIONS ::= BEGIN + + -- From RFC1227 + -- May 1991 + + IMPORTS + enterprises + FROM RFC1155-SMI + OBJECT-TYPE + FROM RFC-1212 + DisplayString + FROM RFC1213-MIB; + + unix OBJECT IDENTIFIER ::= { enterprises 4 } + + smux OBJECT IDENTIFIER ::= { unix 4 } + + smuxPeerTable OBJECT-TYPE + SYNTAX SEQUENCE OF SmuxPeerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The SMUX peer table." + ::= { smux 1 } + + smuxPeerEntry OBJECT-TYPE + SYNTAX SmuxPeerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the SMUX peer table." + INDEX { smuxPindex } + ::= { smuxPeerTable 1} + + SmuxPeerEntry ::= + SEQUENCE { + smuxPindex + INTEGER, + smuxPidentity + OBJECT IDENTIFIER, + smuxPdescription + DisplayString, + smuxPstatus + INTEGER + } + + smuxPindex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "An index which uniquely identifies a SMUX peer." + ::= { smuxPeerEntry 1 } + + smuxPidentity OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The authoritative designation for a SMUX peer." + ::= { smuxPeerEntry 2 } + + smuxPdescription OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A human-readable description of a SMUX peer." + ::= { smuxPeerEntry 3 } + + smuxPstatus OBJECT-TYPE + SYNTAX INTEGER { valid(1), invalid(2), connecting(3) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of SMUX peer. + + Setting this object to the value invalid(2) has + the effect of invaliding the corresponding entry + in the smuxPeerTable. It is an implementation- + specific matter as to whether the agent removes an + invalidated entry from the table. Accordingly, + management stations must be prepared to receive + tabular information from agents that correspond to + entries not currently in use. Proper + interpretation of such entries requires + examination of the relative smuxPstatus object." + ::= { smuxPeerEntry 4 } + + smuxTreeTable OBJECT-TYPE + SYNTAX SEQUENCE OF SmuxTreeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The SMUX tree table." + ::= { smux 2 } + + smuxTreeEntry OBJECT-TYPE + SYNTAX SmuxTreeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the SMUX tree table." + INDEX { smuxTsubtree, smuxTpriority } + ::= { smuxTreeTable 1} + + SmuxTreeEntry ::= + SEQUENCE { + smuxTsubtree + OBJECT IDENTIFIER, + smuxTpriority + INTEGER, + smuxTindex + INTEGER, + smuxTstatus + INTEGER + } + + smuxTsubtree OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The MIB subtree being exported by a SMUX peer." + ::= { smuxTreeEntry 1 } + + smuxTpriority OBJECT-TYPE + SYNTAX INTEGER (0..'07fffffff'h) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SMUX peer's priority when exporting the MIB + subtree." + ::= { smuxTreeEntry 2 } + + smuxTindex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SMUX peer's identity." + ::= { smuxTreeEntry 3 } + + smuxTstatus OBJECT-TYPE + SYNTAX INTEGER { valid(1), invalid(2) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The type of SMUX tree. + + Setting this object to the value invalid(2) has + the effect of invaliding the corresponding entry + in the smuxTreeTable. It is an implementation- + specific matter as to whether the agent removes an + invalidated entry from the table. Accordingly, + management stations must be prepared to receive + tabular information from agents that correspond to + entries not currently in use. Proper + interpretation of such entries requires + examination of the relative smuxTstatus object." + ::= { smuxTreeEntry 4 } + + END diff --git a/pandora_console/attachment/mibs/SNA-NAU-MIB b/pandora_console/attachment/mibs/SNA-NAU-MIB new file mode 100644 index 0000000000..2aced815a3 --- /dev/null +++ b/pandora_console/attachment/mibs/SNA-NAU-MIB @@ -0,0 +1,2783 @@ +-- Changes to RFC1666 - SNA-NAU MIB +-- Added IMPORT for mib-2. +-- Changed TC InstancePointer to RowPointer for objects +-- snaNodeLinkAdminSpecific and snaNodeLinkOperSpecific. +-- dperkins@scruznet.com + + +SNA-NAU-MIB DEFINITIONS ::= BEGIN + +-- This MIB module contains objects necessary +-- for management of the following SNA devices: PU types 1.0, 2.0, 2.1 +-- and LU types 0, 1, 2, 3, 4, 7. It also contains generic objects +-- which can be used to manage LU 6.2. + +-- Naming conventions in this document: +-- The following names are used in object descriptors according to +-- SNA conventions. +-- The name 'PU' or 'Node' is used to describe Node type 1.0, 2.0 or +-- 2.1. +-- The name 'LU' is used to describe Logical Unit of type 0,1,2,3, +-- 4,7 or 6.2. + + + +IMPORTS + DisplayString, RowStatus, TimeStamp, + -- InstancePointer + RowPointer + FROM SNMPv2-TC + + Counter32, Gauge32, Integer32, + OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE + FROM SNMPv2-SMI + + mib-2 FROM RFC1213-MIB + + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF; + + +snanauMIB MODULE-IDENTITY + LAST-UPDATED "9405120900Z" + ORGANIZATION "IETF SNA NAU MIB Working Group" + CONTACT-INFO + " Zbigniew Kielczewski + Eicon Technology Inc. + 2196 32nd Avenue + Lachine, Que H8T 3H7 + Canada + Tel: 1 514 631 2592 + E-mail: zbig@eicon.qc.ca + + Deirdre Kostick + Bellcore + 331 Newman Springs Road + Red Bank, NJ 07701 + Tel: 1 908 758 2642 + E-mail: dck2@mail.bellcore.com + + Kitty Shih (editor) + Novell + 890 Ross Drive + Sunnyvale, CA 94089 + Tel: 1 408 747 4305 + E-mail: kmshih@novell.com" + DESCRIPTION + "This is the MIB module for objects used to + manage SNA devices." +::= { mib-2 34 } + +-- The SNANAU MIB module contains an objects part and a conformance part. +-- Objects are organized into the following groups: +-- (1)snaNode group, +-- (2)snaLU group, +-- (3)snaMgtTools group. + +snanauObjects OBJECT IDENTIFIER ::= { snanauMIB 1 } + + snaNode OBJECT IDENTIFIER ::= { snanauObjects 1 } + snaLu OBJECT IDENTIFIER ::= { snanauObjects 2 } + snaMgtTools OBJECT IDENTIFIER ::= { snanauObjects 3} + + +-- *************************************************************** +-- snaNode group +-- +-- It contains Managed Objects related to any type of Node and +-- some specific objects for Node Type 2.0. +-- *************************************************************** + + +-- *************************************************************** +-- The following table contains generic Node configuration +-- parameters. +-- *************************************************************** + +snaNodeAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaNodeAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains objects which describe the + configuration parameters for an SNA Node. Link + specific configuration objects are contained in + a separate MIB module (e.g., SNA DLC MIB) + corresponding to the link type. + The table snaNodeAdminLinkTable contains objects + which identify the relationship between node instances + and link instances. + + The entries (i.e., rows) in this table can be created + by either an Agent or a Management Station. + The Management Station can do this through setting + the appropriate value in the snaNodeAdminRowStatus. + + The snaNodeAdminRowStatus object describes the + status of an entry and is used to change the status + of an entry. The entry is deleted by an Agent based + on the value of the snaNodeAdminRowStatus. + + The snaNodeAdminState object describes the desired + operational state of a Node and is used to change the + operational state of a Node. For example, such + information may be obtained from a configuration file. + + How an Agent or a Management Station obtains the + initial value of each object at creation time is an + implementation specific issue. + + For each entry in this table, there is a corresponding + entry in the snaNodeOperTable. + While the objects in this table describe the desired + or configured operational values of the SNA Node, the + actual runtime values are contained in + snaNodeOperTable." + ::= { snaNode 1 } + +snaNodeAdminEntry OBJECT-TYPE + SYNTAX SnaNodeAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry contains the configuration parameters for + one SNA Node instance. The objects in the entry + have read-create access. + An entry can be created, modified or deleted. The + object snaNodeAdminRowStatus is used (i.e., set) to + create or delete a row entry." + INDEX { snaNodeAdminIndex } + ::= { snaNodeAdminTable 1 } + +SnaNodeAdminEntry ::= SEQUENCE { + snaNodeAdminIndex + Integer32, + snaNodeAdminName + DisplayString, + snaNodeAdminType + INTEGER, + snaNodeAdminXidFormat + INTEGER, + snaNodeAdminBlockNum + DisplayString, + snaNodeAdminIdNum + DisplayString, + snaNodeAdminEnablingMethod + INTEGER, + snaNodeAdminLuTermDefault + INTEGER, + snaNodeAdminMaxLu + Integer32, + snaNodeAdminHostDescription + DisplayString, + snaNodeAdminStopMethod + INTEGER, + snaNodeAdminState + INTEGER, + snaNodeAdminRowStatus + RowStatus + } + +snaNodeAdminIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Index used to uniquely identify each Node instance. + If an Agent creates the entry, then it will assign + this number otherwise a Management Station + generates a random number when it reserves the + entry for creation." + ::= { snaNodeAdminEntry 1 } + +snaNodeAdminName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the desired name of the + Node for use during Node activation. + In Type 2.1 networks, this is a fully-qualified name, + meaning that the Node name is preceded by the NetId (if + present) with a period as the delimiter. + + A write operation to this object will + not change the operational value reflected + in snaNodeOperName until the Node has + been re-activated (e.g., after the next initialization + of the SNA services)." + ::= { snaNodeAdminEntry 2 } + +snaNodeAdminType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + pu10(2), + pu20(3), + t21len(4), + endNode(5), + networkNode(6) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the type of SNA Node. + + A write operation to this object will + not change the operational value reflected + in snaNodeOperType until the Node has + been re-activated (e.g., after the next initialization + of the SNA services)." + ::= { snaNodeAdminEntry 3 } + +snaNodeAdminXidFormat OBJECT-TYPE + SYNTAX INTEGER { + format0(1), + format1(2), + format3(3) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the type of XID format used for + this Node. Note that there is no format type 2. + + A write operation to this object will + not change the operational value reflected + in snaNodeOperAdminXidFormat until the Node has + been re-activated (e.g., after the next initialization + of the SNA services)." + ::= { snaNodeAdminEntry 4 } + +snaNodeAdminBlockNum OBJECT-TYPE + SYNTAX DisplayString (SIZE(3)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the block number for this Node + instance. It is the first 3 hexadecimal digits of the + SNA Node id. + + A write operation to this object will + not change the operational value reflected + in snaNodeOperBlockNum until the Node has + been re-activated (e.g., after the next initialization + of the SNA services)." + ::= { snaNodeAdminEntry 5 } + +snaNodeAdminIdNum OBJECT-TYPE + SYNTAX DisplayString (SIZE(5)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the ID number for this Node + instance. This is the last 5 hexadecimal digits of + the SNA Node id. + + A write operation to this object will + not change the operational value reflected + in snaNodeOperIdNum until the Node has + been re-activated (e.g., after the next initialization + of the SNA services)." + ::= { snaNodeAdminEntry 6 } + +snaNodeAdminEnablingMethod OBJECT-TYPE + SYNTAX INTEGER { + other (1), + startup (2), + demand (3), + onlyMS (4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates how the Node should be + activated for the first time. + The values have the following meanings: + + other (1) - may be used for proprietary methods + not listed in this enumeration, + startup (2) - at SNA services' initialization time + (this is the default), + demand (3) - only when LU is requested by application, + or + onlyMS (4) - by a Management Station only. + + A write operation to this object may immediately + change the operational value reflected + in snaNodeOperEnablingMethod depending + on the Agent implementation. If the Agent + implementation accepts immediate changes, then the + behavior of the Node changes immediately and not only + after the next system startup of the SNA services. + An immediate change may only apply when the + current value 'demand (3)' is changed to 'onlyMS (4)' + and vice versa." + ::= { snaNodeAdminEntry 7 } + +snaNodeAdminLuTermDefault OBJECT-TYPE + SYNTAX INTEGER { + unbind (1), + termself (2), + rshutd (3), + poweroff(4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the desired default method + used to deactivate LUs for this Node + For LU6.2s, 'unbind(1)' is the only valid value. + + unbind(1) - terminate the LU-LU session by sending + an SNA UNBIND request. + termself(2) - terminate the LU-LU session by sending + an SNA TERM-SELF (Terminate Self) request on + the SSCP-LU session. The SSCP will inform the + remote session LU partner to send an UNBIND + request to terminate the session. + rshutd(3) - terminate the LU-LU session by sending + an SNA RSHUTD (Request ShutDown) request to + the remote session LU partner. The remote LU + will then send an UNBIND request to terminate + the session. + poweroff(4) - terminate the LU-LU session by sending + either an SNA LUSTAT (LU Status) request on + the LU-LU session or an SNA NOTIFY request on + the SSCP-LU session indicating that the LU has + been powered off. Sending both is also + acceptable. The result should be that the + remote session LU partner will send an UNBIND + to terminate the session. + + The default behavior indicated by the value of this + object may be overridden for an LU instance. The + override is performed by setting the snaLuAdminTerm + object instance in the snaLuAdminTable to the desired + value. + + A write operation to this object may immediately + change the operational value reflected + in snaNodeOperLuTermDefault depending + on the Agent implementation." + ::= { snaNodeAdminEntry 8 } + +snaNodeAdminMaxLu OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The maximum number of LUs that may be + activated for this Node. For PU2.1, this object + refers to the number of dependent LUs. + + A write operation to this object will + not change the operational value reflected + in snaNodeOperMaxLu until the Node has + been re-activated (e.g., after the next initialization + of the SNA services)." + ::= { snaNodeAdminEntry 9 } + +snaNodeAdminHostDescription OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value identifies the remote host associated + with this Node. + Since SSCP Id's may not be unique + across hosts, the host description + is required to uniquely identify the SSCP. + This object is only applicable to PU2.0 type + Nodes. If the remote host is unknown, then the + value is the null string. + + A write operation to this object may immediately + change the operational value reflected + in snaNodeOperHostDescription depending + on the Agent implementation." + ::= { snaNodeAdminEntry 10 } + +snaNodeAdminStopMethod OBJECT-TYPE + SYNTAX INTEGER { + other (1), + normal (2), + immed (3), + force (4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the desired method to be used + by the Agent to stop a Node (i.e., change the Node's + operational state to inactive(1) ). + + The values have the following meaning: + + other (1) - used for proprietary + methods not listed in this enumeration. + normal(2) - deactivate only when there is no more + activity on this Node (i.e., all data flows + have been completed and all sessions + have been terminated). + immed(3) - deactivate immediately regardless of + current activities on this Node. Wait for + deactivation responses (from remote Node) + before changing the Node state to inactive. + force(4) - deactivate immediately regardless of + current activities on this Node. Do not wait + for deactivation responses (from remote Node) + before changing the Node state to inactive. + + A write operation to this object may immediately + change the operational value reflected + in snaNodeOperStopMethod depending + on the Agent implementation." + ::= { snaNodeAdminEntry 11 } + +snaNodeAdminState OBJECT-TYPE + SYNTAX INTEGER { + inactive (1), + active (2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value indicates the desired operational + state of the SNA Node. This object is used + by the Management Station to + activate or deactivate the Node. + + If the current value in snaNodeOperState is + 'active (2)', then setting this object to + 'inactive (1)' will initiate the Node shutdown + process using the method indicated + by snaNodeOperStopMethod. + + If the current value in snaNodeOperState is + 'inactive (1)', then setting this object to + 'active (2)' will initiate the + Node's activation. + + A Management Station can always set this object to + 'active (2)' irrespective of the value in the + snaOperEnablingMethod." + ::= { snaNodeAdminEntry 12 } + +snaNodeAdminRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used by a Management Station to + create or delete the row entry in the + snaNodeAdminTable following + the RowStatus textual convention. + + Upon successful creation of + the row, an Agent automatically creates a + corresponding entry in the snaNodeOperTable with + snaNodeOperState equal to 'inactive (1)'. + + Row deletion can be Management Station or Agent + initiated: + (a) The Management Station can set the value to + 'destroy (6)' only when the value of + snaNodeOperState of this Node instance is + 'inactive (1)'. The Agent will then delete the rows + corresponding to this Node instance from the + snaNodeAdminTable and the snaNodeOperTable. + (b) The Agent detects that a row is in the + 'notReady (3)' state for greater than a + default period of 5 minutes. + (c) All rows with the snaNodeAdminRowStatus object's + value of 'notReady (3)' will be removed upon the + next initialization of the SNA services." + ::= { snaNodeAdminEntry 13 } + + +-- *************************************************************** +-- The following object is updated when there is a change to +-- the value of any object in the snaNodeAdminTable. +-- *************************************************************** + +snaNodeAdminTableLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value indicates the timestamp + (e.g., the Agent's sysUpTime value) of the last + change made to any object in the snaNodeAdminTable, + including row deletions/additions (e.g., changes to + snaNodeAdminRowStatus values). + + This object can be used to reduce frequent + retrievals of the snaNodeAdminTable by a Management + Station. It is expected that a Management Station + will periodically poll this object and compare its + current value with the previous one. A difference + indicates that some Node configuration information + has been changed. Only then will the Management + Station retrieve the entire table." + ::= { snaNode 2 } + + +-- *************************************************************** +-- The following table contains Node operational parameters. +-- *************************************************************** + +snaNodeOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaNodeOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains the dynamic parameters which + have read-only access. These objects reflect the + actual status of the Node. The entries in this + table cannot be created or modified by a + Management Station. + This table augments the snaNodeAdminTable." + ::= { snaNode 3 } + +snaNodeOperEntry OBJECT-TYPE + SYNTAX SnaNodeOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entry contains parameters which describe the + state of one Node. The entries are created by the + Agent. They have read-only access." + AUGMENTS { snaNodeAdminEntry } + ::= { snaNodeOperTable 1 } + +SnaNodeOperEntry ::= SEQUENCE { + snaNodeOperName + DisplayString, + snaNodeOperType + INTEGER, + snaNodeOperXidFormat + INTEGER, + snaNodeOperBlockNum + DisplayString, + snaNodeOperIdNum + DisplayString, + snaNodeOperEnablingMethod + INTEGER, + snaNodeOperLuTermDefault + INTEGER, + snaNodeOperMaxLu + Integer32, + snaNodeOperHostDescription + DisplayString, + snaNodeOperStopMethod + INTEGER, + snaNodeOperState + INTEGER, + snaNodeOperHostSscpId + OCTET STRING, + snaNodeOperStartTime + TimeStamp, + snaNodeOperLastStateChange + TimeStamp, + snaNodeOperActFailures + Counter32, + snaNodeOperActFailureReason + INTEGER + } + +snaNodeOperName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..17)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the current name of the Node. + In Type 2.1 networks, this + is a fully-qualified name, meaning that the Node name + is preceded by the NetId (if present) with a period + as the delimiter." + ::= { snaNodeOperEntry 1 } + +snaNodeOperType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + pu10(2), + pu20(3), + t21LEN(4), + endNode(5), + networkNode(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the current type of the Node." + ::= { snaNodeOperEntry 2 } + +snaNodeOperXidFormat OBJECT-TYPE + SYNTAX INTEGER { + format0 (1), + format1 (2), + format3 (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the type of XID format currently + used for this Node. + Note that there is no format type 2." + ::= { snaNodeOperEntry 3 } + +snaNodeOperBlockNum OBJECT-TYPE + SYNTAX DisplayString (SIZE(3)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the block number for this Node + instance. It is the first 3 hexadecimal digits + of the SNA Node id." + ::= { snaNodeOperEntry 4 } + +snaNodeOperIdNum OBJECT-TYPE + SYNTAX DisplayString (SIZE(5)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the ID number for this Node + instance. This is the last 5 hexadecimal digits of + the SNA Node id." + ::= { snaNodeOperEntry 5 } + +snaNodeOperEnablingMethod OBJECT-TYPE + SYNTAX INTEGER { + other (1), + startup (2), + demand (3), + onlyMS (4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value indicates how the Node is activated for + the first time. + The values have the following meanings: + other (1) - not at boot time, LU activation + or by a Management Station; + startup (2) - at SNA services' initialization + time (this is the default), + demand (3) - only when LU is requested by + application, + onlyMS (4) - by a network Management Station + only." + ::= { snaNodeOperEntry 6 } + +snaNodeOperLuTermDefault OBJECT-TYPE + SYNTAX INTEGER { + unbind (1), + termself (2), + rshutd (3), + poweroff (4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the default method used to + deactivate LUs for this Node. + For LU6.2s, 'unbind(1)' is the only valid value. + + unbind(1) - terminate the LU-LU session by sending + an SNA UNBIND request. + termself(2) - terminate the LU-LU session by sending + an SNA TERM-SELF (Terminate Self) request on + the SSCP-LU session. The SSCP will inform the + remote session LU partner to send an UNBIND + request to terminate the session. + rshutd(3) - terminate the LU-LU session by sending + an SNA RSHUTD (Request ShutDown) request to + the remote session LU partner. The remote LU + will then send an UNBIND request to terminate + the session. + poweroff(4) - terminate the LU-LU session by sending + either an SNA LUSTAT (LU Status) request on + the LU-LU session or an SNA NOTIFY request on + the SSCP-LU session indicating that the LU has + been powered off. Sending both is also + acceptable. The result should be that the + remote session LU partner will send an UNBIND + to terminate the session. + + This object describes the default behavior for this + Node; however, it is possible that for a specific LU + the behavior indicated by the snaLuOperTerm object is + different." + ::= { snaNodeOperEntry 7 } + +snaNodeOperMaxLu OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value identifies the current, maximum number + of LUs that are activated for this Node. For PU2.1, + this object refers to the number of dependent LUs." + ::= { snaNodeOperEntry 8 } + +snaNodeOperHostDescription OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value identifies the remote host currently + associated with this Node. + Since SSCP Id's may not be unique + across hosts, the host description + is required to uniquely identify the SSCP." + ::= { snaNodeOperEntry 9 } + +snaNodeOperStopMethod OBJECT-TYPE + SYNTAX INTEGER { + other (1), + normal (2), + immed (3), + force (4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value identifies the current Node shutdown + method to be used by the Agent to stop the Node. + When the Agent changes the Node's state to 'inactive + (1)', the Agent must use the shutdown method + indicated by this object. + + The values have the following meaning: + + other (1) - proprietary method not listed in this + enumeration + normal(2) - deactivate only when there is no more + activity on this Node (i.e., all data flows + have been completed and all sessions have + been terminated). + immed(3) - deactivate immediately regardless of + current activities on this Node. Wait for + deactivation responses (from remote Node) + before changing the Node state to inactive. + force(4) - deactivate immediately regardless of + current activities on this Node. Do not wait + for deactivation responses (from remote Node) + before changing the Node state to inactive. + + Note that a write operation to + snaNodeAdminOperStopMethod may immediately change + the value of snaNodeOperStopMethod depending on + the Agent implementation." + ::= { snaNodeOperEntry 10 } + +snaNodeOperState OBJECT-TYPE + SYNTAX INTEGER { + inactive (1), + active (2), + waiting (3), + stopping (4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current state of the Node. + The values have the following meanings: + inactive (1), a row representing the Node has + been created in the AdminTable + and, the Node is ready for activation -or- + an active Node has been stopped -or- + a waiting Node has returned to the inactive + state. + waiting (3), a request to have the Node activated + has been issued, and the Node is pending + activation. + active (2), the Node is ready and operating. + stopping (4), the request to stop the Node has + been issued while the StopMethod normal + or immediate is used." + ::= { snaNodeOperEntry 11 } + +snaNodeOperHostSscpId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..6)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value identifies the current SSCP Id + associated with the Node. This object is only + applicable to PU 2.0s. If the Node + is not a PU 2.0 type, then this object contains a + zero length string." + ::= { snaNodeOperEntry 12 } + +snaNodeOperStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp (e.g, the Agent's sysUpTime value) + at the Node activation." + ::= { snaNodeOperEntry 13 } + +snaNodeOperLastStateChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp (e.g., the Agent's sysUpTime value) + at the last state change of the Node." + ::= { snaNodeOperEntry 14 } + +snaNodeOperActFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value identifies the number of failed Node + activation attempts." + ::= { snaNodeOperEntry 15 } + +snaNodeOperActFailureReason OBJECT-TYPE + SYNTAX INTEGER { + other (1), + linkFailure (2), + noResources (3), + badConfiguration (4), + internalError (5) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value indicates the reason for the activation + failure. The value 'other (1)' indicates a reason + not listed in the enumeration. This object + will be sent in the trap snaNodeActFailTrap." + ::= { snaNodeOperEntry 16 } + + +-- *************************************************************** +-- The following object is updated when there is a change to +-- the value of snaNodeOperState in any row or a row is +-- added/deleted from the snaNodeOperTable via the snaNodeAdminTable. +-- *************************************************************** + +snaNodeOperTableLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp (e.g., the Agent's sysUpTime value) + at the last change made to any object in the + snaNodeOperTable, including row deletions/additions + made as a result of changes to the + snaNodeAdminRowStatus object. + + This object can be used to reduce frequent + retrievals of the snaNodeOperTable by a Management + Station. It is expected that a Management Station + will periodically poll this object and compare its + current value with the previous one. A difference + indicates that some Node operational information + has been changed. Only then will the Management + Station retrieve the entire table." + ::= { snaNode 4 } + + +-- *************************************************************** +-- The following table contains PU 2.0 statistics dynamic parameters. +-- *************************************************************** + +snaPu20StatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaPu20StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains the dynamic parameters which + have read-only access. The entries in this table + correspond to PU 2.0 entries in the snaNodeOperTable + and cannot be created by a Management Station." + ::= { snaNode 5 } + +snaPu20StatsEntry OBJECT-TYPE + SYNTAX SnaPu20StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The entry contains parameters which describe the + statistics for one PU 2.0. They have read-only + access. + The counters represent traffic for all kinds + of sessions: LU-LU, SSCP-PU, SSCP-LU. + + Each Node of PU Type 2.0 from the snaNodeAdminTable + has one entry in this table and the index used + here has the same value as snaNodeAdminIndex of + that PU. The entry is created by the Agent." + INDEX { snaNodeAdminIndex } + ::= { snaPu20StatsTable 1 } + +SnaPu20StatsEntry ::= SEQUENCE { + snaPu20StatsSentBytes + Counter32, + snaPu20StatsReceivedBytes + Counter32, + snaPu20StatsSentPius + Counter32, + snaPu20StatsReceivedPius + Counter32, + snaPu20StatsSentNegativeResps + Counter32, + snaPu20StatsReceivedNegativeResps + Counter32, + snaPu20StatsActLus + Gauge32, + snaPu20StatsInActLus + Gauge32, + snaPu20StatsBindLus + Gauge32 + } + +snaPu20StatsSentBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of bytes sent by this Node." + ::= { snaPu20StatsEntry 1 } + +snaPu20StatsReceivedBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of bytes received by this Node." + ::= { snaPu20StatsEntry 2 } + +snaPu20StatsSentPius OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of PIUs sent by this Node." + ::= { snaPu20StatsEntry 3 } + +snaPu20StatsReceivedPius OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of PIUs received by this Node." + ::= { snaPu20StatsEntry 4 } + +snaPu20StatsSentNegativeResps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of negative responses sent + by this Node." + ::= { snaPu20StatsEntry 5 } + +snaPu20StatsReceivedNegativeResps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of negative responses received + by this Node." + ::= { snaPu20StatsEntry 6 } + +snaPu20StatsActLus OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of LUs on this PU which have + received and responded to ACTLU from the host." + ::= { snaPu20StatsEntry 7 } + +snaPu20StatsInActLus OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of LUs on this PU which have + not received an ACTLU from the host. This is + possible if the number of configured LUs exceeds + that on the host." + ::= { snaPu20StatsEntry 8 } + +snaPu20StatsBindLus OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of LUs on this PU which have + received and acknowledged a BIND request from the + host." + ::= { snaPu20StatsEntry 9 } + +-- *************************************************************** +-- The following table contains the association between Nodes and +-- link identifiers. +-- It is used for configuration purposes. +-- *************************************************************** + +snaNodeLinkAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaNodeLinkAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains the references to link + specific tables. If a Node is configured for + multiple links, then the Node will have + multiple entries in this table. + The entries in this table can be generated + initially, after initialization of SNA service, + by the Agent which uses information from + Node configuration file. + Subsequent modifications of parameters, + creation of new Nodes link entries and deletion + of entries is possible. + The modification to this table can be + saved in the Node configuration file for the + next initialization of SNA service, but the mechanism + for this function is not defined here." + ::= { snaNode 6 } + +snaNodeLinkAdminEntry OBJECT-TYPE + SYNTAX SnaNodeLinkAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entry contains the configuration information that + associates a Node instance to one link instance. + The objects in the entry have read-create access. + Entry can be created, modified or deleted. + The object snaNodeLinkAdminRowStatus is used (set) + to create or delete an entry. + The object snaNodeLinkAdminSpecific can be set + later, after the entry has been created." + INDEX { snaNodeAdminIndex, + snaNodeLinkAdminIndex } + ::= { snaNodeLinkAdminTable 1 } + +SnaNodeLinkAdminEntry ::= SEQUENCE { + snaNodeLinkAdminIndex + Integer32, + snaNodeLinkAdminSpecific + -- InstancePointer, + RowPointer, + snaNodeLinkAdminMaxPiu + Integer32, + snaNodeLinkAdminRowStatus + RowStatus + } + +snaNodeLinkAdminIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This value is used to index the instances of objects. + If an Agent creates the entry, then it will assign + this number otherwise a Management Station + generates a random number when it reserves the + entry for creation." + ::= { snaNodeLinkAdminEntry 1 } + +snaNodeLinkAdminSpecific OBJECT-TYPE + SYNTAX + -- InstancePointer + RowPointer + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value points to the row in the table + containing information on the link instance. + (e.g., the sdlcLSAdminTable of + the SNA DLC MIB module)." + ::= { snaNodeLinkAdminEntry 2 } + +snaNodeLinkAdminMaxPiu OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value identifies the maximum number of octets + that can be exchanged by this Node in one + Path Information Unit (PIU)." + ::= { snaNodeLinkAdminEntry 3 } + +snaNodeLinkAdminRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used by a Management Station to + create or delete the row entry in the + snaNodeLinkAdminTable. + To activate a row, a Management Station sets the value + to 'active (1)' or 'notReady (3)'. Upon successful + creation of the row, the Agent automatically creates + a corresponding entry in the snaNodeLinkOperTable. + + Row deletion can be Management Station or Agent + initiated: + (a) The Management Station can set the value to + 'destroy (6)' only when the value of + snaNodeLinkOperState of this Link + instance is 'inactive (1)'. The Agent will then + delete the row corresponding to this Link + instance from snaNodeLinkOperTable and + from snaNodeLinkAdminTable. + (b) The Agent detects that a row is in the + 'notReady (3)' state for greater than a + default period of 5 minutes. + (c) The Agent will not include a row with RowStatus= + 'notReady (3)', after SNA system re-initialization + (e.g., reboot)." + ::= { snaNodeLinkAdminEntry 4 } + + +-- *************************************************************** +-- The following object is updated when there is a change to +-- the value of any object in the snaNodeLinkAdminTable. +-- *************************************************************** + +snaNodeLinkAdminTableLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp (e.g., the Agent's sysUpTime value) + at the last + change made to any object in the snaNodeLinkAdminTable, + including row deletions/additions (i.e., changes + to the snaNodeLinkAdminRowStatus object). + + This object can be used to reduce frequent + retrievals of the snaNodeLinkAdminTable by a + Management Station. It is expected that a + Management Station will periodically poll this + object and compare its current value with the + previous one. + A difference indicates that some Node operational + information has been changed. Only then will the + Management Station retrieve the entire table." + ::= { snaNode 7 } + + +-- *************************************************************** +-- The following table contains the association between +-- Nodes and link identifiers. +-- It provides the current status. +-- *************************************************************** + +snaNodeLinkOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaNodeLinkOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains all references to link + specific tables for operational parameters. + If a Node is configured for multiple links, + then the Node will have multiple entries in + this table. This table augments the + snaNodeLinkAdminTable." + ::= { snaNode 8 } + +snaNodeLinkOperEntry OBJECT-TYPE + SYNTAX SnaNodeLinkOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Entry contains all current parameters for one + Node link. The objects in the entry have + read-only access." + AUGMENTS { snaNodeLinkAdminEntry } + ::= { snaNodeLinkOperTable 1 } + +SnaNodeLinkOperEntry ::= SEQUENCE { + snaNodeLinkOperSpecific + -- InstancePointer, + RowPointer, + snaNodeLinkOperMaxPiu + Integer32 + } + +snaNodeLinkOperSpecific OBJECT-TYPE + SYNTAX + -- InstancePointer + RowPointer + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value points to the row in the table + containing information on the link instance. + (e.g., the sdlcLSOperTable of + the SNA DLC MIB module)." + ::= { snaNodeLinkOperEntry 1 } + +snaNodeLinkOperMaxPiu OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of octets that can + be exchanged by this Node in one Path + Information Unit (PIU)." + ::= { snaNodeLinkOperEntry 2 } + + +-- *************************************************************** +-- The following object is updated when a row is added/deleted +-- from the snaNodeLinkOperTable. +-- *************************************************************** + +snaNodeLinkOperTableLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp of the last + change made to any object in the snaNodeLinkOperTable, + including row deletions/additions. + + This object can be used to reduce frequent + retrievals of the snaNodeLinkOperTable by a + Management Station. It is expected that a + Management Station will periodically poll this + object and compare its current value with the + previous one. + A difference indicates that some Node operational + information has been changed. Only then will the + Management Station retrieve the entire table." + ::= { snaNode 9 } + + + +-- *************************************************************** +-- Traps +-- *************************************************************** + +snaNodeTraps OBJECT IDENTIFIER ::= { snaNode 10 } + +snaNodeStateChangeTrap NOTIFICATION-TYPE + OBJECTS { snaNodeOperName, + snaNodeOperState } + STATUS current + DESCRIPTION + "This trap indicates that the operational state + (i.e., value of the snaNodeOperState object) of a Node + has changed. The following variables are returned: + snaNodeOperName - current name of the Node, + with the instance identifying the Node; and, + snaNodeOperState - current state after + the change." + ::= { snaNodeTraps 1 } + +snaNodeActFailTrap NOTIFICATION-TYPE + OBJECTS { snaNodeOperName, + snaNodeOperState, + snaNodeOperActFailureReason } + STATUS current + DESCRIPTION + "This trap indicates a Node activation failure. + The value of snaNodeOperState indicates the current + state after the activation attempt. + The value of snaNodeOperActFailureReason indicates + the failure reason." + ::= { snaNodeTraps 2 } + + +-- *************************************************************** +-- snaLu group +-- +-- It contains Managed Objects related to LUs in general and some +-- specific for LUs of type 0, 1, 2, 3. +-- *************************************************************** + + +-- *************************************************************** +-- The following table contains LU configuration parameters. +-- *************************************************************** + +snaLuAdminTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaLuAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains LU configuration information. + The rows in this table can be created and deleted + by a Management Station. + Only objects which are common to all types of LUs + are included in this table." + ::= { snaLu 1 } + +snaLuAdminEntry OBJECT-TYPE + SYNTAX SnaLuAdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contains configuration variables for an LU." + INDEX { snaNodeAdminIndex, snaLuAdminLuIndex } + ::= { snaLuAdminTable 1 } + +SnaLuAdminEntry ::= SEQUENCE { + snaLuAdminLuIndex + Integer32, + snaLuAdminName + DisplayString, + snaLuAdminSnaName + DisplayString, + snaLuAdminType + INTEGER, + snaLuAdminDepType + INTEGER, + snaLuAdminLocalAddress + OCTET STRING, + snaLuAdminDisplayModel + INTEGER, + snaLuAdminTerm + INTEGER, + snaLuAdminRowStatus + RowStatus + } + +snaLuAdminLuIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This value identifies the unique index for an + LU instance within a Node." + ::= { snaLuAdminEntry 1 } + +snaLuAdminName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..48)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value identifies the user configurable + name for this LU. If a name is not assigned to the LU, + then this object contains a zero length string. + + A write operation to this object will + not change the operational value reflected + in snaLuOperName until the Node has + been re-activated (e.g., after the next + initialization of the SNA services)." + ::= { snaLuAdminEntry 2 } + +snaLuAdminSnaName OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value identifies the SNA LU name + used in exchange of SNA data. + + A write operation to this object will + not change the operational value reflected + in snaLuOperSnaName until the Node has + been re-activated (e.g., after the next + initialization of the SNA services)." + ::= { snaLuAdminEntry 3 } + +snaLuAdminType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + lu0(2), + lu1(3), + lu2(4), + lu3(5), + lu4(6), + lu62(7), + lu7(8) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value identifies the LU type. + + A write operation to this object will + not change the operational value reflected + in snaLuOperAdminType until the Node has + been re-activated (e.g., after the next + initialization of the SNA services)." + ::= { snaLuAdminEntry 4 } + +snaLuAdminDepType OBJECT-TYPE + SYNTAX INTEGER { + dependent(1), + independent(2) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value identifies whether the LU is + dependent or independent. + + A write operation to this object will + not change the operational value reflected + in snaLuOperDepType until the Node has + been re-activated (e.g., after the next + initialization of the SNA services)." + ::= { snaLuAdminEntry 5 } + +snaLuAdminLocalAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The local address for this LU is a byte with a value + ranging from 0 to 254.For dependent LUs, this value + ranges from 1 to 254 and for independent LUs this + value is always 0. + + A write operation to this object will not change the + operational value reflected in snaLuOperLocalAddress + until the Node has been re-activated (e.g., after the + next initialization of the SNA services)." + ::= { snaLuAdminEntry 6 } + +snaLuAdminDisplayModel OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), + model2A(2), + model2B(3), + model3A(4), + model3B(5), + model4A(6), + model4B(7), + model5A(8), + model5B(9), + dynamic(10) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "The value of this object identifies the model type + and screen size of the terminal connected to the host. + This is only valid for LU Type 2. The values have + the following meaning: + + model2A(2) - Model 2 (24 rows x 80 cols) with base + attributes + model2B(3) - Model 2 (24 rows x 80 cols) with + extended attributes + model3A(4) - Model 3 (32 rows x 80 cols) with base + attributes + model3B(5) - Model 3 (32 rows x 80 cols) with extended + attributes + model4A(6) - Model 4 (43 rows x 80 cols) with base + attributes + model4B(7) - Model 4 (43 rows x 80 cols) with extended + attributes + model5A(8) - Model 5 (27 rows x 132 cols) with base + attributes + model5B(9) - Model 5 (27 rows x 132 cols) with + extended attributes + dynamic(10) - Screen size determine with BIND and Read + Partition Query. + + In case this LU is not Type 2, then this object + should contain the invalid(1) value." + ::= { snaLuAdminEntry 7 } + +snaLuAdminTerm OBJECT-TYPE + SYNTAX INTEGER { + unbind (1), + termself (2), + rshutd (3), + poweroff (4) + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This value identifies the desired method for + deactivation of this LU. This value overrides the + default method (snaNodeOperLuTermDefault) for this + Node. For LU 6.2, only the value 'unbind (1)' + applies. + + unbind(1) - terminate the LU-LU session by sending + an SNA UNBIND request. + termself(2) - terminate the LU-LU session by sending + an SNA TERM-SELF (Terminate Self) request on + the SSCP-LU session. The SSCP will inform the + remote session LU partner to send an UNBIND + request to terminate the session. + rshutd(3) - terminate the LU-LU session by sending + an SNA RSHUTD (Request ShutDown) request to + the remote session LU partner. The remote LU + will then send an UNBIND request to terminate + the session. + poweroff(4) - terminate the LU-LU session by sending + either an SNA LUSTAT (LU Status) request on + the LU-LU session or an SNA NOTIFY request on + the SSCP-LU session indicating that the LU has + been powered off. Sending both is also + acceptable. The result should be that the + remote session LU partner will send an UNBIND + to terminate the session. + + A write operation to this object may immediately + change the operational value reflected + in snaLuOperTerm depending + on the Agent implementation." + ::= { snaLuAdminEntry 8 } + +snaLuAdminRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "This object is used by a Management Station to + create or delete the row entry in the + snaLuAdminTable. + To activate a row, the Management Station sets the + value to 'active (1)' or 'notReady (3)'. + Upon successful creation of the row, the Agent + automatically creates a corresponding entry in the + snaLuOperTable with snaLuOperState equal to + 'inactive (1)'. + Row deletion can be Management Station or Agent + initiated: + (a) The Management Station can set the value to + 'destroy (6)' only when the value of snaLuOperState + of this LU instance is 'inactive (1)'. The Agent will + then delete the row corresponding to this LU + instance from snaLuAdminTable and + from snaLuOperTable. + (b) The Agent detects that a row is in the + 'notReady (3)' state for greater than a + default period of 5 minutes. + (c) The Agent will not create a row with RowStatus + equal to 'notReady (3)', after SNA system + re-initialization (e.g., reboot)." + ::= { snaLuAdminEntry 9 } + + +-- *************************************************************** +-- The following table contains LU state dynamic parameters. +-- *************************************************************** + +snaLuOperTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaLuOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains dynamic runtime information and + control variables relating to LUs. + Only objects which are common to all types of LUs are + included in this table. This table augments the + snaLuAdminTable." + ::= { snaLu 2 } + +snaLuOperEntry OBJECT-TYPE + SYNTAX SnaLuOperEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contains objects reflecting current information + for an LU. + Each entry is created by the Agent. All entries + have read-only access." + AUGMENTS { snaLuAdminEntry } + ::= { snaLuOperTable 1 } + +SnaLuOperEntry ::= SEQUENCE { + snaLuOperName + DisplayString, + snaLuOperSnaName + DisplayString, + snaLuOperType + INTEGER, + snaLuOperDepType + INTEGER, + snaLuOperLocalAddress + OCTET STRING, + snaLuOperDisplayModel + INTEGER, + snaLuOperTerm + INTEGER, + snaLuOperState + INTEGER, + snaLuOperSessnCount + Gauge32 + } + +snaLuOperName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..48)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "User configurable name for this LU. If a name + is not assigned, then this object contains a + zero length string." + ::= { snaLuOperEntry 1 } + +snaLuOperSnaName OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..17)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the current SNA LU name." + ::= { snaLuOperEntry 2 } + +snaLuOperType OBJECT-TYPE + SYNTAX INTEGER { + other(1), + lu0(2), + lu1(3), + lu2(4), + lu3(5), + lu4(6), + lu62(7), + lu7(8) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the current LU type." + ::= { snaLuOperEntry 3 } + +snaLuOperDepType OBJECT-TYPE + SYNTAX INTEGER { + dependent(1), + independent(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies whether the LU is currently + dependent or independent. + + A write operation to this object will + not change the operational value reflected + in snaLuOperDepType until the Node has + been re-activated (e.g., after the next + initialization of the SNA services)." + ::= { snaLuOperEntry 4 } + +snaLuOperLocalAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local address for this LU is a byte with a value + ranging from 0 to 254. For dependent LUs, this value + ranges from 1 to 254; for independent LUs this value + is always 0. + + A write operation to this object will + not change the operational value reflected + in snaLuOperLocalAddress until the Node has + been re-activated (e.g., after the next + initialization of the SNA services)." + ::= { snaLuOperEntry 5 } + +snaLuOperDisplayModel OBJECT-TYPE + SYNTAX INTEGER { + invalid(1), + model2A(2), + model2B(3), + model3A(4), + model3B(5), + model4A(6), + model4B(7), + model5A(8), + model5B(9), + dynamic(10) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The screen model type of the terminal connected to + the host. If this LU is not Type 2, then this + object should contain the 'invalid(1)' value." + ::= { snaLuOperEntry 6 } + +snaLuOperTerm OBJECT-TYPE + SYNTAX INTEGER { + unbind (1), + termself (2), + rshutd (3), + poweroff (4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the current method for + deactivation of this LU. This value overrides the + default method (snaNodeOperLuTermDefault) for this + Node. For LU 6.2, only the value 'unbind (1)' + applies. + + unbind(1) - terminate the LU-LU session by sending + an SNA UNBIND request. + termself(2) - terminate the LU-LU session by sending + an SNA TERM-SELF (Terminate Self) request on + the SSCP-LU session. The SSCP will inform the + remote session LU partner to send an UNBIND + request to terminate the session. + rshutd(3) - terminate the LU-LU session by sending + an SNA RSHUTD (Request ShutDown) request to + the remote session LU partner. The remote LU + will then send an UNBIND request to terminate + the session. + poweroff(4) - terminate the LU-LU session by sending + either an SNA LUSTAT (LU Status) request on + the LU-LU session or an SNA NOTIFY request on + the SSCP-LU session indicating that the LU has + been powered off. Sending both is also + acceptable. The result should be that the + remote session LU partner will send an UNBIND + to terminate the session." + ::= { snaLuOperEntry 7 } + +snaLuOperState OBJECT-TYPE + SYNTAX INTEGER { + inactive (1), + active (2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the current operational state of + this LU. + It has different meanings for dependent and independent + LUs. + For dependent LUs the values indicate the following: + inactive (1) - LU didn't receive ACTLU, or + it received DACTLU, or received ACTLU and sent + negative response. + active (2) - LU received ACTLU and acknowledged + positively. + + For independent LUs the values indicate the following: + active (2) - the LU is defined and is able to send + and receive BIND. + inactive (1) - the LU has a session count equal + to 0." + ::= { snaLuOperEntry 8 } + +snaLuOperSessnCount OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of currently active LU-LU sessions of + this LU. + For the independent LU, if this object has value 0, + it indicates that LU is inactive." + ::= { snaLuOperEntry 9 } + + +-- *************************************************************** +-- The following table contains LU session status parameters. +-- *************************************************************** + +snaLuSessnTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaLuSessnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This is a table containing objects which describe the + operational state of LU sessions. Only objects which + are common to all types of LU sessions are included + in this table. + + When a session's snaLuSessnOperState value changes to + 'pendingBind (2)', then the corresponding entry + in the session table is created by the Agent. + + When the session's snaLuSessnOperState value changes to + 'unbound (1)', then the session will be removed from + the session table by the Agent." + ::= { snaLu 3 } + +snaLuSessnEntry OBJECT-TYPE + SYNTAX SnaLuSessnEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry contains dynamic parameters for an LU-LU + session. + The indices identify the Node, local LU, and remote LU + for this session." + INDEX { snaNodeAdminIndex, + snaLuAdminLuIndex, + snaLuSessnRluIndex, + snaLuSessnIndex } + ::= { snaLuSessnTable 1 } + +SnaLuSessnEntry ::= SEQUENCE { + snaLuSessnRluIndex + Integer32, + snaLuSessnIndex + Integer32, + snaLuSessnLocalApplName + DisplayString, + snaLuSessnRemoteLuName + DisplayString, + snaLuSessnMaxSndRuSize + INTEGER, + snaLuSessnMaxRcvRuSize + INTEGER, + snaLuSessnSndPacingSize + INTEGER, + snaLuSessnRcvPacingSize + INTEGER, + snaLuSessnActiveTime + TimeStamp, + snaLuSessnAdminState + INTEGER, + snaLuSessnOperState + INTEGER, + snaLuSessnSenseData + OCTET STRING, + snaLuSessnTerminationRu + INTEGER, + snaLuSessnUnbindType + OCTET STRING, + snaLuSessnLinkIndex + Integer32 + } + +snaLuSessnRluIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value may be used to identify information about + the session partner LU in a table of information about + remote LUs. Such a table is not defined in this + document. If a table of remote LU information is not + implemented, or if the table is implemented but it does + not contain information about the partner LU for a + particular session (as for dependent LU-LU sessions) + then this object will have a value of zero." + ::= { snaLuSessnEntry 1 } + +snaLuSessnIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value identifies the unique index of the session. + It is recommended that an Agent should not reuse the + index of a deactivated session for a significant + period of time (e.g., one week)." + ::= { snaLuSessnEntry 2 } + +snaLuSessnLocalApplName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..48)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the local application using this LU. + If the local application is unknown, then this object + contains a zero length string." + ::= { snaLuSessnEntry 3 } + +snaLuSessnRemoteLuName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..17)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "For dependent LUs which are indicated by the + snaLuOperDepType object containing the value + 'dependent (1)', this object contains the Primary + LU (PLU) name. For independent LUs, + this object contains the fully-qualified remote LU + name of this 6.2 session. + A fully qualified name is an SNA NAU entity name + preceded by the NetId and a period as the delimiter." + ::= { snaLuSessnEntry 4 } + +snaLuSessnMaxSndRuSize OBJECT-TYPE + SYNTAX INTEGER (1..8192) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum RU size used on this session for sending + RUs." + ::= { snaLuSessnEntry 5 } + +snaLuSessnMaxRcvRuSize OBJECT-TYPE + SYNTAX INTEGER (1..8192) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum RU size used on this session for + receiving RUs." + ::= { snaLuSessnEntry 6 } + +snaLuSessnSndPacingSize OBJECT-TYPE + SYNTAX INTEGER (1..63) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the send pacing window on this session." + ::= { snaLuSessnEntry 7 } + +snaLuSessnRcvPacingSize OBJECT-TYPE + SYNTAX INTEGER (1..63) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The size of the receive pacing window on this + session." + ::= { snaLuSessnEntry 8 } + +snaLuSessnActiveTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp (e.g., the Agent's sysUpTime value) + when this session becomes active." + ::= { snaLuSessnEntry 9 } + +snaLuSessnAdminState OBJECT-TYPE + SYNTAX INTEGER { + unbound (1), + bound (3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value indicates the desired operational state of + the session. This object is used to + change the operational state of the session. + A Management Station can only change the operational + state of the session to 'unbound (1)'. + + Session deactivation: + If a session is in the operational state + 'bound (3)' then setting the value of this + object to 'unbound (1)' will initiate the + session shutdown. + + If a session is in the operational state + 'pendingBind (2)' then setting the value of this + object to 'unbound (1)' will initiate the session + shutdown. + If a session is in the operational state + 'pendingUnbind (4)' for an abnormally long period + of time (e.g., three minutes) then setting the value + of this object to 'unbound (1)' will change the + session operational state to 'unbound (1)'. + + Note: for dependent LUs, deactivating the session is + the same as deactivating the LU." + ::= { snaLuSessnEntry 10 } + +snaLuSessnOperState OBJECT-TYPE + SYNTAX INTEGER { + unbound (1), + pendingBind (2), + bound (3), + pendingUnbind (4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value indicates the current operational state of + the session. + + 'unbound (1)' - session has been unbound; + in this state it will be removed from the + session table by the Agent. + + 'pendingBind (2)' - this state has different + meanings for dependent and independent LUs; + for dependent LU - waiting for BIND from + the host, for independent LU - waiting for + BIND response. When a session enters this + state, the corresponding entry in the + session table is created by the Agent. + + 'bound (3)' - session has been successfully bound. + + 'pendingUnbind (4)' - session enters this state + when an UNBIND is sent and before the + rsp(UNBIND) is received." + ::= { snaLuSessnEntry 11 } + +snaLuSessnSenseData OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the sense code when there is + a BIND failure. It is taken from the negative BIND + response or UNBIND request. + This is displayed as 8 hexadecimal digits." + ::= { snaLuSessnEntry 12 } + +snaLuSessnTerminationRu OBJECT-TYPE + SYNTAX INTEGER { + other (1), + bindFailure (2), + unbind (3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value identifies the SNA RU that terminated the + session. + If the session is not in the unbound state, this object + has a value of 'other (1)'." + ::= { snaLuSessnEntry 13 } + + +snaLuSessnUnbindType OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..1)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If the session is in the unbound state, and it was + terminated by an UNBIND, then this object contains + the UNBIND type value (byte 1 of the UNBIND RU); + otherwise the string is null." + ::= { snaLuSessnEntry 14 } + +snaLuSessnLinkIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value identifies the link over which the session + passes. It is an index into snaNodeLinkAdminTable. + If the index value is not known, the value of this + object shall be zero." + ::= { snaLuSessnEntry 15 } + + +-- *************************************************************** +-- The following table contains LU sessions statistics dynamic +-- parameters. +-- *************************************************************** + +snaLuSessnStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaLuSessnStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains dynamic statistics information + relating to LU sessions. + The entries in this table augment the entries in + the snaLuSessnTable and cannot be created by + a Management Station." + ::= { snaLu 4 } + +snaLuSessnStatsEntry OBJECT-TYPE + SYNTAX SnaLuSessnStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contains statistics information for an LU session. + Each entry is created by the Agent. + Objects in this table have read-only access. + Each session from snaLuSessnTable + has one entry in this table." + AUGMENTS { snaLuSessnEntry } + ::= { snaLuSessnStatsTable 1 } + +SnaLuSessnStatsEntry ::= SEQUENCE { + snaLuSessnStatsSentBytes + Counter32, + snaLuSessnStatsReceivedBytes + Counter32, + snaLuSessnStatsSentRus + Counter32, + snaLuSessnStatsReceivedRus + Counter32, + snaLuSessnStatsSentNegativeResps + Counter32, + snaLuSessnStatsReceivedNegativeResps + Counter32 + } + +snaLuSessnStatsSentBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of bytes sent by the local LU." + ::= { snaLuSessnStatsEntry 1 } + +snaLuSessnStatsReceivedBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of bytes received by the local LU." + ::= { snaLuSessnStatsEntry 2 } + +snaLuSessnStatsSentRus OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RUs sent by the local LU." + ::= { snaLuSessnStatsEntry 3 } + +snaLuSessnStatsReceivedRus OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of RUs received by the local LU." + ::= { snaLuSessnStatsEntry 4 } + +snaLuSessnStatsSentNegativeResps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of negative responses sent by the + local LU." + ::= { snaLuSessnStatsEntry 5 } + +snaLuSessnStatsReceivedNegativeResps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of negative responses received by the + local LU." + ::= { snaLuSessnStatsEntry 6 } + + +-- *************************************************************** +-- Traps +-- *************************************************************** + +snaLuTraps OBJECT IDENTIFIER ::= { snaLu 5 } + +snaLuStateChangeTrap NOTIFICATION-TYPE + OBJECTS { snaLuOperName, + snaLuOperSnaName, + snaLuOperState } + STATUS current + DESCRIPTION + "This trap indicates that the operational state + (i.e., snaLuOperState value) of the LU has changed. + The value of snaLuOperName indicates the name of the + LU. + The value of snaLuOperSnaName indicates the SNA name + of LU. + The value of snaLuOperState indicates the current + state after change." + ::= { snaLuTraps 1 } + +snaLuSessnBindFailTrap NOTIFICATION-TYPE + OBJECTS { snaLuSessnLocalApplName, + snaLuSessnRemoteLuName, + snaLuSessnOperState, + snaLuSessnSenseData } + STATUS current + DESCRIPTION + "This trap indicates the failure of a BIND. + The value of snaLuSessnLocalApplName indicates the local + application name. + The value of snaLuSessnPartnerName indicates the partner + name. + The value of snaLuSessnOperState indicates the current + state after change. + The value of snaLuSessnBindFailureReason + indicates the failure reason. + The Agent should not generate more than 1 trap of this + type per minute to minimize the level of management + traffic on the network." + ::= { snaLuTraps 2 } + +-- *************************************************************** +-- snaMgtTools group +-- +-- Currently this group contains only one table. +-- *************************************************************** + + +-- *************************************************************** +-- The following table contains Response Time Monitoring (RTM) +-- configuration information and statistics for LU Type 2s. +-- RTM supports the capability to measure and report end-user +-- response times for dependent LUs. When the RTM state of an LU +-- is 'on', response times for each LU transaction are monitored. +-- A set of ranges is defined (e.g., Range 1 includes the number of +-- transactions with response times less than 1 second) using the +-- "boundary" definitions (e.g., boundary #2 is defined as 3 seconds). +-- A set of counters (one per range) identifies +-- the number of transactions within each response time range. +-- *************************************************************** + +snaLuRtmTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnaLuRtmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains Response Time Monitoring (RTM) + information relating to an LU (Type 2). Each entry + corresponds to an LU 2 entry in + snaLuAdminTable." + ::= { snaMgtTools 1 } + +snaLuRtmEntry OBJECT-TYPE + SYNTAX SnaLuRtmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contains RTM information for an LU (Type 2). + Each entry is created by the Agent." + INDEX { snaLuRtmPuIndex, snaLuRtmLuIndex } + ::= { snaLuRtmTable 1 } + +SnaLuRtmEntry ::= SEQUENCE { + snaLuRtmPuIndex + Integer32, + snaLuRtmLuIndex + Integer32, + snaLuRtmState + INTEGER, + snaLuRtmStateTime + TimeStamp, + snaLuRtmDef + INTEGER, + snaLuRtmBoundary1 + Integer32, + snaLuRtmBoundary2 + Integer32, + snaLuRtmBoundary3 + Integer32, + snaLuRtmBoundary4 + Integer32, + snaLuRtmCounter1 + Counter32, + snaLuRtmCounter2 + Counter32, + snaLuRtmCounter3 + Counter32, + snaLuRtmCounter4 + Counter32, + snaLuRtmOverFlows + Counter32, + snaLuRtmObjPercent + Integer32, + snaLuRtmObjRange + INTEGER, + snaLuRtmNumTrans + Integer32, + snaLuRtmLastRspTime + Integer32, + snaLuRtmAvgRspTime + Integer32 + } + +snaLuRtmPuIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value identifies the PU 2.0 with which this LU is + associated." + ::= { snaLuRtmEntry 1 } + +snaLuRtmLuIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value uniquely identifies an LU in a PU 2.0." + ::= { snaLuRtmEntry 2 } + +snaLuRtmState OBJECT-TYPE + SYNTAX INTEGER { + off(1), + on(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value indicates the current RTM state of an LU." + ::= { snaLuRtmEntry 3 } + +snaLuRtmStateTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The timestamp (e.g., the Agent's sysUpTime value) + when this session's RTM state (e.g., snaLuRtmState) + changes value." + ::= { snaLuRtmEntry 4 } + +snaLuRtmDef OBJECT-TYPE + SYNTAX INTEGER { + firstChar(1), + kb(2), + cdeb(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value indicates the mode of measurement for this + RTM request. The values have following meaning: + firstChar(1) - time to first character on screen + kb(2) - time to keyboard usable by operator + cdeb(3) - time to Change Direction/End Bracket." + ::= { snaLuRtmEntry 5 } + +snaLuRtmBoundary1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains the value of the first boundary + in units of 1/10th of a second." + ::= { snaLuRtmEntry 6 } + +snaLuRtmBoundary2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains the value of the second boundary + in units of 1/10th of a second." + ::= { snaLuRtmEntry 7 } + +snaLuRtmBoundary3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains the value of the third boundary + in units of 1/10th of a second." + ::= { snaLuRtmEntry 8 } + +snaLuRtmBoundary4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object contains the value of the fourth boundary + in units of 1/10th of a second." + ::= { snaLuRtmEntry 9 } + +snaLuRtmCounter1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the number of transactions which + fall in the range specified by the first boundary." + ::= { snaLuRtmEntry 10 } + +snaLuRtmCounter2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the number of transactions which + fall in the range specified by the second boundary." + ::= { snaLuRtmEntry 11 } + +snaLuRtmCounter3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the number of transactions which + fall in the range specified by the third boundary." + ::= { snaLuRtmEntry 12 } + +snaLuRtmCounter4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the number of transactions which + fall in the range specified by the fourth boundary." + ::= { snaLuRtmEntry 13 } + +snaLuRtmOverFlows OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the number of transactions which + exceed the highest range specified by the + boundaries." + ::= { snaLuRtmEntry 14 } + +snaLuRtmObjPercent OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the desired percentage of + transactions which should be under a designated + boundary range indicated by snaLuRtmObjRange." + ::= { snaLuRtmEntry 15 } + +snaLuRtmObjRange OBJECT-TYPE + SYNTAX INTEGER { + other(1), + range1(2), + range2(3), + range3(4), + range4(5), + range5(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the designated boundary range to + which the snaLuRtmObject refers. + The values have the following meanings: + other(1) - not specified + range1(2) - less than boundary 1 + range2(3) - between boundary 1 and 2 + range3(4) - between boundary 2 and 3 + range4(5) - between boundary 3 and 4 + range5(6) - greater than boundary 4." + ::= { snaLuRtmEntry 16 } + +snaLuRtmNumTrans OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the total number of transactions + executed since the RTM monitoring began (i.e., + snaLuRtmState changed to 'on(2)') for this LU." + ::= { snaLuRtmEntry 17 } + +snaLuRtmLastRspTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the response time for the last + transaction in units of 1/10th of a second." + ::= { snaLuRtmEntry 18 } + +snaLuRtmAvgRspTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This value indicates the average response time for all + transactions in units of 1/10th of a second." + ::= { snaLuRtmEntry 19 } + + +-- *************************************************************** +-- Conformance information +-- *************************************************************** + +snanauConformance OBJECT IDENTIFIER ::= { snanauMIB 2 } + +snanauCompliances OBJECT IDENTIFIER ::= {snanauConformance 1 } +snanauGroups OBJECT IDENTIFIER ::= {snanauConformance 2 } + +-- Compliance statements +snanauCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for the SNMPv2 entities + which implement the snanau MIB." + MODULE -- this module + +-- Unconditionally mandatory groups + MANDATORY-GROUPS { snaNodeGroup, + snaLuGroup, + snaSessionGroup } + +-- Conditionally mandatory groups + GROUP snaPu20Group + DESCRIPTION + "The snaPu20Group is mandatory only for those + entities which implement PU type 2.0" + GROUP snaMgtToolsRtmGroup + DESCRIPTION + "The snaMgtToolsGroup is mandatory only for + those entities which implement LU type 2 + and RTM." + +-- Refinement of requirements for objects access. +-- The Agent which does not implement row creation for +-- snaNodeAdminTable, snaNodeLinkAdminTable and +-- snaLuAdminTable must at least accept +-- objects modification (read-write access instead of +-- read-create). + + OBJECT snaNodeAdminName + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminType + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminXidFormat + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminBlockNum + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminIdNum + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminEnablingMethod + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminLuTermDefault + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminMaxLu + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminHostDescription + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminStopMethod + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeAdminState + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeLinkAdminSpecific + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaNodeLinkAdminMaxPiu + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + OBJECT snaLuAdminName + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaLuAdminSnaName + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaLuAdminType + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaLuAdminDepType + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaLuAdminLocalAddress + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaLuAdminDisplayModel + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + OBJECT snaLuAdminTerm + MIN-ACCESS read-write + DESCRIPTION + "An Agent is required to implement read-write + access to this object." + + ::= {snanauCompliances 1 } + + +-- Units of conformance + +snaNodeGroup OBJECT-GROUP + OBJECTS { snaNodeAdminName, + snaNodeAdminType, + snaNodeAdminXidFormat, + snaNodeAdminBlockNum, + snaNodeAdminIdNum, + snaNodeAdminEnablingMethod, + snaNodeAdminLuTermDefault, + snaNodeAdminMaxLu, + snaNodeAdminHostDescription, + snaNodeAdminStopMethod, + snaNodeAdminState, + snaNodeAdminRowStatus, + snaNodeAdminTableLastChange, + snaNodeOperName, + snaNodeOperType, + snaNodeOperXidFormat, + snaNodeOperBlockNum, + snaNodeOperIdNum, + snaNodeOperEnablingMethod, + snaNodeOperLuTermDefault, + snaNodeOperMaxLu, + snaNodeOperHostDescription, + snaNodeOperStopMethod, + snaNodeOperState, + snaNodeOperHostSscpId, + snaNodeOperStartTime, + snaNodeOperLastStateChange, + snaNodeOperActFailures, + snaNodeOperActFailureReason, + snaNodeOperTableLastChange, + snaNodeLinkAdminSpecific, + snaNodeLinkAdminMaxPiu, + snaNodeLinkAdminRowStatus, + snaNodeLinkAdminTableLastChange, + snaNodeLinkOperSpecific, + snaNodeLinkOperMaxPiu, + snaNodeLinkOperTableLastChange } + STATUS current + DESCRIPTION + "A collection of objects providing the + instrumentation of SNA nodes." + ::= { snanauGroups 1 } + +snaLuGroup OBJECT-GROUP + OBJECTS { snaLuAdminName, + snaLuAdminSnaName, + snaLuAdminType, + snaLuAdminDepType, + snaLuAdminLocalAddress, + snaLuAdminDisplayModel, + snaLuAdminTerm, + snaLuAdminRowStatus, + snaLuOperName, + snaLuOperSnaName, + snaLuOperType, + snaLuOperDepType, + snaLuOperLocalAddress, + snaLuOperDisplayModel, + snaLuOperTerm, + snaLuOperState, + snaLuOperSessnCount } + STATUS current + DESCRIPTION + "A collection of objects providing the + instrumentation of SNA LUs." + ::= { snanauGroups 2 } + +snaSessionGroup OBJECT-GROUP + OBJECTS { snaLuSessnRluIndex, + snaLuSessnIndex, + snaLuSessnLocalApplName, + snaLuSessnRemoteLuName, + snaLuSessnMaxSndRuSize, + snaLuSessnMaxRcvRuSize, + snaLuSessnSndPacingSize, + snaLuSessnRcvPacingSize, + snaLuSessnActiveTime, + snaLuSessnAdminState, + snaLuSessnOperState, + snaLuSessnSenseData, + snaLuSessnTerminationRu, + snaLuSessnUnbindType, + snaLuSessnLinkIndex, + snaLuSessnStatsSentBytes, + snaLuSessnStatsReceivedBytes, + snaLuSessnStatsSentRus, + snaLuSessnStatsReceivedRus, + snaLuSessnStatsSentNegativeResps, + snaLuSessnStatsReceivedNegativeResps } + STATUS current + DESCRIPTION + "A collection of objects providing the + instrumentation of SNA sessions." + ::= { snanauGroups 3 } + +snaPu20Group OBJECT-GROUP + OBJECTS { snaPu20StatsSentBytes, + snaPu20StatsReceivedBytes, + snaPu20StatsSentPius, + snaPu20StatsReceivedPius, + snaPu20StatsSentNegativeResps, + snaPu20StatsReceivedNegativeResps, + snaPu20StatsActLus, + snaPu20StatsInActLus, + snaPu20StatsBindLus } + STATUS current + DESCRIPTION + "A collection of objects providing the + instrumentation of PU 2.0." + ::= { snanauGroups 4 } + +snaMgtToolsRtmGroup OBJECT-GROUP + OBJECTS { snaLuRtmState, + snaLuRtmStateTime, + snaLuRtmDef, + snaLuRtmBoundary1, + snaLuRtmBoundary2, + snaLuRtmBoundary3, + snaLuRtmBoundary4, + snaLuRtmCounter1, + snaLuRtmCounter2, + snaLuRtmCounter3, + snaLuRtmCounter4, + snaLuRtmOverFlows, + snaLuRtmObjPercent, + snaLuRtmObjRange, + snaLuRtmNumTrans, + snaLuRtmLastRspTime, + snaLuRtmAvgRspTime } + STATUS current + DESCRIPTION + "A collection of objects providing the + instrumentation of RTM for SNA LU 2.0." + ::= { snanauGroups 5 } + +-- end of conformance statement + + +END diff --git a/pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB b/pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB new file mode 100644 index 0000000000..73c7e2f962 --- /dev/null +++ b/pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB @@ -0,0 +1,493 @@ + SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + OBJECT-IDENTITY, + snmpModules FROM SNMPv2-SMI + TEXTUAL-CONVENTION FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; + + snmpFrameworkMIB MODULE-IDENTITY + LAST-UPDATED "9901190000Z" -- 19 January 1999 + ORGANIZATION "SNMPv3 Working Group" + CONTACT-INFO "WG-EMail: snmpv3@tis.com + Subscribe: majordomo@tis.com + In message body: subscribe snmpv3 + + Chair: Russ Mundy + TIS Labs at Network Associates + postal: 3060 Washington Rd + Glenwood MD 21738 + USA + EMail: mundy@tis.com + phone: +1 301-854-6889 + + Co-editor Dave Harrington + Cabletron Systems, Inc. + postal: Post Office Box 5005 + Mail Stop: Durham + 35 Industrial Way + Rochester, NH 03867-5005 + USA + EMail: dbh@ctron.com + phone: +1 603-337-7357 + + Co-editor Randy Presuhn + BMC Software, Inc. + postal: 965 Stewart Drive + Sunnyvale, CA 94086 + USA + EMail: randy_presuhn@bmc.com + phone: +1 408-616-3100 + + Co-editor: Bert Wijnen + IBM T.J. Watson Research + postal: Schagen 33 + 3461 GL Linschoten + Netherlands + EMail: wijnen@vnet.ibm.com + phone: +31 348-432-794 + " + DESCRIPTION "The SNMP Management Architecture MIB" + -- Revision History + + REVISION "9901190000Z" -- 19 January 1999 + DESCRIPTION "Updated editors' addresses, fixed typos. + Published as RFC2571. + " + REVISION "9711200000Z" -- 20 November 1997 + DESCRIPTION "The initial version, published in RFC 2271. + " + ::= { snmpModules 10 } + + -- Textual Conventions used in the SNMP Management Architecture *** + + SnmpEngineID ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "An SNMP engine's administratively-unique identifier. + Objects of this type are for identification, not for + addressing, even though it is possible that an + address may have been used in the generation of + a specific value. + + The value for this object may not be all zeros or + all 'ff'H or the empty (zero length) string. + + The initial value for this object may be configured + via an operator console entry or via an algorithmic + function. In the latter case, the following + example algorithm is recommended. + + In cases where there are multiple engines on the + same system, the use of this algorithm is NOT + appropriate, as it would result in all of those + engines ending up with the same ID value. + + 1) The very first bit is used to indicate how the + rest of the data is composed. + + 0 - as defined by enterprise using former methods + that existed before SNMPv3. See item 2 below. + + 1 - as defined by this architecture, see item 3 + below. + + Note that this allows existing uses of the + engineID (also known as AgentID [RFC1910]) to + co-exist with any new uses. + + 2) The snmpEngineID has a length of 12 octets. + + The first four octets are set to the binary + equivalent of the agent's SNMP management + private enterprise number as assigned by the + Internet Assigned Numbers Authority (IANA). + For example, if Acme Networks has been assigned + { enterprises 696 }, the first four octets would + be assigned '000002b8'H. + + The remaining eight octets are determined via + one or more enterprise-specific methods. Such + methods must be designed so as to maximize the + possibility that the value of this object will + be unique in the agent's administrative domain. + For example, it may be the IP address of the SNMP + entity, or the MAC address of one of the + interfaces, with each address suitably padded + with random octets. If multiple methods are + defined, then it is recommended that the first + octet indicate the method being used and the + remaining octets be a function of the method. + + 3) The length of the octet strings varies. + + The first four octets are set to the binary + equivalent of the agent's SNMP management + private enterprise number as assigned by the + Internet Assigned Numbers Authority (IANA). + For example, if Acme Networks has been assigned + { enterprises 696 }, the first four octets would + be assigned '000002b8'H. + + The very first bit is set to 1. For example, the + above value for Acme Networks now changes to be + '800002b8'H. + + The fifth octet indicates how the rest (6th and + following octets) are formatted. The values for + the fifth octet are: + + 0 - reserved, unused. + + 1 - IPv4 address (4 octets) + lowest non-special IP address + + 2 - IPv6 address (16 octets) + lowest non-special IP address + + 3 - MAC address (6 octets) + lowest IEEE MAC address, canonical + order + + 4 - Text, administratively assigned + Maximum remaining length 27 + + 5 - Octets, administratively assigned + Maximum remaining length 27 + + 6-127 - reserved, unused + + 127-255 - as defined by the enterprise + Maximum remaining length 27 + " + SYNTAX OCTET STRING (SIZE(5..32)) + + SnmpSecurityModel ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "An identifier that uniquely identifies a + securityModel of the Security Subsystem within the + SNMP Management Architecture. + + The values for securityModel are allocated as + follows: + + - The zero value is reserved. + - Values between 1 and 255, inclusive, are reserved + for standards-track Security Models and are + managed by the Internet Assigned Numbers Authority + (IANA). + - Values greater than 255 are allocated to + enterprise-specific Security Models. An + enterprise-specific securityModel value is defined + to be: + + enterpriseID * 256 + security model within + enterprise + + For example, the fourth Security Model defined by + the enterprise whose enterpriseID is 1 would be + 260. + + This scheme for allocation of securityModel + values allows for a maximum of 255 standards- + based Security Models, and for a maximum of + 255 Security Models per enterprise. + + It is believed that the assignment of new + securityModel values will be rare in practice + because the larger the number of simultaneously + utilized Security Models, the larger the + chance that interoperability will suffer. + Consequently, it is believed that such a range + will be sufficient. In the unlikely event that + the standards committee finds this number to be + insufficient over time, an enterprise number + can be allocated to obtain an additional 255 + possible values. + + Note that the most significant bit must be zero; + hence, there are 23 bits allocated for various + organizations to design and define non-standard + securityModels. This limits the ability to + define new proprietary implementations of Security + Models to the first 8,388,608 enterprises. + + It is worthwhile to note that, in its encoded + form, the securityModel value will normally + require only a single byte since, in practice, + the leftmost bits will be zero for most messages + and sign extension is suppressed by the encoding + rules. + + As of this writing, there are several values + of securityModel defined for use with SNMP or + reserved for use with supporting MIB objects. + They are as follows: + + 0 reserved for 'any' + 1 reserved for SNMPv1 + 2 reserved for SNMPv2c + 3 User-Based Security Model (USM) + " + SYNTAX INTEGER(0 .. 2147483647) + + SnmpMessageProcessingModel ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "An identifier that uniquely identifies a Message + Processing Model of the Message Processing + Subsystem within a SNMP Management Architecture. + The values for messageProcessingModel are + allocated as follows: + + - Values between 0 and 255, inclusive, are + reserved for standards-track Message Processing + Models and are managed by the Internet Assigned + Numbers Authority (IANA). + + - Values greater than 255 are allocated to + enterprise-specific Message Processing Models. + An enterprise messageProcessingModel value is + defined to be: + + enterpriseID * 256 + + messageProcessingModel within enterprise + + For example, the fourth Message Processing Model + defined by the enterprise whose enterpriseID + is 1 would be 260. + + This scheme for allocating messageProcessingModel + values allows for a maximum of 255 standards- + based Message Processing Models, and for a + maximum of 255 Message Processing Models per + enterprise. + + It is believed that the assignment of new + messageProcessingModel values will be rare + in practice because the larger the number of + simultaneously utilized Message Processing Models, + the larger the chance that interoperability + will suffer. It is believed that such a range + will be sufficient. In the unlikely event that + the standards committee finds this number to be + insufficient over time, an enterprise number + can be allocated to obtain an additional 256 + possible values. + + Note that the most significant bit must be zero; + hence, there are 23 bits allocated for various + organizations to design and define non-standard + messageProcessingModels. This limits the ability + to define new proprietary implementations of + Message Processing Models to the first 8,388,608 + enterprises. + + It is worthwhile to note that, in its encoded + form, the messageProcessingModel value will + normally require only a single byte since, in + practice, the leftmost bits will be zero for + most messages and sign extension is suppressed + by the encoding rules. + + As of this writing, there are several values of + messageProcessingModel defined for use with SNMP. + They are as follows: + + 0 reserved for SNMPv1 + 1 reserved for SNMPv2c + 2 reserved for SNMPv2u and SNMPv2* + 3 reserved for SNMPv3 + " + SYNTAX INTEGER(0 .. 2147483647) + + SnmpSecurityLevel ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "A Level of Security at which SNMP messages can be + sent or with which operations are being processed; + in particular, one of: + + noAuthNoPriv - without authentication and + without privacy, + authNoPriv - with authentication but + without privacy, + authPriv - with authentication and + with privacy. + + These three values are ordered such that + noAuthNoPriv is less than authNoPriv and + authNoPriv is less than authPriv. + " + SYNTAX INTEGER { noAuthNoPriv(1), + authNoPriv(2), + authPriv(3) + } + + SnmpAdminString ::= TEXTUAL-CONVENTION + DISPLAY-HINT "255a" + STATUS current + DESCRIPTION "An octet string containing administrative + information, preferably in human-readable form. + + To facilitate internationalization, this + information is represented using the ISO/IEC + IS 10646-1 character set, encoded as an octet + string using the UTF-8 transformation format + described in [RFC2279]. + + Since additional code points are added by + amendments to the 10646 standard from time + to time, implementations must be prepared to + encounter any code point from 0x00000000 to + 0x7fffffff. Byte sequences that do not + correspond to the valid UTF-8 encoding of a + code point or are outside this range are + prohibited. + + The use of control codes should be avoided. + + When it is necessary to represent a newline, + the control code sequence CR LF should be used. + + The use of leading or trailing white space should + be avoided. + + For code points not directly supported by user + interface hardware or software, an alternative + means of entry and display, such as hexadecimal, + may be provided. + + For information encoded in 7-bit US-ASCII, + the UTF-8 encoding is identical to the + US-ASCII encoding. + + UTF-8 may require multiple bytes to represent a + single character / code point; thus the length + of this object in octets may be different from + the number of characters encoded. Similarly, + size constraints refer to the number of encoded + octets, not the number of characters represented + by an encoding. + + Note that when this TC is used for an object that + is used or envisioned to be used as an index, then + a SIZE restriction MUST be specified so that the + number of sub-identifiers for any object instance + does not exceed the limit of 128, as defined by + [RFC1905]. + + Note that the size of an SnmpAdminString object is + measured in octets, not characters. + " + SYNTAX OCTET STRING (SIZE (0..255)) + + -- Administrative assignments *************************************** + + snmpFrameworkAdmin + OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 } + snmpFrameworkMIBObjects + OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 } + snmpFrameworkMIBConformance + OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 } + + -- the snmpEngine Group ******************************************** + + snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 } + + snmpEngineID OBJECT-TYPE + SYNTAX SnmpEngineID + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An SNMP engine's administratively-unique identifier. + " + ::= { snmpEngine 1 } + + snmpEngineBoots OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of times that the SNMP engine has + (re-)initialized itself since snmpEngineID + was last configured. + " + ::= { snmpEngine 2 } + + snmpEngineTime OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of seconds since the value of + the snmpEngineBoots object last changed. + When incrementing this object's value would + cause it to exceed its maximum, + snmpEngineBoots is incremented as if a + re-initialization had occurred, and this + object's value consequently reverts to zero. + " + ::= { snmpEngine 3 } + + snmpEngineMaxMessageSize OBJECT-TYPE + SYNTAX INTEGER (484..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The maximum length in octets of an SNMP message + which this SNMP engine can send or receive and + process, determined as the minimum of the maximum + message size values supported among all of the + transports available to and supported by the engine. + " + ::= { snmpEngine 4 } + + + -- Registration Points for Authentication and Privacy Protocols ** + + snmpAuthProtocols OBJECT-IDENTITY + STATUS current + DESCRIPTION "Registration point for standards-track + authentication protocols used in SNMP Management + Frameworks. + " + ::= { snmpFrameworkAdmin 1 } + + snmpPrivProtocols OBJECT-IDENTITY + STATUS current + DESCRIPTION "Registration point for standards-track privacy + protocols used in SNMP Management Frameworks. + " + ::= { snmpFrameworkAdmin 2 } + + -- Conformance information ****************************************** + + snmpFrameworkMIBCompliances + OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 1} + snmpFrameworkMIBGroups + OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 2} + + -- compliance statements + + snmpFrameworkMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement for SNMP engines which + implement the SNMP Management Framework MIB. + " + MODULE -- this module + MANDATORY-GROUPS { snmpEngineGroup } + + ::= { snmpFrameworkMIBCompliances 1 } + + -- units of conformance + snmpEngineGroup OBJECT-GROUP + OBJECTS { + snmpEngineID, + snmpEngineBoots, + snmpEngineTime, + snmpEngineMaxMessageSize + } + STATUS current + DESCRIPTION "A collection of objects for identifying and + determining the configuration and current timeliness + values of an SNMP engine. + " + ::= { snmpFrameworkMIBGroups 1 } + + END diff --git a/pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB.my b/pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB.my new file mode 100644 index 0000000000..008455c440 --- /dev/null +++ b/pandora_console/attachment/mibs/SNMP-FRAMEWORK-MIB.my @@ -0,0 +1,543 @@ + SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + OBJECT-IDENTITY, + snmpModules FROM SNMPv2-SMI + TEXTUAL-CONVENTION FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; + + snmpFrameworkMIB MODULE-IDENTITY + LAST-UPDATED "9901190000Z" -- 19 January 1999 + ORGANIZATION "SNMPv3 Working Group" + CONTACT-INFO "WG-EMail: snmpv3@tis.com + Subscribe: majordomo@tis.com + In message body: subscribe snmpv3 + + Chair: Russ Mundy + TIS Labs at Network Associates + postal: 3060 Washington Rd + Glenwood MD 21738 + USA + EMail: mundy@tis.com + phone: +1 301-854-6889 + + Co-editor Dave Harrington + Cabletron Systems, Inc. + postal: Post Office Box 5005 + Mail Stop: Durham + 35 Industrial Way + Rochester, NH 03867-5005 + USA + EMail: dbh@ctron.com + phone: +1 603-337-7357 + + Co-editor Randy Presuhn + BMC Software, Inc. + postal: 965 Stewart Drive + Sunnyvale, CA 94086 + USA + EMail: randy_presuhn@bmc.com + phone: +1 408-616-3100 + + Co-editor: Bert Wijnen + IBM T.J. Watson Research + postal: Schagen 33 + 3461 GL Linschoten + + + + + + Netherlands + EMail: wijnen@vnet.ibm.com + phone: +31 348-432-794 + " + DESCRIPTION "The SNMP Management Architecture MIB" + -- Revision History + + REVISION "9901190000Z" -- 19 January 1999 + DESCRIPTION "Updated editors' addresses, fixed typos. + Published as RFC2571. + " + REVISION "9711200000Z" -- 20 November 1997 + DESCRIPTION "The initial version, published in RFC 2271. + " + ::= { snmpModules 10 } + + -- Textual Conventions used in the SNMP Management Architecture *** + + SnmpEngineID ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "An SNMP engine's administratively-unique identifier. + Objects of this type are for identification, not for + addressing, even though it is possible that an + address may have been used in the generation of + a specific value. + + The value for this object may not be all zeros or + all 'ff'H or the empty (zero length) string. + + The initial value for this object may be configured + via an operator console entry or via an algorithmic + function. In the latter case, the following + example algorithm is recommended. + + In cases where there are multiple engines on the + same system, the use of this algorithm is NOT + appropriate, as it would result in all of those + engines ending up with the same ID value. + + 1) The very first bit is used to indicate how the + rest of the data is composed. + + 0 - as defined by enterprise using former methods + that existed before SNMPv3. See item 2 below. + + 1 - as defined by this architecture, see item 3 + below. + + + + + + + Note that this allows existing uses of the + engineID (also known as AgentID [RFC1910]) to + co-exist with any new uses. + + 2) The snmpEngineID has a length of 12 octets. + + The first four octets are set to the binary + equivalent of the agent's SNMP management + private enterprise number as assigned by the + Internet Assigned Numbers Authority (IANA). + For example, if Acme Networks has been assigned + { enterprises 696 }, the first four octets would + be assigned '000002b8'H. + + The remaining eight octets are determined via + one or more enterprise-specific methods. Such + methods must be designed so as to maximize the + possibility that the value of this object will + be unique in the agent's administrative domain. + For example, it may be the IP address of the SNMP + entity, or the MAC address of one of the + interfaces, with each address suitably padded + with random octets. If multiple methods are + defined, then it is recommended that the first + octet indicate the method being used and the + remaining octets be a function of the method. + + 3) The length of the octet strings varies. + + The first four octets are set to the binary + equivalent of the agent's SNMP management + private enterprise number as assigned by the + Internet Assigned Numbers Authority (IANA). + For example, if Acme Networks has been assigned + { enterprises 696 }, the first four octets would + be assigned '000002b8'H. + + The very first bit is set to 1. For example, the + above value for Acme Networks now changes to be + '800002b8'H. + + The fifth octet indicates how the rest (6th and + following octets) are formatted. The values for + the fifth octet are: + + 0 - reserved, unused. + + 1 - IPv4 address (4 octets) + + + + + + lowest non-special IP address + + 2 - IPv6 address (16 octets) + lowest non-special IP address + + 3 - MAC address (6 octets) + lowest IEEE MAC address, canonical + order + + 4 - Text, administratively assigned + Maximum remaining length 27 + + 5 - Octets, administratively assigned + Maximum remaining length 27 + + 6-127 - reserved, unused + + 127-255 - as defined by the enterprise + Maximum remaining length 27 + " + SYNTAX OCTET STRING (SIZE(5..32)) + + SnmpSecurityModel ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "An identifier that uniquely identifies a + securityModel of the Security Subsystem within the + SNMP Management Architecture. + + The values for securityModel are allocated as + follows: + + - The zero value is reserved. + - Values between 1 and 255, inclusive, are reserved + for standards-track Security Models and are + managed by the Internet Assigned Numbers Authority + (IANA). + - Values greater than 255 are allocated to + enterprise-specific Security Models. An + enterprise-specific securityModel value is defined + to be: + + enterpriseID * 256 + security model within + enterprise + + For example, the fourth Security Model defined by + the enterprise whose enterpriseID is 1 would be + 260. + + + + + + + This scheme for allocation of securityModel + values allows for a maximum of 255 standards- + based Security Models, and for a maximum of + 255 Security Models per enterprise. + + It is believed that the assignment of new + securityModel values will be rare in practice + because the larger the number of simultaneously + utilized Security Models, the larger the + chance that interoperability will suffer. + Consequently, it is believed that such a range + will be sufficient. In the unlikely event that + the standards committee finds this number to be + insufficient over time, an enterprise number + can be allocated to obtain an additional 255 + possible values. + + Note that the most significant bit must be zero; + hence, there are 23 bits allocated for various + organizations to design and define non-standard + securityModels. This limits the ability to + define new proprietary implementations of Security + Models to the first 8,388,608 enterprises. + + It is worthwhile to note that, in its encoded + form, the securityModel value will normally + require only a single byte since, in practice, + the leftmost bits will be zero for most messages + and sign extension is suppressed by the encoding + rules. + + As of this writing, there are several values + of securityModel defined for use with SNMP or + reserved for use with supporting MIB objects. + They are as follows: + + 0 reserved for 'any' + 1 reserved for SNMPv1 + 2 reserved for SNMPv2c + 3 User-Based Security Model (USM) + " + SYNTAX INTEGER(0 .. 2147483647) + + SnmpMessageProcessingModel ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "An identifier that uniquely identifies a Message + Processing Model of the Message Processing + Subsystem within a SNMP Management Architecture. + + + + + + The values for messageProcessingModel are + allocated as follows: + + - Values between 0 and 255, inclusive, are + reserved for standards-track Message Processing + Models and are managed by the Internet Assigned + Numbers Authority (IANA). + + - Values greater than 255 are allocated to + enterprise-specific Message Processing Models. + An enterprise messageProcessingModel value is + defined to be: + + enterpriseID * 256 + + messageProcessingModel within enterprise + + For example, the fourth Message Processing Model + defined by the enterprise whose enterpriseID + is 1 would be 260. + + This scheme for allocating messageProcessingModel + values allows for a maximum of 255 standards- + based Message Processing Models, and for a + maximum of 255 Message Processing Models per + enterprise. + + It is believed that the assignment of new + messageProcessingModel values will be rare + in practice because the larger the number of + simultaneously utilized Message Processing Models, + the larger the chance that interoperability + will suffer. It is believed that such a range + will be sufficient. In the unlikely event that + the standards committee finds this number to be + insufficient over time, an enterprise number + can be allocated to obtain an additional 256 + possible values. + + Note that the most significant bit must be zero; + hence, there are 23 bits allocated for various + organizations to design and define non-standard + messageProcessingModels. This limits the ability + to define new proprietary implementations of + Message Processing Models to the first 8,388,608 + enterprises. + + It is worthwhile to note that, in its encoded + form, the messageProcessingModel value will + + + + + + normally require only a single byte since, in + practice, the leftmost bits will be zero for + most messages and sign extension is suppressed + by the encoding rules. + + As of this writing, there are several values of + messageProcessingModel defined for use with SNMP. + They are as follows: + + 0 reserved for SNMPv1 + 1 reserved for SNMPv2c + 2 reserved for SNMPv2u and SNMPv2* + 3 reserved for SNMPv3 + " + SYNTAX INTEGER(0 .. 2147483647) + + SnmpSecurityLevel ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION "A Level of Security at which SNMP messages can be + sent or with which operations are being processed; + in particular, one of: + + noAuthNoPriv - without authentication and + without privacy, + authNoPriv - with authentication but + without privacy, + authPriv - with authentication and + with privacy. + + These three values are ordered such that + noAuthNoPriv is less than authNoPriv and + authNoPriv is less than authPriv. + " + SYNTAX INTEGER { noAuthNoPriv(1), + authNoPriv(2), + authPriv(3) + } + + SnmpAdminString ::= TEXTUAL-CONVENTION + DISPLAY-HINT "255a" + STATUS current + DESCRIPTION "An octet string containing administrative + information, preferably in human-readable form. + + To facilitate internationalization, this + information is represented using the ISO/IEC + IS 10646-1 character set, encoded as an octet + string using the UTF-8 transformation format + + + + + + described in [RFC2279]. + + Since additional code points are added by + amendments to the 10646 standard from time + to time, implementations must be prepared to + encounter any code point from 0x00000000 to + 0x7fffffff. Byte sequences that do not + correspond to the valid UTF-8 encoding of a + code point or are outside this range are + prohibited. + + The use of control codes should be avoided. + + When it is necessary to represent a newline, + the control code sequence CR LF should be used. + + The use of leading or trailing white space should + be avoided. + + For code points not directly supported by user + interface hardware or software, an alternative + means of entry and display, such as hexadecimal, + may be provided. + + For information encoded in 7-bit US-ASCII, + the UTF-8 encoding is identical to the + US-ASCII encoding. + + UTF-8 may require multiple bytes to represent a + single character / code point; thus the length + of this object in octets may be different from + the number of characters encoded. Similarly, + size constraints refer to the number of encoded + octets, not the number of characters represented + by an encoding. + + Note that when this TC is used for an object that + is used or envisioned to be used as an index, then + a SIZE restriction MUST be specified so that the + number of sub-identifiers for any object instance + does not exceed the limit of 128, as defined by + [RFC1905]. + + Note that the size of an SnmpAdminString object is + measured in octets, not characters. + " + SYNTAX OCTET STRING (SIZE (0..255)) + + + + + + + -- Administrative assignments *************************************** + + snmpFrameworkAdmin + OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 } + snmpFrameworkMIBObjects + OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 } + snmpFrameworkMIBConformance + OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 } + + -- the snmpEngine Group ******************************************** + + snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 } + + snmpEngineID OBJECT-TYPE + SYNTAX SnmpEngineID + MAX-ACCESS read-only + STATUS current + DESCRIPTION "An SNMP engine's administratively-unique identifier. + " + ::= { snmpEngine 1 } + + snmpEngineBoots OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of times that the SNMP engine has + (re-)initialized itself since snmpEngineID + was last configured. + " + ::= { snmpEngine 2 } + + snmpEngineTime OBJECT-TYPE + SYNTAX INTEGER (0..2147483647) + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The number of seconds since the value of + the snmpEngineBoots object last changed. + When incrementing this object's value would + cause it to exceed its maximum, + snmpEngineBoots is incremented as if a + re-initialization had occurred, and this + object's value consequently reverts to zero. + " + ::= { snmpEngine 3 } + + snmpEngineMaxMessageSize OBJECT-TYPE + SYNTAX INTEGER (484..2147483647) + + + + + + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The maximum length in octets of an SNMP message + which this SNMP engine can send or receive and + process, determined as the minimum of the maximum + message size values supported among all of the + transports available to and supported by the engine. + " + ::= { snmpEngine 4 } + + + -- Registration Points for Authentication and Privacy Protocols ** + + snmpAuthProtocols OBJECT-IDENTITY + STATUS current + DESCRIPTION "Registration point for standards-track + authentication protocols used in SNMP Management + Frameworks. + " + ::= { snmpFrameworkAdmin 1 } + + snmpPrivProtocols OBJECT-IDENTITY + STATUS current + DESCRIPTION "Registration point for standards-track privacy + protocols used in SNMP Management Frameworks. + " + ::= { snmpFrameworkAdmin 2 } + + -- Conformance information ****************************************** + + snmpFrameworkMIBCompliances + OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 1} + snmpFrameworkMIBGroups + OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 2} + + -- compliance statements + + snmpFrameworkMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement for SNMP engines which + implement the SNMP Management Framework MIB. + " + MODULE -- this module + MANDATORY-GROUPS { snmpEngineGroup } + + ::= { snmpFrameworkMIBCompliances 1 } + + -- units of conformance + + + + + + snmpEngineGroup OBJECT-GROUP + OBJECTS { + snmpEngineID, + snmpEngineBoots, + snmpEngineTime, + snmpEngineMaxMessageSize + } + STATUS current + DESCRIPTION "A collection of objects for identifying and + determining the configuration and current timeliness + values of an SNMP engine. + " + ::= { snmpFrameworkMIBGroups 1 } + + END diff --git a/pandora_console/attachment/mibs/SNMP-USER-BASED-SM-MIB b/pandora_console/attachment/mibs/SNMP-USER-BASED-SM-MIB new file mode 100644 index 0000000000..4ec5ee5061 --- /dev/null +++ b/pandora_console/attachment/mibs/SNMP-USER-BASED-SM-MIB @@ -0,0 +1,890 @@ +SNMP-USER-BASED-SM-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + OBJECT-IDENTITY, + snmpModules, Counter32 FROM SNMPv2-SMI + TEXTUAL-CONVENTION, TestAndIncr, + RowStatus, RowPointer, + StorageType, AutonomousType FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF + SnmpAdminString, SnmpEngineID, + snmpAuthProtocols, snmpPrivProtocols FROM SNMP-FRAMEWORK-MIB; + +snmpUsmMIB MODULE-IDENTITY + LAST-UPDATED "9901200000Z" -- 20 Jan 1999, midnight + ORGANIZATION "SNMPv3 Working Group" + CONTACT-INFO "WG-email: snmpv3@lists.tislabs.com + Subscribe: majordomo@lists.tislabs.com + In msg body: subscribe snmpv3 + + Chair: Russ Mundy + Trusted Information Systems + postal: 3060 Washington Rd + Glenwood MD 21738 + USA + email: mundy@tislabs.com + phone: +1-301-854-6889 + + Co-editor Uri Blumenthal + IBM T. J. Watson Research + postal: 30 Saw Mill River Pkwy, + Hawthorne, NY 10532 + USA + email: uri@watson.ibm.com + phone: +1-914-784-7964 + + Co-editor: Bert Wijnen + IBM T. J. Watson Research + postal: Schagen 33 + 3461 GL Linschoten + Netherlands + email: wijnen@vnet.ibm.com + phone: +31-348-432-794 + " + DESCRIPTION "The management information definitions for the + SNMP User-based Security Model. + " +-- Revision history + + REVISION "9901200000Z" -- 20 Jan 1999, midnight + DESCRIPTION "Clarifications, published as RFC2574" + + REVISION "9711200000Z" -- 20 Nov 1997, midnight + DESCRIPTION "Initial version, published as RFC2274" + + ::= { snmpModules 15 } + +-- Administrative assignments **************************************** + +usmMIBObjects OBJECT IDENTIFIER ::= { snmpUsmMIB 1 } +usmMIBConformance OBJECT IDENTIFIER ::= { snmpUsmMIB 2 } + +-- Identification of Authentication and Privacy Protocols ************ + +usmNoAuthProtocol OBJECT-IDENTITY + STATUS current + DESCRIPTION "No Authentication Protocol." + ::= { snmpAuthProtocols 1 } + +usmHMACMD5AuthProtocol OBJECT-IDENTITY + STATUS current + DESCRIPTION "The HMAC-MD5-96 Digest Authentication Protocol." + REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti HMAC: + Keyed-Hashing for Message Authentication, + RFC2104, Feb 1997. + - Rivest, R., Message Digest Algorithm MD5, RFC1321. + " + ::= { snmpAuthProtocols 2 } + +usmHMACSHAAuthProtocol OBJECT-IDENTITY + STATUS current + DESCRIPTION "The HMAC-SHA-96 Digest Authentication Protocol." + REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti, HMAC: + Keyed-Hashing for Message Authentication, + RFC2104, Feb 1997. + - Secure Hash Algorithm. NIST FIPS 180-1. + " + ::= { snmpAuthProtocols 3 } + +usmNoPrivProtocol OBJECT-IDENTITY + STATUS current + DESCRIPTION "No Privacy Protocol." + ::= { snmpPrivProtocols 1 } + +usmDESPrivProtocol OBJECT-IDENTITY + STATUS current + DESCRIPTION "The CBC-DES Symmetric Encryption Protocol." + REFERENCE "- Data Encryption Standard, National Institute of + Standards and Technology. Federal Information + Processing Standard (FIPS) Publication 46-1. + Supersedes FIPS Publication 46, + (January, 1977; reaffirmed January, 1988). + + - Data Encryption Algorithm, American National + Standards Institute. ANSI X3.92-1981, + (December, 1980). + + - DES Modes of Operation, National Institute of + Standards and Technology. Federal Information + Processing Standard (FIPS) Publication 81, + (December, 1980). + + - Data Encryption Algorithm - Modes of Operation, + American National Standards Institute. + ANSI X3.106-1983, (May 1983). + " + ::= { snmpPrivProtocols 2 } + + +-- Textual Conventions *********************************************** + + +KeyChange ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + + "Every definition of an object with this syntax must identify + a protocol P, a secret key K, and a hash algorithm H + that produces output of L octets. + + The object's value is a manager-generated, partially-random + value which, when modified, causes the value of the secret + key K, to be modified via a one-way function. + + The value of an instance of this object is the concatenation + of two components: first a 'random' component and then a + 'delta' component. + + The lengths of the random and delta components + are given by the corresponding value of the protocol P; + if P requires K to be a fixed length, the length of both the + random and delta components is that fixed length; if P + allows the length of K to be variable up to a particular + maximum length, the length of the random component is that + maximum length and the length of the delta component is any + length less than or equal to that maximum length. + For example, usmHMACMD5AuthProtocol requires K to be a fixed + length of 16 octets and L - of 16 octets. + usmHMACSHAAuthProtocol requires K to be a fixed length of + 20 octets and L - of 20 octets. Other protocols may define + other sizes, as deemed appropriate. + + When a requester wants to change the old key K to a new + key keyNew on a remote entity, the 'random' component is + obtained from either a true random generator, or from a + pseudorandom generator, and the 'delta' component is + computed as follows: + + - a temporary variable is initialized to the existing value + of K; + - if the length of the keyNew is greater than L octets, + then: + - the random component is appended to the value of the + temporary variable, and the result is input to the + the hash algorithm H to produce a digest value, and + the temporary variable is set to this digest value; + - the value of the temporary variable is XOR-ed with + the first (next) L-octets (16 octets in case of MD5) + of the keyNew to produce the first (next) L-octets + (16 octets in case of MD5) of the 'delta' component. + - the above two steps are repeated until the unused + portion of the keyNew component is L octets or less, + - the random component is appended to the value of the + temporary variable, and the result is input to the + + hash algorithm H to produce a digest value; + - this digest value, truncated if necessary to be the same + length as the unused portion of the keyNew, is XOR-ed + with the unused portion of the keyNew to produce the + (final portion of the) 'delta' component. + + For example, using MD5 as the hash algorithm H: + + iterations = (lenOfDelta - 1)/16; /* integer division */ + temp = keyOld; + for (i = 0; i < iterations; i++) { + temp = MD5 (temp || random); + delta[i*16 .. (i*16)+15] = + temp XOR keyNew[i*16 .. (i*16)+15]; + } + temp = MD5 (temp || random); + delta[i*16 .. lenOfDelta-1] = + temp XOR keyNew[i*16 .. lenOfDelta-1]; + + The 'random' and 'delta' components are then concatenated as + described above, and the resulting octet string is sent to + the recipient as the new value of an instance of this object. + + At the receiver side, when an instance of this object is set + to a new value, then a new value of K is computed as follows: + + - a temporary variable is initialized to the existing value + of K; + - if the length of the delta component is greater than L + octets, then: + - the random component is appended to the value of the + temporary variable, and the result is input to the + hash algorithm H to produce a digest value, and the + temporary variable is set to this digest value; + - the value of the temporary variable is XOR-ed with + the first (next) L-octets (16 octets in case of MD5) + of the delta component to produce the first (next) + L-octets (16 octets in case of MD5) of the new value + of K. + - the above two steps are repeated until the unused + portion of the delta component is L octets or less, + - the random component is appended to the value of the + temporary variable, and the result is input to the + hash algorithm H to produce a digest value; + - this digest value, truncated if necessary to be the same + length as the unused portion of the delta component, is + XOR-ed with the unused portion of the delta component to + produce the (final portion of the) new value of K. + + For example, using MD5 as the hash algorithm H: + + iterations = (lenOfDelta - 1)/16; /* integer division */ + temp = keyOld; + for (i = 0; i < iterations; i++) { + temp = MD5 (temp || random); + keyNew[i*16 .. (i*16)+15] = + temp XOR delta[i*16 .. (i*16)+15]; + } + temp = MD5 (temp || random); + keyNew[i*16 .. lenOfDelta-1] = + temp XOR delta[i*16 .. lenOfDelta-1]; + + The value of an object with this syntax, whenever it is + retrieved by the management protocol, is always the zero + length string. + + Note that the keyOld and keyNew are the localized keys. + + Note that it is probably wise that when an SNMP entity sends + a SetRequest to change a key, that it keeps a copy of the old + key until it has confirmed that the key change actually + succeeded. + " + SYNTAX OCTET STRING + + +-- Statistics for the User-based Security Model ********************** + + +usmStats OBJECT IDENTIFIER ::= { usmMIBObjects 1 } + + +usmStatsUnsupportedSecLevels OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of packets received by the SNMP + engine which were dropped because they requested a + securityLevel that was unknown to the SNMP engine + or otherwise unavailable. + " + ::= { usmStats 1 } + +usmStatsNotInTimeWindows OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of packets received by the SNMP + engine which were dropped because they appeared + outside of the authoritative SNMP engine's window. + " + ::= { usmStats 2 } + +usmStatsUnknownUserNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of packets received by the SNMP + engine which were dropped because they referenced a + user that was not known to the SNMP engine. + " + ::= { usmStats 3 } + +usmStatsUnknownEngineIDs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of packets received by the SNMP + engine which were dropped because they referenced an + snmpEngineID that was not known to the SNMP engine. + " + ::= { usmStats 4 } + +usmStatsWrongDigests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of packets received by the SNMP + engine which were dropped because they didn't + contain the expected digest value. + " + ::= { usmStats 5 } + +usmStatsDecryptionErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION "The total number of packets received by the SNMP + engine which were dropped because they could not be + decrypted. + " + ::= { usmStats 6 } + +-- The usmUser Group ************************************************ + +usmUser OBJECT IDENTIFIER ::= { usmMIBObjects 2 } + +usmUserSpinLock OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An advisory lock used to allow several cooperating + Command Generator Applications to coordinate their + use of facilities to alter secrets in the + usmUserTable. + " + ::= { usmUser 1 } + +-- The table of valid users for the User-based Security Model ******** + +usmUserTable OBJECT-TYPE + SYNTAX SEQUENCE OF UsmUserEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The table of users configured in the SNMP engine's + Local Configuration Datastore (LCD). + + To create a new user (i.e., to instantiate a new + conceptual row in this table), it is recommended to + follow this procedure: + + 1) GET(usmUserSpinLock.0) and save in sValue. + 2) SET(usmUserSpinLock.0=sValue, + usmUserCloneFrom=templateUser, + usmUserStatus=createAndWait) + You should use a template user to clone from + which has the proper auth/priv protocol defined. + + If the new user is to use privacy: + + 3) generate the keyChange value based on the secret + privKey of the clone-from user and the secret key + to be used for the new user. Let us call this + pkcValue. + 4) GET(usmUserSpinLock.0) and save in sValue. + 5) SET(usmUserSpinLock.0=sValue, + usmUserPrivKeyChange=pkcValue + usmUserPublic=randomValue1) + 6) GET(usmUserPulic) and check it has randomValue1. + If not, repeat steps 4-6. + + If the new user will never use privacy: + + 7) SET(usmUserPrivProtocol=usmNoPrivProtocol) + + If the new user is to use authentication: + + 8) generate the keyChange value based on the secret + authKey of the clone-from user and the secret key + to be used for the new user. Let us call this + akcValue. + 9) GET(usmUserSpinLock.0) and save in sValue. + 10) SET(usmUserSpinLock.0=sValue, + usmUserAuthKeyChange=akcValue + usmUserPublic=randomValue2) + 11) GET(usmUserPulic) and check it has randomValue2. + If not, repeat steps 9-11. + + If the new user will never use authentication: + + 12) SET(usmUserAuthProtocol=usmNoAuthProtocol) + + Finally, activate the new user: + + 13) SET(usmUserStatus=active) + + The new user should now be available and ready to be + used for SNMPv3 communication. Note however that access + to MIB data must be provided via configuration of the + SNMP-VIEW-BASED-ACM-MIB. + + The use of usmUserSpinlock is to avoid conflicts with + another SNMP command responder application which may + also be acting on the usmUserTable. + " + ::= { usmUser 2 } + +usmUserEntry OBJECT-TYPE + SYNTAX UsmUserEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A user configured in the SNMP engine's Local + Configuration Datastore (LCD) for the User-based + Security Model. + " + INDEX { usmUserEngineID, + usmUserName + } + ::= { usmUserTable 1 } + +UsmUserEntry ::= SEQUENCE + + { + usmUserEngineID SnmpEngineID, + usmUserName SnmpAdminString, + usmUserSecurityName SnmpAdminString, + usmUserCloneFrom RowPointer, + usmUserAuthProtocol AutonomousType, + usmUserAuthKeyChange KeyChange, + usmUserOwnAuthKeyChange KeyChange, + usmUserPrivProtocol AutonomousType, + usmUserPrivKeyChange KeyChange, + usmUserOwnPrivKeyChange KeyChange, + usmUserPublic OCTET STRING, + usmUserStorageType StorageType, + usmUserStatus RowStatus + } + +usmUserEngineID OBJECT-TYPE + SYNTAX SnmpEngineID + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An SNMP engine's administratively-unique identifier. + + In a simple agent, this value is always that agent's + own snmpEngineID value. + + The value can also take the value of the snmpEngineID + of a remote SNMP engine with which this user can + communicate. + " + ::= { usmUserEntry 1 } + +usmUserName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(1..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "A human readable string representing the name of + the user. + + This is the (User-based Security) Model dependent + security ID. + " + ::= { usmUserEntry 2 } + +usmUserSecurityName OBJECT-TYPE + SYNTAX SnmpAdminString + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A human readable string representing the user in + Security Model independent format. + + The default transformation of the User-based Security + Model dependent security ID to the securityName and + vice versa is the identity function so that the + securityName is the same as the userName. + " + ::= { usmUserEntry 3 } + +usmUserCloneFrom OBJECT-TYPE + SYNTAX RowPointer + MAX-ACCESS read-create + STATUS current + DESCRIPTION "A pointer to another conceptual row in this + usmUserTable. The user in this other conceptual + row is called the clone-from user. + + When a new user is created (i.e., a new conceptual + row is instantiated in this table), the privacy and + authentication parameters of the new user must be + cloned from its clone-from user. These parameters are: + - authentication protocol (usmUserAuthProtocol) + - privacy protocol (usmUserPrivProtocol) + They will be copied regardless of what the current + value is. + + Cloning also causes the initial values of the secret + authentication key (authKey) and the secret encryption + key (privKey) of the new user to be set to the same + value as the corresponding secret of the clone-from + user. + + The first time an instance of this object is set by + a management operation (either at or after its + instantiation), the cloning process is invoked. + Subsequent writes are successful but invoke no + action to be taken by the receiver. + The cloning process fails with an 'inconsistentName' + error if the conceptual row representing the + clone-from user does not exist or is not in an active + state when the cloning process is invoked. + + When this object is read, the ZeroDotZero OID + is returned. + " + ::= { usmUserEntry 4 } + +usmUserAuthProtocol OBJECT-TYPE + SYNTAX AutonomousType + MAX-ACCESS read-create + STATUS current + DESCRIPTION "An indication of whether messages sent on behalf of + this user to/from the SNMP engine identified by + usmUserEngineID, can be authenticated, and if so, + the type of authentication protocol which is used. + + An instance of this object is created concurrently + with the creation of any other object instance for + the same user (i.e., as part of the processing of + the set operation which creates the first object + instance in the same conceptual row). + + If an initial set operation (i.e. at row creation time) + tries to set a value for an unknown or unsupported + protocol, then a 'wrongValue' error must be returned. + + The value will be overwritten/set when a set operation + is performed on the corresponding instance of + usmUserCloneFrom. + + Once instantiated, the value of such an instance of + this object can only be changed via a set operation to + the value of the usmNoAuthProtocol. + + If a set operation tries to change the value of an + existing instance of this object to any value other + than usmNoAuthProtocol, then an 'inconsistentValue' + error must be returned. + + If a set operation tries to set the value to the + usmNoAuthProtocol while the usmUserPrivProtocol value + in the same row is not equal to usmNoPrivProtocol, + then an 'inconsistentValue' error must be returned. + That means that an SNMP command generator application + must first ensure that the usmUserPrivProtocol is set + to the usmNoPrivProtocol value before it can set + the usmUserAuthProtocol value to usmNoAuthProtocol. + " + DEFVAL { usmNoAuthProtocol } + ::= { usmUserEntry 5 } + +usmUserAuthKeyChange OBJECT-TYPE + SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5 + -- typically (SIZE (0 | 40)) for HMACSHA + MAX-ACCESS read-create + STATUS current + DESCRIPTION "An object, which when modified, causes the secret + authentication key used for messages sent on behalf + of this user to/from the SNMP engine identified by + usmUserEngineID, to be modified via a one-way + function. + + The associated protocol is the usmUserAuthProtocol. + The associated secret key is the user's secret + authentication key (authKey). The associated hash + algorithm is the algorithm used by the user's + usmUserAuthProtocol. + + When creating a new user, it is an 'inconsistentName' + error for a set operation to refer to this object + unless it is previously or concurrently initialized + through a set operation on the corresponding instance + of usmUserCloneFrom. + + When the value of the corresponding usmUserAuthProtocol + is usmNoAuthProtocol, then a set is successful, but + effectively is a no-op. + + When this object is read, the zero-length (empty) + string is returned. + + The recommended way to do a key change is as follows: + + 1) GET(usmUserSpinLock.0) and save in sValue. + 2) generate the keyChange value based on the old + (existing) secret key and the new secret key, + let us call this kcValue. + + If you do the key change on behalf of another user: + + 3) SET(usmUserSpinLock.0=sValue, + usmUserAuthKeyChange=kcValue + usmUserPublic=randomValue) + + If you do the key change for yourself: + + 4) SET(usmUserSpinLock.0=sValue, + usmUserOwnAuthKeyChange=kcValue + usmUserPublic=randomValue) + + If you get a response with error-status of noError, + then the SET succeeded and the new key is active. + If you do not get a response, then you can issue a + GET(usmUserPublic) and check if the value is equal + to the randomValue you did send in the SET. If so, then + the key change succeeded and the new key is active + (probably the response got lost). If not, then the SET + request probably never reached the target and so you + can start over with the procedure above. + " + DEFVAL { ''H } -- the empty string + ::= { usmUserEntry 6 } + +usmUserOwnAuthKeyChange OBJECT-TYPE + SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5 + -- typically (SIZE (0 | 40)) for HMACSHA + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Behaves exactly as usmUserAuthKeyChange, with one + notable difference: in order for the set operation + to succeed, the usmUserName of the operation + requester must match the usmUserName that + indexes the row which is targeted by this + operation. + In addition, the USM security model must be + used for this operation. + + The idea here is that access to this column can be + public, since it will only allow a user to change + his own secret authentication key (authKey). + Note that this can only be done once the row is active. + + When a set is received and the usmUserName of the + requester is not the same as the umsUserName that + indexes the row which is targeted by this operation, + then a 'noAccess' error must be returned. + + When a set is received and the security model in use + is not USM, then a 'noAccess' error must be returned. + " + DEFVAL { ''H } -- the empty string + ::= { usmUserEntry 7 } + +usmUserPrivProtocol OBJECT-TYPE + SYNTAX AutonomousType + MAX-ACCESS read-create + STATUS current + DESCRIPTION "An indication of whether messages sent on behalf of + this user to/from the SNMP engine identified by + usmUserEngineID, can be protected from disclosure, + and if so, the type of privacy protocol which is used. + + An instance of this object is created concurrently + with the creation of any other object instance for + the same user (i.e., as part of the processing of + the set operation which creates the first object + instance in the same conceptual row). + + If an initial set operation (i.e. at row creation time) + tries to set a value for an unknown or unsupported + protocol, then a 'wrongValue' error must be returned. + + The value will be overwritten/set when a set operation + is performed on the corresponding instance of + usmUserCloneFrom. + + Once instantiated, the value of such an instance of + this object can only be changed via a set operation to + the value of the usmNoPrivProtocol. + + If a set operation tries to change the value of an + existing instance of this object to any value other + than usmNoPrivProtocol, then an 'inconsistentValue' + error must be returned. + + Note that if any privacy protocol is used, then you + must also use an authentication protocol. In other + words, if usmUserPrivProtocol is set to anything else + than usmNoPrivProtocol, then the corresponding instance + of usmUserAuthProtocol cannot have a value of + usmNoAuthProtocol. If it does, then an + 'inconsistentValue' error must be returned. + " + DEFVAL { usmNoPrivProtocol } + ::= { usmUserEntry 8 } + +usmUserPrivKeyChange OBJECT-TYPE + SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES + MAX-ACCESS read-create + STATUS current + DESCRIPTION "An object, which when modified, causes the secret + encryption key used for messages sent on behalf + of this user to/from the SNMP engine identified by + usmUserEngineID, to be modified via a one-way + function. + + The associated protocol is the usmUserPrivProtocol. + The associated secret key is the user's secret + privacy key (privKey). The associated hash + algorithm is the algorithm used by the user's + usmUserAuthProtocol. + + When creating a new user, it is an 'inconsistentName' + error for a set operation to refer to this object + unless it is previously or concurrently initialized + through a set operation on the corresponding instance + of usmUserCloneFrom. + + When the value of the corresponding usmUserPrivProtocol + is usmNoPrivProtocol, then a set is successful, but + effectively is a no-op. + + When this object is read, the zero-length (empty) + string is returned. + See the description clause of usmUserAuthKeyChange for + a recommended procedure to do a key change. + " + DEFVAL { ''H } -- the empty string + ::= { usmUserEntry 9 } + +usmUserOwnPrivKeyChange OBJECT-TYPE + SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Behaves exactly as usmUserPrivKeyChange, with one + notable difference: in order for the Set operation + to succeed, the usmUserName of the operation + requester must match the usmUserName that indexes + the row which is targeted by this operation. + In addition, the USM security model must be + used for this operation. + + The idea here is that access to this column can be + public, since it will only allow a user to change + his own secret privacy key (privKey). + Note that this can only be done once the row is active. + + When a set is received and the usmUserName of the + requester is not the same as the umsUserName that + indexes the row which is targeted by this operation, + then a 'noAccess' error must be returned. + + When a set is received and the security model in use + is not USM, then a 'noAccess' error must be returned. + " + DEFVAL { ''H } -- the empty string + ::= { usmUserEntry 10 } + +usmUserPublic OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "A publicly-readable value which can be written as part + of the procedure for changing a user's secret + authentication and/or privacy key, and later read to + determine whether the change of the secret was + effected. + " + DEFVAL { ''H } -- the empty string + ::= { usmUserEntry 11 } + +usmUserStorageType OBJECT-TYPE + SYNTAX StorageType + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The storage type for this conceptual row. + + Conceptual rows having the value 'permanent' must + allow write-access at a minimum to: + + - usmUserAuthKeyChange, usmUserOwnAuthKeyChange + and usmUserPublic for a user who employs + authentication, and + - usmUserPrivKeyChange, usmUserOwnPrivKeyChange + and usmUserPublic for a user who employs + privacy. + + Note that any user who employs authentication or + privacy must allow its secret(s) to be updated and + thus cannot be 'readOnly'. + + If an initial set operation tries to set the value to + 'readOnly' for a user who employs authentication or + privacy, then an 'inconsistentValue' error must be + returned. Note that if the value has been previously + set (implicit or explicit) to any value, then the rules + as defined in the StorageType Textual Convention apply. + + It is an implementation issue to decide if a SET for + a readOnly or permanent row is accepted at all. In some + contexts this may make sense, in others it may not. If + a SET for a readOnly or permanent row is not accepted + at all, then a 'wrongValue' error must be returned. + " + DEFVAL { nonVolatile } + ::= { usmUserEntry 12 } + +usmUserStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The status of this conceptual row. + + Until instances of all corresponding columns are + appropriately configured, the value of the + corresponding instance of the usmUserStatus column + is 'notReady'. + + In particular, a newly created row for a user who + employs authentication, cannot be made active until the + corresponding usmUserCloneFrom and usmUserAuthKeyChange + have been set. + + Further, a newly created row for a user who also + employs privacy, cannot be made active until the + usmUserPrivKeyChange has been set. + + The RowStatus TC [RFC2579] requires that this + DESCRIPTION clause states under which circumstances + other objects in this row can be modified: + + The value of this object has no effect on whether + other objects in this conceptual row can be modified, + except for usmUserOwnAuthKeyChange and + usmUserOwnPrivKeyChange. For these 2 objects, the + value of usmUserStatus MUST be active. + " + ::= { usmUserEntry 13 } + +-- Conformance Information ******************************************* + +usmMIBCompliances OBJECT IDENTIFIER ::= { usmMIBConformance 1 } +usmMIBGroups OBJECT IDENTIFIER ::= { usmMIBConformance 2 } + +-- Compliance statements + +usmMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement for SNMP engines which + implement the SNMP-USER-BASED-SM-MIB. + " + + MODULE -- this module + MANDATORY-GROUPS { usmMIBBasicGroup } + + OBJECT usmUserAuthProtocol + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT usmUserPrivProtocol + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + ::= { usmMIBCompliances 1 } + +-- Units of compliance +usmMIBBasicGroup OBJECT-GROUP + OBJECTS { + usmStatsUnsupportedSecLevels, + usmStatsNotInTimeWindows, + usmStatsUnknownUserNames, + usmStatsUnknownEngineIDs, + usmStatsWrongDigests, + usmStatsDecryptionErrors, + usmUserSpinLock, + usmUserSecurityName, + usmUserCloneFrom, + usmUserAuthProtocol, + usmUserAuthKeyChange, + usmUserOwnAuthKeyChange, + usmUserPrivProtocol, + usmUserPrivKeyChange, + usmUserOwnPrivKeyChange, + usmUserPublic, + usmUserStorageType, + usmUserStatus + } + STATUS current + DESCRIPTION "A collection of objects providing for configuration + of an SNMP engine which implements the SNMP + User-based Security Model. + " + ::= { usmMIBGroups 1 } + +END diff --git a/pandora_console/attachment/mibs/SNMP-VIEW-BASED-ACM-MIB b/pandora_console/attachment/mibs/SNMP-VIEW-BASED-ACM-MIB new file mode 100644 index 0000000000..66eb750b4c --- /dev/null +++ b/pandora_console/attachment/mibs/SNMP-VIEW-BASED-ACM-MIB @@ -0,0 +1,804 @@ +SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF + MODULE-IDENTITY, OBJECT-TYPE, + snmpModules FROM SNMPv2-SMI + TestAndIncr, + RowStatus, StorageType FROM SNMPv2-TC + SnmpAdminString, + SnmpSecurityLevel, + SnmpSecurityModel FROM SNMP-FRAMEWORK-MIB; + +snmpVacmMIB MODULE-IDENTITY + LAST-UPDATED "9901200000Z" -- 20 Jan 1999, midnight + ORGANIZATION "SNMPv3 Working Group" + CONTACT-INFO "WG-email: snmpv3@lists.tislabs.com + Subscribe: majordomo@lists.tislabs.com + In message body: subscribe snmpv3 + + Chair: Russ Mundy + Trusted Information Systems + postal: 3060 Washington Rd + Glenwood MD 21738 + USA + email: mundy@tislabs.com + phone: +1-301-854-6889 + + Co-editor: Bert Wijnen + IBM T.J. Watson Research + postal: Schagen 33 + 3461 GL Linschoten + Netherlands + email: wijnen@vnet.ibm.com + phone: +31-348-432-794 + + Co-editor: Randy Presuhn + BMC Software, Inc + postal: 965 Stewart Drive + Sunnyvale, CA 94086 + USA + email: randy_presuhn@bmc.com + phone: +1-408-616-3100 + + Co-editor: Keith McCloghrie + Cisco Systems, Inc. + postal: 170 West Tasman Drive + San Jose, CA 95134-1706 + USA + email: kzm@cisco.com + phone: +1-408-526-5260 + " + DESCRIPTION "The management information definitions for the + View-based Access Control Model for SNMP. + " +-- Revision history + REVISION "9901200000Z" -- 20 Jan 1999, midnight + DESCRIPTION "Clarifications, published as RFC2575" + + REVISION "9711200000Z" -- 20 Nov 1997, midnight + DESCRIPTION "Initial version, published as RFC2275" + + ::= { snmpModules 16 } + +-- Administrative assignments **************************************** + +vacmMIBObjects OBJECT IDENTIFIER ::= { snmpVacmMIB 1 } +vacmMIBConformance OBJECT IDENTIFIER ::= { snmpVacmMIB 2 } + +-- Information about Local Contexts ********************************** + +vacmContextTable OBJECT-TYPE + SYNTAX SEQUENCE OF VacmContextEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The table of locally available contexts. + + This table provides information to SNMP Command + Generator applications so that they can properly + configure the vacmAccessTable to control access to + all contexts at the SNMP entity. + + This table may change dynamically if the SNMP entity + allows that contexts are added/deleted dynamically + (for instance when its configuration changes). Such + changes would happen only if the management + instrumentation at that SNMP entity recognizes more + (or fewer) contexts. + + The presence of entries in this table and of entries + in the vacmAccessTable are independent. That is, a + context identified by an entry in this table is not + necessarily referenced by any entries in the + vacmAccessTable; and the context(s) referenced by an + entry in the vacmAccessTable does not necessarily + currently exist and thus need not be identified by an + entry in this table. + + This table must be made accessible via the default + context so that Command Responder applications have + a standard way of retrieving the information. + + This table is read-only. It cannot be configured via + SNMP. + " + ::= { vacmMIBObjects 1 } + +vacmContextEntry OBJECT-TYPE + SYNTAX VacmContextEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Information about a particular context." + INDEX { + vacmContextName + } + ::= { vacmContextTable 1 } + +VacmContextEntry ::= SEQUENCE + { + vacmContextName SnmpAdminString + } + +vacmContextName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION "A human readable name identifying a particular + context at a particular SNMP entity. + + The empty contextName (zero length) represents the + default context. + " + ::= { vacmContextEntry 1 } + +-- Information about Groups ****************************************** + +vacmSecurityToGroupTable OBJECT-TYPE + SYNTAX SEQUENCE OF VacmSecurityToGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "This table maps a combination of securityModel and + securityName into a groupName which is used to define + an access control policy for a group of principals. + " + ::= { vacmMIBObjects 2 } + +vacmSecurityToGroupEntry OBJECT-TYPE + SYNTAX VacmSecurityToGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An entry in this table maps the combination of a + securityModel and securityName into a groupName. + " + INDEX { + vacmSecurityModel, + vacmSecurityName + } + ::= { vacmSecurityToGroupTable 1 } + +VacmSecurityToGroupEntry ::= SEQUENCE + { + vacmSecurityModel SnmpSecurityModel, + vacmSecurityName SnmpAdminString, + vacmGroupName SnmpAdminString, + vacmSecurityToGroupStorageType StorageType, + vacmSecurityToGroupStatus RowStatus + } + +vacmSecurityModel OBJECT-TYPE + SYNTAX SnmpSecurityModel(1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The Security Model, by which the vacmSecurityName + referenced by this entry is provided. + + Note, this object may not take the 'any' (0) value. + " + ::= { vacmSecurityToGroupEntry 1 } + +vacmSecurityName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(1..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The securityName for the principal, represented in a + Security Model independent format, which is mapped by + this entry to a groupName. + " + ::= { vacmSecurityToGroupEntry 2 } + +vacmGroupName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The name of the group to which this entry (e.g., the + combination of securityModel and securityName) + belongs. + + This groupName is used as index into the + vacmAccessTable to select an access control policy. + However, a value in this table does not imply that an + instance with the value exists in table vacmAccesTable. + " + ::= { vacmSecurityToGroupEntry 3 } + +vacmSecurityToGroupStorageType OBJECT-TYPE + SYNTAX StorageType + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The storage type for this conceptual row. + Conceptual rows having the value 'permanent' need not + allow write-access to any columnar objects in the row. + " + DEFVAL { nonVolatile } + ::= { vacmSecurityToGroupEntry 4 } + +vacmSecurityToGroupStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The status of this conceptual row. + + Until instances of all corresponding columns are + appropriately configured, the value of the + corresponding instance of the vacmSecurityToGroupStatus + column is 'notReady'. + + In particular, a newly created row cannot be made + active until a value has been set for vacmGroupName. + + The RowStatus TC [RFC2579] requires that this + DESCRIPTION clause states under which circumstances + other objects in this row can be modified: + + The value of this object has no effect on whether + other objects in this conceptual row can be modified. + " + ::= { vacmSecurityToGroupEntry 5 } + +-- Information about Access Rights *********************************** + +vacmAccessTable OBJECT-TYPE + SYNTAX SEQUENCE OF VacmAccessEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The table of access rights for groups. + + Each entry is indexed by a groupName, a contextPrefix, + a securityModel and a securityLevel. To determine + whether access is allowed, one entry from this table + needs to be selected and the proper viewName from that + entry must be used for access control checking. + + To select the proper entry, follow these steps: + + 1) the set of possible matches is formed by the + intersection of the following sets of entries: + the set of entries with identical vacmGroupName + the union of these two sets: + - the set with identical vacmAccessContextPrefix + - the set of entries with vacmAccessContextMatch + value of 'prefix' and matching + vacmAccessContextPrefix + intersected with the union of these two sets: + - the set of entries with identical + vacmSecurityModel + - the set of entries with vacmSecurityModel + value of 'any' + intersected with the set of entries with + vacmAccessSecurityLevel value less than or equal + to the requested securityLevel + + 2) if this set has only one member, we're done + otherwise, it comes down to deciding how to weight + the preferences between ContextPrefixes, + SecurityModels, and SecurityLevels as follows: + a) if the subset of entries with securityModel + matching the securityModel in the message is + not empty, then discard the rest. + b) if the subset of entries with + vacmAccessContextPrefix matching the contextName + in the message is not empty, + then discard the rest + c) discard all entries with ContextPrefixes shorter + than the longest one remaining in the set + d) select the entry with the highest securityLevel + + Please note that for securityLevel noAuthNoPriv, all + groups are really equivalent since the assumption that + the securityName has been authenticated does not hold. + " + ::= { vacmMIBObjects 4 } + +vacmAccessEntry OBJECT-TYPE + SYNTAX VacmAccessEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "An access right configured in the Local Configuration + Datastore (LCD) authorizing access to an SNMP context. + + Entries in this table can use an instance value for + object vacmGroupName even if no entry in table + vacmAccessSecurityToGroupTable has a corresponding + value for object vacmGroupName. + " + INDEX { vacmGroupName, + vacmAccessContextPrefix, + vacmAccessSecurityModel, + vacmAccessSecurityLevel + } + ::= { vacmAccessTable 1 } + +VacmAccessEntry ::= SEQUENCE + { + vacmAccessContextPrefix SnmpAdminString, + vacmAccessSecurityModel SnmpSecurityModel, + vacmAccessSecurityLevel SnmpSecurityLevel, + vacmAccessContextMatch INTEGER, + vacmAccessReadViewName SnmpAdminString, + vacmAccessWriteViewName SnmpAdminString, + vacmAccessNotifyViewName SnmpAdminString, + vacmAccessStorageType StorageType, + vacmAccessStatus RowStatus + } + +vacmAccessContextPrefix OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "In order to gain the access rights allowed by this + conceptual row, a contextName must match exactly + (if the value of vacmAccessContextMatch is 'exact') + or partially (if the value of vacmAccessContextMatch + is 'prefix') to the value of the instance of this + object. + " + ::= { vacmAccessEntry 1 } + +vacmAccessSecurityModel OBJECT-TYPE + SYNTAX SnmpSecurityModel + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "In order to gain the access rights allowed by this + conceptual row, this securityModel must be in use. + " + ::= { vacmAccessEntry 2 } + +vacmAccessSecurityLevel OBJECT-TYPE + SYNTAX SnmpSecurityLevel + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The minimum level of security required in order to + gain the access rights allowed by this conceptual + row. A securityLevel of noAuthNoPriv is less than + authNoPriv which in turn is less than authPriv. + + If multiple entries are equally indexed except for + this vacmAccessSecurityLevel index, then the entry + which has the highest value for + vacmAccessSecurityLevel is selected. + " + ::= { vacmAccessEntry 3 } + +vacmAccessContextMatch OBJECT-TYPE + SYNTAX INTEGER + { exact (1), -- exact match of prefix and contextName + prefix (2) -- Only match to the prefix + } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "If the value of this object is exact(1), then all + rows where the contextName exactly matches + vacmAccessContextPrefix are selected. + + If the value of this object is prefix(2), then all + rows where the contextName whose starting octets + exactly match vacmAccessContextPrefix are selected. + This allows for a simple form of wildcarding. + " + DEFVAL { exact } + ::= { vacmAccessEntry 4 } + +vacmAccessReadViewName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The value of an instance of this object identifies + the MIB view of the SNMP context to which this + conceptual row authorizes read access. + + The identified MIB view is that one for which the + vacmViewTreeFamilyViewName has the same value as the + instance of this object; if the value is the empty + string or if there is no active MIB view having this + value of vacmViewTreeFamilyViewName, then no access + is granted. + " + DEFVAL { ''H } -- the empty string + ::= { vacmAccessEntry 5 } + +vacmAccessWriteViewName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The value of an instance of this object identifies + the MIB view of the SNMP context to which this + conceptual row authorizes write access. + + The identified MIB view is that one for which the + vacmViewTreeFamilyViewName has the same value as the + instance of this object; if the value is the empty + string or if there is no active MIB view having this + value of vacmViewTreeFamilyViewName, then no access + is granted. + " + DEFVAL { ''H } -- the empty string + ::= { vacmAccessEntry 6 } + +vacmAccessNotifyViewName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The value of an instance of this object identifies + the MIB view of the SNMP context to which this + conceptual row authorizes access for notifications. + + The identified MIB view is that one for which the + vacmViewTreeFamilyViewName has the same value as the + instance of this object; if the value is the empty + string or if there is no active MIB view having this + value of vacmViewTreeFamilyViewName, then no access + is granted. + " + DEFVAL { ''H } -- the empty string + ::= { vacmAccessEntry 7 } + +vacmAccessStorageType OBJECT-TYPE + SYNTAX StorageType + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The storage type for this conceptual row. + + Conceptual rows having the value 'permanent' need not + allow write-access to any columnar objects in the row. + " + DEFVAL { nonVolatile } + ::= { vacmAccessEntry 8 } + +vacmAccessStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The status of this conceptual row. + + The RowStatus TC [RFC2579] requires that this + DESCRIPTION clause states under which circumstances + other objects in this row can be modified: + + The value of this object has no effect on whether + other objects in this conceptual row can be modified. + " + ::= { vacmAccessEntry 9 } + +-- Information about MIB views *************************************** + +-- Support for instance-level granularity is optional. +-- +-- In some implementations, instance-level access control +-- granularity may come at a high performance cost. Managers +-- should avoid requesting such configurations unnecessarily. + +vacmMIBViews OBJECT IDENTIFIER ::= { vacmMIBObjects 5 } + +vacmViewSpinLock OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION "An advisory lock used to allow cooperating SNMP + Command Generator applications to coordinate their + use of the Set operation in creating or modifying + views. + + When creating a new view or altering an existing + view, it is important to understand the potential + interactions with other uses of the view. The + vacmViewSpinLock should be retrieved. The name of + the view to be created should be determined to be + unique by the SNMP Command Generator application by + consulting the vacmViewTreeFamilyTable. Finally, + the named view may be created (Set), including the + advisory lock. + If another SNMP Command Generator application has + altered the views in the meantime, then the spin + lock's value will have changed, and so this creation + will fail because it will specify the wrong value for + the spin lock. + + Since this is an advisory lock, the use of this lock + is not enforced. + " + ::= { vacmMIBViews 1 } + +vacmViewTreeFamilyTable OBJECT-TYPE + SYNTAX SEQUENCE OF VacmViewTreeFamilyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Locally held information about families of subtrees + within MIB views. + + Each MIB view is defined by two sets of view subtrees: + - the included view subtrees, and + - the excluded view subtrees. + Every such view subtree, both the included and the + excluded ones, is defined in this table. + + To determine if a particular object instance is in + a particular MIB view, compare the object instance's + OBJECT IDENTIFIER with each of the MIB view's active + entries in this table. If none match, then the + object instance is not in the MIB view. If one or + more match, then the object instance is included in, + or excluded from, the MIB view according to the + value of vacmViewTreeFamilyType in the entry whose + value of vacmViewTreeFamilySubtree has the most + sub-identifiers. If multiple entries match and have + the same number of sub-identifiers (when wildcarding + is specified with the value of vacmViewTreeFamilyMask), + then the lexicographically greatest instance of + vacmViewTreeFamilyType determines the inclusion or + exclusion. + + An object instance's OBJECT IDENTIFIER X matches an + active entry in this table when the number of + sub-identifiers in X is at least as many as in the + value of vacmViewTreeFamilySubtree for the entry, + and each sub-identifier in the value of + vacmViewTreeFamilySubtree matches its corresponding + sub-identifier in X. Two sub-identifiers match + either if the corresponding bit of the value of + vacmViewTreeFamilyMask for the entry is zero (the + 'wild card' value), or if they are equal. + + A 'family' of subtrees is the set of subtrees defined + by a particular combination of values of + vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask. + In the case where no 'wild card' is defined in the + vacmViewTreeFamilyMask, the family of subtrees reduces + to a single subtree. + + When creating or changing MIB views, an SNMP Command + Generator application should utilize the + vacmViewSpinLock to try to avoid collisions. See + DESCRIPTION clause of vacmViewSpinLock. + + When creating MIB views, it is strongly advised that + first the 'excluded' vacmViewTreeFamilyEntries are + created and then the 'included' entries. + + When deleting MIB views, it is strongly advised that + first the 'included' vacmViewTreeFamilyEntries are + deleted and then the 'excluded' entries. + + If a create for an entry for instance-level access + control is received and the implementation does not + support instance-level granularity, then an + inconsistentName error must be returned. + " + ::= { vacmMIBViews 2 } + +vacmViewTreeFamilyEntry OBJECT-TYPE + SYNTAX VacmViewTreeFamilyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "Information on a particular family of view subtrees + included in or excluded from a particular SNMP + context's MIB view. + + Implementations must not restrict the number of + families of view subtrees for a given MIB view, + except as dictated by resource constraints on the + overall number of entries in the + vacmViewTreeFamilyTable. + + If no conceptual rows exist in this table for a given + MIB view (viewName), that view may be thought of as + consisting of the empty set of view subtrees. + " + INDEX { vacmViewTreeFamilyViewName, + vacmViewTreeFamilySubtree + } + ::= { vacmViewTreeFamilyTable 1 } + +VacmViewTreeFamilyEntry ::= SEQUENCE + { + vacmViewTreeFamilyViewName SnmpAdminString, + vacmViewTreeFamilySubtree OBJECT IDENTIFIER, + vacmViewTreeFamilyMask OCTET STRING, + vacmViewTreeFamilyType INTEGER, + vacmViewTreeFamilyStorageType StorageType, + vacmViewTreeFamilyStatus RowStatus + } + +vacmViewTreeFamilyViewName OBJECT-TYPE + SYNTAX SnmpAdminString (SIZE(1..32)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The human readable name for a family of view subtrees. + " + ::= { vacmViewTreeFamilyEntry 1 } + +vacmViewTreeFamilySubtree OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION "The MIB subtree which when combined with the + corresponding instance of vacmViewTreeFamilyMask + defines a family of view subtrees. + " + ::= { vacmViewTreeFamilyEntry 2 } + +vacmViewTreeFamilyMask OBJECT-TYPE + SYNTAX OCTET STRING (SIZE (0..16)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The bit mask which, in combination with the + corresponding instance of vacmViewTreeFamilySubtree, + defines a family of view subtrees. + + Each bit of this bit mask corresponds to a + sub-identifier of vacmViewTreeFamilySubtree, with the + most significant bit of the i-th octet of this octet + string value (extended if necessary, see below) + corresponding to the (8*i - 7)-th sub-identifier, and + the least significant bit of the i-th octet of this + octet string corresponding to the (8*i)-th + sub-identifier, where i is in the range 1 through 16. + + Each bit of this bit mask specifies whether or not + the corresponding sub-identifiers must match when + determining if an OBJECT IDENTIFIER is in this + family of view subtrees; a '1' indicates that an + exact match must occur; a '0' indicates 'wild card', + i.e., any sub-identifier value matches. + + Thus, the OBJECT IDENTIFIER X of an object instance + is contained in a family of view subtrees if, for + each sub-identifier of the value of + vacmViewTreeFamilySubtree, either: + + the i-th bit of vacmViewTreeFamilyMask is 0, or + + the i-th sub-identifier of X is equal to the i-th + sub-identifier of the value of + vacmViewTreeFamilySubtree. + + If the value of this bit mask is M bits long and + there are more than M sub-identifiers in the + corresponding instance of vacmViewTreeFamilySubtree, + then the bit mask is extended with 1's to be the + required length. + + Note that when the value of this object is the + zero-length string, this extension rule results in + a mask of all-1's being used (i.e., no 'wild card'), + and the family of view subtrees is the one view + subtree uniquely identified by the corresponding + instance of vacmViewTreeFamilySubtree. + + Note that masks of length greater than zero length + do not need to be supported. In this case this + object is made read-only. + " + DEFVAL { ''H } + ::= { vacmViewTreeFamilyEntry 3 } + +vacmViewTreeFamilyType OBJECT-TYPE + SYNTAX INTEGER { included(1), excluded(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION "Indicates whether the corresponding instances of + vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask + define a family of view subtrees which is included in + or excluded from the MIB view. + " + DEFVAL { included } + ::= { vacmViewTreeFamilyEntry 4 } + +vacmViewTreeFamilyStorageType OBJECT-TYPE + SYNTAX StorageType + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The storage type for this conceptual row. + + Conceptual rows having the value 'permanent' need not + allow write-access to any columnar objects in the row. + " + DEFVAL { nonVolatile } + ::= { vacmViewTreeFamilyEntry 5 } + +vacmViewTreeFamilyStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION "The status of this conceptual row. + + The RowStatus TC [RFC2579] requires that this + DESCRIPTION clause states under which circumstances + other objects in this row can be modified: + + The value of this object has no effect on whether + other objects in this conceptual row can be modified. + " + ::= { vacmViewTreeFamilyEntry 6 } + +-- Conformance information ******************************************* + +vacmMIBCompliances OBJECT IDENTIFIER ::= { vacmMIBConformance 1 } +vacmMIBGroups OBJECT IDENTIFIER ::= { vacmMIBConformance 2 } + +-- Compliance statements ********************************************* + +vacmMIBCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION "The compliance statement for SNMP engines which + implement the SNMP View-based Access Control Model + configuration MIB. + " + MODULE -- this module + MANDATORY-GROUPS { vacmBasicGroup } + + OBJECT vacmAccessContextMatch + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vacmAccessReadViewName + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vacmAccessWriteViewName + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vacmAccessNotifyViewName + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vacmAccessStorageType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vacmAccessStatus + MIN-ACCESS read-only + DESCRIPTION "Create/delete/modify access to the + vacmAccessTable is not required. + " + + OBJECT vacmViewTreeFamilyMask + WRITE-SYNTAX OCTET STRING (SIZE (0)) + MIN-ACCESS read-only + DESCRIPTION "Support for configuration via SNMP of subtree + families using wild-cards is not required. + " + + OBJECT vacmViewTreeFamilyType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vacmViewTreeFamilyStorageType + MIN-ACCESS read-only + DESCRIPTION "Write access is not required." + + OBJECT vacmViewTreeFamilyStatus + MIN-ACCESS read-only + DESCRIPTION "Create/delete/modify access to the + vacmViewTreeFamilyTable is not required. + " + ::= { vacmMIBCompliances 1 } + +-- Units of conformance ********************************************** + +vacmBasicGroup OBJECT-GROUP + OBJECTS { + vacmContextName, + vacmGroupName, + vacmSecurityToGroupStorageType, + vacmSecurityToGroupStatus, + vacmAccessContextMatch, + vacmAccessReadViewName, + vacmAccessWriteViewName, + vacmAccessNotifyViewName, + vacmAccessStorageType, + vacmAccessStatus, + vacmViewSpinLock, + vacmViewTreeFamilyMask, + vacmViewTreeFamilyType, + vacmViewTreeFamilyStorageType, + vacmViewTreeFamilyStatus + } + STATUS current + DESCRIPTION "A collection of objects providing for remote + configuration of an SNMP engine which implements + the SNMP View-based Access Control Model. + " + ::= { vacmMIBGroups 1 } + +END diff --git a/pandora_console/attachment/mibs/SNMPv2-CONF.my.txt b/pandora_console/attachment/mibs/SNMPv2-CONF.my.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pandora_console/attachment/mibs/SNMPv2-MIB b/pandora_console/attachment/mibs/SNMPv2-MIB new file mode 100644 index 0000000000..74e88e1feb --- /dev/null +++ b/pandora_console/attachment/mibs/SNMPv2-MIB @@ -0,0 +1,773 @@ +-- Changes to rfc1907 - SNMPv2-MIB (object for SNMPv2 protocol) +-- NOTE: the following should be in a group - +-- snmpTrapEnterprise, snmpTrapOID, and +-- warmStart! +-- dperkins@scruznet.com + +SNMPv2-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + TimeTicks, Counter32, snmpModules, mib-2 + FROM SNMPv2-SMI + DisplayString, TestAndIncr, TimeStamp + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF; + + +snmpMIB MODULE-IDENTITY + LAST-UPDATED "9511090000Z" + ORGANIZATION "IETF SNMPv2 Working Group" + CONTACT-INFO + " Marshall T. Rose + + Postal: Dover Beach Consulting, Inc. + 420 Whisman Court + Mountain View, CA 94043-2186 + US + + Tel: +1 415 968 1052 + + E-mail: mrose@dbc.mtview.ca.us" + DESCRIPTION + "The MIB module for SNMPv2 entities." + REVISION "9304010000Z" + DESCRIPTION + "The initial revision of this MIB module was published as + RFC 1450." + ::= { snmpModules 1 } + + +snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 } + +-- ::= { snmpMIBObjects 1 } this OID is obsolete +-- ::= { snmpMIBObjects 2 } this OID is obsolete +-- ::= { snmpMIBObjects 3 } this OID is obsolete + + +-- the System group +-- +-- a collection of objects common to all managed systems. + +system OBJECT IDENTIFIER ::= { mib-2 1 } + +sysDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the entity. This value should + include the full name and version identification of the + system's hardware type, software operating-system, and + networking software." + ::= { system 1 } + +sysObjectID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor's authoritative identification of the network + management subsystem contained in the entity. This value is + allocated within the SMI enterprises subtree (1.3.6.1.4.1) + and provides an easy and unambiguous means for determining + `what kind of box' is being managed. For example, if vendor + `Flintstones, Inc.' was assigned the subtree + 1.3.6.1.4.1.4242, it could assign the identifier + 1.3.6.1.4.1.4242.1.1 to its `Fred Router'." + ::= { system 2 } + +sysUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) since the network + management portion of the system was last re-initialized." + ::= { system 3 } + +sysContact OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The textual identification of the contact person for this + managed node, together with information on how to contact + this person. If no contact information is known, the value + is the zero-length string." + ::= { system 4 } + +sysName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An administratively-assigned name for this managed node. + By convention, this is the node's fully-qualified domain + name. If the name is unknown, the value is the zero-length + string." + ::= { system 5 } + +sysLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The physical location of this node (e.g., `telephone + closet, 3rd floor'). If the location is unknown, the value + is the zero-length string." + ::= { system 6 } + +sysServices OBJECT-TYPE + SYNTAX INTEGER (0..127) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value which indicates the set of services that this + entity may potentially offers. The value is a sum. This + sum initially takes the value zero, Then, for each layer, L, + in the range 1 through 7, that this node performs + transactions for, 2 raised to (L - 1) is added to the sum. + For example, a node which performs only routing functions + would have a value of 4 (2^(3-1)). In contrast, a node + which is a host offering application services would have a + value of 72 (2^(4-1) + 2^(7-1)). Note that in the context + of the Internet suite of protocols, values should be + calculated accordingly: + + layer functionality + 1 physical (e.g., repeaters) + 2 datalink/subnetwork (e.g., bridges) + 3 internet (e.g., supports the IP) + 4 end-to-end (e.g., supports the TCP) + 7 applications (e.g., supports the SMTP) + + For systems including OSI protocols, layers 5 and 6 may also + be counted." + ::= { system 7 } + + +-- object resource information +-- +-- a collection of objects which describe the SNMPv2 entity's +-- (statically and dynamically configurable) support of +-- various MIB modules. + +sysORLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the most recent + change in state or value of any instance of sysORID." + ::= { system 8 } + +sysORTable OBJECT-TYPE + SYNTAX SEQUENCE OF SysOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The (conceptual) table listing the capabilities of the + local SNMPv2 entity acting in an agent role with respect to + various MIB modules. SNMPv2 entities having dynamically- + configurable support of MIB modules will have a + dynamically-varying number of conceptual rows." + ::= { system 9 } + +sysOREntry OBJECT-TYPE + SYNTAX SysOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry (conceptual row) in the sysORTable." + INDEX { sysORIndex } + ::= { sysORTable 1 } + +SysOREntry ::= SEQUENCE { + sysORIndex INTEGER, + sysORID OBJECT IDENTIFIER, + sysORDescr DisplayString, + sysORUpTime TimeStamp +} + +sysORIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The auxiliary variable used for identifying instances of + the columnar objects in the sysORTable." + ::= { sysOREntry 1 } + +sysORID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An authoritative identification of a capabilities statement + with respect to various MIB modules supported by the local + SNMPv2 entity acting in an agent role." + ::= { sysOREntry 2 } + +sysORDescr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the capabilities identified by the + corresponding instance of sysORID." + ::= { sysOREntry 3 } + +sysORUpTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this conceptual row was + last instanciated." + ::= { sysOREntry 4 } + + +-- the SNMP group +-- +-- a collection of objects providing basic instrumentation and +-- control of an SNMP entity. + +snmp OBJECT IDENTIFIER ::= { mib-2 11 } + +snmpInPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of messages delivered to the SNMP entity + from the transport service." + ::= { snmp 1 } + +snmpInBadVersions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP messages which were delivered to + the SNMP entity and were for an unsupported SNMP version." + ::= { snmp 3 } + +snmpInBadCommunityNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP messages delivered to the SNMP + entity which used a SNMP community name not known to said + entity." + ::= { snmp 4 } + +snmpInBadCommunityUses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP messages delivered to the SNMP + entity which represented an SNMP operation which was not + allowed by the SNMP community named in the message." + ::= { snmp 5 } + +snmpInASNParseErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of ASN.1 or BER errors encountered by the + SNMP entity when decoding received SNMP messages." + ::= { snmp 6 } + +snmpEnableAuthenTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether the SNMP entity is permitted to generate + authenticationFailure traps. The value of this object + overrides any configuration information; as such, it + provides a means whereby all authenticationFailure traps may + be disabled. + + Note that it is strongly recommended that this object be + stored in non-volatile memory so that it remains constant + across re-initializations of the network management system." + ::= { snmp 30 } + +snmpSilentDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of GetRequest-PDUs, GetNextRequest-PDUs, + GetBulkRequest-PDUs, SetRequest-PDUs, and InformRequest-PDUs + delivered to the SNMP entity which were silently dropped + because the size of a reply containing an alternate + Response-PDU with an empty variable-bindings field was + greater than either a local constraint or the maximum + message size associated with the originator of the request." + ::= { snmp 31 } + +snmpProxyDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of GetRequest-PDUs, GetNextRequest-PDUs, + GetBulkRequest-PDUs, SetRequest-PDUs, and InformRequest-PDUs + delivered to the SNMP entity which were silently dropped + because the transmission of the (possibly translated) + message to a proxy target failed in a manner (other than a + time-out) such that no Response-PDU could be returned." + ::= { snmp 32 } + + +-- information for notifications +-- +-- a collection of objects which allow the SNMPv2 entity, when +-- acting in an agent role, to be configured to generate +-- SNMPv2-Trap-PDUs. + +snmpTrap OBJECT IDENTIFIER ::= { snmpMIBObjects 4 } + + +snmpTrapOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The authoritative identification of the notification + currently being sent. This variable occurs as the second + varbind in every SNMPv2-Trap-PDU and InformRequest-PDU." + ::= { snmpTrap 1 } + +-- ::= { snmpTrap 2 } this OID is obsolete + +snmpTrapEnterprise OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The authoritative identification of the enterprise + associated with the trap currently being sent. When a + SNMPv2 proxy agent is mapping an RFC1157 Trap-PDU into a + SNMPv2-Trap-PDU, this variable occurs as the last varbind." + ::= { snmpTrap 3 } + +-- ::= { snmpTrap 4 } this OID is obsolete + + +-- well-known traps + +snmpTraps OBJECT IDENTIFIER ::= { snmpMIBObjects 5 } + +coldStart NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "A coldStart trap signifies that the SNMPv2 entity, acting + in an agent role, is reinitializing itself and that its + configuration may have been altered." + ::= { snmpTraps 1 } + +warmStart NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "A warmStart trap signifies that the SNMPv2 entity, acting + in an agent role, is reinitializing itself such that its + configuration is unaltered." + ::= { snmpTraps 2 } + +-- Note the linkDown NOTIFICATION-TYPE ::= { snmpTraps 3 } +-- and the linkUp NOTIFICATION-TYPE ::= { snmpTraps 4 } +-- are defined in RFC 1573 + +authenticationFailure NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "An authenticationFailure trap signifies that the SNMPv2 + entity, acting in an agent role, has received a protocol + message that is not properly authenticated. While all + implementations of the SNMPv2 must be capable of generating + this trap, the snmpEnableAuthenTraps object indicates + whether this trap will be generated." + ::= { snmpTraps 5 } + +-- Note the egpNeighborLoss NOTIFICATION-TYPE ::= { snmpTraps 6 } +-- is defined in RFC 1213 + + +-- the set group +-- +-- a collection of objects which allow several cooperating +-- SNMPv2 entities, all acting in a manager role, to +-- coordinate their use of the SNMPv2 set operation. + +snmpSet OBJECT IDENTIFIER ::= { snmpMIBObjects 6 } + + +snmpSetSerialNo OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An advisory lock used to allow several cooperating SNMPv2 + entities, all acting in a manager role, to coordinate their + use of the SNMPv2 set operation. + + This object is used for coarse-grain coordination. To + achieve fine-grain coordination, one or more similar objects + might be defined within each MIB group, as appropriate." + ::= { snmpSet 1 } + + +-- conformance information + +snmpMIBConformance + OBJECT IDENTIFIER ::= { snmpMIB 2 } + +snmpMIBCompliances + OBJECT IDENTIFIER ::= { snmpMIBConformance 1 } +snmpMIBGroups OBJECT IDENTIFIER ::= { snmpMIBConformance 2 } + + +-- compliance statements + +-- ::= { snmpMIBCompliances 1 } this OID is obsolete + +snmpBasicCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement the SNMPv2 MIB." + MODULE -- this module + MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup, + snmpBasicNotificationsGroup } + + GROUP snmpCommunityGroup + DESCRIPTION + "This group is mandatory for SNMPv2 entities which + support community-based authentication." + + ::= { snmpMIBCompliances 2 } + + +-- units of conformance + +-- ::= { snmpMIBGroups 1 } this OID is obsolete +-- ::= { snmpMIBGroups 2 } this OID is obsolete +-- ::= { snmpMIBGroups 3 } this OID is obsolete +-- ::= { snmpMIBGroups 4 } this OID is obsolete + +snmpGroup OBJECT-GROUP + OBJECTS { snmpInPkts, + snmpInBadVersions, + snmpInASNParseErrs, + snmpSilentDrops, + snmpProxyDrops, + snmpEnableAuthenTraps } + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation and + control of an SNMPv2 entity." + ::= { snmpMIBGroups 8 } + +snmpCommunityGroup OBJECT-GROUP + OBJECTS { snmpInBadCommunityNames, + snmpInBadCommunityUses } + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation of + a SNMPv2 entity which supports community-based + authentication." + ::= { snmpMIBGroups 9 } + +snmpSetGroup OBJECT-GROUP + OBJECTS { snmpSetSerialNo } + STATUS current + DESCRIPTION + "A collection of objects which allow several cooperating + SNMPv2 entities, all acting in a manager role, to coordinate + their use of the SNMPv2 set operation." + ::= { snmpMIBGroups 5 } + +systemGroup OBJECT-GROUP + OBJECTS { sysDescr, sysObjectID, sysUpTime, + sysContact, sysName, sysLocation, + sysServices, + sysORLastChange, sysORID, + sysORUpTime, sysORDescr } + STATUS current + DESCRIPTION + "The system group defines objects which are common to all + managed systems." + ::= { snmpMIBGroups 6 } + +snmpBasicNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { coldStart, authenticationFailure } + STATUS current + DESCRIPTION + "The two notifications which an SNMPv2 entity is required to + implement." + ::= { snmpMIBGroups 7 } + + +-- definitions in RFC 1213 made obsolete by the inclusion of a +-- subset of the snmp group in this MIB + +snmpOutPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Messages which were + passed from the SNMP protocol entity to the + transport service." + ::= { snmp 2 } + +-- { snmp 7 } is not used + +snmpInTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `tooBig'." + ::= { snmp 8 } + +snmpInNoSuchNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `noSuchName'." + ::= { snmp 9 } + +snmpInBadValues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 10 } + +snmpInReadOnlys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number valid SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `readOnly'. It should be noted that it is a + protocol error to generate an SNMP PDU which + contains the value `readOnly' in the error-status + field, as such this object is provided as a means + of detecting incorrect implementations of the + SNMP." + ::= { snmp 11 } + +snmpInGenErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 12 } + +snmpInTotalReqVars OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of MIB objects which have been + retrieved successfully by the SNMP protocol entity + as the result of receiving valid SNMP Get-Request + and Get-Next PDUs." + ::= { snmp 13 } + +snmpInTotalSetVars OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of MIB objects which have been + altered successfully by the SNMP protocol entity + as the result of receiving valid SNMP Set-Request + PDUs." + ::= { snmp 14 } + +snmpInGetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 15 } + +snmpInGetNexts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 16 } + +snmpInSetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 17 } + +snmpInGetResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 18 } + +snmpInTraps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 19 } + +snmpOutTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `tooBig.'" + ::= { snmp 20 } + +snmpOutNoSuchNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status is + `noSuchName'." + ::= { snmp 21 } + +snmpOutBadValues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 22 } + + +-- { snmp 23 } is not used + +snmpOutGenErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 24 } + +snmpOutGetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 25 } + +snmpOutGetNexts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 26 } + +snmpOutSetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 27 } + +snmpOutGetResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 28 } + +snmpOutTraps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 29 } + +snmpObsoleteGroup OBJECT-GROUP + OBJECTS { snmpOutPkts, snmpInTooBigs, snmpInNoSuchNames, + snmpInBadValues, snmpInReadOnlys, snmpInGenErrs, + snmpInTotalReqVars, snmpInTotalSetVars, + snmpInGetRequests, snmpInGetNexts, snmpInSetRequests, + snmpInGetResponses, snmpInTraps, snmpOutTooBigs, + snmpOutNoSuchNames, snmpOutBadValues, snmpOutGenErrs, + snmpOutGetRequests, snmpOutGetNexts, snmpOutSetRequests, + snmpOutGetResponses, snmpOutTraps } + STATUS obsolete + DESCRIPTION + "A collection of objects from RFC 1213 made obsolete by this + MIB." + ::= { snmpMIBGroups 10 } + +END diff --git a/pandora_console/attachment/mibs/SNMPv2-MIB.txt b/pandora_console/attachment/mibs/SNMPv2-MIB.txt new file mode 100644 index 0000000000..838270a914 --- /dev/null +++ b/pandora_console/attachment/mibs/SNMPv2-MIB.txt @@ -0,0 +1,780 @@ +-- ***************************************************************** +-- SNMPv2-MIB.my: SNMPv2 MIB file +-- +-- May 1994, Jeffrey T. Johnson +-- +-- Copyright (c) 1994-1997 by cisco Systems, Inc. +-- All rights reserved. +-- +-- ***************************************************************** +-- +-- This mib was extracted from RFC 1907 + +SNMPv2-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + TimeTicks, Counter32, snmpModules, mib-2 + FROM SNMPv2-SMI + DisplayString, TestAndIncr, TimeStamp + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP + FROM SNMPv2-CONF; + + + + +snmpMIB MODULE-IDENTITY + LAST-UPDATED "9511090000Z" + ORGANIZATION "IETF SNMPv2 Working Group" + CONTACT-INFO + " Marshall T. Rose + + Postal: Dover Beach Consulting, Inc. + 420 Whisman Court + Mountain View, CA 94043-2186 + US + + Tel: +1 415 968 1052 + + E-mail: mrose@dbc.mtview.ca.us" + DESCRIPTION + "The MIB module for SNMPv2 entities." + REVISION "9304010000Z" + DESCRIPTION + "The initial revision of this MIB module was published as + RFC 1450." + ::= { snmpModules 1 } + + +snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 } + +-- ::= { snmpMIBObjects 1 } this OID is obsolete +-- ::= { snmpMIBObjects 2 } this OID is obsolete +-- ::= { snmpMIBObjects 3 } this OID is obsolete + + +-- the System group +-- +-- a collection of objects common to all managed systems. + +system OBJECT IDENTIFIER ::= { mib-2 1 } + +sysDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the entity. This value should + include the full name and version identification of the + system's hardware type, software operating-system, and + networking software." + ::= { system 1 } + +sysObjectID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The vendor's authoritative identification of the network + management subsystem contained in the entity. This value is + allocated within the SMI enterprises subtree (1.3.6.1.4.1) + and provides an easy and unambiguous means for determining + `what kind of box' is being managed. For example, if vendor + `Flintstones, Inc.' was assigned the subtree + 1.3.6.1.4.1.4242, it could assign the identifier + 1.3.6.1.4.1.4242.1.1 to its `Fred Router'." + ::= { system 2 } + +sysUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The time (in hundredths of a second) since the network + management portion of the system was last re-initialized." + ::= { system 3 } + +sysContact OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The textual identification of the contact person for this + managed node, together with information on how to contact + this person. If no contact information is known, the value + is the zero-length string." + ::= { system 4 } + +sysName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An administratively-assigned name for this managed node. + By convention, this is the node's fully-qualified domain + name. If the name is unknown, the value is the zero-length + string." + ::= { system 5 } + +sysLocation OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The physical location of this node (e.g., `telephone + closet, 3rd floor'). If the location is unknown, the value + is the zero-length string." + ::= { system 6 } + +sysServices OBJECT-TYPE + SYNTAX INTEGER (0..127) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A value which indicates the set of services that this + entity may potentially offers. The value is a sum. This + sum initially takes the value zero, Then, for each layer, L, + in the range 1 through 7, that this node performs + transactions for, 2 raised to (L - 1) is added to the sum. + For example, a node which performs only routing functions + would have a value of 4 (2^(3-1)). In contrast, a node + which is a host offering application services would have a + value of 72 (2^(4-1) + 2^(7-1)). Note that in the context + of the Internet suite of protocols, values should be + calculated accordingly: + + layer functionality + 1 physical (e.g., repeaters) + 2 datalink/subnetwork (e.g., bridges) + 3 internet (e.g., supports the IP) + 4 end-to-end (e.g., supports the TCP) + 7 applications (e.g., supports the SMTP) + + For systems including OSI protocols, layers 5 and 6 may also + be counted." + ::= { system 7 } + + +-- object resource information +-- +-- a collection of objects which describe the SNMPv2 entity's +-- (statically and dynamically configurable) support of +-- various MIB modules. + +sysORLastChange OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time of the most recent + change in state or value of any instance of sysORID." + ::= { system 8 } + +sysORTable OBJECT-TYPE + SYNTAX SEQUENCE OF SysOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The (conceptual) table listing the capabilities of the + local SNMPv2 entity acting in an agent role with respect to + various MIB modules. SNMPv2 entities having dynamically- + configurable support of MIB modules will have a + dynamically-varying number of conceptual rows." + ::= { system 9 } + +sysOREntry OBJECT-TYPE + SYNTAX SysOREntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry (conceptual row) in the sysORTable." + INDEX { sysORIndex } + ::= { sysORTable 1 } + +SysOREntry ::= SEQUENCE { + sysORIndex INTEGER, + sysORID OBJECT IDENTIFIER, + sysORDescr DisplayString, + sysORUpTime TimeStamp +} + +sysORIndex OBJECT-TYPE + SYNTAX INTEGER (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The auxiliary variable used for identifying instances of + the columnar objects in the sysORTable." + ::= { sysOREntry 1 } + +sysORID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An authoritative identification of a capabilities statement + with respect to various MIB modules supported by the local + SNMPv2 entity acting in an agent role." + ::= { sysOREntry 2 } + +sysORDescr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A textual description of the capabilities identified by the + corresponding instance of sysORID." + ::= { sysOREntry 3 } + +sysORUpTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time this conceptual row was + last instanciated." + ::= { sysOREntry 4 } + + +-- the SNMP group +-- +-- a collection of objects providing basic instrumentation and +-- control of an SNMP entity. + +snmp OBJECT IDENTIFIER ::= { mib-2 11 } + +snmpInPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of messages delivered to the SNMP entity + from the transport service." + ::= { snmp 1 } + +snmpInBadVersions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP messages which were delivered to + the SNMP entity and were for an unsupported SNMP version." + ::= { snmp 3 } + +snmpInBadCommunityNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP messages delivered to the SNMP + entity which used a SNMP community name not known to said + entity." + ::= { snmp 4 } + +snmpInBadCommunityUses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of SNMP messages delivered to the SNMP + entity which represented an SNMP operation which was not + allowed by the SNMP community named in the message." + ::= { snmp 5 } + +snmpInASNParseErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of ASN.1 or BER errors encountered by the + SNMP entity when decoding received SNMP messages." + ::= { snmp 6 } + +snmpEnableAuthenTraps OBJECT-TYPE + SYNTAX INTEGER { enabled(1), disabled(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Indicates whether the SNMP entity is permitted to generate + authenticationFailure traps. The value of this object + overrides any configuration information; as such, it + provides a means whereby all authenticationFailure traps may + be disabled. + + Note that it is strongly recommended that this object be + stored in non-volatile memory so that it remains constant + across re-initializations of the network management system." + ::= { snmp 30 } + +snmpSilentDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of GetRequest-PDUs, GetNextRequest-PDUs, + GetBulkRequest-PDUs, SetRequest-PDUs, and InformRequest-PDUs + delivered to the SNMP entity which were silently dropped + because the size of a reply containing an alternate + Response-PDU with an empty variable-bindings field was + greater than either a local constraint or the maximum + message size associated with the originator of the request." + ::= { snmp 31 } + +snmpProxyDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of GetRequest-PDUs, GetNextRequest-PDUs, + GetBulkRequest-PDUs, SetRequest-PDUs, and InformRequest-PDUs + delivered to the SNMP entity which were silently dropped + because the transmission of the (possibly translated) + message to a proxy target failed in a manner (other than a + time-out) such that no Response-PDU could be returned." + ::= { snmp 32 } + + +-- information for notifications +-- +-- a collection of objects which allow the SNMPv2 entity, when +-- acting in an agent role, to be configured to generate +-- SNMPv2-Trap-PDUs. + +snmpTrap OBJECT IDENTIFIER ::= { snmpMIBObjects 4 } + + +snmpTrapOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The authoritative identification of the notification + currently being sent. This variable occurs as the second + varbind in every SNMPv2-Trap-PDU and InformRequest-PDU." + ::= { snmpTrap 1 } + +-- ::= { snmpTrap 2 } this OID is obsolete + +snmpTrapEnterprise OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "The authoritative identification of the enterprise + associated with the trap currently being sent. When a + SNMPv2 proxy agent is mapping an RFC1157 Trap-PDU into a + SNMPv2-Trap-PDU, this variable occurs as the last varbind." + ::= { snmpTrap 3 } + +-- ::= { snmpTrap 4 } this OID is obsolete + + +-- well-known traps + +snmpTraps OBJECT IDENTIFIER ::= { snmpMIBObjects 5 } + +coldStart NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "A coldStart trap signifies that the SNMPv2 entity, acting + in an agent role, is reinitializing itself and that its + configuration may have been altered." + ::= { snmpTraps 1 } + +warmStart NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "A warmStart trap signifies that the SNMPv2 entity, acting + in an agent role, is reinitializing itself such that its + configuration is unaltered." + ::= { snmpTraps 2 } + +-- Note the linkDown NOTIFICATION-TYPE ::= { snmpTraps 3 } +-- and the linkUp NOTIFICATION-TYPE ::= { snmpTraps 4 } +-- are defined in RFC 1573 + +authenticationFailure NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "An authenticationFailure trap signifies that the SNMPv2 + entity, acting in an agent role, has received a protocol + message that is not properly authenticated. While all + implementations of the SNMPv2 must be capable of generating + this trap, the snmpEnableAuthenTraps object indicates + whether this trap will be generated." + ::= { snmpTraps 5 } + +-- Note the egpNeighborLoss NOTIFICATION-TYPE ::= { snmpTraps 6 } +-- is defined in RFC 1213 + +-- the set group +-- +-- a collection of objects which allow several cooperating +-- SNMPv2 entities, all acting in a manager role, to +-- coordinate their use of the SNMPv2 set operation. + +snmpSet OBJECT IDENTIFIER ::= { snmpMIBObjects 6 } + + +snmpSetSerialNo OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An advisory lock used to allow several cooperating SNMPv2 + entities, all acting in a manager role, to coordinate their + use of the SNMPv2 set operation. + + This object is used for coarse-grain coordination. To + achieve fine-grain coordination, one or more similar objects + might be defined within each MIB group, as appropriate." + ::= { snmpSet 1 } + + +-- conformance information + +snmpMIBConformance + OBJECT IDENTIFIER ::= { snmpMIB 2 } + +snmpMIBCompliances + OBJECT IDENTIFIER ::= { snmpMIBConformance 1 } +snmpMIBGroups OBJECT IDENTIFIER ::= { snmpMIBConformance 2 } + + +-- compliance statements + +-- ::= { snmpMIBCompliances 1 } this OID is obsolete + +snmpBasicCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement the SNMPv2 MIB." + MODULE -- this module + MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup, + snmpBasicNotificationsGroup } + + GROUP snmpCommunityGroup + DESCRIPTION + "This group is mandatory for SNMPv2 entities which + support community-based authentication." + + ::= { snmpMIBCompliances 2 } + + +-- units of conformance + +-- ::= { snmpMIBGroups 1 } this OID is obsolete +-- ::= { snmpMIBGroups 2 } this OID is obsolete +-- ::= { snmpMIBGroups 3 } this OID is obsolete +-- ::= { snmpMIBGroups 4 } this OID is obsolete + +snmpGroup OBJECT-GROUP + OBJECTS { snmpInPkts, + snmpInBadVersions, + snmpInASNParseErrs, + snmpSilentDrops, + snmpProxyDrops, + snmpEnableAuthenTraps } + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation and + control of an SNMPv2 entity." + ::= { snmpMIBGroups 8 } + +snmpCommunityGroup OBJECT-GROUP + OBJECTS { snmpInBadCommunityNames, + snmpInBadCommunityUses } + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation of + a SNMPv2 entity which supports community-based + authentication." + ::= { snmpMIBGroups 9 } + +snmpSetGroup OBJECT-GROUP + OBJECTS { snmpSetSerialNo } + STATUS current + DESCRIPTION + "A collection of objects which allow several cooperating + SNMPv2 entities, all acting in a manager role, to coordinate + their use of the SNMPv2 set operation." + ::= { snmpMIBGroups 5 } + +systemGroup OBJECT-GROUP + OBJECTS { sysDescr, sysObjectID, sysUpTime, + sysContact, sysName, sysLocation, + sysServices, + sysORLastChange, sysORID, + sysORUpTime, sysORDescr } + STATUS current + DESCRIPTION + "The system group defines objects which are common to all + managed systems." + ::= { snmpMIBGroups 6 } + +snmpBasicNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { coldStart, authenticationFailure } + STATUS current + DESCRIPTION + "The two notifications which an SNMPv2 entity is required to + implement." + ::= { snmpMIBGroups 7 } + + +-- definitions in RFC 1213 made obsolete by the inclusion of a +-- subset of the snmp group in this MIB + +snmpOutPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Messages which were + passed from the SNMP protocol entity to the + transport service." + ::= { snmp 2 } + +-- { snmp 7 } is not used + +snmpInTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `tooBig'." + ::= { snmp 8 } + +snmpInNoSuchNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `noSuchName'." + ::= { snmp 9 } + +snmpInBadValues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 10 } + +snmpInReadOnlys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number valid SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `readOnly'. It should be noted that it is a + protocol error to generate an SNMP PDU which + contains the value `readOnly' in the error-status + field, as such this object is provided as a means + of detecting incorrect implementations of the + SNMP." + ::= { snmp 11 } + +snmpInGenErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + delivered to the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 12 } + +snmpInTotalReqVars OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of MIB objects which have been + retrieved successfully by the SNMP protocol entity + as the result of receiving valid SNMP Get-Request + and Get-Next PDUs." + ::= { snmp 13 } + +snmpInTotalSetVars OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of MIB objects which have been + altered successfully by the SNMP protocol entity + as the result of receiving valid SNMP Set-Request + PDUs." + ::= { snmp 14 } + +snmpInGetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 15 } + +snmpInGetNexts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 16 } + +snmpInSetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 17 } + +snmpInGetResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been accepted and processed by the SNMP + protocol entity." + ::= { snmp 18 } + +snmpInTraps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been accepted and processed by the SNMP protocol + entity." + ::= { snmp 19 } + +snmpOutTooBigs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `tooBig.'" + ::= { snmp 20 } + +snmpOutNoSuchNames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status is + `noSuchName'." + ::= { snmp 21 } + +snmpOutBadValues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `badValue'." + ::= { snmp 22 } + + +-- { snmp 23 } is not used + +snmpOutGenErrs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP PDUs which were + generated by the SNMP protocol entity and for + which the value of the error-status field is + `genErr'." + ::= { snmp 24 } + +snmpOutGetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 25 } + +snmpOutGetNexts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Next PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 26 } + +snmpOutSetRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Set-Request PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 27 } + +snmpOutGetResponses OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Get-Response PDUs which + have been generated by the SNMP protocol entity." + ::= { snmp 28 } + +snmpOutTraps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The total number of SNMP Trap PDUs which have + been generated by the SNMP protocol entity." + ::= { snmp 29 } + +snmpObsoleteGroup OBJECT-GROUP + OBJECTS { snmpOutPkts, snmpInTooBigs, snmpInNoSuchNames, + snmpInBadValues, snmpInReadOnlys, snmpInGenErrs, + snmpInTotalReqVars, snmpInTotalSetVars, + snmpInGetRequests, snmpInGetNexts, snmpInSetRequests, + snmpInGetResponses, snmpInTraps, snmpOutTooBigs, + snmpOutNoSuchNames, snmpOutBadValues, snmpOutGenErrs, + snmpOutGetRequests, snmpOutGetNexts, snmpOutSetRequests, + snmpOutGetResponses, snmpOutTraps } + STATUS obsolete + DESCRIPTION + "A collection of objects from RFC 1213 made obsolete by this + MIB." + ::= { snmpMIBGroups 10 } + +END diff --git a/pandora_console/attachment/mibs/SNMPv2-SMI b/pandora_console/attachment/mibs/SNMPv2-SMI new file mode 100644 index 0000000000..c1795f888b --- /dev/null +++ b/pandora_console/attachment/mibs/SNMPv2-SMI @@ -0,0 +1,119 @@ +SNMPv2-SMI DEFINITIONS ::= BEGIN + +org OBJECT IDENTIFIER ::= { iso 3 } + +dod OBJECT IDENTIFIER ::= { org 6 } + +internet OBJECT IDENTIFIER ::= { dod 1 } + +directory OBJECT IDENTIFIER ::= { internet 1 } + +mgmt OBJECT IDENTIFIER ::= { internet 2 } + +mib-2 OBJECT IDENTIFIER ::= { mgmt 1 } + +transmission OBJECT IDENTIFIER ::= { mib-2 10 } + +experimental OBJECT IDENTIFIER ::= { internet 3 } + +private OBJECT IDENTIFIER ::= { internet 4 } + +enterprises OBJECT IDENTIFIER ::= { private 1 } + +security OBJECT IDENTIFIER ::= { internet 5 } + +snmpV2 OBJECT IDENTIFIER ::= { internet 6 } + +snmpDomains OBJECT IDENTIFIER ::= { snmpV2 1 } + +snmpProxys OBJECT IDENTIFIER ::= { snmpV2 2 } + +snmpModules OBJECT IDENTIFIER ::= { snmpV2 3 } + +--ObjectName ::= +-- OBJECT IDENTIFIER + +--NotificationName ::= +-- OBJECT IDENTIFIER + +--ObjectSyntax ::= +-- CHOICE { +-- simple +-- SimpleSyntax, +-- +-- application-wide +-- ApplicationSyntax +--} + +--SimpleSyntax ::= +-- CHOICE { +-- integer-value +-- INTEGER, +-- +-- string-value +-- OCTET STRING, +-- +-- objectID-value +-- OBJECT IDENTIFIER +--} + +--Integer32 ::= +-- [UNIVERSAL 2] +-- IMPLICIT INTEGER + +--ApplicationSyntax ::= +-- CHOICE { +-- ipAddress-value +-- IpAddress, +-- +-- counter-value +-- Counter32, +-- +-- timeticks-value +-- TimeTicks, +-- +-- arbitrary-value +-- Opaque, +-- +-- big-counter-value +-- Counter64, +-- +-- unsigned-integer-value +-- Unsigned32 +--} + +--IpAddress ::= +-- [APPLICATION 0] +-- IMPLICIT OCTET STRING + +--Counter32 ::= +-- [APPLICATION 1] +-- IMPLICIT INTEGER + +--Gauge32 ::= +-- [APPLICATION 2] +-- IMPLICIT INTEGER + +--Unsigned32 ::= +-- [APPLICATION 2] +-- IMPLICIT INTEGER + +--TimeTicks ::= +-- [APPLICATION 3] +-- IMPLICIT INTEGER + +--Opaque ::= +-- [APPLICATION 4] +-- IMPLICIT OCTET STRING + +--Counter64 ::= +-- [APPLICATION 6] +-- IMPLICIT INTEGER + +--zeroDotZero OBJECT-IDENTITY +-- STATUS current +-- DESCRIPTION +-- "A value used for null identifiers." +-- ::= { 0 0 } + +END diff --git a/pandora_console/attachment/mibs/SNMPv2-TC b/pandora_console/attachment/mibs/SNMPv2-TC new file mode 100644 index 0000000000..fa7aa3e1d5 --- /dev/null +++ b/pandora_console/attachment/mibs/SNMPv2-TC @@ -0,0 +1,955 @@ + +SNMPv2-TC DEFINITIONS ::= BEGIN + +IMPORTS + TimeTicks FROM SNMPv2-SMI; + + + + +DisplayString ::= TEXTUAL-CONVENTION + DISPLAY-HINT "255a" + STATUS current + DESCRIPTION + "Represents textual information taken from the NVT ASCII + + +McCloghrie, et al. Standards Track [Page 3] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + character set, as defined in pages 4, 10-11 of RFC 854. + + To summarize RFC 854, the NVT ASCII repertoire specifies: + + - the use of character codes 0-127 (decimal) + + - the graphics characters (32-126) are interpreted as + US ASCII + + - NUL, LF, CR, BEL, BS, HT, VT and FF have the special + meanings specified in RFC 854 + + - the other 25 codes have no standard interpretation + + - the sequence 'CR LF' means newline + + - the sequence 'CR NUL' means carriage-return + + - an 'LF' not preceded by a 'CR' means moving to the + same column on the next line. + + - the sequence 'CR x' for any x other than LF or NUL is + illegal. (Note that this also means that a string may + end with either 'CR LF' or 'CR NUL', but not with CR.) + + Any object defined using this syntax may not exceed 255 + characters in length." + SYNTAX OCTET STRING (SIZE (0..255)) + +PhysAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1x:" + STATUS current + DESCRIPTION + "Represents media- or physical-level addresses." + SYNTAX OCTET STRING + + +MacAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1x:" + STATUS current + DESCRIPTION + "Represents an 802 MAC address represented in the + `canonical' order defined by IEEE 802.1a, i.e., as if it + were transmitted least significant bit first, even though + 802.5 (in contrast to other 802.x protocols) requires MAC + addresses to be transmitted most significant bit first." + SYNTAX OCTET STRING (SIZE (6)) + + +TruthValue ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents a boolean value." + SYNTAX INTEGER { true(1), false(2) } + +TestAndIncr ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents integer-valued information used for atomic + operations. When the management protocol is used to specify + that an object instance having this syntax is to be + modified, the new value supplied via the management protocol + must precisely match the value presently held by the + instance. If not, the management protocol set operation + fails with an error of `inconsistentValue'. Otherwise, if + the current value is the maximum value of 2^31-1 (2147483647 + decimal), then the value held by the instance is wrapped to + zero; otherwise, the value held by the instance is + incremented by one. (Note that regardless of whether the + management protocol set operation succeeds, the variable- + binding in the request and response PDUs are identical.) + + The value of the ACCESS clause for objects having this + syntax is either `read-write' or `read-create'. When an + instance of a columnar object having this syntax is created, + any value may be supplied via the management protocol. + + When the network management portion of the system is re- + initialized, the value of every object instance having this + syntax must either be incremented from its value prior to + the re-initialization, or (if the value prior to the re- + initialization is unknown) be set to a pseudo-randomly + generated value." + SYNTAX INTEGER (0..2147483647) + +AutonomousType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents an independently extensible type identification + value. It may, for example, indicate a particular sub-tree + with further MIB definitions, or define a particular type of + protocol or hardware." + SYNTAX OBJECT IDENTIFIER + + +InstancePointer ::= TEXTUAL-CONVENTION + STATUS obsolete + DESCRIPTION + "A pointer to either a specific instance of a MIB object or + a conceptual row of a MIB table in the managed device. In + the latter case, by convention, it is the name of the + particular instance of the first accessible columnar object + in the conceptual row. + + The two uses of this textual convention are replaced by + VariablePointer and RowPointer, respectively." + SYNTAX OBJECT IDENTIFIER + + +VariablePointer ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A pointer to a specific object instance. For example, + sysContact.0 or ifInOctets.3." + SYNTAX OBJECT IDENTIFIER + + +RowPointer ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents a pointer to a conceptual row. The value is the + name of the instance of the first accessible columnar object + in the conceptual row. + + For example, ifIndex.3 would point to the 3rd row in the + ifTable (note that if ifIndex were not-accessible, then + ifDescr.3 would be used instead)." + SYNTAX OBJECT IDENTIFIER + +RowStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The RowStatus textual convention is used to manage the + creation and deletion of conceptual rows, and is used as the + value of the SYNTAX clause for the status column of a + conceptual row (as described in Section 7.7.1 of [2].) + + + + + + + + + + + +McCloghrie, et al. Standards Track [Page 6] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + The status column has six defined values: + + - `active', which indicates that the conceptual row is + available for use by the managed device; + + - `notInService', which indicates that the conceptual + row exists in the agent, but is unavailable for use by + the managed device (see NOTE below); 'notInService' has + no implication regarding the internal consistency of + the row, availability of resources, or consistency with + the current state of the managed device; + + - `notReady', which indicates that the conceptual row + exists in the agent, but is missing information + necessary in order to be available for use by the + managed device (i.e., one or more required columns in + the conceptual row have not been instanciated); + + - `createAndGo', which is supplied by a management + station wishing to create a new instance of a + conceptual row and to have its status automatically set + to active, making it available for use by the managed + device; + + - `createAndWait', which is supplied by a management + station wishing to create a new instance of a + conceptual row (but not make it available for use by + the managed device); and, + + - `destroy', which is supplied by a management station + wishing to delete all of the instances associated with + an existing conceptual row. + + Whereas five of the six values (all except `notReady') may + be specified in a management protocol set operation, only + three values will be returned in response to a management + protocol retrieval operation: `notReady', `notInService' or + `active'. That is, when queried, an existing conceptual row + has only three states: it is either available for use by + the managed device (the status column has value `active'); + it is not available for use by the managed device, though + the agent has sufficient information to attempt to make it + so (the status column has value `notInService'); or, it is + not available for use by the managed device, and an attempt + to make it so would fail because the agent has insufficient + information (the state column has value `notReady'). + + + + +McCloghrie, et al. Standards Track [Page 7] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + NOTE WELL + + This textual convention may be used for a MIB table, + irrespective of whether the values of that table's + conceptual rows are able to be modified while it is + active, or whether its conceptual rows must be taken + out of service in order to be modified. That is, it is + the responsibility of the DESCRIPTION clause of the + status column to specify whether the status column must + not be `active' in order for the value of some other + column of the same conceptual row to be modified. If + such a specification is made, affected columns may be + changed by an SNMP set PDU if the RowStatus would not + be equal to `active' either immediately before or after + processing the PDU. In other words, if the PDU also + contained a varbind that would change the RowStatus + value, the column in question may be changed if the + RowStatus was not equal to `active' as the PDU was + received, or if the varbind sets the status to a value + other than 'active'. + + + Also note that whenever any elements of a row exist, the + RowStatus column must also exist. + + + + + + + + + + + + + + + + + + + + + + + + + + +McCloghrie, et al. Standards Track [Page 8] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + To summarize the effect of having a conceptual row with a + status column having a SYNTAX clause value of RowStatus, + consider the following state diagram: + + + STATE + +--------------+-----------+-------------+------------- + | A | B | C | D + | |status col.|status column| + |status column | is | is |status column + ACTION |does not exist| notReady | notInService| is active +--------------+--------------+-----------+-------------+------------- +set status |noError ->D|inconsist- |inconsistent-|inconsistent- +column to | or | entValue| Value| Value +createAndGo |inconsistent- | | | + | Value| | | +--------------+--------------+-----------+-------------+------------- +set status |noError see 1|inconsist- |inconsistent-|inconsistent- +column to | or | entValue| Value| Value +createAndWait |wrongValue | | | +--------------+--------------+-----------+-------------+------------- +set status |inconsistent- |inconsist- |noError |noError +column to | Value| entValue| | +active | | | | + | | or | | + | | | | + | |see 2 ->D|see 8 ->D| ->D +--------------+--------------+-----------+-------------+------------- +set status |inconsistent- |inconsist- |noError |noError ->C +column to | Value| entValue| | +notInService | | | | + | | or | | or + | | | | + | |see 3 ->C| ->C|see 6 +--------------+--------------+-----------+-------------+------------- +set status |noError |noError |noError |noError ->A +column to | | | | or +destroy | ->A| ->A| ->A|see 7 +--------------+--------------+-----------+-------------+------------- +set any other |see 4 |noError |noError |see 5 +column to some| | | | +value | | see 1| ->C| ->D +--------------+--------------+-----------+-------------+------------- + + (1) goto B or C, depending on information available to the + agent. + + (2) if other variable bindings included in the same PDU, + + +McCloghrie, et al. Standards Track [Page 9] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + provide values for all columns which are missing but + required, and all columns have acceptable values, then + return noError and goto D. + + (3) if other variable bindings included in the same PDU, + provide legal values for all columns which are missing but + required, then return noError and goto C. + + (4) at the discretion of the agent, the return value may be + either: + + inconsistentName: because the agent does not choose to + create such an instance when the corresponding + RowStatus instance does not exist, or + + inconsistentValue: if the supplied value is + inconsistent with the state of some other MIB object's + value, or + + noError: because the agent chooses to create the + instance. + + If noError is returned, then the instance of the status + column must also be created, and the new state is B or C, + depending on the information available to the agent. If + inconsistentName or inconsistentValue is returned, the row + remains in state A. + + (5) depending on the MIB definition for the column/table, + either noError or inconsistentValue may be returned. + + (6) the return value can indicate one of the following + errors: + + wrongValue: because the agent does not support + notInService (e.g., an agent which does not support + createAndWait), or + + inconsistentValue: because the agent is unable to take + the row out of service at this time, perhaps because it + is in use and cannot be de-activated. + + (7) the return value can indicate the following error: + + inconsistentValue: because the agent is unable to + remove the row at this time, perhaps because it is in + use and cannot be de-activated. + + + +McCloghrie, et al. Standards Track [Page 10] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + (8) the transition to D can fail, e.g., if the values of the + conceptual row are inconsistent, then the error code would + be inconsistentValue. + + NOTE: Other processing of (this and other varbinds of) the + set request may result in a response other than noError + being returned, e.g., wrongValue, noCreation, etc. + + + Conceptual Row Creation + + There are four potential interactions when creating a + conceptual row: selecting an instance-identifier which is + not in use; creating the conceptual row; initializing any + objects for which the agent does not supply a default; and, + making the conceptual row available for use by the managed + device. + + Interaction 1: Selecting an Instance-Identifier + + The algorithm used to select an instance-identifier varies + for each conceptual row. In some cases, the instance- + identifier is semantically significant, e.g., the + destination address of a route, and a management station + selects the instance-identifier according to the semantics. + + In other cases, the instance-identifier is used solely to + distinguish conceptual rows, and a management station + without specific knowledge of the conceptual row might + examine the instances present in order to determine an + unused instance-identifier. (This approach may be used, but + it is often highly sub-optimal; however, it is also a + questionable practice for a naive management station to + attempt conceptual row creation.) + + Alternately, the MIB module which defines the conceptual row + might provide one or more objects which provide assistance + in determining an unused instance-identifier. For example, + if the conceptual row is indexed by an integer-value, then + an object having an integer-valued SYNTAX clause might be + defined for such a purpose, allowing a management station to + issue a management protocol retrieval operation. In order + to avoid unnecessary collisions between competing management + stations, `adjacent' retrievals of this object should be + different. + + Finally, the management station could select a pseudo-random + number to use as the index. In the event that this index + + +McCloghrie, et al. Standards Track [Page 11] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + was already in use and an inconsistentValue was returned in + response to the management protocol set operation, the + management station should simply select a new pseudo-random + number and retry the operation. + + A MIB designer should choose between the two latter + algorithms based on the size of the table (and therefore the + efficiency of each algorithm). For tables in which a large + number of entries are expected, it is recommended that a MIB + object be defined that returns an acceptable index for + creation. For tables with small numbers of entries, it is + recommended that the latter pseudo-random index mechanism be + used. + + Interaction 2: Creating the Conceptual Row + + Once an unused instance-identifier has been selected, the + management station determines if it wishes to create and + activate the conceptual row in one transaction or in a + negotiated set of interactions. + + Interaction 2a: Creating and Activating the Conceptual Row + + The management station must first determine the column + requirements, i.e., it must determine those columns for + which it must or must not provide values. Depending on the + complexity of the table and the management station's + knowledge of the agent's capabilities, this determination + can be made locally by the management station. Alternately, + the management station issues a management protocol get + operation to examine all columns in the conceptual row that + it wishes to create. In response, for each column, there + are three possible outcomes: + + - a value is returned, indicating that some other + management station has already created this conceptual + row. We return to interaction 1. + + - the exception `noSuchInstance' is returned, + indicating that the agent implements the object-type + associated with this column, and that this column in at + least one conceptual row would be accessible in the MIB + view used by the retrieval were it to exist. For those + columns to which the agent provides read-create access, + the `noSuchInstance' exception tells the management + station that it should supply a value for this column + when the conceptual row is to be created. + + + +McCloghrie, et al. Standards Track [Page 12] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + - the exception `noSuchObject' is returned, indicating + that the agent does not implement the object-type + associated with this column or that there is no + conceptual row for which this column would be + accessible in the MIB view used by the retrieval. As + such, the management station can not issue any + management protocol set operations to create an + instance of this column. + + Once the column requirements have been determined, a + management protocol set operation is accordingly issued. + This operation also sets the new instance of the status + column to `createAndGo'. + + When the agent processes the set operation, it verifies that + it has sufficient information to make the conceptual row + available for use by the managed device. The information + available to the agent is provided by two sources: the + management protocol set operation which creates the + conceptual row, and, implementation-specific defaults + supplied by the agent (note that an agent must provide + implementation-specific defaults for at least those objects + which it implements as read-only). If there is sufficient + information available, then the conceptual row is created, a + `noError' response is returned, the status column is set to + `active', and no further interactions are necessary (i.e., + interactions 3 and 4 are skipped). If there is insufficient + information, then the conceptual row is not created, and the + set operation fails with an error of `inconsistentValue'. + On this error, the management station can issue a management + protocol retrieval operation to determine if this was + because it failed to specify a value for a required column, + or, because the selected instance of the status column + already existed. In the latter case, we return to + interaction 1. In the former case, the management station + can re-issue the set operation with the additional + information, or begin interaction 2 again using + `createAndWait' in order to negotiate creation of the + conceptual row. + + + + + + + + + + + +McCloghrie, et al. Standards Track [Page 13] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + NOTE WELL + + Regardless of the method used to determine the column + requirements, it is possible that the management + station might deem a column necessary when, in fact, + the agent will not allow that particular columnar + instance to be created or written. In this case, the + management protocol set operation will fail with an + error such as `noCreation' or `notWritable'. In this + case, the management station decides whether it needs + to be able to set a value for that particular columnar + instance. If not, the management station re-issues the + management protocol set operation, but without setting + a value for that particular columnar instance; + otherwise, the management station aborts the row + creation algorithm. + + Interaction 2b: Negotiating the Creation of the Conceptual + Row + + The management station issues a management protocol set + operation which sets the desired instance of the status + column to `createAndWait'. If the agent is unwilling to + process a request of this sort, the set operation fails with + an error of `wrongValue'. (As a consequence, such an agent + must be prepared to accept a single management protocol set + operation, i.e., interaction 2a above, containing all of the + columns indicated by its column requirements.) Otherwise, + the conceptual row is created, a `noError' response is + returned, and the status column is immediately set to either + `notInService' or `notReady', depending on whether it has + sufficient information to (attempt to) make the conceptual + row available for use by the managed device. If there is + sufficient information available, then the status column is + set to `notInService'; otherwise, if there is insufficient + information, then the status column is set to `notReady'. + Regardless, we proceed to interaction 3. + + Interaction 3: Initializing non-defaulted Objects + + The management station must now determine the column + requirements. It issues a management protocol get operation + to examine all columns in the created conceptual row. In + the response, for each column, there are three possible + outcomes: + + + + + +McCloghrie, et al. Standards Track [Page 14] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + - a value is returned, indicating that the agent + implements the object-type associated with this column + and had sufficient information to provide a value. For + those columns to which the agent provides read-create + access (and for which the agent allows their values to + be changed after their creation), a value return tells + the management station that it may issue additional + management protocol set operations, if it desires, in + order to change the value associated with this column. + + - the exception `noSuchInstance' is returned, + indicating that the agent implements the object-type + associated with this column, and that this column in at + least one conceptual row would be accessible in the MIB + view used by the retrieval were it to exist. However, + the agent does not have sufficient information to + provide a value, and until a value is provided, the + conceptual row may not be made available for use by the + managed device. For those columns to which the agent + provides read-create access, the `noSuchInstance' + exception tells the management station that it must + issue additional management protocol set operations, in + order to provide a value associated with this column. + + - the exception `noSuchObject' is returned, indicating + that the agent does not implement the object-type + associated with this column or that there is no + conceptual row for which this column would be + accessible in the MIB view used by the retrieval. As + such, the management station can not issue any + management protocol set operations to create an + instance of this column. + + If the value associated with the status column is + `notReady', then the management station must first deal with + all `noSuchInstance' columns, if any. Having done so, the + value of the status column becomes `notInService', and we + proceed to interaction 4. + + + + + + + + + + + + +McCloghrie, et al. Standards Track [Page 15] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + Interaction 4: Making the Conceptual Row Available + + Once the management station is satisfied with the values + associated with the columns of the conceptual row, it issues + a management protocol set operation to set the status column + to `active'. If the agent has sufficient information to + make the conceptual row available for use by the managed + device, the management protocol set operation succeeds (a + `noError' response is returned). Otherwise, the management + protocol set operation fails with an error of + `inconsistentValue'. + + NOTE WELL + + A conceptual row having a status column with value + `notInService' or `notReady' is unavailable to the + managed device. As such, it is possible for the + managed device to create its own instances during the + time between the management protocol set operation + which sets the status column to `createAndWait' and the + management protocol set operation which sets the status + column to `active'. In this case, when the management + protocol set operation is issued to set the status + column to `active', the values held in the agent + supersede those used by the managed device. + + If the management station is prevented from setting the + status column to `active' (e.g., due to management station + or network failure) the conceptual row will be left in the + `notInService' or `notReady' state, consuming resources + indefinitely. The agent must detect conceptual rows that + have been in either state for an abnormally long period of + time and remove them. It is the responsibility of the + DESCRIPTION clause of the status column to indicate what an + abnormally long period of time would be. This period of + time should be long enough to allow for human response time + (including `think time') between the creation of the + conceptual row and the setting of the status to `active'. + In the absence of such information in the DESCRIPTION + clause, it is suggested that this period be approximately 5 + minutes in length. This removal action applies not only to + newly-created rows, but also to previously active rows which + are set to, and left in, the notInService state for a + prolonged period exceeding that which is considered normal + for such a conceptual row. + + + + + +McCloghrie, et al. Standards Track [Page 16] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + Conceptual Row Suspension + + When a conceptual row is `active', the management station + may issue a management protocol set operation which sets the + instance of the status column to `notInService'. If the + agent is unwilling to do so, the set operation fails with an + error of `wrongValue' or `inconsistentValue'. Otherwise, + the conceptual row is taken out of service, and a `noError' + response is returned. It is the responsibility of the + DESCRIPTION clause of the status column to indicate under + what circumstances the status column should be taken out of + service (e.g., in order for the value of some other column + of the same conceptual row to be modified). + + + Conceptual Row Deletion + + For deletion of conceptual rows, a management protocol set + operation is issued which sets the instance of the status + column to `destroy'. This request may be made regardless of + the current value of the status column (e.g., it is possible + to delete conceptual rows which are either `notReady', + `notInService' or `active'.) If the operation succeeds, + then all instances associated with the conceptual row are + immediately removed." + SYNTAX INTEGER { + -- the following two values are states: + -- these values may be read or written + active(1), + notInService(2), + + -- the following value is a state: + -- this value may be read, but not written + notReady(3), + + -- the following three values are + -- actions: these values may be written, + -- but are never read + createAndGo(4), + createAndWait(5), + destroy(6) + } + +TimeStamp ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The value of the sysUpTime object at which a specific + occurrence happened. The specific occurrence must be + + +McCloghrie, et al. Standards Track [Page 17] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + defined in the description of any object defined using this + type. + + If sysUpTime is reset to zero as a result of a re- + initialization of the network management (sub)system, then + the values of all TimeStamp objects are also reset. + However, after approximately 497 days without a re- + initialization, the sysUpTime object will reach 2^^32-1 and + then increment around to zero; in this case, existing values + of TimeStamp objects do not change. This can lead to + ambiguities in the value of TimeStamp objects." + SYNTAX TimeTicks + + +TimeInterval ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "A period of time, measured in units of 0.01 seconds." + SYNTAX INTEGER (0..2147483647) + +DateAndTime ::= TEXTUAL-CONVENTION + DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d" + STATUS current + DESCRIPTION + "A date-time specification. + + field octets contents range + ----- ------ -------- ----- + 1 1-2 year* 0..65536 + 2 3 month 1..12 + 3 4 day 1..31 + 4 5 hour 0..23 + 5 6 minutes 0..59 + 6 7 seconds 0..60 + (use 60 for leap-second) + 7 8 deci-seconds 0..9 + 8 9 direction from UTC '+' / '-' + 9 10 hours from UTC* 0..13 + 10 11 minutes from UTC 0..59 + + * Notes: + - the value of year is in network-byte order + - daylight saving time in New Zealand is +13 + + For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be + displayed as: + + 1992-5-26,13:30:15.0,-4:0 + + +McCloghrie, et al. Standards Track [Page 18] + + + + + +RFC 2579 Textual Conventions for SMIv2 April 1999 + + + Note that if only local time is known, then timezone + information (fields 8-10) is not present." + SYNTAX OCTET STRING (SIZE (8 | 11)) + + +StorageType ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Describes the memory realization of a conceptual row. A + row which is volatile(2) is lost upon reboot. A row which + is either nonVolatile(3), permanent(4) or readOnly(5), is + backed up by stable storage. A row which is permanent(4) + can be changed but not deleted. A row which is readOnly(5) + cannot be changed nor deleted. + + If the value of an object with this syntax is either + permanent(4) or readOnly(5), it cannot be written. + Conversely, if the value is either other(1), volatile(2) or + nonVolatile(3), it cannot be modified to be permanent(4) or + readOnly(5). (All illegal modifications result in a + 'wrongValue' error.) + + Every usage of this textual convention is required to + specify the columnar objects which a permanent(4) row must + at a minimum allow to be writable." + SYNTAX INTEGER { + other(1), -- eh? + volatile(2), -- e.g., in RAM + nonVolatile(3), -- e.g., in NVRAM + permanent(4), -- e.g., partially in ROM + readOnly(5) -- e.g., completely in ROM + } + + + +TDomain ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Denotes a kind of transport service. + + Some possible values, such as snmpUDPDomain, are defined in + the SNMPv2-TM MIB module. Other possible values are defined + in other MIB modules." + REFERENCE "The SNMPv2-TM MIB module is defined in RFC 1906." + SYNTAX OBJECT IDENTIFIER + + +TAddress ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Denotes a transport service address. + + A TAddress value is always interpreted within the context of a + TDomain value. Thus, each definition of a TDomain value must + be accompanied by a definition of a textual convention for use + with that TDomain. Some possible textual conventions, such as + SnmpUDPAddress for snmpUDPDomain, are defined in the SNMPv2-TM + MIB module. Other possible textual conventions are defined in + other MIB modules." + REFERENCE "The SNMPv2-TM MIB module is defined in RFC 1906." + SYNTAX OCTET STRING (SIZE (1..255)) + + +END + + diff --git a/pandora_console/attachment/mibs/SNMPv2-TM b/pandora_console/attachment/mibs/SNMPv2-TM new file mode 100644 index 0000000000..ca6cf3299b --- /dev/null +++ b/pandora_console/attachment/mibs/SNMPv2-TM @@ -0,0 +1,131 @@ +-- Changes to rfc1906 - SNMPv2-TM (SNMPv2 transport mappings) +-- NOTE: module need MODULE-IDENTITY added! +-- dperkins@scruznet.com + + +SNMPv2-TM DEFINITIONS ::= BEGIN + +IMPORTS + OBJECT-IDENTITY, snmpDomains, snmpProxys + FROM SNMPv2-SMI + TEXTUAL-CONVENTION + FROM SNMPv2-TC; + +-- SNMPv2 over UDP over IPv4 + +snmpUDPDomain OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The SNMPv2 over UDP transport domain. The corresponding + transport address is of type SnmpUDPAddress." + ::= { snmpDomains 1 } + +SnmpUDPAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "1d.1d.1d.1d/2d" + STATUS current + DESCRIPTION + "Represents a UDP address: + + octets contents encoding + 1-4 IP-address network-byte order + 5-6 UDP-port network-byte order + " + SYNTAX OCTET STRING (SIZE (6)) + + +-- SNMPv2 over OSI + +snmpCLNSDomain OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The SNMPv2 over CLNS transport domain. The corresponding + transport address is of type SnmpOSIAddress." + ::= { snmpDomains 2 } + +snmpCONSDomain OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The SNMPv2 over CONS transport domain. The corresponding + transport address is of type SnmpOSIAddress." + ::= { snmpDomains 3 } + +SnmpOSIAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "*1x:/1x:" + STATUS current + DESCRIPTION + "Represents an OSI transport-address: + + octets contents encoding + 1 length of NSAP 'n' as an unsigned-integer + (either 0 or from 3 to 20) + 2..(n+1) NSAP concrete binary representation + (n+2)..m TSEL string of (up to 64) octets + " + SYNTAX OCTET STRING (SIZE (1 | 4..85)) + + +-- SNMPv2 over DDP + +snmpDDPDomain OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The SNMPv2 over DDP transport domain. The corresponding + transport address is of type SnmpNBPAddress." + ::= { snmpDomains 4 } + +SnmpNBPAddress ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Represents an NBP name: + + octets contents encoding + 1 length of object 'n' as an unsigned integer + 2..(n+1) object string of (up to 32) octets + n+2 length of type 'p' as an unsigned integer + (n+3)..(n+2+p) type string of (up to 32) octets + n+3+p length of zone 'q' as an unsigned integer + (n+4+p)..(n+3+p+q) zone string of (up to 32) octets + + For comparison purposes, strings are case-insensitive All + strings may contain any octet other than 255 (hex ff)." + SYNTAX OCTET STRING (SIZE (3..99)) + + +-- SNMPv2 over IPX + +snmpIPXDomain OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The SNMPv2 over IPX transport domain. The corresponding + transport address is of type SnmpIPXAddress." + ::= { snmpDomains 5 } + +SnmpIPXAddress ::= TEXTUAL-CONVENTION + DISPLAY-HINT "4x.1x:1x:1x:1x:1x:1x.2d" + STATUS current + DESCRIPTION + "Represents an IPX address: + + octets contents encoding + 1-4 network-number network-byte order + 5-10 physical-address network-byte order + 11-12 socket-number network-byte order + " + SYNTAX OCTET STRING (SIZE (12)) + + +-- for proxy to SNMPv1 (RFC 1157) + +rfc1157Proxy OBJECT IDENTIFIER ::= { snmpProxys 1 } + +rfc1157Domain OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The transport domain for SNMPv1 over UDP. The + corresponding transport address is of type SnmpUDPAddress." + ::= { rfc1157Proxy 1 } + +-- ::= { rfc1157Proxy 2 } this OID is obsolete + + +END diff --git a/pandora_console/attachment/mibs/StorageManagement-MIB b/pandora_console/attachment/mibs/StorageManagement-MIB new file mode 100644 index 0000000000..4bf750331f --- /dev/null +++ b/pandora_console/attachment/mibs/StorageManagement-MIB @@ -0,0 +1,5912 @@ +-- +-- dcstorag.mib +-- MIB generated by MG-SOFT Visual MIB Builder Version 6.0 Build 88 +-- Tuesday, November 25, 2008 at 18:11:03 +-- + +-- Copyright (c) 2002 Dell +-- Module Name: dcstorag.mib +-- Abstract: +-- Defines the Dell OpenManage Storage Management SNMP interface. +-- Authors: +-- +-- Revision History: +-- KEMR (10/23/02) 0.1 - Original draft +-- +-- IMPORTANT NOTE +-- MG-SOFT MibBuilder will be used as the tool to change this MIB. Because of the way the MG-SOFT MIB tools work, a copy +-- of the intermediate file with the extension .bui will be kept in SourceSafe along with the ASCII .mib version. When +-- any changes are made to the MIB they will have to be made to the .bui file using MibBuilder and then exported to the +-- .mib file. If you open the .mib version of the MIB in MibBuilder, the compiler is run in on the fly and ALL comments +-- will be removed. This is a "feature" of the tool and is beyond our control. + + StorageManagement-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE + FROM RFC-1212 + TRAP-TYPE + FROM RFC-1215 + enterprises + FROM RFC1155-SMI + DisplayString + FROM RFC1213-MIB; + + +-- +-- Type definitions +-- + + DellStatus ::= INTEGER + { + other(1), + unknown(2), + ok(3), + nonCritical(4), + critical(5), + nonRecoverable(6) + } + + +-- +-- Node definitions +-- + + -- 1.3.6.1.4.1.674 + dell OBJECT IDENTIFIER ::= { enterprises 674 } + + + -- 1.3.6.1.4.1.674.10893 + storage OBJECT IDENTIFIER ::= { dell 10893 } + + + -- 1.3.6.1.4.1.674.10893.1 + software OBJECT IDENTIFIER ::= { storage 1 } + + +-- The Storage Management MIB (Management Information Base) Group +-- defines the properties that identify information about the Storage +-- Management software product and the current status of the system it manages. + -- 1.3.6.1.4.1.674.10893.1.20 + storageManagement OBJECT IDENTIFIER ::= { software 20 } + + + -- 1.3.6.1.4.1.674.10893.1.20.1 + softwareVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Version number of the storage management component of the systems management software." + ::= { storageManagement 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.2 + globalStatus OBJECT-TYPE + SYNTAX INTEGER + { + critical(1), + warning(2), + normal(3), + unknown(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Global health information for the subsystem managed by + the Storage Management software. This global status is + customized for HP OpenView. Other applications should + refer to the agentSystemGlobalStatus entry in the + globalData object group. + + Possible values: + 1: Critical + 2: Warning + 3: Normal + 4: Unknown" + ::= { storageManagement 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.3 + softwareManufacturer OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..32)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Manufacturer information for the Storage Management software." + ::= { storageManagement 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.4 + softwareProduct OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Product information for the Storage Management software." + ::= { storageManagement 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.5 + softwareDescription OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..128)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Product Description for the Storage Management software." + ::= { storageManagement 5 } + + +-- The Storage Management Information Management Information Base (MIB) +-- Group defines the properties that identify the Storage Management software SNMP agent. + -- 1.3.6.1.4.1.674.10893.1.20.100 + storageManagementInfo OBJECT IDENTIFIER ::= { storageManagement 100 } + + + -- 1.3.6.1.4.1.674.10893.1.20.100.1 + displayName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name of this management software for display purposes." + ::= { storageManagementInfo 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.100.2 + description OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "A short description of this management software." + ::= { storageManagementInfo 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.100.3 + agentVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the management software manufacturer." + ::= { storageManagementInfo 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.100.4 + agentVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. Refer to softwareVersion." + ::= { storageManagementInfo 4 } + + +-- The Global Data Management Information Base (MIB) Group defines the +-- properties that identify status information about system that the +-- Storage Management software is managing and about the Storage Management SNMP agent. + -- 1.3.6.1.4.1.674.10893.1.20.110 + globalData OBJECT IDENTIFIER ::= { storageManagement 110 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.1 + agentSystemGlobalStatus OBJECT-TYPE + SYNTAX INTEGER + { + normal(1), + warning(2), + nonCriticalError(3), + failure(4), + unknown(5) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. Please use the value: agentGlobalSystemStatus. + Note: Enumerated values have changed." + ::= { globalData 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.2 + agentLastGlobalStatus OBJECT-TYPE + SYNTAX INTEGER + { + normal(1), + warning(2), + nonCriticalError(3), + failure(4), + unknown(5) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. Please use the value: agentLastGlobalSystemStatus. + Note: Enumerated values have changed." + ::= { globalData 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.3 + agentTimeStamp OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The last time that the agent values have been updated. + Universal time in sec since UTC 1/1/70." + ::= { globalData 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.4 + agentGetTimeout OBJECT-TYPE + SYNTAX INTEGER (1..10000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Suggested timeout value in milliseconds for how long + the SNMP getter should wait while attempting to poll + the SNMP agent." + ::= { globalData 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.5 + agentModifiers OBJECT-TYPE + SYNTAX INTEGER (1..10000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Agent functional modifiers, when set the modifier is active. + Bit definitions: + Bit 3: agent in debug mode. + All other bits are product specific + " + ::= { globalData 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.6 + agentRefreshRate OBJECT-TYPE + SYNTAX INTEGER (1..10000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The rate, given in seconds, at which the cached data for SNMP is refreshed. + The default value is 300 seconds, or 5 minutes." + ::= { globalData 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.7 + agentHostname OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { globalData 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.8 + agentIPAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { globalData 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.9 + agentSoftwareStatus OBJECT-TYPE + SYNTAX INTEGER + { + databaseUp(1), + databaseDown(2) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { globalData 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.10 + agentSnmpVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. Refer to softwareVersion." + ::= { globalData 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.11 + agentMibVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Version of the Storage Management MIB." + ::= { globalData 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.12 + agentManagementSoftwareURLName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Universal Resource Locator (URL) of the systems management software." + ::= { globalData 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.13 + agentGlobalSystemStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Global health information for the subsystem managed by + the Storage Management software. This global status + should be used by applications other than HP OpenView. + HP OpenView should refer to the globalStatus in the root level object + group. This is a rollup for the entire agent including + any monitored devices. The status is intended to give + initiative to a snmp monitor to get further data when + this status is abnormal. + + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { globalData 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.14 + agentLastGlobalSystemStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The previous global status of the system managed by the Storage Management software. + + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { globalData 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.110.15 + agentSmartThermalShutdown OBJECT-TYPE + SYNTAX INTEGER + { + enabled(1), + disabled(2), + notApplicable(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates the status of smart thermal shutdown for PV220S and PV221S enclosures. + Possible values: + 1: Enabled + 2: Disabled" + ::= { globalData 15 } + + +-- The Physical Devices Management Information Base (MIB) group exposes +-- information about the devices managed by the Storage Management +-- software and their relationships to each other. +-- This group and all of its associated tables and objects are not +-- supported on Microsoft Windows Advanced Server Limited Edition +-- 64-bit operating system (Windows.Net-64) on a PE7150. + -- 1.3.6.1.4.1.674.10893.1.20.130 + physicalDevices OBJECT IDENTIFIER ::= { storageManagement 130 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1 + controllerTable OBJECT-TYPE + SYNTAX SEQUENCE OF ControllerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed RAID controllers. The number of entries + is related to number of RAID controllers discovered in the + system. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1 + controllerEntry OBJECT-TYPE + SYNTAX ControllerEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the table of RAID controllers. A row in this table cannot + be created or deleted by SNMP operations on columns of the table." + INDEX { controllerNumber } + ::= { controllerTable 1 } + + + ControllerEntry ::= + SEQUENCE { + controllerNumber + INTEGER, + controllerName + DisplayString, + controllerVendor + DisplayString, + controllerType + INTEGER, + controllerState + INTEGER, + controllerSeverity + INTEGER, + controllerRebuildRateInPercent + INTEGER, + controllerFWVersion + DisplayString, + controllerCacheSizeInMB + INTEGER, + controllerCacheSizeInBytes + INTEGER, + controllerPhysicalDeviceCount + INTEGER, + controllerLogicalDeviceCount + INTEGER, + controllerPartnerStatus + DisplayString, + controllerHostPortCount + INTEGER, + controllerMemorySizeInMB + INTEGER, + controllerMemorySizeInBytes + INTEGER, + controllerDriveChannelCount + INTEGER, + controllerFaultTolerant + INTEGER, + controllerC0Port0WWN + DisplayString, + controllerC0Port0Name + DisplayString, + controllerC0Port0ID + INTEGER, + controllerC0Target + INTEGER, + controllerC0Channel + INTEGER, + controllerC0OSController + DisplayString, + controllerC0BatteryState + INTEGER, + controllerC1Port0WWN + DisplayString, + controllerC1Port0Name + DisplayString, + controllerC1Port0ID + INTEGER, + controllerC1Target + INTEGER, + controllerC1Channel + INTEGER, + controllerC1OSController + INTEGER, + controllerC1BatteryState + INTEGER, + controllerNodeWWN + DisplayString, + controllerC0Port1WWN + DisplayString, + controllerC1Port1WWN + DisplayString, + controllerBatteryChargeCount + INTEGER, + controllerRollUpStatus + DellStatus, + controllerComponentStatus + DellStatus, + controllerNexusID + DisplayString, + controllerAlarmState + INTEGER, + controllerDriverVersion + DisplayString, + controllerPCISlot + DisplayString, + controllerClusterMode + INTEGER, + controllerMinFWVersion + DisplayString, + controllerMinDriverVersion + DisplayString, + controllerSCSIInitiatorID + INTEGER, + controllerChannelCount + INTEGER, + controllerReconstructRate + INTEGER, + controllerPatrolReadRate + INTEGER, + controllerBGIRate + INTEGER, + controllerCheckConsistencyRate + INTEGER, + controllerPatrolReadMode + INTEGER, + controllerPatrolReadState + INTEGER, + controllerPatrolReadIterations + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.1 + controllerNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this controller entry." + ::= { controllerEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.2 + controllerName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the controller in this subsystem as represented in Storage Management. + Includes the controller type and instance. + For example: Perc3/QC 1." + ::= { controllerEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.3 + controllerVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The controller's (re)seller's name." + ::= { controllerEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.4 + controllerType OBJECT-TYPE + SYNTAX INTEGER + { + scsi(1), + pv660F(2), + pv662F(3), + ide(4), + sata(5), + sas(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of this controller: + 1: SCSI + 2: PV660F + 3: PV662F + 4: IDE (Integrated/Intelligent Drive Electronics) + 5: SATA (Serial Advanced Technology Attachment) + 6: SAS (Serial Attached SCSI)" + ::= { controllerEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.5 + controllerState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + online(3), + offline(4), + degraded(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the controller's subsystem + (which includes any devices connected to it.) + Possible states: + 0: Unknown + 1: Ready + 2: Failed + 3: Online + 4: Offline + 6: Degraded" + ::= { controllerEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.6 + controllerSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { controllerEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.7 + controllerRebuildRateInPercent OBJECT-TYPE + SYNTAX INTEGER (0..100) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The percent of the compute cycles dedicated to rebuilding + failed array disks. " + ::= { controllerEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.8 + controllerFWVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The controller's current firmware version." + ::= { controllerEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.9 + controllerCacheSizeInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The controller's current amount of cache memory in megabytes. + If this size is 0, it is less than a megabyte." + ::= { controllerEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.10 + controllerCacheSizeInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The controller's current amount of cache memory that is less than a megabyte. This combined with the + controllerCacheSizeInMB will be the total amount of memory." + ::= { controllerEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.11 + controllerPhysicalDeviceCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of physical devices on the controller channel including both disks and the controller." + ::= { controllerEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.12 + controllerLogicalDeviceCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of virtual disks on the controller." + ::= { controllerEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.13 + controllerPartnerStatus OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { controllerEntry 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.14 + controllerHostPortCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.15 + controllerMemorySizeInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Size of memory in megabytes on the controller. If this size is 0, it is less than a megabyte. This attribute is only supported on Adaptec controllers. " + ::= { controllerEntry 15 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.16 + controllerMemorySizeInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Size of memory on the controller that is less than a megabyte. This combined with the controllerMemorySizeInMB + will be the total size of the memory. This attribute is only supported on Adaptec controllers." + ::= { controllerEntry 16 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.17 + controllerDriveChannelCount OBJECT-TYPE + SYNTAX INTEGER (1..4) + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 17 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.18 + controllerFaultTolerant OBJECT-TYPE + SYNTAX INTEGER { yes(1) } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 18 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.19 + controllerC0Port0WWN OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 19 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.20 + controllerC0Port0Name OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 20 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.21 + controllerC0Port0ID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 21 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.22 + controllerC0Target OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management. + " + ::= { controllerEntry 22 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.23 + controllerC0Channel OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 23 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.24 + controllerC0OSController OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 24 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.25 + controllerC0BatteryState OBJECT-TYPE + SYNTAX INTEGER + { + ok(1), + failed(2), + reconditioning(7), + high(9), + low(10), + charging(12), + missing(21) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management. " + ::= { controllerEntry 25 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.26 + controllerC1Port0WWN OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 26 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.27 + controllerC1Port0Name OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 27 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.28 + controllerC1Port0ID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 28 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.29 + controllerC1Target OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 29 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.30 + controllerC1Channel OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 30 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.31 + controllerC1OSController OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 31 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.32 + controllerC1BatteryState OBJECT-TYPE + SYNTAX INTEGER + { + ok(1), + failed(2), + reconditioning(7), + high(9), + low(10), + charging(12), + missing(21) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management. " + ::= { controllerEntry 32 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.33 + controllerNodeWWN OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 33 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.34 + controllerC0Port1WWN OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 34 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.35 + controllerC1Port1WWN OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 35 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.36 + controllerBatteryChargeCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. + Fibre channel is not supported in Storage Management." + ::= { controllerEntry 36 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.37 + controllerRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the controller state. + This is the combined status of the controller and its components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { controllerEntry 37 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.38 + controllerComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the controller itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { controllerEntry 38 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.39 + controllerNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this controller." + ::= { controllerEntry 39 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.40 + controllerAlarmState OBJECT-TYPE + SYNTAX INTEGER + { + enabled(1), + disabled(2), + not-applicable(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "State, or setting for the controller's alarm. + Possible values: + 1: Enabled + 2: Disabled + 3: Not Applicable" + ::= { controllerEntry 40 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.41 + controllerDriverVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Currently installed driver version for this controller." + ::= { controllerEntry 41 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.42 + controllerPCISlot OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The PCI slot number or embedded number for controllers on the motherboard. + " + ::= { controllerEntry 42 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.43 + controllerClusterMode OBJECT-TYPE + SYNTAX INTEGER + { + enabled(1), + disabled(2), + active(3), + notApplicable(99) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identifies if the controller is in cluster mode. + Possible values: + 1 : Enabled + 2 : Disabled + 3 : Active (enabled and active) + 99: Not Applicable + " + ::= { controllerEntry 43 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.44 + controllerMinFWVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minimum firmware version for Storage Management to support the controller. + " + ::= { controllerEntry 44 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.45 + controllerMinDriverVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minimum driver version for Storage Management to support the controller. + " + ::= { controllerEntry 45 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.46 + controllerSCSIInitiatorID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SCSI ID of the initiator." + ::= { controllerEntry 46 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.47 + controllerChannelCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of channels on the controller." + ::= { controllerEntry 47 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.48 + controllerReconstructRate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The rate for reconstruct on the controller. + " + ::= { controllerEntry 48 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.49 + controllerPatrolReadRate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The rate for patrol read on the controller. + " + ::= { controllerEntry 49 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.50 + controllerBGIRate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The rate for background initialization on the controller. + " + ::= { controllerEntry 50 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.51 + controllerCheckConsistencyRate OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The rate for check consistency on the controller. + " + ::= { controllerEntry 51 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.52 + controllerPatrolReadMode OBJECT-TYPE + SYNTAX INTEGER + { + automatic(1), + manual(2), + disabled(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identifies the patrol read mode. + Possible values: + 1: Automatic (enabled) + 2: Manual (enabled) + 3: Disabled + " + ::= { controllerEntry 52 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.53 + controllerPatrolReadState OBJECT-TYPE + SYNTAX INTEGER + { + stopped(1), + ready(2), + active(4), + aborted(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of the patrol read. + 1: Stopped - not running + 2: Ready - ready to start + 4: Active - is running + 8: Aborted - has aborted + " + ::= { controllerEntry 53 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.1.1.54 + controllerPatrolReadIterations OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times Patrol Read has been run on this controller." + ::= { controllerEntry 54 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2 + channelTable OBJECT-TYPE + SYNTAX SEQUENCE OF ChannelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of controller channels. The number of entries is + related to the number of channels supported by a RAID + controller. Perc2 RAID controller supports a max of 4 + channels per controller. The maximum number of entries is + implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1 + channelEntry OBJECT-TYPE + SYNTAX ChannelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the channel table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { channelNumber } + ::= { channelTable 1 } + + + ChannelEntry ::= + SEQUENCE { + channelNumber + INTEGER, + channelName + DisplayString, + channelState + INTEGER, + channelSeverity + INTEGER, + channelTermination + INTEGER, + channelSCSIID + INTEGER, + channelRollUpStatus + DellStatus, + channelComponentStatus + DellStatus, + channelNexusID + DisplayString, + channelDataRate + DisplayString, + channelBusType + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.1 + channelNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this channel entry." + ::= { channelEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.2 + channelName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the channel as represented in Storage Management. + The name will include the word channel and the instance. + For example: Channel 1" + ::= { channelEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.3 + channelState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + online(3), + offline(4), + degraded(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the channel. + Possible states: + 0: Unknown + 1: Ready - The I/O has resumed. + 2: Failed + 3: Online + 4: Offline - The I/O has paused. + 6: Degraded + " + ::= { channelEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.4 + channelSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { channelEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.5 + channelTermination OBJECT-TYPE + SYNTAX INTEGER + { + wide(1), + narrow(2), + notTerminated(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of SCSI termination on this channel. + Termination is required for proper operation of this channel. + + 1: Wide Termination (16 bit) + 2: Narrow Termination (8 bit) + 3: Not Terminated" + ::= { channelEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.6 + channelSCSIID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SCSI ID of the controller to which the channel belongs." + ::= { channelEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.7 + channelRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the channel state. + This is the combined status of the channel and its + components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { channelEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.8 + channelComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the channel itself with out without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { channelEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.9 + channelNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this channel." + ::= { channelEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.10 + channelDataRate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The data rate (SCSI speed) of the channel. Example: Ultra 320M SCSI" + ::= { channelEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.2.1.11 + channelBusType OBJECT-TYPE + SYNTAX INTEGER + { + scsi(1), + ide(2), + fibreChannel(3), + ssa(4), + usb(6), + sata(7), + sas(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The bus type of the channel. + Possible values: + 1: SCSI + 2: IDE + 3: Fibre Channel + 4: SSA + 6: USB + 7: SATA + 8: SAS" + ::= { channelEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3 + enclosureTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosureEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Enclosures. The number of entries is + related to number of enclosures discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1 + enclosureEntry OBJECT-TYPE + SYNTAX EnclosureEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Enclosure table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { enclosureNumber } + ::= { enclosureTable 1 } + + + EnclosureEntry ::= + SEQUENCE { + enclosureNumber + INTEGER, + enclosureName + DisplayString, + enclosureVendor + DisplayString, + enclosureState + INTEGER, + enclosureSeverity + INTEGER, + enclosureID + INTEGER, + enclosureProcessorVersion + DisplayString, + enclosureServiceTag + DisplayString, + enclosureAssetTag + DisplayString, + enclosureAssetName + DisplayString, + enclosureSplitBusPartNumber + DisplayString, + enclosureProductID + DisplayString, + enclosureKernelVersion + DisplayString, + enclosureESM1PartNumber + DisplayString, + enclosureESM2PartNumber + DisplayString, + enclosureType + INTEGER, + enclosureProcessor2Version + DisplayString, + enclosureConfig + INTEGER, + enclosureChannelNumber + INTEGER, + enclosureAlarm + INTEGER, + enclosureBackplanePartNumber + DisplayString, + enclosureSCSIID + INTEGER, + enclosureRollUpStatus + DellStatus, + enclosureComponentStatus + DellStatus, + enclosureNexusID + DisplayString, + enclosureFirmwareVersion + DisplayString, + enclosureSCSIRate + DisplayString, + enclosurePartNumber + DisplayString, + enclosureSerialNumber + DisplayString, + enclosureSASAddress + DisplayString + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.1 + enclosureNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of the enclosure entry." + ::= { enclosureEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.2 + enclosureName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The enclosure's name as represented in Storage Management." + ::= { enclosureEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.3 + enclosureVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The enclosure's (re)seller's name." + ::= { enclosureEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.4 + enclosureState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + online(3), + offline(4), + degraded(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the enclosure + (which includes any devices connected to it.) + Possible states: + 0: Unknown + 1: Ready + 2: Failed + 3: Online + 4: Offline + 6: Degraded" + ::= { enclosureEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.5 + enclosureSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { enclosureEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.6 + enclosureID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SCSI address of the processor." + ::= { enclosureEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.7 + enclosureProcessorVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { enclosureEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.8 + enclosureServiceTag OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Enclosure identification used when consulting customer support." + ::= { enclosureEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.9 + enclosureAssetTag OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "User definable asset tag for the enclosure." + ::= { enclosureEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.10 + enclosureAssetName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "User definable asset name of the enclosure." + ::= { enclosureEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.11 + enclosureSplitBusPartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The enclosure's split bus part number." + ::= { enclosureEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.12 + enclosureProductID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The enclosure's product identification. This also corresponds to the enclosure type. + " + ::= { enclosureEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.13 + enclosureKernelVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + Refer to enclosureFirmwareVersion for the firmware version of the enclosure." + ::= { enclosureEntry 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.14 + enclosureESM1PartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { enclosureEntry 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.15 + enclosureESM2PartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { enclosureEntry 15 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.16 + enclosureType OBJECT-TYPE + SYNTAX INTEGER + { + internal(1), + dELLPV200SPV201S(2), + dELLPV210SPV211S(3), + dELLPV220SPV221S(4), + dELLPV660F(5), + dELLPV224F(6), + dELLPV660F224F(7), + md1000(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of this enclosure. + Possible values: + 1: Internal + 2: Dell PV200S (PV201S) + 3: Dell PV210S (PV211S) + 4: Dell PV220S (PV221S) + 5: Dell PV660F + 6: Dell PV224F + 7: Dell PV660F / PV224F + 8: Dell MD1000 + 9: Dell MD1120" + ::= { enclosureEntry 16 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.17 + enclosureProcessor2Version OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { enclosureEntry 17 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.18 + enclosureConfig OBJECT-TYPE + SYNTAX INTEGER + { + joined(1), + splitBus(2), + clustered(3), + unified(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current configuration of the enclosure's backplane. + Possible values: + 1: Joined + 2: Split Bus + 3: Clustered + 4: Unified" + ::= { enclosureEntry 18 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.19 + enclosureChannelNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The channel number, or bus, to which the enclosure is connected." + ::= { enclosureEntry 19 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.20 + enclosureAlarm OBJECT-TYPE + SYNTAX INTEGER + { + disabled(1), + enabled(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current status of the enclosure's alarm (PV220S, and PV221S only.) + Possible values: + 1: Disabled + 2: Enabled" + ::= { enclosureEntry 20 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.21 + enclosureBackplanePartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The part number of the enclosure's backplane." + ::= { enclosureEntry 21 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.22 + enclosureSCSIID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SCSI ID of the controller to which this enclosure is attached." + ::= { enclosureEntry 22 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.23 + enclosureRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the enclosure state. + This is the combined status of the enclosure and its components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { enclosureEntry 23 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.24 + enclosureComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the enclosure itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { enclosureEntry 24 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.25 + enclosureNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this enclosure." + ::= { enclosureEntry 25 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.26 + enclosureFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The firmware version of the enclosure." + ::= { enclosureEntry 26 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.27 + enclosureSCSIRate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Actual SCSI rate in the enclosure. + " + ::= { enclosureEntry 27 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.28 + enclosurePartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The part number of the enclosure. + " + ::= { enclosureEntry 28 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.29 + enclosureSerialNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Serial number of the enclosure. + " + ::= { enclosureEntry 29 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.3.1.30 + enclosureSASAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The specified SAS address if this is a SAS enclosure. " + ::= { enclosureEntry 30 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4 + arrayDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF ArrayDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Array Disks. The number of entries is + related to number of Array Disks discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1 + arrayDiskEntry OBJECT-TYPE + SYNTAX ArrayDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Array Disk table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { arrayDiskNumber } + ::= { arrayDiskTable 1 } + + + ArrayDiskEntry ::= + SEQUENCE { + arrayDiskNumber + INTEGER, + arrayDiskName + DisplayString, + arrayDiskVendor + DisplayString, + arrayDiskState + INTEGER, + arrayDiskSeverity + INTEGER, + arrayDiskProductID + DisplayString, + arrayDiskSerialNo + DisplayString, + arrayDiskRevision + DisplayString, + arrayDiskEnclosureID + DisplayString, + arrayDiskChannel + INTEGER, + arrayDiskLengthInMB + INTEGER, + arrayDiskLengthInBytes + INTEGER, + arrayDiskLargestContiguousFreeSpaceInMB + INTEGER, + arrayDiskLargestContiguousFreeSpaceInBytes + INTEGER, + arrayDiskTargetID + INTEGER, + arrayDiskLunID + INTEGER, + arrayDiskUsedSpaceInMB + INTEGER, + arrayDiskUsedSpaceInBytes + INTEGER, + arrayDiskFreeSpaceInMB + INTEGER, + arrayDiskFreeSpaceInBytes + INTEGER, + arrayDiskBusType + INTEGER, + arrayDiskSpareState + INTEGER, + arrayDiskRollUpStatus + DellStatus, + arrayDiskComponentStatus + DellStatus, + arrayDiskDeviceName + DisplayString, + arrayDiskNexusID + DisplayString, + arrayDiskPartNumber + DisplayString, + arrayDiskSASAddress + DisplayString, + arrayDiskNegotiatedSpeed + INTEGER, + arrayDiskCapableSpeed + INTEGER, + arrayDiskSmartAlertIndication + INTEGER, + arrayDiskManufactureDay + DisplayString, + arrayDiskManufactureWeek + DisplayString, + arrayDiskManufactureYear + DisplayString, + arrayDiskMediaType + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.1 + arrayDiskNumber OBJECT-TYPE + SYNTAX INTEGER (1..1000000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this array disk entry." + ::= { arrayDiskEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.2 + arrayDiskName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the array disk as represented in Storage Management." + ::= { arrayDiskEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.3 + arrayDiskVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The array disk's manufacturer's name." + ::= { arrayDiskEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.4 + arrayDiskState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + online(3), + offline(4), + degraded(6), + recovering(7), + removed(11), + resynching(15), + rebuild(24), + noMedia(25), + formatting(26), + diagnostics(28), + predictiveFailure(34), + initializing(35), + foreign(39), + clear(40), + unsupported(41), + incompatible(53) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the array disk. + Possible states: + 0: Unknown + 1: Ready - Available for use, but no RAID configuration has been assigned. + 2: Failed - Not operational. + 3: Online - Operational. RAID configuration has been assigned. + 4: Offline - The drive is not available to the RAID controller. + 6: Degraded - Refers to a fault-tolerant array/virtual disk that has a failed disk. + 7: Recovering - Refers to state of recovering from bad blocks on disks. + 11: Removed - Indicates that array disk has been removed. + 15: Resynching - Indicates one of the following types of disk operations: Transform Type, Reconfiguration, and Check Consistency. + 24: Rebuild + 25: No Media - CD-ROM or removable disk has no media. + 26: Formatting - In the process of formatting. + 28: Diagnostics - Diagnostics are running. + 34: Predictive failure + 35: Initializing: Applies only to virtual disks on PERC, PERC 2/SC, and PERC 2/DC controllers. + 39: Foreign + 40: Clear + 41: Unsupported + 53: Incompatible + + " + ::= { arrayDiskEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.5 + arrayDiskSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { arrayDiskEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.6 + arrayDiskProductID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The model number of the array disk." + ::= { arrayDiskEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.7 + arrayDiskSerialNo OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The array disk's unique identification number from the manufacturer. + " + ::= { arrayDiskEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.8 + arrayDiskRevision OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The firmware version of the array disk." + ::= { arrayDiskEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.9 + arrayDiskEnclosureID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SCSI ID of the enclosure processor to which this array disk belongs." + ::= { arrayDiskEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.10 + arrayDiskChannel OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The bus to which this array disk is connected." + ::= { arrayDiskEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.11 + arrayDiskLengthInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in megabytes of the array disk. If this size is 0, it is smaller than a megabyte." + ::= { arrayDiskEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.12 + arrayDiskLengthInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the array disk in bytes that is less than + a megabyte. This size plus the arrayDiskLengthInMB is + the total size of the array disk." + ::= { arrayDiskEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.13 + arrayDiskLargestContiguousFreeSpaceInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in megabytes of the largest contiguous free space + on the array disk. If this size is 0, it is less than a megabyte." + ::= { arrayDiskEntry 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.14 + arrayDiskLargestContiguousFreeSpaceInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of the largest contiguous free space on this + array disk in bytes that is less than a megabyte. + This size plus the arrayDiskLargestContiguousFreeSpaceInMB + is the total size of the largest contiguous free space on + the array disk." + ::= { arrayDiskEntry 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.15 + arrayDiskTargetID OBJECT-TYPE + SYNTAX INTEGER (0..15) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The SCSI target ID which this array disk is assigned. " + ::= { arrayDiskEntry 15 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.16 + arrayDiskLunID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The array disk's logical unit number. " + ::= { arrayDiskEntry 16 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.17 + arrayDiskUsedSpaceInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount in megabytes of the used space on the array + disk. If this size is 0, it is smaller than a megabyte." + ::= { arrayDiskEntry 17 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.18 + arrayDiskUsedSpaceInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in bytes of the used space on the array disk + that is smaller than a megabyte. This size plus the + arrayDiskUsedSpaceInMB is the total amount of used space + on the array disk." + ::= { arrayDiskEntry 18 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.19 + arrayDiskFreeSpaceInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The amount in megabytes of the free space on the array + disk. If this size is 0, it is smaller than a megabyte." + ::= { arrayDiskEntry 19 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.20 + arrayDiskFreeSpaceInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size in bytes of the free space on the array disk + that is smaller than a megabyte. This size plus the + arrayDiskFreeSpaceInMB is the total amount of free space + on the array disk." + ::= { arrayDiskEntry 20 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.21 + arrayDiskBusType OBJECT-TYPE + SYNTAX INTEGER + { + scsi(1), + ide(2), + fibre(3), + ssa(4), + usb(6), + sata(7), + sas(8) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The bus type of the array disk. + Possible values: + 1: SCSI + 2: IDE + 3: Fibre Channel + 4: SSA + 6: USB + 7: SATA + 8: SAS" + ::= { arrayDiskEntry 21 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.22 + arrayDiskSpareState OBJECT-TYPE + SYNTAX INTEGER + { + memberVD(1), + memberDG(2), + globalHotSpare(3), + dedicatedHotSpare(4), + notASpare(5), + notApplicable(99) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the array disk as a spare. + Possible states: + 1 : disk is a member of a virtual disk + 2 : disk is a member of a disk group + 3 : disk is a global hot spare + 4 : disk is a dedicated hot spare + 5 : not a spare + 99: not applicable" + ::= { arrayDiskEntry 22 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.23 + arrayDiskRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the array disk state. + This is the combined status of the array disk and its components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { arrayDiskEntry 23 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.24 + arrayDiskComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the array disk itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { arrayDiskEntry 24 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.25 + arrayDiskDeviceName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The operating system device name for this disk. This property is only applicable to array disks attached to a RAID controller." + ::= { arrayDiskEntry 25 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.26 + arrayDiskNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this array disk." + ::= { arrayDiskEntry 26 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.27 + arrayDiskPartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The part number of the disk. + " + ::= { arrayDiskEntry 27 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.28 + arrayDiskSASAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The specified SAS address if this is a SAS disk. + " + ::= { arrayDiskEntry 28 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.29 + arrayDiskNegotiatedSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The speed at which the drive is actually running in MPS (megabytes per second). + " + ::= { arrayDiskEntry 29 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.30 + arrayDiskCapableSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum speed at which the drive is capable of negotiating in MPS (megabytes per second). + " + ::= { arrayDiskEntry 30 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.31 + arrayDiskSmartAlertIndication OBJECT-TYPE + SYNTAX INTEGER + { + no(1), + yes(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicated whether the disk has received a predictive failure. + Possible values: + 1: No - disk has not received a predictive failure alert + 2: Yes - disk has received a predictive failure alert" + ::= { arrayDiskEntry 31 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.32 + arrayDiskManufactureDay OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The day of the week (1=Sunday thru 7=Saturday) on which this disk was manufactured." + ::= { arrayDiskEntry 32 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.33 + arrayDiskManufactureWeek OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The week (1 thru 53) in which this disk was manufactured." + ::= { arrayDiskEntry 33 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.34 + arrayDiskManufactureYear OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The four digit year in which this disk was manufactured." + ::= { arrayDiskEntry 34 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.4.1.35 + arrayDiskMediaType OBJECT-TYPE + SYNTAX INTEGER + { + unknown(1), + hdd(2), + ssd(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Media type of the array disk. + Possible Values: + 1:unknown + 2:hdd + 3:ssd" + ::= { arrayDiskEntry 35 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5 + arrayDiskEnclosureConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF ArrayDiskEnclosureConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between array disks, their enclosure, + and their associated controller. For each object in the table, its + object number corresponds to an instance number in the appropriate + MIB table for that object where all of the object properties can be found. + Note: Only array disks that are part of an enclosure will be listed + in this table. Backplanes are considered enclosures by + Storage Management." + ::= { physicalDevices 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1 + arrayDiskEnclosureConnectionEntry OBJECT-TYPE + SYNTAX ArrayDiskEnclosureConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Array Disk Enclosure Connection table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { arrayDiskEnclosureConnectionNumber } + ::= { arrayDiskEnclosureConnectionTable 1 } + + + ArrayDiskEnclosureConnectionEntry ::= + SEQUENCE { + arrayDiskEnclosureConnectionNumber + INTEGER, + arrayDiskEnclosureConnectionArrayDiskName + DisplayString, + arrayDiskEnclosureConnectionArrayDiskNumber + INTEGER, + arrayDiskEnclosureConnectionEnclosureName + DisplayString, + arrayDiskEnclosureConnectionEnclosureNumber + INTEGER, + arrayDiskEnclosureConnectionControllerName + DisplayString, + arrayDiskEnclosureConnectionControllerNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1.1 + arrayDiskEnclosureConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..1000000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this array disk connection entry. + This table shows the array disk to enclosure relationship." + ::= { arrayDiskEnclosureConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1.2 + arrayDiskEnclosureConnectionArrayDiskName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the array disk in this connection as represented in Storage Management." + ::= { arrayDiskEnclosureConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1.3 + arrayDiskEnclosureConnectionArrayDiskNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the array disk in the arrayDiskTable + in this connection." + ::= { arrayDiskEnclosureConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1.4 + arrayDiskEnclosureConnectionEnclosureName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the enclosure as represented in Storage Management + to which this array disk belongs. + " + ::= { arrayDiskEnclosureConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1.5 + arrayDiskEnclosureConnectionEnclosureNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number in the enclosureTable of the enclosure + to which this array disk belongs." + ::= { arrayDiskEnclosureConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1.6 + arrayDiskEnclosureConnectionControllerName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the controller as represented in Storage Management + to which this array disk is connected." + ::= { arrayDiskEnclosureConnectionEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.5.1.7 + arrayDiskEnclosureConnectionControllerNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number in the controllerTable of the controller + to which this array disk is connected." + ::= { arrayDiskEnclosureConnectionEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6 + arrayDiskChannelConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF ArrayDiskChannelConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between array disks, their channel, and + their associated controller. For each object in the table, its + object number corresponds to an instance number in the appropriate + MIB table for that object where all of the object properties can be + found. + Note: Only array disks that are NOT part of an enclosure will be + listed in this table. Backplanes are considered enclosures by + Storage Management." + ::= { physicalDevices 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1 + arrayDiskChannelConnectionEntry OBJECT-TYPE + SYNTAX ArrayDiskChannelConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Array Disk Channel Connection table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { arrayDiskChannelConnectionNumber } + ::= { arrayDiskChannelConnectionTable 1 } + + + ArrayDiskChannelConnectionEntry ::= + SEQUENCE { + arrayDiskChannelConnectionNumber + INTEGER, + arrayDiskChannelConnectionArrayDiskName + DisplayString, + arrayDiskChannelConnectionArrayDiskNumber + INTEGER, + arrayDiskChannelConnectionChannelName + DisplayString, + arrayDiskChannelConnectionChannelNumber + INTEGER, + arrayDiskChannelConnectionControllerName + DisplayString, + arrayDiskChannelConnectionControllerNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1.1 + arrayDiskChannelConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..1000000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this array disk connection entry. + This table shows the array disk to SCSI channel relationship. + There is no enclosure service processor associated with these + array disks." + ::= { arrayDiskChannelConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1.2 + arrayDiskChannelConnectionArrayDiskName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the array disk in this connection + as represented in Storage Management." + ::= { arrayDiskChannelConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1.3 + arrayDiskChannelConnectionArrayDiskNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the array disk in the arrayDiskTable + in this connection." + ::= { arrayDiskChannelConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1.4 + arrayDiskChannelConnectionChannelName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the channel as represented in Storage Management + to which is array disk is connected." + ::= { arrayDiskChannelConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1.5 + arrayDiskChannelConnectionChannelNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the channel in the channelTable to + which this array disk is connected." + ::= { arrayDiskChannelConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1.6 + arrayDiskChannelConnectionControllerName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the controller as represented in Storage Management + to which this array disk is connected." + ::= { arrayDiskChannelConnectionEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.6.1.7 + arrayDiskChannelConnectionControllerNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number in the controllerTable of the controller + to which this array disk is connected." + ::= { arrayDiskChannelConnectionEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7 + fanTable OBJECT-TYPE + SYNTAX SEQUENCE OF FanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Fans. The number of entries is + related to number of Fans discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1 + fanEntry OBJECT-TYPE + SYNTAX FanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Fan table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { fanNumber } + ::= { fanTable 1 } + + + FanEntry ::= + SEQUENCE { + fanNumber + INTEGER, + fanName + DisplayString, + fanVendor + DisplayString, + fanState + INTEGER, + fanSeverity + INTEGER, + fanProbeUnit + DisplayString, + fanProbeMinWarning + DisplayString, + fanProbeMinCritical + DisplayString, + fanProbeMaxWarning + DisplayString, + fanProbeMaxCritical + DisplayString, + fanProbeCurrValue + DisplayString, + fan1PartNumber + DisplayString, + fan2PartNumber + DisplayString, + fanRollUpStatus + DellStatus, + fanComponentStatus + DellStatus, + fanNexusID + DisplayString, + fanRevision + DisplayString + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.1 + fanNumber OBJECT-TYPE + SYNTAX INTEGER (1..1000000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this fan entry." + ::= { fanEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.2 + fanName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The fan's name as represented in Storage Management." + ::= { fanEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.3 + fanVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The fan's (re)seller's name." + ::= { fanEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.4 + fanState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + degraded(6), + removed(11), + missing(21) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the fan. + Possible states: + 0: Unknown + 1: Ready + 2: Failed + 3: Online + 4: Offline + 6: Degraded + 21: Missing" + ::= { fanEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.5 + fanSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { fanEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.6 + fanProbeUnit OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management." + ::= { fanEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.7 + fanProbeMinWarning OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This setting is not supported + by fans managed under Storage Management." + ::= { fanEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.8 + fanProbeMinCritical OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This setting is not supported + by fans managed under Storage Management." + ::= { fanEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.9 + fanProbeMaxWarning OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This setting is not supported + by fans managed under Storage Management." + ::= { fanEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.10 + fanProbeMaxCritical OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This setting is not supported + by fans managed under Storage Management." + ::= { fanEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.11 + fanProbeCurrValue OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current speed of the fan. + " + ::= { fanEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.12 + fan1PartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The part number of the fan in the enclosure." + ::= { fanEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.13 + fan2PartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This setting is not supported + by fans managed under Storage Management." + ::= { fanEntry 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.14 + fanRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the fan state. + This is the combined status of the fan and its components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { fanEntry 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.15 + fanComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the fan itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { fanEntry 15 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.16 + fanNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this fan." + ::= { fanEntry 16 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.7.1.17 + fanRevision OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The revision number of the fan in the enclosure." + ::= { fanEntry 17 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.8 + fanConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF FanConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between each fan on + the managed node and its enclosure. Each enclosure + number in the table corresponds to that enclosure instance + in the Enclosure Table." + ::= { physicalDevices 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.8.1 + fanConnectionEntry OBJECT-TYPE + SYNTAX FanConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Fan Connection table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { fanConnectionNumber } + ::= { fanConnectionTable 1 } + + + FanConnectionEntry ::= + SEQUENCE { + fanConnectionNumber + INTEGER, + fanConnectionFanName + DisplayString, + fanConnectionFanNumber + INTEGER, + fanConnectionEnclosureName + DisplayString, + fanConnectionEnclosureNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.8.1.1 + fanConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this fan connection entry." + ::= { fanConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.8.1.2 + fanConnectionFanName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the fan in this connection as represented in Storage Management." + ::= { fanConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.8.1.3 + fanConnectionFanNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the fan in the fanTable in this connection." + ::= { fanConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.8.1.4 + fanConnectionEnclosureName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the enclosure as represented in Storage Management + to which this fan belongs." + ::= { fanConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.8.1.5 + fanConnectionEnclosureNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the enclosure in the enclosureTable + to which this fan belongs." + ::= { fanConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9 + powerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerSupplyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Power Supplies. The number of entries is + related to number of Power Supplies discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1 + powerSupplyEntry OBJECT-TYPE + SYNTAX PowerSupplyEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Power Supply table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { powerSupplyNumber } + ::= { powerSupplyTable 1 } + + + PowerSupplyEntry ::= + SEQUENCE { + powerSupplyNumber + INTEGER, + powerSupplyName + DisplayString, + powerSupplyVendor + DisplayString, + powerSupplyState + INTEGER, + powerSupplySeverity + INTEGER, + powerSupply1PartNumber + DisplayString, + powerSupply2PartNumber + DisplayString, + powerSupplyRollUpStatus + DellStatus, + powerSupplyComponentStatus + DellStatus, + powerSupplyNexusID + DisplayString, + powerSupplyRevision + DisplayString + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.1 + powerSupplyNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this power supply entry." + ::= { powerSupplyEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.2 + powerSupplyName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The power supply's name as represented in Storage Management." + ::= { powerSupplyEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.3 + powerSupplyVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The power supply's (re)seller's name." + ::= { powerSupplyEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.4 + powerSupplyState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + notInstalled(5), + degraded(6), + removed(11), + missing(21) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the power supply. + Possible states: + 0 : Unknown + 1 : Ready + 2 : Failed + 5 : Not Installed + 6 : Degraded + 11: Removed + 21: Missing" + ::= { powerSupplyEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.5 + powerSupplySeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { powerSupplyEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.6 + powerSupply1PartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The part number of the power supply of the enclosure." + ::= { powerSupplyEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.7 + powerSupply2PartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This setting is not supported + by power supplies managed under Storage Management." + ::= { powerSupplyEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.8 + powerSupplyRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the power supply state. + This is the combined status of the power supply and its + components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { powerSupplyEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.9 + powerSupplyComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the power supply itself without the + propegation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { powerSupplyEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.10 + powerSupplyNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this power supply." + ::= { powerSupplyEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.9.1.11 + powerSupplyRevision OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The revision number of the power supply in the enclosure." + ::= { powerSupplyEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.10 + powerSupplyConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF PowerSupplyConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between each power + supply on the managed node and its enclosure. Each + enclosure number in the table corresponds to that + enclosure instance in the Enclosure Table." + ::= { physicalDevices 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.10.1 + powerSupplyConnectionEntry OBJECT-TYPE + SYNTAX PowerSupplyConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Power Supply Connection table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { powerSupplyConnectionNumber } + ::= { powerSupplyConnectionTable 1 } + + + PowerSupplyConnectionEntry ::= + SEQUENCE { + powerSupplyConnectionNumber + INTEGER, + powerSupplyConnectionPowersupplyName + DisplayString, + powerSupplyConnectionPowersupplyNumber + INTEGER, + powerSupplyConnectionEnclosureName + DisplayString, + powerSupplyConnectionEnclosureNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.10.1.1 + powerSupplyConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this power supply connection entry." + ::= { powerSupplyConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.10.1.2 + powerSupplyConnectionPowersupplyName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the power supply in this connection + as represented in Storage Management." + ::= { powerSupplyConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.10.1.3 + powerSupplyConnectionPowersupplyNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This instance number in the powersupplyTable + of the power supply in this connection." + ::= { powerSupplyConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.10.1.4 + powerSupplyConnectionEnclosureName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the enclosure to which this power supply is + connected as represented in Storage Management." + ::= { powerSupplyConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.10.1.5 + powerSupplyConnectionEnclosureNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the enclosure in the enclosureTable + to which this power supply is connected." + ::= { powerSupplyConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11 + temperatureProbeTable OBJECT-TYPE + SYNTAX SEQUENCE OF TemperatureProbeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Temperature Probes. The number of entries is + related to number of Temperature Probes discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1 + temperatureProbeEntry OBJECT-TYPE + SYNTAX TemperatureProbeEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Temperature Probe table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { temperatureProbeNumber } + ::= { temperatureProbeTable 1 } + + + TemperatureProbeEntry ::= + SEQUENCE { + temperatureProbeNumber + INTEGER, + temperatureProbeName + DisplayString, + temperatureProbeVendor + DisplayString, + temperatureProbeState + INTEGER, + temperatureProbeSeverity + INTEGER, + temperatureProbeUnit + DisplayString, + temperatureProbeMinWarning + INTEGER, + temperatureProbeMinCritical + INTEGER, + temperatureProbeMaxWarning + INTEGER, + temperatureProbeMaxCritical + INTEGER, + temperatureProbeCurValue + INTEGER, + temperatureProbeRollUpStatus + DellStatus, + temperatureProbeComponentStatus + DellStatus, + temperatureProbeNexusID + DisplayString + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.1 + temperatureProbeNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this temperature probe entry." + ::= { temperatureProbeEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.2 + temperatureProbeName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name of this temperature probe as represented in Storage Management." + ::= { temperatureProbeEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.3 + temperatureProbeVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Temperature probe's (re)seller's name." + ::= { temperatureProbeEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.4 + temperatureProbeState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + offline(4), + degraded(6), + inactive(9), + missing(21) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the temperature probe. + Possible states: + 0: Unknown + 1: Ready + 2: Failed (Minimum Failure Threshold Exceeded, + Maximum Failure Threshold Exceeded) + 4: Offline + 6: Degraded (Minimum Warning Threshold Exceeded, + Maximum Warning Threshold Exceeded) + 9: Inactive + 21: Missing" + ::= { temperatureProbeEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.5 + temperatureProbeSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { temperatureProbeEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.6 + temperatureProbeUnit OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The units that will be used to display temperatures for this + temperature probe." + ::= { temperatureProbeEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.7 + temperatureProbeMinWarning OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minimum temperature that will force the probe into + a warning state." + ::= { temperatureProbeEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.8 + temperatureProbeMinCritical OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The minimum temperature that will force the probe into + an error state." + ::= { temperatureProbeEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.9 + temperatureProbeMaxWarning OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum temperature that will force the probe into + a warning state." + ::= { temperatureProbeEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.10 + temperatureProbeMaxCritical OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum temperature that will force the probe into + an error state." + ::= { temperatureProbeEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.11 + temperatureProbeCurValue OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current temperature of this probe." + ::= { temperatureProbeEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.12 + temperatureProbeRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the temperature probe state. + This is the combined status of the temperature probe + and its components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { temperatureProbeEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.13 + temperatureProbeComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the temperature probe itself without the propagation + of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { temperatureProbeEntry 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.11.1.14 + temperatureProbeNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this temperature probe." + ::= { temperatureProbeEntry 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.12 + temperatureConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF TemperatureConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between each + temperature probe on the managed node and its enclosure. + Each enclosure number in the table corresponds to that + enclosure instance in the Enclosure Table." + ::= { physicalDevices 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.12.1 + temperatureConnectionEntry OBJECT-TYPE + SYNTAX TemperatureConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Temperature Probe Connection table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { temperatureConnectionNumber } + ::= { temperatureConnectionTable 1 } + + + TemperatureConnectionEntry ::= + SEQUENCE { + temperatureConnectionNumber + INTEGER, + temperatureConnectionTemperatureName + DisplayString, + temperatureConnectionTemperatureNumber + INTEGER, + temperatureConnectionEnclosureName + DisplayString, + temperatureConnectionEnclosureNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.12.1.1 + temperatureConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this temperature probe connection entry." + ::= { temperatureConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.12.1.2 + temperatureConnectionTemperatureName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the temperature probe in this connection as + represented in Storage Management." + ::= { temperatureConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.12.1.3 + temperatureConnectionTemperatureNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number in the temperatureTable of the temperature probe in this connection." + ::= { temperatureConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.12.1.4 + temperatureConnectionEnclosureName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the enclosure as represented in Storage Management + to which this temperature probe belongs." + ::= { temperatureConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.12.1.5 + temperatureConnectionEnclosureNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the enclosure in the enclosureTable + to which this temperature probe belongs. + " + ::= { temperatureConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13 + enclosureManagementModuleTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosureManagementModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Enclosure Management Modules. The number of + entries is related to number of Enclosure Management Modules + discovered in the system. The maximum number of entries + is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1 + enclosureManagementModuleEntry OBJECT-TYPE + SYNTAX EnclosureManagementModuleEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Enclosure Management Module table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { enclosureManagementModuleNumber } + ::= { enclosureManagementModuleTable 1 } + + + EnclosureManagementModuleEntry ::= + SEQUENCE { + enclosureManagementModuleNumber + INTEGER, + enclosureManagementModuleName + DisplayString, + enclosureManagementModuleVendor + DisplayString, + enclosureManagementModuleState + INTEGER, + enclosureManagementModuleSeverity + INTEGER, + enclosureManagementModulePartNumber + DisplayString, + enclosureManagementModuleType + INTEGER, + enclosureManagementModuleFWVersion + DisplayString, + enclosureManagementModuleMaxSpeed + DisplayString, + enclosureManagementModuleRollUpStatus + DellStatus, + enclosureManagementModuleComponentStatus + DellStatus, + enclosureManagementModuleNexusID + DisplayString, + enclosureManagementModuleRevision + DisplayString + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.1 + enclosureManagementModuleNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this enclosure memory module entry." + ::= { enclosureManagementModuleEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.2 + enclosureManagementModuleName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name of this enclosure memory module as represented in + Storage Management." + ::= { enclosureManagementModuleEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.3 + enclosureManagementModuleVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The management module's (re)seller's name." + ::= { enclosureManagementModuleEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.4 + enclosureManagementModuleState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + online(3), + offline(4), + notInstalled(5), + degraded(6), + missing(21) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of the enclosure management + module. + Possible states: + 0: Unknown + 1: Ready + 2: Failed + 3: Online + 4: Offline + 5: Not Installed + 6: Degraded + 21: Missing" + ::= { enclosureManagementModuleEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.5 + enclosureManagementModuleSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { enclosureManagementModuleEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.6 + enclosureManagementModulePartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The part number of the enclosure memory module." + ::= { enclosureManagementModuleEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.7 + enclosureManagementModuleType OBJECT-TYPE + SYNTAX INTEGER + { + eMM(1), + terminationCard(2) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of the enclosure management module. + Possible values: + 0: Unknown + 1: EMM + 2: Termination Card" + ::= { enclosureManagementModuleEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.8 + enclosureManagementModuleFWVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Firmware version of the enclosure memory module." + ::= { enclosureManagementModuleEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.9 + enclosureManagementModuleMaxSpeed OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum bus speed of the enclosure management module." + ::= { enclosureManagementModuleEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.10 + enclosureManagementModuleRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the enclosure management module state. + This is the combined status of the EMM and its components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { enclosureManagementModuleEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.11 + enclosureManagementModuleComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the enclosure management module itself + without the propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { enclosureManagementModuleEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.12 + enclosureManagementModuleNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this EMM." + ::= { enclosureManagementModuleEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.13.1.13 + enclosureManagementModuleRevision OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The revision number of the enclosure management module." + ::= { enclosureManagementModuleEntry 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.14 + enclosureManagementModuleConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF EnclosureManagementModuleConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between each enclosure management module + on the managed node and its enclosure. Each enclosure + number in the table corresponds to that enclosure instance + in the Enclosure Table." + ::= { physicalDevices 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.14.1 + enclosureManagementModuleConnectionEntry OBJECT-TYPE + SYNTAX EnclosureManagementModuleConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Enclosure Management Module Connection table . A row in this + table cannot be created or deleted by SNMP operations on columns of the table." + INDEX { enclosureManagementModuleConnectionNumber } + ::= { enclosureManagementModuleConnectionTable 1 } + + + EnclosureManagementModuleConnectionEntry ::= + SEQUENCE { + enclosureManagementModuleConnectionNumber + INTEGER, + enclosureManagementModuleConnectionEMMName + DisplayString, + enclosureManagementModuleConnectionEMMNumber + INTEGER, + enclosureManagementModuleConnectionEnclosureName + DisplayString, + enclosureManagementModuleConnectionEnclosureNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.14.1.1 + enclosureManagementModuleConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this enclosure management module + connection entry." + ::= { enclosureManagementModuleConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.14.1.2 + enclosureManagementModuleConnectionEMMName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the enclosure management module in this + connection as represented in Storage Management." + ::= { enclosureManagementModuleConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.14.1.3 + enclosureManagementModuleConnectionEMMNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the enclosure management module in + the enclosureManagementModuleTable in this connection." + ::= { enclosureManagementModuleConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.14.1.4 + enclosureManagementModuleConnectionEnclosureName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the enclosure as represented in Storage Management + to which this enclosure management module belongs." + ::= { enclosureManagementModuleConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.14.1.5 + enclosureManagementModuleConnectionEnclosureNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the enclosure in the enclosureTable + to which this enclosure management module belongs." + ::= { enclosureManagementModuleConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15 + batteryTable OBJECT-TYPE + SYNTAX SEQUENCE OF BatteryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Batteries. The number of + entries is related to number of Batteries + discovered in the system. The maximum number of entries + is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { physicalDevices 15 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1 + batteryEntry OBJECT-TYPE + SYNTAX BatteryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Battery table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { batteryNumber } + ::= { batteryTable 1 } + + + BatteryEntry ::= + SEQUENCE { + batteryNumber + INTEGER, + batteryName + DisplayString, + batteryVendor + DisplayString, + batteryState + INTEGER, + batteryRollUpStatus + DellStatus, + batteryComponentStatus + DellStatus, + batteryChargeCount + INTEGER, + batteryMaxChargeCount + INTEGER, + batteryNexusID + DisplayString, + batteryPredictedCapacity + INTEGER, + batteryNextLearnTime + INTEGER, + batteryLearnState + INTEGER, + batteryMaxLearnDelay + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.1 + batteryNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this battery entry." + ::= { batteryEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.2 + batteryName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The battery's name as represented in Storage Management." + ::= { batteryEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.3 + batteryVendor OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The battery's (re)seller's name." + ::= { batteryEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.4 + batteryState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + degraded(6), + reconditioning(7), + high(9), + low(10), + charging(12), + missing(21), + learning(36) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Current state of battery. + Possible values: + 0: Unknown + 1: Ready + 2: Failed + 6: Degraded + 7: Reconditioning + 9: High + 10: Low Power + 12: Charging + 21: Missing + 36: Learning + " + ::= { batteryEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.5 + batteryRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the battery state. + This is the combined status of the battery and its components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { batteryEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.6 + batteryComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the battery itself without the + propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { batteryEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.7 + batteryChargeCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of charges that have been applied to the battery." + ::= { batteryEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.8 + batteryMaxChargeCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum number of charges that can be applied to the battery." + ::= { batteryEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.9 + batteryNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this battery." + ::= { batteryEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.10 + batteryPredictedCapacity OBJECT-TYPE + SYNTAX INTEGER + { + failed(1), + ready(2), + unknown(4) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This property displays the battery's ability to be charged. + Possible values: + 1: Failed - The battery cannot be charged and needs to be replaced. + 2: Ready - The battery can be charged to full capacity. + 4: Unknown - The battery is completing a Learn cycle. The charge capacity of the battery cannot be determined until the Learn cycle is complete. + " + ::= { batteryEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.11 + batteryNextLearnTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Time next learn cycle must be executed (in hours.) + " + ::= { batteryEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.12 + batteryLearnState OBJECT-TYPE + SYNTAX INTEGER + { + failed(1), + active(2), + timedOut(4), + requested(8), + idle(16) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Specifies the learn state activity of the battery. + Possible values: + 1 : Failed + 2 : Active + 4 : Timed out + 8 : Requested + 16: Idle" + ::= { batteryEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.15.1.14 + batteryMaxLearnDelay OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum amount of time (in hours) that the battery learn cycle can be delayed." + ::= { batteryEntry 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.16 + batteryConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF BatteryConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between each + battery on the managed node and its controller. + Each controller number in the table corresponds to that + controller instance in the Controller Table." + ::= { physicalDevices 16 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.16.1 + batteryConnectionEntry OBJECT-TYPE + SYNTAX BatteryConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Battery Connection table . A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { batteryConnectionNumber } + ::= { batteryConnectionTable 1 } + + + BatteryConnectionEntry ::= + SEQUENCE { + batteryConnectionNumber + INTEGER, + batteryConnectionBatteryName + DisplayString, + batteryConnectionBatteryNumber + INTEGER, + batteryConnectionControllerName + DisplayString, + batteryConnectionControllerNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.130.16.1.1 + batteryConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this battery connection entry." + ::= { batteryConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.16.1.2 + batteryConnectionBatteryName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the battery in this connection as represented in Storage Management." + ::= { batteryConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.16.1.3 + batteryConnectionBatteryNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number in the batteryTable of the battery in this connection." + ::= { batteryConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.16.1.4 + batteryConnectionControllerName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the controller as represented in Storage Management + to which this battery belongs." + ::= { batteryConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.130.16.1.5 + batteryConnectionControllerNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the controller in the controllerTable + to which this battery belongs." + ::= { batteryConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140 + logicalDevices OBJECT IDENTIFIER ::= { storageManagement 140 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3 + arrayDiskLogicalConnectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF ArrayDiskLogicalConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of the connections between array disks, the + virtual disk to which they belong, and their + associated logical disk. For each object in the table, + its object number corresponds to an instance number in + the appropriate MIB table for that object where all of + the object properties can be found. + + + " + ::= { logicalDevices 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1 + arrayDiskLogicalConnectionEntry OBJECT-TYPE + SYNTAX ArrayDiskLogicalConnectionEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Array Disk Logical Connection table . A row in this table + cannot be created or deleted by SNMP operations on columns of the table." + INDEX { arrayDiskLogicalConnectionNumber } + ::= { arrayDiskLogicalConnectionTable 1 } + + + ArrayDiskLogicalConnectionEntry ::= + SEQUENCE { + arrayDiskLogicalConnectionNumber + INTEGER, + arrayDiskLogicalConnectionArrayDiskName + DisplayString, + arrayDiskLogicalConnectionArrayDiskNumber + INTEGER, + arrayDiskLogicalConnectionVirtualDiskName + DisplayString, + arrayDiskLogicalConnectionVirtualDiskNumber + INTEGER, + arrayDiskLogicalConnectionDiskName + DisplayString, + arrayDiskLogicalConnectionDiskNumber + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1.1 + arrayDiskLogicalConnectionNumber OBJECT-TYPE + SYNTAX INTEGER (1..1000000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this array disk logical connection entry." + ::= { arrayDiskLogicalConnectionEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1.2 + arrayDiskLogicalConnectionArrayDiskName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the array disk in this logical connection." + ::= { arrayDiskLogicalConnectionEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1.3 + arrayDiskLogicalConnectionArrayDiskNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the array disk in this logical connection." + ::= { arrayDiskLogicalConnectionEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1.4 + arrayDiskLogicalConnectionVirtualDiskName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the virtual disk to which this array disk belongs." + ::= { arrayDiskLogicalConnectionEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1.5 + arrayDiskLogicalConnectionVirtualDiskNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The instance number of the virtual disk to which this array disk + belongs." + ::= { arrayDiskLogicalConnectionEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1.6 + arrayDiskLogicalConnectionDiskName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the disk group to with this array disk belongs. + This property is currently not supported." + ::= { arrayDiskLogicalConnectionEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.3.1.7 + arrayDiskLogicalConnectionDiskNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This instance number of the disk group to with this array disk belongs. + This property is currently not supported." + ::= { arrayDiskLogicalConnectionEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1 + virtualDiskTable OBJECT-TYPE + SYNTAX SEQUENCE OF VirtualDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table of managed Virtual Disks. The number of entries is related + to number of Virtual Disks discovered in the system. + The maximum number of entries is implementation dependent. + Note: The properties in this table may not be applicable to all entries." + ::= { logicalDevices 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1 + virtualDiskEntry OBJECT-TYPE + SYNTAX VirtualDiskEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry in the Virtual Disk table. A row in this table cannot be + created or deleted by SNMP operations on columns of the table." + INDEX { virtualDiskNumber } + ::= { virtualDiskTable 1 } + + + VirtualDiskEntry ::= + SEQUENCE { + virtualDiskNumber + INTEGER, + virtualDiskName + DisplayString, + virtualDiskDeviceName + DisplayString, + virtualDiskState + INTEGER, + virtualDiskSeverity + INTEGER, + virtualDiskLengthInMB + INTEGER, + virtualDiskLengthInBytes + INTEGER, + virtualDiskFreeSpaceInMB + INTEGER, + virtualDiskFreeSpaceInBytes + INTEGER, + virtualDiskWritePolicy + INTEGER, + virtualDiskReadPolicy + INTEGER, + virtualDiskCachePolicy + INTEGER, + virtualDiskLayout + INTEGER, + virtualDiskCurStripeSizeInMB + INTEGER, + virtualDiskCurStripeSizeInBytes + INTEGER, + virtualDiskChannel + INTEGER, + virtualDiskTargetID + INTEGER, + virtualDiskLunID + INTEGER, + virtualDiskRollUpStatus + DellStatus, + virtualDiskComponentStatus + DellStatus, + virtualDiskNexusID + DisplayString, + virtualDiskArrayDiskType + INTEGER + } + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.1 + virtualDiskNumber OBJECT-TYPE + SYNTAX INTEGER (1..100000000) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Instance number of this virtual disk entry." + ::= { virtualDiskEntry 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.2 + virtualDiskName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The virtual disk's label generated by Storage Management or entered + by the user." + ::= { virtualDiskEntry 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.3 + virtualDiskDeviceName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Device name used by this virtual disk's member disks." + ::= { virtualDiskEntry 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.4 + virtualDiskState OBJECT-TYPE + SYNTAX INTEGER + { + ready(1), + failed(2), + online(3), + offline(4), + degraded(6), + verifying(7), + resynching(15), + regenerating(16), + failedRedundancy(18), + rebuilding(24), + formatting(26), + reconstructing(32), + initializing(35), + backgroundInit(36), + permanentlyDegraded(52) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current condition of this virtual disk + (which includes any member array disks.) + Possible states: + 0: Unknown + 1: Ready - The disk is accessible and has no known problems. + 2: Failed - Access has been lost to the data or is about to be lost. + 3: Online + 4: Offline - The disk is not accessible. The disk may be corrupted or intermittently unavailable. + 6: Degraded - The data on the virtual disk is no longer fault tolerant because one of the underlying disks is not online. + 15: Resynching + 16: Regenerating + 24: Rebuilding + 26: Formatting + 32: Reconstructing + 35: Initializing + 36: Background Initialization + 38: Resynching Paused + 52: Permanently Degraded + 54: Degraded Redundancy" + ::= { virtualDiskEntry 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.5 + virtualDiskSeverity OBJECT-TYPE + SYNTAX INTEGER + { + warning(1), + error(2), + failure(3) + } + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete for Storage Management. + It was replaced with RollUpStatus and ComponentStatus for each device." + ::= { virtualDiskEntry 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.6 + virtualDiskLengthInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The size of this virtual disk in megabytes. If this size + is 0, it is smaller than a megabyte." + ::= { virtualDiskEntry 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.7 + virtualDiskLengthInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The portion of the virtual disk in bytes that is smaller + than a megabyte. This size plus the virtualDiskLengthInMB + is the total size of the virtual disk." + ::= { virtualDiskEntry 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.8 + virtualDiskFreeSpaceInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This property is not supported for virtual disks managed under Storage Management." + ::= { virtualDiskEntry 8 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.9 + virtualDiskFreeSpaceInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This property is not supported for virtual disks managed under Storage Management." + ::= { virtualDiskEntry 9 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.10 + virtualDiskWritePolicy OBJECT-TYPE + SYNTAX INTEGER + { + enabled(1), + disabled(2), + writeBack(3), + writeThrough(4), + enabledAlways(5), + enabledAlwaysSAS(6) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the controller's write cache will be used + when writing to a virtual disk. + Possible values: + 1: Enabled - Adaptec Write Cache Enabled Protected + 2: Disabled - Adaptec Write Cache Disabled + 3: LSI Write Back + 4: LSI Write Through + 5: Enabled Always - Adaptec only + 6: Enabled Always - SAS only" + ::= { virtualDiskEntry 10 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.11 + virtualDiskReadPolicy OBJECT-TYPE + SYNTAX INTEGER + { + enabled(1), + disabled(2), + readAhead(3), + adaptiveReadAhead(4), + noReadAhead(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the controller's read cache will be used + when reading from a virtual disk. + Possible values: + 1: Enabled - Adaptec Read Cache Enabled + 2: Disabled - Adaptec Read Cache Disabled + 3: LSI Read Ahead + 4: LSI Adaptive Read Ahead + 5: LSI No Read Ahead" + ::= { virtualDiskEntry 11 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.12 + virtualDiskCachePolicy OBJECT-TYPE + SYNTAX INTEGER + { + directIO(1), + cachedIO(2), + not-applicable(99) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates whether the controller's cache is used when + reading from or writing to a virtual disk. + Possible values: + 1: Direct I/O (LSI) + 2: Cached I/O (LSI) + 99: Not applicable" + ::= { virtualDiskEntry 12 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.13 + virtualDiskLayout OBJECT-TYPE + SYNTAX INTEGER + { + concatenated(1), + raid-0(2), + raid-1(3), + raid-2(4), + raid-3(5), + raid-4(6), + raid-5(7), + raid-6(8), + raid-7(9), + raid-10(10), + raid-30(11), + raid-50(12), + addSpares(13), + deleteLogical(14), + transformLogical(15), + raid-0-plus-1(18), + concatRaid-1(19), + concatRaid-5(20), + noRaid(21), + volume(22), + raidMorph(23), + raid-60(24) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The virtual disk's RAID type. + Currently supported types: + 1: Concatenated + 2: RAID-0 + 3: RAID-1 + 7: RAID-5 + 8: RAID-6 + 10: RAID-10 + 12: RAID-50 + 19: Concatenated RAID 1 + 24: RAID-60 + " + ::= { virtualDiskEntry 13 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.14 + virtualDiskCurStripeSizeInMB OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The stripe size of this virtual disk in megabytes. If this + size is 0, it is either smaller than a megabyte or not applicable. + " + ::= { virtualDiskEntry 14 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.15 + virtualDiskCurStripeSizeInBytes OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The portion of the stripe size in bytes that is smaller + than a megabyte. This size plus the virtualDiskCurStripeSizeInMB + is the total stripe size on the virtual disk. + If this size is 0, either the entire size is whole megabytes or it is not applicable." + ::= { virtualDiskEntry 15 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.16 + virtualDiskChannel OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This property is not supported + by virtual disks managed under Storage Management." + ::= { virtualDiskEntry 16 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.17 + virtualDiskTargetID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Unique ID for the virtual disk." + ::= { virtualDiskEntry 17 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.18 + virtualDiskLunID OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS obsolete + DESCRIPTION + "This entry is obsolete. This property is not supported + by virtual disks managed under Storage Management." + ::= { virtualDiskEntry 18 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.19 + virtualDiskRollUpStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Severity of the virtual disk state. + This is the combined status of the virtual disk and its + components. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { virtualDiskEntry 19 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.20 + virtualDiskComponentStatus OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The status of the virtual disk itself without + the propagation of any contained component status. + Possible values: + 1: Other + 2: Unknown + 3: OK + 4: Non-critical + 5: Critical + 6: Non-recoverable" + ::= { virtualDiskEntry 20 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.21 + virtualDiskNexusID OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Durable unique ID for this virtual disk." + ::= { virtualDiskEntry 21 } + + + -- 1.3.6.1.4.1.674.10893.1.20.140.1.1.22 + virtualDiskArrayDiskType OBJECT-TYPE + SYNTAX INTEGER + { + sas(1), + sata(2), + scsi(3), + ide(4), + unknown(99) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identifies the type of array (physical) disks used to create the virtual disk. + Possible values: + 1: SAS + 2: SATA + 3: SCSI + 4: IDE + 99: Unknown + " + ::= { virtualDiskEntry 22 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200 + storageManagementEvent OBJECT IDENTIFIER ::= { storageManagement 200 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.1 + messageIDEvent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0001 Storage Management alert (event) message number." + ::= { storageManagementEvent 1 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.2 + descriptionEvent OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0002 Storage Management event message text describing the alert." + ::= { storageManagementEvent 2 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.3 + locationEvent OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0003 Additional information identifying the location of the object causing the alert." + ::= { storageManagementEvent 3 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.4 + objectNameEvent OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0004 Name of the object as represented in Storage Management causing the alert." + ::= { storageManagementEvent 4 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.5 + objectOIDEvent OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0005 MIB OID of the object causing the alert." + ::= { storageManagementEvent 5 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.6 + objectNexusEvent OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0006 Durable, unique ID of the object causing the alert." + ::= { storageManagementEvent 6 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.7 + currentStatusEvent OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0007 Current status of object causing the alert, if applicable." + ::= { storageManagementEvent 7 } + + + -- 1.3.6.1.4.1.674.10893.1.20.200.8 + previousStatusEvent OBJECT-TYPE + SYNTAX DellStatus + ACCESS read-only + STATUS mandatory + DESCRIPTION + "0200.0008 Previous status of object causing the alert if applicable." + ::= { storageManagementEvent 8 } + + + +-- +-- Trap definitions +-- + + alertStorageManagementInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent } + DESCRIPTION + "Storage Management Information + There is no global status change associated with this trap." +--#TYPE "Storage Management Event: Storage Management Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Storage Management information. %s" +--#ARGUMENTS { 0, 1 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 101 + alertStorageManagementNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent } + DESCRIPTION + "There is no global status change associated with this trap." +--#TYPE "Storage Management Event: Storage Management Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, %s" +--#ARGUMENTS { 0, 1 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 102 + alertStorageManagementWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent } + DESCRIPTION + "Storage Management has detected a device independent warning condition. + There is no global status change associated with this trap." +--#TYPE "Storage Management Event: Storage Management Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Storage Management has detected a device independent warning condition. %s" +--#ARGUMENTS { 0, 1 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 103 + alertStorageManagementFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent } + DESCRIPTION + "Storage Management has detected a device independent error condition. + There is no global status change associated with this trap." +--#TYPE "Storage Management Event: Storage Management Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Storage Management has detected a device independent error condition. %s" +--#ARGUMENTS { 0, 1 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 104 + alertStorageManagementNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent } + DESCRIPTION + "Storage Management has detected a device independent non-recoverable condition. + There is no global status change associated with this trap." +--#TYPE "Storage Management Event: Storage Management Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Storage Management has detected a device independent non-recoverable condition. %s" +--#ARGUMENTS { 0, 1 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 105 + alertControllerInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Controller information." +--#TYPE "Storage Management Event: Controller Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Controller information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 751 + alertControllerNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Controller has returned to normal." +--#TYPE "Storage Management Event: Controller Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Controller has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 752 + alertControllerWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Controller warning." +--#TYPE "Storage Management Event: Controller Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Controller warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 753 + alertControllerFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Controller failure." +--#TYPE "Storage Management Event: Controller Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Controller failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 754 + alertControllerNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Controller is non-recoverable." +--#TYPE "Storage Management Event: Controller Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Controller is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 755 + alertChannelInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Channel information." +--#TYPE "Storage Management Event: Channel Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Channel information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 801 + alertChannelNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Channel has returned to normal." +--#TYPE "Storage Management Event: Channel Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Channel has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 802 + alertChannelWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Channel warning." +--#TYPE "Storage Management Event: Channel Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Channel warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 803 + alertChannelFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Channel failure." +--#TYPE "Storage Management Event: Channel Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Channel failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 804 + alertChannelNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Channel is non-recoverable." +--#TYPE "Storage Management Event: Channel Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Channel is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 805 + alertEnclosureInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Enclosure information." +--#TYPE "Storage Management Event: Enclosure Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Enclosure information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 851 + alertEnclosureNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Enclosure has returned to normal." +--#TYPE "Storage Management Event: Enclosure Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Enclosure has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 852 + alertEnclosureWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Enclosure warning." +--#TYPE "Storage Management Event: Enclosure Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Enclosure warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 853 + alertEnclosureFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Enclosure failure." +--#TYPE "Storage Management Event: Enclosure Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Enclosure failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 854 + alertEnclosureNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Enclosure is non-recoverable." +--#TYPE "Storage Management Event: Enclosure Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Enclosure is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 855 + alertArrayDiskInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Array disk information." +--#TYPE "Storage Management Event: Array Disk Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Array disk information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 901 + alertArrayDiskNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Array disk has returned to normal." +--#TYPE "Storage Management Event: Array Disk Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Array disk has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 902 + alertArrayDiskWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Array disk warning." +--#TYPE "Storage Management Event: Array Disk Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Array disk warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 903 + alertArrayDiskFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Array disk failure." +--#TYPE "Storage Management Event: Array Disk Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Array disk failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 904 + alertArrayDiskNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Array disk is non-recoverable." +--#TYPE "Storage Management Event: Array Disk Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Array disk is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 905 + alertEMMInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "EMM information." +--#TYPE "Storage Management Event: EMM Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, EMM information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 951 + alertEMMNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "EMM has returned to normal." +--#TYPE "Storage Management Event: EMM Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, EMM has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 952 + alertEMMWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "EMM warning." +--#TYPE "Storage Management Event: EMM Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, EMM warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 953 + alertEMMFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "EMM failure." +--#TYPE "Storage Management Event: EMM Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, EMM failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 954 + alertEMMNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "EMM is non-recoverable." +--#TYPE "Storage Management Event: EMM Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, EMM is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 955 + alertPowerSupplyInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Power supply information." +--#TYPE "Storage Management Event: Power Supply Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Power supply information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1001 + alertPowerSupplyNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Power supply has returned to normal." +--#TYPE "Storage Management Event: Power Supply Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Power supply has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1002 + alertPowerSupplyWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Power supply warning." +--#TYPE "Storage Management Event: Power Supply Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Power supply warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 1003 + alertPowerSupplyFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Power supply failure." +--#TYPE "Storage Management Event: Power Supply Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Power supply failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1004 + alertPowerSupplyNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Power supply is non-recoverable." +--#TYPE "Storage Management Event: Power Supply Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Power supply is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1005 + alertTemperatureProbeInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Temperature probe information." +--#TYPE "Storage Management Event: Temperature Probe Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Temperature probe information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1051 + alertTemperatureProbeNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Temperature probe has returned to normal." +--#TYPE "Storage Management Event: Temperature Probe Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Temperature probe has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1052 + alertTemperatureProbeWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Temperature probe warning." +--#TYPE "Storage Management Event: Temperature Probe Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Temperature probe warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 1053 + alertTemperatureProbeFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Temperature probe failure." +--#TYPE "Storage Management Event: Temperature Probe Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Temperature probe failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1054 + alertTemperatureProbeNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Temperature probe is non-recoverable." +--#TYPE "Storage Management Event: Temperature Probe Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Temperature probe is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1055 + alertFanInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Fan information." +--#TYPE "Storage Management Event: Fan Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Fan information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1101 + alertFanNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Fan has returned to normal." +--#TYPE "Storage Management Event: Fan Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Fan has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1102 + alertFanWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Fan warning." +--#TYPE "Storage Management Event: Fan Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Fan warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 1103 + alertFanFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Fan failure." +--#TYPE "Storage Management Event: Fan Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Fan failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1104 + alertFanNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Fan is non-recoverable." +--#TYPE "Storage Management Event: Fan Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Fan is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1105 + alertBatteryInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Battery information." +--#TYPE "Storage Management Event: Battery Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Battery information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1151 + alertBatteryNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Battery has returned to normal." +--#TYPE "Storage Management Event: Battery Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Battery has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1152 + alertBatteryWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Battery warning." +--#TYPE "Storage Management Event: Battery Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Battery warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 1153 + alertBatteryFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Battery failure." +--#TYPE "Storage Management Event: Battery Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Battery failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1154 + alertBatteryNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Battery is non-recoverable." +--#TYPE "Storage Management Event: Battery Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Battery is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1155 + alertVirtualDiskInformation TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Virtual disk information." +--#TYPE "Storage Management Event: Virtual Disk Information" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Virtual disk information. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1201 + alertVirtualDiskNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Virtual disk has returned to normal." +--#TYPE "Storage Management Event: Virtual Disk Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Virtual disk has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1202 + alertVirtualDiskWarning TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Virtual disk warning." +--#TYPE "Storage Management Event: Virtual Disk Warning" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Virtual disk warning. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 1203 + alertVirtualDiskFailure TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Virtual disk failure." +--#TYPE "Storage Management Event: Virtual Disk Failure" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Virtual disk failure. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1204 + alertVirtualDiskNonRecoverable TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Virtual disk is non-recoverable." +--#TYPE "Storage Management Event: Virtual Disk Non-recoverable" +--#SEVERITY CRITICAL +--#SUMMARY "Alert message ID: %s, Virtual disk is non-recoverable. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE FAILED +--#STATUS MANDATORY + ::= 1205 + alertRedundancyNormal TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Redundancy has returned to normal." +--#TYPE "Storage Management Event: Redundancy Normal" +--#SEVERITY INFORMATIONAL +--#SUMMARY "Alert message ID: %s, Redundancy has returned to normal. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE OPERATIONAL +--#STATUS MANDATORY + ::= 1304 + alertRedundancyDegraded TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Redundancy has been degraded." +--#TYPE "Storage Management Event: Redundancy Degraded" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Redundancy has been degraded. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Status Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 1305 + alertRedundancyLost TRAP-TYPE + ENTERPRISE storageManagementEvent + VARIABLES { messageIDEvent, descriptionEvent, locationEvent, objectNameEvent, objectOIDEvent, + objectNexusEvent, currentStatusEvent, previousStatusEvent } + DESCRIPTION + "Redundancy has been lost." +--#TYPE "Storage Management Event: Redundancy Lost" +--#SEVERITY MINOR +--#SUMMARY "Alert message ID: %s, Redundancy has been lost. %s, %s, %s" +--#ARGUMENTS { 0, 1, 2, 3 } +--#CATEGORY "Error Events" +--#STATE DEGRADED +--#STATUS MANDATORY + ::= 1306 + + END + +-- +-- dcstorag.mib +-- diff --git a/pandora_console/attachment/mibs/TCPIPX-MIB b/pandora_console/attachment/mibs/TCPIPX-MIB new file mode 100644 index 0000000000..6629e1630e --- /dev/null +++ b/pandora_console/attachment/mibs/TCPIPX-MIB @@ -0,0 +1,350 @@ +-- File: RFC1792.MIB - TCPIPX-MIB +-- Changes: +-- Fixed case for "SIZE" in IpxAddress TC +-- Added IMPORTS for enterprises. +-- Added missing comma in definition for sequence TcpIpxConnEntry. +-- Added missing comma in definition for sequence UdpIpxEntry. +-- Removed extra comma in definition for sequence TcpUnspecConnEntry. +-- Changed syntax for tcpUnspecConnTable from +-- "SEQUENCE OF TcpIpxConnEntry" to "SEQUENCE OF TcpUnspecConnEntry". +-- dperkins@scruznet.com + + + TCPIPX-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE + FROM RFC-1212 + enterprises + FROM RFC1155-SMI; + + + -- IPX address type. + -- First 4 octests are the network numbers and the last 6 + -- octests are the node numbers. In ascii, it is represented + -- as hex digits, as in: nnnnnnnn:mmmmmmmmmmmm + + IpxAddress ::= OCTET STRING (SIZE (10)) + + + -- TCP/IPX MIB object idenfifiers + + novell OBJECT IDENTIFIER ::= { enterprises 23 } + mibDoc OBJECT IDENTIFIER ::= { novell 2 } + tcpx OBJECT IDENTIFIER ::= { mibDoc 29 } + tcpxTcp OBJECT IDENTIFIER ::= { tcpx 1 } + tcpxUdp OBJECT IDENTIFIER ::= { tcpx 2 } + + + + -- the TCP/IPX Connection table + + -- The TCP/IPX connection table contains information + -- about this entity's existing TCP connections over + -- IPX. + + tcpIpxConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpIpxConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing information specific on + TCP connection over IPX network layer." + + ::= { tcpxTcp 1 } + + tcpIpxConnEntry OBJECT-TYPE + SYNTAX TcpIpxConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current TCP + connection over IPX An object of this type is + transient, in that it ceases to exist when (or + soon after) the connection makes the transition + to the CLOSED state." + INDEX { tcpIpxConnLocalAddress, + tcpIpxConnLocalPort, + tcpIpxConnRemAddress, + tcpIpxConnRemPort } + ::= { tcpIpxConnTable 1 } + + TcpIpxConnEntry ::= + SEQUENCE { + tcpIpxConnState + INTEGER, + tcpIpxConnLocalAddress + IpxAddress, + tcpIpxConnLocalPort + INTEGER (0..65535), + tcpIpxConnRemAddress + IpxAddress, + tcpIpxConnRemPort + INTEGER (0..65535) + } + + tcpIpxConnState OBJECT-TYPE + SYNTAX INTEGER { + closed(1), + listen(2), + synSent(3), + synReceived(4), + established(5), + finWait1(6), + finWait2(7), + closeWait(8), + lastAck(9), + closing(10), + timeWait(11), + deleteTCB(12) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of this TCP connection. + + The only value which may be set by a management + station is deleteTCB(12). Accordingly, it is + appropriate for an agent to return a `badValue' + response if a management station attempts to set + this object to any other value. + + If a management station sets this object to the + value deleteTCB(12), then this has the effect of + deleting the TCB (as defined in RFC 793) of the + corresponding connection on the managed node, + resulting in immediate termination of the + connection. + + As an implementation-specific option, a RST + segment may be sent from the managed node to the + other TCP endpoint (note however that RST + segments are not sent reliably)." + ::= { tcpIpxConnEntry 1 } + + tcpIpxConnLocalAddress OBJECT-TYPE + SYNTAX IpxAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local IPX address for this TCP connection. + In the case of a connection in the listen state + which is willing to accept connections for any + interface, the value 00000000:000000000000 is + used. See tcpUnspecConnTable for connections in + the listen state which is willing to accept + connects for any IP interface associated with + the node." + ::= { tcpIpxConnEntry 2 } + + -- NetworkAddress defined in SMI only include IP currently, + -- so we can't use it to represent both IP and IPX address. + + tcpIpxConnLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this TCP connection." + ::= { tcpIpxConnEntry 3 } + + tcpIpxConnRemAddress OBJECT-TYPE + SYNTAX IpxAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The remote IPX address for this TCP connection." + ::= { tcpIpxConnEntry 4 } + + tcpIpxConnRemPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The remote port number for this TCP connection." + ::= { tcpIpxConnEntry 5 } + + + -- the UDP Listener table + + -- The UDP listener table contains information about this + -- entity's UDP end-points on which a local application is + -- currently accepting datagrams. + + udpIpxTable OBJECT-TYPE + SYNTAX SEQUENCE OF UdpIpxEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing UDP listener information." + ::= { tcpxUdp 1 } + + udpIpxEntry OBJECT-TYPE + SYNTAX UdpIpxEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current UDP + listener." + INDEX { udpIpxLocalAddress, udpIpxLocalPort } + ::= { udpIpxTable 1 } + + UdpIpxEntry ::= + SEQUENCE { + udpIpxLocalAddress + IpxAddress, + udpIpxLocalPort + INTEGER (0..65535) + } + + udpIpxLocalAddress OBJECT-TYPE + SYNTAX IpxAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local IPX address for this UDP listener. In + the case of a UDP listener which is willing to + accept datagrams for any interface, the value + 00000000:000000000000 is used. See + udpUnspecTable for UDP listener which is + willing to accept datagrams from any network + layer." + ::= { udpIpxEntry 1 } + + udpIpxLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this UDP listener." + ::= { udpIpxEntry 2 } + + + -- the TCP/UNSPEC Connection table + + -- The TCP/UPSPEC connection table contains information + -- about this entity's existing TCP connections over + -- unspecified network. + -- Since the network is unspecified, the network + -- address is also unspecified. Hence, this + -- connection table does not include any network + -- address. + + tcpUnspecConnTable OBJECT-TYPE + SYNTAX SEQUENCE OF TcpUnspecConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing information specific on + TCP connection over unspecified network layer." + ::= { tcpxTcp 2 } + + tcpUnspecConnEntry OBJECT-TYPE + SYNTAX TcpUnspecConnEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current TCP + connection over unspecified network layer. An + object of this type is transient, in that it + ceases to exist when the connection makes + transition beyond LISTEN state, or when (or + soon after) the connection makes transition + to the CLOSED state," + + INDEX { tcpUnspecConnLocalPort } + ::= { tcpUnspecConnTable 1 } + + TcpUnspecConnEntry ::= + SEQUENCE { + tcpUnspecConnState + INTEGER, + tcpUnspecConnLocalPort + INTEGER (0..65535) + } + + tcpUnspecConnState OBJECT-TYPE + SYNTAX INTEGER { + closed(1), + listen(2), + deleteTCB(12) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The state of this TCP connection. + + Since the TCP connection can belong to this table + only when its state is less than SYN_SENT, only + closed and listen state apply. + + The only value which may be set by a management + station is deleteTCB(12). Accordingly, it is + appropriate for an agent to return a `badValue' + response if a management station attempts to set + this object to any other value. + + If a management station sets this object to the + value deleteTCB(12), then this has the effect of + deleting the TCB (as defined in RFC 793) of the + corresponding connection on the managed node, + resulting in immediate termination of the + connection. + + As an implementation-specific option, a RST + segment may be sent from the managed node to the + other TCP endpoint (note however that RST + segments are not sent reliably)." + ::= { tcpUnspecConnEntry 1 } + + tcpUnspecConnLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this TCP connection." + ::= { tcpUnspecConnEntry 2 } + + + -- the UDP Listener table + + -- The UDP listener table contains information about this + -- entity's UDP end-points over unspecified network layer, + -- on which a local application is currently accepting + -- datagrams. If network layer is unspecified, the network + -- address is also unspecified. Hence, this table does not + -- include any network address. + + udpUnspecTable OBJECT-TYPE + SYNTAX SEQUENCE OF UdpUnspecEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table containing UDP listener information." + ::= { tcpxUdp 2 } + + udpUnspecEntry OBJECT-TYPE + SYNTAX UdpUnspecEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information about a particular current UDP + listener." + INDEX { udpUnspecLocalPort } + ::= { udpUnspecTable 1 } + + UdpUnspecEntry ::= + SEQUENCE { + udpUnspecLocalPort + INTEGER (0..65535) + } + + udpUnspecLocalPort OBJECT-TYPE + SYNTAX INTEGER (0..65535) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The local port number for this UDP listener." + ::= { udpUnspecEntry 1 } + + END diff --git a/pandora_console/attachment/mibs/TOKENRING-MIB b/pandora_console/attachment/mibs/TOKENRING-MIB new file mode 100644 index 0000000000..b572960853 --- /dev/null +++ b/pandora_console/attachment/mibs/TOKENRING-MIB @@ -0,0 +1,858 @@ +-- File: rfc1748.mi2 - TOKENRING-MIB +-- Changes: +-- **none needed** +-- Needs to have the following objects added to at least one +-- object group: (dot5IfIndex, dot5StatsIfIndex, and dot5TimerIfIndex +-- which are indices); and (dot5TimerReturnRepeat, dot5TimerHolding, +-- dot5TimerQueuePDU, dot5TimerValidTransmit, dot5TimerNoToken, +-- dot5TimerActiveMon, dot5TimerStandbyMon, dot5TimerErrorReport, +-- dot5TimerBeaconTransmit, and dot5TimerBeaconReceive which are +-- obsolete.) +-- dperkins@scruznet.com + + +TOKENRING-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, + Counter32, Integer32 FROM SNMPv2-SMI + transmission FROM RFC1213-MIB + MacAddress,TimeStamp FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; + +dot5 MODULE-IDENTITY + LAST-UPDATED "9410231150Z" + ORGANIZATION "IETF Interfaces MIB Working Group" + CONTACT-INFO + " Keith McCloghrie + + Postal: cisco Systems, Inc. + 170 West Tasman Drive, + San Jose, CA 95134-1706 + US + + Phone: +1 408 526 5260 + EMail: kzm@cisco.com" + DESCRIPTION + "The MIB module for IEEE Token Ring entities." + ::= { transmission 9 } + + +-- The 802.5 Interface Table + +-- This table contains state and parameter information which +-- is specific to 802.5 interfaces. It is mandatory that +-- systems having 802.5 interfaces implement this table in +-- addition to the ifTable (see RFCs 1213 and 1573). + +dot5Table OBJECT-TYPE + SYNTAX SEQUENCE OF Dot5Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table contains Token Ring interface + parameters and state variables, one entry + per 802.5 interface." + ::= { dot5 1 } + +dot5Entry OBJECT-TYPE + SYNTAX Dot5Entry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of Token Ring status and parameter + values for an 802.5 interface." + INDEX { dot5IfIndex } + ::= { dot5Table 1 } + +Dot5Entry ::= SEQUENCE { + dot5IfIndex Integer32, + dot5Commands INTEGER, + dot5RingStatus INTEGER, + dot5RingState INTEGER, + dot5RingOpenStatus INTEGER, + dot5RingSpeed INTEGER, + dot5UpStream MacAddress, + dot5ActMonParticipate INTEGER, + dot5Functional MacAddress, + dot5LastBeaconSent TimeStamp +} + +dot5IfIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the + 802.5 interface for which this entry + contains management information. The + value of this object for a particular + interface has the same value as the + ifIndex object, defined in MIB-II for + the same interface." + ::= { dot5Entry 1 } + +dot5Commands OBJECT-TYPE + SYNTAX INTEGER { + noop(1), + open(2), + reset(3), + close(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "When this object is set to the value of + open(2), the station should go into the + open state. The progress and success of + the open is given by the values of the + objects dot5RingState and + dot5RingOpenStatus. + When this object is set to the value + of reset(3), then the station should do + a reset. On a reset, all MIB counters + should retain their values, if possible. + Other side affects are dependent on the + hardware chip set. + When this object is set to the value + of close(4), the station should go into + the stopped state by removing itself + from the ring. + Setting this object to a value of + noop(1) has no effect. + When read, this object always has a + value of noop(1). + The open(2) and close(4) values + correspond to the up(1) and down(2) values + of MIB-II's ifAdminStatus and ifOperStatus, + i.e., the setting of ifAdminStatus and + dot5Commands affects the values of both + dot5Commands and ifOperStatus." + ::= { dot5Entry 2 } + +dot5RingStatus OBJECT-TYPE + SYNTAX INTEGER (0..262143) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current interface status which can + be used to diagnose fluctuating problems + that can occur on token rings, after a + station has successfully been added to + the ring. + Before an open is completed, this + object has the value for the 'no status' + condition. The dot5RingState and + dot5RingOpenStatus objects provide for + debugging problems when the station + can not even enter the ring. + The object's value is a sum of + values, one for each currently applicable + condition. The following values are + defined for various conditions: + + 0 = No Problems detected + 32 = Ring Recovery + 64 = Single Station + 256 = Remove Received + 512 = reserved + 1024 = Auto-Removal Error + 2048 = Lobe Wire Fault + 4096 = Transmit Beacon + 8192 = Soft Error + 16384 = Hard Error + 32768 = Signal Loss + 131072 = no status, open not completed." + ::= { dot5Entry 3 } + +dot5RingState OBJECT-TYPE + SYNTAX INTEGER { + opened(1), + closed(2), + opening(3), + closing(4), + openFailure(5), + ringFailure(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current interface state with respect + to entering or leaving the ring." + ::= { dot5Entry 4 } + +dot5RingOpenStatus OBJECT-TYPE + SYNTAX INTEGER { + noOpen(1), -- no open attempted + badParam(2), + lobeFailed(3), + signalLoss(4), + insertionTimeout(5), + ringFailed(6), + beaconing(7), + duplicateMAC(8), + requestFailed(9), + removeReceived(10), + open(11) -- last open successful + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates the success, or the + reason for failure, of the station's most + recent attempt to enter the ring." + ::= { dot5Entry 5 } + +dot5RingSpeed OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + oneMegabit(2), + fourMegabit(3), + sixteenMegabit(4) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The ring-speed at the next insertion into + the ring. Note that this may or may not be + different to the current ring-speed which is + given by MIB-II's ifSpeed. For interfaces + which do not support changing ring-speed, + dot5RingSpeed can only be set to its current + value. When dot5RingSpeed has the value + unknown(1), the ring's actual ring-speed is + to be used." + ::= { dot5Entry 6 } + +dot5UpStream OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The MAC-address of the up stream neighbor + station in the ring." + ::= { dot5Entry 7 } + +dot5ActMonParticipate OBJECT-TYPE + SYNTAX INTEGER { + true(1), + false(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "If this object has a value of true(1) then + this interface will participate in the + active monitor selection process. If the + value is false(2) then it will not. + Setting this object does not take effect + until the next Active Monitor election, and + might not take effect until the next time + the interface is opened." + ::= { dot5Entry 8 } + +dot5Functional OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The bit mask of all Token Ring functional + addresses for which this interface will + accept frames." + ::= { dot5Entry 9 } + +dot5LastBeaconSent OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of MIB-II's sysUpTime object at which + the local system last transmitted a Beacon frame + on this interface." + ::= { dot5Entry 10 } + + +-- The 802.5 Statistics Table + +-- This table contains statistics and error counter which are +-- specific to 802.5 interfaces. It is mandatory that systems +-- having 802.5 interfaces implement this table. + +dot5StatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot5StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing Token Ring statistics, + one entry per 802.5 interface. + All the statistics are defined using + the syntax Counter32 as 32-bit wrap around + counters. Thus, if an interface's + hardware maintains these statistics in + 16-bit counters, then the agent must read + the hardware's counters frequently enough + to prevent loss of significance, in order + to maintain 32-bit counters in software." + ::= { dot5 2 } + +dot5StatsEntry OBJECT-TYPE + SYNTAX Dot5StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry contains the 802.5 statistics + for a particular interface." + INDEX { dot5StatsIfIndex } + ::= { dot5StatsTable 1 } + + +Dot5StatsEntry ::= SEQUENCE { + dot5StatsIfIndex Integer32, + dot5StatsLineErrors Counter32, + dot5StatsBurstErrors Counter32, + dot5StatsACErrors Counter32, + dot5StatsAbortTransErrors Counter32, + dot5StatsInternalErrors Counter32, + dot5StatsLostFrameErrors Counter32, + dot5StatsReceiveCongestions Counter32, + dot5StatsFrameCopiedErrors Counter32, + dot5StatsTokenErrors Counter32, + dot5StatsSoftErrors Counter32, + dot5StatsHardErrors Counter32, + dot5StatsSignalLoss Counter32, + dot5StatsTransmitBeacons Counter32, + dot5StatsRecoverys Counter32, + dot5StatsLobeWires Counter32, + dot5StatsRemoves Counter32, + dot5StatsSingles Counter32, + dot5StatsFreqErrors Counter32 +} + + +dot5StatsIfIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of this object identifies the + 802.5 interface for which this entry + contains management information. The + value of this object for a particular + interface has the same value as MIB-II's + ifIndex object for the same interface." + ::= { dot5StatsEntry 1 } + +dot5StatsLineErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a frame + or token is copied or repeated by a + station, the E bit is zero in the frame + or token and one of the following + conditions exists: 1) there is a + non-data bit (J or K bit) between the SD + and the ED of the frame or token, or + 2) there is an FCS error in the frame." + ::= { dot5StatsEntry 2 } + +dot5StatsBurstErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + detects the absence of transitions for five + half-bit timers (burst-five error)." + ::= { dot5StatsEntry 3 } + +dot5StatsACErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + receives an AMP or SMP frame in which A is + equal to C is equal to 0, and then receives + another SMP frame with A is equal to C is + equal to 0 without first receiving an AMP + frame. It denotes a station that cannot set + the AC bits properly." + ::= { dot5StatsEntry 4 } + +dot5StatsAbortTransErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + transmits an abort delimiter while + transmitting." + ::= { dot5StatsEntry 5 } + +dot5StatsInternalErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + recognizes an internal error." + ::= { dot5StatsEntry 6 } + +dot5StatsLostFrameErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + is transmitting and its TRR timer expires. + This condition denotes a condition where a + transmitting station in strip mode does not + receive the trailer of the frame before the + TRR timer goes off." + ::= { dot5StatsEntry 7 } + +dot5StatsReceiveCongestions OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + recognizes a frame addressed to its + specific address, but has no available + buffer space indicating that the station + is congested." + ::= { dot5StatsEntry 8 } + +dot5StatsFrameCopiedErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + recognizes a frame addressed to its + specific address and detects that the FS + field A bits are set to 1 indicating a + possible line hit or duplicate address." + ::= { dot5StatsEntry 9 } + +dot5StatsTokenErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This counter is incremented when a station + acting as the active monitor recognizes an + error condition that needs a token + transmitted." + ::= { dot5StatsEntry 10 } + +dot5StatsSoftErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Soft Errors the interface + has detected. It directly corresponds to + the number of Report Error MAC frames + that this interface has transmitted. + Soft Errors are those which are + recoverable by the MAC layer protocols." + ::= { dot5StatsEntry 11 } + +dot5StatsHardErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times this interface has + detected an immediately recoverable + fatal error. It denotes the number of + times this interface is either + transmitting or receiving beacon MAC + frames." + ::= { dot5StatsEntry 12 } + +dot5StatsSignalLoss OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times this interface has + detected the loss of signal condition from + the ring." + ::= { dot5StatsEntry 13 } + +dot5StatsTransmitBeacons OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times this interface has + transmitted a beacon frame." + ::= { dot5StatsEntry 14 } + +dot5StatsRecoverys OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of Claim Token MAC frames + received or transmitted after the interface + has received a Ring Purge MAC frame. This + counter signifies the number of times the + ring has been purged and is being recovered + back into a normal operating state." + ::= { dot5StatsEntry 15 } + +dot5StatsLobeWires OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the interface has + detected an open or short circuit in the + lobe data path. The adapter will be closed + and dot5RingState will signify this + condition." + ::= { dot5StatsEntry 16 } + +dot5StatsRemoves OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the interface has + received a Remove Ring Station MAC frame + request. When this frame is received + the interface will enter the close state + and dot5RingState will signify this + condition." + ::= { dot5StatsEntry 17 } + +dot5StatsSingles OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the interface has + sensed that it is the only station on the + ring. This will happen if the interface + is the first one up on a ring, or if + there is a hardware problem." + ::= { dot5StatsEntry 18 } + +dot5StatsFreqErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times the interface has + detected that the frequency of the + incoming signal differs from the expected + frequency by more than that specified by + the IEEE 802.5 standard." + ::= { dot5StatsEntry 19 } + + +-- The Timer Table + +-- This group contains the values of timers for 802.5 +-- interfaces. This table is obsolete, but its definition +-- is retained here for backwards compatibility. + +dot5TimerTable OBJECT-TYPE + SYNTAX SEQUENCE OF Dot5TimerEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "This table contains Token Ring interface + timer values, one entry per 802.5 + interface." + ::= { dot5 5 } + +dot5TimerEntry OBJECT-TYPE + SYNTAX Dot5TimerEntry + MAX-ACCESS not-accessible + STATUS obsolete + DESCRIPTION + "A list of Token Ring timer values for an + 802.5 interface." + INDEX { dot5TimerIfIndex } + ::= { dot5TimerTable 1 } + +Dot5TimerEntry ::= SEQUENCE { + dot5TimerIfIndex Integer32, + dot5TimerReturnRepeat Integer32, + dot5TimerHolding Integer32, + dot5TimerQueuePDU Integer32, + dot5TimerValidTransmit Integer32, + dot5TimerNoToken Integer32, + dot5TimerActiveMon Integer32, + dot5TimerStandbyMon Integer32, + dot5TimerErrorReport Integer32, + dot5TimerBeaconTransmit Integer32, + dot5TimerBeaconReceive Integer32 +} + +dot5TimerIfIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The value of this object identifies the + 802.5 interface for which this entry + contains timer values. The value of + this object for a particular interface + has the same value as MIB-II's ifIndex + object for the same interface." + ::= { dot5TimerEntry 1 } + +dot5TimerReturnRepeat OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value used to ensure the + interface will return to Repeat State, in + units of 100 micro-seconds. The value + should be greater than the maximum ring + latency." + ::= { dot5TimerEntry 2 } + +dot5TimerHolding OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "Maximum period of time a station is + permitted to transmit frames after capturing + a token, in units of 100 micro-seconds." + ::= { dot5TimerEntry 3 } + +dot5TimerQueuePDU OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value for enqueuing of an SMP + PDU after reception of an AMP or SMP + frame in which the A and C bits were + equal to 0, in units of 100 + micro-seconds." + ::= { dot5TimerEntry 4 } + +dot5TimerValidTransmit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value used by the active + monitor to detect the absence of valid + transmissions, in units of 100 + micro-seconds." + ::= { dot5TimerEntry 5 } + +dot5TimerNoToken OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value used to recover from + various-related error situations. + If N is the maximum number of stations on + the ring, the value of this timer is + normally: + dot5TimerReturnRepeat + N*dot5TimerHolding." + ::= { dot5TimerEntry 6 } + +dot5TimerActiveMon OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value used by the active + monitor to stimulate the enqueuing of an + AMP PDU for transmission, in units of + 100 micro-seconds." + ::= { dot5TimerEntry 7 } + +dot5TimerStandbyMon OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value used by the stand-by + monitors to ensure that there is an active + monitor on the ring and to detect a + continuous stream of tokens, in units of + 100 micro-seconds." + ::= { dot5TimerEntry 8 } + +dot5TimerErrorReport OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value which determines how + often a station shall send a Report Error + MAC frame to report its error counters, + in units of 100 micro-seconds." + ::= { dot5TimerEntry 9 } + +dot5TimerBeaconTransmit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value which determines how + long a station shall remain in the state + of transmitting Beacon frames before + entering the Bypass state, in units of + 100 micro-seconds." + ::= { dot5TimerEntry 10 } + +dot5TimerBeaconReceive OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS obsolete + DESCRIPTION + "The time-out value which determines how + long a station shall receive Beacon + frames from its downstream neighbor + before entering the Bypass state, in + units of 100 micro-seconds." + ::= { dot5TimerEntry 11 } + + +-- 802.5 Interface Tests + +dot5Tests OBJECT IDENTIFIER ::= { dot5 3 } + +-- RFC 1573 defines the ifTestTable, through which a +-- network manager can instruct an agent to test an interface +-- for various faults. A test to be performed is identified +-- as an OBJECT IDENTIFIER. + +-- The Insert Function test + +dot5TestInsertFunc OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Invoking this test causes the station to test the insert + ring logic of the hardware if the station's lobe media + cable is connected to a wiring concentrator. Note that + this command inserts the station into the network, and + thus, could cause problems if the station is connected + to a operational network." + ::= { dot5Tests 1 } + + +-- The Full-Duplex Loop Back test + +dot5TestFullDuplexLoopBack OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Invoking this test on a 802.5 interface causes the + interface to check the path from memory through the + chip set's internal logic and back to memory, thus + checking the proper functioning of the system's + interface to the chip set." + ::= { dot5Tests 2 } + + +-- 802.5 Hardware Chip Sets + +-- RFC 1229 specified an object, ifExtnsChipSet, with the +-- syntax of OBJECT IDENTIFIER, to identify the hardware +-- chip set in use by an interface. RFC 1573 obsoletes +-- the use of ifExtnsChipSet. However, the following +-- definitions are retained for backwards compatibility. + +dot5ChipSets OBJECT IDENTIFIER ::= { dot5 4 } + +dot5ChipSetIBM16 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "IBM's 16/4 Mbs chip set." + ::= { dot5ChipSets 1 } + +dot5ChipSetTItms380 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Texas Instruments' TMS 380 4Mbs chip-set" + ::= { dot5ChipSets 2 } + +dot5ChipSetTItms380c16 OBJECT-IDENTITY + STATUS current + DESCRIPTION + "Texas Instruments' TMS 380C16 16/4 Mbs chip-set" + ::= { dot5ChipSets 3 } + + +-- conformance information + +dot5Conformance OBJECT IDENTIFIER ::= { dot5 6 } + +dot5Groups OBJECT IDENTIFIER ::= { dot5Conformance 1 } +dot5Compliances OBJECT IDENTIFIER ::= { dot5Conformance 2 } + + +-- compliance statements + +dot5Compliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities + which implement the IEEE 802.5 MIB." + + MODULE -- this module + MANDATORY-GROUPS { dot5StateGroup, dot5StatsGroup } + + OBJECT dot5ActMonParticipate + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT dot5Functional + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + ::= { dot5Compliances 1 } + + +-- units of conformance + +dot5StateGroup OBJECT-GROUP + OBJECTS { dot5Commands, dot5RingStatus, dot5RingState, + dot5RingOpenStatus, dot5RingSpeed, dot5UpStream, + dot5ActMonParticipate, dot5Functional, + dot5LastBeaconSent + } + STATUS current + DESCRIPTION + "A collection of objects providing state information + and parameters for IEEE 802.5 interfaces." + ::= { dot5Groups 1 } + +dot5StatsGroup OBJECT-GROUP + OBJECTS { dot5StatsLineErrors, dot5StatsBurstErrors, + dot5StatsACErrors, dot5StatsAbortTransErrors, + dot5StatsInternalErrors, dot5StatsLostFrameErrors, + dot5StatsReceiveCongestions, + dot5StatsFrameCopiedErrors, dot5StatsTokenErrors, + dot5StatsSoftErrors, dot5StatsHardErrors, + dot5StatsSignalLoss, dot5StatsTransmitBeacons, + dot5StatsRecoverys, dot5StatsLobeWires, + dot5StatsRemoves, dot5StatsSingles, + dot5StatsFreqErrors + } + STATUS current + DESCRIPTION + "A collection of objects providing statistics for + IEEE 802.5 interfaces." + ::= { dot5Groups 2 } + +END diff --git a/pandora_console/attachment/mibs/UPS-MIB b/pandora_console/attachment/mibs/UPS-MIB new file mode 100644 index 0000000000..8ec219a808 --- /dev/null +++ b/pandora_console/attachment/mibs/UPS-MIB @@ -0,0 +1,1917 @@ +-- extracted from rfc1628.txt +-- at Mon Nov 15 17:11:52 1999 + + UPS-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, + OBJECT-IDENTITY, Counter32, Gauge32, Integer32 + FROM SNMPv2-SMI + DisplayString, TimeStamp, TimeInterval, TestAndIncr, + AutonomousType + FROM SNMPv2-TC + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF; + + + upsMIB MODULE-IDENTITY + LAST-UPDATED "9402230000Z" + ORGANIZATION "IETF UPS MIB Working Group" + CONTACT-INFO + " Jeffrey D. Case + + Postal: SNMP Research, Incorporated + 3001 Kimberlin Heights Road + Knoxville, TN 37920 + US + + Tel: +1 615 573 1434 + Fax: +1 615 573 9197 + + E-mail: case@snmp.com" + DESCRIPTION + "The MIB module to describe Uninterruptible Power + Supplies." + ::= { mib-2 33 } + + PositiveInteger ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "This data type is a non-zero and non-negative value." + SYNTAX INTEGER (1..2147483647) + + NonNegativeInteger ::= TEXTUAL-CONVENTION + DISPLAY-HINT "d" + STATUS current + DESCRIPTION + "This data type is a non-negative value." + SYNTAX INTEGER (0..2147483647) + + upsObjects OBJECT IDENTIFIER ::= { upsMIB 1 } + + + -- + -- The Device Identification group. + -- All objects in this group except for upsIdentName and + -- upsIdentAttachedDevices are set at device initialization + -- and remain static. + -- + + upsIdent OBJECT IDENTIFIER ::= { upsObjects 1 } + + upsIdentManufacturer OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..31)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The name of the UPS manufacturer." + ::= { upsIdent 1 } + + upsIdentModel OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The UPS Model designation." + ::= { upsIdent 2 } + + upsIdentUPSSoftwareVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The UPS firmware/software version(s). This variable + may or may not have the same value as + upsIdentAgentSoftwareVersion in some implementations." + ::= { upsIdent 3 } + + upsIdentAgentSoftwareVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The UPS agent software version. This variable may or + may not have the same value as + upsIdentUPSSoftwareVersion in some implementations." + ::= { upsIdent 4 } + + upsIdentName OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A string identifying the UPS. This object should be + set by the administrator." + ::= { upsIdent 5 } + + upsIdentAttachedDevices OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A string identifying the devices attached to the + output(s) of the UPS. This object should be set by + the administrator." + ::= { upsIdent 6 } + + + -- + -- Battery Group + -- + + upsBattery OBJECT IDENTIFIER ::= { upsObjects 2 } + + upsBatteryStatus OBJECT-TYPE + SYNTAX INTEGER { + unknown(1), + batteryNormal(2), + batteryLow(3), + batteryDepleted(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The indication of the capacity remaining in the UPS + system's batteries. A value of batteryNormal + indicates that the remaining run-time is greater than + upsConfigLowBattTime. A value of batteryLow indicates + that the remaining battery run-time is less than or + equal to upsConfigLowBattTime. A value of + batteryDepleted indicates that the UPS will be unable + to sustain the present load when and if the utility + power is lost (including the possibility that the + utility power is currently absent and the UPS is + unable to sustain the output)." + ::= { upsBattery 1 } + + upsSecondsOnBattery OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "seconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "If the unit is on battery power, the elapsed time + since the UPS last switched to battery power, or the + time since the network management subsystem was last + restarted, whichever is less. Zero shall be returned + if the unit is not on battery power." + ::= { upsBattery 2 } + + upsEstimatedMinutesRemaining OBJECT-TYPE + SYNTAX PositiveInteger + UNITS "minutes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An estimate of the time to battery charge depletion + under the present load conditions if the utility power + is off and remains off, or if it were to be lost and + remain off." + ::= { upsBattery 3 } + + upsEstimatedChargeRemaining OBJECT-TYPE + SYNTAX INTEGER (0..100) + UNITS "percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "An estimate of the battery charge remaining expressed + as a percent of full charge." + ::= { upsBattery 4 } + + upsBatteryVoltage OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 Volt DC" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The magnitude of the present battery voltage." + ::= { upsBattery 5 } + + upsBatteryCurrent OBJECT-TYPE + SYNTAX Integer32 + UNITS "0.1 Amp DC" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present battery current." + ::= { upsBattery 6 } + + upsBatteryTemperature OBJECT-TYPE + SYNTAX Integer32 + UNITS "degrees Centigrade" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The ambient temperature at or near the UPS Battery + casing." + ::= { upsBattery 7 } + + + -- + -- Input Group + -- + + upsInput OBJECT IDENTIFIER ::= { upsObjects 3 } + + upsInputLineBads OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A count of the number of times the input entered an + out-of-tolerance condition as defined by the + manufacturer. This count is incremented by one each + time the input transitions from zero out-of-tolerance + lines to one or more input lines out-of-tolerance." + ::= { upsInput 1 } + + + upsInputNumLines OBJECT-TYPE + SYNTAX NonNegativeInteger + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of input lines utilized in this device. + This variable indicates the number of rows in the + input table." + ::= { upsInput 2 } + + upsInputTable OBJECT-TYPE + SYNTAX SEQUENCE OF UpsInputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of input table entries. The number of entries + is given by the value of upsInputNumLines." + ::= { upsInput 3 } + + upsInputEntry OBJECT-TYPE + SYNTAX UpsInputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing information applicable to a + particular input line." + INDEX { upsInputLineIndex } + ::= { upsInputTable 1 } + + UpsInputEntry ::= SEQUENCE { + upsInputLineIndex PositiveInteger, + upsInputFrequency NonNegativeInteger, + upsInputVoltage NonNegativeInteger, + upsInputCurrent NonNegativeInteger, + upsInputTruePower NonNegativeInteger + } + + upsInputLineIndex OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The input line identifier." + ::= { upsInputEntry 1 } + + upsInputFrequency OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 Hertz" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present input frequency." + ::= { upsInputEntry 2 } + + upsInputVoltage OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "RMS Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The magnitude of the present input voltage." + ::= { upsInputEntry 3 } + + upsInputCurrent OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 RMS Amp" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The magnitude of the present input current." + ::= { upsInputEntry 4 } + + upsInputTruePower OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "Watts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The magnitude of the present input true power." + ::= { upsInputEntry 5 } + + + -- + -- The Output group. + -- + + upsOutput OBJECT IDENTIFIER ::= { upsObjects 4 } + + upsOutputSource OBJECT-TYPE + SYNTAX INTEGER { + other(1), + none(2), + normal(3), + bypass(4), + battery(5), + booster(6), + reducer(7) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present source of output power. The enumeration + none(2) indicates that there is no source of output + power (and therefore no output power), for example, + the system has opened the output breaker." + ::= { upsOutput 1 } + + upsOutputFrequency OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 Hertz" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present output frequency." + ::= { upsOutput 2 } + + upsOutputNumLines OBJECT-TYPE + SYNTAX NonNegativeInteger + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of output lines utilized in this device. + This variable indicates the number of rows in the + output table." + ::= { upsOutput 3 } + + upsOutputTable OBJECT-TYPE + SYNTAX SEQUENCE OF UpsOutputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of output table entries. The number of + entries is given by the value of upsOutputNumLines." + ::= { upsOutput 4 } + + upsOutputEntry OBJECT-TYPE + SYNTAX UpsOutputEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing information applicable to a + particular output line." + INDEX { upsOutputLineIndex } + ::= { upsOutputTable 1 } + + UpsOutputEntry ::= SEQUENCE { + upsOutputLineIndex PositiveInteger, + upsOutputVoltage NonNegativeInteger, + upsOutputCurrent NonNegativeInteger, + upsOutputPower NonNegativeInteger, + upsOutputPercentLoad INTEGER + } + + upsOutputLineIndex OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The output line identifier." + ::= { upsOutputEntry 1 } + + upsOutputVoltage OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "RMS Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present output voltage." + ::= { upsOutputEntry 2 } + + upsOutputCurrent OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 RMS Amp" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present output current." + ::= { upsOutputEntry 3 } + + upsOutputPower OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "Watts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present output true power." + ::= { upsOutputEntry 4 } + + upsOutputPercentLoad OBJECT-TYPE + SYNTAX INTEGER (0..200) + UNITS "percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The percentage of the UPS power capacity presently + being used on this output line, i.e., the greater of + the percent load of true power capacity and the + percent load of VA." + ::= { upsOutputEntry 5 } + + -- + -- The Bypass group. + -- + + upsBypass OBJECT IDENTIFIER ::= { upsObjects 5 } + + upsBypassFrequency OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 Hertz" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present bypass frequency." + ::= { upsBypass 1 } + + upsBypassNumLines OBJECT-TYPE + SYNTAX NonNegativeInteger + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of bypass lines utilized in this device. + This entry indicates the number of rows in the bypass + table." + ::= { upsBypass 2 } + + upsBypassTable OBJECT-TYPE + SYNTAX SEQUENCE OF UpsBypassEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of bypass table entries. The number of + entries is given by the value of upsBypassNumLines." + ::= { upsBypass 3 } + + upsBypassEntry OBJECT-TYPE + SYNTAX UpsBypassEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing information applicable to a + particular bypass input." + INDEX { upsBypassLineIndex } + ::= { upsBypassTable 1 } + + UpsBypassEntry ::= SEQUENCE { + upsBypassLineIndex PositiveInteger, + upsBypassVoltage NonNegativeInteger, + upsBypassCurrent NonNegativeInteger, + upsBypassPower NonNegativeInteger + } + + upsBypassLineIndex OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The bypass line identifier." + ::= { upsBypassEntry 1 } + + upsBypassVoltage OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "RMS Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present bypass voltage." + ::= { upsBypassEntry 2 } + + upsBypassCurrent OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 RMS Amp" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present bypass current." + ::= { upsBypassEntry 3 } + + upsBypassPower OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "Watts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present true power conveyed by the bypass." + ::= { upsBypassEntry 4 } + + + -- + -- The Alarm group. + -- + + upsAlarm OBJECT IDENTIFIER ::= { upsObjects 6 } + + upsAlarmsPresent OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The present number of active alarm conditions." + ::= { upsAlarm 1 } + + upsAlarmTable OBJECT-TYPE + SYNTAX SEQUENCE OF UpsAlarmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A list of alarm table entries. The table contains + zero, one, or many rows at any moment, depending upon + the number of alarm conditions in effect. The table + is initially empty at agent startup. The agent + creates a row in the table each time a condition is + detected and deletes that row when that condition no + longer pertains. The agent creates the first row with + upsAlarmId equal to 1, and increments the value of + upsAlarmId each time a new row is created, wrapping to + the first free value greater than or equal to 1 when + the maximum value of upsAlarmId would otherwise be + exceeded. Consequently, after multiple operations, + the table may become sparse, e.g., containing entries + for rows 95, 100, 101, and 203 and the entries should + not be assumed to be in chronological order because + upsAlarmId might have wrapped. + + Alarms are named by an AutonomousType (OBJECT + IDENTIFIER), upsAlarmDescr, to allow a single table to + reflect well known alarms plus alarms defined by a + particular implementation, i.e., as documented in the + private enterprise MIB definition for the device. No + two rows will have the same value of upsAlarmDescr, + since alarms define conditions. In order to meet this + requirement, care should be taken in the definition of + alarm conditions to insure that a system cannot enter + the same condition multiple times simultaneously. + + The number of rows in the table at any given time is + reflected by the value of upsAlarmsPresent." + ::= { upsAlarm 2 } + + upsAlarmEntry OBJECT-TYPE + SYNTAX UpsAlarmEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An entry containing information applicable to a + particular alarm." + INDEX { upsAlarmId } + ::= { upsAlarmTable 1 } + + UpsAlarmEntry ::= SEQUENCE { + upsAlarmId PositiveInteger, + upsAlarmDescr AutonomousType, + upsAlarmTime TimeStamp + } + + upsAlarmId OBJECT-TYPE + SYNTAX PositiveInteger + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A unique identifier for an alarm condition. This + value must remain constant." + ::= { upsAlarmEntry 1 } + + upsAlarmDescr OBJECT-TYPE + SYNTAX AutonomousType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A reference to an alarm description object. The + object referenced should not be accessible, but rather + be used to provide a unique description of the alarm + condition." + ::= { upsAlarmEntry 2 } + + upsAlarmTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime when the alarm condition was + detected. If the alarm condition was detected at the + time of agent startup and presumably existed before + agent startup, the value of upsAlarmTime shall equal + 0." + ::= { upsAlarmEntry 3 } + + + -- + -- Well known alarm conditions. + -- + + upsWellKnownAlarms OBJECT IDENTIFIER ::= { upsAlarm 3 } + upsAlarmBatteryBad OBJECT-IDENTITY + STATUS current + DESCRIPTION + "One or more batteries have been determined to require + replacement." + ::= { upsWellKnownAlarms 1 } + + upsAlarmOnBattery OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The UPS is drawing power from the batteries." + ::= { upsWellKnownAlarms 2 } + + upsAlarmLowBattery OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The remaining battery run-time is less than or equal + to upsConfigLowBattTime." + ::= { upsWellKnownAlarms 3 } + + + upsAlarmDepletedBattery OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The UPS will be unable to sustain the present load + when and if the utility power is lost." + ::= { upsWellKnownAlarms 4 } + + upsAlarmTempBad OBJECT-IDENTITY + STATUS current + DESCRIPTION + "A temperature is out of tolerance." + ::= { upsWellKnownAlarms 5 } + + upsAlarmInputBad OBJECT-IDENTITY + STATUS current + DESCRIPTION + "An input condition is out of tolerance." + ::= { upsWellKnownAlarms 6 } + + upsAlarmOutputBad OBJECT-IDENTITY + STATUS current + DESCRIPTION + "An output condition (other than OutputOverload) is + out of tolerance." + ::= { upsWellKnownAlarms 7 } + + upsAlarmOutputOverload OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The output load exceeds the UPS output capacity." + ::= { upsWellKnownAlarms 8 } + + upsAlarmOnBypass OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The Bypass is presently engaged on the UPS." + ::= { upsWellKnownAlarms 9 } + + upsAlarmBypassBad OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The Bypass is out of tolerance." + ::= { upsWellKnownAlarms 10 } + + upsAlarmOutputOffAsRequested OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The UPS has shutdown as requested, i.e., the output + is off." + ::= { upsWellKnownAlarms 11 } + + upsAlarmUpsOffAsRequested OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The entire UPS has shutdown as commanded." + ::= { upsWellKnownAlarms 12 } + + upsAlarmChargerFailed OBJECT-IDENTITY + STATUS current + DESCRIPTION + "An uncorrected problem has been detected within the + UPS charger subsystem." + ::= { upsWellKnownAlarms 13 } + + upsAlarmUpsOutputOff OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The output of the UPS is in the off state." + ::= { upsWellKnownAlarms 14 } + + upsAlarmUpsSystemOff OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The UPS system is in the off state." + ::= { upsWellKnownAlarms 15 } + + upsAlarmFanFailure OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The failure of one or more fans in the UPS has been + detected." + ::= { upsWellKnownAlarms 16 } + + upsAlarmFuseFailure OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The failure of one or more fuses has been detected." + ::= { upsWellKnownAlarms 17 } + + upsAlarmGeneralFault OBJECT-IDENTITY + STATUS current + DESCRIPTION + "A general fault in the UPS has been detected." + ::= { upsWellKnownAlarms 18 } + + upsAlarmDiagnosticTestFailed OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The result of the last diagnostic test indicates a + failure." + ::= { upsWellKnownAlarms 19 } + + upsAlarmCommunicationsLost OBJECT-IDENTITY + STATUS current + DESCRIPTION + "A problem has been encountered in the communications + between the agent and the UPS." + ::= { upsWellKnownAlarms 20 } + + upsAlarmAwaitingPower OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The UPS output is off and the UPS is awaiting the + return of input power." + ::= { upsWellKnownAlarms 21 } + + upsAlarmShutdownPending OBJECT-IDENTITY + STATUS current + DESCRIPTION + "A upsShutdownAfterDelay countdown is underway." + ::= { upsWellKnownAlarms 22 } + + upsAlarmShutdownImminent OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The UPS will turn off power to the load in less than + 5 seconds; this may be either a timed shutdown or a + low battery shutdown." + ::= { upsWellKnownAlarms 23 } + + upsAlarmTestInProgress OBJECT-IDENTITY + STATUS current + DESCRIPTION + "A test is in progress, as initiated and indicated by + the Test Group. Tests initiated via other + implementation-specific mechanisms can indicate the + presence of the testing in the alarm table, if + desired, via a OBJECT-IDENTITY macro in the MIB + document specific to that implementation and are + outside the scope of this OBJECT-IDENTITY." + ::= { upsWellKnownAlarms 24 } + + + -- + -- The Test Group + -- + + upsTest OBJECT IDENTIFIER ::= { upsObjects 7 } + + upsTestId OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The test is named by an OBJECT IDENTIFIER which + allows a standard mechanism for the initiation of + tests, including the well known tests identified in + this document as well as those introduced by a + particular implementation, i.e., as documented in the + private enterprise MIB definition for the device. + + Setting this variable initiates the named test. Sets + to this variable require the presence of + upsTestSpinLock in the same SNMP message. + + The set request will be rejected with an appropriate + error message if the requested test cannot be + performed, including attempts to start a test when + another test is already in progress. The status of + the current or last test is maintained in + upsTestResultsSummary. Tests in progress may be + aborted by setting the upsTestId variable to + upsTestAbortTestInProgress. + + Read operations return the value of the name of the + test in progress if a test is in progress or the name + of the last test performed if no test is in progress, + unless no test has been run, in which case the well + known value upsTestNoTestsInitiated is returned." + ::= { upsTest 1 } + + -- see [6] for more information on the semantics of objects with + -- syntax of TestAndIncr + + upsTestSpinLock OBJECT-TYPE + SYNTAX TestAndIncr + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A spin lock on the test subsystem. The spinlock is + used as follows. + + Before starting a test, a manager-station should make + sure that a test is not in progress as follows: + + try_again: + get (upsTestSpinLock) + while (upsTestResultsSummary == inProgress) { + /* loop while a test is running for another + manager */ + short delay + get (upsTestSpinLock) + } + lock_value = upsTestSpinLock + /* no test in progress, start the test */ + set (upsTestSpinLock = lock_value, upsTestId = + requested_test) + if (error_index == 1) { /* (upsTestSpinLock + failed) */ + /* if problem is not access control, then + some other manager slipped in ahead of us + */ + goto try_again + } + if (error_index == 2) { /* (upsTestId) */ + /* cannot perform the test */ + give up + } + /* test started ok */ + /* wait for test completion by polling + + upsTestResultsSummary */ + get (upsTestSpinLock, upsTestResultsSummary, + upsTestResultsDetail) + while (upsTestResultsSummary == inProgress) { + short delay + get (upsTestSpinLock, upsTestResultsSummary, + upsTestResultsDetail) + } + /* when test completes, retrieve any additional + test results */ + /* if upsTestSpinLock == lock_value + 1, then + these are our test */ + /* results (as opposed to another manager's */ + The initial value of upsTestSpinLock at agent + initialization shall + be 1." + ::= { upsTest 2 } + + upsTestResultsSummary OBJECT-TYPE + SYNTAX INTEGER { + donePass(1), + doneWarning(2), + doneError(3), + aborted(4), + inProgress(5), + noTestsInitiated(6) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The results of the current or last UPS diagnostics + test performed. The values for donePass(1), + doneWarning(2), and doneError(3) indicate that the + test completed either successfully, with a warning, or + with an error, respectively. The value aborted(4) is + returned for tests which are aborted by setting the + value of upsTestId to upsTestAbortTestInProgress. + Tests which have not yet concluded are indicated by + inProgress(5). The value noTestsInitiated(6) + indicates that no previous test results are available, + such as is the case when no tests have been run since + the last reinitialization of the network management + subsystem and the system has no provision for non- + volatile storage of test results." + ::= { upsTest 3 } + + upsTestResultsDetail OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Additional information about upsTestResultsSummary. + If no additional information available, a zero length + string is returned." + ::= { upsTest 4 } + + upsTestStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time the test in + progress was initiated, or, if no test is in progress, + the time the previous test was initiated. If the + value of upsTestResultsSummary is noTestsInitiated(6), + upsTestStartTime has the value 0." + ::= { upsTest 5 } + + upsTestElapsedTime OBJECT-TYPE + SYNTAX TimeInterval + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of time, in TimeTicks, since the test in + progress was initiated, or, if no test is in progress, + the previous test took to complete. If the value of + upsTestResultsSummary is noTestsInitiated(6), + upsTestElapsedTime has the value 0." + ::= { upsTest 6 } + + -- + -- Well known tests. + -- + + upsWellKnownTests OBJECT IDENTIFIER ::= { upsTest 7 } + + + upsTestNoTestsInitiated OBJECT-IDENTITY + STATUS current + DESCRIPTION + "No tests have been initiated and no test is in + progress." + ::= { upsWellKnownTests 1 } + + upsTestAbortTestInProgress OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The test in progress is to be aborted / the test in + progress was aborted." + ::= { upsWellKnownTests 2 } + + upsTestGeneralSystemsTest OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The manufacturer's standard test of UPS device + systems." + ::= { upsWellKnownTests 3 } + + upsTestQuickBatteryTest OBJECT-IDENTITY + STATUS current + DESCRIPTION + "A test that is sufficient to determine if the battery + needs replacement." + ::= { upsWellKnownTests 4 } + + upsTestDeepBatteryCalibration OBJECT-IDENTITY + STATUS current + DESCRIPTION + "The system is placed on battery to a discharge level, + set by the manufacturer, sufficient to determine + battery replacement and battery run-time with a high + degree of confidence. WARNING: this test will leave + the battery in a low charge state and will require + time for recharging to a level sufficient to provide + normal battery duration for the protected load." + ::= { upsWellKnownTests 5 } + + + -- + -- The Control group. + -- + + upsControl OBJECT IDENTIFIER ::= { upsObjects 8 } + + upsShutdownType OBJECT-TYPE + SYNTAX INTEGER { + output(1), + system(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "This object determines the nature of the action to be + taken at the time when the countdown of the + upsShutdownAfterDelay and upsRebootWithDuration + objects reaches zero. + + Setting this object to output(1) indicates that + shutdown requests should cause only the output of the + UPS to turn off. Setting this object to system(2) + indicates that shutdown requests will cause the entire + UPS system to turn off." + ::= { upsControl 1 } + + upsShutdownAfterDelay OBJECT-TYPE + SYNTAX INTEGER (-1..2147483648) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting this object will shutdown (i.e., turn off) + either the UPS output or the UPS system (as determined + by the value of upsShutdownType at the time of + shutdown) after the indicated number of seconds, or + less if the UPS batteries become depleted. Setting + this object to 0 will cause the shutdown to occur + immediately. Setting this object to -1 will abort the + countdown. If the system is already in the desired + state at the time the countdown reaches 0, then + nothing will happen. That is, there is no additional + action at that time if upsShutdownType = system and + the system is already off. Similarly, there is no + additional action at that time if upsShutdownType = + output and the output is already off. When read, + upsShutdownAfterDelay will return the number of + seconds remaining until shutdown, or -1 if no shutdown + countdown is in effect. On some systems, if the agent + is restarted while a shutdown countdown is in effect, + the countdown may be aborted. Sets to this object + override any upsShutdownAfterDelay already in effect." + ::= { upsControl 2 } + + upsStartupAfterDelay OBJECT-TYPE + SYNTAX INTEGER (-1..2147483648) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting this object will start the output after the + indicated number of seconds, including starting the + UPS, if necessary. Setting this object to 0 will + cause the startup to occur immediately. Setting this + object to -1 will abort the countdown. If the output + is already on at the time the countdown reaches 0, + then nothing will happen. Sets to this object + override the effect of any upsStartupAfterDelay + countdown or upsRebootWithDuration countdown in + progress. When read, upsStartupAfterDelay will return + the number of seconds until startup, or -1 if no + startup countdown is in effect. If the countdown + expires during a utility failure, the startup shall + not occur until the utility power is restored. On + some systems, if the agent is restarted while a + startup countdown is in effect, the countdown is + aborted." + ::= { upsControl 3 } + + upsRebootWithDuration OBJECT-TYPE + SYNTAX INTEGER (-1..300) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting this object will immediately shutdown (i.e., + turn off) either the UPS output or the UPS system (as + determined by the value of upsShutdownType at the time + of shutdown) for a period equal to the indicated + number of seconds, after which time the output will be + started, including starting the UPS, if necessary. If + the number of seconds required to perform the request + is greater than the requested duration, then the + requested shutdown and startup cycle shall be + performed in the minimum time possible, but in no case + shall this require more than the requested duration + plus 60 seconds. When read, upsRebootWithDuration + shall return the number of seconds remaining in the + countdown, or -1 if no countdown is in progress. If + the startup should occur during a utility failure, the + startup shall not occur until the utility power is + restored." + ::= { upsControl 4 } + + upsAutoRestart OBJECT-TYPE + SYNTAX INTEGER { + on(1), + off(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Setting this object to 'on' will cause the UPS system + to restart after a shutdown if the shutdown occurred + during a power loss as a result of either a + upsShutdownAfterDelay or an internal battery depleted + condition. Setting this object to 'off' will prevent + the UPS system from restarting after a shutdown until + an operator manually or remotely explicitly restarts + it. If the UPS is in a startup or reboot countdown, + then the UPS will not restart until that delay has + been satisfied." + ::= { upsControl 5 } + + + -- + -- The Configuration group. + -- + + upsConfig OBJECT IDENTIFIER ::= { upsObjects 9 } + + upsConfigInputVoltage OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "RMS Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The magnitude of the nominal input voltage. On those + systems which support read-write access to this + object, if there is an attempt to set this variable to + a value that is not supported, the request must be + rejected and the agent shall respond with an + appropriate error message, i.e., badValue for SNMPv1, + or inconsistentValue for SNMPv2." + ::= { upsConfig 1 } + + upsConfigInputFreq OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 Hertz" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The nominal input frequency. On those systems which + support read-write access to this object, if there is + an attempt to set this variable to a value that is not + supported, the request must be rejected and the agent + shall respond with an appropriate error message, i.e., + badValue for SNMPv1, or inconsistentValue for SNMPv2." + ::= { upsConfig 2 } + + upsConfigOutputVoltage OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "RMS Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The magnitude of the nominal output voltage. On + those systems which support read-write access to this + object, if there is an attempt to set this variable to + a value that is not supported, the request must be + rejected and the agent shall respond with an + appropriate error message, i.e., badValue for SNMPv1, + or inconsistentValue for SNMPv2." + ::= { upsConfig 3 } + + upsConfigOutputFreq OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "0.1 Hertz" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The nominal output frequency. On those systems which + support read-write access to this object, if there is + an attempt to set this variable to a value that is not + supported, the request must be rejected and the agent + shall respond with an appropriate error message, i.e., + badValue for SNMPv1, or inconsistentValue for SNMPv2." + ::= { upsConfig 4 } + + upsConfigOutputVA OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "Volt-Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The magnitude of the nominal Volt-Amp rating." + ::= { upsConfig 5 } + + upsConfigOutputPower OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "Watts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The magnitude of the nominal true power rating." + ::= { upsConfig 6 } + + upsConfigLowBattTime OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "minutes" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The value of upsEstimatedMinutesRemaining at which a + lowBattery condition is declared. For agents which + support only discrete (discontinuous) values, then the + agent shall round up to the next supported value. If + the requested value is larger than the largest + supported value, then the largest supported value + shall be selected." + ::= { upsConfig 7 } + + upsConfigAudibleStatus OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabled(2), + muted(3) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The requested state of the audible alarm. When in + the disabled state, the audible alarm should never + sound. The enabled state is self-describing. Setting + this object to muted(3) when the audible alarm is + sounding shall temporarily silence the alarm. It will + remain muted until it would normally stop sounding and + the value returned for read operations during this + period shall equal muted(3). At the end of this + period, the value shall revert to enabled(2). Writes + of the value muted(3) when the audible alarm is not + sounding shall be accepted but otherwise shall have no + effect." + ::= { upsConfig 8 } + + upsConfigLowVoltageTransferPoint OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "RMS Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The minimum input line voltage allowed before the UPS + system transfers to battery backup." + ::= { upsConfig 9 } + + upsConfigHighVoltageTransferPoint OBJECT-TYPE + SYNTAX NonNegativeInteger + UNITS "RMS Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The maximum line voltage allowed before the UPS + system transfers to battery backup." + ::= { upsConfig 10 } + + + -- + -- notifications, i.e., traps + -- + upsTraps OBJECT IDENTIFIER ::= { upsMIB 2 } + + -- This section defines the well-known notifications sent by + -- UPS agents. + -- Care must be taken to insure that no particular notification + -- is sent to a single receiving entity more often than once + -- every five seconds. + + upsTrapOnBattery NOTIFICATION-TYPE + OBJECTS { upsEstimatedMinutesRemaining, upsSecondsOnBattery, + upsConfigLowBattTime } + STATUS current + DESCRIPTION + "The UPS is operating on battery power. This trap is + persistent and is resent at one minute intervals until + the UPS either turns off or is no longer running on + battery." + ::= { upsTraps 1 } + + upsTrapTestCompleted NOTIFICATION-TYPE + OBJECTS { upsTestId, upsTestSpinLock, + upsTestResultsSummary, upsTestResultsDetail, + upsTestStartTime, upsTestElapsedTime } + STATUS current + DESCRIPTION + "This trap is sent upon completion of a UPS diagnostic + test." + ::= { upsTraps 2 } + + upsTrapAlarmEntryAdded NOTIFICATION-TYPE + OBJECTS { upsAlarmId, upsAlarmDescr } + STATUS current + DESCRIPTION + "This trap is sent each time an alarm is inserted into + to the alarm table. It is sent on the insertion of + all alarms except for upsAlarmOnBattery and + upsAlarmTestInProgress." + ::= { upsTraps 3 } + + upsTrapAlarmEntryRemoved NOTIFICATION-TYPE + OBJECTS { upsAlarmId, upsAlarmDescr } + STATUS current + DESCRIPTION + "This trap is sent each time an alarm is removed from + the alarm table. It is sent on the removal of all + alarms except for upsAlarmTestInProgress." + ::= { upsTraps 4 } + + + -- + -- conformance information + -- + upsConformance OBJECT IDENTIFIER ::= { upsMIB 3 } + + upsCompliances OBJECT IDENTIFIER ::= { upsConformance 1 } + + + -- + -- compliance statements + -- + + upsSubsetCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + + "The compliance statement for UPSs that only support + the two-contact communication protocol." + MODULE -- this module + MANDATORY-GROUPS { upsSubsetIdentGroup, + upsSubsetBatteryGroup, upsSubsetInputGroup, + upsSubsetOutputGroup, upsSubsetAlarmGroup, + upsSubsetControlGroup, upsSubsetConfigGroup } + + OBJECT upsBatteryStatus + SYNTAX INTEGER { + batteryNormal(2), + batteryLow(3) + } + DESCRIPTION + "Support of the values unknown(1) and + batteryDepleted(4) is not required." + + OBJECT upsAlarmDescr + DESCRIPTION + "Support of all `well known' alarm types is not + required. The well known alarm types which must be + supported are: upsAlarmOnBattery, upsAlarmLowBattery, + upsAlarmInputBad, upsAlarmUpsOutputOff, + upsAlarmUpsSystemOff, and upsAlarmTestInProgress." + + OBJECT upsOutputSource + SYNTAX INTEGER { + normal(2), + battery(4) + } + DESCRIPTION + "Support of the values other(1), none(2), bypass(4), + booster(6) and reducer(7) is not required." + + OBJECT upsShutdownType + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required, i.e., compliant + systems need not support more than one shutdown type." + + OBJECT upsAutoRestart + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required, i.e., compliant + systems need not support more than one restart type." + + OBJECT upsConfigInputVoltage + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigInputFreq + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigOutputVoltage + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigOutputFreq + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + ::= { upsCompliances 1 } + + upsBasicCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + + "The compliance statement for UPSs that support + full-featured functions, such as control." + MODULE -- this module + MANDATORY-GROUPS { upsBasicIdentGroup, + upsBasicBatteryGroup, upsBasicInputGroup, + upsBasicOutputGroup, upsBasicAlarmGroup, + upsBasicTestGroup, upsBasicControlGroup, + upsBasicConfigGroup } + + + OBJECT upsAlarmDescr + DESCRIPTION + "Support of all `well known' alarm types is not + required. The well known alarm types which must be + supported are: upsAlarmOnBattery, upsAlarmLowBattery, + upsAlarmDepletedBattery, upsAlarmTempBad, + upsAlarmInputBad, upsAlarmOutputOverload, + upsAlarmOnBypass, upsAlarmBypassBad, + upsAlarmOutputOffAsRequested, + upsAlarmUpsOffAsRequested, upsAlarmUpsOutputOff, + upsAlarmUpsSystemOff, upsAlarmGeneralFault, + upsAlarmDiagnosticTestFailed, + upsAlarmCommunicationsLost, upsAlarmShutdownPending, + and upsAlarmTestInProgress." + + OBJECT upsTestId + DESCRIPTION + "Support of all `well known' test types is not + required. If no tests are supported, then the only + well known test type which must be supported is + upsTestNoTestsInitiated." + + OBJECT upsOutputSource + SYNTAX INTEGER { + normal(2), + battery(4) + } + DESCRIPTION + "Support of the values other(1), none(2), bypass(4), + booster(6) and reducer(7) is not required." + + GROUP upsBasicBypassGroup + DESCRIPTION + "The upsBasicBypassGroup is only required for UPSs + that have a Bypass present." + OBJECT upsShutdownType + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required, i.e., compliant + systems need not support more than one shutdown type." + + OBJECT upsAutoRestart + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required, i.e., compliant + systems need not support more than one restart type." + + OBJECT upsConfigInputVoltage + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigInputFreq + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigOutputVoltage + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigOutputFreq + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigLowBattTime + DESCRIPTION + "Implementation of all possible values may be onerous + for some systems. Consequently, not all possible + values must be supported. However, at least two + different manufacturer-selected values must be + supported." + + ::= { upsCompliances 2 } + + upsFullCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for UPSs that support + advanced full-featured functions." + MODULE -- this module + MANDATORY-GROUPS { upsFullIdentGroup, upsFullBatteryGroup, + upsFullInputGroup, upsFullOutputGroup, + upsFullAlarmGroup, upsFullTestGroup, + upsFullControlGroup, upsFullConfigGroup } + + OBJECT upsAlarmDescr + DESCRIPTION + "Support of all `well known' alarm types is not + required. The well known alarm types which must be + supported are: upsAlarmBatteryBad, upsAlarmOnBattery, + upsAlarmLowBattery, upsAlarmDepletedBattery, + upsAlarmTempBad, upsAlarmInputBad, upsAlarmOnBypass, + upsAlarmBypassBad, upsAlarmOutputOffAsRequested, + upsAlarmUpsOffAsRequested, upsAlarmUpsOutputOff, + upsAlarmUpsSystemOff, upsAlarmGeneralFault, + upsAlarmDiagnosticTestFailed, + upsAlarmCommunicationsLost, upsAlarmShutdownPending, + and upsAlarmTestInProgress." + + OBJECT upsTestId + DESCRIPTION + "Support of all `well known' test types is not + required. The well known test types which must be + supported are: upsTestNoTestsInitiated, + upsTestGeneralSystemsTest, and + upsTestQuickBatteryTest." + + OBJECT upsOutputSource + SYNTAX INTEGER { + normal(2), + battery(4) + } + DESCRIPTION + "Support of the values other(1), none(2), bypass(4), + booster(6) and reducer(7) is not required." + + GROUP upsFullBypassGroup + DESCRIPTION + "The upsFullBypassGroup is only required for UPSs that + have a Bypass present." + + OBJECT upsShutdownType + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required, i.e., compliant + systems need not support more than one shutdown type." + + OBJECT upsAutoRestart + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required, i.e., compliant + systems need not support more than one restart type." + + OBJECT upsConfigInputVoltage + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigInputFreq + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigOutputVoltage + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigOutputFreq + MIN-ACCESS read-only + DESCRIPTION + "Read-write access is not required." + + OBJECT upsConfigLowBattTime + DESCRIPTION + "Implementation of all possible values may be onerous + for some systems. Consequently, not all possible + values must be supported. However, at least two + different manufacturer-selected values must be + supported." + + ::= { upsCompliances 3 } + + + -- + -- units of conformance + -- + + -- summary at a glance: + + -- subset basic adv + --upsIdentManufacturer x x x + --upsIdentModel x x x + --upsIdentUPSSoftwareVersion x x + --upsIdentAgentSoftwareVersion x x x + --upsIdentName x x x + --upsIdentAttachedDevices x x + -- + --upsBatteryStatus x x x notes + --upsSecondsOnBattery x x x + --upsEstimatedMinutesRemaining x + --upsEstimatedChargeRemaining x + --upsBatteryVoltage + --upsBatteryCurrent + --upsBatteryTemperature + -- + --upsInputLineBads x x x + --upsInputNumLines x x + --upsInputFrequency x x + --upsInputVoltage x x + --upsInputCurrent + --upsInputTruePower + -- + --upsOutputSource x x x notes + --upsOutputFrequency x x + --upsOutputNumLines x x + --upsOutputVoltage x x + --upsOutputCurrent x + --upsOutputPower x + --upsOutputPercentLoad x + -- + -- + --upsBypassFrequency x x notes + --upsBypassNumLines x x + --upsBypassVoltage x x + --upsBypassCurrent + --upsBypassPower + -- + -- + --upsAlarmsPresent x x x + --upsAlarmDescr x x x notes + --upsAlarmTime x x x + -- + --upsTestId x x notes + --upsTestSpinLock x x + --upsTestResultsSummary x x + --upsTestResultsDetail x x + --upsTestStartTime x x + --upsTestElapsedTime x x + -- + --upsShutdownType x x x notes + --upsShutdownAfterDelay x x x + --upsStartupAfterDelay x x + --upsRebootWithDuration x x + --upsAutoRestart x x x notes + -- + --upsConfigInputVoltage x x x notes + --upsConfigInputFreq x x x notes + --upsConfigOutputVoltage x x x notes + --upsConfigOutputFreq x x x notes + --upsConfigOutputVA x x x + --upsConfigOutputPower x x x + --upsConfigLowBattTime x x notes + --upsConfigAudibleStatus x x + --upsConfigLowVoltageTransferPoint + --upsConfigHighVoltageTransferPoint + + + -- units of conformance + upsGroups OBJECT IDENTIFIER ::= { upsConformance 2 } + + upsSubsetGroups OBJECT IDENTIFIER ::= { upsGroups 1 } + + upsSubsetIdentGroup OBJECT-GROUP + OBJECTS { upsIdentManufacturer, upsIdentModel, + upsIdentAgentSoftwareVersion, upsIdentName, + upsIdentAttachedDevices } + STATUS current + DESCRIPTION + "The upsSubsetIdentGroup defines objects which are + common across all UPSs which meet subset compliance. + Most devices which conform to the upsSubsetIdentGroup + will provide access to these objects via a proxy + agent. If the proxy agent is compatible with multiple + UPS types, configuration of the proxy agent will + require specifying some of these values, either + individually, or as a group (perhaps through a table + lookup mechanism based on the UPS model number)." + ::= { upsSubsetGroups 1 } + + upsSubsetBatteryGroup OBJECT-GROUP + OBJECTS { upsBatteryStatus, upsSecondsOnBattery } + STATUS current + DESCRIPTION + "The upsSubsetBatteryGroup defines the objects that + are common to battery groups of two-contact UPSs." + ::= { upsSubsetGroups 2 } + + upsSubsetInputGroup OBJECT-GROUP + OBJECTS { upsInputLineBads } + STATUS current + DESCRIPTION + "The upsSubsetInputGroup defines the objects that are + common to the Input groups of two-contact UPSs." + ::= { upsSubsetGroups 3 } + + upsSubsetOutputGroup OBJECT-GROUP + OBJECTS { upsOutputSource } + STATUS current + DESCRIPTION + "The upsSubsetOutputGroup defines the objects that are + common to the Output groups of two-contact UPSs." + ::= { upsSubsetGroups 4 } + + + -- { upsSubsetGroups 5 } is reserved for + -- future use (upsSubsetBypassGroup) + + upsSubsetAlarmGroup OBJECT-GROUP + OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime } + STATUS current + DESCRIPTION + "The upsSubsetAlarmGroup defines the objects that are + common to the Alarm groups of two-contact UPSs." + ::= { upsSubsetGroups 6 } + + -- { upsSubsetGroups 7 } is reserved for + -- future use (upsSubsetTestGroup) + + upsSubsetControlGroup OBJECT-GROUP + OBJECTS { upsShutdownType, upsShutdownAfterDelay, + upsAutoRestart } + STATUS current + DESCRIPTION + "The upsSubsetControlGroup defines the objects that + are common to the Control groups of two-contact UPSs." + ::= { upsSubsetGroups 8 } + + upsSubsetConfigGroup OBJECT-GROUP + OBJECTS { upsConfigInputVoltage, upsConfigInputFreq, + upsConfigOutputVoltage, upsConfigOutputFreq, + upsConfigOutputVA, upsConfigOutputPower } + STATUS current + DESCRIPTION + "The upsSubsetConfigGroup defines the objects that are + common to the Config groups of two-contact UPSs." + ::= { upsSubsetGroups 9 } + + upsBasicGroups OBJECT IDENTIFIER ::= { upsGroups 2 } + + upsBasicIdentGroup OBJECT-GROUP + OBJECTS { upsIdentManufacturer, upsIdentModel, + upsIdentUPSSoftwareVersion, + upsIdentAgentSoftwareVersion, upsIdentName } + STATUS current + DESCRIPTION + "The upsBasicIdentGroup defines objects which are + common to the Ident group of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 1 } + + upsBasicBatteryGroup OBJECT-GROUP + OBJECTS { upsBatteryStatus, upsSecondsOnBattery } + STATUS current + DESCRIPTION + "The upsBasicBatteryGroup defines the objects that are + common to the battery groups of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 2 } + + upsBasicInputGroup OBJECT-GROUP + OBJECTS { upsInputLineBads, upsInputNumLines, + upsInputFrequency, upsInputVoltage } + STATUS current + DESCRIPTION + "The upsBasicInputGroup defines the objects that are + common to the Input groups of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 3 } + + upsBasicOutputGroup OBJECT-GROUP + OBJECTS { upsOutputSource, upsOutputFrequency, + upsOutputNumLines, upsOutputVoltage } + STATUS current + DESCRIPTION + "The upsBasicOutputGroup defines the objects that are + common to the Output groups of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 4 } + + upsBasicBypassGroup OBJECT-GROUP + OBJECTS { upsBypassFrequency, upsBypassNumLines, + upsBypassVoltage } + STATUS current + DESCRIPTION + "The upsBasicBypassGroup defines the objects that are + common to the Bypass groups of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 5 } + + upsBasicAlarmGroup OBJECT-GROUP + OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime } + STATUS current + DESCRIPTION + + "The upsBasicAlarmGroup defines the objects that are + common to the Alarm groups of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 6 } + + upsBasicTestGroup OBJECT-GROUP + OBJECTS { upsTestId, upsTestSpinLock, + upsTestResultsSummary, upsTestResultsDetail, + upsTestStartTime, upsTestElapsedTime } + STATUS current + DESCRIPTION + "The upsBasicTestGroup defines the objects that are + common to the Test groups of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 7 } + + upsBasicControlGroup OBJECT-GROUP + OBJECTS { upsShutdownType, upsShutdownAfterDelay, + upsStartupAfterDelay, upsRebootWithDuration, + upsAutoRestart } + STATUS current + DESCRIPTION + "The upsBasicControlGroup defines the objects that are + common to the Control groups of compliant UPSs which + support basic functions." + ::= { upsBasicGroups 8 } + + upsBasicConfigGroup OBJECT-GROUP + OBJECTS { upsConfigInputVoltage, upsConfigInputFreq, + upsConfigOutputVoltage, upsConfigOutputFreq, + upsConfigOutputVA, upsConfigOutputPower, + upsConfigLowBattTime, upsConfigAudibleStatus } + STATUS current + DESCRIPTION + "The upsBasicConfigGroup defines the objects that are + common to the Config groups of UPSs which support + basic functions." + ::= { upsBasicGroups 9 } + + upsFullGroups OBJECT IDENTIFIER ::= { upsGroups 3 } + + upsFullIdentGroup OBJECT-GROUP + OBJECTS { upsIdentManufacturer, upsIdentModel, + upsIdentUPSSoftwareVersion, + upsIdentAgentSoftwareVersion, upsIdentName, + upsIdentAttachedDevices } + STATUS current + DESCRIPTION + "The upsFullIdentGroup defines objects which are + common to the Ident group of fully compliant UPSs." + ::= { upsFullGroups 1 } + + upsFullBatteryGroup OBJECT-GROUP + OBJECTS { upsBatteryStatus, upsSecondsOnBattery, + upsEstimatedMinutesRemaining, + upsEstimatedChargeRemaining } + STATUS current + DESCRIPTION + "The upsFullBatteryGroup defines the objects that are + common to the battery groups of fully compliant UPSs." + ::= { upsFullGroups 2 } + + upsFullInputGroup OBJECT-GROUP + OBJECTS { upsInputLineBads, upsInputNumLines, + upsInputFrequency, upsInputVoltage } + STATUS current + DESCRIPTION + "The upsFullInputGroup defines the objects that are + common to the Input groups of fully compliant UPSs." + ::= { upsFullGroups 3 } + + upsFullOutputGroup OBJECT-GROUP + OBJECTS { upsOutputSource, upsOutputFrequency, + upsOutputNumLines, upsOutputVoltage, + upsOutputCurrent, upsOutputPower, + upsOutputPercentLoad } + STATUS current + DESCRIPTION + "The upsFullOutputGroup defines the objects that are + common to the Output groups of fully compliant UPSs." + ::= { upsFullGroups 4 } + + upsFullBypassGroup OBJECT-GROUP + OBJECTS { upsBypassFrequency, upsBypassNumLines, + upsBypassVoltage } + STATUS current + DESCRIPTION + "The upsFullBypassGroup defines the objects that are + common to the Bypass groups of fully compliant UPSs." + ::= { upsFullGroups 5 } + + upsFullAlarmGroup OBJECT-GROUP + OBJECTS { upsAlarmsPresent, upsAlarmDescr, upsAlarmTime } + STATUS current + DESCRIPTION + + "The upsFullAlarmGroup defines the objects that are + common to the Alarm groups of fully compliant UPSs." + ::= { upsFullGroups 6 } + + upsFullTestGroup OBJECT-GROUP + OBJECTS { upsTestId, upsTestSpinLock, + upsTestResultsSummary, upsTestResultsDetail, + upsTestStartTime, upsTestElapsedTime } + STATUS current + DESCRIPTION + "The upsFullTestGroup defines the objects that are + common to the Test groups of fully compliant UPSs." + ::= { upsFullGroups 7 } + + upsFullControlGroup OBJECT-GROUP + OBJECTS { upsShutdownType, upsShutdownAfterDelay, + upsStartupAfterDelay, upsRebootWithDuration, + upsAutoRestart } + STATUS current + DESCRIPTION + "The upsFullControlGroup defines the objects that are + common to the Control groups of fully compliant UPSs." + ::= { upsFullGroups 8 } + + upsFullConfigGroup OBJECT-GROUP + OBJECTS { upsConfigInputVoltage, upsConfigInputFreq, + upsConfigOutputVoltage, upsConfigOutputFreq, + upsConfigOutputVA, upsConfigOutputPower, + upsConfigLowBattTime, upsConfigAudibleStatus } + STATUS current + DESCRIPTION + "The upsFullConfigGroup defines the objects that are + common to the Config groups of fully compliant UPSs." + ::= { upsFullGroups 9 } + + END diff --git a/pandora_console/attachment/mibs/WINS-MIB b/pandora_console/attachment/mibs/WINS-MIB new file mode 100644 index 0000000000..4fd20296a3 --- /dev/null +++ b/pandora_console/attachment/mibs/WINS-MIB @@ -0,0 +1,802 @@ + WINS-MIB DEFINITIONS ::= BEGIN + + + IMPORTS + enterprises, + OBJECT-TYPE + FROM RFC1155-SMI + DisplayString + FROM RFC1213-MIB; + + + microsoft OBJECT IDENTIFIER ::= { enterprises 311 } + software OBJECT IDENTIFIER ::= { microsoft 1 } + wins OBJECT IDENTIFIER ::= { software 2 } + par OBJECT IDENTIFIER ::= { wins 1 } + pull OBJECT IDENTIFIER ::= { wins 2 } + push OBJECT IDENTIFIER ::= { wins 3 } + datafiles OBJECT IDENTIFIER ::= { wins 4 } + cmd OBJECT IDENTIFIER ::= { wins 5 } + + + + -- WINS MIB + -- Parameters (Prefix Par) + + parWinsStartTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Wins start time" + ::= { par 1 } + + parLastPScvTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent date and time at which planned scavenging + took place. Planned scavenging happens at intervals + specified in the registry. Scavenging involves + changing owned non-refreshed entries to the released + state. Further, replicas may be changed to tombstones, + tombstones maye be deleted and revalidation of old + replicas may take place" + ::= { par 2 } + + parLastATScvTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which scavenging as a + result of administrative action took place" + ::= { par 3 } + + parLastTombScvTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which replica tombstone + scavenging took place" + ::= { par 4 } + parLastVerifyScvTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which revalidation of + old active replicas took place" + ::= { par 5 } + + parLastPRplTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which planned replication + took place. Planned replication happens at intervals + specified in the registry" + ::= { par 6 } + + parLastATRplTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which administrator + triggered replication took place." + ::= { par 7 } + + parLastNTRplTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which network triggered + replication took place. Network triggered replication + happens as a result of an update notification message + from a remote WINS" + ::= { par 8 } + + parLastACTRplTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which address change + triggered replication took place. Address change + triggered replication happens when the address of + an owned name changes due to a new registration" + ::= { par 9 } + + parLastInitDbTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which the local database + was populated statically from one or more data files" + ::= { par 10 } + + parLastCounterResetTime OBJECT-TYPE + SYNTAX DisplayString (SIZE (1..30)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Most recent data and time at which the local counters + were initialized to zero" + ::= { par 11 } + + parWinsTotalNoOfReg OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + registrations received" + ::= { par 12 } + + parWinsTotalNoOfQueries OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + queries received" + ::= { par 13 } + + parWinsTotalNoOfRel OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + releases received" + ::= { par 14 } + + parWinsTotalNoOfSuccRel OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + releases that succeeded" + ::= { par 15 } + + parWinsTotalNoOfFailRel OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + releases that failed" + ::= { par 16 } + + parWinsTotalNoOfSuccQueries OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + queries that succeeded" + ::= { par 17 } + + parWinsTotalNoOfFailQueries OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This variable indicates the number of + queries that failed" + ::= { par 18 } + + parRefreshInterval OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the refresh interval. + Unit is in milliseconds" + ::= { par 19 } + + parTombstoneInterval OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the tombstone interval, + Unit is in milliseconds" + ::= { par 20 } + + parTombstoneTimeout OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the tombstone timeout. + Unit is in milliseconds" + ::= { par 21 } + + parVerifyInterval OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the verify interval + Unit is in milliseconds." + ::= { par 22 } + + parVersCounterStartValLowWord OBJECT-TYPE + SYNTAX Counter + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the low word of the + version counter that WINS should start with" + ::= { par 23 } + + parVersCounterStartValHighWord OBJECT-TYPE + SYNTAX Counter + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the High word of the + version counter that WINS should start with" + ::= { par 24 } + + parRplOnlyWCnfPnrs OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether or not + replication should be done with non-configures pnrs. + If not set to zero, replication will be done only with + partners listed in the registry (except when an + update notification comes in)" + ::= { par 25 } + + parStaticDataInit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether Static data should + be read in at initialization and reconfiguration time. + Update of any mib variable in the parameters group + constitutes reconfigurations " + ::= { par 26 } + + parLogFlag OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether logging should be + done. Default behaviour is to do logging" + ::= { par 27 } + + parLogFileName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable gives the path to the log file" + ::= { par 28 } + + parBackupDirPath OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable gives the path to the backup dir" + ::= { par 29 } + + parDoBackupOnTerm OBJECT-TYPE + SYNTAX INTEGER { + no(0), + yes(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable specifies whether WINS should do + backup on termination. Setting it 1 holds no + meaning unless parBackupDirPath is set also" + ::= { par 30 } + + parMigrateOn OBJECT-TYPE + SYNTAX INTEGER { + no(0), + yes(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable specifies whether static records + in the wins database should be treated as + dynamic records during conflicts with new + dynamic registrations." + ::= { par 31 } + +-- datafiles group (Prefix df) + + dfDatafilesTable OBJECT-TYPE + SYNTAX SEQUENCE OF DFDatafileEntry + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A list of datafiles specified under the Datafiles + key in the registry. These files are used for + statically initialization of the WINS database" + ::= { datafiles 1 } + + dfDatafileEntry OBJECT-TYPE + SYNTAX DFDatafileEntry + ACCESS read-write + STATUS mandatory + DESCRIPTION + "data file name" + INDEX { dfDatafileIndex } + ::= { dfDatafilesTable 1 } + + DFDatafileEntry ::= SEQUENCE { + dfDatafileIndex + INTEGER, + dfDatafileName + DisplayString + } + + dfDatafileIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Used for indexing entries in the datafiles table. + It has no other use" + ::= { dfDatafileEntry 1 } + + dfDatafileName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Name of the datafile to use for static initialization" + ::= { dfDatafileEntry 2 } + +-- pull group (Prefix pull) + + pullInitTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether pull should be + done at WINS invocation and at reconfiguration. + If any pull group's mib variable is set, that + constitutes reconfiguration" + ::= { pull 1 } + + pullCommRetryCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable gives the retry count in + case of comm failure when doing pull replication. + This is the max. number of retries that will be + done at the interval specified for the Partner + before WINS will stop for a certain number (canned) of + replication time intervals before starting again." + ::= { pull 2 } + + pullPnrTable OBJECT-TYPE + SYNTAX SEQUENCE OF PullPnrEntry + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A list of Partners with which pull replication needs + to be done" + ::= { pull 3 } + + pPullPnrEntry OBJECT-TYPE + SYNTAX PullPnrEntry + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the row corresponding to a partner" + INDEX { pullPnrAdd } + ::= { pullPnrTable 1 } + + PullPnrEntry ::= SEQUENCE { + pullPnrAdd + IpAddress, + + pullPnrSpTime + DisplayString, + + pullPnrTimeInterval + INTEGER, + + pullPnrMemberPrec + Counter, + + pullPnrNoOfSuccRpls + Counter, + + pullPnrNoOfCommFails + Counter + + } + pullPnrAdd OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the address of the remote WINS partner" + ::= { pPullPnrEntry 1 } + + + pullPnrSpTime OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable gives the specific time at which + pull replication should occur" + ::= { pPullPnrEntry 2 } + + pullPnrTimeInterval OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable gives the time interval for + pull replication" + ::= { pPullPnrEntry 3 } + + pullPnrMemberPrec OBJECT-TYPE + SYNTAX + INTEGER { + low(0), + high(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the precedence to be given to members of + the special group pulled from the WINS. Note: + the precedence of locally registered members of a + special group is more than any replicas pulled in" + ::= { pPullPnrEntry 4 } + + pullPnrNoOfSuccRpls OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times replication was successful with + the WINS after invocation or reset of counters" + ::= { pPullPnrEntry 5 } + + pullPnrNoOfCommFails OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times replication was unsuccessful with + the WINS due to comm. failure (after invocation or reset + of counters" + ::= { pPullPnrEntry 6 } + + pullPnrVersNoLowWord OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The low word of the highest vers. no found in records + owned by this WINS." + ::= { pPullPnrEntry 7 } + + pullPnrVersNoHighWord OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The high word of the highest vers. no found in records + owned by this WINS." + ::= { pPullPnrEntry 8 } + +-- push group (Prefix - push) + pushInitTime OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether a push (i.e. + notification message) should be done at invocation." + ::= { push 1 } + + pushRplOnAddChg OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates whether a notification + message should be sent when address changes" + ::= { push 2 } + + pushPnrTable OBJECT-TYPE + SYNTAX SEQUENCE OF PushPnrEntry + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A list of WINS Partners with which push + replication is to be initiated" + ::= { push 3 } + + + pushPnrEntry OBJECT-TYPE + SYNTAX PushPnrEntry + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the row corresponding to the WINS pnr" + INDEX { pushPnrAdd } + ::= { pushPnrTable 1 } + + PushPnrEntry ::= SEQUENCE { + pushPnrAdd + INTEGER, + + pushPnrUpdateCount + INTEGER + + } + + pushPnrAdd OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Address of the WINS partner" + ::= { pushPnrEntry 1 } + + pushPnrUpdateCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable indicates the # of updates that + should result in a push message" + ::= { pushPnrEntry 2 } + +-- cmd group (Prefix - cmd) + + cmdPullTrigger OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable when set will cause the WINS to + pull from the remote WINS identified by the IpAddress" + ::= { cmd 1 } + + cmdPushTrigger OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable when set will cause the WINS to + push a notification message to the remote WINS + identified by the IpAddress" + ::= { cmd 2 } + + cmdDeleteWins OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable when set will cause all information + pertaining to a WINS (data records, context + information to be deleted from the local WINS. + Use this only when owner-address mapping table is + getting to near capacity. NOTE: deletion of all + information pertaining to the managed WINS is not + permitted" + ::= { cmd 3 } + + cmdDoScavenging OBJECT-TYPE + SYNTAX INTEGER { + no(0), + yes(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable when set will cause WINS to do + scavenging." + ::= { cmd 4 } + + cmdDoStaticInit OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When set WINS will do static initialization + using the file specified as the value. If + 0 is specified, WINS will do static + initialization using the files specified + in the registry (can be read-written using + Datafile table" + ::= { cmd 5 } + + cmdNoOfWrkThds OBJECT-TYPE + SYNTAX INTEGER (1..4) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Sets the number of worker threads in WINS" + ::= { cmd 6 } + + cmdPriorityClass OBJECT-TYPE + SYNTAX INTEGER { + normal(0), + high(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Set the priority class of WINS to normal or high" + ::= { cmd 7 } + + cmdResetCounters OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Reset the counters. Value is ignored" + ::= { cmd 8 } + + cmdDeleteDbRecs OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable when set will cause all date records + pertaining to a WINS to be deleted from the local WINS. + Note: Only data records are deleted." + ::= { cmd 9 } + + cmdDRPopulateTable OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This variable can set to retrieve records of + a WINS whose Ip address is provided. When set + the table is populated right-away" + ::= { cmd 10 } + + cmdDRDataRecordsTable OBJECT-TYPE + SYNTAX SEQUENCE OF CmdDRRecordEntry + ACCESS read-only + STATUS mandatory + DESCRIPTION + "This is the table that stores the data records + The records are sorted lexicographically by name + Note: the table is cached (to save on overhead on WINS) + To repopulate the table, set cmdDRDataRecordsTable + mib var" + ::= { cmd 11 } + + cmdDRRecordEntry OBJECT-TYPE + SYNTAX CmdDRRecordEntry + ACCESS read-write + STATUS mandatory + DESCRIPTION "data record owned by WINS whose address + was specified when CmdDRRecordsTable was + set" + INDEX { cmdDRRecordName } + ::= { cmdDRDataRecordsTable 1 } + + CmdDRRecordEntry ::= SEQUENCE { + cmdDRRecordName + DisplayString, + cmdDRRecordAddress + OCTET STRING, + cmdDRRecordType + INTEGER, + cmdDRRecordPersistenceType + INTEGER, + cmdDRRecordState + INTEGER + } + + cmdDRRecordName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(1..255)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Name in the record" + ::= { cmdDRRecordEntry 1 } + + cmdDRRecordAddress OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Address(es) of the record. If the record is + a multihomed record or a special group, the + addresses are returned sequentially in pairs. + Each pair is comprised of the address of the + owner wins followed by the address of the + machine (multihomed)/member (special group). + Note: Following snmp's convention, the records + are always returned in network byte order" + ::= { cmdDRRecordEntry 2 } + + cmdDRRecordType OBJECT-TYPE + SYNTAX INTEGER { + unique(0), + normalgroup(1), + specialgroup(2), + multihomed(3) + } + -- Note the above order should not be disturbed. It is same as + -- in winsintf.h (WINSINTF_RECTYPE_E) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Type of the record" + ::= {cmdDRRecordEntry 3 } + + cmdDRRecordPersistenceType OBJECT-TYPE + SYNTAX INTEGER { + static(0), + dynamic(1) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Persistence type of the record" + ::= { cmdDRRecordEntry 4 } + + cmdDRRecordState OBJECT-TYPE + SYNTAX INTEGER { + active(0), + released(1), + tombstone(2), + deleted(3) + } + -- Note the above order should not be disturbed. It is same as + -- in winsintf.h (WINSINTF_STATE_E) + + -- for a SET operation only released and deleted values are + -- allowed + ACCESS read-only + STATUS mandatory + DESCRIPTION + "State of the record." + ::= { cmdDRRecordEntry 5 } + + cmdWinsVersNoLowWord OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The low word of the version number counter of the WINS" + ::= { cmd 12 } + + cmdWinsVersNoHighWord OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The high word of the version number counter of the WINS" + ::= { cmd 13 } + END + diff --git a/pandora_console/attachment/mibs/WLSX-MON-MIB b/pandora_console/attachment/mibs/WLSX-MON-MIB new file mode 100644 index 0000000000..5012868254 --- /dev/null +++ b/pandora_console/attachment/mibs/WLSX-MON-MIB @@ -0,0 +1,2958 @@ +--- ArubaOS 6.5.2.0_59123 +-- vim:set ts=4 sw=4: +WLSX-MON-MIB DEFINITIONS ::= BEGIN + + IMPORTS + TEXTUAL-CONVENTION FROM SNMPv2-TC + + MODULE-IDENTITY, + OBJECT-TYPE, + snmpModules, + Integer32, + Counter32, + IpAddress, + NOTIFICATION-TYPE + FROM SNMPv2-SMI + + TDomain, + DisplayString, + PhysAddress, + TAddress, + TimeInterval, + RowStatus, + StorageType, + TestAndIncr, + MacAddress, + TruthValue + FROM SNMPv2-TC + + ArubaEnableValue, + ArubaFrameType, + ArubaRogueApType, + ArubaStationType, + ArubaPhyType, + ArubaAPMatchType, + ArubaAPMatchMethod, + ArubaHTMode, + ArubaHTRate, + ArubaMonEncryptionType, + ArubaMonEncryptionCipher, + ArubaMonAuthAlgorithm + FROM ARUBA-TC + + OBJECT-GROUP + FROM SNMPv2-CONF + wlsxEnterpriseMibModules + FROM ARUBA-MIB; + + wlsxMonMIB MODULE-IDENTITY + LAST-UPDATED "0804160206Z" + ORGANIZATION "Aruba Wireless Networks" + CONTACT-INFO + "Postal: 1322 Crossman Avenue + Sunnyvale, CA 94089 + E-mail: dl-support@arubanetworks.com + Phone: +1 408 227 4500" + DESCRIPTION + " + This MIB module defines MIB objects which provide + information about the Monitored Access Points. + " + REVISION "0804160206Z" + DESCRIPTION + "The initial revision." + ::= { wlsxEnterpriseMibModules 6 } + + wlsxMonStatsGroup OBJECT IDENTIFIER ::= { wlsxMonMIB 6 } + wlsxMonInfoGroup OBJECT IDENTIFIER ::= { wlsxMonMIB 7 } + + wlsxMonAccessPointStatsGroup OBJECT IDENTIFIER ::= { wlsxMonStatsGroup 1 } + wlsxMonStationStatsGroup OBJECT IDENTIFIER ::= { wlsxMonStatsGroup 2 } + +-- Stats group contains tables for station statistics, channel statistics and +-- AP statistics. + + wlsxMonAPStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonAPStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the statistics of all the APs being monitored + by the controller. + " + ::= { wlsxMonAccessPointStatsGroup 1 } + + wlsxMonAPStatsEntry OBJECT-TYPE + SYNTAX WlsxMonAPStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Monitored Access Point Stats entry" + INDEX {monPhyAddress, monRadioNumber, monitoredApBSSID} + ::= { wlsxMonAPStatsTable 1 } + + WlsxMonAPStatsEntry ::= + SEQUENCE { + monPhyAddress MacAddress, + monRadioNumber Integer32, + monitoredApBSSID MacAddress, + monPhyType ArubaPhyType, + monAPCurrentChannel Unsigned32, + monAPNumClients Integer32, + monAPTxPkts Counter32, + monAPTxBytes Counter32, + monAPRxPkts Counter32, + monAPRxBytes Counter32, + monAPTxDeauthentications Counter32, + monAPRxDeauthentications Counter32, + monAPChannelThroughput Integer32, + monAPFrameRetryRate Integer32, + monAPFrameLowSpeedRate Integer32, + monAPFrameNonUnicastRate Integer32, + monAPFrameFragmentationRate Integer32, + monAPFrameBandwidthRate Integer32, + monAPFrameRetryErrorRate Integer32, + monAPChannelErrorRate Integer32, + monAPESSID DisplayString, + monAPRSSI Integer32, + monAPFrameReceiveErrorRate Integer32 + } + + monPhyAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + MAC address of the air monitor that is monitoring the AP. + " + ::= { wlsxMonAPStatsEntry 1} + + monRadioNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Radio number of the air monitor that is monitoring the AP. + " + ::= { wlsxMonAPStatsEntry 2 } + + monitoredApBSSID OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + BSSID of the access point being monitored. + " + ::= { wlsxMonAPStatsEntry 3} + + monPhyType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + PHY type of the access point being monitored. + " + ::= { wlsxMonAPStatsEntry 4 } + + + monAPCurrentChannel OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Channel the monitored AP is using. + " + ::= { wlsxMonAPStatsEntry 5 } + + monAPNumClients OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of clients associated to this monitored AP. + " + ::= { wlsxMonAPStatsEntry 6 } + + monAPTxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets transmitted by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 7 } + + monAPTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes transmitted by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 8 } + + monAPRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets received by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 9 } + + monAPRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes received by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 10 } + + monAPTxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of deauthentications transmitted by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 11 } + + monAPRxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of deauthentications received by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 12 } + + monAPChannelThroughput OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The throughput achieved on this channel by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 13 } + + monAPFrameRetryRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of retry + packets as a percentage of the total packets + transmitted and received by this monitored AP + " + ::= { wlsxMonAPStatsEntry 14 } + + monAPFrameLowSpeedRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of low data rate (<= 18Mbps for A/G bands and <=2Mbps + for B band) packets as a percentage of the total packets + transmitted and received by this monitored AP + " + ::= { wlsxMonAPStatsEntry 15 } + + monAPFrameNonUnicastRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The multicast rate on this monitored AP. + " + ::= { wlsxMonAPStatsEntry 16 } + + monAPFrameFragmentationRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of fragments + as a percentage of the total packets + transmitted by this monitored AP. + " + ::= { wlsxMonAPStatsEntry 17 } + + monAPFrameBandwidthRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The bandwidth of this monitored AP in Kbps. + " + ::= { wlsxMonAPStatsEntry 18 } + + monAPFrameRetryErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received on this monitored AP. + " + ::= { wlsxMonAPStatsEntry 19 } + + monAPChannelErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets received + on the current channel. + " + ::= { wlsxMonAPStatsEntry 20 } + + monAPESSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + ESSID of the access point being monitored. + " + ::= { wlsxMonAPStatsEntry 21 } + + monAPRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + SNR of the access point being monitored. + " + ::= { wlsxMonAPStatsEntry 22 } + + monAPFrameReceiveErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received on this monitored AP. + " + ::= { wlsxMonAPStatsEntry 23 } + +-- This table breaks down the AP statistics observed into different +-- rate categories. + + wlsxMonAPRateStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonAPRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the monitored AP Packet and Byte Counts + but represented in terms of rate categories. + " + + ::= { wlsxMonAccessPointStatsGroup 2 } + + wlsxMonAPRateStatsEntry OBJECT-TYPE + SYNTAX WlsxMonAPRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Data rate based packet and byte count entry for a monitored AP" + INDEX {monPhyAddress, monRadioNumber, monitoredApBSSID} + ::= { wlsxMonAPRateStatsTable 1 } + + WlsxMonAPRateStatsEntry ::= + SEQUENCE { + monAPStatsTotPktsAt1Mbps Counter32, + monAPStatsTotBytesAt1Mbps Counter32, + monAPStatsTotPktsAt2Mbps Counter32, + monAPStatsTotBytesAt2Mbps Counter32, + monAPStatsTotPktsAt5Mbps Counter32, + monAPStatsTotBytesAt5Mbps Counter32, + monAPStatsTotPktsAt11Mbps Counter32, + monAPStatsTotBytesAt11Mbps Counter32, + monAPStatsTotPktsAt6Mbps Counter32, + monAPStatsTotBytesAt6Mbps Counter32, + monAPStatsTotPktsAt12Mbps Counter32, + monAPStatsTotBytesAt12Mbps Counter32, + monAPStatsTotPktsAt18Mbps Counter32, + monAPStatsTotBytesAt18Mbps Counter32, + monAPStatsTotPktsAt24Mbps Counter32, + monAPStatsTotBytesAt24Mbps Counter32, + monAPStatsTotPktsAt36Mbps Counter32, + monAPStatsTotBytesAt36Mbps Counter32, + monAPStatsTotPktsAt48Mbps Counter32, + monAPStatsTotBytesAt48Mbps Counter32, + monAPStatsTotPktsAt54Mbps Counter32, + monAPStatsTotBytesAt54Mbps Counter32, + monAPStatsTotPktsAt9Mbps Counter32, + monAPStatsTotBytesAt9Mbps Counter32 + } + + monAPStatsTotPktsAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 1Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 1 } + + monAPStatsTotBytesAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 1Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 2 } + + monAPStatsTotPktsAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 2Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 3 } + + monAPStatsTotBytesAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 2Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 4 } + + monAPStatsTotPktsAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 5Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 5 } + + monAPStatsTotBytesAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 5Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 6 } + + monAPStatsTotPktsAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 11Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 7 } + + monAPStatsTotBytesAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 11Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 8 } + + monAPStatsTotPktsAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 6Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 9 } + + monAPStatsTotBytesAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 6Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 10 } + + monAPStatsTotPktsAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 12Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 11 } + + monAPStatsTotBytesAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 12Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 12 } + + monAPStatsTotPktsAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 18Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 13 } + + monAPStatsTotBytesAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 18Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 14 } + + monAPStatsTotPktsAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 24Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 15 } + + monAPStatsTotBytesAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 24Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 16 } + + monAPStatsTotPktsAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 36Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 17 } + + monAPStatsTotBytesAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 36Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 18 } + + monAPStatsTotPktsAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 48Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 19 } + + monAPStatsTotBytesAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 48Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 20 } + + monAPStatsTotPktsAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 54Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 21 } + + monAPStatsTotBytesAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 54Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 22 } + + monAPStatsTotPktsAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + from this BSSID at 9Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 23 } + + monAPStatsTotBytesAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + from this BSSID at 9Mbps rate. + " + ::= { wlsxMonAPRateStatsEntry 24 } + + +-- This table breaks down the channel statistics observed based on the +-- Destination Address Types. + + wlsxMonAPDATypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonAPDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the per BSSID Packet and Byte Counts + but broken down in terms of Destination Address Type. + " + ::= { wlsxMonAccessPointStatsGroup 3 } + + wlsxMonAPDATypeStatsEntry OBJECT-TYPE + SYNTAX WlsxMonAPDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Destination Address based packet and byte count entry for a + monitored AP + " + INDEX {monPhyAddress, monRadioNumber, monitoredApBSSID} + ::= { wlsxMonAPDATypeStatsTable 1 } + + WlsxMonAPDATypeStatsEntry ::= + SEQUENCE { + monAPStatsTotDABroadcastPkts Counter32 , + monAPStatsTotDABroadcastBytes Counter32 , + monAPStatsTotDAMulticastPkts Counter32 , + monAPStatsTotDAMulticastBytes Counter32 , + monAPStatsTotDAUnicastPkts Counter32 , + monAPStatsTotDAUnicastBytes Counter32 + + } + + monAPStatsTotDABroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Broadcast packets + observed from this BSSID. + " + ::= { wlsxMonAPDATypeStatsEntry 1 } + + monAPStatsTotDABroadcastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Broadcast Bytes + observed from this BSSID. + " + ::= { wlsxMonAPDATypeStatsEntry 2 } + + monAPStatsTotDAMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Multicast packets + observed from this BSSID. + " + ::= { wlsxMonAPDATypeStatsEntry 3 } + + monAPStatsTotDAMulticastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Multicast Bytes + observed from this BSSID. + " + ::= { wlsxMonAPDATypeStatsEntry 4 } + + monAPStatsTotDAUnicastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Unicast packets + observed from this BSSID. + " + ::= { wlsxMonAPDATypeStatsEntry 5 } + + monAPStatsTotDAUnicastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Unicast Bytes + observed from this BSSID. + " + ::= { wlsxMonAPDATypeStatsEntry 6 } + +-- This table breaks down the channel statistics observed based on the +-- the Type of the Packet. + + wlsxMonAPFrameTypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonAPFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the per BSSID Packet and Byte Counts + but broken down into different Frame Types. + " + ::= { wlsxMonAccessPointStatsGroup 4 } + + wlsxMonAPFrameTypeStatsEntry OBJECT-TYPE + SYNTAX WlsxMonAPFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Frame Type based packet and byte count entry for a monitored AP" + INDEX {monPhyAddress, monRadioNumber, monitoredApBSSID} + ::= { wlsxMonAPFrameTypeStatsTable 1 } + + WlsxMonAPFrameTypeStatsEntry ::= + SEQUENCE { + monAPStatsTotMgmtPkts Counter32 , + monAPStatsTotMgmtBytes Counter32 , + monAPStatsTotCtrlPkts Counter32 , + monAPStatsTotCtrlBytes Counter32 , + monAPStatsTotDataPkts Counter32 , + monAPStatsTotDataBytes Counter32 + + } + + monAPStatsTotMgmtPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Management packets + observed from this BSSID. + " + ::= { wlsxMonAPFrameTypeStatsEntry 1 } + + monAPStatsTotMgmtBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Management Bytes + observed from this BSSID. + " + ::= { wlsxMonAPFrameTypeStatsEntry 2 } + + monAPStatsTotCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Control packets + observed from this BSSID. + " + ::= { wlsxMonAPFrameTypeStatsEntry 3 } + + monAPStatsTotCtrlBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Control Bytes + observed from this BSSID. + " + ::= { wlsxMonAPFrameTypeStatsEntry 4 } + + monAPStatsTotDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Data packets + observed from this BSSID. + " + ::= { wlsxMonAPFrameTypeStatsEntry 5 } + + monAPStatsTotDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Data Bytes + observed from this BSSID. + " + ::= { wlsxMonAPFrameTypeStatsEntry 6 } + +-- This table breaks down the channel statistics observed into packet size +-- buckets. + + wlsxMonAPPktSizeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonAPPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the per BSSID Packet and Byte Counts + but broken down into different Packet Sizes. + " + ::= { wlsxMonAccessPointStatsGroup 5 } + + wlsxMonAPPktSizeStatsEntry OBJECT-TYPE + SYNTAX WlsxMonAPPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Packet Size based packet count entry for a BSSID" + INDEX {monPhyAddress, monRadioNumber, monitoredApBSSID} + ::= { wlsxMonAPPktSizeStatsTable 1 } + + WlsxMonAPPktSizeStatsEntry ::= + SEQUENCE { + monAPStatsPkts63Bytes Counter32 , + monAPStatsPkts64To127 Counter32 , + monAPStatsPkts128To255 Counter32 , + monAPStatsPkts256To511 Counter32 , + monAPStatsPkts512To1023 Counter32 , + monAPStatsPkts1024To1518 Counter32 + + } + + monAPStatsPkts63Bytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets transmitted + by the AP that were less than 64 bytes long. + " + ::= { wlsxMonAPPktSizeStatsEntry 1 } + + monAPStatsPkts64To127 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets transmitted + by the AP that were between 64 and 127 bytes long. + " + ::= { wlsxMonAPPktSizeStatsEntry 2 } + + monAPStatsPkts128To255 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets + transmitted by the AP that were between 128 and 255 bytes long. + " + ::= { wlsxMonAPPktSizeStatsEntry 3 } + + monAPStatsPkts256To511 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets transmitted + by the AP that were between 256 and 511 bytes long. + " + ::= { wlsxMonAPPktSizeStatsEntry 4 } + + monAPStatsPkts512To1023 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets transmitted + by the AP that were between 512 and 1023 bytes long. + " + ::= { wlsxMonAPPktSizeStatsEntry 5 } + + monAPStatsPkts1024To1518 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets transmitted + by the AP that were between 1024 and 1518 bytes long. + " + ::= { wlsxMonAPPktSizeStatsEntry 6 } + +-- This table breaks down the AP statistics observed into different +-- HT rate categories. + + wlsxMonAPHTRateStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonAPHTRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the monitored AP Packet and Byte Counts + but represented in terms of HT rate categories. + " + + ::= { wlsxMonAccessPointStatsGroup 6 } + + wlsxMonAPHTRateStatsEntry OBJECT-TYPE + SYNTAX WlsxMonAPHTRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Data rate based packet and byte count entry for a monitored AP" + INDEX { monPhyAddress, monRadioNumber, monitoredApBSSID, monHTRate } + ::= { wlsxMonAPHTRateStatsTable 1 } + + WlsxMonAPHTRateStatsEntry ::= + SEQUENCE { + monHTRate ArubaHTRate, + monAPStatsTotHTPkts Counter32, + monAPStatsTotHTBytes Counter32 + } + + monHTRate OBJECT-TYPE + SYNTAX ArubaHTRate + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The rate at which the counters apply + " + ::= { wlsxMonAPHTRateStatsEntry 1 } + + monAPStatsTotHTPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of packets processed at the indicated rate + " + ::= { wlsxMonAPHTRateStatsEntry 2 } + + monAPStatsTotHTBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of bytes processed at the indicated rate + " + ::= { wlsxMonAPHTRateStatsEntry 3 } + +-- wlsxMonStationStatsGroup contains all the statistics observed by different +-- Air Monitors attached to this controller. +-- Station Statatistics are observed by the Air Monitor for that +-- specific Station. + +-- Station Statistics are grouped into Generic, +-- Rate, Destination Address and Frame Type Stats. + +-- Station Statistics Group contains all the statistics related to +-- a Station. + +-- wlsxMonStationStatsTable will contain all the Agregate statistics collected +-- for a Station + + wlsxMonStationStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF MonStationStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the statistics of all the wireless stations being monitored + by an AP connected to this controller. + " + ::= { wlsxMonStationStatsGroup 1} + + wlsxMonStationStatsEntry OBJECT-TYPE + SYNTAX MonStationStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Monitored Station Stats Entry" + INDEX {monPhyAddress, monRadioNumber, monitoredStaPhyAddress} + ::= { wlsxMonStationStatsTable 1 } + + MonStationStatsEntry ::= + SEQUENCE { + monitoredStaPhyAddress MacAddress, + monStaChannelNum Unsigned32, + monStaTxPkts Counter32, + monStaTxBytes Counter32, + monStaRxPkts Counter32, + monStaRxBytes Counter32, + monStaTxBCastPkts Counter32, + monStaTxBCastBytes Counter32, + monStaTxMCastPkts Counter32, + monStaTxMCastBytes Counter32, + monStaDataPkts Counter32, + monStaCtrlPkts Counter32, + monStaNumAssocRequests Counter32, + monStaNumAuthRequests Counter32, + monStaTxDeauthentications Counter32, + monStaRxDeauthentications Counter32, + monStaFrameRetryRate Integer32, + monStaFrameLowSpeedRate Integer32, + monStaFrameNonUnicastRate Integer32, + monStaFrameFragmentationRate Integer32, + monStaFrameBandwidthRate Integer32, + monStaFrameRetryErrorRate Integer32, + monStaBSSID MacAddress, + monStaESSID DisplayString, + monStaPhyType ArubaPhyType, + monStaRSSI Integer32, + monStaFrameReceiveErrorRate Integer32 + } + + monitoredStaPhyAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + MAC address of the monitored station + " + ::= { wlsxMonStationStatsEntry 1} + + monStaChannelNum OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The channel the station is currently using. + " + ::= { wlsxMonStationStatsEntry 2 } + + monStaTxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 3 } + + monStaTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 4 } + + monStaRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets received by this station. + " + ::= { wlsxMonStationStatsEntry 5 } + + monStaRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes received by this station. + " + ::= { wlsxMonStationStatsEntry 6 } + + monStaTxBCastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast packets transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 7 } + + monStaTxBCastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast bytes transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 8 } + + monStaTxMCastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of multicast packets transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 9 } + + monStaTxMCastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of multicast bytes transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 10 } + + monStaDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of Data packets transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 11 } + + monStaCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of Control packets transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 12 } + + monStaNumAssocRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Association requests transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 13 } + + monStaNumAuthRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Authentication requests transmitted by this station + " + ::= { wlsxMonStationStatsEntry 14 } + + monStaTxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Deauthentication frames transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 15 } + + monStaRxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Deauthentication frames received by this station. + " + ::= { wlsxMonStationStatsEntry 16 } + + monStaFrameRetryRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of retry + packets as a percentage of the total packets + transmitted and received by this station. + " + ::= { wlsxMonStationStatsEntry 17 } + + monStaFrameLowSpeedRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of low data rate (<= 18Mbps for A/G bands and <=2Mbps + for B band) packets as a percentage of the total packets + transmitted and received by this station. + " + ::= { wlsxMonStationStatsEntry 18 } + + monStaFrameNonUnicastRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast and multicast + packets as a percentage of the total packets + transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 19 } + + monStaFrameFragmentationRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of fragments + as a percentage of the total packets + transmitted by this station. + " + ::= { wlsxMonStationStatsEntry 20 } + + monStaFrameBandwidthRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The bandwidth of this station in Kbps. + " + ::= { wlsxMonStationStatsEntry 21 } + + monStaFrameRetryErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received by this station. + " + ::= { wlsxMonStationStatsEntry 22 } + + monStaBSSID OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + BSSID of the station being monitored. + " + ::= { wlsxMonStationStatsEntry 23 } + + monStaESSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + ESSID of the station being monitored. + " + ::= { wlsxMonStationStatsEntry 24 } + + monStaPhyType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + PHY type of the station being monitored. + " + ::= { wlsxMonStationStatsEntry 25 } + + monStaRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + SNR of the station being monitored. + " + ::= { wlsxMonStationStatsEntry 26 } + + monStaFrameReceiveErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received by this station. + " + ::= { wlsxMonStationStatsEntry 27 } + +-- This table breaks down the Station statistics into different +-- rate categories. + + wlsxMonStaRateStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonStaRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for a monitored station + represented in terms of rate categories. + " + ::= { wlsxMonStationStatsGroup 2} + + wlsxMonStaRateStatsEntry OBJECT-TYPE + SYNTAX WlsxMonStaRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Data rate based packet and byte count entry for a monitored station" + INDEX {monPhyAddress, monRadioNumber, monitoredStaPhyAddress} + ::= { wlsxMonStaRateStatsTable 1 } + + WlsxMonStaRateStatsEntry ::= + SEQUENCE { + monStaTxPktsAt1Mbps Counter32, + monStaTxBytesAt1Mbps Counter32, + monStaTxPktsAt2Mbps Counter32, + monStaTxBytesAt2Mbps Counter32, + monStaTxPktsAt5Mbps Counter32, + monStaTxBytesAt5Mbps Counter32, + monStaTxPktsAt11Mbps Counter32, + monStaTxBytesAt11Mbps Counter32, + monStaTxPktsAt6Mbps Counter32, + monStaTxBytesAt6Mbps Counter32, + monStaTxPktsAt12Mbps Counter32, + monStaTxBytesAt12Mbps Counter32, + monStaTxPktsAt18Mbps Counter32, + monStaTxBytesAt18Mbps Counter32, + monStaTxPktsAt24Mbps Counter32, + monStaTxBytesAt24Mbps Counter32, + monStaTxPktsAt36Mbps Counter32, + monStaTxBytesAt36Mbps Counter32, + monStaTxPktsAt48Mbps Counter32, + monStaTxBytesAt48Mbps Counter32, + monStaTxPktsAt54Mbps Counter32, + monStaTxBytesAt54Mbps Counter32, + monStaRxPktsAt1Mbps Counter32, + monStaRxBytesAt1Mbps Counter32, + monStaRxPktsAt2Mbps Counter32, + monStaRxBytesAt2Mbps Counter32, + monStaRxPktsAt5Mbps Counter32, + monStaRxBytesAt5Mbps Counter32, + monStaRxPktsAt11Mbps Counter32, + monStaRxBytesAt11Mbps Counter32, + monStaRxPktsAt6Mbps Counter32, + monStaRxBytesAt6Mbps Counter32, + monStaRxPktsAt12Mbps Counter32, + monStaRxBytesAt12Mbps Counter32, + monStaRxPktsAt18Mbps Counter32, + monStaRxBytesAt18Mbps Counter32, + monStaRxPktsAt24Mbps Counter32, + monStaRxBytesAt24Mbps Counter32, + monStaRxPktsAt36Mbps Counter32, + monStaRxBytesAt36Mbps Counter32, + monStaRxPktsAt48Mbps Counter32, + monStaRxBytesAt48Mbps Counter32, + monStaRxPktsAt54Mbps Counter32, + monStaRxBytesAt54Mbps Counter32, + monStaTxPktsAt9Mbps Counter32, + monStaTxBytesAt9Mbps Counter32, + monStaRxPktsAt9Mbps Counter32, + monStaRxBytesAt9Mbps Counter32 + } + + monStaTxPktsAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 1Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 1 } + + monStaTxBytesAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 1Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 2 } + + monStaTxPktsAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 2Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 3 } + + monStaTxBytesAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 2Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 4 } + + monStaTxPktsAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 5Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 5 } + + monStaTxBytesAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 5Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 6 } + + monStaTxPktsAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 11Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 7 } + + monStaTxBytesAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 11Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 8 } + + monStaTxPktsAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 6Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 9 } + + monStaTxBytesAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 6Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 10 } + + monStaTxPktsAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 12Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 11 } + + monStaTxBytesAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 12Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 12 } + + monStaTxPktsAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 18Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 13 } + + monStaTxBytesAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 18Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 14 } + + monStaTxPktsAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 24Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 15 } + + monStaTxBytesAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 24Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 16 } + + monStaTxPktsAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 36Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 17 } + + monStaTxBytesAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 36Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 18 } + + monStaTxPktsAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 48Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 19 } + + monStaTxBytesAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 48Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 20 } + + monStaTxPktsAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets transmitted by the + station at 54Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 21 } + + monStaTxBytesAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets transmitted by the + station at 54Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 22 } + + monStaRxPktsAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 1Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 23 } + + monStaRxBytesAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 1Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 24 } + + monStaRxPktsAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 2Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 25 } + + monStaRxBytesAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 2Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 26 } + + monStaRxPktsAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 5Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 27 } + + monStaRxBytesAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 5Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 28 } + + monStaRxPktsAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 11Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 29 } + + monStaRxBytesAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 11Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 30 } + + monStaRxPktsAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 6Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 31 } + + monStaRxBytesAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 6Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 32 } + + monStaRxPktsAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 12Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 33 } + + monStaRxBytesAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 12Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 34 } + + monStaRxPktsAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 18Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 35 } + + monStaRxBytesAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 18Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 36 } + + monStaRxPktsAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 24Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 37 } + + monStaRxBytesAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 24Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 38 } + + monStaRxPktsAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 36Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 39 } + + monStaRxBytesAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 36Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 40 } + + monStaRxPktsAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 48Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 41 } + + monStaRxBytesAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 48Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 42 } + + monStaRxPktsAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 54Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 43 } + + monStaRxBytesAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 54Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 44 } + + + monStaTxPktsAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 9Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 45 } + + monStaTxBytesAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 9Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 46 } + + + monStaRxPktsAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 9Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 47 } + + monStaRxBytesAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 9Mbps rate. + " + ::= { wlsxMonStaRateStatsEntry 48 } + + +-- This table breaks down the Station statistics based on the +-- Destination Address Types. + + wlsxMonStaDATypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonStaDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for a monitored station but + but broken down in terms of Destination Address Type. + " + ::= { wlsxMonStationStatsGroup 3} + + wlsxMonStaDATypeStatsEntry OBJECT-TYPE + SYNTAX WlsxMonStaDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Data rate based packet and byte count entry for a monitored station" + INDEX {monPhyAddress, monRadioNumber, monitoredStaPhyAddress} + ::= { wlsxMonStaDATypeStatsTable 1 } + + WlsxMonStaDATypeStatsEntry ::= + SEQUENCE { + monStaTxDABroadcastPkts Counter32 , + monStaTxDABroadcastBytes Counter32 , + monStaTxDAMulticastPkts Counter32 , + monStaTxDAMulticastBytes Counter32 , + monStaTxDAUnicastPkts Counter32 , + monStaTxDAUnicastBytes Counter32 + + } + + monStaTxDABroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Broadcast packets + transmitted by this Station. + " + ::= { wlsxMonStaDATypeStatsEntry 1 } + + monStaTxDABroadcastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Broadcast Bytes + transmitted by this Station. + " + ::= { wlsxMonStaDATypeStatsEntry 2 } + + monStaTxDAMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Multicast packets + transmitted by this station. + " + ::= { wlsxMonStaDATypeStatsEntry 3 } + + monStaTxDAMulticastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Multicast Bytes + transmitted by this station. + " + ::= { wlsxMonStaDATypeStatsEntry 4 } + + monStaTxDAUnicastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total of Unicast packets + transmitted by this station. + " + ::= { wlsxMonStaDATypeStatsEntry 5 } + + monStaTxDAUnicastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total of Unicast Bytes + transmitted by this station. + " + ::= { wlsxMonStaDATypeStatsEntry 6 } + +-- This table breaks down the Station statistics based on the +-- the Type of the Packet. + + wlsxMonStaFrameTypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonStaFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for monitored + stations but broken down into different Frame Types. + " + ::= { wlsxMonStationStatsGroup 4} + + wlsxMonStaFrameTypeStatsEntry OBJECT-TYPE + SYNTAX WlsxMonStaFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Frame Type based packet and byte count entry for a monitored station" + INDEX {monPhyAddress, monRadioNumber, monitoredStaPhyAddress} + ::= { wlsxMonStaFrameTypeStatsTable 1 } + + WlsxMonStaFrameTypeStatsEntry ::= + SEQUENCE { + monStaTxMgmtPkts Counter32 , + monStaTxMgmtBytes Counter32 , + monStaTxCtrlPkts Counter32 , + monStaTxCtrlBytes Counter32 , + monStaTxDataPkts Counter32 , + monStaTxDataBytes Counter32 , + monStaRxMgmtPkts Counter32 , + monStaRxMgmtBytes Counter32 , + monStaRxCtrlPkts Counter32 , + monStaRxCtrlBytes Counter32 , + monStaRxDataPkts Counter32 , + monStaRxDataBytes Counter32 + + } + + monStaTxMgmtPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the transmitted Management packets + from a station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 1 } + + monStaTxMgmtBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the transmitted Management Bytes + from a station + " + ::= { wlsxMonStaFrameTypeStatsEntry 2 } + + monStaTxCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the transmitted Control packets + from a station + " + ::= { wlsxMonStaFrameTypeStatsEntry 3 } + + monStaTxCtrlBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the transmitted Control Bytes + from a station + " + ::= { wlsxMonStaFrameTypeStatsEntry 4 } + + monStaTxDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the transmitted Data packets + from a station + " + ::= { wlsxMonStaFrameTypeStatsEntry 5 } + + monStaTxDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the transmitted Data Bytes + observed from this station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 6 } + + monStaRxMgmtPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Management packets + at a station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 7 } + + monStaRxMgmtBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Management Bytes + at a station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 8 } + + monStaRxCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Control packets + at a station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 9 } + + monStaRxCtrlBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Control Bytes + at a station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 10 } + + monStaRxDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Data packets + at a station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 11 } + + monStaRxDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Data Bytes + at a station. + " + ::= { wlsxMonStaFrameTypeStatsEntry 12 } + + +-- This table breaks down the Station statistics received or transmitted by a +-- station into packet size buckets. + + wlsxMonStaPktSizeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonStaPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for monitored + stations but broken down into different Packet Sizes. + " + ::= { wlsxMonStationStatsGroup 5} + + wlsxMonStaPktSizeStatsEntry OBJECT-TYPE + SYNTAX WlsxMonStaPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Packet Size based packet count entry for a monitored station" + INDEX {monPhyAddress, monRadioNumber, monitoredStaPhyAddress} + ::= { wlsxMonStaPktSizeStatsTable 1 } + + WlsxMonStaPktSizeStatsEntry ::= + SEQUENCE { + monStaTxPkts63Bytes Counter32 , + monStaTxPkts64To127 Counter32 , + monStaTxPkts128To255 Counter32 , + monStaTxPkts256To511 Counter32 , + monStaTxPkts512To1023 Counter32 , + monStaTxPkts1024To1518 Counter32 , + monStaRxPkts63Bytes Counter32 , + monStaRxPkts64To127 Counter32 , + monStaRxPkts128To255 Counter32 , + monStaRxPkts256To511 Counter32 , + monStaRxPkts512To1023 Counter32 , + monStaRxPkts1024To1518 Counter32 + + } + + monStaTxPkts63Bytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were less than 64 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 1 } + + monStaTxPkts64To127 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 64 and 127 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 2 } + + monStaTxPkts128To255 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 128 and 255 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 3 } + + monStaTxPkts256To511 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 256 and 511 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 4 } + + monStaTxPkts512To1023 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 512 and 1023 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 5 } + + monStaTxPkts1024To1518 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 1024 and 1518 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 6 } + + monStaRxPkts63Bytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were less than 64 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 7 } + + monStaRxPkts64To127 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 64 and 127 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 8 } + + monStaRxPkts128To255 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 128 and 255 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 9 } + + monStaRxPkts256To511 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 256 and 511 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 10 } + + monStaRxPkts512To1023 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 512 and 1023 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 11 } + + monStaRxPkts1024To1518 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 1024 and 1518 bytes long. + " + ::= { wlsxMonStaPktSizeStatsEntry 12 } + + +-- Info group contains tables for monitored APs and stations + + wlsxMonAccessPointInfoGroup OBJECT IDENTIFIER ::= { wlsxMonInfoGroup 1 } + wlsxMonStationInfoGroup OBJECT IDENTIFIER ::= { wlsxMonInfoGroup 2 } + + wlsxMonAPInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonAPInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This lists all of the Access Points being monitored by + the controller. + " + ::= { wlsxMonAccessPointInfoGroup 1 } + + wlsxMonAPInfoEntry OBJECT-TYPE + SYNTAX WlsxMonAPInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Point Info entry" + INDEX {monPhyAddress, monRadioNumber, monitoredApBSSID} + ::= { wlsxMonAPInfoTable 1 } + + WlsxMonAPInfoEntry ::= + SEQUENCE { + monAPInfoPhyType ArubaPhyType, + monAPInfoCurrentChannel Unsigned32, + monAPInfoClassification ArubaRogueApType, + monAPInfoESSID DisplayString, + monAPInfoRSSI Integer32, + monAPInfoMonitorTime TimeTicks, + monAPInfoInactivityTime TimeTicks, + monAPInfoSnrSignalPkts Integer32, + monAPInfoSnrSampleTime Integer32, + monAPInfoStatus INTEGER, + monAPInfoConfidence Integer32, + monAPInfoMatchType ArubaAPMatchType, + monAPInfoMatchMethod ArubaAPMatchMethod, + monAPInfoHTMode ArubaHTMode, + monAPInfoEncryptionType ArubaMonEncryptionType, + monAPInfoWPAUnicastCipher ArubaMonEncryptionCipher, + monAPInfoWPAAuthAlgorithm ArubaMonAuthAlgorithm, + monAPInfoIBSS TruthValue + } + + monAPInfoPhyType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + PHY type of the access point being monitored. + " + ::= { wlsxMonAPInfoEntry 1 } + + + monAPInfoCurrentChannel OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Channel the monitored AP is using. + " + ::= { wlsxMonAPInfoEntry 2 } + + monAPInfoClassification OBJECT-TYPE + SYNTAX ArubaRogueApType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the type of the AP. + " + ::= { wlsxMonAPInfoEntry 3 } + + monAPInfoESSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + ESSID of the access point being monitored. + " + ::= { wlsxMonAPInfoEntry 4 } + + monAPInfoRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + SNR of the access point being monitored. + " + ::= { wlsxMonAPInfoEntry 5 } + + monAPInfoMonitorTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates how long the access point has been + monitored. + " + ::= { wlsxMonAPInfoEntry 6 } + + monAPInfoInactivityTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates how long the access point has been + inactive. + " + ::= { wlsxMonAPInfoEntry 7 } + + monAPInfoSnrSignalPkts OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Number of Signal Packets observed by the Monitoring AP + during this sample time. + " + ::= { wlsxMonAPInfoEntry 8 } + + monAPInfoSnrSampleTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Sample Time in which SNR data was collected. + " + ::= { wlsxMonAPInfoEntry 9 } + + monAPInfoStatus OBJECT-TYPE + SYNTAX INTEGER { up(1), down(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether this AP is considered to be up or down. + " + ::= { wlsxMonAPInfoEntry 10 } + + monAPInfoConfidence OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the confidence that a suspected rogue AP is in fact a + rogue in terms of percentage. + " + ::= { wlsxMonAPInfoEntry 11 } + + monAPInfoMatchType OBJECT-TYPE + SYNTAX ArubaAPMatchType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The method used to classify the AP as a rogue or suspected rogue AP. + " + ::= { wlsxMonAPInfoEntry 12 } + + monAPInfoMatchMethod OBJECT-TYPE + SYNTAX ArubaAPMatchMethod + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates how the match occurred for rogue or suspect-rogue + classification: an exact or +1 or -1 MAC match. + " + ::= { wlsxMonAPInfoEntry 13 } + + monAPInfoHTMode OBJECT-TYPE + SYNTAX ArubaHTMode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the HT mode of the monitored AP, if any. + " + ::= { wlsxMonAPInfoEntry 14 } + + monAPInfoEncryptionType OBJECT-TYPE + SYNTAX ArubaMonEncryptionType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the Encryption type of the monitored AP. + " + ::= { wlsxMonAPInfoEntry 15 } + + monAPInfoWPAUnicastCipher OBJECT-TYPE + SYNTAX ArubaMonEncryptionCipher + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the WPA/WPA2 unicast cipher supported by the monitored AP. + If multiple ciphers are supported, the weakest will be indicated. + " + ::= { wlsxMonAPInfoEntry 16 } + + monAPInfoWPAAuthAlgorithm OBJECT-TYPE + SYNTAX ArubaMonAuthAlgorithm + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the WPA/WPA2 authentication algorithm supported by the monitored AP. + If multiple authentication algorithms are supported, the weakest will be indicated. + " + ::= { wlsxMonAPInfoEntry 17 } + + monAPInfoIBSS OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates if the monitored AP is part of an adhoc network. + " + ::= { wlsxMonAPInfoEntry 18 } + + wlsxMonStationInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF MonStationInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists statistics of all the wireless stations + being monitored. + " + ::= { wlsxMonStationInfoGroup 1} + + wlsxMonStationInfoEntry OBJECT-TYPE + SYNTAX MonStationInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station Info Entry" + INDEX {monPhyAddress, monRadioNumber, monitoredStaPhyAddress} + ::= { wlsxMonStationInfoTable 1 } + + MonStationInfoEntry ::= + SEQUENCE { + monStaInfoChannelNum Unsigned32, + monStaInfoBSSID MacAddress, + monStaInfoESSID DisplayString, + monStaInfoPhyType ArubaPhyType, + monStaInfoRSSI Integer32, + monStaInfoClassification ArubaStationType, + monStaInfoMonitorTime TimeTicks, + monStaInfoInactivityTime TimeTicks, + monStaInfoSnrSignalPkts Integer32, + monStaInfoSnrSampleTime Integer32, + monStaInfoStatus INTEGER, + monStaInfoHTMode ArubaHTMode + } + + monStaInfoChannelNum OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The channel the station is currently using. + " + ::= { wlsxMonStationInfoEntry 1 } + + monStaInfoBSSID OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + BSSID of the station being monitored. + " + ::= { wlsxMonStationInfoEntry 2 } + + monStaInfoESSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + ESSID of the station being monitored. + " + ::= { wlsxMonStationInfoEntry 3 } + + monStaInfoPhyType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + PHY type the station being monitored. + " + ::= { wlsxMonStationInfoEntry 4 } + + monStaInfoRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + SNR of the station being monitored. + " + ::= { wlsxMonStationInfoEntry 5 } + + monStaInfoClassification OBJECT-TYPE + SYNTAX ArubaStationType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + " + ::= { wlsxMonStationInfoEntry 6 } + + monStaInfoMonitorTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates how long the station has been + monitored. + " + ::= { wlsxMonStationInfoEntry 7 } + + monStaInfoInactivityTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates how long the station has been + inactive. + " + ::= { wlsxMonStationInfoEntry 8 } + + monStaInfoSnrSignalPkts OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Number of Signal Packets observed by the Monitoring station + during this sample time. + " + ::= { wlsxMonStationInfoEntry 9 } + + monStaInfoSnrSampleTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Sample Time in which SNR data was collected. + " + ::= { wlsxMonStationInfoEntry 10 } + + monStaInfoStatus OBJECT-TYPE + SYNTAX INTEGER { up(1), down(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether this station is considered up or down. + " + ::= { wlsxMonStationInfoEntry 11 } + + monStaInfoHTMode OBJECT-TYPE + SYNTAX ArubaHTMode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the HT mode of the station, if any. + " + ::= { wlsxMonStationInfoEntry 12 } + +-- Event table contains the event ID and the number of events of that type +-- raised so far + + wlsxMonEventCountTable OBJECT-TYPE + SYNTAX SEQUENCE OF MonEventCountEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists counts of Events generated by the APs. + " + ::= { wlsxMonStationStatsGroup 6} + + wlsxMonEventCountEntry OBJECT-TYPE + SYNTAX MonEventCountEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event Count Entry" + INDEX {monEventID} + ::= { wlsxMonEventCountTable 1 } + + MonEventCountEntry ::= + SEQUENCE { + monEventID Unsigned32, + monEventCount Unsigned32 + } + + monEventID OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Event ID + " + ::= { wlsxMonEventCountEntry 1 } + + monEventCount OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Event Count + " + ::= { wlsxMonEventCountEntry 2 } + +-- This table breaks down the station statistics observed into different +-- HT rate categories. + + wlsxMonStationHTRateStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxMonStationHTRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the monitored AP Packet and Byte Counts + but represented in terms of HT rate categories. + " + + ::= { wlsxMonStationStatsGroup 7 } + + wlsxMonStationHTRateStatsEntry OBJECT-TYPE + SYNTAX WlsxMonStationHTRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "HT Data rate based packet and byte count entry for a monitored station" + INDEX { monPhyAddress, monRadioNumber, monitoredStaPhyAddress, monHTRate } + ::= { wlsxMonStationHTRateStatsTable 1 } + + WlsxMonStationHTRateStatsEntry ::= + SEQUENCE { + monStaTxHTPkts Counter32, + monStaTxHTBytes Counter32, + monStaRxHTPkts Counter32, + monStaRxHTBytes Counter32 + } + + monStaTxHTPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of packets transmitted at the indicated rate + " + ::= { wlsxMonStationHTRateStatsEntry 1 } + + monStaTxHTBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of bytes transmitted at the indicated rate + " + ::= { wlsxMonStationHTRateStatsEntry 2 } + + monStaRxHTPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of packets received at the indicated rate + " + ::= { wlsxMonStationHTRateStatsEntry 3 } + + monStaRxHTBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of bytes received at the indicated rate + " + ::= { wlsxMonStationHTRateStatsEntry 4 } + +END diff --git a/pandora_console/attachment/mibs/WLSX-SYSTEMEXT-MIB b/pandora_console/attachment/mibs/WLSX-SYSTEMEXT-MIB new file mode 100644 index 0000000000..0ad720ec3a --- /dev/null +++ b/pandora_console/attachment/mibs/WLSX-SYSTEMEXT-MIB @@ -0,0 +1,1132 @@ +--- ArubaOS 6.5.2.0_59123 +-- vim:set ts=4 sw=4: +WLSX-SYSTEMEXT-MIB DEFINITIONS ::= BEGIN + + IMPORTS + TEXTUAL-CONVENTION FROM SNMPv2-TC + + MODULE-IDENTITY, + OBJECT-TYPE, + snmpModules, + Integer32, + Counter32, + IpAddress, + TimeTicks, + NOTIFICATION-TYPE + FROM SNMPv2-SMI + + TDomain, + DisplayString, + PhysAddress, + TAddress, + TimeInterval, + RowStatus, + StorageType, + TestAndIncr, + MacAddress, + TruthValue + FROM SNMPv2-TC + + ArubaSwitchRole, + ArubaActiveState, + ArubaCardType + FROM ARUBA-TC + + OBJECT-GROUP + FROM SNMPv2-CONF + wlsxEnterpriseMibModules + FROM ARUBA-MIB; + + wlsxSystemExtMIB MODULE-IDENTITY + LAST-UPDATED "0812112108Z" + ORGANIZATION "Aruba Wireless Networks" + CONTACT-INFO + "Postal: 1322 Crossman Avenue + Sunnyvale, CA 94089 + E-mail: dl-support@arubanetworks.com + Phone: +1 408 227 4500" + DESCRIPTION + "This MIB module defines MIB objects which provide + System level information about the Aruba controller." + REVISION "0812112108Z" + DESCRIPTION + "The initial revision." + ::= { wlsxEnterpriseMibModules 2 } + + wlsxSystemExtGroup OBJECT IDENTIFIER ::= { wlsxSystemExtMIB 1 } + wlsxSystemExtTableGenNumberGroup OBJECT IDENTIFIER ::= { wlsxSystemExtMIB 2 } + + -- wlsxSystemExtGroup contains objects to describe a controller. + + wlsxSysExtSwitchIp OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Controller IP as configured by the user. This IP address uniquely + identifies the controller." + ::= { wlsxSystemExtGroup 1 } + + wlsxSysExtHostname OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the controller." + ::= { wlsxSystemExtGroup 2 } + + wlsxSysExtModelName OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model Name of the controller." + ::= { wlsxSystemExtGroup 3 } + + wlsxSysExtSwitchRole OBJECT-TYPE + SYNTAX ArubaSwitchRole + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Role of this controller in the Aruba Domain." + ::= { wlsxSystemExtGroup 4 } + + wlsxSysExtSwitchMasterIp OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Switch IP of the master controller. + " + ::= { wlsxSystemExtGroup 5 } + + wlsxSysExtSwitchDate OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + System notion of the local date and time of day. + " + ::= { wlsxSystemExtGroup 6 } + + wlsxSysExtSwitchBaseMacaddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Base MAC address of the controller. + " + ::= { wlsxSystemExtGroup 7 } + + wlsxSysExtFanTrayAssemblyNumber OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Assembly number of the Fan tray. + " + ::= { wlsxSystemExtGroup 8 } + + wlsxSysExtFanTraySerialNumber OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Serial number of the Fan tray + " + ::= { wlsxSystemExtGroup 9 } + + wlsxSysExtInternalTemparature OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Internal temperature in the controller. + " + ::= { wlsxSystemExtGroup 10 } + + wlsxSysExtLicenseSerialNumber OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The license serial number of the controller. + " + ::= { wlsxSystemExtGroup 11 } + + wlsxSysExtSwitchLicenseCount OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of licenses installed on the controller + " + ::= { wlsxSystemExtGroup 12 } + + -- Table lists all the processors and their corresponding Load. + + wlsxSysExtProcessorTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtProcessorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The table of processors contained by the controller. + " + + ::= { wlsxSystemExtGroup 13 } + + wlsxSysExtProcessorEntry OBJECT-TYPE + SYNTAX WlsxSysExtProcessorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + An entry for one processor contained by the controller. + " + INDEX { sysExtProcessorID} + ::= { wlsxSysExtProcessorTable 1 } + + WlsxSysExtProcessorEntry ::= + SEQUENCE { + sysExtProcessorID Integer32, + sysExtProcessorDescr DisplayString, + sysExtProcessorLoad Integer32 + } + + sysExtProcessorID OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Processor Index. + " + ::= { wlsxSysExtProcessorEntry 1 } + + sysExtProcessorDescr OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Description of the processor. + " + ::= { wlsxSysExtProcessorEntry 2 } + + sysExtProcessorLoad OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The average, over the last minute, of the percentage of + time that this processor was not idle. + " + ::= { wlsxSysExtProcessorEntry 3 } + + -- Table contains all the storage devices in the controller and their + -- utilization numbers. + + wlsxSysExtStorageTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtStorageEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The table of Storage-devices contained by the controller. + " + + ::= { wlsxSystemExtGroup 14 } + + wlsxSysExtStorageEntry OBJECT-TYPE + SYNTAX WlsxSysExtStorageEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + An entry for one long-term storage device contained by the + controller. + " + INDEX { sysExtStorageIndex } + ::= { wlsxSysExtStorageTable 1 } + + WlsxSysExtStorageEntry ::= + SEQUENCE { + sysExtStorageIndex Integer32, + sysExtStorageType INTEGER, + sysExtStorageSize Integer32, + sysExtStorageUsed Integer32, + sysExtStorageName DisplayString + } + + sysExtStorageIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Index into the table. + " + ::= { wlsxSysExtStorageEntry 1 } + + sysExtStorageType OBJECT-TYPE + SYNTAX INTEGER { + ram(1), + flashMemory(2) + } + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Type of the storage. + " + ::= { wlsxSysExtStorageEntry 2 } + + sysExtStorageSize OBJECT-TYPE + SYNTAX Integer32 + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Total size of the storage filesystem in MB. + " + ::= { wlsxSysExtStorageEntry 3 } + + sysExtStorageUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Used Storage in MB. + " + ::= { wlsxSysExtStorageEntry 4 } + + sysExtStorageName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Name of the storage filesystem. + " + ::= { wlsxSysExtStorageEntry 5 } + +-- This table describes the memory utilization of the controller + + wlsxSysExtMemoryTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtMemoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The memory status of the controller + " + + ::= { wlsxSystemExtGroup 15 } + + wlsxSysExtMemoryEntry OBJECT-TYPE + SYNTAX WlsxSysExtMemoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + An entry for one memory region on the controller. Currently, + only the control processor memory is monitored. + " + INDEX { sysExtMemoryIndex } + ::= { wlsxSysExtMemoryTable 1 } + + WlsxSysExtMemoryEntry ::= + SEQUENCE { + sysExtMemoryIndex Integer32, + sysExtMemorySize Integer32, + sysExtMemoryUsed Integer32, + sysExtMemoryFree Integer32 + } + + sysExtMemoryIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Index into the table. + " + ::= { wlsxSysExtMemoryEntry 1 } + + sysExtMemorySize OBJECT-TYPE + SYNTAX Integer32 + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Total memory in KB. + " + ::= { wlsxSysExtMemoryEntry 2 } + + sysExtMemoryUsed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Used memory in KB. + " + ::= { wlsxSysExtMemoryEntry 3 } + + sysExtMemoryFree OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Free memory in KB. + " + ::= { wlsxSysExtMemoryEntry 4 } + +-- This table lists the different Hardware Modules in the controller. + + wlsxSysExtCardTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtCardEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The table of Hardware modules in the controller. + " + + ::= { wlsxSystemExtGroup 16 } + + wlsxSysExtCardEntry OBJECT-TYPE + SYNTAX WlsxSysExtCardEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + An entry for one Hardware Module in the controller. + " + INDEX { sysExtCardSlot } + ::= { wlsxSysExtCardTable 1 } + + WlsxSysExtCardEntry ::= + SEQUENCE { + sysExtCardSlot Integer32, + sysExtCardType ArubaCardType, + sysExtCardNumOfPorts Integer32, + sysExtCardNumOfFastethernetPorts Integer32, + sysExtCardNumOfGigPorts Integer32, + sysExtCardSerialNo DisplayString, + sysExtCardAssemblyNo DisplayString, + sysExtCardManufacturingDate DisplayString, + sysExtCardHwRevision DisplayString, + sysExtCardFpgaRevision DisplayString, + sysExtCardSwitchChip DisplayString, + sysExtCardStatus ArubaActiveState, + sysExtCardUserSlot Integer32, + sysExtCardServiceTag DisplayString + } + + sysExtCardSlot OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Slot in which this card is located, offset by one. For the user-visible + slot number see sysExtCardUserSlot + " + ::= { wlsxSysExtCardEntry 1 } + + sysExtCardType OBJECT-TYPE + SYNTAX ArubaCardType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Type of the Card. + " + ::= { wlsxSysExtCardEntry 2 } + + sysExtCardNumOfPorts OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of data ports on the card. + " + ::= { wlsxSysExtCardEntry 3 } + + sysExtCardNumOfFastethernetPorts OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of Fastethernet ports on the card. + " + ::= { wlsxSysExtCardEntry 4 } + + sysExtCardNumOfGigPorts OBJECT-TYPE + SYNTAX Integer32 + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of Gigabit ethernet ports on the card. + " + ::= { wlsxSysExtCardEntry 5 } + + sysExtCardSerialNo OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Serial number of the card. + " + ::= { wlsxSysExtCardEntry 6 } + + sysExtCardAssemblyNo OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Assembly Number of the card. + " + ::= { wlsxSysExtCardEntry 7 } + + sysExtCardManufacturingDate OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Card manufacturing date. + " + ::= { wlsxSysExtCardEntry 8 } + + sysExtCardHwRevision OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Hardware revision of the card. + " + ::= { wlsxSysExtCardEntry 9 } + + sysExtCardFpgaRevision OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Fpga revision number. + " + ::= { wlsxSysExtCardEntry 10 } + + sysExtCardSwitchChip OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Switching Chip version. + " + ::= { wlsxSysExtCardEntry 11 } + + sysExtCardStatus OBJECT-TYPE + SYNTAX ArubaActiveState + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Status of the card. + " + ::= { wlsxSysExtCardEntry 12 } + + sysExtCardUserSlot OBJECT-TYPE + SYNTAX Integer32 + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + User-visible (zero-based) slot number. + " + ::= { wlsxSysExtCardEntry 13 } + + sysExtCardServiceTag OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Service Tag of the card. + " + ::= { wlsxSysExtCardEntry 14 } + +-- This table lists the Fans in the controller. + + wlsxSysExtFanTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtFanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The table of all supported fans in the controller. Not supported in Aruba 200/800 and 2400 controllers. + " + + ::= { wlsxSystemExtGroup 17 } + + wlsxSysExtFanEntry OBJECT-TYPE + SYNTAX WlsxSysExtFanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + An entry for one fan. + " + INDEX { sysExtFanIndex } + ::= { wlsxSysExtFanTable 1 } + + WlsxSysExtFanEntry ::= + SEQUENCE { + sysExtFanIndex Integer32, + sysExtFanStatus ArubaActiveState + } + + sysExtFanIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Index into the table. + " + ::= { wlsxSysExtFanEntry 1 } + + sysExtFanStatus OBJECT-TYPE + SYNTAX ArubaActiveState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Status of the Fan. + " + ::= { wlsxSysExtFanEntry 2 } + +-- This table lists the Power supplies in the controller. + + wlsxSysExtPowerSupplyTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtPowerSupplyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The table of all supported Power supplies in the controller. Not supported in Aruba 200, 800 and 2400 controllers. + " + + ::= { wlsxSystemExtGroup 18 } + + wlsxSysExtPowerSupplyEntry OBJECT-TYPE + SYNTAX WlsxSysExtPowerSupplyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + An entry for one power supply. + " + INDEX { sysExtPowerSupplyIndex } + ::= { wlsxSysExtPowerSupplyTable 1 } + + WlsxSysExtPowerSupplyEntry ::= + SEQUENCE { + sysExtPowerSupplyIndex Integer32, + sysExtPowerSupplyStatus ArubaActiveState + } + + sysExtPowerSupplyIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Index into the table. + " + ::= { wlsxSysExtPowerSupplyEntry 1 } + + sysExtPowerSupplyStatus OBJECT-TYPE + SYNTAX ArubaActiveState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Status of the power supply. + " + ::= { wlsxSysExtPowerSupplyEntry 2 } + +-- Switch List Table contains all the controllers in the domain. This table is +-- valid only, when queried from the master controller. + + wlsxSysExtSwitchListTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtSwitchListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This Table will list all the controllers in the Aruba Domain. + It will be populated only on the master controller. Local controllers + return empty table. + " + + ::= { wlsxSystemExtGroup 19 } + + wlsxSysExtSwitchListEntry OBJECT-TYPE + SYNTAX WlsxSysExtSwitchListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Switch List Entry" + INDEX { sysExtSwitchIPAddress} + ::= { wlsxSysExtSwitchListTable 1 } + + WlsxSysExtSwitchListEntry ::= + SEQUENCE { + sysExtSwitchIPAddress IpAddress, + sysExtSwitchRole ArubaSwitchRole, + sysExtSwitchLocation DisplayString, + sysExtSwitchSWVersion DisplayString, + sysExtSwitchStatus ArubaActiveState, + sysExtSwitchName DisplayString, + sysExtSwitchSerNo DisplayString + } + + sysExtSwitchIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + IP Address of the controller. + " + ::= { wlsxSysExtSwitchListEntry 1 } + + sysExtSwitchRole OBJECT-TYPE + SYNTAX ArubaSwitchRole + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Role of the controller. + " + ::= { wlsxSysExtSwitchListEntry 2 } + + sysExtSwitchLocation OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Location of the controller + " + ::= { wlsxSysExtSwitchListEntry 3 } + + sysExtSwitchSWVersion OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Software version the controller is running. + " + ::= { wlsxSysExtSwitchListEntry 4 } + + sysExtSwitchStatus OBJECT-TYPE + SYNTAX ArubaActiveState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Status of the controller. + " + ::= { wlsxSysExtSwitchListEntry 5 } + + sysExtSwitchName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Host name of the controller. + " + ::= { wlsxSysExtSwitchListEntry 6 } + + sysExtSwitchSerNo OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Serial number of the controller. + " + ::= { wlsxSysExtSwitchListEntry 7 } + +-- The license table lists all valid licenses installed on the controller + + wlsxSysExtSwitchLicenseTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxSysExtLicenseEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table lists all licenses installed on the controller. + " + + ::= { wlsxSystemExtGroup 20 } + + wlsxSysExtLicenseEntry OBJECT-TYPE + SYNTAX WlsxSysExtLicenseEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "License Entry" + INDEX { sysExtLicenseIndex } + ::= { wlsxSysExtSwitchLicenseTable 1 } + + WlsxSysExtLicenseEntry ::= + SEQUENCE { + sysExtLicenseIndex Integer32, + sysExtLicenseKey DisplayString, + sysExtLicenseInstalled DisplayString, + sysExtLicenseExpires DisplayString, + sysExtLicenseFlags DisplayString, + sysExtLicenseService DisplayString + } + + sysExtLicenseIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + License ID number + " + ::= { wlsxSysExtLicenseEntry 1 } + + sysExtLicenseKey OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + License Key + " + ::= { wlsxSysExtLicenseEntry 2 } + + sysExtLicenseInstalled OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + License installation time + " + ::= { wlsxSysExtLicenseEntry 3 } + + sysExtLicenseExpires OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + License expiry time + " + ::= { wlsxSysExtLicenseEntry 4 } + + sysExtLicenseFlags OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + License flags; E - enabled; A - auto-generated; + R - reboot required to activate + " + ::= { wlsxSysExtLicenseEntry 5 } + + sysExtLicenseService OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The service enabled by this license. + " + ::= { wlsxSysExtLicenseEntry 6 } + + wlsxSysExtMMSCompatLevel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Lists the compatibility level of this controller with the MMS + " + ::= { wlsxSystemExtGroup 21 } + + wlsxSysExtMMSConfigID OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This Object represents the value of the MMS Configuration ID in the controller. + " + ::= { wlsxSystemExtGroup 22 } + + wlsxSysExtControllerConfigID OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This Object represents the value of the Controller's Configuration ID. + " + ::= { wlsxSystemExtGroup 23 } + + wlsxSysExtIsMMSConfigUpdateEnabled OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + This objects indicates whether the controller is configured to accept configuration snapshots from MMS. + " + ::= { wlsxSystemExtGroup 24 } + + wlsxSysExtSwitchLastReload OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The reason for the last controller reload + " + ::= { wlsxSystemExtGroup 25 } + + wlsxSysExtLastStatsReset OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Last time switch stats was reset + " + ::= { wlsxSystemExtGroup 26 } + + wlsxSysExtHwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hardware version of the switch." + ::= { wlsxSystemExtGroup 27 } + + wlsxSysExtSwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software version of the switch." + ::= { wlsxSystemExtGroup 28 } + + wlsxSysExtSerialNumber OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number of the switch." + ::= { wlsxSystemExtGroup 29 } + + wlsxSysExtCpuUsedPercent OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The CPU used percent of the switch" + ::= { wlsxSystemExtGroup 30 } + + wlsxSysExtMemoryUsedPercent OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The memory used percent of the switch" + ::= { wlsxSystemExtGroup 31 } + + wlsxSysExtPacketLossPercent OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The packet loss count of the switch" + ::= { wlsxSystemExtGroup 32 } + + + wlsxSysExtUserTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the user table was + modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 1 } + + wlsxSysExtAPBssidTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the AP BSSID table was + modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 2 } + + + wlsxSysExtAPRadioTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the Radio table was + modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 3 } + + + wlsxSysExtAPTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the AP table was + modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 4 } + + + wlsxSysExtSwitchListTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the Switch list table was + modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 5 } + + + wlsxSysExtPortTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the port table was + modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 6 } + + + wlsxSysExtVlanTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the Vlan table was + modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 7 } + + + wlsxSysExtVlanInterfaceTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the Vlan Interface table + was modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 8 } + + wlsxSysExtLicenseTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the license table + was modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 9 } + + wlsxSysExtMonAPTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the monitored AP table + was modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 10 } + + wlsxSysExtMonStationTableGenNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + This objects denotes the number of times the monitored station table + was modified since reboot. + " + ::= { wlsxSystemExtTableGenNumberGroup 11 } + + + wlsxSysExtPoweredViaPoe OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Switch is powered using POE power." + ::= { wlsxSystemExtGroup 33 } + +END + diff --git a/pandora_console/attachment/mibs/WLSX-WLAN-MIB b/pandora_console/attachment/mibs/WLSX-WLAN-MIB new file mode 100644 index 0000000000..9b088238a2 --- /dev/null +++ b/pandora_console/attachment/mibs/WLSX-WLAN-MIB @@ -0,0 +1,5938 @@ +-- ArubaOS 6.4.2.3-4.1.1.2_48114 +-- vim:set ts=4 sw=4: +WLSX-WLAN-MIB DEFINITIONS ::= BEGIN + + IMPORTS + TEXTUAL-CONVENTION FROM SNMPv2-TC + + Gauge32, Counter64, TimeTicks, MODULE-IDENTITY, + OBJECT-TYPE, + snmpModules, + Integer32, + Unsigned32, + Counter32, + IpAddress, + NOTIFICATION-TYPE + FROM SNMPv2-SMI + + TDomain, + DisplayString, + PhysAddress, + TAddress, + TimeInterval, + RowStatus, + StorageType, + TestAndIncr, + MacAddress, + TruthValue + FROM SNMPv2-TC + + ifIndex + FROM RFC1213-MIB + + ArubaEnableValue, + ArubaFrameType, + ArubaActiveState, + ArubaRogueApType, + ArubaAuthenticationMethods, + ArubaEncryptionMethods, + ArubaPhyType, + ArubaVoipProtocolType, + ArubaVlanValidRange, + ArubaAccessPointMode, + ArubaAPStatus, + ArubaEnet1Mode, + ArubaUnprovisionedStatus, + ArubaMonitorMode, + ArubaAntennaSetting, + ArubaMeshRole, + ArubaHTMode, + ArubaHTExtChannel + FROM ARUBA-TC + + OBJECT-GROUP + FROM SNMPv2-CONF + wlsxEnterpriseMibModules + FROM ARUBA-MIB; + + wlsxWlanMIB MODULE-IDENTITY + LAST-UPDATED "1001261806Z" + ORGANIZATION "Aruba Wireless Networks" + CONTACT-INFO + "Postal: 1322 Crossman Avenue + Sunnyvale, CA 94089 + E-mail: dl-support@arubanetworks.com + Phone: +1 408 227 4500" + DESCRIPTION + "This MIB module defines MIB objects which provide + information about the Wireless Management System (WMS) in the + Aruba Controller." + REVISION "1001261806Z" + DESCRIPTION + "The initial revision." + ::= { wlsxEnterpriseMibModules 5 } + + wlsxWlanConfigGroup OBJECT IDENTIFIER ::= { wlsxWlanMIB 1 } + wlsxWlanStateGroup OBJECT IDENTIFIER ::= { wlsxWlanMIB 2 } + wlsxWlanStatsGroup OBJECT IDENTIFIER ::= { wlsxWlanMIB 3 } + wlsxRAPTraps OBJECT IDENTIFIER ::= { wlsxWlanMIB 100 } + +-- wlsxWlanAccessPointInfoGroup contains a Local Access Point Information Table. +-- which lists all the APs connected to the controller, a Global AP Info Table +-- which lists all the APs in the Aruba Domain. The Global table is valid only +-- on the Master controller. The Group also contains two scalar objects which +-- indicate the total number of APs and the total number of Clients connected. + + wlsxWlanAccessPointInfoGroup OBJECT IDENTIFIER ::= { wlsxWlanStateGroup 1 } + wlsxWlanStationInfoGroup OBJECT IDENTIFIER ::= { wlsxWlanStateGroup 2 } + wlsxWlanAssociationInfoGroup OBJECT IDENTIFIER ::= { wlsxWlanStateGroup 3 } + wlsxWlanAccessPointStatsGroup OBJECT IDENTIFIER ::= { wlsxWlanStatsGroup 1 } + wlsxWlanStationStatsGroup OBJECT IDENTIFIER ::= { wlsxWlanStatsGroup 2 } + wlsxWlanSwitchStatsGroup OBJECT IDENTIFIER ::= { wlsxWlanStatsGroup 3 } + wlsxSSIDConfigGroup OBJECT IDENTIFIER ::= { wlsxWlanConfigGroup 1 } + wlsxAPConfigGroup OBJECT IDENTIFIER ::= { wlsxWlanConfigGroup 2 } + + wlsxWlanTotalNumAccessPoints OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Total Number of Access Points connected to the controller. + " + ::= { wlsxWlanAccessPointInfoGroup 1 } + + wlsxWlanTotalNumStationsAssociated OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Total Number of Stations Associated to the controller. + " + ::= { wlsxWlanAccessPointInfoGroup 2 } + +-- AP Group Table + wlsxWlanAPGroupTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists all the Access Points Groups configured in the + Aruba controller. + " + ::= { wlsxWlanAccessPointInfoGroup 3 } + + wlsxWlanAPGroupEntry OBJECT-TYPE + SYNTAX WlanAPGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "AP Group Entry" + INDEX {wlanAPGroup} + ::= { wlsxWlanAPGroupTable 1 } + + WlanAPGroupEntry ::= + SEQUENCE { + wlanAPGroup DisplayString, + wlanAPNumAps Integer32 + } + + wlanAPGroup OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The name of an AP group + " + ::= { wlsxWlanAPGroupEntry 1 } + + wlanAPNumAps OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of APs in the AP Group + " + ::= { wlsxWlanAPGroupEntry 2 } + + + -- AP Table + + wlsxWlanAPTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table lists all the Access Points connected to the + controller. + " + ::= { wlsxWlanAccessPointInfoGroup 4 } + + wlsxWlanAPEntry OBJECT-TYPE + SYNTAX WlanAPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Point Entry" + INDEX {wlanAPMacAddress} + ::= { wlsxWlanAPTable 1 } + + WlanAPEntry ::= + SEQUENCE { + wlanAPMacAddress MacAddress, + wlanAPIpAddress IpAddress, + wlanAPName DisplayString, + wlanAPGroupName DisplayString, + wlanAPModel OBJECT IDENTIFIER, + wlanAPSerialNumber DisplayString, + wlanAPdot11aAntennaGain Integer32, + wlanAPdot11gAntennaGain Integer32, + wlanAPNumRadios Integer32, + wlanAPEnet1Mode ArubaEnet1Mode, + wlanAPIpsecMode ArubaEnableValue, + wlanAPUpTime TimeTicks, + wlanAPModelName DisplayString, + wlanAPLocation DisplayString, + wlanAPBuilding Integer32, + wlanAPFloor Integer32, + wlanAPLoc Integer32, + wlanAPExternalAntenna ArubaAntennaSetting, + wlanAPStatus ArubaAPStatus, + wlanAPNumBootstraps Integer32, + wlanAPNumReboots Integer32, + wlanAPUnprovisioned ArubaUnprovisionedStatus, + wlanAPMonitorMode ArubaMonitorMode, + wlanAPFQLNBuilding DisplayString, + wlanAPFQLNFloor DisplayString, + wlanAPFQLN DisplayString, + wlanAPFQLNCampus DisplayString, + wlanAPLongitude DisplayString, + wlanAPLatitude DisplayString, + wlanAPAltitude DisplayString, + wlanAPMeshRole ArubaMeshRole, + wlanAPSysLocation DisplayString, + wlanAPHwVersion DisplayString, + wlanAPSwVersion DisplayString, + wlanAPNumWarmReboots Integer32, + wlanAPOuterIpAddress IpAddress, + wlanAPRemoteLanIpAddress IpAddress, + wlanAPActiveUplink INTEGER, + wlanAPSwitchIpAddress IpAddress, + wlanAPStandbyIpAddress IpAddress, + wlanAPConnectedAsStandby INTEGER + } + + wlanAPMacAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Ethernet MAC Address of the Access Point + " + ::= { wlsxWlanAPEntry 1 } + + wlanAPIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + IP Address of the Access Point + " + ::= { wlsxWlanAPEntry 2 } + + wlanAPName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Host name of the Access Point. + " + ::= { wlsxWlanAPEntry 3 } + + wlanAPGroupName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Group Name of the Access Point. + " + ::= { wlsxWlanAPEntry 4 } + + wlanAPModel OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Sys OID of the Access Point. + " + ::= { wlsxWlanAPEntry 5 } + + wlanAPSerialNumber OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Serial Number of the Access Point. + " + ::= { wlsxWlanAPEntry 6 } + + wlanAPdot11aAntennaGain OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Configured antenna gain for 'A' Radio. + " + ::= { wlsxWlanAPEntry 7 } + + wlanAPdot11gAntennaGain OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Configured antenna gain for 'G' Radio. + " + ::= { wlsxWlanAPEntry 8 } + + wlanAPNumRadios OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of Radios in the Access Point. + " + ::= { wlsxWlanAPEntry 9 } + + wlanAPEnet1Mode OBJECT-TYPE + SYNTAX ArubaEnet1Mode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Enet1 Mode of the Access Point. + " + ::= { wlsxWlanAPEntry 10 } + + wlanAPIpsecMode OBJECT-TYPE + SYNTAX ArubaEnableValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + IPSEC Mode of the Access Point. + " + ::= { wlsxWlanAPEntry 11 } + + wlanAPUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Time (in hundredths of seconds) since the last time the Access + Point bootstrapped with the controller. + " + ::= { wlsxWlanAPEntry 12 } + + wlanAPModelName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Model name of the Access Point. + " + ::= { wlsxWlanAPEntry 13 } + + wlanAPLocation OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Location of the Access Point. + " + ::= { wlsxWlanAPEntry 14 } + + wlanAPBuilding OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + AP Building Number. + " + ::= { wlsxWlanAPEntry 15 } + + wlanAPFloor OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + AP Floor Number. + " + ::= { wlsxWlanAPEntry 16 } + + wlanAPLoc OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + AP Location. + " + ::= { wlsxWlanAPEntry 17 } + + wlanAPExternalAntenna OBJECT-TYPE + SYNTAX ArubaAntennaSetting + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + AP Antenna Status. + " + ::= { wlsxWlanAPEntry 18 } + + wlanAPStatus OBJECT-TYPE + SYNTAX ArubaAPStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + AP Status. + " + ::= { wlsxWlanAPEntry 19 } + + wlanAPNumBootstraps OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of times the AP has bootstrapped with the controller. + " + ::= { wlsxWlanAPEntry 20 } + + wlanAPNumReboots OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of times the AP has rebooted. + " + ::= { wlsxWlanAPEntry 21 } + + wlanAPUnprovisioned OBJECT-TYPE + SYNTAX ArubaUnprovisionedStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether the AP is unprovisioned due to lack of + antenna gain or location code settings. + " + ::= { wlsxWlanAPEntry 22 } + + wlanAPMonitorMode OBJECT-TYPE + SYNTAX ArubaMonitorMode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether any radio on this AP is acting as an + air monitor. + " + ::= { wlsxWlanAPEntry 23 } + + wlanAPFQLNBuilding OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The building component of the AP's FQLN. + " + ::= { wlsxWlanAPEntry 24 } + + wlanAPFQLNFloor OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The floor component of the AP's FQLN. + " + ::= { wlsxWlanAPEntry 25 } + + wlanAPFQLN OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + The AP's Fully Qualified Location Name (FQLN). + " + ::= { wlsxWlanAPEntry 26 } + + wlanAPFQLNCampus OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The campus component of the AP's FQLN. + " + ::= { wlsxWlanAPEntry 27 } + + wlanAPLongitude OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Longitude of the AP. Signed floating-point value. + " + ::= { wlsxWlanAPEntry 28 } + + wlanAPLatitude OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Latitude of the AP. Signed floating-point value. + " + ::= { wlsxWlanAPEntry 29 } + + wlanAPAltitude OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Altitude of the AP. Signed floating-point value. + " + ::= { wlsxWlanAPEntry 30 } + + wlanAPMeshRole OBJECT-TYPE + SYNTAX ArubaMeshRole + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + AP Mesh role + " + ::= { wlsxWlanAPEntry 31 } + + wlanAPSysLocation OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + AP sysLocation + " + ::= { wlsxWlanAPEntry 32 } + + wlanAPHwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Hardware version of the AP. + " + ::= { wlsxWlanAPEntry 33 } + + wlanAPSwVersion OBJECT-TYPE + SYNTAX DisplayString (SIZE(1..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Software version of the AP. + " + ::= { wlsxWlanAPEntry 34 } + + wlanAPNumWarmReboots OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Number of times the AP has warm-rebooted. + " + ::= { wlsxWlanAPEntry 35 } + + wlanAPOuterIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Outer IP Address of the Access Point. + " + ::= { wlsxWlanAPEntry 36 } + + wlanAPRemoteLanIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + LAN IP Address of the Remote Access Point. + " + ::= { wlsxWlanAPEntry 37 } + + wlanAPActiveUplink OBJECT-TYPE + SYNTAX INTEGER { + ethernet(1), + usb(2), + pppoe(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Uplink of the RAP(Ethernet or USB). + " + ::= { wlsxWlanAPEntry 38 } + + wlanAPSwitchIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Access points' Serving Controller's IP Address. + " + ::= { wlsxWlanAPEntry 39 } + + wlanAPStandbyIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Access points' Standby Controller's IP Address. + " + ::= { wlsxWlanAPEntry 40 } + + wlanAPConnectedAsStandby OBJECT-TYPE + SYNTAX INTEGER { + active(0), + standby(1) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Access point connected as active/standby. + " + ::= { wlsxWlanAPEntry 41 } + + +-- Radio table is indexed by the Mac Address of the AP and the type of the +-- radio. + + wlsxWlanRadioTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanRadioEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table lists all the radios known to the + controller. + " + ::= { wlsxWlanAccessPointInfoGroup 5 } + + wlsxWlanRadioEntry OBJECT-TYPE + SYNTAX WlanRadioEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "AP Radio Entry" + INDEX {wlanAPMacAddress, wlanAPRadioNumber} + ::= { wlsxWlanRadioTable 1 } + + WlanRadioEntry ::= + SEQUENCE { + wlanAPRadioNumber Integer32, + wlanAPRadioType ArubaPhyType, + wlanAPRadioChannel Integer32, + wlanAPRadioTransmitPower Integer32, + wlanAPRadioMode ArubaAccessPointMode, + wlanAPRadioUtilization Integer32, + wlanAPRadioNumAssociatedClients Integer32, + wlanAPRadioNumMonitoredClients Integer32, + wlanAPRadioNumActiveBSSIDs Integer32, + wlanAPRadioNumMonitoredBSSIDs Integer32, + wlanAPRadioBearing DisplayString, + wlanAPRadioTiltAngle DisplayString, + wlanAPRadioHTMode ArubaHTMode, + wlanAPRadioHTExtChannel ArubaHTExtChannel, + wlanAPRadioHTChannel DisplayString, + wlanAPRadioAPName DisplayString + } + + wlanAPRadioNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The radio number + " + ::= { wlsxWlanRadioEntry 1 } + + wlanAPRadioType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Type of the Radio + " + ::= { wlsxWlanRadioEntry 2 } + + wlanAPRadioChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The channel the radio is currently operating on. + " + ::= { wlsxWlanRadioEntry 3 } + + wlanAPRadioTransmitPower OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The current power level of the radio. + " + ::= { wlsxWlanRadioEntry 4 } + + wlanAPRadioMode OBJECT-TYPE + SYNTAX ArubaAccessPointMode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Mode in which the radio is operating. + " + ::= { wlsxWlanRadioEntry 5 } + + wlanAPRadioUtilization OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Utilization of the radio as a percentage of the total capacity. + " + ::= { wlsxWlanRadioEntry 6 } + + + wlanAPRadioNumAssociatedClients OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Clients associated to this radio. + " + ::= { wlsxWlanRadioEntry 7 } + + + wlanAPRadioNumMonitoredClients OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Clients this Radio is monitoring. + " + ::= { wlsxWlanRadioEntry 8 } + + + wlanAPRadioNumActiveBSSIDs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of active BSSIDs on this Radio. + " + ::= { wlsxWlanRadioEntry 9 } + + + wlanAPRadioNumMonitoredBSSIDs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of AP BSSIDs this radio is monitoring. + " + ::= { wlsxWlanRadioEntry 10 } + + wlanAPRadioBearing OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Antenna Bearing in degrees from True North. + Unsigned floating-point value. Range: 0-360. + " + ::= { wlsxWlanRadioEntry 11 } + + wlanAPRadioTiltAngle OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + Tilt angle of antenna in degrees. -ve for downtilt, + +ve for uptilt. Signed floating-point value. Range: -90 to +90. + " + ::= { wlsxWlanRadioEntry 12 } + + wlanAPRadioHTMode OBJECT-TYPE + SYNTAX ArubaHTMode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The HT mode of the radio, if any. + " + ::= { wlsxWlanRadioEntry 13 } + + wlanAPRadioHTExtChannel OBJECT-TYPE + SYNTAX ArubaHTExtChannel + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the offset of the 40MHz extension channel, if any. + " + ::= { wlsxWlanRadioEntry 14 } + + wlanAPRadioHTChannel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + " + A display string indicating the current channel. If wlanAPRadioHTExtChannel + is set to 'above' or 'below', then the channel number will be appended + with '+' or '-' respectively. + " + ::= { wlsxWlanRadioEntry 15 } + + wlanAPRadioAPName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Name of the AP the radio belongs to" + ::= { wlsxWlanRadioEntry 16 } + +-- Local Access Point Table. + + wlsxWlanAPBssidTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPBssidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table lists all the BSSIDs active on this controller. + " + ::= { wlsxWlanAccessPointInfoGroup 7 } + + wlsxWlanAPBssidEntry OBJECT-TYPE + SYNTAX WlanAPBssidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "BSSID Entry" + INDEX {wlanAPMacAddress, wlanAPRadioNumber, wlanAPBSSID} + ::= { wlsxWlanAPBssidTable 1 } + + WlanAPBssidEntry ::= + SEQUENCE { + wlanAPBSSID MacAddress, + wlanAPESSID DisplayString, + wlanAPBssidSlot Unsigned32, + wlanAPBssidPort Unsigned32, + wlanAPBssidPhyType ArubaPhyType, + wlanAPBssidRogueType ArubaRogueApType, + wlanAPBssidMode INTEGER, + wlanAPBssidChannel INTEGER, + wlanAPBssidUpTime TimeTicks, + wlanAPBssidInactiveTime TimeTicks, + wlanAPBssidLoadBalancing TruthValue, + wlanAPBssidNumAssociatedStations Unsigned32, + wlanAPBssidAPMacAddress MacAddress, + wlanAPBssidPhyNumber Integer32, + wlanAPBssidHTMode ArubaHTMode, + wlanAPBssidHTExtChannel ArubaHTExtChannel, + wlanAPBssidHTChannel DisplayString, + wlanAPBssidSnr Integer32 + } + + wlanAPBSSID OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The MAC address of the Access Point. + " + ::= { wlsxWlanAPBssidEntry 1 } + + wlanAPESSID OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + ESSID this BSSID is advertising. + " + ::= { wlsxWlanAPBssidEntry 2 } + + wlanAPBssidSlot OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Slot to which the Access Point is connected. + " + ::= { wlsxWlanAPBssidEntry 3 } + + wlanAPBssidPort OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Port to which the Access Point is connected. + " + ::= { wlsxWlanAPBssidEntry 4 } + + wlanAPBssidPhyType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Physical Layer Protocol support of the AP. + " + ::= { wlsxWlanAPBssidEntry 5 } + + wlanAPBssidRogueType OBJECT-TYPE + SYNTAX ArubaRogueApType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The type of the Rogue. + " + ::= { wlsxWlanAPBssidEntry 6 } + + wlanAPBssidMode OBJECT-TYPE + SYNTAX INTEGER{ + ap(1), + am(2), + mpp(3), + mp(4) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether the Access point is an Air Monitor or regular AP + or Mesh Portal or Mesh Point. + " + ::= { wlsxWlanAPBssidEntry 7 } + + wlanAPBssidChannel OBJECT-TYPE + SYNTAX INTEGER(1..165) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The current operating channel. + " + ::= { wlsxWlanAPBssidEntry 8 } + + wlanAPBssidUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Time (in hundredths of seconds) since the tunnel was created + between the access point and controller + " + ::= { wlsxWlanAPBssidEntry 9 } + + wlanAPBssidInactiveTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Time (in hundredths of seconds) since any activity took place on + the BSSID. + " + ::= { wlsxWlanAPBssidEntry 10 } + + wlanAPBssidLoadBalancing OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether load balancing is enabled or not. + " + ::= { wlsxWlanAPBssidEntry 11 } + + wlanAPBssidNumAssociatedStations OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the number of stations associated to this BSSID. + " + ::= { wlsxWlanAPBssidEntry 12 } + + + wlanAPBssidAPMacAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the Access Point to which this BSSID belongs. + " + ::= { wlsxWlanAPBssidEntry 13 } + + wlanAPBssidPhyNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the radio number to which this BSSID belongs. + " + ::= { wlsxWlanAPBssidEntry 14 } + + wlanAPBssidHTMode OBJECT-TYPE + SYNTAX ArubaHTMode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the HT mode of this BSSID, if any. + " + ::= { wlsxWlanAPBssidEntry 15 } + + wlanAPBssidHTExtChannel OBJECT-TYPE + SYNTAX ArubaHTExtChannel + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the offset of the 40MHz extension channel, if any. + " + ::= { wlsxWlanAPBssidEntry 16 } + + wlanAPBssidHTChannel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + A display string indicating the current channel. If wlanAPBssidHTExtChannel + is set to 'above' or 'below', then the channel number will be appended + with '+' or '-' respectively. + " + ::= { wlsxWlanAPBssidEntry 17 } + + wlanAPBssidSnr OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates the Signal Noise Ratio of this BSSID. + " + ::= { wlsxWlanAPBssidEntry 18 } + +-- ESSID Table + + wlsxWlanESSIDTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanESSIDEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists all the ESSIDs advertised by this controller. + " + ::= { wlsxWlanAccessPointInfoGroup 8 } + + wlsxWlanESSIDEntry OBJECT-TYPE + SYNTAX WlanESSIDEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "ESSID Entry" + INDEX {wlanESSID} + ::= { wlsxWlanESSIDTable 1 } + + WlanESSIDEntry ::= + SEQUENCE { + wlanESSID DisplayString, + wlanESSIDNumStations Unsigned32, + wlanESSIDNumAccessPointsUp Unsigned32, + wlanESSIDNumAccessPointsDown Unsigned32, + wlanESSIDEncryptionType ArubaEncryptionMethods + } + + wlanESSID OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The ESSID being advertised. + " + ::= { wlsxWlanESSIDEntry 1 } + + wlanESSIDNumStations OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of stations connected to this ESSID. + " + ::= { wlsxWlanESSIDEntry 2 } + + wlanESSIDNumAccessPointsUp OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of APs currently advertising this ESSID. + " + ::= { wlsxWlanESSIDEntry 3 } + + wlanESSIDNumAccessPointsDown OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of APs configured to advertise this ESSID that + are not currently operational. + " + ::= { wlsxWlanESSIDEntry 4 } + + wlanESSIDEncryptionType OBJECT-TYPE + SYNTAX ArubaEncryptionMethods + + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The encryption methods supported on this ESSID. + " + ::= { wlsxWlanESSIDEntry 5 } + +-- ESSID Vlan Pool Table + + wlsxWlanESSIDVlanPoolTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanESSIDVlanPoolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists all the VLANs associated with this ESSID. + " + ::= { wlsxWlanAccessPointInfoGroup 9 } + + wlsxWlanESSIDVlanPoolEntry OBJECT-TYPE + SYNTAX WlanESSIDVlanPoolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "ESSID Vlan Pool Entry" + INDEX {wlanESSID, wlanESSIDVlanId} + ::= { wlsxWlanESSIDVlanPoolTable 1 } + + WlanESSIDVlanPoolEntry ::= + SEQUENCE { + wlanESSIDVlanId Unsigned32, + wlanESSIDVlanPoolStatus RowStatus + } + + wlanESSIDVlanId OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + VLAN which is part of the VLAN pool for this ESSID. + " + ::= { wlsxWlanESSIDVlanPoolEntry 1 } + + wlanESSIDVlanPoolStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + " + Row status object used to indicate the status of the row. + " + ::= { wlsxWlanESSIDVlanPoolEntry 2 } + +--Station Info Group contains the State information for the stations. + +--Station Table contains all the station associated with an AP. + + wlsxWlanStationTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanStationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists all the wireless stations associated with the + Access points connected to this controller. + " + + ::= { wlsxWlanStationInfoGroup 1} + + wlsxWlanStationEntry OBJECT-TYPE + SYNTAX WlanStationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station Entry" + INDEX {wlanStaPhyAddress} + ::= { wlsxWlanStationTable 1 } + + WlanStationEntry ::= + SEQUENCE { + wlanStaPhyAddress MacAddress, + wlanStaApBssid MacAddress, + wlanStaPhyType ArubaPhyType, + wlanStaIsAuthenticated TruthValue, + wlanStaIsAssociated TruthValue, + wlanStaChannel INTEGER, + wlanStaVlanId ArubaVlanValidRange, + wlanStaVOIPState TruthValue, + wlanStaVOIPProtocol ArubaVoipProtocolType, + wlanStaTransmitRate Unsigned32, + wlanStaAssociationID Unsigned32, + wlanStaAccessPointESSID DisplayString, + wlanStaPhyNumber Integer32, + wlanStaRSSI Integer32, + wlanStaUpTime TimeTicks, + wlanStaHTMode ArubaHTMode, + wlanStaTransmitRateCode Unsigned32 + } + + wlanStaPhyAddress OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The Physical Address of the Station. + " + ::= { wlsxWlanStationEntry 1 } + + wlanStaApBssid OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + The Access point to which this station last associated to. + " + ::= { wlsxWlanStationEntry 2 } + + wlanStaPhyType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Type of the Station. + " + ::= { wlsxWlanStationEntry 3 } + + wlanStaIsAuthenticated OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether the station is authenticated. + " + ::= { wlsxWlanStationEntry 4 } + + wlanStaIsAssociated OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Indicates whether the station is associated. + " + ::= { wlsxWlanStationEntry 5 } + + wlanStaChannel OBJECT-TYPE + SYNTAX INTEGER(1..165) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Channel on which the station is associated. + " + ::= { wlsxWlanStationEntry 6 } + + wlanStaVlanId OBJECT-TYPE + SYNTAX ArubaVlanValidRange + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + VLAN in which the station is present. + " + ::= { wlsxWlanStationEntry 7 } + + wlanStaVOIPState OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The State of VoIP for this station. + " + ::= { wlsxWlanStationEntry 8 } + + wlanStaVOIPProtocol OBJECT-TYPE + SYNTAX ArubaVoipProtocolType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + If VoIP is enabled, the type of the protocol supported. + " + ::= { wlsxWlanStationEntry 9 } + + wlanStaTransmitRate OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Transmit rate with which the Station is associated with this system. + " + ::= { wlsxWlanStationEntry 10 } + + wlanStaAssociationID OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + AID with which the Station is associated with this system. + " + ::= { wlsxWlanStationEntry 11 } + + wlanStaAccessPointESSID OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + ESSID of the Access point + " + ::= { wlsxWlanStationEntry 12 } + + wlanStaPhyNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Radio PHY number to which the station is associated + " + ::= { wlsxWlanStationEntry 13 } + + wlanStaRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Signal to Noise ratio for the station. + " + ::= { wlsxWlanStationEntry 14 } + + + wlanStaUpTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Time since the station associated to the current BSSID. + " + ::= { wlsxWlanStationEntry 15 } + + wlanStaHTMode OBJECT-TYPE + SYNTAX ArubaHTMode + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The HT status of the station. + " + ::= { wlsxWlanStationEntry 16 } + + wlanStaTransmitRateCode OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Transmit rate code with which the Station is associated with this system, unit is mbps. + " + ::= { wlsxWlanStationEntry 17 } + +--Station Association Failure Table contains all the Stations that failed to +--associate an ap. + + wlsxWlanStaAssociationFailureTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanStaAssociationFailureEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists all the stations and the BSSID's to which they + failed to associate. Once a station successfully associates, + association failure entries are not reported for that station. + " + + ::= { wlsxWlanStationInfoGroup 2} + + wlsxWlanStaAssociationFailureEntry OBJECT-TYPE + SYNTAX WlanStaAssociationFailureEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station Association Failure Entry" + INDEX {wlanStaPhyAddress, wlanAPBSSID} + ::= { wlsxWlanStaAssociationFailureTable 1 } + + WlanStaAssociationFailureEntry ::= + SEQUENCE { + wlanStaAssocFailureApName DisplayString, + wlanStaAssocFailureApEssid DisplayString, + wlanStaAssocFailurePhyNum Integer32, + wlanStaAssocFailurePhyType ArubaPhyType, + wlanStaAssocFailureElapsedTime TimeTicks, + wlanStaAssocFailureReason DisplayString + } + + wlanStaAssocFailureApName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Name of the Access Point to which this station tried to associate. + " + ::= { wlsxWlanStaAssociationFailureEntry 1 } + + wlanStaAssocFailureApEssid OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + ESSID to which the station association failed. + " + ::= { wlsxWlanStaAssociationFailureEntry 2 } + + wlanStaAssocFailurePhyNum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Radio PHY number to which the station tried to associate. + " + ::= { wlsxWlanStaAssociationFailureEntry 3 } + + wlanStaAssocFailurePhyType OBJECT-TYPE + SYNTAX ArubaPhyType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Radio PHY Type of the Station. + " + ::= { wlsxWlanStaAssociationFailureEntry 4 } + + wlanStaAssocFailureElapsedTime OBJECT-TYPE + SYNTAX TimeTicks + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Elapsed time in timeticks after the station's failure to associate. + " + ::= { wlsxWlanStaAssociationFailureEntry 5 } + + wlanStaAssocFailureReason OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..80)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + Reason for the Station association failure + " + ::= { wlsxWlanStaAssociationFailureEntry 6 } + +-- Stats group contains tables for station statistics, BSSID statistics and +-- AP statistics. + + wlsxWlanAPStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the statistics of all the Access Points connected + to the controller. + " + ::= { wlsxWlanAccessPointStatsGroup 1 } + + wlsxWlanAPStatsEntry OBJECT-TYPE + SYNTAX WlanAPStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Point Stats entry" + INDEX {wlanAPMacAddress, wlanAPRadioNumber, wlanAPBSSID} + ::= { wlsxWlanAPStatsTable 1 } + + WlanAPStatsEntry ::= + SEQUENCE { + wlanAPCurrentChannel Unsigned32, + wlanAPNumClients Integer32, + wlanAPTxPkts Counter32, + wlanAPTxBytes Counter32, + wlanAPRxPkts Counter32, + wlanAPRxBytes Counter32, + wlanAPTxDeauthentications Counter32, + wlanAPRxDeauthentications Counter32, + wlanAPChannelThroughput Integer32, + wlanAPFrameRetryRate Integer32, + wlanAPFrameLowSpeedRate Integer32, + wlanAPFrameNonUnicastRate Integer32, + wlanAPFrameFragmentationRate Integer32, + wlanAPFrameBandwidthRate Integer32, + wlanAPFrameRetryErrorRate Integer32, + wlanAPChannelErrorRate Integer32, + wlanAPFrameReceiveErrorRate Integer32, + wlanAPRxDataPkts Counter32, + wlanAPRxDataBytes Counter32, + wlanAPTxDataPkts Counter32, + wlanAPTxDataBytes Counter32, + wlanAPRxDataPkts64 Counter64, + wlanAPRxDataBytes64 Counter64, + wlanAPTxDataPkts64 Counter64, + wlanAPTxDataBytes64 Counter64, + wlanAPWiredRxErrorPkts Counter32, + wlanAPRxErrorPkts Counter32 + } + + wlanAPCurrentChannel OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The channel the AP is currently using. + " + ::= { wlsxWlanAPStatsEntry 1 } + + wlanAPNumClients OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of clients associated to this BSSID. + " + ::= { wlsxWlanAPStatsEntry 2 } + + wlanAPTxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets transmitted on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 3 } + + wlanAPTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes transmitted on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 4 } + + wlanAPRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 5 } + + wlanAPRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 6 } + + wlanAPTxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of deauthentications transmitted on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 7 } + + wlanAPRxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of deauthentications received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 8 } + + wlanAPChannelThroughput OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The throughput achieved on this channel. + " + ::= { wlsxWlanAPStatsEntry 9 } + + wlanAPFrameRetryRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of retry + packets as a percentage of the total packets + transmitted and received by this BSSID. + " + ::= { wlsxWlanAPStatsEntry 10 } + + wlanAPFrameLowSpeedRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of low data rate (<= 18Mbps for A/G bands and <=2Mbps + for B band) packets as a percentage of the total packets + transmitted and received by this BSSID + " + ::= { wlsxWlanAPStatsEntry 11 } + + wlanAPFrameNonUnicastRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast and multicast + packets as a percentage of the total packets + transmitted on this BSSIDchannel. + " + ::= { wlsxWlanAPStatsEntry 12 } + + wlanAPFrameFragmentationRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of fragments + as a percentage of the total packets + transmitted by this BSSID. + " + ::= { wlsxWlanAPStatsEntry 13 } + + wlanAPFrameBandwidthRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The bandwidth of this BSSID in Kbps. + " + ::= { wlsxWlanAPStatsEntry 14 } + + wlanAPFrameRetryErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 15 } + + wlanAPChannelErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets received + on the current channel. + " + ::= { wlsxWlanAPStatsEntry 16 } + + wlanAPFrameReceiveErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 17 } + + wlanAPRxDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of packets received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 18 } + + wlanAPRxDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of bytes received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 19 } + + wlanAPTxDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of packets transmitted on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 20 } + + wlanAPTxDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of bytes transmitted on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 21 } + + wlanAPRxDataPkts64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 22 } + + wlanAPRxDataBytes64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes received on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 23 } + + wlanAPTxDataPkts64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets transmitted on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 24 } + + wlanAPTxDataBytes64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes transmitted on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 25 } + + wlanAPWiredRxErrorPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets received from the controller on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 26 } + + wlanAPRxErrorPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets received from stations on this BSSID. + " + ::= { wlsxWlanAPStatsEntry 27 } + +-- This table breaks down the AP statistics observed into different +-- rate categories. + + wlsxWlanAPRateStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanAPRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the AP Packet and Byte Counts + but represented in terms of rate categories. + " + + ::= { wlsxWlanAccessPointStatsGroup 2 } + + wlsxWlanAPRateStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanAPRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Data rate based packet and byte count entry for an AP" + INDEX {wlanAPMacAddress, wlanAPRadioNumber, wlanAPBSSID} + ::= { wlsxWlanAPRateStatsTable 1 } + + WlsxWlanAPRateStatsEntry ::= + SEQUENCE { + wlanAPStatsTotPktsAt1Mbps Counter32, + wlanAPStatsTotBytesAt1Mbps Counter32, + wlanAPStatsTotPktsAt2Mbps Counter32, + wlanAPStatsTotBytesAt2Mbps Counter32, + wlanAPStatsTotPktsAt5Mbps Counter32, + wlanAPStatsTotBytesAt5Mbps Counter32, + wlanAPStatsTotPktsAt11Mbps Counter32, + wlanAPStatsTotBytesAt11Mbps Counter32, + wlanAPStatsTotPktsAt6Mbps Counter32, + wlanAPStatsTotBytesAt6Mbps Counter32, + wlanAPStatsTotPktsAt12Mbps Counter32, + wlanAPStatsTotBytesAt12Mbps Counter32, + wlanAPStatsTotPktsAt18Mbps Counter32, + wlanAPStatsTotBytesAt18Mbps Counter32, + wlanAPStatsTotPktsAt24Mbps Counter32, + wlanAPStatsTotBytesAt24Mbps Counter32, + wlanAPStatsTotPktsAt36Mbps Counter32, + wlanAPStatsTotBytesAt36Mbps Counter32, + wlanAPStatsTotPktsAt48Mbps Counter32, + wlanAPStatsTotBytesAt48Mbps Counter32, + wlanAPStatsTotPktsAt54Mbps Counter32, + wlanAPStatsTotBytesAt54Mbps Counter32, + wlanAPStatsTotPktsAt9Mbps Counter32, + wlanAPStatsTotBytesAt9Mbps Counter32 +-- wlanAPStatsTotPktsAtHT6dot5Mbps Counter32, +-- wlanAPStatsTotBytesAtHT6dot5Mbps Counter32, +-- wlanAPStatsTotPktsAtHT13Mbps Counter32, +-- wlanAPStatsTotBytesAtHT13Mbps Counter32, +-- wlanAPStatsTotPktsAtHT13dot5Mbps Counter32, +-- wlanAPStatsTotBytesAtHT13dot5Mbps Counter32, +-- wlanAPStatsTotPktsAtHT15Mbps Counter32, +-- wlanAPStatsTotBytesAtHT15Mbps Counter32, +-- wlanAPStatsTotPktsAtHT19dot5Mbps Counter32, +-- wlanAPStatsTotBytesAtHT19dot5Mbps Counter32, +-- wlanAPStatsTotPktsAtHT26Mbps Counter32, +-- wlanAPStatsTotBytesAtHT26Mbps Counter32, +-- wlanAPStatsTotPktsAtHT27Mbps Counter32, +-- wlanAPStatsTotBytesAtHT27Mbps Counter32, +-- wlanAPStatsTotPktsAtHT30Mbps Counter32, +-- wlanAPStatsTotBytesAtHT30Mbps Counter32, +-- wlanAPStatsTotPktsAtHT39Mbps Counter32, +-- wlanAPStatsTotBytesAtHT39Mbps Counter32, +-- wlanAPStatsTotPktsAtHT40dot5Mbps Counter32, +-- wlanAPStatsTotBytesAtHT40dot5Mbps Counter32, +-- wlanAPStatsTotPktsAtHT45Mbps Counter32, +-- wlanAPStatsTotBytesAtHT45Mbps Counter32, +-- wlanAPStatsTotPktsAtHT52Mbps Counter32, +-- wlanAPStatsTotBytesAtHT52Mbps Counter32, +-- wlanAPStatsTotPktsAtHT54Mbps Counter32, +-- wlanAPStatsTotBytesAtHT54Mbps Counter32, +-- wlanAPStatsTotPktsAtHT58dot5Mbps Counter32, +-- wlanAPStatsTotBytesAtHT58dot5Mbps Counter32, +-- wlanAPStatsTotPktsAtHT60Mbps Counter32, +-- wlanAPStatsTotBytesAtHT60Mbps Counter32, +-- wlanAPStatsTotPktsAtHT65Mbps Counter32, +-- wlanAPStatsTotBytesAtHT65Mbps Counter32, +-- wlanAPStatsTotPktsAtHT78Mbps Counter32, +-- wlanAPStatsTotBytesAtHT78Mbps Counter32, +-- wlanAPStatsTotPktsAtHT81Mbps Counter32, +-- wlanAPStatsTotBytesAtHT81Mbps Counter32, +-- wlanAPStatsTotPktsAtHT90Mbps Counter32, +-- wlanAPStatsTotBytesAtHT90Mbps Counter32, +-- wlanAPStatsTotPktsAtHT104Mbps Counter32, +-- wlanAPStatsTotBytesAtHT104Mbps Counter32, +-- wlanAPStatsTotPktsAtHT108Mbps Counter32, +-- wlanAPStatsTotBytesAtHT108Mbps Counter32, +-- wlanAPStatsTotPktsAtHT117Mbps Counter32, +-- wlanAPStatsTotBytesAtHT117Mbps Counter32, +-- wlanAPStatsTotPktsAtHT120Mbps Counter32, +-- wlanAPStatsTotBytesAtHT120Mbps Counter32, +-- wlanAPStatsTotPktsAtHT121dot5Mbps Counter32, +-- wlanAPStatsTotBytesAtHT121dot5Mbps Counter32, +-- wlanAPStatsTotPktsAtHT130Mbps Counter32, +-- wlanAPStatsTotBytesAtHT130Mbps Counter32, +-- wlanAPStatsTotPktsAtHT135Mbps Counter32, +-- wlanAPStatsTotBytesAtHT135Mbps Counter32, +-- wlanAPStatsTotPktsAtHT150Mbps Counter32, +-- wlanAPStatsTotBytesAtHT150Mbps Counter32, +-- wlanAPStatsTotPktsAtHT162Mbps Counter32, +-- wlanAPStatsTotBytesAtHT162Mbps Counter32, +-- wlanAPStatsTotPktsAtHT180Mbps Counter32, +-- wlanAPStatsTotBytesAtHT180Mbps Counter32, +-- wlanAPStatsTotPktsAtHT216Mbps Counter32, +-- wlanAPStatsTotBytesAtHT216Mbps Counter32, +-- wlanAPStatsTotPktsAtHT240Mbps Counter32, +-- wlanAPStatsTotBytesAtHT240Mbps Counter32, +-- wlanAPStatsTotPktsAtHT243Mbps Counter32, +-- wlanAPStatsTotBytesAtHT243Mbps Counter32, +-- wlanAPStatsTotPktsAtHT270Mbps Counter32, +-- wlanAPStatsTotBytesAtHT270Mbps Counter32, +-- wlanAPStatsTotPktsAtHT300Mbps Counter32, +-- wlanAPStatsTotBytesAtHT300Mbps Counter32 + } + + wlanAPStatsTotPktsAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 1Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 1 } + + wlanAPStatsTotBytesAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 1Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 2 } + + wlanAPStatsTotPktsAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 2Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 3 } + + wlanAPStatsTotBytesAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 2Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 4 } + + wlanAPStatsTotPktsAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 5Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 5 } + + wlanAPStatsTotBytesAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 5Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 6 } + + wlanAPStatsTotPktsAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 11Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 7 } + + wlanAPStatsTotBytesAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 11Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 8 } + + wlanAPStatsTotPktsAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 6Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 9 } + + wlanAPStatsTotBytesAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 6Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 10 } + + wlanAPStatsTotPktsAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 12Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 11 } + + wlanAPStatsTotBytesAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 12Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 12 } + + wlanAPStatsTotPktsAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 18Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 13 } + + wlanAPStatsTotBytesAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 18Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 14 } + + wlanAPStatsTotPktsAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 24Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 15 } + + wlanAPStatsTotBytesAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 24Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 16 } + + wlanAPStatsTotPktsAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 36Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 17 } + + wlanAPStatsTotBytesAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 36Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 18 } + + wlanAPStatsTotPktsAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 48Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 19 } + + wlanAPStatsTotBytesAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 48Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 20 } + + wlanAPStatsTotPktsAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 54Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 21 } + + wlanAPStatsTotBytesAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 54Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 22 } + + wlanAPStatsTotPktsAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets observed + on this BSSID at 9Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 23 } + + wlanAPStatsTotBytesAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Bytes observed + on this BSSID at 9Mbps rate. + " + ::= { wlsxWlanAPRateStatsEntry 24 } + +-- wlanAPStatsTotPktsAtHT6dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 6.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 25 } +-- +-- wlanAPStatsTotBytesAtHT6dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 6.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 26 } +-- +-- wlanAPStatsTotPktsAtHT13Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 13.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 27 } +-- +-- wlanAPStatsTotBytesAtHT13Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 13.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 28 } +-- +-- wlanAPStatsTotPktsAtHT13dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 13.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 29 } +-- +-- wlanAPStatsTotBytesAtHT13dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 13.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 30 } +-- +-- wlanAPStatsTotPktsAtHT15Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 15.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 31 } +-- +-- wlanAPStatsTotBytesAtHT15Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 15.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 32 } +-- +-- wlanAPStatsTotPktsAtHT19dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 19.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 33 } +-- +-- wlanAPStatsTotBytesAtHT19dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 19.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 34 } +-- +-- wlanAPStatsTotPktsAtHT26Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 26.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 35 } +-- +-- wlanAPStatsTotBytesAtHT26Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 26.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 36 } +-- +-- wlanAPStatsTotPktsAtHT27Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 27.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 37 } +-- +-- wlanAPStatsTotBytesAtHT27Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 27.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 38 } +-- +-- wlanAPStatsTotPktsAtHT30Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 30.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 39 } +-- +-- wlanAPStatsTotBytesAtHT30Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 30.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 40 } +-- +-- wlanAPStatsTotPktsAtHT39Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 39.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 41 } +-- +-- wlanAPStatsTotBytesAtHT39Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 39.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 42 } +-- +-- wlanAPStatsTotPktsAtHT40dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 40.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 43 } +-- +-- wlanAPStatsTotBytesAtHT40dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 40.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 44 } +-- +-- wlanAPStatsTotPktsAtHT45Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 45.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 45 } +-- +-- wlanAPStatsTotBytesAtHT45Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 45.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 46 } +-- +-- wlanAPStatsTotPktsAtHT52Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 52.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 47 } +-- +-- wlanAPStatsTotBytesAtHT52Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 52.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 48 } +-- +-- wlanAPStatsTotPktsAtHT54Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 54.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 49 } +-- +-- wlanAPStatsTotBytesAtHT54Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 54.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 50 } +-- +-- wlanAPStatsTotPktsAtHT58dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 58.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 51 } +-- +-- wlanAPStatsTotBytesAtHT58dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 58.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 52 } +-- +-- wlanAPStatsTotPktsAtHT60Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 60.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 53 } +-- +-- wlanAPStatsTotBytesAtHT60Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 60.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 54 } +-- +-- wlanAPStatsTotPktsAtHT65Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 65.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 55 } +-- +-- wlanAPStatsTotBytesAtHT65Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 65.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 56 } +-- +-- wlanAPStatsTotPktsAtHT78Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 78.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 57 } +-- +-- wlanAPStatsTotBytesAtHT78Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 78.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 58 } +-- +-- wlanAPStatsTotPktsAtHT81Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 81.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 59 } +-- +-- wlanAPStatsTotBytesAtHT81Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 81.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 60 } +-- +-- wlanAPStatsTotPktsAtHT90Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 90.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 61 } +-- +-- wlanAPStatsTotBytesAtHT90Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 90.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 62 } +-- +-- wlanAPStatsTotPktsAtHT104Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 104.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 63 } +-- +-- wlanAPStatsTotBytesAtHT104Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 104.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 64 } +-- +-- wlanAPStatsTotPktsAtHT108Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 108.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 65 } +-- +-- wlanAPStatsTotBytesAtHT108Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 108.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 66 } +-- +-- wlanAPStatsTotPktsAtHT117Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 117.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 67 } +-- +-- wlanAPStatsTotBytesAtHT117Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 117.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 68 } +-- +-- wlanAPStatsTotPktsAtHT120Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 120.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 69 } +-- +-- wlanAPStatsTotBytesAtHT120Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 120.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 70 } +-- +-- wlanAPStatsTotPktsAtHT121dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 121.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 71 } +-- +-- wlanAPStatsTotBytesAtHT121dot5Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 121.5 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 72 } +-- +-- wlanAPStatsTotPktsAtHT130Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 130.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 73 } +-- +-- wlanAPStatsTotBytesAtHT130Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 130.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 74 } +-- +-- wlanAPStatsTotPktsAtHT135Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 135.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 75 } +-- +-- wlanAPStatsTotBytesAtHT135Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 135.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 76 } +-- +-- wlanAPStatsTotPktsAtHT150Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 150.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 77 } +-- +-- wlanAPStatsTotBytesAtHT150Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 150.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 78 } +-- +-- wlanAPStatsTotPktsAtHT162Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 162.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 79 } +-- +-- wlanAPStatsTotBytesAtHT162Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 162.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 80 } +-- +-- wlanAPStatsTotPktsAtHT180Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 180.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 81 } +-- +-- wlanAPStatsTotBytesAtHT180Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 180.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 82 } +-- +-- wlanAPStatsTotPktsAtHT216Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 216.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 83 } +-- +-- wlanAPStatsTotBytesAtHT216Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 216.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 84 } +-- +-- wlanAPStatsTotPktsAtHT240Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 240.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 85 } +-- +-- wlanAPStatsTotBytesAtHT240Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 240.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 86 } +-- +-- wlanAPStatsTotPktsAtHT243Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 243.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 87 } +-- +-- wlanAPStatsTotBytesAtHT243Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 243.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 88 } +-- +-- wlanAPStatsTotPktsAtHT270Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 270.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 89 } +-- +-- wlanAPStatsTotBytesAtHT270Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 270.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 90 } +-- +-- wlanAPStatsTotPktsAtHT300Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of packets observed +-- on this BSSID at the HT 300.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 91 } +-- +-- wlanAPStatsTotBytesAtHT300Mbps OBJECT-TYPE +-- SYNTAX Counter32 +-- MAX-ACCESS read-only +-- STATUS current +-- DESCRIPTION +-- " +-- This attribute indicates the total number of bytes observed +-- on this BSSID at the HT 300.0 rate. +-- " +-- ::= { wlsxWlanAPRateStatsEntry 92 } + +-- This table breaks down the BSSID statistics observed based on the +-- Destination Address Types. + + wlsxWlanAPDATypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanAPDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the per BSSID Packet and Byte Counts + but broken down in terms of Destination Address Type. + " + ::= { wlsxWlanAccessPointStatsGroup 3 } + + wlsxWlanAPDATypeStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanAPDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Destination Address based packet and byte count entry for an AP" + INDEX {wlanAPMacAddress, wlanAPRadioNumber, wlanAPBSSID} + ::= { wlsxWlanAPDATypeStatsTable 1 } + + WlsxWlanAPDATypeStatsEntry ::= + SEQUENCE { + wlanAPStatsTotDABroadcastPkts Counter32 , + wlanAPStatsTotDABroadcastBytes Counter32 , + wlanAPStatsTotDAMulticastPkts Counter32 , + wlanAPStatsTotDAMulticastBytes Counter32 , + wlanAPStatsTotDAUnicastPkts Counter32 , + wlanAPStatsTotDAUnicastBytes Counter32 + + } + + wlanAPStatsTotDABroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Broadcast packets + observed on this BSSID. + " + ::= { wlsxWlanAPDATypeStatsEntry 1 } + + wlanAPStatsTotDABroadcastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Broadcast Bytes + observed on this BSSID. + " + ::= { wlsxWlanAPDATypeStatsEntry 2 } + + wlanAPStatsTotDAMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Multicast packets + observed on this BSSID. + " + ::= { wlsxWlanAPDATypeStatsEntry 3 } + + wlanAPStatsTotDAMulticastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Multicast Bytes + observed on this BSSID. + " + ::= { wlsxWlanAPDATypeStatsEntry 4 } + + wlanAPStatsTotDAUnicastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Unicast packets + observed on this BSSID. + " + ::= { wlsxWlanAPDATypeStatsEntry 5 } + + wlanAPStatsTotDAUnicastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Unicast Bytes + observed on this BSSID. + " + ::= { wlsxWlanAPDATypeStatsEntry 6 } + +-- This table breaks down the BSSID statistics observed based on the +-- the Type of the Packet. + + wlsxWlanAPFrameTypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanAPFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the per BSSID Packet and Byte Counts + but broken down into different Frame Types. + " + ::= { wlsxWlanAccessPointStatsGroup 4 } + + wlsxWlanAPFrameTypeStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanAPFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Frame Type based packet and byte count entry for an AP" + INDEX {wlanAPMacAddress, wlanAPRadioNumber, wlanAPBSSID} + ::= { wlsxWlanAPFrameTypeStatsTable 1 } + + WlsxWlanAPFrameTypeStatsEntry ::= + SEQUENCE { + wlanAPStatsTotMgmtPkts Counter32 , + wlanAPStatsTotMgmtBytes Counter32 , + wlanAPStatsTotCtrlPkts Counter32 , + wlanAPStatsTotCtrlBytes Counter32 , + wlanAPStatsTotDataPkts Counter32 , + wlanAPStatsTotDataBytes Counter32 + + } + + wlanAPStatsTotMgmtPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Management packets + observed on this BSSID. + " + ::= { wlsxWlanAPFrameTypeStatsEntry 1 } + + wlanAPStatsTotMgmtBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Management Bytes + observed on this BSSID. + " + ::= { wlsxWlanAPFrameTypeStatsEntry 2 } + + wlanAPStatsTotCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Control packets + observed on this BSSID. + " + ::= { wlsxWlanAPFrameTypeStatsEntry 3 } + + wlanAPStatsTotCtrlBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Control Bytes + observed on this BSSID. + " + ::= { wlsxWlanAPFrameTypeStatsEntry 4 } + + wlanAPStatsTotDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Data packets + observed on this BSSID. + " + ::= { wlsxWlanAPFrameTypeStatsEntry 5 } + + wlanAPStatsTotDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of Data Bytes + observed on this BSSID. + " + ::= { wlsxWlanAPFrameTypeStatsEntry 6 } + +-- This table breaks down the BSSID statistics observed into packet size +-- buckets. + + wlsxWlanAPPktSizeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanAPPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the per BSSID Packet Count + but broken down into different Packet Sizes. + " + ::= { wlsxWlanAccessPointStatsGroup 5 } + + wlsxWlanAPPktSizeStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanAPPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Packet Size based packet count entry for a BSSID" + INDEX {wlanAPMacAddress, wlanAPRadioNumber, wlanAPBSSID} + ::= { wlsxWlanAPPktSizeStatsTable 1 } + + WlsxWlanAPPktSizeStatsEntry ::= + SEQUENCE { + wlanAPStatsPkts63Bytes Counter32 , + wlanAPStatsPkts64To127 Counter32 , + wlanAPStatsPkts128To255 Counter32 , + wlanAPStatsPkts256To511 Counter32 , + wlanAPStatsPkts512To1023 Counter32 , + wlanAPStatsPkts1024To1518 Counter32 + + } + + wlanAPStatsPkts63Bytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets that were + less than 64 bytes long. + " + ::= { wlsxWlanAPPktSizeStatsEntry 1 } + + wlanAPStatsPkts64To127 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets that were + between 64 and 127 bytes long. + " + ::= { wlsxWlanAPPktSizeStatsEntry 2 } + + wlanAPStatsPkts128To255 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets that were + between 128 and 255 bytes long. + " + ::= { wlsxWlanAPPktSizeStatsEntry 3 } + + wlanAPStatsPkts256To511 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets that were + between 256 and 511 bytes long. + " + ::= { wlsxWlanAPPktSizeStatsEntry 4 } + + wlanAPStatsPkts512To1023 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets that were + between 512 and 1023 bytes long. + " + ::= { wlsxWlanAPPktSizeStatsEntry 5 } + + wlanAPStatsPkts1024To1518 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total number of packets that were + between 1024 and 1518 bytes long. + " + ::= { wlsxWlanAPPktSizeStatsEntry 6 } + + +-- AP Chan Stats table + + wlsxWlanAPChStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPChStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the Channel statistics of all the Access Points + connected to the controller. + " + ::= { wlsxWlanAccessPointStatsGroup 6 } + + wlsxWlanAPChStatsEntry OBJECT-TYPE + SYNTAX WlanAPChStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Point Channel Stats entry" + INDEX {wlanAPMacAddress, wlanAPRadioNumber} + ::= { wlsxWlanAPChStatsTable 1 } + + WlanAPChStatsEntry ::= + SEQUENCE { + wlanAPChannelNumber INTEGER, + wlanAPChNumStations Integer32, + wlanAPChTotPkts Counter32, + wlanAPChTotBytes Counter32, + wlanAPChTotRetryPkts Counter32, + wlanAPChTotFragmentedPkts Counter32, + wlanAPChTotPhyErrPkts Counter32, + wlanAPChTotMacErrPkts Counter32, + wlanAPChNoise Integer32, + wlanAPChCoverageIndex Integer32, + wlanAPChInterferenceIndex Integer32, + wlanAPChFrameRetryRate Integer32, + wlanAPChFrameLowSpeedRate Integer32, + wlanAPChFrameNonUnicastRate Integer32, + wlanAPChFrameFragmentationRate Integer32, + wlanAPChFrameBandwidthRate Integer32, + wlanAPChFrameRetryErrorRate Integer32, + wlanAPChBusyRate Integer32, + wlanAPChNumAPs Integer32, + wlanAPChFrameReceiveErrorRate Integer32, + wlanAPChTransmittedFragmentCount Counter32, + wlanAPChMulticastTransmittedFrameCount Counter32, + wlanAPChFailedCount Counter32, + wlanAPChRetryCount Counter32, + wlanAPChMultipleRetryCount Counter32, + wlanAPChFrameDuplicateCount Counter32, + wlanAPChRTSSuccessCount Counter32, + wlanAPChRTSFailureCount Counter32, + wlanAPChACKFailureCount Counter32, + wlanAPChReceivedFragmentCount Counter32, + wlanAPChMulticastReceivedFrameCount Counter32, + wlanAPChFCSErrorCount Counter32, + wlanAPChTransmittedFrameCount Counter32, + wlanAPChWEPUndecryptableCount Counter32, + wlanAPChRxUtilization INTEGER, + wlanAPChTxUtilization INTEGER, + wlanAPChUtilization INTEGER + } + + wlanAPChannelNumber OBJECT-TYPE + SYNTAX INTEGER(1..165) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The channel the AP is currently using. + " + ::= { wlsxWlanAPChStatsEntry 1 } + + wlanAPChNumStations OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of stations using this + channel. + " + ::= { wlsxWlanAPChStatsEntry 2 } + + wlanAPChTotPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total packets observed on this + channel. + " + ::= { wlsxWlanAPChStatsEntry 3 } + + wlanAPChTotBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total Bytes observed on this + channel. + " + ::= { wlsxWlanAPChStatsEntry 4 } + + wlanAPChTotRetryPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total Retry Packets observed on this + channel. + " + ::= { wlsxWlanAPChStatsEntry 5 } + + wlanAPChTotFragmentedPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total Fragmented Packets observed on + this channel. + " + ::= { wlsxWlanAPChStatsEntry 6 } + + wlanAPChTotPhyErrPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total Physical Error Packets observed + on this channel. + " + ::= { wlsxWlanAPChStatsEntry 7 } + + wlanAPChTotMacErrPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total Mac errors packets observed on + this channel. + " + ::= { wlsxWlanAPChStatsEntry 8 } + + wlanAPChNoise OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the noise observed on + this channel. + " + ::= { wlsxWlanAPChStatsEntry 9 } + + wlanAPChCoverageIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the coverage provided by the AP on + this channel. + " + ::= { wlsxWlanAPChStatsEntry 10 } + + wlanAPChInterferenceIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the interference + observed on this channel. + " + ::= { wlsxWlanAPChStatsEntry 11 } + + wlanAPChFrameRetryRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of retry + packets as a percentage of the total packets + transmitted and received on this channel. + " + ::= { wlsxWlanAPChStatsEntry 12 } + + wlanAPChFrameLowSpeedRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of low data rate (<= 18Mbps for A/G bands and <=2Mbps + for B band) packets as a percentage of the total packets + transmitted and received on this channel + " + ::= { wlsxWlanAPChStatsEntry 13 } + + wlanAPChFrameNonUnicastRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast and multicast + packets as a percentage of the total packets + transmitted on this channel. + " + ::= { wlsxWlanAPChStatsEntry 14 } + + wlanAPChFrameFragmentationRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of fragments + as a percentage of the total packets + transmitted on this channel + " + ::= { wlsxWlanAPChStatsEntry 15 } + + wlanAPChFrameBandwidthRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The bandwidth of this channel in Kbps. + " + ::= { wlsxWlanAPChStatsEntry 16 } + + wlanAPChFrameRetryErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received on this channel. + " + ::= { wlsxWlanAPChStatsEntry 17 } + + wlanAPChBusyRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the busy + this channel is. + " + ::= { wlsxWlanAPChStatsEntry 18 } + + wlanAPChNumAPs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Access Points + observed on this channel. + " + ::= { wlsxWlanAPChStatsEntry 19 } + + wlanAPChFrameReceiveErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received on this channel. + " + ::= { wlsxWlanAPChStatsEntry 20 } + + wlanAPChTransmittedFragmentCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall be incremented for an acknowledged MPDU + with an individual address in the address 1 field or an MPDU + with a multicast address in the address 1 field of type Data + or Management. + " + ::= { wlsxWlanAPChStatsEntry 21 } + + wlanAPChMulticastTransmittedFrameCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment only when the multicast bit + is set in the destination MAC address of a successfully + transmitted MSDU. When operating as a STA in an ESS, where + these frames are directed to the AP, this implies having + received an acknowledgment to all associated MPDUs. + " + ::= { wlsxWlanAPChStatsEntry 22 } + + wlanAPChFailedCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when an MSDU is not transmitted + successfully due to the number of transmit attempts exceeding + either the dot11ShortRetryLimit or dot11LongRetryLimit. + " + ::= { wlsxWlanAPChStatsEntry 23 } + + wlanAPChRetryCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when an MSDU is successfully + transmitted after one or more retransmissions. + " + ::= { wlsxWlanAPChStatsEntry 24 } + + wlanAPChMultipleRetryCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when an MSDU is successfully + transmitted after more than one retransmission. + " + ::= { wlsxWlanAPChStatsEntry 25 } + + wlanAPChFrameDuplicateCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when a frame is received + that the Sequence Control field indicates is a + duplicate. + " + ::= { wlsxWlanAPChStatsEntry 26 } + + wlanAPChRTSSuccessCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when a CTS is received in + response to an RTS. + " + ::= { wlsxWlanAPChStatsEntry 27 } + + wlanAPChRTSFailureCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when a CTS is not received in + response to an RTS. + " + ::= { wlsxWlanAPChStatsEntry 28 } + + wlanAPChACKFailureCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when an ACK is not received + when expected. + " + ::= { wlsxWlanAPChStatsEntry 29 } + + wlanAPChReceivedFragmentCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall be incremented for each successfully + received MPDU of type Data or Management. + " + ::= { wlsxWlanAPChStatsEntry 30 } + + wlanAPChMulticastReceivedFrameCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when a MSDU is received + with the multicast bit set in the destination + MAC address. + " + ::= { wlsxWlanAPChStatsEntry 31 } + + wlanAPChFCSErrorCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when an FCS error is + detected in a received MPDU. + " + ::= { wlsxWlanAPChStatsEntry 32 } + + wlanAPChTransmittedFrameCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment for each successfully transmitted + MSDU. + " + ::= { wlsxWlanAPChStatsEntry 33 } + + wlanAPChWEPUndecryptableCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This counter shall increment when a frame is received with the + Protected Frame subfield of the Frame Control field set to one and + the WEPOn value for the key mapped to the transmitter's MAC address + indicates that the frame should not have been encrypted or that frame + is discarded due to the receiving STA not implementing the privacy + option. + " + ::= { wlsxWlanAPChStatsEntry 34 } + + wlanAPChRxUtilization OBJECT-TYPE + SYNTAX INTEGER(0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This is the percentage of time spent by the radio + in receiving packets. + " + ::= { wlsxWlanAPChStatsEntry 35 } + + wlanAPChTxUtilization OBJECT-TYPE + SYNTAX INTEGER(0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This is the percentage of time spent by the radio + in transmitting packets. + " + ::= { wlsxWlanAPChStatsEntry 36 } + + wlanAPChUtilization OBJECT-TYPE + SYNTAX INTEGER(0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This is the percentage of time the channel is busy. + " + ::= { wlsxWlanAPChStatsEntry 37 } + +-- AP Wired Stats table + + wlsxWlanAPWiredStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPWiredStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the Wired statistics of all the Access Points + connected to the controller. + " + ::= { wlsxWlanAccessPointStatsGroup 7 } + + wlsxWlanAPWiredStatsEntry OBJECT-TYPE + SYNTAX WlanAPWiredStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Point Wired Stats entry" + INDEX {wlanAPMacAddress} + ::= { wlsxWlanAPWiredStatsTable 1 } + + WlanAPWiredStatsEntry ::= + SEQUENCE { + wlanAPWiredRxPkts Counter32, + wlanAPWiredRxDroppedPkts Counter32, + wlanAPWiredRxBytes Counter32, + wlanAPWiredTxBytes Counter32, + wlanAPWiredRxRate Gauge32, + wlanAPWiredTxRate Gauge32 + } + + wlanAPWiredRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total packets received from the + AP wired side. + " + ::= { wlsxWlanAPWiredStatsEntry 1 } + + wlanAPWiredRxDroppedPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total dropped packets received + from the AP wired side. + " + ::= { wlsxWlanAPWiredStatsEntry 2 } + + wlanAPWiredRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total bytes of correct packets + received from the AP wired side. + " + ::= { wlsxWlanAPWiredStatsEntry 3 } + + wlanAPWiredTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total bytes transmitted from + the AP wired side. + " + ::= { wlsxWlanAPWiredStatsEntry 4 } + + wlanAPWiredRxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the data rate (kbyte/s) + received from AP wired side in sampling interval. + " + ::= { wlsxWlanAPWiredStatsEntry 5 } + + wlanAPWiredTxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the data rate (kbyte/s) + transmitted from AP wired side in sampling interval. + " + ::= { wlsxWlanAPWiredStatsEntry 6 } + +-- AP ESSID Stats table + + wlsxWlanAPESSIDStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPESSIDStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the ESSID statistics of all the Access Points + connected to the controller. + " + ::= { wlsxWlanAccessPointStatsGroup 8 } + + wlsxWlanAPESSIDStatsEntry OBJECT-TYPE + SYNTAX WlanAPESSIDStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Point ESSID Stats entry" + INDEX {wlanAPMacAddress, wlanESSID} + ::= { wlsxWlanAPESSIDStatsTable 1 } + + WlanAPESSIDStatsEntry ::= + SEQUENCE { + wlanAPESSIDWirelessRxBytes Counter32, + wlanAPESSIDWirelessTxBytes Counter32, + wlanAPESSIDWiredRxBytes Counter32, + wlanAPESSIDWiredTxBytes Counter32 + } + + wlanAPESSIDWirelessRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total bytes of correct packets + received from the AP ESSID wireless side. + " + ::= { wlsxWlanAPESSIDStatsEntry 1 } + + wlanAPESSIDWirelessTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total bytes transmitted + from the AP ESSID wireless side. + " + ::= { wlsxWlanAPESSIDStatsEntry 2 } + + wlanAPESSIDWiredRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total bytes of correct packets + received from the AP ESSID wired side. + " + ::= { wlsxWlanAPESSIDStatsEntry 3 } + + wlanAPESSIDWiredTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total bytes transmitted from + the AP ESSID wired side. + " + ::= { wlsxWlanAPESSIDStatsEntry 4 } + +-- AP Radio Stats table + + wlsxWlanAPRadioStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPRadioStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the Radio statistics of all the Access Points + connected to the controller. + " + ::= { wlsxWlanAccessPointStatsGroup 9 } + + wlsxWlanAPRadioStatsEntry OBJECT-TYPE + SYNTAX WlanAPRadioStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Point Radio Stats entry" + INDEX {wlanAPMacAddress, wlanAPRadioNumber} + ::= { wlsxWlanAPRadioStatsTable 1 } + + WlanAPRadioStatsEntry ::= + SEQUENCE { + wlanAPRadioRxPkts Counter32, + wlanAPRadioRxBytes Counter32, + wlanAPRadioTxPkts Counter32, + wlanAPRadioTxBytes Counter32, + wlanAPRadioTxDroppedPkts Counter32, + wlanAPRadioTxErrorPkts Counter32, + wlanAPRadioRxRate Gauge32, + wlanAPRadioTxRate Gauge32, + wlanApRadioAssocReqCount Counter32, + wlanApRadioAssocReqSuccCount Counter32, + wlanApRadioReAssocReqCount Counter32, + wlanApRadioReAssocReqSuccCount Counter32, + wlanAPRadioStationDuration Integer32, + wlanAPRadioAssocSuccPercent Gauge32, + wlanAPRadioTxDataBytes Counter32 + } + + wlanAPRadioRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total packets transmitted + from the AP radio wireless side. + " + ::= { wlsxWlanAPRadioStatsEntry 1 } + + wlanAPRadioRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total correct bytes + received from the AP radio wireless side. + " + ::= { wlsxWlanAPRadioStatsEntry 2 } + + wlanAPRadioTxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total packets + transmitted from the AP radio wireless side. + " + ::= { wlsxWlanAPRadioStatsEntry 3 } + + wlanAPRadioTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total bytes + transmitted from the AP radio wireless side. + " + ::= { wlsxWlanAPRadioStatsEntry 4 } + + wlanAPRadioTxDroppedPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the dropped packets transmitted + from the AP radio wireless side. + " + ::= { wlsxWlanAPRadioStatsEntry 5 } + + wlanAPRadioTxErrorPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the error packets + transmitted from the AP radio wireless side. + " + ::= { wlsxWlanAPRadioStatsEntry 6 } + + wlanAPRadioRxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the data rate (kbyte/s) + received from AP radio wireless side in sampling interval. + " + ::= { wlsxWlanAPRadioStatsEntry 7 } + + wlanAPRadioTxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the data rate (kbyte/s) + transmitted from AP radio wireless side in sampling interval. + " + ::= { wlsxWlanAPRadioStatsEntry 8 } + + wlanApRadioAssocReqCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute indicates the times of associate request on this + radio." + ::= { wlsxWlanAPRadioStatsEntry 9 } + + wlanApRadioAssocReqSuccCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute indicates the times of successful associate request + on this radio." + ::= { wlsxWlanAPRadioStatsEntry 10 } + + wlanApRadioReAssocReqCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute indicates the times of re-associate request on this + radio." + ::= { wlsxWlanAPRadioStatsEntry 11 } + + wlanApRadioReAssocReqSuccCount OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This attribute indicates the times of successful re-associate + request on this radio. + " + ::= { wlsxWlanAPRadioStatsEntry 12 } + + wlanAPRadioStationDuration OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total occupied duration, which is + the total duration of user connecting. + " + ::= { wlsxWlanAPRadioStatsEntry 13 } + + wlanAPRadioAssocSuccPercent OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The Association Success Percent. + " + ::= { wlsxWlanAPRadioStatsEntry 14 } + + wlanAPRadioTxDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total data bytes + transmitted from the AP radio wireless side. + " + ::= { wlsxWlanAPRadioStatsEntry 15 } + +-- wlsxWlanStationStatsGroup contains all the statistics observed by different +-- Air Monitors attached to this controller. +-- Station Statistics are observed by the Air Monitor for that +-- specific Station. + +-- Station Statistics are grouped into Generic, +-- Rate, Destination Address and Frame Type Stats. + +-- Station Statistics Group contains all the statistics related to +-- a Station. + +-- wlsxWlanStationStatsTable will contain all the aggregate statistics collected +-- for a Station + + wlsxWlanStationStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanStationStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists statistics of all the wireless stations + associated with an AP connected to this controller. + " + ::= { wlsxWlanStationStatsGroup 1} + + wlsxWlanStationStatsEntry OBJECT-TYPE + SYNTAX WlanStationStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station Stats Entry" + INDEX {wlanStaPhyAddress} + ::= { wlsxWlanStationStatsTable 1 } + + WlanStationStatsEntry ::= + SEQUENCE { + wlanStaChannelNum Unsigned32, + wlanStaTxPkts Counter32, + wlanStaTxBytes Counter32, + wlanStaRxPkts Counter32, + wlanStaRxBytes Counter32, + wlanStaTxBCastPkts Counter32, + wlanStaRxBCastBytes Counter32, + wlanStaTxMCastPkts Counter32, + wlanStaRxMCastBytes Counter32, + wlanStaDataPkts Counter32, + wlanStaCtrlPkts Counter32, + wlanStaNumAssocRequests Counter32, + wlanStaNumAuthRequests Counter32, + wlanStaTxDeauthentications Counter32, + wlanStaRxDeauthentications Counter32, + wlanStaFrameRetryRate Integer32, + wlanStaFrameLowSpeedRate Integer32, + wlanStaFrameNonUnicastRate Integer32, + wlanStaFrameFragmentationRate Integer32, + wlanStaFrameBandwidthRate Integer32, + wlanStaFrameRetryErrorRate Integer32, + wlanStaFrameReceiveErrorRate Integer32, + wlanStaTxBCastBytes Counter32, + wlanStaTxMCastBytes Counter32, + wlanStaTxBytes64 Counter64, + wlanStaRxBytes64 Counter64 + } + + wlanStaChannelNum OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The channel the station is currently using. + " + ::= { wlsxWlanStationStatsEntry 1 } + + wlanStaTxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 2 } + + wlanStaTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 3 } + + wlanStaRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of packets received by this station. + " + ::= { wlsxWlanStationStatsEntry 4 } + + wlanStaRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes received by this station. + " + ::= { wlsxWlanStationStatsEntry 5 } + + wlanStaTxBCastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast packets transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 6 } + + wlanStaRxBCastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of broadcast bytes transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 7 } + + wlanStaTxMCastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of multicast packets transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 8 } + + wlanStaRxMCastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of multicast bytes transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 9 } + + wlanStaDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of Data packets transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 10 } + + wlanStaCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of Control packets transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 11 } + + wlanStaNumAssocRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Association requests transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 12 } + + wlanStaNumAuthRequests OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Authentication requests transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 13 } + + wlanStaTxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Deauthentication frames transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 14 } + + wlanStaRxDeauthentications OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of Deauthentication frames received by this station. + " + ::= { wlsxWlanStationStatsEntry 15 } + + wlanStaFrameRetryRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of retry + packets as a percentage of the total packets + transmitted and received by this station. + " + ::= { wlsxWlanStationStatsEntry 16 } + + wlanStaFrameLowSpeedRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of low data rate (<= 18Mbps for A/G bands and <=2Mbps + for B band) packets as a percentage of the total packets + transmitted and received by this station. + " + ::= { wlsxWlanStationStatsEntry 17 } + + wlanStaFrameNonUnicastRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast and multicast + packets as a percentage of the total packets + transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 18 } + + wlanStaFrameFragmentationRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of fragments + as a percentage of the total packets + transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 19 } + + wlanStaFrameBandwidthRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The bandwidth of this station in Kbps. + " + ::= { wlsxWlanStationStatsEntry 20 } + + wlanStaFrameRetryErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS deprecated + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received by this station. + " + ::= { wlsxWlanStationStatsEntry 21 } + + wlanStaFrameReceiveErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of error packets + as a percentage of the total packets + received by this station. + " + ::= { wlsxWlanStationStatsEntry 22 } + + wlanStaTxBCastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of broadcast bytes transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 23 } + + wlanStaTxMCastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of multicast bytes transmitted by this station. + " + ::= { wlsxWlanStationStatsEntry 24 } + + wlanStaTxBytes64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes transmitted by this station, 64-bit value + " + ::= { wlsxWlanStationStatsEntry 25 } + + wlanStaRxBytes64 OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The number of bytes received by this station, 64-bit value + " + ::= { wlsxWlanStationStatsEntry 26 } + + +-- This table breaks down the Station statistics into different +-- rate categories. + + wlsxWlanStaRateStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanStaRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for a station + represented in terms of rate categories. + " + ::= { wlsxWlanStationStatsGroup 2} + + wlsxWlanStaRateStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanStaRateStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Data rate based packet and byte count entry for a station" + INDEX {wlanStaPhyAddress} + ::= { wlsxWlanStaRateStatsTable 1 } + + WlsxWlanStaRateStatsEntry ::= + SEQUENCE { + wlanStaTxPktsAt1Mbps Counter32, + wlanStaTxBytesAt1Mbps Counter32, + wlanStaTxPktsAt2Mbps Counter32, + wlanStaTxBytesAt2Mbps Counter32, + wlanStaTxPktsAt5Mbps Counter32, + wlanStaTxBytesAt5Mbps Counter32, + wlanStaTxPktsAt11Mbps Counter32, + wlanStaTxBytesAt11Mbps Counter32, + wlanStaTxPktsAt6Mbps Counter32, + wlanStaTxBytesAt6Mbps Counter32, + wlanStaTxPktsAt12Mbps Counter32, + wlanStaTxBytesAt12Mbps Counter32, + wlanStaTxPktsAt18Mbps Counter32, + wlanStaTxBytesAt18Mbps Counter32, + wlanStaTxPktsAt24Mbps Counter32, + wlanStaTxBytesAt24Mbps Counter32, + wlanStaTxPktsAt36Mbps Counter32, + wlanStaTxBytesAt36Mbps Counter32, + wlanStaTxPktsAt48Mbps Counter32, + wlanStaTxBytesAt48Mbps Counter32, + wlanStaTxPktsAt54Mbps Counter32, + wlanStaTxBytesAt54Mbps Counter32, + wlanStaRxPktsAt1Mbps Counter32, + wlanStaRxBytesAt1Mbps Counter32, + wlanStaRxPktsAt2Mbps Counter32, + wlanStaRxBytesAt2Mbps Counter32, + wlanStaRxPktsAt5Mbps Counter32, + wlanStaRxBytesAt5Mbps Counter32, + wlanStaRxPktsAt11Mbps Counter32, + wlanStaRxBytesAt11Mbps Counter32, + wlanStaRxPktsAt6Mbps Counter32, + wlanStaRxBytesAt6Mbps Counter32, + wlanStaRxPktsAt12Mbps Counter32, + wlanStaRxBytesAt12Mbps Counter32, + wlanStaRxPktsAt18Mbps Counter32, + wlanStaRxBytesAt18Mbps Counter32, + wlanStaRxPktsAt24Mbps Counter32, + wlanStaRxBytesAt24Mbps Counter32, + wlanStaRxPktsAt36Mbps Counter32, + wlanStaRxBytesAt36Mbps Counter32, + wlanStaRxPktsAt48Mbps Counter32, + wlanStaRxBytesAt48Mbps Counter32, + wlanStaRxPktsAt54Mbps Counter32, + wlanStaRxBytesAt54Mbps Counter32, + wlanStaTxPktsAt9Mbps Counter32, + wlanStaTxBytesAt9Mbps Counter32, + wlanStaRxPktsAt9Mbps Counter32, + wlanStaRxBytesAt9Mbps Counter32 + } + + wlanStaTxPktsAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 1Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 1 } + + wlanStaTxBytesAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 1Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 2 } + + wlanStaTxPktsAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 2Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 3 } + + wlanStaTxBytesAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 2Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 4 } + + wlanStaTxPktsAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 5Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 5 } + + wlanStaTxBytesAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 5Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 6 } + + wlanStaTxPktsAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 11Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 7 } + + wlanStaTxBytesAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 11Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 8 } + + wlanStaTxPktsAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 6Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 9 } + + wlanStaTxBytesAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 6Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 10 } + + wlanStaTxPktsAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 12Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 11 } + + wlanStaTxBytesAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 12Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 12 } + + wlanStaTxPktsAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 18Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 13 } + + wlanStaTxBytesAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 18Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 14 } + + wlanStaTxPktsAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 24Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 15 } + + wlanStaTxBytesAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 24Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 16 } + + wlanStaTxPktsAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 36Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 17 } + + wlanStaTxBytesAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 36Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 18 } + + wlanStaTxPktsAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 48Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 19 } + + wlanStaTxBytesAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 48Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 20 } + + wlanStaTxPktsAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 54Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 21 } + + wlanStaTxBytesAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 54Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 22 } + + wlanStaRxPktsAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 1Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 23 } + + wlanStaRxBytesAt1Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 1Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 24 } + + wlanStaRxPktsAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 2Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 25 } + + wlanStaRxBytesAt2Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 2Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 26 } + + wlanStaRxPktsAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 5Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 27 } + + wlanStaRxBytesAt5Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 5Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 28 } + + wlanStaRxPktsAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 11Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 29 } + + wlanStaRxBytesAt11Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 11Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 30 } + + wlanStaRxPktsAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 6Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 31 } + + wlanStaRxBytesAt6Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 6Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 32 } + + wlanStaRxPktsAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 12Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 33 } + + wlanStaRxBytesAt12Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 12Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 34 } + + wlanStaRxPktsAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 18Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 35 } + + wlanStaRxBytesAt18Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 18Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 36 } + + wlanStaRxPktsAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 24Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 37 } + + wlanStaRxBytesAt24Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 24Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 38 } + + wlanStaRxPktsAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 36Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 39 } + + wlanStaRxBytesAt36Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 36Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 40 } + + wlanStaRxPktsAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 48Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 41 } + + wlanStaRxBytesAt48Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 48Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 42 } + + wlanStaRxPktsAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 54Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 43 } + + wlanStaRxBytesAt54Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 54Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 44 } + + wlanStaTxPktsAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Transmitted by the + station at 9Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 45 } + + wlanStaTxBytesAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Transmitted by the + station at 9Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 46 } + + + wlanStaRxPktsAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Packets Received by the + station at 9Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 47 } + + wlanStaRxBytesAt9Mbps OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Octets Received by the + station at 9Mbps rate. + " + ::= { wlsxWlanStaRateStatsEntry 48 } + +-- This table breaks down the Station statistics based on the +-- Destination Address Types. + + wlsxWlanStaDATypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanStaDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for a station but + but broken down in terms of Destination Address Type. + " + ::= { wlsxWlanStationStatsGroup 3} + + wlsxWlanStaDATypeStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanStaDATypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + Destination Address based packet and byte count entry for a + station + " + INDEX {wlanStaPhyAddress} + ::= { wlsxWlanStaDATypeStatsTable 1 } + + WlsxWlanStaDATypeStatsEntry ::= + SEQUENCE { + wlanStaTxDABroadcastPkts Counter32 , + wlanStaTxDABroadcastBytes Counter32 , + wlanStaTxDAMulticastPkts Counter32 , + wlanStaTxDAMulticastBytes Counter32 , + wlanStaTxDAUnicastPkts Counter32 , + wlanStaTxDAUnicastBytes Counter32 + + } + + wlanStaTxDABroadcastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Broadcast packets + transmitted by this Station. + " + ::= { wlsxWlanStaDATypeStatsEntry 1 } + + wlanStaTxDABroadcastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Broadcast Bytes + transmitted by this Station. + " + ::= { wlsxWlanStaDATypeStatsEntry 2 } + + wlanStaTxDAMulticastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Multicast packets + transmitted by this station. + " + ::= { wlsxWlanStaDATypeStatsEntry 3 } + + wlanStaTxDAMulticastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of Multicast Bytes + transmitted by this station. + " + ::= { wlsxWlanStaDATypeStatsEntry 4 } + + wlanStaTxDAUnicastPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total of Unicast packets + transmitted by this station. + " + ::= { wlsxWlanStaDATypeStatsEntry 5 } + + wlanStaTxDAUnicastBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the total of Unicast Bytes + transmitted by this station. + " + ::= { wlsxWlanStaDATypeStatsEntry 6 } + +-- This table breaks down the Station statistics based on the +-- the Type of the Packet. + + wlsxWlanStaFrameTypeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanStaFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for stations + but broken down into different Frame Types. + " + ::= { wlsxWlanStationStatsGroup 4} + + wlsxWlanStaFrameTypeStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanStaFrameTypeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Frame Type based packet and byte count entry for a station" + INDEX {wlanStaPhyAddress} + ::= { wlsxWlanStaFrameTypeStatsTable 1 } + + WlsxWlanStaFrameTypeStatsEntry ::= + SEQUENCE { + wlanStaTxMgmtPkts Counter32 , + wlanStaTxMgmtBytes Counter32 , + wlanStaTxCtrlPkts Counter32 , + wlanStaTxCtrlBytes Counter32 , + wlanStaTxDataPkts Counter32 , + wlanStaTxDataBytes Counter32 , + wlanStaRxMgmtPkts Counter32 , + wlanStaRxMgmtBytes Counter32 , + wlanStaRxCtrlPkts Counter32 , + wlanStaRxCtrlBytes Counter32 , + wlanStaRxDataPkts Counter32 , + wlanStaRxDataBytes Counter32 + + } + + wlanStaTxMgmtPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the Transmitted Management packets + from a station. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 1 } + + wlanStaTxMgmtBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the Transmitted Management Bytes + from a station + " + ::= { wlsxWlanStaFrameTypeStatsEntry 2 } + + wlanStaTxCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the Transmitted Control packets + from a station + " + ::= { wlsxWlanStaFrameTypeStatsEntry 3 } + + wlanStaTxCtrlBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the Transmitted Control Bytes + from a station + " + ::= { wlsxWlanStaFrameTypeStatsEntry 4 } + + wlanStaTxDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the Transmitted Data packets + from a station + " + ::= { wlsxWlanStaFrameTypeStatsEntry 5 } + + wlanStaTxDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the Transmitted Data Bytes + observed on this channel. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 6 } + + wlanStaRxMgmtPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Management packets + at a station. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 7 } + + wlanStaRxMgmtBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Management Bytes + at a station. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 8 } + + wlanStaRxCtrlPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Control packets + at a station. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 9 } + + wlanStaRxCtrlBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Control Bytes + at a station. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 10 } + + wlanStaRxDataPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Data packets + at a station. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 11 } + + wlanStaRxDataBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of received Data Bytes + at a station. + " + ::= { wlsxWlanStaFrameTypeStatsEntry 12 } + + +-- This table breaks down the Station statistics received or transmitted by a +-- station into packet size buckets. + + wlsxWlanStaPktSizeStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlsxWlanStaPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This table contains all the Packet and Byte Counts for stations + but broken down into different Packet Sizes. + " + ::= { wlsxWlanStationStatsGroup 5} + + wlsxWlanStaPktSizeStatsEntry OBJECT-TYPE + SYNTAX WlsxWlanStaPktSizeStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Packet Size based packet count entry for a station" + INDEX {wlanStaPhyAddress} + ::= { wlsxWlanStaPktSizeStatsTable 1 } + + WlsxWlanStaPktSizeStatsEntry ::= + SEQUENCE { + wlanStaTxPkts63Bytes Counter32 , + wlanStaTxPkts64To127 Counter32 , + wlanStaTxPkts128To255 Counter32 , + wlanStaTxPkts256To511 Counter32 , + wlanStaTxPkts512To1023 Counter32 , + wlanStaTxPkts1024To1518 Counter32 , + wlanStaRxPkts63Bytes Counter32 , + wlanStaRxPkts64To127 Counter32 , + wlanStaRxPkts128To255 Counter32 , + wlanStaRxPkts256To511 Counter32 , + wlanStaRxPkts512To1023 Counter32 , + wlanStaRxPkts1024To1518 Counter32 + + } + + wlanStaTxPkts63Bytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were less than 64 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 1 } + + wlanStaTxPkts64To127 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 64 and 127 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 2 } + + wlanStaTxPkts128To255 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 128 and 255 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 3 } + + wlanStaTxPkts256To511 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 256 and 511 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 4 } + + wlanStaTxPkts512To1023 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 512 and 1023 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 5 } + + wlanStaTxPkts1024To1518 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets transmitted by the + station that were between 1024 and 1518 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 6 } + + wlanStaRxPkts63Bytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were less than 64 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 7 } + + wlanStaRxPkts64To127 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 64 and 127 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 8 } + + wlanStaRxPkts128To255 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 128 and 255 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 9 } + + wlanStaRxPkts256To511 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 256 and 511 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 10 } + + wlanStaRxPkts512To1023 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 512 and 1023 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 11 } + + wlanStaRxPkts1024To1518 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the number of packets Received by the + station that were between 1024 and 1518 bytes long. + " + ::= { wlsxWlanStaPktSizeStatsEntry 12 } + +-- wlsxWlanSwitchStatsGroup contains all statistics related to +-- the whole network controlled by the controller. + +-- wlsxWlanESSIDStatsTable contains all statistics collected +-- for an ESSID on the switch + + wlsxWlanESSIDStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanESSIDStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists statistics of the ESSID + controlled by this controller. + " + ::= { wlsxWlanSwitchStatsGroup 1} + + wlsxWlanESSIDStatsEntry OBJECT-TYPE + SYNTAX WlanESSIDStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "ESSID Stats Entry" + INDEX {wlanESSID} + ::= { wlsxWlanESSIDStatsTable 1 } + + WlanESSIDStatsEntry ::= + SEQUENCE { + wlanESSIDRxPkts Counter32, + wlanESSIDRxDroppedPkts Counter32, + wlanESSIDRxRetryPkts Counter32, + wlanESSIDTxPkts Counter32, + wlanESSIDTxDroppedPkts Counter32, + wlanESSIDTxRetryPkts Counter32, + wlanESSIDTxErrorPkts Counter32, + wlanESSIDRxRate Gauge32, + wlanESSIDTxRate Gauge32, + wlanESSIDWiredRxPkts Counter32, + wlanESSIDWiredRxBytes Counter32, + wlanESSIDWiredTxBytes Counter32 + } + + wlanESSIDRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of packets on the ESSID uplink channel + of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 1 } + + wlanESSIDRxDroppedPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of dropped packets on the ESSID uplink + channel of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 2 } + + wlanESSIDRxRetryPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of re-transmission packets on the ESSID + uplink channel of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 3 } + + wlanESSIDTxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of packets on the ESSID downlink channel + of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 4 } + + wlanESSIDTxDroppedPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of dropped packets on the ESSID downlink + channel of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 5 } + + wlanESSIDTxRetryPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of re-transmission packets on the ESSID + downlink channel of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 6 } + + wlanESSIDTxErrorPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of error packets on the ESSID downlink + channel of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 7 } + + wlanESSIDRxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The data rate received from the ESSID in sampling interval, + unit is kbyte/s. + " + ::= { wlsxWlanESSIDStatsEntry 8 } + + wlanESSIDTxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The data rate transmitted from the ESSID in sampling interval, + unit is kbyte/s. + " + ::= { wlsxWlanESSIDStatsEntry 9 } + + wlanESSIDWiredRxPkts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of packets on the ESSID uplink + channel of wired side. + " + ::= { wlsxWlanESSIDStatsEntry 10 } + + wlanESSIDWiredRxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of bytes on the ESSID uplink + channel of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 11 } + + wlanESSIDWiredTxBytes OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The total number of bytes on the ESSID downlink + channel of wireless side. + " + ::= { wlsxWlanESSIDStatsEntry 12 } + +-- wlsxWlanEthStatsTable will contain all the statistics collected +-- for all ethernet ports + + wlsxWlanEthStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanEthStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists statistics of all ethernet ports + of this controller. + " + ::= { wlsxWlanSwitchStatsGroup 2} + + wlsxWlanEthStatsEntry OBJECT-TYPE + SYNTAX WlanEthStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Ethernet Port Stats Entry" + INDEX {ifIndex} + ::= { wlsxWlanEthStatsTable 1 } + + WlanEthStatsEntry ::= + SEQUENCE { + wlanEthRxRate Gauge32, + wlanEthTxRate Gauge32 + } + + wlanEthRxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The data rate received from the ethernet port in sampling interval, + unit is kbyte/s. + " + ::= { wlsxWlanEthStatsEntry 1 } + + wlanEthTxRate OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The data rate transmitted from the ethernet port in sampling interval, + unit is kbyte/s. + " + ::= { wlsxWlanEthStatsEntry 2 } + +-- wlsxSSIDConfigGroup contains all configuration related to +-- the SSID controlled by the controller. + +-- wlsxSSIDConfigTable contains the global configuration of the SSID + + wlsxSSIDConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanSSIDConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the configuration of the SSID. + Note: Currently, this table doesn't return any data. + " + ::= { wlsxSSIDConfigGroup 1} + + wlsxSSIDConfigEntry OBJECT-TYPE + SYNTAX WlanSSIDConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "AP Configuration Entry" + INDEX {wlanAPMacAddress, wlanAPRadioNumber, wlanESSID, wlanESSIDIndex} + ::= { wlsxSSIDConfigTable 1 } + + WlanSSIDConfigEntry ::= + SEQUENCE { + wlanESSIDIndex Integer32, + wlanSSIDConfigHideSSID TruthValue, + wlanSSIDConfigNumStaAllowed Unsigned32, + wlanSSIDConfigWmmBeDscp Unsigned32, + wlanSSIDConfigWmmBkDscp Unsigned32, + wlanSSIDConfigWmmViDscp Unsigned32, + wlanSSIDConfigWmmVoDscp Unsigned32 + } + + wlanESSIDIndex OBJECT-TYPE + SYNTAX Integer32(1..16) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This attribute indicates the index of ESSID. We support up to 16 ESSIDs. + " + ::= { wlsxSSIDConfigEntry 1 } + + wlanSSIDConfigHideSSID OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates if SSID is hidden or not. + " + ::= { wlsxSSIDConfigEntry 2 } + + wlanSSIDConfigNumStaAllowed OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the maximum number of stations that are allowed to access into the network. + " + ::= { wlsxSSIDConfigEntry 3 } + + wlanSSIDConfigWmmBeDscp OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the QoS priority of best-effort service. + " + ::= { wlsxSSIDConfigEntry 4 } + + wlanSSIDConfigWmmBkDscp OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the QoS priority of background service. + " + ::= { wlsxSSIDConfigEntry 5 } + + wlanSSIDConfigWmmViDscp OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the QoS priority of video service. + " + ::= { wlsxSSIDConfigEntry 6 } + + wlanSSIDConfigWmmVoDscp OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + This attribute indicates the QoS priority of voice service. + " + ::= { wlsxSSIDConfigEntry 7 } + +-- wlsxAPConfigGroup contains all configuration related to +-- the APs controlled by the controller. + +-- wlsxAPConfigTable contains the global configuration of the AP + + wlsxAPConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF WlanAPConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + " + This Table lists the configuration of the Access Point. + " + ::= { wlsxAPConfigGroup 1} + + wlsxAPConfigEntry OBJECT-TYPE + SYNTAX WlanAPConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "AP Configuration Entry" + INDEX {wlanAPMacAddress} + ::= { wlsxAPConfigTable 1 } + + WlanAPConfigEntry ::= + SEQUENCE { + wlanAPConfigNetmask IpAddress, + wlanAPConfigGateway IpAddress + } + + wlanAPConfigNetmask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The netmask of AP IP Address. + " + ::= { wlsxAPConfigEntry 1 } + + wlanAPConfigGateway OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + " + The gateway of the AP. + " + ::= { wlsxAPConfigEntry 2 } + + --Trap Definition + wlsxRAPActiveUplink NOTIFICATION-TYPE + OBJECTS {wlanAPActiveUplink, wlanAPMacAddress} + STATUS current + DESCRIPTION + "A trap which indicates the RAP Active Uplink" + ::= { wlsxRAPTraps 1 } +END diff --git a/pandora_console/attachment/mibs/oracle-database.mib b/pandora_console/attachment/mibs/oracle-database.mib new file mode 100644 index 0000000000..723efeb6f5 --- /dev/null +++ b/pandora_console/attachment/mibs/oracle-database.mib @@ -0,0 +1,1305 @@ + +RDBMS-MIB DEFINITIONS ::= BEGIN + + +IMPORTS + AutonomousType + FROM RFC1316-MIB + TRAP-TYPE + FROM RFC-1215 + DisplayString + FROM RFC1213-MIB + OBJECT-TYPE + FROM RFC-1212 + Gauge, Counter + FROM RFC1155-SMI + mib-2 + FROM RFC1213-MIB + applGroup, applIndex + FROM APPLICATION-MIB; + +DateAndTime ::= OCTET STRING (SIZE (8 .. 11)) + +rdbmsMIB OBJECT IDENTIFIER ::= { mib-2 39 } + +rdbmsObjects OBJECT IDENTIFIER ::= { rdbmsMIB 1 } + +rdbmsDbTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of databases installed on a system." + ::= { rdbmsObjects 1 } + +rdbmsDbEntry OBJECT-TYPE + SYNTAX RdbmsDbEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single database on the host. Whether a + particular database is represented by a row in rdbmsDbTable + may be dependent on the activity level of that database, + according to the product's implementation. An instance of + rdbmsRelState having the value active, other, or restricted + implies that an entry, corresponding to that instance, will + be present." + INDEX { rdbmsDbIndex } + ::= { rdbmsDbTable 1 } + +RdbmsDbEntry ::= + SEQUENCE { + rdbmsDbIndex + INTEGER, + + rdbmsDbPrivateMibOID + OBJECT IDENTIFIER, + + rdbmsDbVendorName + DisplayString, + + rdbmsDbName + DisplayString, + + rdbmsDbContact + DisplayString + } + +rdbmsDbIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A numeric index, unique among all the databases from all + products on this host. This value is a surrogate for the + conceptually unique key, which is {PrivateMibOID, + databasename}" + ::= { rdbmsDbEntry 1 } + +rdbmsDbPrivateMibOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The authoritative identification for the private MIB for + this database, presumably based on the vendor, e.g., { + enterprises 111 } for Oracle + databases, {enterprises 757 } for + Ingres databases, { enterprises 897 } for Sybase databases, etc. + + If no OBJECT IDENTIFIER exists for the private MIB, attempts + to access this object will return noSuchName (SNMPv1) + or noSuchInstance (SNMPv2)." + ::= { rdbmsDbEntry 2 } + +rdbmsDbVendorName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the vendor whose RDBMS manages this database, + for informational purposes." + ::= { rdbmsDbEntry 3 } + +rdbmsDbName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of this database, in a product specific format. The + product may need to qualify the name in some way to resolve + conflicts if it is possible for a database name to be + duplicated on a host. It might be necessary to construct a + hierarchical name embedding the RDBMS instance/installation + on the host, and/or the owner of the database. For instance, + '/test-installation/database-owner/database-name'." + ::= { rdbmsDbEntry 4 } + +rdbmsDbContact OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The textual identification of the contact person for this + managed database, together with information on how to contact + this person. + + Note: if there is no server associated with this database, an + agent may need to keep this in other persistent storage, + e.g., a configuration file. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbEntry 5 } + +rdbmsDbInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of additional information about databases present + on the host." + ::= { rdbmsObjects 2 } + +rdbmsDbInfoEntry OBJECT-TYPE + SYNTAX RdbmsDbInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information that must be present if the database is actively + opened. If the database is not actively opened, then + attempts to access corresponding instances in this table may + result in either noSuchName (SNMPv1) or noSuchInstance + (SNMPv2). 'Actively opened' means at least one of the + rdbmsRelState entries for this database in the rdbmsRelTable + is active(2)." + INDEX { rdbmsDbIndex } + ::= { rdbmsDbInfoTable 1 } + +RdbmsDbInfoEntry ::= + SEQUENCE { + rdbmsDbInfoProductName + DisplayString, + + rdbmsDbInfoVersion + DisplayString, + + rdbmsDbInfoSizeUnits + INTEGER, + + rdbmsDbInfoSizeAllocated + INTEGER, + + rdbmsDbInfoSizeUsed + INTEGER, + + rdbmsDbInfoLastBackup + DateAndTime + } + +rdbmsDbInfoProductName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The textual product name of the server that created or last + restructured this database. The format is product specific." + ::= { rdbmsDbInfoEntry 1 } + +rdbmsDbInfoVersion OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The version number of the server that created or last + restructured this database. The format is product specific." + ::= { rdbmsDbInfoEntry 2 } + +rdbmsDbInfoSizeUnits OBJECT-TYPE + SYNTAX INTEGER { + bytes(1), + kbytes(2), + mbytes(3), + gbytes(4), + tbytes(5) +} + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Identification of the units used to measure the size of this + database in rdbmsDbInfoSizeAllocated and rdbmsDbInfoSizeUsed. + bytes(1) indicates individual bytes, kbytes(2) indicates + units of kilobytes, mbytes(3) indicates units of megabytes, + gbytes(4) indicates units of gigabytes, and tbytes(5) + indicates units of terabytes. All are binary multiples -- 1K + = 1024. If writable, changes here are reflected in the get + values of the associated objects." + ::= { rdbmsDbInfoEntry 3 } + +rdbmsDbInfoSizeAllocated OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The estimated size of this database (in + rdbmsDbInfoSizeUnits), which is the disk space that has been + allocated to it and is no longer available to users on this + host. rdbmsDbInfoSize does not necessarily indicate the + amount of space actually in use for database data. Some + databases may support extending allocated size, and others + may not. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbInfoEntry 4 } + +rdbmsDbInfoSizeUsed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The estimated size of this database, in rdbmsDbInfoSizeUnits, + which is actually in use for database data." + ::= { rdbmsDbInfoEntry 5 } + +rdbmsDbInfoLastBackup OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date and time that the latest complete or partial backup + of the database was taken. If a database has never been + backed up, then attempts to access this object will + result in either noSuchName (SNMPv1) or noSuchInstance + (SNMPv2)." + ::= { rdbmsDbInfoEntry 6 } + +rdbmsDbParamTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of configuration parameters for a database. + Entries should be populated according to the following + guidelines: + (1) The value should be specified through administrative + (human) intervention. + (2) It should be configured on a per-database basis. + (3) One of the following is true: + (a) The parameter has a non-numeric value; + (b) The current value is numeric, but it only changes due + to human intervention; + (c) The current value is numeric and dynamic, but the + RDBMS does not track access/allocation failures + related to the parameter; + (d) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, but the failure has no + significant impact on RDBMS performance or + availability. + (e) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, the failure has + significant impact on RDBMS performance or + availability, and is shown in the + rdbmsDbLimitedResource table." + ::= { rdbmsObjects 3 } + +rdbmsDbParamEntry OBJECT-TYPE + SYNTAX RdbmsDbParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single configuration parameter for a database. + Parameters with single values have a subindex value of one. + If the parameter is naturally considered to contain a + variable number of members of a class, e.g. members of the + DBA user group, or files which are part of the database, then + it must be presented as a set of rows. If, on the other + hand, the parameter represents a set of choices from a class, + e.g. the permissions on a file or the options chosen out of + the set of all options allowed, AND is guaranteed to always + fit in the 255 character length of a DisplayString, then it + may be presented as a comma separated list with a subindex + value of one. Zero may not be used as a subindex value. + + If the database is not actively opened, then attempts + to access corresponding instances in this table may result in + either noSuchName (SNMPv1) or noSuchInstance (SNMPv2). + 'Actively opened' means at least one of the + rdbmsRelState entries for this database in the rdbmsRelTable + is active(2)." + INDEX { rdbmsDbIndex, rdbmsDbParamName, rdbmsDbParamSubIndex } + ::= { rdbmsDbParamTable 1 } + +RdbmsDbParamEntry ::= + SEQUENCE { + rdbmsDbParamName + DisplayString, + + rdbmsDbParamSubIndex + INTEGER, + + rdbmsDbParamID + AutonomousType, + + rdbmsDbParamCurrValue + DisplayString, + + rdbmsDbParamComment + DisplayString + } + +rdbmsDbParamName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of a configuration parameter for a database. This + name is product-specific. The length is limited to 64 + characters to constrain the number of sub-identifiers needed + for instance identification (and to minimize network + traffic)." + ::= { rdbmsDbParamEntry 1 } + +rdbmsDbParamSubIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The subindex value for this parameter. If the parameter is + naturally considered to contain a variable number of members + of a class, e.g. members of the DBA user group, or files + which are part of the database, then it must be presented as + a set of rows. If, on the other hand, the parameter + represents a set of choices from a class, e.g. the + permissions on a file or the options chosen out of the set of + all options allowed, AND is guaranteed to always fit in the + 255 character length of a DisplayString, then it may be + presented as a comma separated list with a subindex value of + one. Zero may not be used as a value." + ::= { rdbmsDbParamEntry 2 } + +rdbmsDbParamID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the parameter which may be described in some other + MIB (e.g., an enterprise-specific MIB module). If there is + no ID for this rdbmsDbParamName, attempts to access this + object will return noSuchName (SNMPv1) or noSuchInstance + (SNMPv2)." + ::= { rdbmsDbParamEntry 3 } + +rdbmsDbParamCurrValue OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value for a configuration parameter now in effect, the + actual setting for the database. While there may multiple + values in the temporal domain of interest (for instance, the + value to take effect at the next restart), this is the + current setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbParamEntry 4 } + +rdbmsDbParamComment OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Annotation which describes the purpose of a configuration + parameter or the reason for a particular parameter's + setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbParamEntry 5 } + +rdbmsDbLimitedResourceTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsDbLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of limited resources that are kept per-database." + ::= { rdbmsObjects 4 } + +rdbmsDbLimitedResourceEntry OBJECT-TYPE + SYNTAX RdbmsDbLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single limited resource kept per-database. + A limited resource has maximum use determined by a parameter + that might or might not be changeable at run time, or visible + in the rdbmsDbParamTable. Examples would be the number of + available locks, or disk space on a partition. Arrays of + resources are supported through an integer sub index, which + should have the value of one for single-instance names. + + Limited resources that are shared across databases, are best + put in the rdbmsSvrLimitedResourceTable instead of this one. + If the database is not actively opened, then attempts to + access corresponding instances in this table may result in + either noSuchName (SNMPv1) or noSuchInstance (SNMPv2). + 'Actively opened' means at least one of the rdbmsRelState + entries for this database in the rdbmsRelTable is active(2)." + INDEX { rdbmsDbIndex, rdbmsDbLimitedResourceName } + ::= { rdbmsDbLimitedResourceTable 1 } + +RdbmsDbLimitedResourceEntry ::= + SEQUENCE { + rdbmsDbLimitedResourceName + DisplayString, + + rdbmsDbLimitedResourceID + AutonomousType, + + rdbmsDbLimitedResourceLimit + INTEGER, + + rdbmsDbLimitedResourceCurrent + INTEGER, + + rdbmsDbLimitedResourceHighwater + INTEGER, + + rdbmsDbLimitedResourceFailures + Counter, + + rdbmsDbLimitedResourceDescription + DisplayString + } + +rdbmsDbLimitedResourceName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of the resource, for instance 'global locks' or + 'locks for the FOO database', or 'data space on /dev/rdsk/5s0 + for FOO'. The length is limited to 64 characters to constrain + the number of sub-identifiers needed for instance + identification (and to minimize network traffic)." + ::= { rdbmsDbLimitedResourceEntry 1 } + +rdbmsDbLimitedResourceID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the resource which may be described in some other + MIB (e.g., an enterprise-specific MIB module). If there is + no ID for this rdbmsDbLimitedResourceName, attempts to access + this object will return noSuchName (SNMPv1) or noSuchInstance + (SNMPv2)." + ::= { rdbmsDbLimitedResourceEntry 2 } + +rdbmsDbLimitedResourceLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum value the resource use may attain. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbLimitedResourceEntry 3 } + +rdbmsDbLimitedResourceCurrent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current value for the resource." + ::= { rdbmsDbLimitedResourceEntry 4 } + +rdbmsDbLimitedResourceHighwater OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum value of the resource seen since applUpTime + was reset for the earliest server which has the database + actively opened. + + If there are two servers with the database open, and the + oldest one dies, the proper way to invalidate the value is by + resetting sysUpTime." + ::= { rdbmsDbLimitedResourceEntry 5 } + +rdbmsDbLimitedResourceFailures OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the system wanted to exceed the limit of + the resource since applUpTime was reset for the earliest + server which has the database actively opened. + + If there are two servers with the DB open, and the + oldest one dies, the proper way to invalidate the value is by + resetting sysUpTime." + ::= { rdbmsDbLimitedResourceEntry 6 } + +rdbmsDbLimitedResourceDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A description of the resource and the meaning of the integer + units used for Limit, Current, and Highwater. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsDbLimitedResourceEntry 7 } + +rdbmsSrvTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of database servers running or installed + on a system." + ::= { rdbmsObjects 5 } + +rdbmsSrvEntry OBJECT-TYPE + SYNTAX RdbmsSrvEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single database server. A server is an + independent entity that provides access to one or more + databases. Failure of one does not affect access to + databases through any other servers. There might be one or + more servers providing access to a database. A server may be + a 'process' or collection of 'processes', as interpreted by + the product." + INDEX { applIndex } + ::= { rdbmsSrvTable 1 } + +RdbmsSrvEntry ::= + SEQUENCE { + rdbmsSrvPrivateMibOID + OBJECT IDENTIFIER, + + rdbmsSrvVendorName + DisplayString, + + rdbmsSrvProductName + DisplayString, + + rdbmsSrvContact + DisplayString + } + +rdbmsSrvPrivateMibOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The authoritative identification for the private MIB for this + server, presumably based on the vendor, e.g., { enterprises + 111 } for Oracle servers, { + enterprises 757 } for Ingres + servers, { enterprises 897 } for + Sybase servers, etc. + + If no OBJECT IDENTIFIER exists for the private MIB, attempts + to access this object will return noSuchName (SNMPv1) + or noSuchInstance (SNMPv2)." + ::= { rdbmsSrvEntry 1 } + +rdbmsSrvVendorName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The name of the vendor whose RDBMS manages this database, + for informational purposes." + ::= { rdbmsSrvEntry 2 } + +rdbmsSrvProductName OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The product name of this server. This is normally the + vendor's formal name for the product, in product specific + format." + ::= { rdbmsSrvEntry 3 } + +rdbmsSrvContact OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The textual identification of the contact person for this + managed server, together with information on how to contact + this person. + + Note: if there is no active server associated with this + object, an agent may need to keep this in other persistent + storage, e.g., a configuration file. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvEntry 4 } + +rdbmsSrvInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of additional information about database servers. + + Entries in this table correspond to applications in the + APPLICATION-MIB applTable. Some objects in that table are + application-specific. When they are associated with an RDBMS + server in this table, the objects have the following + meanings. + + applName - The name of this server, i.e., the process or + group of processes providing access to this database. The + exact format will be product and host specific. + + applVersion - The version number of this server, in product + specific format. + + applOperStatus - up(1) means operational and available for + general use. down(2) means the server is not available for + use, but is known to the agent. The other states have broad + meaning, and may need to be supplemented by the vendor + private MIB. Halted(3) implies an administrative state of + unavailability. Congested(4) implies a resource or or + administrative limit is prohibiting new inbound associations. + The 'available soon' description of restarting(5) may include + an indeterminate amount of recovery. + + applLastChange is the time the agent noticed the most recent + change to applOperStatus. + + applInboundAssociation is the number of currently active + local and remote conversations (usually SQL connects). + + applOutboundAssociations is not provided by this MIB. + + applAccumulatedInboundAssociations is the total number of + local and remote conversations started since the server came + up. + + applAccumulatedOutbound associations is not provided by this + MIB. + + applLastInboundActivity is the time the most recent local or + remote conversation was attempted or disconnected. + + applLastOutboundActivity is not provided by this MIB. + + applRejectedInboundAssociations is the number of local or + remote conversations rejected by the server for + administrative reasons or because of resource limitations. + + applFailedOutboundAssociations is not provided by this MIB." + ::= { rdbmsObjects 6 } + +rdbmsSrvInfoEntry OBJECT-TYPE + SYNTAX RdbmsSrvInfoEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Information that must be present for a single 'up' database + server, with visibility determined by the value of the + corresponding applOperStatus object. If an instance of + applOperStatus is not up(1), then attempts to access + corresponding instances in this table may result in either + noSuchName (SNMPv1) or noSuchInstance (SNMPv2) being returned + by the agent." + INDEX { applIndex } + ::= { rdbmsSrvInfoTable 1 } + +RdbmsSrvInfoEntry ::= + SEQUENCE { + rdbmsSrvInfoStartupTime + DateAndTime, + + rdbmsSrvInfoFinishedTransactions + Gauge, + + rdbmsSrvInfoDiskReads + Counter, + + rdbmsSrvInfoDiskWrites + Counter, + + rdbmsSrvInfoLogicalReads + Counter, + + rdbmsSrvInfoLogicalWrites + Counter, + + rdbmsSrvInfoPageWrites + Counter, + + rdbmsSrvInfoPageReads + Counter, + + rdbmsSrvInfoDiskOutOfSpaces + Counter, + + rdbmsSrvInfoHandledRequests + Counter, + + rdbmsSrvInfoRequestRecvs + Counter, + + rdbmsSrvInfoRequestSends + Counter, + + rdbmsSrvInfoHighwaterInboundAssociations + Gauge, + + rdbmsSrvInfoMaxInboundAssociations + Gauge + } + +rdbmsSrvInfoStartupTime OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The date and time at which this server was last started." + ::= { rdbmsSrvInfoEntry 1 } + +rdbmsSrvInfoFinishedTransactions OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of transactions visible to this server that have + been completed by either commit or abort. Some database + operations, such as read-only queries, may not result in the + creation of a transaction." + ::= { rdbmsSrvInfoEntry 2 } + +rdbmsSrvInfoDiskReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of reads of database files issued to the + operating system by this server since startup. Numbers are + not comparable between products. What constitutes a + readand how it is accounted is product-specific." + ::= { rdbmsSrvInfoEntry 3 } + +rdbmsSrvInfoLogicalReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of logical reads of database files made + internally by this server since startup. The values of this + object and those of rdbmsSrvInfoDiskReads reveal the effect + of caching on read operation. Numbers are not comparable + between products, and may only be meaningful when aggregated + across all servers sharing a common cache." + ::= { rdbmsSrvInfoEntry 4 } + +rdbmsSrvInfoDiskWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of writes to database files issued to the + operating system by this server since startup. Numbers are + not comparable between products." + ::= { rdbmsSrvInfoEntry 5 } + +rdbmsSrvInfoLogicalWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of times parts of the database files have + been marked 'dirty' and in need of writing to the disk. This + value and rdbmsSrvInfoDiskWrites give some indication of the + effect of 'write-behind' strategies in reducing the number of + disk writes compared to database operations. Because the + writes may be done by servers other than those marking the + parts of the database files dirty, these values may only be + meaningful when aggregated across all servers sharing a + common cache. Numbers are not comparable between products." + ::= { rdbmsSrvInfoEntry 6 } + +rdbmsSrvInfoPageReads OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of pages in database files read by this + server since startup. 'Pages' are product specific units of + disk i/o operations. This value, along with + rdbmsSrvInfoDiskReads, reveals the effect of any grouping + read-ahead that may be used to enhance performance of some + queries, such as scans." + ::= { rdbmsSrvInfoEntry 7 } + +rdbmsSrvInfoPageWrites OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of pages in database files written by this + server since startup. Pages are product-specific units of + disk I/O. This value, with rdbmsSrvInfoDiskWrites, shows the + effect of write strategies that collapse logical writes of + contiguous pages into single calls to the operating system." + ::= { rdbmsSrvInfoEntry 8 } + +rdbmsSrvInfoDiskOutOfSpaces OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of times the server has been unable to + obtain disk space that it wanted, since server startup. This + would be inspected by an agent on receipt of an + rdbmsOutOfSpace trap." + ::= { rdbmsSrvInfoEntry 9 } + +rdbmsSrvInfoHandledRequests OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The total number of requests made to the server on inbound + associations. The meaning of 'requests' is product specific, + and is not comparable between products. + + This is intended to encapsulate high level semantic + operations between clients and servers, or between peers. + For instance, one request might correspond to a 'select' or + an 'insert' statement. It is not intended to capture disk + i/o described in rdbmsSrvInfoDiskReads and + rdbmsSrvInfoDiskWrites." + ::= { rdbmsSrvInfoEntry 10 } + +rdbmsSrvInfoRequestRecvs OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of receive operations made processing any requests + on inbound associations. The meaning of operations is product + specific, and is not comparable between products. + + This is intended to capture lower-level i/o operations than + shown by HandledRequests, between clients and servers, or + between peers. For instance, it might roughly correspond to + the amount of data given with an 'insert' statement. It is + not intended to capture disk i/o described in + rdbmsSrvInfoDiskReads and rdbmsSrvInfoDiskWrites." + ::= { rdbmsSrvInfoEntry 11 } + +rdbmsSrvInfoRequestSends OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of send operations made processing requests + handled on inbound associations. The meaning of operations + is product specific, and is not comparable between products. + This is intended to capture lower-level i/o operations than + shown by HandledRequests, between between clients and + servers, or between peers. It might roughly correspond to + the number of rows returned by a 'select' statement. It is + not intended to capture disk i/o described in DiskReads." + ::= { rdbmsSrvInfoEntry 12 } + +rdbmsSrvInfoHighwaterInboundAssociations OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The greatest number of inbound associations that have been + simultaneously open to this server since startup." + ::= { rdbmsSrvInfoEntry 13 } + +rdbmsSrvInfoMaxInboundAssociations OBJECT-TYPE + SYNTAX Gauge + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The greatest number of inbound associations that can be + simultaneously open with this server. If there is no limit, + then the value should be zero. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvInfoEntry 14 } + +rdbmsSrvParamTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of configuration parameters for a server. Entries + should be populated according to the following guidelines: + (1) The value should be specified through administrative + (human) intervention. + (2) It should be configured on a per-server or a more global + basis, with duplicate entries for each server sharing + use of the parameter. + (3) One of the following is true: + (a) The parameter has a non-numeric value; + (b) The current value is numeric, but it only changes due + to human intervention; + (c) The current value is numeric and dynamic, but the + RDBMS does not track access/allocation failures + related to the parameter; + (d) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, but the failure has no + significant impact on RDBMS performance or + availability. + (e) The current value is numeric and dynamic, the + RDBMS tracks changes in access/allocation failures + related to the parameter, the failure has + significant impact on RDBMS performance or + availability, and is shown in the + rdbmsSrvLimitedResource table." + ::= { rdbmsObjects 7 } + +rdbmsSrvParamEntry OBJECT-TYPE + SYNTAX RdbmsSrvParamEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single configuration parameter for a server. + Parameters with single values have a subindex value of one. + If the parameter is naturally considered to contain a + variable number of members of a class, e.g. members of the + DBA user group, or tracepoints active in the server, then it + must be presented as a set of rows. If, on the other hand, + the parameter represents a set of choices from a class, + e.g. the permissions on a file or the options chosen out of + the set of all options allowed, AND is guaranteed to always + fit in the 255 character length of a DisplayString, then it + may be presented as a comma separated list with a subindex + value of one. Zero may not be used as a subindex value. + + Entries for a server must be present if the value of the + corresponding applOperStatus object is up(1). If an instance + of applOperStatus is not up(1), then attempts to access + corresponding instances in this table may result in either + noSuchName (SNMPv1) or noSuchInstance (SNMPv2) being returned + by the agent." + INDEX { applIndex, rdbmsSrvParamName, rdbmsSrvParamSubIndex } + ::= { rdbmsSrvParamTable 1 } + +RdbmsSrvParamEntry ::= + SEQUENCE { + rdbmsSrvParamName + DisplayString, + + rdbmsSrvParamSubIndex + INTEGER, + + rdbmsSrvParamID + AutonomousType, + + rdbmsSrvParamCurrValue + DisplayString, + + rdbmsSrvParamComment + DisplayString + } + +rdbmsSrvParamName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of a configuration parameter for a server. This + name is product-specific. The length is limited to 64 + characters to constrain the number of sub-identifiers needed + for instance identification (and to minimize network + traffic)." + ::= { rdbmsSrvParamEntry 1 } + +rdbmsSrvParamSubIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The subindex value for this parameter. If the parameter is + naturally considered to contain a variable number of members + of a class, e.g. members of the DBA user group, or files + which are part of the database, then it must be presented as + a set of rows. If, on the other hand, the parameter + represents a set of choices from a class, e.g. the + permissions on a file or the options chosen out of the set of + all options allowed, AND is guaranteed to always fit in the + 255 character length of a DisplayString, then it may be + presented as a comma separated list with a subindex value of + one. Zero may not be used as a value." + ::= { rdbmsSrvParamEntry 2 } + +rdbmsSrvParamID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the parameter which may be described in some + other MIB. If there is no ID for this rdbmsSrvParamName, + attempts to access this object will return noSuchName + (SNMPv1) or noSuchInstance (SNMPv2)." + ::= { rdbmsSrvParamEntry 3 } + +rdbmsSrvParamCurrValue OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The value for a configuration parameter now in effect, the + actual setting for the server. While there may multiple + values in the temporal domain of interest (for instance, the + value to take effect at the next restart), this is the + current setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvParamEntry 4 } + +rdbmsSrvParamComment OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Annotation which describes the purpose of a configuration + parameter or the reason for a particular parameter's + setting. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvParamEntry 5 } + +rdbmsSrvLimitedResourceTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsSrvLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The table of limited resources relevant to a server." + ::= { rdbmsObjects 8 } + +rdbmsSrvLimitedResourceEntry OBJECT-TYPE + SYNTAX RdbmsSrvLimitedResourceEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry for a single limited resource kept by the server. + A limited resource has maximum use determined by a parameter + that might or might not changeable at run time, or visible in + the rbmsSrvParamTable. Examples would be the number of + available locks, or number of concurrent executions allowed + in a server. Arrays of resources are supported through an + integer subindex, which should have the value of one for + single-instance names. + + Limited resources that are shared across servers or databases + are best duplicated in this table across + all servers accessing the resource." + INDEX { applIndex, rdbmsSrvLimitedResourceName } + ::= { rdbmsSrvLimitedResourceTable 1 } + +RdbmsSrvLimitedResourceEntry ::= + SEQUENCE { + rdbmsSrvLimitedResourceName + DisplayString, + + rdbmsSrvLimitedResourceID + AutonomousType, + + rdbmsSrvLimitedResourceLimit + INTEGER, + + rdbmsSrvLimitedResourceCurrent + INTEGER, + + rdbmsSrvLimitedResourceHighwater + INTEGER, + + rdbmsSrvLimitedResourceFailures + Counter, + + rdbmsSrvLimitedResourceDescription + DisplayString + } + +rdbmsSrvLimitedResourceName OBJECT-TYPE + SYNTAX DisplayString + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The name of the resource, for instance 'threads' or + 'semaphores', or 'buffer pages'" + ::= { rdbmsSrvLimitedResourceEntry 1 } + +rdbmsSrvLimitedResourceID OBJECT-TYPE + SYNTAX AutonomousType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The ID of the resource which may be described in some other + MIB. If there is no ID for this rdbmsSrvLimitedResourceName, + attempts to access this object will return noSuchName + (SNMPv1) or noSuchInstance (SNMPv2)." + ::= { rdbmsSrvLimitedResourceEntry 2 } + +rdbmsSrvLimitedResourceLimit OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The maximum value the resource use may attain. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvLimitedResourceEntry 3 } + +rdbmsSrvLimitedResourceCurrent OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The current value for the resource." + ::= { rdbmsSrvLimitedResourceEntry 4 } + +rdbmsSrvLimitedResourceHighwater OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The maximum value of the resource seen since applUpTime + was reset." + ::= { rdbmsSrvLimitedResourceEntry 5 } + +rdbmsSrvLimitedResourceFailures OBJECT-TYPE + SYNTAX Counter + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The number of times the system wanted to exceed the limit of + the resource since applUpTime was reset." + ::= { rdbmsSrvLimitedResourceEntry 6 } + +rdbmsSrvLimitedResourceDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A description of the resource and the meaning of the integer + units used for Limit, Current, and Highwater. + + Note that a compliant agent does not need to + allow write access to this object." + ::= { rdbmsSrvLimitedResourceEntry 7 } + +rdbmsRelTable OBJECT-TYPE + SYNTAX SEQUENCE OF RdbmsRelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A table relating databases and servers present on a host." + ::= { rdbmsObjects 9 } + +rdbmsRelEntry OBJECT-TYPE + SYNTAX RdbmsRelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry relating a single database server to a single + database to which it may provide access. The table is + indexed first by the index of rdbmsDbTable, and then + rdbmsSrvTable, so that all servers capable of providing + access to a given database may be found by SNMP traversal + operations (get-next and get-bulk). The makeup of this table + depends on the product's architecture, e.g. if it is one + server - many databases, then each server will appear n + times, where n is the number of databases it may access, and + each database will appear once. If the architecture is one + database - many servers, then each server will appear once + and each database will appear n times, where n is the number + of servers that may be accessing it." + INDEX { rdbmsDbIndex, applIndex } + ::= { rdbmsRelTable 1 } + +RdbmsRelEntry ::= + SEQUENCE { + rdbmsRelState + INTEGER, + + rdbmsRelActiveTime + DateAndTime + } + +rdbmsRelState OBJECT-TYPE + SYNTAX INTEGER { + other(1), + active(2), + available(3), + restricted(4), + unavailable(5) +} + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The state of this server's access to this database. + Active(2) means the server is actively using the database. + Available(3) means the server could use the database if + necessary. Restricted(4) means the database is in some + administratively determined state of less-than-complete + availability. Unavailable(5) means the database is not + available through this server. Other(1) means the + database/server is in some other condition, possibly + described in the vendor private MIB." + ::= { rdbmsRelEntry 1 } + +rdbmsRelActiveTime OBJECT-TYPE + SYNTAX DateAndTime + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The time the database was made active by the server. If an + instance of rdbmsRelState is not active(1), then attempts to + access the corresponding instance of this object may result + in either noSuchName (SNMPv1) or noSuchInstance (SNMPv2) + being returned by the agent." + ::= { rdbmsRelEntry 2 } + +rdbmsWellKnownLimitedResources OBJECT IDENTIFIER ::= { rdbmsObjects 10 } + +rdbmsLogSpace OBJECT IDENTIFIER ::= { rdbmsWellKnownLimitedResources 1 } + +rdbmsTraps OBJECT IDENTIFIER ::= { rdbmsMIB 2 } + +rdbmsStateChange TRAP-TYPE + ENTERPRISE rdbmsTraps + VARIABLES { rdbmsRelState } + DESCRIPTION + "An rdbmsStateChange trap signifies that one of the database + server/databases managed by this agent has changed its + rdbmsRelState in a way that makes it less accessible for use. + For these purposes, both active(2) and available(3) are + considered fully accessible. The state sent with the trap is + the new, less accessible state." + ::= 1 + +rdbmsOutOfSpace TRAP-TYPE + ENTERPRISE rdbmsTraps + VARIABLES { rdbmsSrvInfoDiskOutOfSpaces } + DESCRIPTION + "An rdbmsOutOfSpace trap signifies that one of the database + servers managed by this agent has been unable to allocate + space for one of the databases managed by this agent. Care + should be taken to avoid flooding the network with these + traps." + ::= 2 + +rdbmsConformance OBJECT IDENTIFIER ::= { rdbmsMIB 3 } + +rdbmsCompliances OBJECT IDENTIFIER ::= { rdbmsConformance 1 } + +rdbmsGroups OBJECT IDENTIFIER ::= { rdbmsConformance 2 } + +rdbmsCompliance OBJECT IDENTIFIER ::= { rdbmsCompliances 1 } + +rdbmsGroup OBJECT IDENTIFIER ::= { rdbmsGroups 1 } + +END From 11356d612868cc2c3d8b103627384ca96c191a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Mon, 29 May 2023 14:45:59 -0600 Subject: [PATCH 063/268] Change group id to dynamic if is unknown --- pandora_server/util/pandora_manage.pl | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 82c308d105..dabfde08f2 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -4454,13 +4454,23 @@ sub cli_create_event() { } my $id_group; - - if (! $group_name || $group_name eq "All") { + + if($group_name eq "All"){ $id_group = 0; + }else{ + $id_group = get_group_id($dbh, $group_name); + + if ((!defined($id_group) || $id_group == -1)) { + + my $default_group_name = "Unknown"; + print_log "[INFO] Not found '$group_name' group adding to default Unknown group \n\n"; + $id_group = get_group_id($dbh, $default_group_name); + + if (!defined($id_group) || $id_group == -1) { + $id_group = pandora_create_group ($default_group_name, 'unknown@groups.svg', 0, 0, 0, '', 0, undef, $dbh); + print_log "[INFO] Adding group '$default_group_name' \n\n"; + } } - else { - $id_group = get_group_id($dbh,$group_name); - exist_check($id_group,'group',$group_name); } my $id_agent; @@ -4515,7 +4525,7 @@ sub cli_create_event() { # exist_check($id_agent,'agent',$agent_name); if($id_agent == -1){ if($force_create_agent == 1){ - pandora_create_agent ($conf, '', $agent_name, '', '10', '', '', 'Created by cli_create_event', '', $dbh); + pandora_create_agent ($conf, '', $agent_name, '', $id_group, '', '', 'Created by cli_create_event', '', $dbh); print_log "[INFO] Adding agent '$agent_name' \n\n"; $id_agent = get_agent_id($dbh,$agent_name); } From fe9054cf2c29af90510c2b71e030726b06562ffc Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 30 May 2023 12:18:48 +0200 Subject: [PATCH 064/268] 10012 added graph in log report by period --- .../godmode/reporting/reporting_builder.item_editor.php | 4 ++++ pandora_console/godmode/reporting/reporting_builder.php | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index 34a1885026..7136dcfdcd 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -332,6 +332,8 @@ switch ($action) { $search = $es['search']; $log_number = empty($es['log_number']) ? $log_number : $es['log_number']; $full_text = empty($es['full_text']) ? 0 : $es['full_text']; + $show_graph = $item['show_graph']; + $group_by_agent = $item['group_by_agent']; break; case 'simple_graph': @@ -6615,6 +6617,8 @@ function chooseType() { $("#agents_row").show(); $("#row_source").show(); $("#row_historical_db_check").hide(); + $("#row_show_graph").show(); + $("#row_group_by_agent").show(); loadLogAgents(); diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php index d3a48dba8d..cda03c695a 100755 --- a/pandora_console/godmode/reporting/reporting_builder.php +++ b/pandora_console/godmode/reporting/reporting_builder.php @@ -1629,6 +1629,8 @@ switch ($action) { $values['external_source'] = json_encode($es); $values['period'] = get_parameter('period'); $values['period_range'] = get_parameter('period_range'); + $values['show_graph'] = get_parameter('combo_graph_options'); + $values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent'); $good_format = true; break; @@ -2607,6 +2609,8 @@ switch ($action) { $values['external_source'] = json_encode($es); $values['period'] = get_parameter('period'); $values['period_range'] = get_parameter('period_range'); + $values['show_graph'] = get_parameter('combo_graph_options'); + $values['group_by_agent'] = get_parameter('checkbox_row_group_by_agent'); $good_format = true; break; From 8102d6921dd80f3f50f6fc68a8e4389b70b77045 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Tue, 30 May 2023 15:51:07 +0200 Subject: [PATCH 065/268] #11372 Add checkbox to div and fix div style --- pandora_console/include/functions_filemanager.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/functions_filemanager.php b/pandora_console/include/functions_filemanager.php index ae37b87f22..9ca60ecf20 100644 --- a/pandora_console/include/functions_filemanager.php +++ b/pandora_console/include/functions_filemanager.php @@ -879,7 +879,19 @@ function filemanager_file_explorer( if ($allowZipFiles === true) { $uploadFileElements .= ui_print_help_tip(__('The zip upload in this dir, easy to upload multiple files.'), true); $uploadFileElements .= html_print_input_file('file', true, false); - $uploadFileElements .= html_print_checkbox('decompress', 1, false, true).__('Decompress'); + $uploadFileElements .= html_print_div( + [ + 'id' => 'checkbox-decompress', + 'content' => html_print_checkbox( + 'decompress', + 1, + false, + true, + ).__('Decompress'), + 'style' => 'margin-top:25px', + ], + true + ); $uploadFileElements .= html_print_input_hidden('upload_file_or_zip', 1, true); } else { $uploadFileElements .= html_print_div( From 202c9b5ea7b965cb49b13416be4b2f4850843aab Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Tue, 30 May 2023 16:26:06 +0200 Subject: [PATCH 066/268] #11383 Add autorefresh_white_list value --- pandora_console/godmode/users/configure_user.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pandora_console/godmode/users/configure_user.php b/pandora_console/godmode/users/configure_user.php index 210d7e0945..0571046ebf 100644 --- a/pandora_console/godmode/users/configure_user.php +++ b/pandora_console/godmode/users/configure_user.php @@ -370,6 +370,9 @@ if ($create_user === true) { $values['strict_acl'] = (bool) get_parameter('strict_acl', false); $values['session_time'] = (int) get_parameter('session_time', 0); + // Previously defined. + $values['autorefresh_white_list'] = $autorefresh_white_list; + // eHorus user level conf. if ((bool) $config['ehorus_user_level_conf'] === true) { $values['ehorus_user_level_enabled'] = (bool) get_parameter('ehorus_user_level_enabled', false); From fa63ecc9035fc48db2229ce08cc7d76ac9563407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Tue, 30 May 2023 09:23:34 -0600 Subject: [PATCH 067/268] Show error in non-existent group --- pandora_server/util/pandora_manage.pl | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index dabfde08f2..37f0b07fe1 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -4453,26 +4453,9 @@ sub cli_create_event() { exist_check($id_user,'user',$user_name); } - my $id_group; + my $id_group = get_group_id($dbh,$group_name); + exist_check($id_group,'group',$group_name); - if($group_name eq "All"){ - $id_group = 0; - }else{ - $id_group = get_group_id($dbh, $group_name); - - if ((!defined($id_group) || $id_group == -1)) { - - my $default_group_name = "Unknown"; - print_log "[INFO] Not found '$group_name' group adding to default Unknown group \n\n"; - $id_group = get_group_id($dbh, $default_group_name); - - if (!defined($id_group) || $id_group == -1) { - $id_group = pandora_create_group ($default_group_name, 'unknown@groups.svg', 0, 0, 0, '', 0, undef, $dbh); - print_log "[INFO] Adding group '$default_group_name' \n\n"; - } - } - } - my $id_agent; if (defined $use_alias and $use_alias eq 'use_alias') { From d978d79747a78ddb4551682a69e621542a1a93d5 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Wed, 31 May 2023 09:00:18 +0200 Subject: [PATCH 068/268] #11378 Fixed line breaks in text area Web Checks --- .../godmode/agentes/module_manager_editor_web.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandora_console/godmode/agentes/module_manager_editor_web.php b/pandora_console/godmode/agentes/module_manager_editor_web.php index 4e97ffaa57..cf983cadfd 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_web.php +++ b/pandora_console/godmode/agentes/module_manager_editor_web.php @@ -113,7 +113,8 @@ if ($id_policy_module > 0) { $plugin_parameter_split = explode(' ', $plugin_parameter); $plugin_parameter_final_split = ''; -foreach ($plugin_parameter_split as $key => $value) { +$new_plugin_parameter_split = array_filter($plugin_parameter_split, 'strlen'); +foreach ($new_plugin_parameter_split as $key => $value) { if (strpos($value, 'http_auth_user') === false && strpos($value, 'http_auth_pass') === false) { $plugin_parameter_final_split .= $value.' '; } @@ -317,8 +318,7 @@ foreach ($texts as $code => $text) { return; } - $(plugin_parameter).val( - 'task_begin\ncookie 0\nresource 0\ntask_end'); + $(plugin_parameter).val('task_begin\ncookie 0\nresource 0\ntask_end'); $('#button-btn_loadbasic').attr('disabled', 'disabled'); From 08a4c289532646e96c1319f05259b9568b0cbefd Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Wed, 31 May 2023 09:22:16 +0200 Subject: [PATCH 069/268] #11266 Fix location of console.log --- pandora_console/godmode/setup/setup_general.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index 3b168cf4d0..ac9b57cb4e 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -667,7 +667,8 @@ $table->data[$i++][] = html_print_label_input_block( true ) ); - +$console_log_text = __('Log location').': /var/log/php-fpm/error.log'; +$console_log_text .= '
'.__('This log is recommended to be DISABLED by default due to the large amount of debug data it generates.'); $table->data[$i][] = html_print_label_input_block( __('Enable console log'), html_print_checkbox_switch( @@ -676,8 +677,8 @@ $table->data[$i][] = html_print_label_input_block( $config['console_log_enabled'], true ).ui_print_input_placeholder( - __('Log location').': pandora_console/log/console.log', - true + $console_log_text, + true, ) ); From 80aeaebfad5213a86c78ccf99f10b8590b6216fd Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Wed, 31 May 2023 09:26:42 +0200 Subject: [PATCH 070/268] #11266 Add hint --- pandora_console/godmode/setup/setup_general.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index ac9b57cb4e..1ac7d8205d 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -667,18 +667,21 @@ $table->data[$i++][] = html_print_label_input_block( true ) ); -$console_log_text = __('Log location').': /var/log/php-fpm/error.log'; -$console_log_text .= '
'.__('This log is recommended to be DISABLED by default due to the large amount of debug data it generates.'); + +$help_tip = ui_print_help_tip( + __('This log is recommended to be DISABLED by default due to the large amount of debug data it generates.'), + true +); $table->data[$i][] = html_print_label_input_block( - __('Enable console log'), + __('Enable console log').$help_tip, html_print_checkbox_switch( 'console_log_enabled', 1, $config['console_log_enabled'], true ).ui_print_input_placeholder( - $console_log_text, - true, + __('Log location').': /var/log/php-fpm/error.log', + true ) ); From 3df928fab843ec5a7f36c01a7de4ef2aa3ec0900 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Wed, 31 May 2023 14:02:13 +0200 Subject: [PATCH 071/268] #11327 change input for textarea in edit plugin --- pandora_console/godmode/servers/plugin.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pandora_console/godmode/servers/plugin.php b/pandora_console/godmode/servers/plugin.php index 75db97e1e7..276dea4b51 100644 --- a/pandora_console/godmode/servers/plugin.php +++ b/pandora_console/godmode/servers/plugin.php @@ -487,17 +487,16 @@ if (empty($create) === false || empty($view) === false) { $data = []; $data[0] = html_print_label_input_block( __('Plug-in parameters'), - html_print_input_text( + html_print_textarea( 'form_parameters', + 4, + 50, $parameters, '', - 100, - 255, true, + 'command_component command_advanced_conf text_input', false, - false, - '', - 'command_component command_advanced_conf text_input' + false ) ); @@ -1119,7 +1118,7 @@ ui_require_javascript_file('pandora_modules'); function update_preview() { var command = $('#text-form_execute').val(); - var parameters = $('#text-form_parameters').val(); + var parameters = $('#textarea_form_parameters').val(); var i = 1; while (1) { From 6a68c40edfff0f9e46143839490300ba1ae72050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Wed, 31 May 2023 23:40:46 -0600 Subject: [PATCH 072/268] Changes to show moduletags and policy in macros --- pandora_server/lib/PandoraFMS/Core.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 06deaa4331..c3f833908d 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -4867,9 +4867,10 @@ sub on_demand_macro($$$$$$;$) { return ''; } elsif ($macro eq '_moduletags_') { - return (defined ($module)) ? pandora_get_module_url_tags ($pa_config, $dbh, $module->{'id_agente_modulo'}) : ''; + return (defined ($module)) ? pandora_get_module_tags ($pa_config, $dbh, $module->{'id_agente_modulo'}) : ''; } elsif ($macro eq '_policy_') { - return (defined ($alert)) ? enterprise_hook('get_policy_name_policy_alerts_id', [$dbh, $alert->{'id_policy_alerts'}]) : ''; + my $policy_name = get_db_value($dbh, 'SELECT p.name FROM tpolicy_modules AS pm, tpolicies AS p WHERE pm.id_policy = p.id AND pm.id = ?;', $module->{'id_policy_module'}); + return (defined ($policy_name)) ? $policy_name : ''; } elsif ($macro eq '_email_tag_') { return (defined ($module)) ? pandora_get_module_email_tags ($pa_config, $dbh, $module->{'id_agente_modulo'}) : ''; } elsif ($macro eq '_phone_tag_') { From 54ba66e72a43bf26f5bc9ac1b51afed720cbc845 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 1 Jun 2023 14:53:45 +0200 Subject: [PATCH 073/268] #11418 change graph in agent view --- pandora_console/include/ajax/graph.ajax.php | 6 ++++-- pandora_console/operation/agentes/graphs.php | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/pandora_console/include/ajax/graph.ajax.php b/pandora_console/include/ajax/graph.ajax.php index 7b96d1e85b..39e119f49f 100644 --- a/pandora_console/include/ajax/graph.ajax.php +++ b/pandora_console/include/ajax/graph.ajax.php @@ -17,6 +17,8 @@ $save_custom_graph = (bool) get_parameter('save_custom_graph'); $print_custom_graph = (bool) get_parameter('print_custom_graph', false); $print_sparse_graph = (bool) get_parameter('print_sparse_graph'); $get_graphs = (bool) get_parameter('get_graphs_container'); +$width = get_parameter('width', 0); +$height = get_parameter('height', 0); if ($save_custom_graph) { $return = []; @@ -25,8 +27,6 @@ if ($save_custom_graph) { $name = get_parameter('name', ''); $description = get_parameter('description', ''); $stacked = get_parameter('stacked', CUSTOM_GRAPH_LINE); - $width = get_parameter('width', 0); - $height = get_parameter('height', 0); $events = get_parameter('events', 0); $period = get_parameter('period', 0); $fullscale = get_parameter('fullscale', 0); @@ -126,6 +126,8 @@ if ($print_sparse_graph) { 'force_interval' => '', 'time_interval' => 300, 'array_data_create' => 0, + 'height' => $height, + 'width' => $width, ]; echo grafico_modulo_sparse($params); diff --git a/pandora_console/operation/agentes/graphs.php b/pandora_console/operation/agentes/graphs.php index f0da16847f..f976d21001 100644 --- a/pandora_console/operation/agentes/graphs.php +++ b/pandora_console/operation/agentes/graphs.php @@ -45,7 +45,7 @@ if ((bool) check_acl($config['id_user'], $id_grupo, 'AR') === false && (bool) ch require_once $config['homedir'].'/include/functions_graph.php'; $draw_alerts = get_parameter('draw_alerts', 0); -$period = get_parameter('period', SECONDS_1HOUR); +$period = (string) get_parameter('period', SECONDS_2HOUR); $width = get_parameter('width', 555); $height = get_parameter('height', 245); $label = get_parameter('label', ''); @@ -53,8 +53,8 @@ $start_date = get_parameter('start_date', date('Y-m-d')); $draw_events = get_parameter('draw_events', 0); $modules = get_parameter('modules', []); $filter = get_parameter('filter', 0); -$combined = get_parameter('combined', 1); -$option_type = get_parameter('option_type', 0); +$combined = get_parameter('combined', 0); +$option_type = get_parameter('option_type', 2); // ---------------------------------------------------------------------- // Get modules of agent sorted as: @@ -176,11 +176,12 @@ foreach ($modules_boolean as $i => $m) { $list_modules = ($modules_networkmap_no_proc + $modules_others + $modules_boolean); +sort($list_modules); // ---------------------------------------------------------------------- if (empty($modules)) { // Selected the first 6 modules. $module_ids = array_keys($list_modules); - $module_ids = array_slice($module_ids, 0, 6); + $module_ids = array_slice($module_ids, 0, 12); $modules = $module_ids; } @@ -301,7 +302,7 @@ $htmlForm .= html_print_div( $htmlForm .= ''; -ui_toggle($htmlForm, __('Filter graphs'), __('Toggle filter(s)'), '', false); +ui_toggle($htmlForm, __('Filter graphs'), __('Toggle filter(s)'), '', true); $utime = get_system_time(); $current = date('Y-m-d', $utime); @@ -316,13 +317,17 @@ if ($combined) { // Pass the $modules before the ajax call. echo '
'.html_print_image('images/spinner.gif', true).'
'; } else { + echo '
'; foreach ($modules as $id_module) { $title = modules_get_agentmodule_name($id_module); $unit = modules_get_unit($id_module); - + echo '
'; echo '

'.$title.'

'; - echo '
'.html_print_image('images/spinner.gif', true).'
'; + echo '
'.html_print_image('images/spinner.gif', true).'
'; + echo '
'; } + + echo '
'; } echo "
"; From 3751af36c799b8f129741d1548deb4aa094b00ea Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 1 Jun 2023 15:08:34 +0200 Subject: [PATCH 074/268] #11418 fixed css in graphs --- pandora_console/operation/agentes/graphs.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/operation/agentes/graphs.php b/pandora_console/operation/agentes/graphs.php index f976d21001..b796c610c7 100644 --- a/pandora_console/operation/agentes/graphs.php +++ b/pandora_console/operation/agentes/graphs.php @@ -321,7 +321,7 @@ if ($combined) { foreach ($modules as $id_module) { $title = modules_get_agentmodule_name($id_module); $unit = modules_get_unit($id_module); - echo '
'; + echo '
'; echo '

'.$title.'

'; echo '
'.html_print_image('images/spinner.gif', true).'
'; echo '
'; From 96762749cfe0437e3127fb4fac7320c53a13c268 Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Thu, 1 Jun 2023 17:47:43 +0200 Subject: [PATCH 075/268] #11256 fixed icon --- .../lib/Dashboard/Widgets/module_icon.php | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/module_icon.php b/pandora_console/include/lib/Dashboard/Widgets/module_icon.php index 6790d70616..e561a1eb86 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/module_icon.php +++ b/pandora_console/include/lib/Dashboard/Widgets/module_icon.php @@ -540,12 +540,6 @@ class ModuleIconWidget extends Widget $output = ''; - $id_group = \agents_get_agent_group($this->values['agentId']); - - $modulesAgent = \modules_get_agentmodule_agent( - $this->values['moduleId'] - ); - $data_module = \modules_get_last_value( $this->values['moduleId'] ); @@ -572,33 +566,37 @@ class ModuleIconWidget extends Widget // General div. $output .= '
'; - $sql = 'SELECT min_warning, - max_warning, - min_critical, - max_critical, - str_warning, - str_critical - FROM tagente_modulo - WHERE id_agente_modulo = '.(int) $this->values['moduleId']; - $sql_data = db_get_row_sql($sql); + $status = \modules_get_agentmodule_status($this->values['moduleId']); - $last = modules_get_last_value($this->values['moduleId']); + switch ($status) { + case 1: + case 4: + // Critical or critical alert (BAD). + $color_icon .= '_bad.png'; + break; - $color_icon = '_ok'; - if (($last >= $sql_data['min_warning']) && ($last < $sql_data['max_warning'])) { - $color_icon = '_warning'; + case 0: + // Normal (OK). + $color_icon .= '_ok.png'; + break; + + case 2: + case 10: + // Warning or warning alert. + $color_icon .= '_warning.png'; + break; + + case 3: + // Unknown. + default: + $color_icon .= '.png'; + // Default is Grey (Other). + break; } - if ($last >= $sql_data['max_warning']) { - $color_icon = '_bad'; - } - - // Div image. - $style_icon = 'flex: 0 1 '.$sizeIcon.'px;'; - $output .= '
'; $output .= html_print_image( - 'images/console/icons/'.$icon.$color_icon.'.png', + 'images/console/icons/'.$icon.$color_icon, true, ['width' => $sizeIcon] ); From d12d98d458633fb13b1dfe804e1c3b05e54bcbc8 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Fri, 2 Jun 2023 11:42:18 +0200 Subject: [PATCH 076/268] #11287 Fix title icons --- pandora_console/include/ajax/module.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index 9e3e2580af..1c9dbf3598 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -1252,7 +1252,10 @@ if (check_login()) { 'content' => html_print_image( 'images/event-history.svg', true, - [ 'class' => 'main_menu_icon' ] + [ + 'title' => __('Event history'), + 'class' => 'main_menu_icon forced_title', + ] ), ], true @@ -1268,7 +1271,7 @@ if (check_login()) { 'images/module-graph.svg', true, [ - 'title' => $module['nombre'], + 'title' => __('Module graph'), 'class' => 'main_menu_icon forced_title', ] ), @@ -1287,7 +1290,10 @@ if (check_login()) { 'content' => html_print_image( 'images/simple-value.svg', true, - [ 'class' => 'main_menu_icon' ] + [ + 'title' => __('Module detail'), + 'class' => 'main_menu_icon forced_title', + ] ), ], true From 964c1f3142c88e98226569cf59fff00f7fea8192 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Fri, 2 Jun 2023 12:03:29 +0200 Subject: [PATCH 077/268] #11287 Fix title icons --- pandora_console/include/ajax/module.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index 1c9dbf3598..fe6ba7ae01 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -1329,7 +1329,10 @@ if (check_login()) { 'content' => html_print_image( $imgaction, true, - [ 'class' => 'main_menu_icon' ] + [ + 'title' => __('Force remote check'), + 'class' => 'main_menu_icon forced_title', + ] ), ], true @@ -1346,7 +1349,10 @@ if (check_login()) { 'content' => html_print_image( 'images/edit.svg', true, - [ 'class' => 'main_menu_icon' ] + [ + 'title' => __('Edit configuration'), + 'class' => 'main_menu_icon forced_title', + ] ), ], true From ebdc735bd42a1bdac7ce3fb1d09157b0a80da575 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Fri, 2 Jun 2023 13:32:47 +0200 Subject: [PATCH 078/268] #10598 V2 wizard welcome --- pandora_console/general/header.php | 2 +- pandora_console/godmode/menu.php | 63 +- .../godmode/wizards/task_to_perform.php | 1203 ----------------- .../include/ajax/task_to_perform.php | 181 +++ .../include/class/WelcomeWindow.class.php | 744 +++++++--- pandora_console/include/functions_menu.php | 2 + .../include/functions_welcome_wizard.php | 537 ++++++++ .../new_installation_welcome_window.css | 18 +- pandora_console/include/styles/pandora.css | 4 - .../include/styles/select2.min.css | 2 +- 10 files changed, 1329 insertions(+), 1427 deletions(-) delete mode 100644 pandora_console/godmode/wizards/task_to_perform.php create mode 100644 pandora_console/include/ajax/task_to_perform.php create mode 100644 pandora_console/include/functions_welcome_wizard.php diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index af868f0c5c..78a9551128 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -38,7 +38,7 @@ echo sprintf('
', $menuTypeClass); if (check_acl($config['id_user'], $group, 'AW')) { $header_welcome .= '
'; $header_welcome .= html_print_image( - 'images/computer@groups.svg', + 'images/wizard@svg.svg', true, [ 'class' => 'main_menu_icon invert_filter', diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 0a8ef6e254..60ec438097 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -172,16 +172,7 @@ if ($access_console_node === true) { $sub['wizard']['text'] = __('Configuration wizard'); $sub['wizard']['id'] = 'conf_wizard'; $sub['wizard']['type'] = 'direct'; - $sub['wizard']['subtype'] = 'nolink'; - $sub2 = []; - if ((bool) check_acl($config['id_user'], 0, 'PM') === true) { - $sub2['godmode/wizards/mini_diagnosis']['text'] = __('Mini-diagnosis'); - $sub2['godmode/wizards/mini_diagnosis']['id'] = 'mini_diagnosis'; - } - - $sub2['godmode/wizards/task_to_perform']['text'] = __('Tasks to perform'); - $sub2['godmode/wizards/task_to_perform']['id'] = 'task_to_perform'; - $sub['wizard']['sub2'] = $sub2; + $sub['wizard']['subtype'] = 'nolink_no_arrow'; } if ((bool) check_acl($config['id_user'], 0, 'PM') === true) { @@ -629,3 +620,55 @@ if ((bool) $config['pure'] === false) { } echo '
'; +// Need to be here because the translate string. +if (check_acl($config['id_user'], $group, 'AW')) { + ?> + + + - - - - - '', - 'label' => __('Configuration'), - ], - [ - 'link' => '', - 'label' => __('Configuration wizard'), - ], - ] -); - -$status_webserver = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_WEB], 'status')['status']; -$status_check_web = false; -if ($status_webserver === '1') { - $status_check_web = true; -} - -$status_newtwork = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_NETWORK], 'status')['status']; -$status_pluggin = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_PLUGIN], 'status')['status']; -$status_check_connectivity = false; -if ($status_newtwork === '1' && $status_pluggin === '1') { - $status_check_connectivity = true; -} - -ui_require_css_file('mini_diagnosis'); -$table = new stdClass(); -$table->width = '60%'; -$table->class = 'filter-table-adv databox'; -$table->size = []; -$table->data = []; -$table->size[0] = '30%'; -$table->size[1] = '30%'; -$table->data[0][0] = html_print_wizard_diagnosis(__('Wizard install agent'), 'wizard_install', __('Wizard install agent'), false, true); -$table->data[0][1] = html_print_wizard_diagnosis(__('Create check web'), 'configure_email', __('Create check web'), $status_check_web, true); -$table->data[1][0] = html_print_wizard_diagnosis(__('Create basic connectivity'), 'basic_connectivity', __('Create basic connectivity'), $status_check_connectivity, true); -$table->data[1][1] = html_print_wizard_diagnosis(__('Create basic net'), 'basic_net', __('Create basic net'), true, true); -$table->data[2][0] = html_print_wizard_diagnosis(__('Create Alert Mail'), 'alert_mail', __('Create Alert Mail'), true, true); -html_print_table($table); -?> - - - - - - 9], 'status')['status']; - if ($status_webserver === '1') { - $name = array_keys(servers_get_names())[0]; - $id_group = get_parameter('id_group', 4); - - $array_other['data'] = [ - 'Goliat', - '', - 2, - $id_group, - 0, - 30, - 30, - 9, - $name, - 0, - 0, - 0, - __('Agent goliat created on welcome'), - ]; - - $id_agent = api_set_new_agent(0, '', $array_other, '', true); - if ($id_agent > 0) { - $module_name = get_parameter('module_name', 'goliat_module'); - $text_to_search = get_parameter('text_to_search', ''); - $url_goliat = get_parameter('url_goliat', 'https://pandorafms.com/en/'); - $module_latency = create_module_latency_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search); - $module_status = create_module_status_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search); - if ($module_latency > 0 && $module_status > 0) { - ui_print_success_message(__('Your check has been created,
click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); - } - } else { - ui_print_error_message(__('The Name is not valid for the modules.')); - } - } else { - ui_print_error_message(__('Web server is not enabled.')); - } -} - - -/** - * Create_module_latency_goliat and return module id. - * - * @param mixed $id_agent Id agent. - * @param mixed $module_name Module name. - * @param mixed $id_group Id group. - * @param mixed $url_search Url to search. - * @param mixed $string_search Text to search. - * - * @return interger Module id. - */ -function create_module_latency_goliat($id_agent, $module_name, $id_group, $url_search, $string_search='') -{ - if ($string_search !== '') { - $str_search = 'check_string '.$string_search.''; - } - - include_once 'include/functions_modules.php'; - - $array_values = [ - 'id_tipo_modulo' => '30', - 'descripcion' => '', - 'max' => '0', - 'min' => '0', - 'snmp_oid' => '', - 'snmp_community' => 'public', - 'id_module_group' => $id_group, - 'module_interval' => '300', - 'module_ff_interval' => '0', - 'ip_target' => '', - 'tcp_port' => '0', - 'tcp_rcv' => '', - 'tcp_send' => '', - 'id_export' => '0', - 'plugin_user' => '', - 'plugin_pass' => '0', - 'plugin_parameter' => 'task_begin -get '.$url_search.' -resource 1 -'.$str_search.' -task_end', - 'id_plugin' => '0', - 'post_process' => '0', - 'prediction_module' => '0', - 'max_timeout' => '0', - 'max_retries' => '0', - 'disabled' => '', - 'id_modulo' => '7', - 'custom_id' => '', - 'history_data' => '1', - 'dynamic_interval' => '0', - 'dynamic_max' => '0', - 'dynamic_min' => '0', - 'dynamic_two_tailed' => '0', - 'parent_module_id' => '0', - 'min_warning' => '0', - 'max_warning' => '0', - 'str_warning' => '', - 'min_critical' => '0', - 'max_critical' => '0', - 'str_critical' => '', - 'custom_string_1' => '', - 'custom_string_2' => '', - 'custom_string_3' => '', - 'custom_integer_1' => '0', - 'custom_integer_2' => '0', - 'min_ff_event' => '0', - 'min_ff_event_normal' => '0', - 'min_ff_event_warning' => '0', - 'min_ff_event_critical' => '0', - 'ff_type' => '0', - 'each_ff' => '0', - 'ff_timeout' => '0', - 'unit' => '', - 'macros' => '', - 'quiet' => '0', - 'cps' => '0', - 'critical_instructions' => '', - 'warning_instructions' => '', - 'unknown_instructions' => '', - 'critical_inverse' => '0', - 'warning_inverse' => '0', - 'percentage_critical' => '0', - 'percentage_warning' => '0', - 'cron_interval' => '* * * * *', - 'id_category' => '0', - 'disabled_types_event' => '{\"going_unknown\":0}', - 'module_macros' => 'W10=', - 'warning_time' => '0', - ]; - return modules_create_agent_module($id_agent, $module_name.'_latency', $array_values); -} - - -/** - * Create_module_status_goliat and return module id. - * - * @param mixed $id_agent Id agent. - * @param mixed $module_name Module name. - * @param mixed $id_group Id group. - * @param mixed $url_search Url to search. - * @param mixed $string_search Text to search. - * - * @return interger Module id. - */ -function create_module_status_goliat($id_agent, $module_name, $id_group, $url_search, $string_search='') -{ - if ($string_search !== '') { - $str_search = 'check_string '.$string_search.' '; - } - - include_once 'include/functions_modules.php'; - - $array_values = [ - 'id_tipo_modulo' => '31', - 'descripcion' => '', - 'max' => '0', - 'min' => '0', - 'snmp_oid' => '', - 'snmp_community' => 'public', - 'id_module_group' => $id_group, - 'module_interval' => '300', - 'module_ff_interval' => '0', - 'ip_target' => '', - 'tcp_port' => '0', - 'tcp_rcv' => '', - 'tcp_send' => '', - 'id_export' => '0', - 'plugin_user' => '', - 'plugin_pass' => '0', - 'plugin_parameter' => 'task_begin -get '.$url_search.' -resource 1 -'.$str_search.' -task_end', - 'id_plugin' => '0', - 'post_process' => '0', - 'prediction_module' => '0', - 'max_timeout' => '0', - 'max_retries' => '0', - 'disabled' => '', - 'id_modulo' => '7', - 'custom_id' => '', - 'history_data' => '1', - 'dynamic_interval' => '0', - 'dynamic_max' => '0', - 'dynamic_min' => '0', - 'dynamic_two_tailed' => '0', - 'parent_module_id' => '0', - 'min_warning' => '0', - 'max_warning' => '0', - 'str_warning' => '', - 'min_critical' => '0', - 'max_critical' => '0', - 'str_critical' => '', - 'custom_string_1' => '', - 'custom_string_2' => '', - 'custom_string_3' => '', - 'custom_integer_1' => '0', - 'custom_integer_2' => '0', - 'min_ff_event' => '0', - 'min_ff_event_normal' => '0', - 'min_ff_event_warning' => '0', - 'min_ff_event_critical' => '0', - 'ff_type' => '0', - 'each_ff' => '0', - 'ff_timeout' => '0', - 'unit' => '', - 'macros' => '', - 'quiet' => '0', - 'cps' => '0', - 'critical_instructions' => '', - 'warning_instructions' => '', - 'unknown_instructions' => '', - 'critical_inverse' => '0', - 'warning_inverse' => '0', - 'percentage_critical' => '0', - 'percentage_warning' => '0', - 'cron_interval' => '* * * * *', - 'id_category' => '0', - 'disabled_types_event' => '{\"going_unknown\":0}', - 'module_macros' => 'W10=', - 'warning_time' => '0', - ]; - return modules_create_agent_module($id_agent, $module_name.'_status', $array_values); -} - - -if ($create_connectivity_dialog) { - ?> - - 1], 'status')['status']; - $status_pluggin = db_get_row_filter('tserver', ['server_type' => 4], 'status')['status']; - if ($status_newtwork === '1' && $status_pluggin === '1') { - $name = array_keys(servers_get_names())[0]; - $id_group = get_parameter('id_group', 4); - $agent_name = get_parameter('agent_name', __('Agent check connectivity')); - - $array_other['data'] = [ - $agent_name, - '', - 2, - $id_group, - 0, - 30, - 30, - 9, - $name, - 0, - 0, - 0, - __('Basic connectivity'), - ]; - - $id_agent = api_set_new_agent(0, '', $array_other, '', true); - if ($id_agent > 0) { - $ip_target = get_parameter('ip_target', '127.0.0.1'); - $basic_network = create_module_basic_network($id_agent, $id_group, $ip_target); - $latency_network = create_module_latency_network($id_agent, $id_group, $ip_target); - $packet_lost = create_module_packet_lost($id_agent, $id_group, $ip_target); - if ($basic_network > 0 && $latency_network > 0 && $packet_lost > 0) { - ui_print_success_message(__('Your check has been created, click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); - } - } else { - ui_print_error_message(__('The Name is not valid for the modules.')); - } - } else { - ui_print_error_message(__('Web server is not enabled.')); - } -} - - -/** - * Create module basic network and return module id. - * - * @param mixed $id_agent Id agent. - * @param mixed $id_group Id group. - * @param mixed $ip_target Ip target. - * - * @return interger Module id. - */ -function create_module_basic_network($id_agent, $id_group, $ip_target) -{ - include_once 'include/functions_modules.php'; - - $array_values = [ - 'id_tipo_modulo' => '6', - 'descripcion' => 'Basic network check (ping)', - 'max' => '0', - 'min' => '0', - 'snmp_oid' => '', - 'snmp_community' => 'public', - 'id_module_group' => $id_group, - 'module_interval' => '300', - 'module_ff_interval' => '0', - 'ip_target' => $ip_target, - 'tcp_port' => '0', - 'tcp_rcv' => '', - 'tcp_send' => '', - 'id_export' => '0', - 'plugin_user' => '', - 'plugin_pass' => '0', - 'plugin_parameter' => '', - 'id_plugin' => '0', - 'post_process' => '0', - 'prediction_module' => '0', - 'max_timeout' => '0', - 'max_retries' => '0', - 'disabled' => '', - 'id_modulo' => '2', - 'custom_id' => '', - 'history_data' => '1', - 'dynamic_interval' => '0', - 'dynamic_max' => '0', - 'dynamic_min' => '0', - 'dynamic_two_tailed' => '0', - 'parent_module_id' => '0', - 'min_warning' => '0', - 'max_warning' => '0', - 'str_warning' => '', - 'min_critical' => '0', - 'max_critical' => '0', - 'str_critical' => '', - 'custom_string_1' => '', - 'custom_string_2' => '', - 'custom_string_3' => '', - 'custom_integer_1' => '0', - 'custom_integer_2' => '0', - 'min_ff_event' => '0', - 'min_ff_event_normal' => '0', - 'min_ff_event_warning' => '0', - 'min_ff_event_critical' => '0', - 'ff_type' => '0', - 'each_ff' => '0', - 'ff_timeout' => '0', - 'unit' => '', - 'macros' => '', - 'quiet' => '0', - 'cps' => '0', - 'critical_instructions' => '', - 'warning_instructions' => '', - 'unknown_instructions' => '', - 'critical_inverse' => '0', - 'warning_inverse' => '0', - 'percentage_critical' => '0', - 'percentage_warning' => '0', - 'cron_interval' => '* * * * *', - 'id_category' => '0', - 'disabled_types_event' => '{\"going_unknown\":0}', - 'module_macros' => 'W10=', - 'warning_time' => '0', - ]; - return modules_create_agent_module($id_agent, 'Basic_Network_Check', $array_values); -} - - -/** - * Create module latency network and return module id. - * - * @param mixed $id_agent Id agent. - * @param mixed $id_group Id group. - * @param mixed $ip_target Ip target. - * - * @return interger Module id. - */ -function create_module_latency_network($id_agent, $id_group, $ip_target) -{ - include_once 'include/functions_modules.php'; - - $array_values = [ - 'id_tipo_modulo' => '7', - 'descripcion' => 'Basic network connectivity check to measure network latency in miliseconds', - 'max' => '0', - 'min' => '0', - 'snmp_oid' => '', - 'snmp_community' => 'public', - 'id_module_group' => $id_group, - 'module_interval' => '300', - 'module_ff_interval' => '0', - 'ip_target' => $ip_target, - 'tcp_port' => '0', - 'tcp_rcv' => '', - 'tcp_send' => '', - 'id_export' => '0', - 'plugin_user' => '', - 'plugin_pass' => '0', - 'plugin_parameter' => '', - 'id_plugin' => '0', - 'post_process' => '0', - 'prediction_module' => '0', - 'max_timeout' => '0', - 'max_retries' => '0', - 'disabled' => '', - 'id_modulo' => '2', - 'custom_id' => '', - 'history_data' => '1', - 'dynamic_interval' => '0', - 'dynamic_max' => '0', - 'dynamic_min' => '0', - 'dynamic_two_tailed' => '1', - 'parent_module_id' => '0', - 'min_warning' => '0', - 'max_warning' => '0', - 'str_warning' => '', - 'min_critical' => '0', - 'max_critical' => '0', - 'str_critical' => '', - 'custom_string_1' => '', - 'custom_string_2' => '', - 'custom_string_3' => '', - 'custom_integer_1' => '0', - 'custom_integer_2' => '0', - 'min_ff_event' => '0', - 'min_ff_event_normal' => '0', - 'min_ff_event_warning' => '0', - 'min_ff_event_critical' => '0', - 'ff_type' => '0', - 'each_ff' => '0', - 'ff_timeout' => '0', - 'unit' => '', - 'macros' => '', - 'quiet' => '0', - 'cps' => '0', - 'critical_instructions' => '', - 'warning_instructions' => '', - 'unknown_instructions' => '', - 'critical_inverse' => '0', - 'warning_inverse' => '0', - 'percentage_critical' => '0', - 'percentage_warning' => '0', - 'cron_interval' => '* * * * *', - 'id_category' => '0', - 'disabled_types_event' => '{\"going_unknown\":0}', - 'module_macros' => 'W10=', - 'warning_time' => '0', - ]; - return modules_create_agent_module($id_agent, 'Basic_Network_Latency', $array_values); -} - - -/** - * Create module packet lost and return module id. - * - * @param mixed $id_agent Id agent. - * @param mixed $id_group Id group. - * @param mixed $ip_target Ip target. - * - * @return interger Module id. - */ -function create_module_packet_lost($id_agent, $id_group, $ip_target) -{ - include_once 'include/functions_modules.php'; - - $array_values = [ - 'id_tipo_modulo' => '1', - 'descripcion' => 'Basic network connectivity check to measure packet loss in %', - 'max' => '0', - 'min' => '0', - 'snmp_oid' => '', - 'snmp_community' => 'public', - 'id_module_group' => $id_group, - 'module_interval' => '300', - 'module_ff_interval' => '0', - 'ip_target' => '', - 'tcp_port' => '0', - 'tcp_rcv' => '', - 'tcp_send' => '', - 'id_export' => '0', - 'plugin_user' => '', - 'plugin_pass' => '0', - 'plugin_parameter' => '', - 'id_plugin' => '9', - 'post_process' => '0', - 'prediction_module' => '0', - 'max_timeout' => '0', - 'max_retries' => '0', - 'disabled' => '', - 'id_modulo' => '4', - 'custom_id' => '', - 'history_data' => '1', - 'dynamic_interval' => '0', - 'dynamic_max' => '0', - 'dynamic_min' => '0', - 'dynamic_two_tailed' => '1', - 'parent_module_id' => '0', - 'min_warning' => '0', - 'max_warning' => '0', - 'str_warning' => '', - 'min_critical' => '0', - 'max_critical' => '0', - 'str_critical' => '', - 'custom_string_1' => '', - 'custom_string_2' => '', - 'custom_string_3' => '', - 'custom_integer_1' => '0', - 'custom_integer_2' => '0', - 'min_ff_event' => '0', - 'min_ff_event_normal' => '0', - 'min_ff_event_warning' => '0', - 'min_ff_event_critical' => '0', - 'ff_type' => '0', - 'each_ff' => '0', - 'ff_timeout' => '0', - 'unit' => '', - 'macros' => '{"1":{"macro":"_field1_","desc":"Test time","help":"","value":"8","hide":""},"2":{"macro":"_field2_","desc":"Target IP","help":"","value":"'.$ip_target.'","hide":""}}', - 'quiet' => '0', - 'cps' => '0', - 'critical_instructions' => '', - 'warning_instructions' => '', - 'unknown_instructions' => '', - 'critical_inverse' => '0', - 'warning_inverse' => '0', - 'percentage_critical' => '0', - 'percentage_warning' => '0', - 'cron_interval' => '* * * * *', - 'id_category' => '0', - 'disabled_types_event' => '{\"going_unknown\":0}', - 'module_macros' => 'W10=', - 'warning_time' => '0', - ]; - return modules_create_agent_module($id_agent, 'Basic_Network_Packetloss', $array_values); -} - - -if ($create_net_scan_dialog) { - ?> - - 0) { - $id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server']; - ui_print_success_message(__('Basic net created and scan in progress. Click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); - } else { - ui_print_error_message(__('Basic net already exists. Click here to view the data')); - } -} - - -/** - * Create module packet lost and return module id. - * - * @param string $ip_target Ip and red mask. - * - * @return interger Module id. - */ -function create_net_scan($ip_target) -{ - global $config; - include_once 'HostDevices.class.php'; - $HostDevices = new HostDevices(1); - $id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server']; - - $_POST = [ - 'page' => '1', - 'interval_manual_defined' => '1', - 'interval_select' => '-1', - 'interval_text' => '0', - 'interval' => '0', - 'interval_units' => '1', - 'taskname' => __('Basic network'), - 'id_recon_server' => $id_recon_server, - 'network' => $ip_target, - 'id_group' => '8', - 'comment' => __('Created on welcome'), - ]; - $task_created = $HostDevices->parseNetScan(); - if ($task_created === true) { - $HostDevicesFinal = new HostDevices(2); - $_POST = [ - 'task' => $HostDevices->task['id_rt'], - 'page' => '2', - 'recon_ports' => '', - 'auto_monitor' => 'on', - 'id_network_profile' => ['0' => '2'], - 'review_results' => 'on', - 'review_limited' => '0', - 'snmp_enabled' => 'on', - 'snmp_version' => '1', - 'snmp_skip_non_enabled_ifs' => 'on', - 'community' => '', - 'snmp_context' => '', - 'snmp_auth_user' => '', - 'snmp_security_level' => 'authNoPriv', - 'snmp_auth_method' => 'MD5', - 'snmp_auth_pass' => '', - 'snmp_privacy_method' => 'AES', - 'snmp_privacy_pass' => '', - 'os_detect' => 'on', - 'resolve_names' => 'on', - 'parent_detection' => 'on', - 'parent_recursion' => 'on', - 'vlan_enabled' => 'on', - ]; - - $task_final_created = $HostDevicesFinal->parseNetScan(); - if ($task_final_created === true) { - $net_scan_id = $HostDevices->task['id_rt']; - unset($HostDevices, $HostDevicesFinal); - return $net_scan_id; - } - } else { - return 0; - } -} - - -if ($create_alert_mail_dialog) { - ?> - - 'Email to '.$config['id_user']], 'id')['id']; - if (!$id_action) { - $al_action = alerts_get_alert_action($id); - $id_action = alerts_clone_alert_action(1, $al_action['id_group'], 'Email to '.$config['id_user']); - } - - $id_alert_template = get_parameter('id_condition', 0); - $id_agent_module = get_parameter('id_agent_module', 0); - - $exist = db_get_value_sql( - sprintf( - 'SELECT COUNT(id) - FROM talert_template_modules - WHERE id_agent_module = %d - AND id_alert_template = %d - AND id_policy_alerts = 0 - ', - $id_agent_module, - $id_alert_template - ) - ); - - if ($exist > 0) { - ui_print_error_message(__('Alert already exists. Click here to view the data')); - } else { - $id = alerts_create_alert_agent_module($id_agent_module, $id_alert_template); - if ($id !== false) { - $values = []; - $values['fires_min'] = (int) get_parameter('fires_min'); - $values['fires_max'] = (int) get_parameter('fires_max'); - $values['module_action_threshold'] = (int) 300; - - $alert_created = alerts_add_alert_agent_module_action($id, $id_action, $values); - } - } - - if ($alert_created === true) { - ui_print_success_message(__('Congratulations, you have already created a simple alert. You can see it. Pandora FMS alerts are very flexible, you can do many more things with them, we recommend you to read the documentation for more information. You can create advanced alerts from here.')); - } -} \ No newline at end of file diff --git a/pandora_console/include/ajax/task_to_perform.php b/pandora_console/include/ajax/task_to_perform.php new file mode 100644 index 0000000000..c889c37f8d --- /dev/null +++ b/pandora_console/include/ajax/task_to_perform.php @@ -0,0 +1,181 @@ + SERVER_TYPE_WEB], 'status')['status']; + if ($status_webserver === '1') { + $name = array_keys(servers_get_names())[0]; + $id_group = get_parameter('id_group', 4); + + $array_other['data'] = [ + 'Web monitoring', + '', + 2, + $id_group, + 0, + 30, + 30, + 9, + $name, + 0, + 0, + 0, + __('Agent Web monitoring created on welcome'), + ]; + + $id_agent = api_set_new_agent(0, '', $array_other, '', true); + if ($id_agent > 0) { + $module_name = get_parameter('module_name', 'Web_monitoring_module'); + $text_to_search = get_parameter('text_to_search', ''); + $url_goliat = get_parameter('url_goliat', 'https://pandorafms.com/en/'); + $module_latency = create_module_latency_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search); + $module_status = create_module_status_goliat($id_agent, $module_name, $id_group, $url_goliat, $text_to_search); + if ($module_latency > 0 && $module_status > 0) { + ui_print_success_message(__('Your check has been created, click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); + } + } else { + ui_print_error_message(__('The Name is not valid for the modules.')); + } + } else { + ui_print_error_message(__('Web server is not enabled.')); + } +} + +if ($check_connectivity) { + include_once '../functions_api.php'; + include_once '../functions_servers.php'; + + $status_newtwork = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_NETWORK], 'status')['status']; + $status_pluggin = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_PLUGIN], 'status')['status']; + if ($status_newtwork === '1' && $status_pluggin === '1') { + $name = array_keys(servers_get_names())[0]; + $id_group = get_parameter('id_group', 4); + $agent_name = get_parameter('agent_name', __('Agent check connectivity')); + + $array_other['data'] = [ + $agent_name, + '', + 2, + $id_group, + 0, + 30, + 30, + 9, + $name, + 0, + 0, + 0, + __('Basic connectivity'), + ]; + + $id_agent = api_set_new_agent(0, '', $array_other, '', true); + if ($id_agent > 0) { + $ip_target = get_parameter('ip_target', '127.0.0.1'); + $basic_network = create_module_basic_network($id_agent, $id_group, $ip_target); + $latency_network = create_module_latency_network($id_agent, $id_group, $ip_target); + $packet_lost = create_module_packet_lost($id_agent, $id_group, $ip_target); + if ($basic_network > 0 && $latency_network > 0 && $packet_lost > 0) { + ui_print_success_message(__('Your check has been created, click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); + } + } else { + ui_print_error_message(__('The Name is not valid for the modules.')); + } + } else { + ui_print_error_message(__('Web server is not enabled.')); + } +} + +if ($create_net_scan) { + $ip_target = get_parameter('ip_target', '192.168.10.0/24'); + $id_net_scan = create_net_scan($ip_target); + if ($id_net_scan > 0) { + $id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server']; + ui_print_success_message(__('Basic net created and scan in progress. Click here to view the data. Please note that it may take a few seconds to see data if your server is busy')); + } else { + ui_print_error_message(__('Basic net already exists. Click here to view the data')); + } +} + +if ($create_mail_alert) { + include_once '../functions_alerts.php'; + $id_action = db_get_row_filter('talert_actions', ['name' => 'Email to '.$config['id_user']], 'id')['id']; + if (!$id_action) { + $al_action = alerts_get_alert_action($id); + $id_action = alerts_clone_alert_action(1, $al_action['id_group'], 'Email to '.$config['id_user']); + } + + $id_alert_template = get_parameter('id_condition', 0); + $id_agent_module = get_parameter('id_agent_module', 0); + + $exist = db_get_value_sql( + sprintf( + 'SELECT COUNT(id) + FROM talert_template_modules + WHERE id_agent_module = %d + AND id_alert_template = %d + AND id_policy_alerts = 0 + ', + $id_agent_module, + $id_alert_template + ) + ); + + if ($exist > 0) { + ui_print_error_message(__('Alert already exists. Click here to view the data')); + } else { + $id = alerts_create_alert_agent_module($id_agent_module, $id_alert_template); + if ($id !== false) { + $values = []; + $values['fires_min'] = (int) get_parameter('fires_min'); + $values['fires_max'] = (int) get_parameter('fires_max'); + $values['module_action_threshold'] = (int) 300; + + $alert_created = alerts_add_alert_agent_module_action($id, $id_action, $values); + } + } + + if ($alert_created === true) { + ui_print_success_message(__('Congratulations, you have already created a simple alert. You can see it. Pandora FMS alerts are very flexible, you can do many more things with them, we recommend you to read the documentation for more information. You can create advanced alerts from here.')); + } +} diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index 339d72afd8..be86c7deb6 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -374,34 +374,37 @@ class WelcomeWindow extends Wizard $flag_su = false; $flag_lv = false; - $btn_update_manager_class = ' pending'; - $btn_configure_mail_class = ' pending'; - $btn_servers_up_class = ' pending'; - $btn_license_valid_class = ' pending'; + $btn_update_manager_class = ' fail'; + $btn_configure_mail_class = ' fail'; + $btn_servers_up_class = ' fail'; + $btn_license_valid_class = ' fail'; $li_update_manager_class = 'row_grey'; $li_configure_mail_class = 'row_grey'; $li_servers_up_class = 'row_grey'; $li_license_valid_class = 'row_grey'; - if ($config['pandora_uid'] === 'ONLINE') { - $btn_update_manager_class = ' completed'; + include_once 'include/functions_update_manager.php'; + if (update_manager_verify_registration()) { + $btn_update_manager_class = ''; $li_update_manager_class = 'row_green'; $flag_um = true; } if (empty($config['welcome_mail_configured']) === false) { - $btn_configure_mail_class = ' completed'; + $btn_configure_mail_class = ''; + $li_configure_mail_class = 'row_green'; $flag_cm = true; } include_once 'include/functions_servers.php'; if (check_all_servers_up() === true) { - $btn_servers_up_class = ' completed'; + $btn_servers_up_class = ''; $li_servers_up_class = 'row_green'; $flag_su = true; } + $show_license = true; if (enterprise_installed()) { $license_valid = true; enterprise_include_once('include/functions_license.php'); @@ -412,10 +415,12 @@ class WelcomeWindow extends Wizard } if ($license_valid === true) { - $btn_license_valid_class = ' completed'; + $btn_license_valid_class = ''; $li_license_valid_class = 'row_green'; $flag_lv = true; } + } else { + $show_license = false; } $inputs[] = [ @@ -425,7 +430,7 @@ class WelcomeWindow extends Wizard 'direct' => 1, 'block_content' => [ [ - 'label' => __('Mini-diagnosis'), + 'label' => __('Post-installation status diagnostic'), 'arguments' => [ 'class' => 'first_lbl', 'name' => 'lbl_diagnosis', @@ -443,7 +448,7 @@ class WelcomeWindow extends Wizard 'direct' => 1, 'block_content' => [ [ - 'label' => __('Verification update manager register'), + 'label' => __('Warp Update registration'), 'arguments' => [ 'class' => 'first_lbl', 'name' => 'lbl_update_manager', @@ -471,7 +476,7 @@ class WelcomeWindow extends Wizard 'direct' => 1, 'block_content' => [ [ - 'label' => __('Please ensure mail configuration matches your needs'), + 'label' => __('Default mail to send alerts'), 'arguments' => [ 'class' => 'first_lbl', 'name' => 'lbl_create_agent', @@ -499,7 +504,7 @@ class WelcomeWindow extends Wizard 'direct' => 1, 'block_content' => [ [ - 'label' => __('All servers up'), + 'label' => __('All servers running'), 'arguments' => [ 'class' => 'first_lbl', 'name' => 'lbl_servers_up', @@ -520,36 +525,37 @@ class WelcomeWindow extends Wizard ], ], ]; - $inputs[] = [ - 'wrapper' => 'div', - 'block_id' => 'div_license_valid', - 'class' => 'hole flex-row flex-items-center w98p '.$li_license_valid_class, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Valid license verification and expiration greater than 30 days'), - 'arguments' => [ - 'class' => 'first_lbl', - 'name' => 'lbl_license_valid', - 'id' => 'lbl_license_valid', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => (empty($btn_license_valid_class) === false) ? $btn_license_valid_class : 'invisible_important', - 'mode' => 'onlyIcon', + if ($show_license) { + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_license_valid', + 'class' => 'hole flex-row flex-items-center w98p '.$li_license_valid_class, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Enterprise licence valid'), + 'arguments' => [ + 'class' => 'first_lbl', + 'name' => 'lbl_license_valid', + 'id' => 'lbl_license_valid', + ], + ], + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => (empty($btn_license_valid_class) === false) ? $btn_license_valid_class : 'invisible_important', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_license_valid_conf', + 'id' => 'btn_license_valid_conf', ], - 'name' => 'btn_license_valid_conf', - 'id' => 'btn_license_valid_conf', ], ], - ], - ]; + ]; + } } else { - $key = db_get_value_sql('SELECT `value` FROM tupdate_settings WHERE `key` = "customer_key"'); $inputs[] = [ 'wrapper' => 'div', 'block_id' => 'div_all_correct', @@ -557,7 +563,7 @@ class WelcomeWindow extends Wizard 'direct' => 1, 'block_content' => [ [ - 'label' => __('It seems that your Pandora FMS is working correctly and registered with ID:
#'.$key.'.
For more information use the self-diagnosis tool.'), + 'label' => __('It seems that your Pandora FMS is working correctly and registered with ID:
#'.$config['pandora_uid'].'.
For more information use the self-diagnosis tool.'), 'arguments' => [ 'class' => 'first_lbl w98p', 'name' => 'lbl_all_correct', @@ -591,159 +597,39 @@ class WelcomeWindow extends Wizard ], ]; + $fields['wizard_agent'] = __('Agent installation wizard'); + $fields['check_web'] = __('Create WEB monitoring'); + $fields['check_connectivity'] = __('Create network monitoring'); + $fields['check_net'] = __('Discover my network'); + $fields['check_mail_alert'] = __('Create email alert'); + $inputs[] = [ 'wrapper' => 'div', 'block_id' => 'div_wizard_agent', - 'class' => 'hole flex-row flex-items-center w98p row_grey', + 'class' => 'flex space-between w98p', 'direct' => 1, 'block_content' => [ [ - 'label' => __('Wizard install agent'), 'arguments' => [ - 'class' => 'first_lbl row_grey', - 'name' => 'lbl_wizard_agent', - 'id' => 'lbl_wizard_agent', + 'type' => 'select', + 'fields' => $fields, + 'name' => 'task_to_perform', + 'selected' => '', + 'return' => true, + 'nothing' => \__('Please select one'), + 'nothing_value' => '', ], ], [ 'arguments' => [ - 'label' => '', + 'label' => __('Let`s do it!'), 'type' => 'button', 'attributes' => [ - 'class' => 'completed', - 'mode' => 'onlyIcon', + 'class' => 'secondary', + 'icon' => 'next', ], - 'name' => 'btn_wizard_agent_conf', - 'id' => 'btn_wizard_agent_conf', - ], - ], - ], - ]; - - $status_webserver = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_WEB], 'status')['status']; - $check_web_color = 'row_grey'; - if ($status_webserver === '1') { - $check_web_color = 'row_green'; - } - - $inputs[] = [ - 'wrapper' => 'div', - 'block_id' => 'div_check_web', - 'class' => 'hole flex-row flex-items-center w98p '.$check_web_color, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Create check web'), - 'arguments' => [ - 'class' => 'first_lbl row_grey', - 'name' => 'lbl_check_web', - 'id' => 'lbl_check_web', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => 'completed', - 'mode' => 'onlyIcon', - ], - 'name' => 'btn_check_web_conf', - 'id' => 'btn_check_web_conf', - ], - ], - ], - ]; - - $status_newtwork = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_NETWORK], 'status')['status']; - $status_pluggin = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_PLUGIN], 'status')['status']; - $check_connectivity = 'row_grey'; - if ($status_newtwork === '1' && $status_pluggin === '1') { - $check_connectivity = 'row_green'; - } - - $inputs[] = [ - 'wrapper' => 'div', - 'block_id' => 'div_check_connectivity', - 'class' => 'hole flex-row flex-items-center w98p '.$check_connectivity, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Create basic connectivity'), - 'arguments' => [ - 'class' => 'first_lbl row_grey', - 'name' => 'lbl_check_connectivity', - 'id' => 'lbl_check_connectivity', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => 'completed', - 'mode' => 'onlyIcon', - ], - 'name' => 'btn_check_connectivity_conf', - 'id' => 'btn_check_connectivity_conf', - ], - ], - ], - ]; - - $inputs[] = [ - 'wrapper' => 'div', - 'block_id' => 'div_check_net', - 'class' => 'hole flex-row flex-items-center w98p row_green', - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Create basic net'), - 'arguments' => [ - 'class' => 'first_lbl row_grey', - 'name' => 'lbl_check_net', - 'id' => 'lbl_check_net', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => 'completed', - 'mode' => 'onlyIcon', - ], - 'name' => 'btn_check_net_conf', - 'id' => 'btn_check_net_conf', - ], - ], - ], - ]; - - $inputs[] = [ - 'wrapper' => 'div', - 'block_id' => 'div_check_mail_alert', - 'class' => 'hole flex-row flex-items-center w98p row_green', - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Create Alert Mail'), - 'arguments' => [ - 'class' => 'first_lbl row_grey', - 'name' => 'lbl_check_mail_alert', - 'id' => 'lbl_check_mail_alert', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => 'completed', - 'mode' => 'onlyIcon', - ], - 'name' => 'btn_check_mail_alert_conf', - 'id' => 'btn_check_mail_alert_conf', + 'name' => 'go_wizard', + 'id' => 'go_wizard', ], ], ], @@ -759,7 +645,233 @@ class WelcomeWindow extends Wizard $output .= $this->loadJS($flag_task); echo $output; + ?> + + + + + // Task to do buttons. - document.getElementById("button-btn_wizard_agent_conf").setAttribute( - 'onclick', - 'deployAgent()' - ); + $('#button-go_wizard').click(function(){ + if ($('#task_to_perform :selected').val() === '') { + alert(""); + } else { + switch($('#task_to_perform :selected').val()) { + case 'wizard_agent': + deployAgent(); + break; + case 'check_mail_alert': + openCreateAlertMailDialog(); + break; + case 'check_connectivity': + openCreateConnectivityDialog(); + break; + case 'check_web': + openCreateModulesDialog(); + break; + case 'check_net': + openCreateBasicNetDialog(); + break; + }; + } + }); - document.getElementById("button-btn_check_web_conf").setAttribute( - 'onclick', - 'openCreateModulesDialog()' - ); + // Task to do buttons. + $('#button-go_wizard').click(function(){ + if ($('#task_to_perform :selected').val() === '') { + alert(""); + } else { + switch($('#task_to_perform :selected').val()) { + case 'wizard_agent': + deployAgent(); + break; + case 'check_mail_alert': + openCreateAlertMailDialog(); + break; + case 'check_connectivity': + openCreateConnectivityDialog(); + break; + case 'check_web': + openCreateModulesDialog(); + break; + case 'check_net': + openCreateBasicNetDialog(); + break; + }; + } + }); - document.getElementById("button-btn_check_connectivity_conf").setAttribute( - 'onclick', - 'openCreateConnectivityDialog()' - ); + // Task to do buttons. + $('#button-go_wizard').click(function(){ + if ($('#task_to_perform :selected').val() === '') { + alert(""); + } else { + switch($('#task_to_perform :selected').val()) { + case 'wizard_agent': + deployAgent(); + break; + case 'check_mail_alert': + openCreateAlertMailDialog(); + break; + case 'check_connectivity': + openCreateConnectivityDialog(); + break; + case 'check_web': + openCreateModulesDialog(); + break; + case 'check_net': + openCreateBasicNetDialog(); + break; + }; + } + }); - document.getElementById("button-btn_check_net_conf").setAttribute( - 'onclick', - 'openCreateBasicNetDialog()' - ); - - document.getElementById("button-btn_check_mail_alert_conf").setAttribute( - 'onclick', - 'openCreateAlertMailDialog()' - ); + // Task to do buttons. + $('#button-go_wizard').click(function(){ + if ($('#task_to_perform :selected').val() === '') { + alert(""); + } else { + switch($('#task_to_perform :selected').val()) { + case 'wizard_agent': + deployAgent(); + break; + case 'check_mail_alert': + openCreateAlertMailDialog(); + break; + case 'check_connectivity': + openCreateConnectivityDialog(); + break; + case 'check_web': + openCreateModulesDialog(); + break; + case 'check_net': + openCreateBasicNetDialog(); + break; + }; + } + }); function configureUpdateManager() { window.location = ''; @@ -1052,29 +1238,173 @@ class WelcomeWindow extends Wizard window.location = ''; } + // Task to do actions. function deployAgent() { window.location = ''; } function openCreateModulesDialog() { - window.location = ''; + $('#dialog_goliat').dialog({ + title: '', + resizable: true, + draggable: true, + modal: true, + close: false, + height: 375, + width: 480, + overlay: { + opacity: 0.5, + background: "black" + } + }) + .show(); } function openCreateConnectivityDialog() { - window.location = ''; + $('#dialog_connectivity').dialog({ + title: '', + resizable: true, + draggable: true, + modal: true, + close: false, + height: 350, + width: 480, + overlay: { + opacity: 0.5, + background: "black" + } + }) + .show(); } function openCreateBasicNetDialog() { - window.location = ''; + $('#dialog_basic_net').dialog({ + title: '', + resizable: true, + draggable: true, + modal: true, + close: false, + height: 200, + width: 480, + overlay: { + opacity: 0.5, + background: "black" + } + }) + .show(); } function openCreateAlertMailDialog() { - window.location = ''; + $('#dialog_alert_mail').dialog({ + title: '', + resizable: true, + draggable: true, + modal: true, + close: false, + height: 350, + width: 480, + overlay: { + opacity: 0.5, + background: "black" + } + }) + .show(); } - function cierre_dialog(){ - this.dialog("close"); - } + $('#button-create_goliat').click(function(){ + $.ajax({ + async: false, + type: "POST", + url: "include/ajax/task_to_perform.php", + data: { + check_web: 1, + id_group: $('#id_group :selected').val(), + module_name: $('#text-module_name').val(), + text_to_search: $('#text-text_to_search').val(), + url_goliat: $('#text-url_goliat').val(), + }, + success: function(data) { + if (data !== 0) { + data = data.replace(/(\r\n|\n|\r)/gm, ""); + console.log(data); + $('body').append(data); + // Close dialog + $('.ui-dialog-titlebar-close').trigger('click'); + return false; + } + } + }); + }); + + $('#button-create_conectivity').click(function(){ + $.ajax({ + async: false, + type: "POST", + url: "include/ajax/task_to_perform.php", + data: { + check_connectivity: 1, + id_group: $('#id_group :selected').val(), + ip_target: $('#text-ip_target').val(), + agent_name: $('#text-agent_name').val(), + }, + success: function(data) { + if (data !== 0) { + data = data.replace(/(\r\n|\n|\r)/gm, ""); + console.log(data); + $('body').append(data); + // Close dialog + $('.ui-dialog-titlebar-close').trigger('click'); + return false; + } + } + }); + }); + + $('#button-basic_net').click(function(){ + $.ajax({ + async: false, + type: "POST", + url: "include/ajax/task_to_perform.php", + data: { + create_net_scan: 1, + ip_target: $('#text-ip_target').val(), + }, + success: function(data) { + if (data !== 0) { + data = data.replace(/(\r\n|\n|\r)/gm, ""); + console.log(data); + $('body').append(data); + // Close dialog + $('.ui-dialog-titlebar-close').trigger('click'); + return false; + } + } + }); + }); + + $('#button-alert_mail').click(function(){ + $.ajax({ + async: false, + type: "POST", + url: "include/ajax/task_to_perform.php", + data: { + create_mail_alert: 1, + id_condition: $('#text-ip_target').val(), + id_agent_module: $('#text-ip_target').val(), + }, + success: function(data) { + if (data !== 0) { + data = data.replace(/(\r\n|\n|\r)/gm, ""); + console.log(data); + $('body').append(data); + // Close dialog + $('.ui-dialog-titlebar-close').trigger('click'); + return false; + } + } + }); + }); + '.$sub['text'].'
'; + } else if (isset($sub['subtype']) && $sub['subtype'] == 'nolink_no_arrow') { + $submenu_output .= ''; } else if (isset($sub['subtype']) && $sub['subtype'] == 'new_blank') { $submenu_output .= '
'.$sub['text'].'
'; } else { diff --git a/pandora_console/include/functions_welcome_wizard.php b/pandora_console/include/functions_welcome_wizard.php new file mode 100644 index 0000000000..6993f16224 --- /dev/null +++ b/pandora_console/include/functions_welcome_wizard.php @@ -0,0 +1,537 @@ + '30', + 'descripcion' => '', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => '', + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => 'task_begin +get '.$url_search.' +resource 1 +'.$str_search.' +task_end', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '7', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '0', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, $module_name.'_latency', $array_values); +} + + +/** + * Create_module_status_goliat and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $module_name Module name. + * @param mixed $id_group Id group. + * @param mixed $url_search Url to search. + * @param mixed $string_search Text to search. + * + * @return interger Module id. + */ +function create_module_status_goliat($id_agent, $module_name, $id_group, $url_search, $string_search='') +{ + if ($string_search !== '') { + $str_search = 'check_string '.$string_search.' '; + } + + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '31', + 'descripcion' => '', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => '', + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => 'task_begin +get '.$url_search.' +resource 1 +'.$str_search.' +task_end', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '7', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '0', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, $module_name.'_status', $array_values); +} + + +/** + * Create module basic network and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $id_group Id group. + * @param mixed $ip_target Ip target. + * + * @return interger Module id. + */ +function create_module_basic_network($id_agent, $id_group, $ip_target) +{ + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '6', + 'descripcion' => 'Basic network check (ping)', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => $ip_target, + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => '', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '2', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '0', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, 'Basic_Network_Check', $array_values); +} + + +/** + * Create module latency network and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $id_group Id group. + * @param mixed $ip_target Ip target. + * + * @return interger Module id. + */ +function create_module_latency_network($id_agent, $id_group, $ip_target) +{ + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '7', + 'descripcion' => 'Basic network connectivity check to measure network latency in miliseconds', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => $ip_target, + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => '', + 'id_plugin' => '0', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '2', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '1', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, 'Basic_Network_Latency', $array_values); +} + + +/** + * Create module packet lost and return module id. + * + * @param mixed $id_agent Id agent. + * @param mixed $id_group Id group. + * @param mixed $ip_target Ip target. + * + * @return interger Module id. + */ +function create_module_packet_lost($id_agent, $id_group, $ip_target) +{ + include_once 'include/functions_modules.php'; + + $array_values = [ + 'id_tipo_modulo' => '1', + 'descripcion' => 'Basic network connectivity check to measure packet loss in %', + 'max' => '0', + 'min' => '0', + 'snmp_oid' => '', + 'snmp_community' => 'public', + 'id_module_group' => $id_group, + 'module_interval' => '300', + 'module_ff_interval' => '0', + 'ip_target' => '', + 'tcp_port' => '0', + 'tcp_rcv' => '', + 'tcp_send' => '', + 'id_export' => '0', + 'plugin_user' => '', + 'plugin_pass' => '0', + 'plugin_parameter' => '', + 'id_plugin' => '9', + 'post_process' => '0', + 'prediction_module' => '0', + 'max_timeout' => '0', + 'max_retries' => '0', + 'disabled' => '', + 'id_modulo' => '4', + 'custom_id' => '', + 'history_data' => '1', + 'dynamic_interval' => '0', + 'dynamic_max' => '0', + 'dynamic_min' => '0', + 'dynamic_two_tailed' => '1', + 'parent_module_id' => '0', + 'min_warning' => '0', + 'max_warning' => '0', + 'str_warning' => '', + 'min_critical' => '0', + 'max_critical' => '0', + 'str_critical' => '', + 'custom_string_1' => '', + 'custom_string_2' => '', + 'custom_string_3' => '', + 'custom_integer_1' => '0', + 'custom_integer_2' => '0', + 'min_ff_event' => '0', + 'min_ff_event_normal' => '0', + 'min_ff_event_warning' => '0', + 'min_ff_event_critical' => '0', + 'ff_type' => '0', + 'each_ff' => '0', + 'ff_timeout' => '0', + 'unit' => '', + 'macros' => '{"1":{"macro":"_field1_","desc":"Test time","help":"","value":"8","hide":""},"2":{"macro":"_field2_","desc":"Target IP","help":"","value":"'.$ip_target.'","hide":""}}', + 'quiet' => '0', + 'cps' => '0', + 'critical_instructions' => '', + 'warning_instructions' => '', + 'unknown_instructions' => '', + 'critical_inverse' => '0', + 'warning_inverse' => '0', + 'percentage_critical' => '0', + 'percentage_warning' => '0', + 'cron_interval' => '* * * * *', + 'id_category' => '0', + 'disabled_types_event' => '{\"going_unknown\":0}', + 'module_macros' => 'W10=', + 'warning_time' => '0', + ]; + return modules_create_agent_module($id_agent, 'Basic_Network_Packetloss', $array_values); +} + + +/** + * Create module packet lost and return module id. + * + * @param string $ip_target Ip and red mask. + * + * @return interger Module id. + */ +function create_net_scan($ip_target) +{ + global $config; + include_once 'HostDevices.class.php'; + $HostDevices = new HostDevices(1); + $id_recon_server = db_get_row_filter('tserver', ['server_type' => SERVER_TYPE_DISCOVERY], 'id_server')['id_server']; + + $_POST = [ + 'page' => '1', + 'interval_manual_defined' => '1', + 'interval_select' => '-1', + 'interval_text' => '0', + 'interval' => '0', + 'interval_units' => '1', + 'taskname' => __('Basic network'), + 'id_recon_server' => $id_recon_server, + 'network' => $ip_target, + 'id_group' => '8', + 'comment' => __('Created on welcome'), + ]; + $task_created = $HostDevices->parseNetScan(); + if ($task_created === true) { + $HostDevicesFinal = new HostDevices(2); + $_POST = [ + 'task' => $HostDevices->task['id_rt'], + 'page' => '2', + 'recon_ports' => '', + 'auto_monitor' => 'on', + 'id_network_profile' => ['0' => '2'], + 'review_results' => 'on', + 'review_limited' => '0', + 'snmp_enabled' => 'on', + 'snmp_version' => '1', + 'snmp_skip_non_enabled_ifs' => 'on', + 'community' => '', + 'snmp_context' => '', + 'snmp_auth_user' => '', + 'snmp_security_level' => 'authNoPriv', + 'snmp_auth_method' => 'MD5', + 'snmp_auth_pass' => '', + 'snmp_privacy_method' => 'AES', + 'snmp_privacy_pass' => '', + 'os_detect' => 'on', + 'resolve_names' => 'on', + 'parent_detection' => 'on', + 'parent_recursion' => 'on', + 'vlan_enabled' => 'on', + ]; + + $task_final_created = $HostDevicesFinal->parseNetScan(); + if ($task_final_created === true) { + $net_scan_id = $HostDevices->task['id_rt']; + unset($HostDevices, $HostDevicesFinal); + return $net_scan_id; + } + } else { + return 0; + } +} diff --git a/pandora_console/include/styles/new_installation_welcome_window.css b/pandora_console/include/styles/new_installation_welcome_window.css index 0dbdcd5203..6d354b0c33 100644 --- a/pandora_console/include/styles/new_installation_welcome_window.css +++ b/pandora_console/include/styles/new_installation_welcome_window.css @@ -88,7 +88,8 @@ } #li-div_diagnosis, -#li-div_task_todo { +#li-div_task_todo, +#li-div_wizard_agent { border-left: unset !important; } @@ -96,3 +97,18 @@ #div_task_todo > label { font-weight: bold; } + +button.buttonButton.onlyIcon.fail, +button.submitButton.onlyIcon.fail { + mask: url(../../images/fail@svg.svg) no-repeat center / contain; + -webkit-mask: url(../../images/fail@svg.svg) no-repeat center / contain; +} + +.select2-container .select2-container--default .select2-container--open { + z-index: 2000; +} + +#div_wizard_agent > .select2 { + width: 75% !important; + max-width: 75% !important; +} diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index adf1325b07..01ba592d97 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -11841,10 +11841,6 @@ span.help_icon_15px > img { height: 15px !important; } -.select2-dropdown { - z-index: 1116 !important; -} - .icon_connection_check { width: 65px !important; height: 65px !important; diff --git a/pandora_console/include/styles/select2.min.css b/pandora_console/include/styles/select2.min.css index ad21d16958..9d81e83c30 100644 --- a/pandora_console/include/styles/select2.min.css +++ b/pandora_console/include/styles/select2.min.css @@ -71,7 +71,7 @@ position: absolute; left: -100000px; width: 100%; - z-index: 1115; + z-index: 1118; } .select2-results { display: block; From 0b3f23f137ce45d35a288f1b58ff8199c66dfc95 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 5 Jun 2023 12:45:37 +0200 Subject: [PATCH 079/268] #11465 fixed agent module widget when server is restarted --- pandora_console/include/functions_modules.php | 4 + .../lib/Dashboard/Widgets/agent_module.php | 92 +++++++++++++++++-- 2 files changed, 88 insertions(+), 8 deletions(-) diff --git a/pandora_console/include/functions_modules.php b/pandora_console/include/functions_modules.php index 26e63c5975..96f4f52447 100755 --- a/pandora_console/include/functions_modules.php +++ b/pandora_console/include/functions_modules.php @@ -3676,6 +3676,10 @@ function get_modules_agents( implode(',', $id_agents) ) ); + + if ($rows === false) { + $rows = []; + } } else { $rows = []; } diff --git a/pandora_console/include/lib/Dashboard/Widgets/agent_module.php b/pandora_console/include/lib/Dashboard/Widgets/agent_module.php index 02368a42c7..ddbb3689e8 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/agent_module.php +++ b/pandora_console/include/lib/Dashboard/Widgets/agent_module.php @@ -292,6 +292,10 @@ class AgentModuleWidget extends Widget } } + if (is_metaconsole() === true) { + $this->values['mAgents'] = $this->getIdCacheAgent($this->values['mAgents']); + } + $inputs[] = [ 'class' => 'flex flex-row', 'id' => 'select_multiple_modules_filtered', @@ -315,6 +319,65 @@ class AgentModuleWidget extends Widget } + /** + * Return array with the real id agent and server. + * + * @param string $id_agents_cache String with the agents cache id. + * + * @return string $agents_servers with the real id agent and server. + */ + public function getRealIdAgentNode($id_agents_cache) + { + $agents_servers = []; + $target_agents = explode(',', $id_agents_cache); + foreach ($target_agents as $agent_id) { + $id_agente = $agent_id; + $tmeta_agent = db_get_row_filter( + 'tmetaconsole_agent', + ['id_agente' => $id_agente] + ); + + $id_agente = $tmeta_agent['id_tagente']; + $tserver = $tmeta_agent['id_tmetaconsole_setup']; + $agents_servers[] = $tserver.'|'.$id_agente; + } + + return implode(',', $agents_servers); + } + + + /** + * Return string with the cache id agent in metaconsole. + * + * @param string $id_agents String with the agents and server id. + * + * @return string $cache_id_agents with the cache id agent. + */ + public function getIdCacheAgent($id_agents) + { + $target_agents = explode(',', $id_agents); + $cache_id_agents = []; + foreach ($target_agents as $agent_id) { + if (str_contains($agent_id, '|') === false) { + $cache_id_agents[] = $agent_id; + continue; + } + + $server_agent = explode('|', $agent_id); + $tmeta_agent = db_get_row_filter( + 'tmetaconsole_agent', + [ + 'id_tagente' => $server_agent[1], + 'id_tmetaconsole_setup' => $server_agent[0], + ] + ); + $cache_id_agents[] = $tmeta_agent['id_agente']; + } + + return implode(',', $cache_id_agents); + } + + /** * Get Post for widget. * @@ -341,6 +404,10 @@ class AgentModuleWidget extends Widget $values['mAgents'] = \get_parameter( 'filtered-module-agents-'.$this->cellId ); + if (is_metaconsole() === true) { + $values['mAgents'] = $this->getRealIdAgentNode($values['mAgents']); + } + $values['mShowCommonModules'] = \get_parameter( 'filtered-module-show-common-modules-'.$this->cellId ); @@ -697,15 +764,24 @@ class AgentModuleWidget extends Widget $target_agents = explode(',', $this->values['mAgents']); foreach ($target_agents as $agent_id) { try { - $id_agente = $agent_id; - if ((bool) is_metaconsole() === true) { - $tmeta_agent = db_get_row_filter( - 'tmetaconsole_agent', - [ 'id_agente' => $id_agente ] - ); + if (is_metaconsole() === true && str_contains($agent_id, '|') === true) { + $server_agent = explode('|', $agent_id); + } else { + $id_agente = $agent_id; + } - $id_agente = $tmeta_agent['id_tagente']; - $tserver = $tmeta_agent['id_tmetaconsole_setup']; + if ((bool) is_metaconsole() === true) { + if (isset($server_agent) === true) { + $id_agente = $server_agent[1]; + $tserver = $server_agent[0]; + } else { + $tmeta_agent = db_get_row_filter( + 'tmetaconsole_agent', + [ 'id_agente' => $id_agente ] + ); + $id_agente = $tmeta_agent['id_tagente']; + $tserver = $tmeta_agent['id_tmetaconsole_setup']; + } if (metaconsole_connect(null, $tserver) !== NOERR) { continue; From 823817e22f843f28db3917b2ebe3e0f7ade899bc Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 5 Jun 2023 13:01:16 +0200 Subject: [PATCH 080/268] #11447 add io_safe_output --- pandora_console/godmode/agentes/agent_manager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/godmode/agentes/agent_manager.php b/pandora_console/godmode/agentes/agent_manager.php index e2e9db7806..ad810206e3 100644 --- a/pandora_console/godmode/agentes/agent_manager.php +++ b/pandora_console/godmode/agentes/agent_manager.php @@ -965,7 +965,7 @@ foreach ($fields as $field) { true ); } else if ($field['is_link_enabled']) { - list($link_text, $link_url) = json_decode($custom_value, true); + list($link_text, $link_url) = json_decode(io_safe_output($custom_value), true); if (json_last_error() !== JSON_ERROR_NONE) { $link_text = ''; From 068b19a82f0d98d8ef56df7bd7944f0c5f22a606 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 5 Jun 2023 13:28:37 +0200 Subject: [PATCH 081/268] #10598 fix autocomplete inside dialog --- pandora_console/include/class/WelcomeWindow.class.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index be86c7deb6..938dfde1a2 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -1309,6 +1309,10 @@ class WelcomeWindow extends Wizard } }) .show(); + + $('#text-id_agent').autocomplete({ + appendTo: '#dialog_alert_mail' + }); } $('#button-create_goliat').click(function(){ @@ -1389,8 +1393,8 @@ class WelcomeWindow extends Wizard url: "include/ajax/task_to_perform.php", data: { create_mail_alert: 1, - id_condition: $('#text-ip_target').val(), - id_agent_module: $('#text-ip_target').val(), + id_condition: $('#id_condition').val(), + id_agent_module: $('#id_agent_module').val(), }, success: function(data) { if (data !== 0) { From 26309c8baee3202761b86ed9b18e5df363590897 Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Mon, 5 Jun 2023 16:33:20 +0200 Subject: [PATCH 082/268] #11420 Fixed img --- .../godmode/servers/servers.build_table.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/pandora_console/godmode/servers/servers.build_table.php b/pandora_console/godmode/servers/servers.build_table.php index 8d2418cc5e..861a507143 100644 --- a/pandora_console/godmode/servers/servers.build_table.php +++ b/pandora_console/godmode/servers/servers.build_table.php @@ -255,17 +255,7 @@ foreach ($servers as $server) { if (($names_servers[$safe_server_name] === true) && ($server['type'] === 'data' || $server['type'] === 'enterprise satellite')) { $data[8] .= ''; - $data[8] .= html_print_image( - 'images/agents@svg.svg', - true, - [ - 'title' => __('Manage server conf'), - 'class' => 'main_menu_icon invert_filter', - ] - ); - $data[8] .= ''; - - $data[8] .= ''; + $data[8] .= ''; $data[8] .= html_print_image( 'images/remote-configuration@svg.svg', true, From 6c00b3955087b067cb23ceb4389babe45f766b0d Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 5 Jun 2023 16:43:27 +0200 Subject: [PATCH 083/268] #11460 fixed widgets Top N events by agent and Top N events by module --- .../Widgets/top_n_events_by_group.php | 108 +++++++++---- .../Widgets/top_n_events_by_module.php | 145 +++++++++++++----- 2 files changed, 186 insertions(+), 67 deletions(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php index 8c4fece94e..a9905c9670 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php +++ b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_group.php @@ -385,33 +385,81 @@ class TopNEventByGroupWidget extends Widget $all_group = true; } - if ($all_group === false) { - $sql = sprintf( - 'SELECT id_agente, COUNT(*) AS count - FROM tevento - WHERE utimestamp >= %d - AND id_grupo IN (%s) - GROUP BY id_agente - ORDER BY count DESC - LIMIT %d', - $timestamp, - implode(',', $this->values['groupId']), - $this->values['amountShow'] - ); - } else { - $sql = sprintf( - 'SELECT id_agente, COUNT(*) AS count - FROM tevento - WHERE utimestamp >= %d - GROUP BY id_agente - ORDER BY count DESC - LIMIT %d', - $timestamp, - $this->values['amountShow'] - ); - } + if (is_metaconsole() === true) { + $servers = metaconsole_get_connection_names(); + $result = []; + foreach ($servers as $key => $server) { + $connection = metaconsole_get_connection($server); + if (metaconsole_connect($connection) != NOERR) { + continue; + } - $result = db_get_all_rows_sql($sql); + if ($all_group === false) { + $sql = sprintf( + 'SELECT id_agente, + COUNT(*) AS count, + "'.$connection['id'].'" AS id_server + FROM tevento + WHERE utimestamp >= %d + AND id_grupo IN (%s) + GROUP BY id_agente + ORDER BY count DESC + LIMIT %d', + $timestamp, + implode(',', $this->values['groupId']), + $this->values['amountShow'] + ); + } else { + $sql = sprintf( + 'SELECT id_agente, + COUNT(*) AS count, + "'.$connection['id'].'" AS id_server + FROM tevento + WHERE utimestamp >= %d + GROUP BY id_agente + ORDER BY count DESC + LIMIT %d', + $timestamp, + $this->values['amountShow'] + ); + } + + $rows = db_get_all_rows_sql($sql); + if ($rows !== false) { + $result = array_merge($result, $rows); + } + + metaconsole_restore_db(); + } + } else { + if ($all_group === false) { + $sql = sprintf( + 'SELECT id_agente, COUNT(*) AS count + FROM tevento + WHERE utimestamp >= %d + AND id_grupo IN (%s) + GROUP BY id_agente + ORDER BY count DESC + LIMIT %d', + $timestamp, + implode(',', $this->values['groupId']), + $this->values['amountShow'] + ); + } else { + $sql = sprintf( + 'SELECT id_agente, COUNT(*) AS count + FROM tevento + WHERE utimestamp >= %d + GROUP BY id_agente + ORDER BY count DESC + LIMIT %d', + $timestamp, + $this->values['amountShow'] + ); + } + + $result = db_get_all_rows_sql($sql); + } if (empty($result) === true) { $output .= '
'; @@ -430,11 +478,13 @@ class TopNEventByGroupWidget extends Widget $name = __('System'); } else { if (is_metaconsole() === true) { - $name = (string) db_get_value( + $name = (string) db_get_value_filter( 'alias', 'tmetaconsole_agent', - 'id_tagente', - (int) $row['id_agente'] + [ + 'id_tagente' => $row['id_agente'], + 'id_tmetaconsole_setup' => $row['id_server'], + ] ); } else { $name = io_safe_output( diff --git a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_module.php b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_module.php index 0adf0b7975..e528724fd8 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_module.php +++ b/pandora_console/include/lib/Dashboard/Widgets/top_n_events_by_module.php @@ -383,39 +383,91 @@ class TopNEventByModuleWidget extends Widget $all_group = true; } - if ($all_group === false) { - $sql = sprintf( - 'SELECT id_agente, - id_agentmodule, - event_type, - COUNT(*) AS count - FROM tevento - WHERE utimestamp >= %d - AND id_grupo IN (%s) - GROUP BY id_agentmodule, event_type - ORDER BY count DESC - LIMIT %d', - $timestamp, - implode(',', $this->values['groupId']), - $this->values['amountShow'] - ); - } else { - $sql = sprintf( - 'SELECT id_agente, - id_agentmodule, - event_type, - COUNT(*) AS count - FROM tevento - WHERE utimestamp >= %d - GROUP BY id_agentmodule, event_type - ORDER BY count DESC - LIMIT %d', - $timestamp, - $this->values['amountShow'] - ); - } + if (is_metaconsole() === true) { + $servers = metaconsole_get_connection_names(); + $result = []; + foreach ($servers as $key => $server) { + $connection = metaconsole_get_connection($server); + if (metaconsole_connect($connection) != NOERR) { + continue; + } - $result = db_get_all_rows_sql($sql); + if ($all_group === false) { + $sql = sprintf( + 'SELECT id_agente, + id_agentmodule, + event_type, + "'.$server.'" AS name_server, + COUNT(*) AS count + FROM tevento + WHERE utimestamp >= %d + AND id_grupo IN (%s) + GROUP BY id_agentmodule, event_type + ORDER BY count DESC + LIMIT %d', + $timestamp, + implode(',', $this->values['groupId']), + $this->values['amountShow'] + ); + } else { + $sql = sprintf( + 'SELECT id_agente, + id_agentmodule, + event_type, + "'.$server.'" AS name_server, + COUNT(*) AS count + FROM tevento + WHERE utimestamp >= %d + GROUP BY id_agentmodule, event_type + ORDER BY count DESC + LIMIT %d', + $timestamp, + $this->values['amountShow'] + ); + } + + $rows = db_get_all_rows_sql($sql); + if ($rows !== false) { + $result = array_merge($result, $rows); + } + + metaconsole_restore_db(); + } + } else { + if ($all_group === false) { + $sql = sprintf( + 'SELECT id_agente, + id_agentmodule, + event_type, + COUNT(*) AS count + FROM tevento + WHERE utimestamp >= %d + AND id_grupo IN (%s) + GROUP BY id_agentmodule, event_type + ORDER BY count DESC + LIMIT %d', + $timestamp, + implode(',', $this->values['groupId']), + $this->values['amountShow'] + ); + } else { + $sql = sprintf( + 'SELECT id_agente, + id_agentmodule, + event_type, + COUNT(*) AS count + FROM tevento + WHERE utimestamp >= %d + GROUP BY id_agentmodule, event_type + ORDER BY count DESC + LIMIT %d', + $timestamp, + $this->values['amountShow'] + ); + } + + $result = db_get_all_rows_sql($sql); + } if (empty($result) === true) { $output = '
'; @@ -433,13 +485,30 @@ class TopNEventByModuleWidget extends Widget if ($row['id_agentmodule'] == 0) { $name = __('System'); } else { - $name_agent = io_safe_output( - agents_get_alias($row['id_agente']) - ); + if (is_metaconsole() === true) { + $connection = metaconsole_get_connection($row['name_server']); + if (metaconsole_connect($connection) != NOERR) { + continue; + } + + $name_agent = io_safe_output( + agents_get_alias($row['id_agente']) + ); + + $name_module = io_safe_output( + modules_get_agentmodule_name($row['id_agentmodule']) + ); + metaconsole_restore_db(); + } else { + $name_agent = io_safe_output( + agents_get_alias($row['id_agente']) + ); + + $name_module = io_safe_output( + modules_get_agentmodule_name($row['id_agentmodule']) + ); + } - $name_module = io_safe_output( - modules_get_agentmodule_name($row['id_agentmodule']) - ); if ($size['width'] < 400) { $name_agent = ui_print_truncate_text( $name_agent, From d9977a41bacf59934c062da14b801d638c0adee6 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 6 Jun 2023 07:56:34 +0200 Subject: [PATCH 084/268] #10598 remove image welcome wizard --- .../godmode/wizards/mini_diagnosis.php | 132 ------------------ .../include/class/WelcomeWindow.class.php | 19 --- .../include/styles/mini_diagnosis.css | 83 ----------- 3 files changed, 234 deletions(-) delete mode 100644 pandora_console/godmode/wizards/mini_diagnosis.php delete mode 100644 pandora_console/include/styles/mini_diagnosis.css diff --git a/pandora_console/godmode/wizards/mini_diagnosis.php b/pandora_console/godmode/wizards/mini_diagnosis.php deleted file mode 100644 index 022b46c203..0000000000 --- a/pandora_console/godmode/wizards/mini_diagnosis.php +++ /dev/null @@ -1,132 +0,0 @@ - '', - 'label' => __('Configuration'), - ], - [ - 'link' => '', - 'label' => __('Configuration wizard'), - ], - ] -); - -if ($config['pandora_uid'] === 'ONLINE') { - $status_um = true; -} - -require_once 'include/functions_servers.php'; -if (check_all_servers_up() === true) { - $status_su = true; -} - -if (empty($config['welcome_mail_configured']) === false) { - $status_cm = true; -} - -if (enterprise_installed()) { - $license_valid = true; - enterprise_include_once('include/functions_license.php'); - $license = enterprise_hook('license_get_info'); - $days_to_expiry = ((strtotime($license['expiry_date']) - time()) / (60 * 60 * 24)); - if ($license === ENTERPRISE_NOT_HOOK || $days_to_expiry <= 30) { - $license_valid = false; - } - - if ($license_valid === true) { - $status_lv = true; - } -} - - -ui_require_css_file('mini_diagnosis'); -$table = new stdClass(); -$table->width = '60%'; -$table->class = 'filter-table-adv databox'; -$table->size = []; -$table->data = []; -$table->size[0] = '30%'; -$table->size[1] = '30%'; -$table->data[0][0] = html_print_wizard_diagnosis(__('Verification update manager register'), 'update_manager', __('Verification update manager register'), $status_um, true); -$table->data[0][1] = html_print_wizard_diagnosis(__('Please ensure mail configuration matches your needs'), 'configure_email', __('Please ensure mail configuration matches your needs'), $status_cm, true); -$table->data[1][0] = html_print_wizard_diagnosis(__('All servers up'), 'servers_up', __('All servers up'), $status_su, true); -$table->data[1][1] = html_print_wizard_diagnosis(__('Valid license verification and expiration greater than 30 days'), 'license_valid', __('Valid license verification and expiration greater than 30 days'), $status_lv, true); -html_print_table($table); -?> - \ No newline at end of file diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index 938dfde1a2..36258b4b64 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -345,29 +345,10 @@ class WelcomeWindow extends Wizard 'class' => 'modal', ]; - $logo_url = 'images/custom_logo/pandora_logo_head_white_bg.png'; - if (enterprise_installed() === true) { $logo_url = ENTERPRISE_DIR.'/'.$logo_url; } - $inputs = [ - [ - 'class' => 'white_box', - 'block_content' => [ - [ - 'class' => 'centered_full', - 'arguments' => [ - 'type' => 'image', - 'src' => $logo_url, - 'value' => 1, - 'return' => true, - ], - ], - ], - ], - ]; - if (check_acl($config['id_user'], 0, 'PM')) { $flag_um = false; $flag_cm = false; diff --git a/pandora_console/include/styles/mini_diagnosis.css b/pandora_console/include/styles/mini_diagnosis.css deleted file mode 100644 index 7bae821ff8..0000000000 --- a/pandora_console/include/styles/mini_diagnosis.css +++ /dev/null @@ -1,83 +0,0 @@ -.rectangle { - background-color: #ffffff; - border: 2px solid #e5e9ed; - border-radius: 6px; - max-width: 475px; - width: 475px; - height: 161px; - display: contents; - justify-content: flex-start; -} - -.rectangle:hover { - background-color: #f3f5f7; -} - -.rectangle_Connected { - border-left: 4px solid #82b92e; -} - -.rectangle_Disconnected { - border-left: 4px solid #8a96a6; -} - -.status { - font-weight: bold; - margin-top: -10px; - margin-left: 20px; -} - -.Connected { - color: #82b92e; - font-family: Lato; - font-size: 15px; - line-height: 24px; -} - -.Disconnected { - color: #8a96a6; - font-family: Lato; - font-size: 15px; - line-height: 24px; -} - -.title { - margin-top: 20px; - margin-left: 20px; -} - -.title > img { - margin-top: 5px; -} - -.title > span { - color: #14524f; - font-family: Lato; - font-size: 18px; - line-height: 24px; - text-align: left; - margin-left: 10px; - margin-right: 10px; - display: inline-block; - margin-left: 20px; - margin-top: -20px; -} - -.description { - margin-top: 20px; - margin-left: 10px; - color: #454545; - font-family: Lato; - font-size: 15px; - line-height: 24px; - width: 430px; - text-align: left; -} - -.button { - text-align: right; -} - -span > img:hover { - cursor: pointer; -} From 5f44ae141abc1bd159bb39a76f0b726a008cbc13 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Tue, 6 Jun 2023 10:39:56 +0200 Subject: [PATCH 085/268] #11443 Fixed SNMP token checkbox wizard --- .../include/class/AgentWizard.class.php | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/pandora_console/include/class/AgentWizard.class.php b/pandora_console/include/class/AgentWizard.class.php index 2278cae9d4..44846ee4be 100644 --- a/pandora_console/include/class/AgentWizard.class.php +++ b/pandora_console/include/class/AgentWizard.class.php @@ -1645,13 +1645,13 @@ class AgentWizard extends HTML } else if (preg_match('/module-critical-max/', $k) > 0) { $result[$value]['criticalMax'] = $data[$k]; } else if (preg_match('/module-critical-inv/', $k) > 0) { - $result[$value]['criticalInv'] = $data[$k.'_sent']; + $result[$value]['criticalInv'] = $data[$k]; } else if (preg_match('/module-warning-inv/', $k) > 0) { - $result[$value]['warningInv'] = $data[$k.'_sent']; + $result[$value]['warningInv'] = $data[$k]; } else if (preg_match('/module-warning-perc/', $k) > 0) { - $result[$value]['warningPerc'] = $data[$k.'_sent']; + $result[$value]['warningPerc'] = $data[$k]; } else if (preg_match('/module-critical-perc/', $k) > 0) { - $result[$value]['criticalPerc'] = $data[$k.'_sent']; + $result[$value]['criticalPerc'] = $data[$k]; } else if (preg_match('/module-type/', $k) > 0) { $result[$value]['moduleType'] = $data[$k]; } else if (preg_match('/module-unit/', $k) > 0) { @@ -4360,7 +4360,7 @@ class AgentWizard extends HTML true, false, 'change_control(this, \''.$uniqueId.'\')', - false, + true, 'form="form-create-modules"' ), ], @@ -4376,7 +4376,7 @@ class AgentWizard extends HTML true, false, 'change_control(this, \''.$uniqueId.'\')', - false, + true, 'form="form-create-modules"' ), ], @@ -4442,7 +4442,7 @@ class AgentWizard extends HTML true, false, 'change_control(this, \''.$uniqueId.'\')', - false, + true, 'form="form-create-modules"' ), ], @@ -4459,7 +4459,7 @@ class AgentWizard extends HTML true, false, 'change_control(this,\''.$uniqueId.'\')', - false, + true, 'form="form-create-modules"' ), ], @@ -6240,22 +6240,24 @@ class AgentWizard extends HTML function change_control(checkbox, uniqueId) { var checkbox_name = $(checkbox).attr('name'); - if($(checkbox).prop('checked', true)) { - if(checkbox_name.match(/warning-inv/gm) !== null) { - $('#checkbox-module-warning-perc-'+uniqueId.replace('/','\\/')).prop('checked', false); - } + if(checkbox_name.match(/warning-inv/gm) !== null) { + $('#checkbox-module-warning-perc-'+uniqueId.replace('/','\\/')).prop('checked', false); + $('#checkbox-'+checkbox_name).val(1) + } - if(checkbox_name.match(/critical-inv/gm) !== null) { - $('#checkbox-module-critical-perc-'+uniqueId.replace('/','\\/')).prop('checked', false); - } + if(checkbox_name.match(/warning-perc/gm) !== null) { + $('#checkbox-module-warning-inv-'+uniqueId.replace('/','\\/')).prop('checked', false); + $('#checkbox-'+checkbox_name).val(1) + } - if(checkbox_name.match(/warning-perc/gm) !== null) { - $('#checkbox-module-warning-inv-'+uniqueId.replace('/','\\/')).prop('checked', false); - } + if(checkbox_name.match(/critical-inv/gm) !== null) { + $('#checkbox-module-critical-perc-'+uniqueId.replace('/','\\/')).prop('checked', false); + $('#checkbox-'+checkbox_name).val(1) + } - if(checkbox_name.match(/critical-perc/gm) !== null) { - $('#checkbox-module-critical-inv-'+uniqueId.replace('/','\\/')).prop('checked', false); - } + if(checkbox_name.match(/critical-perc/gm) !== null) { + $('#checkbox-module-critical-inv-'+uniqueId.replace('/','\\/')).prop('checked', false); + $('#checkbox-'+checkbox_name).val(1) } } From 6e8f0d1e931e6848339e6e697fcd0efaceaa4fde Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Tue, 6 Jun 2023 14:55:30 +0200 Subject: [PATCH 086/268] #11469 Fixed add selected modules --- pandora_console/operation/agentes/ver_agente.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pandora_console/operation/agentes/ver_agente.php b/pandora_console/operation/agentes/ver_agente.php index 2e2ee2e37a..a09fa51844 100644 --- a/pandora_console/operation/agentes/ver_agente.php +++ b/pandora_console/operation/agentes/ver_agente.php @@ -67,6 +67,7 @@ if (is_ajax()) { $agents_inserted = get_parameter('agents_inserted', []); $id_group = (int) get_parameter('id_group'); $pendingdelete = (bool) get_parameter('pendingdelete'); + $get_node_agent = (bool) get_parameter('get_node_agent', false); $refresh_contact = get_parameter('refresh_contact', 0); @@ -1297,6 +1298,18 @@ if (is_ajax()) { return; } + if ($get_node_agent === true) { + $id = get_parameter('id', 0); + if (empty($id) === false) { + $result = db_get_value_sql( + 'SELECT id_tmetaconsole_setup FROM tmetaconsole_agent WHERE id_agente = '.$id + ); + + echo json_encode($result); + return; + } + } + return; } From 0ca464846de7b9258715f36aea59168a308ccdbb Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Wed, 7 Jun 2023 11:23:12 +0200 Subject: [PATCH 087/268] #11474 Fix metaconsole inventory --- .../include/functions_inventory.php | 4 +- .../operation/inventory/inventory.php | 241 +++++++++--------- 2 files changed, 127 insertions(+), 118 deletions(-) diff --git a/pandora_console/include/functions_inventory.php b/pandora_console/include/functions_inventory.php index 3e1aa3b9d0..fd5482b991 100644 --- a/pandora_console/include/functions_inventory.php +++ b/pandora_console/include/functions_inventory.php @@ -744,6 +744,7 @@ function inventory_get_datatable( if ($inventory_module_name[0] !== '0' && $inventory_module_name !== '' && $inventory_module_name !== 'all' + && $inventory_module_name !== '0' ) { array_push($where, "tmodule_inventory.name IN ('".implode("','", (array) $inventory_module_name)."')"); } @@ -807,7 +808,8 @@ function inventory_get_datatable( } foreach ($agent_data as $id_agent => $data_agent) { - $rows_tmp['agent'] = $data_agent['name_agent']; + $rows_tmp['agent'] = $data_agent[0]['name_agent']; + foreach ($data_agent as $key => $agent_row) { $data_agent[$key]['timestamp'] = $agent_row['last_update_timestamp']; $data_agent[$key]['utimestamp'] = $agent_row['last_update']; diff --git a/pandora_console/operation/inventory/inventory.php b/pandora_console/operation/inventory/inventory.php index c41009d330..6745e88e8e 100755 --- a/pandora_console/operation/inventory/inventory.php +++ b/pandora_console/operation/inventory/inventory.php @@ -150,6 +150,7 @@ if (is_ajax() === true) { } $id = !empty($agent['id_agente']) ? $agent['id_agente'] : $agent['id_agent']; + $id = !empty($id) ? $id : $agent['id_tagente']; $tmp->alias .= $agent['alias']; $ip = ''.__('N/A').''; @@ -329,7 +330,7 @@ $inventory_search_string = (string) get_parameter('search_string'); $order_by_agent = (bool) get_parameter('order_by_agent'); $export = (string) get_parameter('export'); $utimestamp = (int) get_parameter('utimestamp'); -$submit_filter = (bool) get_parameter('submit_filter'); +$submit_filter = (bool) get_parameter('srcbutton'); $pagination_url_parameters = [ 'inventory_id_agent' => $inventory_id_agent, @@ -361,6 +362,7 @@ if ($is_metaconsole === true) { if ($is_metaconsole === true) { $nodo_image_url = $config['homeurl'].'/images/node.png'; if ($id_server > 0) { + // $agent_selected = io_safe_output($inventory_agent), true); $connection = metaconsole_get_connection_by_id($id_server); $agents_node = metaconsole_get_agents_servers($connection['server_name'], $inventory_id_group); $node = metaconsole_get_servers($id_server); @@ -377,6 +379,7 @@ if ($is_metaconsole === true) { WHERE tmodule_inventory.id_module_inventory = tagent_module_inventory.id_module_inventory'; if ($inventory_id_agent > 0) { $sql .= ' AND id_agente = '.$inventory_id_agent; + $agents_node = [$inventory_id_agent => $inventory_id_agent]; } $result_module = db_get_all_rows_sql($sql); @@ -422,10 +425,10 @@ if ($is_metaconsole === true) { WHERE tmodule_inventory.id_module_inventory = tagent_module_inventory.id_module_inventory'; if ($inventory_id_agent > 0) { $sql .= ' AND id_agente = '.$inventory_id_agent; + $agents_node = [$inventory_id_agent => $inventory_id_agent]; } $result = db_get_all_rows_sql($sql); - if ($result !== false) { $result_module = array_merge($result_module, $result); if ($submit_filter === true) { @@ -446,7 +449,6 @@ if ($is_metaconsole === true) { $data_tmp['dbhost'] = $server['dbhost']; $data_tmp['server_uid'] = $server['server_uid']; $data_tmp['data'] = $rows_meta; - $nodos[$server['id']] = $data_tmp; if ($result_data !== ERR_NODATA) { $inventory_data .= $result_data; @@ -728,8 +730,8 @@ ui_toggle( 'white-box-content', 'box-flat white_table_graph fixed_filter_bar' ); - -if (is_metaconsole() === true) { +/* + if (is_metaconsole() === true) { $filteringFunction = 'active_inventory_submit()'; ui_print_info_message(['no_close' => true, 'message' => __('You must select at least one filter.'), 'force_class' => 'select_one_filter']); ?> @@ -750,10 +752,11 @@ if (is_metaconsole() === true) { } $row) { $columns = explode(';', io_safe_output($row['data_format'])); array_push($columns, 'Timestamp'); @@ -793,66 +796,68 @@ if ($inventory_module !== 'basic') { array_push($data, (object) $row_tmp); } } - - $id_table = 'id_'.$row['id_module_inventory'].'_'.$nodo['server_uid']; - - $table = ui_print_datatable( - [ - 'id' => $id_table, - 'class' => 'info_table', - 'style' => 'width: 99%', - 'columns' => $columns, - 'column_names' => $columns, - 'no_sortable_columns' => [], - 'data_element' => $data, - 'searching' => true, - 'dom_elements' => 'lftipB', - 'order' => [ - 'field' => $columns[0], - 'direction' => 'asc', - ], - 'zeroRecords' => __('No inventory found'), - 'emptyTable' => __('No inventory found'), - 'return' => true, - 'default_pagination' => 10, - 'no_sortable_columns' => [-1], - ] - ); - - $modules .= ui_toggle( - $table, - ''.$row['name'].'', - '', - '', - true, - true, - '', - 'white-box-content w100p', - 'box-shadow white_table_graph w100p', - 'images/arrow_down_green.png', - 'images/arrow_right_green.png', - false, - false, - false, - '', - '', - null, - null, - false, - $id_table - ); } - $agents .= ui_toggle( - $modules, - $agent_rows['agent'], + $id_table = 'id_'.$row['id_module_inventory'].'_'.$nodo['server_uid']; + $table = ui_print_datatable( + [ + 'id' => $id_table, + 'class' => 'info_table w100p', + 'style' => 'width: 99%', + 'columns' => $columns, + 'column_names' => $columns, + 'no_sortable_columns' => [], + 'data_element' => $data, + 'searching' => true, + 'dom_elements' => 'ftip', + 'order' => [ + 'field' => $columns[0], + 'direction' => 'asc', + ], + 'zeroRecords' => __('No inventory found'), + 'emptyTable' => __('No inventory found'), + 'return' => true, + 'default_pagination' => 10, + 'no_sortable_columns' => [-1], + ] + ); + + $modules .= ui_toggle( + $table, + ''.$row['name'].'', '', '', true, - true + true, + '', + 'white-box-content w100p', + 'box-shadow white_table_graph w100p', + 'images/arrow_down_green.png', + 'images/arrow_right_green.png', + false, + false, + false, + '', + '', + null, + null, + false, + $id_table ); } + $agents .= ui_toggle( + $modules, + $agent_rows['agent'], + '', + '', + true, + true, + '', + 'white-box-content w100p', + 'box-shadow white_table_graph w100p', + ); + $node_name = $nodo['server_name']; if ($count[$nodo['server_name']] > 1) { $node_name .= ' ('.$nodo['dbhost'].')'; @@ -877,12 +882,12 @@ if ($inventory_module !== 'basic') { foreach ($nodos as $nodo_key => $nodo) { $agents = ''; - foreach ($nodo['data'] as $module_rows) { + $data = []; + foreach ($nodo['data'] as $module_key => $module_rows) { $agent = ''; foreach ($module_rows as $row) { $columns = explode(';', io_safe_output($row['data_format'])); array_push($columns, 'Timestamp'); - $data = []; $data_explode = explode(PHP_EOL, $row['data']); foreach ($data_explode as $values) { @@ -903,67 +908,69 @@ if ($inventory_module !== 'basic') { array_push($data, $data_tmp); } } - - - $id_table = 'id_'.$row['id_module_inventory'].'_'.$nodo['server_uid']; - - $table = ui_print_datatable( - [ - 'id' => $id_table, - 'class' => 'info_table', - 'style' => 'width: 99%', - 'columns' => $columns, - 'column_names' => $columns, - 'no_sortable_columns' => [], - 'data_element' => $data, - 'searching' => true, - 'dom_elements' => 'lftipB', - 'order' => [ - 'field' => $columns[0], - 'direction' => 'asc', - ], - 'zeroRecords' => __('No inventory found'), - 'emptyTable' => __('No inventory found'), - 'return' => true, - 'default_pagination' => 10, - 'no_sortable_columns' => [-1], - ] - ); - - $agent .= ui_toggle( - $table, - ''.$row['name_agent'].'', - '', - '', - true, - true, - '', - 'white-box-content w100p', - 'box-shadow white_table_graph w100p', - 'images/arrow_down_green.png', - 'images/arrow_right_green.png', - false, - false, - false, - '', - '', - null, - null, - false, - $id_table - ); } - $agents .= ui_toggle( - $agent, - $module_rows[0]['name'], + $id_table = 'id_'.$row['id_module_inventory'].'_'.$nodo['server_uid']; + + $table = ui_print_datatable( + [ + 'id' => $id_table, + 'class' => 'info_table w100p', + 'style' => 'width: 99%', + 'columns' => $columns, + 'column_names' => $columns, + 'no_sortable_columns' => [], + 'data_element' => $data, + 'searching' => true, + 'dom_elements' => 'ftip', + 'order' => [ + 'field' => $columns[0], + 'direction' => 'asc', + ], + 'zeroRecords' => __('No inventory found'), + 'emptyTable' => __('No inventory found'), + 'return' => true, + 'default_pagination' => 10, + 'no_sortable_columns' => [-1], + ] + ); + + $agent .= ui_toggle( + $table, + ''.$row['name_agent'].'', '', '', true, - true + true, + '', + 'white-box-content w100p', + 'box-shadow white_table_graph w100p', + 'images/arrow_down_green.png', + 'images/arrow_right_green.png', + false, + false, + false, + '', + '', + null, + null, + false, + $id_table ); } + $agents .= ui_toggle( + $agent, + $module_key, + '', + '', + true, + true, + '', + 'white-box-content w100p', + 'box-shadow white_table_graph w100p', + ); + $node_name = $nodo['server_name']; if ($count[$nodo['server_name']] > 1) { $node_name .= ' ('.$nodo['dbhost'].')'; From dd375dc73e5c6f3c3382ea18b81bb1f78e2d3d0f Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 7 Jun 2023 12:46:39 +0200 Subject: [PATCH 088/268] #11093 grid background VC --- pandora_console/extras/mr/65.sql | 7 + .../include/ajax/visual_console.ajax.php | 20 +++ pandora_console/include/functions_html.php | 2 +- .../models/VisualConsole/Container.php | 2 + pandora_console/include/styles/pandora.css | 9 ++ .../operation/visual_console/view.php | 149 ++++++++++++++++++ pandora_console/pandoradb.sql | 2 + 7 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 pandora_console/extras/mr/65.sql diff --git a/pandora_console/extras/mr/65.sql b/pandora_console/extras/mr/65.sql new file mode 100644 index 0000000000..fa4315564f --- /dev/null +++ b/pandora_console/extras/mr/65.sql @@ -0,0 +1,7 @@ +START TRANSACTION; + +ALTER TABLE `tlayout` +ADD COLUMN `grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc' AFTER `maintenance_mode`, +ADD COLUMN `grid_size` VARCHAR(45) NOT NULL DEFAULT '10px' AFTER `grid_color`; + +COMMIT; diff --git a/pandora_console/include/ajax/visual_console.ajax.php b/pandora_console/include/ajax/visual_console.ajax.php index cd4dde48e1..2eac118171 100644 --- a/pandora_console/include/ajax/visual_console.ajax.php +++ b/pandora_console/include/ajax/visual_console.ajax.php @@ -39,6 +39,7 @@ $graph_javascript = (bool) get_parameter('graph_javascript', false); $force_remote_check = (bool) get_parameter('force_remote_check', false); $update_maintanance_mode = (bool) get_parameter('update_maintanance_mode', false); $load_css_cv = (bool) get_parameter('load_css_cv', false); +$update_grid_style = (bool) get_parameter('update_grid_style', false); if ($render_map) { $width = (int) get_parameter('width', '400'); @@ -126,3 +127,22 @@ if ($update_maintanance_mode === true) { echo json_encode(['result' => $result]); return; } + +if ($update_grid_style === true) { + $idVisualConsole = (int) get_parameter('idVisualConsole', 0); + $color = get_parameter('color', '#CCC'); + $size = get_parameter('size', '10'); + + $values = []; + $values['grid_color'] = $color; + $values['grid_size'] = $size; + + $result = db_process_sql_update( + 'tlayout', + $values, + ['id' => $idVisualConsole] + ); + + echo json_encode(['result' => $result]); + return; +} diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php index f3a23ce1e8..a223b3e7f7 100644 --- a/pandora_console/include/functions_html.php +++ b/pandora_console/include/functions_html.php @@ -4423,7 +4423,7 @@ function html_print_checkbox_switch_extended( $name.($idcounter[$name] ? $idcounter[$name] : '') ); - $output = '
'; } + echo ''; + + echo ''; + echo '
'; echo html_print_label(__('Edit'), 'edit-mode', true); echo html_print_checkbox_switch('edit-mode', 1, false, true, $disabled_edit_mode); @@ -768,16 +830,103 @@ if ($edit_capable === true) { visualConsoleManager.visualConsole.enableEditMode(); visualConsoleManager.changeUpdateInterval(0); $('#edit-controls').css('visibility', ''); + $('#grid-controls').css('visibility', ''); } else { visualConsoleManager.visualConsole.disableEditMode(); visualConsoleManager.visualConsole.unSelectItems(); visualConsoleManager.changeUpdateInterval(); // To ms. $('#edit-controls').css('visibility', 'hidden'); + $('#grid-controls').css('visibility', 'hidden'); + $('input[name=grid-mode]').prop('checked', false); + $('#div-grid').remove(); } resetInterval(); }); + $('input[name=grid-mode]').change(function(evente) { + if ($(this).prop('checked')) { + color = $('#grid_color').val(); + size = $('#grid_size').val(); + display_grid(color,size); + $('#grid_img').removeClass('invisible'); + } else { + $('#div-grid').remove(); + $('#grid_img').addClass('invisible'); + } + }); + + $('#button-grid_setup').click(function(){ + if(validate_size()){ + color = $('#grid_color').val(); + size = $('#grid_size').val(); + display_grid(color,size); + $('#dialog_grid').dialog('close'); + save_grid_style(color, size); + } + }); + + $('#grid_size').blur(function(){ + validate_size(); + }); + + function validate_size(){ + if($('#grid_size').val()<2 || $('#grid_size').val()>50){ + $('#grid_size').val('10'); + alert(""); + return false; + } else { + return true; + } + } + + function dialog_grid(){ + $('#dialog_grid').dialog({ + title: '', + resizable: true, + draggable: true, + modal: true, + close: false, + height: 200, + width: 480, + overlay: { + opacity: 0.5, + background: "black" + } + }) + .show(); + } + + function display_grid(color='#ccc', size='10'){ + $('#div-grid').remove(); + var grid = "
"; + $('#visual-console-container').append(grid); + }; + + function save_grid_style(color, size){ + const idVisualConsole = ''; + $.ajax({ + type: "POST", + url: "ajax.php", + dataType: "json", + data: { + page: "include/ajax/visual_console.ajax", + update_grid_style: true, + color: color, + size: size, + idVisualConsole: idVisualConsole, + }, + success: function (data) { + if(data.result) { + alert(""); + } + }, + error: function (err) { + console.error(err); + } + }); + } + // Enable/disable the maintenance mode. $('input[name=maintenance-mode]').click(function(event) { event.preventDefault(); diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 8706e37fed..d873e33097 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1700,6 +1700,8 @@ CREATE TABLE IF NOT EXISTS `tlayout` ( `is_favourite` INT UNSIGNED NOT NULL DEFAULT 0, `auto_adjust` INT UNSIGNED NOT NULL DEFAULT 0, `maintenance_mode` TEXT, + `grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc', + `grid_size` VARCHAR(45) NOT NULL DEFAULT '10px', PRIMARY KEY(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; From f22f6634d1d6e5407f5fddd7aae522cf64263b42 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Wed, 7 Jun 2023 16:12:10 +0200 Subject: [PATCH 089/268] #11441 Add agentaccess to msg conditional --- .../include/class/ConsoleSupervisor.php | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php index 4dc665fb26..578861bd33 100644 --- a/pandora_console/include/class/ConsoleSupervisor.php +++ b/pandora_console/include/class/ConsoleSupervisor.php @@ -667,20 +667,24 @@ class ConsoleSupervisor */ public function checkAccessStatisticsPerformance() { + global $config; + $total_agents = db_get_value('count(*)', 'tagente'); if ($total_agents >= 200) { - db_process_sql_update('tconfig', ['value' => 0], ['token' => 'agentaccess']); - $this->notify( - [ - 'type' => 'NOTIF.ACCESSSTASTICS.PERFORMANCE', - 'title' => __('Access statistics performance'), - 'message' => __( - 'Usage of agent access statistics IS NOT RECOMMENDED on systems with more than 200 agents due performance penalty' - ), - 'url' => '__url__/index.php?sec=general&sec2=godmode/setup/setup§ion=perf', - ] - ); + if ($config['agentaccess'] !== 0) { + db_process_sql_update('tconfig', ['value' => 0], ['token' => 'agentaccess']); + $this->notify( + [ + 'type' => 'NOTIF.ACCESSSTASTICS.PERFORMANCE', + 'title' => __('Access statistics performance'), + 'message' => __( + 'Usage of agent access statistics IS NOT RECOMMENDED on systems with more than 200 agents due performance penalty' + ), + 'url' => '__url__/index.php?sec=general&sec2=godmode/setup/setup§ion=perf', + ] + ); + } } else { $this->cleanNotifications('NOTIF.ACCESSSTASTICS.PERFORMANCE'); } From f207e4f9c14a7550eae4613b7c0e9d8efe4cfbda Mon Sep 17 00:00:00 2001 From: Pablo Aragon Date: Wed, 7 Jun 2023 17:01:28 +0200 Subject: [PATCH 090/268] 7116-SNMP Browser - Token Use agent IP --- .../include/ajax/snmp_browser.ajax.php | 4 +++- pandora_console/include/functions_modules.php | 7 ++++++- .../include/functions_snmp_browser.php | 21 +++++++++++++++++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/pandora_console/include/ajax/snmp_browser.ajax.php b/pandora_console/include/ajax/snmp_browser.ajax.php index 55dd7dd45a..7d2ba1cde1 100644 --- a/pandora_console/include/ajax/snmp_browser.ajax.php +++ b/pandora_console/include/ajax/snmp_browser.ajax.php @@ -182,6 +182,7 @@ try { if ($method == 'snmp_browser_create_modules') { // Get target ids from form. + $use_agent_ip = get_parameter('use_agent_ip', ''); $id_items = get_parameter('id_item2', null); $id_target = null; if (empty($id_items) === false) { @@ -209,7 +210,8 @@ try { $module_target, $snmp_conf_values, $id_target, - $server_to_exec + $server_to_exec, + $use_agent_ip ); // Return fail modules for error/success message. diff --git a/pandora_console/include/functions_modules.php b/pandora_console/include/functions_modules.php index 26e63c5975..4f42225095 100755 --- a/pandora_console/include/functions_modules.php +++ b/pandora_console/include/functions_modules.php @@ -743,7 +743,8 @@ function modules_create_agent_module( string $name, array $values=[], bool $disableACL=false, - $tags=false + $tags=false, + $use_agent_ip=false, ) { global $config; @@ -785,6 +786,10 @@ function modules_create_agent_module( return ERR_EXIST; } + if ($use_agent_ip === true) { + $values['ip_target'] = agents_get_address($id_agent); + } + // Encrypt passwords. if (isset($values['plugin_pass']) === true) { // Avoid two times encryption. diff --git a/pandora_console/include/functions_snmp_browser.php b/pandora_console/include/functions_snmp_browser.php index 4a0076e847..c63d42307c 100644 --- a/pandora_console/include/functions_snmp_browser.php +++ b/pandora_console/include/functions_snmp_browser.php @@ -1264,7 +1264,8 @@ function snmp_browser_create_modules_snmp( string $module_target, array $snmp_values, ?array $id_target, - ?string $server_to_exec=null + ?string $server_to_exec=null, + ?string $use_agent_ip='' ) { $target_ip = null; $target_port = null; @@ -1323,6 +1324,12 @@ function snmp_browser_create_modules_snmp( } } + if (empty($use_agent_ip) === false) { + $use_agent_ip = true; + } else { + $use_agent_ip = false; + } + $fail_modules = []; foreach ($targets_oids as $key => $target_oid) { @@ -1487,7 +1494,7 @@ function snmp_browser_create_modules_snmp( 'history_data' => 1, ]; foreach ($id_target as $agent) { - $ids[] = modules_create_agent_module($agent, $oid['oid'], $values); + $ids[] = modules_create_agent_module($agent, $oid['oid'], $values, false, false, $use_agent_ip); } } else if ($module_target == 'policy') { // Policies only in enterprise version. @@ -1776,6 +1783,16 @@ function snmp_browser_print_create_module_massive( true ); + $table->data[4][0] = html_print_label_input_block( + __('Use agent IP'), + html_print_checkbox( + 'use_agent_ip', + 1, + false, + true + ) + ); + $output .= html_print_table($table, true); // SNMP extradata. From 115b77d7df1d24b0369d28da0c6c2db52a052589 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Thu, 8 Jun 2023 09:25:36 +0200 Subject: [PATCH 091/268] #11474 Fix data position --- .../operation/inventory/inventory.php | 133 +++++++++--------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/pandora_console/operation/inventory/inventory.php b/pandora_console/operation/inventory/inventory.php index 6745e88e8e..648f72f5e7 100755 --- a/pandora_console/operation/inventory/inventory.php +++ b/pandora_console/operation/inventory/inventory.php @@ -362,7 +362,6 @@ if ($is_metaconsole === true) { if ($is_metaconsole === true) { $nodo_image_url = $config['homeurl'].'/images/node.png'; if ($id_server > 0) { - // $agent_selected = io_safe_output($inventory_agent), true); $connection = metaconsole_get_connection_by_id($id_server); $agents_node = metaconsole_get_agents_servers($connection['server_name'], $inventory_id_group); $node = metaconsole_get_servers($id_server); @@ -769,14 +768,14 @@ if ($inventory_module !== 'basic') { foreach ($nodos as $nodo) { $agents = ''; - $data = []; + foreach ($nodo['data'] as $agent_rows) { $modules = ''; foreach ($agent_rows['row'] as $key => $row) { $columns = explode(';', io_safe_output($row['data_format'])); array_push($columns, 'Timestamp'); - + $data = []; $data_rows = explode(PHP_EOL, $row['data']); foreach ($data_rows as $data_row) { // Exclude results don't match filter. @@ -796,35 +795,58 @@ if ($inventory_module !== 'basic') { array_push($data, (object) $row_tmp); } } + + $id_table = 'id_'.$row['id_module_inventory'].'_'.$nodo['server_uid']; + $table = ui_print_datatable( + [ + 'id' => $id_table, + 'class' => 'info_table w100p', + 'style' => 'width: 99%', + 'columns' => $columns, + 'column_names' => $columns, + 'no_sortable_columns' => [], + 'data_element' => $data, + 'searching' => true, + 'dom_elements' => 'ftip', + 'order' => [ + 'field' => $columns[0], + 'direction' => 'asc', + ], + 'zeroRecords' => __('No inventory found'), + 'emptyTable' => __('No inventory found'), + 'return' => true, + 'default_pagination' => 10, + 'no_sortable_columns' => [-1], + ] + ); + + $modules .= ui_toggle( + $table, + ''.$row['name'].'', + '', + '', + true, + true, + '', + 'white-box-content w100p', + 'box-shadow white_table_graph w100p', + 'images/arrow_down_green.png', + 'images/arrow_right_green.png', + false, + false, + false, + '', + '', + null, + null, + false, + $id_table + ); } - $id_table = 'id_'.$row['id_module_inventory'].'_'.$nodo['server_uid']; - $table = ui_print_datatable( - [ - 'id' => $id_table, - 'class' => 'info_table w100p', - 'style' => 'width: 99%', - 'columns' => $columns, - 'column_names' => $columns, - 'no_sortable_columns' => [], - 'data_element' => $data, - 'searching' => true, - 'dom_elements' => 'ftip', - 'order' => [ - 'field' => $columns[0], - 'direction' => 'asc', - ], - 'zeroRecords' => __('No inventory found'), - 'emptyTable' => __('No inventory found'), - 'return' => true, - 'default_pagination' => 10, - 'no_sortable_columns' => [-1], - ] - ); - - $modules .= ui_toggle( - $table, - ''.$row['name'].'', + $agents .= ui_toggle( + $modules, + $agent_rows['agent'], '', '', true, @@ -832,32 +854,9 @@ if ($inventory_module !== 'basic') { '', 'white-box-content w100p', 'box-shadow white_table_graph w100p', - 'images/arrow_down_green.png', - 'images/arrow_right_green.png', - false, - false, - false, - '', - '', - null, - null, - false, - $id_table ); } - $agents .= ui_toggle( - $modules, - $agent_rows['agent'], - '', - '', - true, - true, - '', - 'white-box-content w100p', - 'box-shadow white_table_graph w100p', - ); - $node_name = $nodo['server_name']; if ($count[$nodo['server_name']] > 1) { $node_name .= ' ('.$nodo['dbhost'].')'; @@ -882,9 +881,10 @@ if ($inventory_module !== 'basic') { foreach ($nodos as $nodo_key => $nodo) { $agents = ''; - $data = []; + foreach ($nodo['data'] as $module_key => $module_rows) { $agent = ''; + $data = []; foreach ($module_rows as $row) { $columns = explode(';', io_safe_output($row['data_format'])); array_push($columns, 'Timestamp'); @@ -957,19 +957,20 @@ if ($inventory_module !== 'basic') { false, $id_table ); - } - $agents .= ui_toggle( - $agent, - $module_key, - '', - '', - true, - true, - '', - 'white-box-content w100p', - 'box-shadow white_table_graph w100p', - ); + + $agents .= ui_toggle( + $agent, + $module_key, + '', + '', + true, + true, + '', + 'white-box-content w100p', + 'box-shadow white_table_graph w100p', + ); + } $node_name = $nodo['server_name']; if ($count[$nodo['server_name']] > 1) { From 0463d3bea3c4a3f4a70742f779977c7e646062d0 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 8 Jun 2023 13:54:05 +0200 Subject: [PATCH 092/268] #11093 grid position recolocation after drag --- pandora_console/extras/mr/65.sql | 8 ++++++-- .../include/javascript/pandora_visual_console.js | 14 ++++++++++++++ .../rest-api/models/VisualConsole/Container.php | 4 ++-- pandora_console/operation/visual_console/view.php | 4 ++-- pandora_console/pandoradb.sql | 4 +++- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/pandora_console/extras/mr/65.sql b/pandora_console/extras/mr/65.sql index fa4315564f..f77fda4ac3 100644 --- a/pandora_console/extras/mr/65.sql +++ b/pandora_console/extras/mr/65.sql @@ -1,7 +1,11 @@ START TRANSACTION; -ALTER TABLE `tlayout` +ALTER TABLE `tlayout` ADD COLUMN `grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc' AFTER `maintenance_mode`, -ADD COLUMN `grid_size` VARCHAR(45) NOT NULL DEFAULT '10px' AFTER `grid_color`; +ADD COLUMN `grid_size` VARCHAR(45) NOT NULL DEFAULT '10' AFTER `grid_color`; + +ALTER TABLE `tlayout_template` +ADD COLUMN `grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc' AFTER `maintenance_mode`, +ADD COLUMN `grid_size` VARCHAR(45) NOT NULL DEFAULT '10' AFTER `grid_color`; COMMIT; diff --git a/pandora_console/include/javascript/pandora_visual_console.js b/pandora_console/include/javascript/pandora_visual_console.js index 354934039c..49fd76331b 100755 --- a/pandora_console/include/javascript/pandora_visual_console.js +++ b/pandora_console/include/javascript/pandora_visual_console.js @@ -252,6 +252,20 @@ function createVisualConsole( }); // VC Item moved. visualConsole.onItemMoved(function(e) { + if ( + $("input[name=grid-mode]").prop("checked") && + e.item.props.type !== 13 && + e.item.props.type !== 21 + ) { + var gridSize = $("#grid_size").val(); + var positionX = e.newPosition.x; + var positionY = e.newPosition.y; + if (positionX % gridSize !== 0 || positionY % gridSize !== 0) { + e.newPosition.x = Math.floor(positionX / gridSize) * gridSize; + e.newPosition.y = Math.floor(positionY / gridSize) * gridSize; + e.item.move(e.newPosition.x, e.newPosition.y); + } + } var id = e.item.props.id; var data = { x: e.newPosition.x, diff --git a/pandora_console/include/rest-api/models/VisualConsole/Container.php b/pandora_console/include/rest-api/models/VisualConsole/Container.php index 74d94f6865..d007258c7a 100644 --- a/pandora_console/include/rest-api/models/VisualConsole/Container.php +++ b/pandora_console/include/rest-api/models/VisualConsole/Container.php @@ -91,8 +91,8 @@ final class Container extends Model 'relationLineWidth' => (int) $data['relationLineWidth'], 'hash' => static::extractHash($data), 'maintenanceMode' => static::extractMaintenanceMode($data), - 'grid_size' => (int) $data['grid_size'], - 'grid_color' => (string) $data['grid_color'], + 'gridSize' => (int) $data['grid_size'], + 'gridColor' => (string) $data['grid_color'], ]; } diff --git a/pandora_console/operation/visual_console/view.php b/pandora_console/operation/visual_console/view.php index 175a9b6d6b..332ae6f8a9 100644 --- a/pandora_console/operation/visual_console/view.php +++ b/pandora_console/operation/visual_console/view.php @@ -493,7 +493,7 @@ if ($pure === false) { html_print_input_number( [ 'name' => 'grid_size', - 'value' => $visualConsoleData['grid_size'], + 'value' => $visualConsoleData['gridSize'], 'id' => 'grid_size', 'min' => 2, 'max' => 50, @@ -506,7 +506,7 @@ if ($pure === false) { __('Grid color'), html_print_input_color( 'grid_color', - $visualConsoleData['grid_color'], + $visualConsoleData['gridColor'], 'grid_color', 'w100p', true diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index d873e33097..340d552055 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1701,7 +1701,7 @@ CREATE TABLE IF NOT EXISTS `tlayout` ( `auto_adjust` INT UNSIGNED NOT NULL DEFAULT 0, `maintenance_mode` TEXT, `grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc', - `grid_size` VARCHAR(45) NOT NULL DEFAULT '10px', + `grid_size` VARCHAR(45) NOT NULL DEFAULT '10', PRIMARY KEY(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; @@ -3668,6 +3668,8 @@ CREATE TABLE IF NOT EXISTS `tlayout_template` ( `is_favourite` INT UNSIGNED NOT NULL DEFAULT 0, `auto_adjust` INT UNSIGNED NOT NULL DEFAULT 0, `maintenance_mode` TEXT, + `grid_color` VARCHAR(45) NOT NULL DEFAULT '#cccccc', + `grid_size` VARCHAR(45) NOT NULL DEFAULT '10', PRIMARY KEY(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; From 1980458572caac3b703c7ee534c85e53249c9c6a Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 8 Jun 2023 14:06:15 +0200 Subject: [PATCH 093/268] #11437 added new control session --- pandora_console/extras/mr/65.sql | 5 ++ pandora_console/godmode/setup/setup_auth.php | 22 ++++++- .../godmode/users/configure_user.php | 10 +++ pandora_console/include/functions_config.php | 66 ++++++++++++++++++- pandora_console/pandoradb.sql | 1 + 5 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 pandora_console/extras/mr/65.sql diff --git a/pandora_console/extras/mr/65.sql b/pandora_console/extras/mr/65.sql new file mode 100644 index 0000000000..6c7ab1161a --- /dev/null +++ b/pandora_console/extras/mr/65.sql @@ -0,0 +1,5 @@ +START TRANSACTION; + +ALTER TABLE `tusuario` ADD COLUMN `session_max_time_expire` INT NOT NULL DEFAULT 0 AFTER `auth_token_secret`; + +COMMIT; \ No newline at end of file diff --git a/pandora_console/godmode/setup/setup_auth.php b/pandora_console/godmode/setup/setup_auth.php index 3822a01b2e..74e4e2e1ff 100644 --- a/pandora_console/godmode/setup/setup_auth.php +++ b/pandora_console/godmode/setup/setup_auth.php @@ -418,7 +418,27 @@ if (is_ajax() === true) { $table->rowclass['2FA_all_users'] = ''; } - $table->data['2FA_all_users'] = $row; + $table->data['2FA_all_users'] = $row; + + // Session timeout behavior. + // Set default value. + $row = []; + $options = [ + 'check_activity' => __('Check activity'), + 'ignore_activity' => __('Ignore activity'), + ]; + + $row['name'] = __('Control of timeout session').ui_print_help_tip(__('Select \'ignore activity\' to ignore user activity when checking the session.'), true); + $row['control'] = html_print_select( + $options, + 'control_session_timeout', + $config['control_session_timeout'], + '', + '', + 0, + true + ); + $table->data['session_timeouts'] = $row; // Session timeout. diff --git a/pandora_console/godmode/users/configure_user.php b/pandora_console/godmode/users/configure_user.php index 808261ef61..afd093f233 100644 --- a/pandora_console/godmode/users/configure_user.php +++ b/pandora_console/godmode/users/configure_user.php @@ -663,11 +663,21 @@ if ($update_user) { $values['local_user'] = (bool) get_parameter('local_user', false); $values['strict_acl'] = (bool) get_parameter('strict_acl', false); $values['session_time'] = (int) get_parameter('session_time', 0); + + $force_update_session_expire = false; + if ($values['session_time'] !== $user_info['session_time']) { + $force_update_session_expire = true; + } + // Previously defined. $values['autorefresh_white_list'] = $autorefresh_white_list; $res1 = update_user($id, $values); + if ($force_update_session_expire === true) { + config_prepare_expire_time_session(true); + } + if ($config['user_can_update_password']) { $password_new = (string) get_parameter('password_new', ''); $password_confirm = (string) get_parameter('password_confirm', ''); diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index 468c228733..cf4a00b18a 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -815,6 +815,10 @@ function config_update_config() $error_update[] = __('2FA all users'); } + if (config_update_value('control_session_timeout', get_parameter('control_session_timeout'), true) === false) { + $error_update[] = __('Control timeout'); + } + if (config_update_value('session_timeout', get_parameter('session_timeout'), true) === false) { $error_update[] = __('Session timeout'); } else { @@ -824,6 +828,8 @@ function config_update_config() if (config_update_value('session_timeout', 90, true) === false) { $error_update[] = __('Session timeout'); } + } else { + config_prepare_expire_time_session(true); } } @@ -3781,6 +3787,10 @@ function config_process_config() config_update_value('notification_autoclose_time', 5); } + if (isset($config['control_session_timeout']) === false) { + config_update_value('control_session_timeout', 'check_activity'); + } + // Finally, check if any value was overwritten in a form. config_update_config(); } @@ -3912,12 +3922,60 @@ function config_user_set_custom_config() } } + config_prepare_expire_time_session(); + if (is_metaconsole() === true) { $config['metaconsole_access'] = $userinfo['metaconsole_access']; } } +function config_prepare_expire_time_session($force_update=false) +{ + global $config; + if (empty($config['id_user']) === true) { + return; + } + + $userinfo = get_user_info($config['id_user']); + + if (isset($userinfo)) { + $user_sesion_time = $userinfo['session_time']; + } else { + $user_sesion_time = null; + } + + if ($user_sesion_time == 0) { + // Change the session timeout value to session_timeout minutes // 8*60*60 = 8 hours. + $sessionCookieExpireTime = $config['session_timeout']; + } else { + // Change the session timeout value to session_timeout minutes // 8*60*60 = 8 hours. + $sessionCookieExpireTime = $user_sesion_time; + } + + if ($sessionCookieExpireTime <= 0) { + $sessionCookieExpireTime = (10 * 365 * 24 * 60 * 60); + } else { + $sessionCookieExpireTime *= 60; + } + + if ($config['control_session_timeout'] === 'ignore_activity') { + $sessionMaxTimeout = (time() + $sessionCookieExpireTime); + if ((int) $userinfo['session_max_time_expire'] === 0 || $force_update === true) { + $userinfo['session_max_time_expire'] = $sessionMaxTimeout; + update_user($userinfo['id_user'], ['session_max_time_expire' => $sessionMaxTimeout]); + } else if (time() > (int) $userinfo['session_max_time_expire'] && (int) $userinfo['session_max_time_expire'] > 0) { + update_user($userinfo['id_user'], ['session_max_time_expire' => 0]); + } + } else { + if ((int) $userinfo['session_max_time_expire'] > 0) { + update_user($userinfo['id_user'], ['session_max_time_expire' => 0]); + } + } + +} + + /** * Undocumented function * @@ -3959,7 +4017,13 @@ function config_prepare_session() } if ($update_cookie === true) { - setcookie(session_name(), $_COOKIE[session_name()], (time() + $sessionCookieExpireTime), '/'); + if ((int) $user['session_max_time_expire'] > 0 && time() < $user['session_max_time_expire']) { + $sessionMaxTimeout = $user['session_max_time_expire']; + } else { + $sessionMaxTimeout = (time() + $sessionCookieExpireTime); + } + + setcookie(session_name(), $_COOKIE[session_name()], $sessionMaxTimeout, '/'); } } diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 8706e37fed..a6a368cd72 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1327,6 +1327,7 @@ CREATE TABLE IF NOT EXISTS `tusuario` ( `allowed_ip_active` TINYINT UNSIGNED DEFAULT 0, `allowed_ip_list` TEXT, `auth_token_secret` VARCHAR(45) DEFAULT NULL, + `session_max_time_expire` INT signed NOT NULL DEFAULT 0, CONSTRAINT `fk_filter_id` FOREIGN KEY (`id_filter`) REFERENCES tevent_filter (`id_filter`) ON DELETE SET NULL, UNIQUE KEY `id_user` (`id_user`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; From e483c255e0d63a31347f2060e4b1b0d7c41d9bce Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 8 Jun 2023 14:46:01 +0200 Subject: [PATCH 094/268] #11437 regenerate timeout when login user --- pandora_console/index.php | 1 + 1 file changed, 1 insertion(+) diff --git a/pandora_console/index.php b/pandora_console/index.php index aaf960eb91..6930027c78 100755 --- a/pandora_console/index.php +++ b/pandora_console/index.php @@ -662,6 +662,7 @@ if (isset($config['id_user']) === false) { db_logon($nick_in_db, $_SERVER['REMOTE_ADDR']); $_SESSION['id_usuario'] = $nick_in_db; $config['id_user'] = $nick_in_db; + config_prepare_expire_time_session(true); // Check if connection goes through F5 balancer. If it does, then // don't call config_prepare_session() or user will be back to login From fb297c88919084f83f9ba1d5f2e99abdb4b1c3c6 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 8 Jun 2023 15:56:13 +0200 Subject: [PATCH 095/268] #10696 delete switches from graphs in netflow widget --- .../include/lib/Dashboard/Widgets/netflow.php | 3 ++- pandora_console/include/styles/netflow_widget.css | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 pandora_console/include/styles/netflow_widget.css diff --git a/pandora_console/include/lib/Dashboard/Widgets/netflow.php b/pandora_console/include/lib/Dashboard/Widgets/netflow.php index 1451ccd9d9..6af2e78bab 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/netflow.php +++ b/pandora_console/include/lib/Dashboard/Widgets/netflow.php @@ -298,6 +298,7 @@ class Netflow extends Widget */ public function load() { + ui_require_css_file('netflow_widget', 'include/styles/', true); global $config; $output = ''; @@ -333,7 +334,7 @@ class Netflow extends Widget $config['style'], true ); - $style = 'height: 100%; border: none;'; + $style = 'width:100%; height: 100%; border: none;'; if ($this->values['chart_type'] !== 'netflow_area') { $style .= ' width: 95%;'; } diff --git a/pandora_console/include/styles/netflow_widget.css b/pandora_console/include/styles/netflow_widget.css new file mode 100644 index 0000000000..04b093c989 --- /dev/null +++ b/pandora_console/include/styles/netflow_widget.css @@ -0,0 +1,9 @@ +.menu_graph { + display: none; +} +.parent_graph { + width: 97% !important; +} +#image_hide_show_labels { + display: none !important; +} From 2c0d716caa46f55351809aebf1196c911d075c13 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Fri, 9 Jun 2023 08:45:32 +0200 Subject: [PATCH 096/268] #11093 VC items movement like grid when its enable --- .../visual-console-client/vc.main.min.js | 2 +- .../visual-console-client/vc.main.min.js.map | 2 +- .../operation/visual_console/view.php | 3 ++ visual_console_client/src/Item.ts | 4 +- visual_console_client/src/VisualConsole.ts | 42 ++++++++++++++++++- 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/pandora_console/include/visual-console-client/vc.main.min.js b/pandora_console/include/visual-console-client/vc.main.min.js index ddf086d274..4ee95bbc36 100644 --- a/pandora_console/include/visual-console-client/vc.main.min.js +++ b/pandora_console/include/visual-console-client/vc.main.min.js @@ -1,2 +1,2 @@ -(function(){"use strict";var __webpack_modules__={630:function(t,e,n){n.r(e),n.d(e,{FormContainer:function(){return a},InputGroup:function(){return s}});var r=n(510),i=function(){return i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&(this.inputGroupsByName=e.reduce((function(t,e){return e.onDataRequested(i.handleItemDataRequested),t[e.name]=e,t}),this.inputGroupsByName)),n.length>0&&(this.enabledInputGroupNames=o(o([],this.enabledInputGroupNames,!0),n.filter((function(t){return null!=i.inputGroupsByName[t]})),!0))}return t.prototype.getInputGroup=function(t){return this.inputGroupsByName[t]||null},t.prototype.addInputGroup=function(t,e){return void 0===e&&(e=null),t.onDataRequested(this.handleItemDataRequested),this.inputGroupsByName[t.name]=t,this.enabledInputGroupNames=this.enabledInputGroupNames.filter((function(e){return e!==t.name})),null!==e?e<=0?this.enabledInputGroupNames=o([t.name],this.enabledInputGroupNames,!0):e>=this.enabledInputGroupNames.length?this.enabledInputGroupNames=o(o([],this.enabledInputGroupNames,!0),[t.name],!1):this.enabledInputGroupNames=o(o(o([],this.enabledInputGroupNames.slice(0,e),!0),[t.name],!1),this.enabledInputGroupNames.slice(e),!0):this.enabledInputGroupNames=o(o([],this.enabledInputGroupNames,!0),[t.name],!1),this},t.prototype.removeInputGroup=function(t){return delete this.inputGroupsByName[t],this.enabledInputGroupNames=this.enabledInputGroupNames.filter((function(e){return e!==t})),this},t.prototype.getFormElement=function(t){var e=this;void 0===t&&(t="update");var n=document.createElement("form");n.id="visual-console-item-edition",n.className="visual-console-item-edition",n.addEventListener("submit",(function(t){t.preventDefault(),e.submitEventManager.emit({nativeEvent:t,data:e.enabledInputGroupNames.reduce((function(t,n){return e.inputGroupsByName[n]&&(t=i(i({},t),e.inputGroupsByName[n].data)),t}),{})})}));var r=document.createElement("div");return r.className="input-groups",this.enabledInputGroupNames.forEach((function(t){e.inputGroupsByName[t]&&r.appendChild(e.inputGroupsByName[t].element)})),n.appendChild(r),n},t.prototype.reset=function(){var t=this;this.enabledInputGroupNames.forEach((function(e){t.inputGroupsByName[e]&&t.inputGroupsByName[e].reset()}))},t.prototype.onSubmit=function(t){return this.submitEventManager.on(t)},t.prototype.onInputGroupDataRequested=function(t){return this.itemDataRequestedEventManager.on(t)},t}()},478:function(t,e,n){n.d(e,{TB:function(){return l}});var r=n(541),i=n(510),o=n(630),s=function(){return s=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){var r=e.labelElementRef.getBoundingClientRect(),i=r.width,o=r.height;switch(e.props.labelPosition){case"up":case"down":n-=o;break;case"left":case"right":t-=i}}var s={width:e.props.width,height:e.props.height},a={width:t,height:n};e.sizeChanged(s,a)&&(e.resizeElement(t,n),e.resizedEventManager.emit({item:e,prevSize:s,newSize:a}),e.debouncedResizementSave(t,n))})))},t.prototype.stopResizementListener=function(){this.removeResizement&&(this.removeResizement(),this.removeResizement=null)},t.prototype.init=function(){this.elementRef=this.createContainerDomElement(),this.labelElementRef=this.createLabelDomElement(),this.childElementRef=this.createDomElement(),this.elementRef.appendChild(this.childElementRef),this.elementRef.appendChild(this.labelElementRef),this.resizeElement(this.itemProps.width,this.itemProps.height),this.changeLabelPosition(this.itemProps.labelPosition)},t.prototype.createContainerDomElement=function(){var t,e=this;return this.props.isLinkEnabled?(t=document.createElement("a"),this.props.link?t.href=this.props.link:t.className="textDecorationNone"):(t=document.createElement("div")).className="textDecorationNone",t.classList.add("visual-console-item"),this.props.isOnTop&&t.classList.add("is-on-top"),t.style.left="".concat(this.props.x,"px"),t.style.top="".concat(this.props.y,"px"),this.props.alertOutline&&t.classList.add("is-alert-triggered"),t.addEventListener("dblclick",(function(t){e.meta.isBeingMoved||e.meta.isBeingResized||(e.unSelectItem(),e.selectItem(),e.dblClickEventManager.emit({item:e,nativeEvent:t}))})),t.addEventListener("click",(function(t){if(e.meta.editMode)t.preventDefault(),t.stopPropagation();else if(e.itemProps.isLinkEnabled&&null!=e.itemProps.link){var n=document.createElement("div");n.className="div-visual-console-spinner";var r=document.createElement("div");r.className="visual-console-spinner",n.appendChild(r);for(var i=t.composedPath(),o="visual-console-container",s=0;s0){var n=document.createElement("table"),r=document.createElement("tr"),i=document.createElement("tr"),o=document.createElement("tr"),s=document.createElement("td");switch(s.innerHTML=e,r.appendChild(s),n.appendChild(i),n.appendChild(r),n.appendChild(o),n.style.textAlign="center",this.props.labelPosition){case"up":case"down":this.props.width>0&&(n.style.width="".concat(this.props.width,"px"),n.style.height="");break;case"left":case"right":this.props.height>0&&(n.style.width="",n.style.height="".concat(this.props.height,"px"))}t.appendChild(n)}return t},t.prototype.getLabelWithMacrosReplaced=function(){var t=this.props;return(0,r.No)([{macro:"_date_",value:(0,r.rN)(new Date)},{macro:"_time_",value:(0,r.bc)(new Date)},{macro:"_agent_",value:null!=t.agentAlias?t.agentAlias:""},{macro:"_agentdescription_",value:null!=t.agentDescription?t.agentDescription:""},{macro:"_address_",value:null!=t.agentAddress?t.agentAddress:""},{macro:"_module_",value:null!=t.moduleName?t.moduleName:""},{macro:"_moduledescription_",value:null!=t.moduleDescription?t.moduleDescription:""}],this.props.label||"")},t.prototype.updateDomElement=function(t){t.innerHTML=this.createDomElement().innerHTML},Object.defineProperty(t.prototype,"props",{get:function(){return s({},this.itemProps)},set:function(t){this.setProps(t)},enumerable:!1,configurable:!0}),t.prototype.setProps=function(t){var e=this.props;this.itemProps=t,this.shouldBeUpdated(e,t)&&this.render(e,this._metadata)},Object.defineProperty(t.prototype,"meta",{get:function(){return s({},this._metadata)},set:function(t){this.setMeta(t)},enumerable:!1,configurable:!0}),t.prototype.setMeta=function(t){var e=this._metadata;this._metadata=s(s({},e),t),void 0!==t.isSelected&&e.isSelected!==t.isSelected&&this.selectionChangedEventManager.emit({selected:t.isSelected}),this.render(this.itemProps,e)},t.prototype.shouldBeUpdated=function(t,e){return t!==e},t.prototype.render=function(t,e){void 0===t&&(t=null),void 0===e&&(e=null),t&&this.updateDomElement(this.childElementRef),t&&!this.positionChanged(t,this.props)||(this.moveElement(this.props.x,this.props.y),t&&13!=t.type&&21!=t.type&&this.updateDomElement(this.childElementRef)),t&&!this.sizeChanged(t,this.props)||(this.resizeElement(this.props.width,this.props.height),t&&13!=t.type&&21!=t.type&&this.updateDomElement(this.childElementRef));var n=this.labelElementRef.innerHTML,r=this.createLabelDomElement().innerHTML;if(n!==r&&(this.labelElementRef.innerHTML=r),t&&t.labelPosition===this.props.labelPosition||this.changeLabelPosition(this.props.labelPosition),t&&t.isOnTop===this.props.isOnTop||(this.props.isOnTop?this.elementRef.classList.add("is-on-top"):this.elementRef.classList.remove("is-on-top")),t&&t.isLinkEnabled!==this.props.isLinkEnabled){var i=this.createContainerDomElement();i.innerHTML=this.elementRef.innerHTML;for(var o=this.elementRef.attributes,s=0;s0?e.item(0):null;if(n)switch(this.props.labelPosition){case"up":case"down":this.props.width>0&&(n.style.width="".concat(this.props.width,"px"),n.style.height="");break;case"left":case"right":this.props.height>0&&(n.style.width="",n.style.height="".concat(this.props.height,"px"))}},t.prototype.moveElement=function(t,e){this.elementRef.style.left="".concat(t,"px"),this.elementRef.style.top="".concat(e,"px")},t.prototype.move=function(t,e){this.moveElement(t,e),this.itemProps=s(s({},this.props),{x:t,y:e})},t.prototype.sizeChanged=function(t,e){return t.width!==e.width||t.height!==e.height},t.prototype.resizeElement=function(t,e){if(13!=this.props.type&&21!=this.props.type&&(this.childElementRef.style.width=t>0?"".concat(t,"px"):"",this.childElementRef.style.height=e>0?"".concat(e,"px"):""),this.props.label&&this.props.label.length>0){var n=this.labelElementRef.getElementsByTagName("table"),r=n.length>0?n.item(0):null;if(r)switch(this.props.labelPosition){case"up":case"down":r.style.width=t>0?"".concat(t,"px"):"";break;case"left":case"right":r.style.height=e>0?"".concat(e,"px"):""}}},t.prototype.resize=function(t,e){this.resizeElement(t,e),this.itemProps=s(s({},this.props),{width:t,height:e})},t.prototype.onClick=function(t){var e=this.clickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onDblClick=function(t){var e=this.dblClickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onMoved=function(t){var e=this.movedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onMovementFinished=function(t){var e=this.movementFinishedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onResized=function(t){var e=this.resizedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onResizeFinished=function(t){var e=this.resizeFinishedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onRemove=function(t){var e=this.removeEventManager.on(t);return this.disposables.push(e),e},t.prototype.onSelectionChanged=function(t){var e=this.selectionChangedEventManager.on(t);return this.disposables.push(e),e},t.prototype.selectItem=function(){this.meta=s(s({},this.meta),{isSelected:!0}),this.initMovementListener(this.elementRef),13!==this.props.type&&21!==this.props.type&&this.initResizementListener(this.elementRef)},t.prototype.unSelectItem=function(){this.meta=s(s({},this.meta),{isSelected:!1}),this.stopMovementListener(),13!==this.props.type&&this.stopResizementListener()},t.prototype.getFormContainer=function(){return t.getFormContainer(this.props)},t.getFormContainer=function(t){var e=t.type?function(t){var e="";switch(t){case 0:e=(0,r.t)("Static image");break;case 1:e=(0,r.t)("Module graph");break;case 2:case 6:case 7:case 8:e=(0,r.t)("Simple value");break;case 3:case 9:case 15:case 16:e=(0,r.t)("Percentile item");break;case 4:e=(0,r.t)("Label");break;case 5:e=(0,r.t)("Icon");break;case 10:e=(0,r.t)("Service");break;case 11:e=(0,r.t)("Group");break;case 12:e=(0,r.t)("Box");break;case 13:e=(0,r.t)("Line");break;case 14:e=(0,r.t)("Event history graph");break;case 17:e=(0,r.t)("Serialized pie graph");break;case 18:e=(0,r.t)("Bars graph");break;case 19:e=(0,r.t)("Clock");break;case 20:e=(0,r.t)("Color cloud");break;case 21:e=(0,r.t)("Network link");break;case 22:e=(0,r.t)("Odometer");break;case 23:e=(0,r.t)("Basic chart");break;default:e=(0,r.t)("Item")}return e}(t.type):(0,r.t)("Item");return new o.FormContainer(e,[],[])},t}();e.ZP=c},709:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{K:function(){return barsGraphPropsDecoder}});var _lib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(541),_Item__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(478),__extends=(extendStatics=function(t,e){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},extendStatics(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}extendStatics(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),extendStatics,__assign=function(){return __assign=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=i;)s++,t/=i;return t=i?Math.round(2*t)/2:Math.round(2*t),isNaN(t)&&(t=0),t+" "+["","K","M","G","T","P","E","Z","Y"][s]+n},BasicChart.prototype.pad=function(t,e,n){var r=t+"";return e<=r.length?r:this.pad(r+n,e,n)},BasicChart}(_Item__WEBPACK_IMPORTED_MODULE_1__.ZP);__webpack_exports__.Z=BasicChart},369:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{p:function(){return donutGraphPropsDecoder}});var _lib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(541),_Item__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(478),__extends=(extendStatics=function(t,e){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},extendStatics(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}extendStatics(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),extendStatics,__assign=function(){return __assign=Object.assign||function(t){for(var e,n=1,r=arguments.length;n-1&&t.listeners.splice(n,1)},this.emit=function(e){t.listeners.forEach((function(t){return t(e)})),t.listenersOncer.forEach((function(t){return t(e)})),t.listenersOncer=[]},this.pipe=function(e){return t.on((function(t){return e.emit(t)}))}}},541:function(t,e,n){n.d(e,{Dw:function(){return M},Aq:function(){return C},Ds:function(){return E},NV:function(){return _},fk:function(){return x},rN:function(){return y},bc:function(){return v},SM:function(){return m},bs:function(){return h},MH:function(){return d},JW:function(){return a},gx:function(){return l},xn:function(){return o},I1:function(){return i},oF:function(){return p},OR:function(){return f},No:function(){return g},HY:function(){return u},VJ:function(){return s},t:function(){return k}});var r=function(){return r=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&!isNaN(parseInt(t))?parseInt(t):e}function o(t,e){return"number"==typeof t?t:"string"==typeof t&&t.length>0&&!isNaN(parseFloat(t))?parseFloat(t):e}function s(t){return null==t||0===t.length}function a(t,e){return"string"==typeof t&&t.length>0?t:e}function l(t){return"boolean"==typeof t?t:"number"==typeof t?t>0:"string"==typeof t&&("1"===t||"true"===t)}function c(t,e,n){void 0===n&&(n=" "),"number"==typeof t&&(t="".concat(t)),"number"==typeof n&&(n="".concat(n));var r=e-t.length;if(0===r)return t;if(r<0)return t.substr(Math.abs(r));if(r===n.length)return"".concat(n).concat(t);if(r0&&r_||d+o+y.width-g>u.width||o===b&&d<0&&r>f+b+c,x=i0&&im||v+s+y.height-g>u.height||s===E&&v<0&&i>h+E+p;(e=w?0:k?b:d+o)<0&&(e=0),(n=x?0:P?E:v+s)<0&&(n=0),a=r,l=i,e===o&&n===s||(C(e,n),M(e,n),o=e,s=n)},x=function(){o=0,s=0,a=0,l=0,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",x),t.draggable=i,document.body.style.userSelect="auto"},P=function(e){if(2!==e.button){e.stopPropagation(),t.draggable=!1,t.setAttribute("ondragstart","return false;"),t.setAttribute("draggable","false");var n=w(t,r);o=n.left,s=n.top,a=e.pageX,l=e.pageY,c=e.offsetX,p=e.offsetY,u=r.getBoundingClientRect(),d=w(r),h=d.top,m=h+u.height,f=d.left,_=f+u.width,y=t.getBoundingClientRect(),v=window.getComputedStyle(t).borderWidth||"0",g=2*Number.parseInt(v),document.addEventListener("mousemove",k),document.addEventListener("mouseup",x),document.body.style.userSelect="none"}};return t.addEventListener("mousedown",P),function(){t.removeEventListener("mousedown",P),x()}}function C(t,e){var n=document.createElement("div");n.className="resize-draggable",t.appendChild(n);var r=t.parentElement,i=t.draggable,o=0,s=0,a=0,l=0,c=0,p=r.getBoundingClientRect(),u=w(r),d=u.top,h=d+p.height,m=u.left,f=m+p.width,_=w(t),y=_.top,v=_.left,g=window.getComputedStyle(t).borderWidth||"0",M=Number.parseInt(g),C=E(32,e),k=b(16,e),x=function(t){var e=o+(t.pageX-a),n=s+(t.pageY-l);e===o&&n===s||ev+(o-c)||(e<15?e=15:e+v-M/2>=f&&(e=f-v),n<15?n=15:n+y-M/2>=h&&(n=h-y),k(e,n),C(e,n),o=e,s=n,a=t.pageX,l=t.pageY)},P=function(){o=0,s=0,a=0,l=0,c=0,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",P),t.draggable=i,document.body.style.userSelect="auto"};return n.addEventListener("mousedown",(function(e){e.stopPropagation(),t.draggable=!1;var n=t.getBoundingClientRect(),i=n.width,g=n.height;o=i,s=g,a=e.pageX,l=e.pageY,c=e.offsetX,e.offsetY,p=r.getBoundingClientRect(),u=w(r),d=u.top,h=d+p.height,m=u.left,f=m+p.width,_=w(t),y=_.top,v=_.left,document.addEventListener("mousemove",x),document.addEventListener("mouseup",P),document.body.style.userSelect="none"})),function(){n.remove(),P()}}function k(t){return t}function x(t,e,n){return void 0===e&&(e=140),void 0===n&&(n="…"),t.trim().length>e?t.substr(0,e).trim()+n:t}}},__webpack_module_cache__={};function __webpack_require__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var n=__webpack_module_cache__[t]={exports:{}};return __webpack_modules__[t](n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=function(t,e){for(var n in e)__webpack_require__.o(e,n)&&!__webpack_require__.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},__webpack_require__.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},__webpack_require__.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var __webpack_exports__={};!function(){var t,e=__webpack_require__(541),n=__webpack_require__(478),r=(t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)},function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}),i=function(){return i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){var y=_.item(0);if(null!=y){y.setAttribute("width","".concat(i+s)),y.setAttribute("height","".concat(o+s));var v=y.getElementsByTagNameNS(A,"line");if(v.length>0){var g=v.item(0);null!=g&&(g.setAttribute("x1","".concat(d)),g.setAttribute("y1","".concat(h)),g.setAttribute("x2","".concat(m)),g.setAttribute("y2","".concat(f)),g.setAttribute("stroke",u||"black"),g.setAttribute("stroke-width","".concat(s)))}}}if(this.moveMode){var b=document.createElement("div"),E=document.createElement("div");if(this.isMoving){var w=t.getElementsByClassName("visual-console-item-line-circle-start");w.length>0&&(k=w.item(0))&&(b=k);var M=t.getElementsByClassName("visual-console-item-line-circle-end");M.length>0&&(k=M.item(0))&&(E=k)}if(b.classList.add("visual-console-item-line-circle","visual-console-item-line-circle-start"),b.style.width="".concat(2*this.circleRadius,"px"),b.style.height="".concat(2*this.circleRadius,"px"),b.style.borderRadius="50%",b.style.backgroundColor="".concat(u),b.style.position="absolute",b.style.left="".concat(d-this.circleRadius,"px"),b.style.top="".concat(h-this.circleRadius,"px"),b.style.cursor="move",E.classList.add("visual-console-item-line-circle","visual-console-item-line-circle-end"),E.style.width="".concat(2*this.circleRadius,"px"),E.style.height="".concat(2*this.circleRadius,"px"),E.style.borderRadius="50%",E.style.backgroundColor="".concat(u),E.style.position="absolute",E.style.left="".concat(m-this.circleRadius,"px"),E.style.top="".concat(f-this.circleRadius,"px"),E.style.cursor="move",null!==t.parentElement){for(var C=t.parentElement.getElementsByClassName("visual-console-item-line-circle");C.length>0;)(k=C.item(0))&&k.remove();t.parentElement.appendChild(b),t.parentElement.appendChild(E)}this.initStartPositionMovementListener(b,this.elementRef.parentElement),this.initEndPositionMovementListener(E,this.elementRef.parentElement)}else if(this.moveMode)this.stopStartPositionMovementListener();else if(this.stopStartPositionMovementListener(),null!==t.parentElement)for(C=t.parentElement.getElementsByClassName("visual-console-item-line-circle");C.length>0;){var k;(k=C.item(0))&&k.remove()}},n.extractBoxSizeAndPosition=function(t,e){return{width:Math.abs(t.x-e.x),height:Math.abs(t.y-e.y),x:Math.min(t.x,e.x),y:Math.min(t.y,e.y)}},n.prototype.move=function(e,n){t.prototype.moveElement.call(this,e,n);var r=this.props.startPosition.x-this.props.endPosition.x<=0,i=this.props.startPosition.y-this.props.endPosition.y<=0,o={x:r?e:this.props.width+e,y:i?n:this.props.height+n},s={x:r?this.props.width+e:e,y:i?this.props.height+n:n};this.props=T(T({},this.props),{startPosition:o,endPosition:s})},n.prototype.remove=function(){this.stopStartPositionMovementListener(),t.prototype.remove.call(this)},n.prototype.onLineMovementFinished=function(t){var e=this.lineMovedEventManager.on(t);return this.lineMovedEventDisposables.push(e),e},n}(n.ZP),S=L,D=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),R=function(){return R=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){if(null!=(r=g.item(0))){for(var b=r.getElementsByTagNameNS(N,"line"),E=r.getElementsByTagNameNS(N,"g");E.length>0;)E[0].remove();b.length>0&&(n=b.item(0))}if(null!=r&&null!=n){var w=25,M=p.x-o+a/2+l/2,C=p.y-s+a/2+c/2,k=u.x-o+a/2+l/2,x=u.y-s+a/2+c/2,P=p.x-o+a/2+l/2,I=p.y-s+a/2+c/2,T=u.x-o+a/2+l/2,O=u.y-s+a/2+c/2,A=180*Math.atan2(x-C,k-M)/Math.PI;if(y<=0&&(b=m.split("
"),y=0,b.forEach((function(t){t.length>y&&(y=10*t.length)})),v<=0&&(v=25*b.length)),f<=0&&(b=h.split("
"),f=0,b.forEach((function(t){t.length>f&&(f=10*t.length)})),_<=0&&(_=25*b.length)),PT&&(P-=w+y,T+=w),IO&&(I-=w+v,O+=w),void 0===d&&(d="#000"),null!==e.parentElement){for(var L=e.parentElement.getElementsByClassName("vc-item-nl-label");L.length>0;){var S=L.item(0);S&&S.remove()}for(var D=e.parentElement.getElementsByClassName("vc-item-nl-arrow");D.length>0;){var R=D.item(0);R&&R.remove()}}var B=2*a,z=M+(k-M)/2-B,W=C+(x-C)/2-B,j=document.createElement("div");j.classList.add("vc-item-nl-arrow"),j.style.position="absolute",j.style.border="".concat(B,"px solid transparent"),j.style.borderBottom="".concat(B,"px solid ").concat(d),j.style.left="".concat(z,"px"),j.style.top="".concat(W,"px"),j.style.transform="rotate(".concat(90+A,"deg)");var H=document.createElement("div");if(H.classList.add("vc-item-nl-arrow"),H.style.position="absolute",H.style.border="".concat(B,"px solid transparent"),H.style.borderBottom="".concat(B,"px solid ").concat(d),H.style.left="".concat(z,"px"),H.style.top="".concat(W,"px"),H.style.transform="rotate(".concat(270+A,"deg)"),null!==e.parentElement&&(e.parentElement.appendChild(j),e.parentElement.appendChild(H)),""!=m){var V=document.createElement("div");try{V.innerHTML=m,V.style.position="absolute",V.style.left="".concat(P,"px"),V.style.top="".concat(I,"px"),V.style.width="".concat(y,"px"),V.style.border="2px solid ".concat(d),V.classList.add("vc-item-nl-label","label-start")}catch(t){console.error(t)}null!==e.parentElement&&e.parentElement.appendChild(V)}if(""!=h){var G=document.createElement("div");try{G.innerHTML=h,G.style.position="absolute",G.style.left="".concat(T,"px"),G.style.top="".concat(O,"px"),G.style.width="".concat(f,"px"),G.style.border="2px solid ".concat(d),G.classList.add("vc-item-nl-label","label-end")}catch(t){console.error(t)}null!==e.parentElement&&e.parentElement.appendChild(G)}}}},n}(S),W=z,j=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),H=function(){return H=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){var _=document.createElementNS(t,"text");_.setAttribute("text-anchor","middle"),_.setAttribute("font-size","8"),_.setAttribute("transform","translate(30 50) rotate(90)"),_.setAttribute("fill",r),_.textContent=f,h.append(_)}var y=document.createElementNS(t,"g");y.setAttribute("class","marks");var v=document.createElementNS(t,"g");v.setAttribute("class","mark"),v.setAttribute("transform","translate(50 50)");var g=document.createElementNS(t,"line");g.setAttribute("x1","36"),g.setAttribute("y1","0"),g.setAttribute("x2","46"),g.setAttribute("y2","0"),g.setAttribute("stroke",r),g.setAttribute("stroke-width","5");var b=document.createElementNS(t,"line");b.setAttribute("x1","36"),b.setAttribute("y1","0"),b.setAttribute("x2","46"),b.setAttribute("y2","0"),b.setAttribute("stroke",n),b.setAttribute("stroke-width","1"),v.append(g,b),y.append(v);for(var E=1;E<60;E++){var w=document.createElementNS(t,"line");w.setAttribute("y1","0"),w.setAttribute("y2","0"),w.setAttribute("stroke",r),w.setAttribute("transform","translate(50 50) rotate(".concat(6*E,")")),E%5==0?(w.setAttribute("x1","38"),w.setAttribute("x2","46"),w.setAttribute("stroke-width",E%15==0?"2":"1")):(w.setAttribute("x1","42"),w.setAttribute("x2","46"),w.setAttribute("stroke-width","0.5")),y.append(w)}var M=document.createElementNS(t,"g");M.setAttribute("class","hour-hand"),M.setAttribute("transform","translate(50 50)");var C=document.createElementNS(t,"line");C.setAttribute("class","hour-hand-a"),C.setAttribute("x1","0"),C.setAttribute("y1","0"),C.setAttribute("x2","30"),C.setAttribute("y2","0"),C.setAttribute("stroke",o),C.setAttribute("stroke-width","4"),C.setAttribute("stroke-linecap","round");var k=document.createElementNS(t,"line");k.setAttribute("class","hour-hand-b"),k.setAttribute("x1","0"),k.setAttribute("y1","0"),k.setAttribute("x2","29.9"),k.setAttribute("y2","0"),k.setAttribute("stroke",i),k.setAttribute("stroke-width","3.1"),k.setAttribute("stroke-linecap","round"),M.append(C,k);var x=document.createElementNS(t,"g");x.setAttribute("class","minute-hand"),x.setAttribute("transform","translate(50 50)");var P=document.createElementNS(t,"line");P.setAttribute("class","minute-hand-a"),P.setAttribute("x1","0"),P.setAttribute("y1","0"),P.setAttribute("x2","40"),P.setAttribute("y2","0"),P.setAttribute("stroke",o),P.setAttribute("stroke-width","2"),P.setAttribute("stroke-linecap","round");var I=document.createElementNS(t,"line");I.setAttribute("class","minute-hand-b"),I.setAttribute("x1","0"),I.setAttribute("y1","0"),I.setAttribute("x2","39.9"),I.setAttribute("y2","0"),I.setAttribute("stroke",i),I.setAttribute("stroke-width","1.5"),I.setAttribute("stroke-linecap","round");var T=document.createElementNS(t,"circle");T.setAttribute("r","3"),T.setAttribute("fill",i),x.append(P,I,T);var O=document.createElementNS(t,"g");O.setAttribute("class","second-hand"),O.setAttribute("transform","translate(50 50)");var A=document.createElementNS(t,"line");A.setAttribute("x1","0"),A.setAttribute("y1","0"),A.setAttribute("x2","46"),A.setAttribute("y2","0"),A.setAttribute("stroke",s),A.setAttribute("stroke-width","1"),A.setAttribute("stroke-linecap","round");var L=document.createElementNS(t,"circle");L.setAttribute("r","2"),L.setAttribute("fill",s),O.append(A,L);var S=document.createElementNS(t,"circle");S.setAttribute("cx","50"),S.setAttribute("cy","50"),S.setAttribute("r","0.3"),S.setAttribute("fill",i);var D=this.getOriginDate(),R=D.getSeconds(),N=D.getMinutes(),B=6*R,z=6*N+R/60*6,W=30*D.getHours()+N/60*30;if(M.setAttribute("transform","translate(50 50) rotate(".concat(W,")")),x.setAttribute("transform","translate(50 50) rotate(".concat(z,")")),O.setAttribute("transform","translate(50 50) rotate(".concat(B,")")),d.append(h,y,M,x,O,S),d.setAttribute("transform","rotate(-90)"),u.innerHTML="\n \n "),u.append(d),"datetime"===this.props.clockFormat){var j=document.createElement("span");j.className="date",j.textContent=(0,e.rN)(D,"default"),j.style.fontSize="".concat(p,"px"),this.props.color&&(j.style.color=this.props.color),u.append(j)}return u},n.prototype.createDigitalClock=function(){var t=document.createElement("div");t.className="digital-clock";var n=this.getElementSize(),r=n.width,i=n.height,o=r;i0){var m=document.createElement("span");m.className="timezone",m.textContent=h,m.style.fontSize="".concat(c,"px"),this.props.color&&(m.style.color=this.props.color),t.append(m)}return t},n.prototype.getOriginDate=function(t){void 0===t&&(t=null);var e=t||new Date,n=1e3*this.props.clockTimezoneOffset,r=60*e.getTimezoneOffset()*1e3,i=e.getTime()+n+r;return new Date(i)},n.prototype.getHumanTimezone=function(t){void 0===t&&(t=this.props.clockTimezone);var e=t.split("/")[1];return(void 0===e?"":e).replace("_"," ")},n.prototype.getElementSize=function(t,e){switch(void 0===t&&(t=this.props.width),void 0===e&&(e=this.props.height),this.props.clockType){case"analogic":var n=100;t>0&&e>0?n=Math.min(t,e):t>0?n=t:e>0&&(n=e);var r=0;return"datetime"===this.props.clockFormat&&(r=e/8),{width:n,height:n+r};case"digital":return t>0&&e>0?e=t/20?e=t/2:e>0?t=2*e:(t=100,e=50),{width:t,height:e};default:throw new Error("invalid clock type.")}},n.TICK_INTERVAL=1e3,n}(n.ZP),X=Y,Q=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),$=function(){return $=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){t.style.borderStyle="solid";var e=Math.min(this.props.width,this.props.height)/2,n=Math.min(this.props.borderWidth,e);t.style.borderWidth="".concat(n,"px"),this.props.borderColor&&(t.style.borderColor=this.props.borderColor)}return t},e.prototype.updateDomElement=function(t){if(this.props.fillTransparent?t.style.backgroundColor="transparent":this.props.fillColor&&(t.style.backgroundColor=this.props.fillColor),this.props.borderWidth>0){t.style.borderStyle="solid";var e=Math.min(this.props.width,this.props.height)/2,n=Math.min(this.props.borderWidth,e);t.style.borderWidth="".concat(n,"px"),this.props.borderColor&&(t.style.borderColor=this.props.borderColor)}},e}(n.ZP),nt=et,rt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),it=function(){return it=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&(r=(0,e.No)([{macro:/\(?_VALUE_\)?/i,value:r}],i)),t.innerHTML=r}return t},n.prototype.createLabelDomElement=function(){var t=document.createElement("div");return t.className="visual-console-item-label",t},n}(n.ZP),ht=dt,mt=__webpack_require__(280),ft=Math.PI,_t=2*ft,yt=1e-6,vt=_t-yt;function gt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function bt(){return new gt}gt.prototype=bt.prototype={constructor:gt,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,i,o){this._+="C"+ +t+","+ +e+","+ +n+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,e,n,r,i){t=+t,e=+e,n=+n,r=+r,i=+i;var o=this._x1,s=this._y1,a=n-t,l=r-e,c=o-t,p=s-e,u=c*c+p*p;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(u>yt)if(Math.abs(p*a-l*c)>yt&&i){var d=n-o,h=r-s,m=a*a+l*l,f=d*d+h*h,_=Math.sqrt(m),y=Math.sqrt(u),v=i*Math.tan((ft-Math.acos((m+u-f)/(2*_*y)))/2),g=v/y,b=v/_;Math.abs(g-1)>yt&&(this._+="L"+(t+g*c)+","+(e+g*p)),this._+="A"+i+","+i+",0,0,"+ +(p*d>c*h)+","+(this._x1=t+b*a)+","+(this._y1=e+b*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,r,i,o){t=+t,e=+e,o=!!o;var s=(n=+n)*Math.cos(r),a=n*Math.sin(r),l=t+s,c=e+a,p=1^o,u=o?r-i:i-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>yt||Math.abs(this._y1-c)>yt)&&(this._+="L"+l+","+c),n&&(u<0&&(u=u%_t+_t),u>vt?this._+="A"+n+","+n+",0,1,"+p+","+(t-s)+","+(e-a)+"A"+n+","+n+",0,1,"+p+","+(this._x1=l)+","+(this._y1=c):u>yt&&(this._+="A"+n+","+n+",0,"+ +(u>=ft)+","+p+","+(this._x1=t+n*Math.cos(i))+","+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var Et=bt;function wt(t){return function(){return t}}var Mt=Math.abs,Ct=Math.atan2,kt=Math.cos,xt=Math.max,Pt=Math.min,It=Math.sin,Tt=Math.sqrt,Ot=1e-12,At=Math.PI,Lt=At/2,St=2*At;function Dt(t){return t>1?0:t<-1?At:Math.acos(t)}function Rt(t){return t>=1?Lt:t<=-1?-Lt:Math.asin(t)}function Nt(t){return t.innerRadius}function Bt(t){return t.outerRadius}function zt(t){return t.startAngle}function Wt(t){return t.endAngle}function jt(t){return t&&t.padAngle}function Ht(t,e,n,r,i,o,s,a){var l=n-t,c=r-e,p=s-i,u=a-o,d=u*l-p*c;if(!(d*dO*O+A*A&&(C=x,k=P),{cx:C,cy:k,x01:-p,y01:-u,x11:C*(i/E-1),y11:k*(i/E-1)}}var Gt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ut=function(){return Ut=Object.assign||function(t){for(var e,n=1,r=arguments.length;nd;if(a||(a=l=Et()),uOt)if(m>St-Ot)a.moveTo(u*kt(d),u*It(d)),a.arc(0,0,u,d,h,!f),p>Ot&&(a.moveTo(p*kt(h),p*It(h)),a.arc(0,0,p,h,d,f));else{var _,y,v=d,g=h,b=d,E=h,w=m,M=m,C=s.apply(this,arguments)/2,k=C>Ot&&(r?+r.apply(this,arguments):Tt(p*p+u*u)),x=Pt(Mt(u-p)/2,+n.apply(this,arguments)),P=x,I=x;if(k>Ot){var T=Rt(k/p*It(C)),O=Rt(k/u*It(C));(w-=2*T)>Ot?(b+=T*=f?1:-1,E-=T):(w=0,b=E=(d+h)/2),(M-=2*O)>Ot?(v+=O*=f?1:-1,g-=O):(M=0,v=g=(d+h)/2)}var A=u*kt(v),L=u*It(v),S=p*kt(E),D=p*It(E);if(x>Ot){var R,N=u*kt(g),B=u*It(g),z=p*kt(b),W=p*It(b);if(mOt?I>Ot?(_=Vt(z,W,A,L,u,I,f),y=Vt(N,B,S,D,u,I,f),a.moveTo(_.cx+_.x01,_.cy+_.y01),IOt&&w>Ot?P>Ot?(_=Vt(S,D,N,B,p,-P,f),y=Vt(A,L,z,W,p,-P,f),a.lineTo(_.cx+_.x01,_.cy+_.y01),P0){var d=document.createElementNS(qt,"tspan");d.setAttribute("x","0"),d.setAttribute("dy","1em"),d.textContent="".concat(t),d.style.fontSize="8pt";var h=document.createElementNS(qt,"tspan");h.setAttribute("x","0"),h.setAttribute("dy","1em"),h.textContent="".concat(this.props.unit),h.style.fontSize="8pt",u.append(d,h),u.setAttribute("transform","translate(50 33)")}else u.textContent="".concat(t),u.style.fontSize="8pt",u.setAttribute("transform","translate(50 50)");else u.textContent="".concat(n,"%"),u.setAttribute("transform","translate(50 50)");i.append(u)}return!0!==this.props.agentDisabled&&!0!==this.props.moduleDisabled||i.setAttribute("opacity","0.2"),null!==i&&r.append(i),r},e.prototype.updateDomElement=function(t){!1===this.meta.isBeingResized&&this.resizeElement(this.props.width,this.props.height),t.innerHTML=this.createDomElement().innerHTML},e.prototype.resizeElement=function(e,n){"progress-bar"===this.props.percentileType?t.prototype.resizeElement.call(this,e,35):t.prototype.resizeElement.call(this,e,e)},e.prototype.resize=function(e){this.resizeElement(e,e);var n=this.props.maxValue||0;"progress-bar"===this.props.percentileType&&(n=35),t.prototype.setProps.call(this,Ut(Ut({},this.props),{width:e,height:n}))},e.prototype.getProgress=function(){var t=this.props.minValue||0,e=this.props.maxValue||100,n=null==this.props.value?0:this.props.value;return n<=t?0:n>=e?100:Math.trunc((n-t)/(e-t)*100)},e}(n.ZP),Yt=Jt,Xt=__webpack_require__(369),Qt=__webpack_require__(709),$t=__webpack_require__(600),te=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),ee=function(){return ee=Object.assign||function(t){for(var e,n=1,r=arguments.length;n3&&n<=6?e=" K":n>6&&n<=9?e=" M":n>9&&n<=12?e=" G":n>12&&n<=15&&(e=" T"),e},e.prototype.getCoords=function(t,e){if(""!==this.props.minMaxValue){var n=JSON.parse(this.props.minMaxValue);if(n.min===t)t=0;else if(n.max===t||100===t)t=100;else{var r=n.max-n.min;t=100-100*(n.max-t)/r}}t=180-1.8*t;var i=e+Math.cos(t*Math.PI/180)*e,o=e-Math.sin(t*Math.PI/180)*e;return"".concat(i,",").concat(o)},e.prototype.truncateTitle=function(t){if(null!=t&&t.length>22){var e=t.length/2,n=e-9,r=t.substr(0,e-n),i=t.substr(e+n);return"".concat(r,"...").concat(i)}return t},e}(n.ZP),pe=ce,ue=__webpack_require__(880),de=function(){return de=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0?t.selected=!0:t.selected=!1,i.selectionChangedEventManager.emit(t)},this.handleContainerClick=function(){i.unSelectItems()},this.containerRef=t,this._props=function(t){var n=t.id,r=t.name,i=t.groupId,o=t.backgroundURL,s=t.backgroundColor,a=t.isFavorite,l=t.relationLineWidth,c=t.maintenanceMode;if(null==n||isNaN(parseInt(n)))throw new TypeError("invalid Id.");if("string"!=typeof r||0===r.length)throw new TypeError("invalid name.");if(null==i||isNaN(parseInt(i)))throw new TypeError("invalid group Id.");return de({id:parseInt(n),name:r,groupId:parseInt(i),backgroundURL:(0,e.JW)(o,null),backgroundColor:(0,e.JW)(s,null),isFavorite:(0,e.gx)(a),relationLineWidth:(0,e.I1)(l,0),maintenanceMode:c},(0,e.HY)(t))}(n),this.render(),(r=r.sort((function(t,e){return null==t.id||null==e.id?0:t.id>e.id?1:-1}))).forEach((function(t){return i.addElement(t,i)})),this.buildRelations(),this.elements.forEach((function(t){t instanceof S&&i.refreshLink(t)})),this.containerRef.addEventListener("click",this.handleContainerClick)}return t.prototype.coordinatesInItem=function(t,e,n){return 13!=n.type&&21!=n.type&&t>n.x&&tn.y&&e0?(null==this.lineLinks[n]&&(this.lineLinks[n]={}),this.lineLinks[n][e]={start:n,end:r}):this.lines[e].start>0&&(this.lineLinks[this.lines[e].start][e].start=0,this.lines[e].start=0),r>0?(null==this.lineLinks[r]&&(this.lineLinks[r]={}),this.lineLinks[r][e]={start:n,end:r}):this.lines[e].end>0&&(this.lineLinks[this.lines[e].end][e].end=0,this.lines[e].end=0),this.lines[e]={start:n,end:r},this.lineLinks)this.lineLinks[i][e]&&(0==this.lineLinks[i][e].start&&0==this.lineLinks[i][e].end&&(delete this.lineLinks[i][e],0===Object.keys(this.lineLinks[i]).length&&delete this.lineLinks[i]),(this.lineLinks[i][e].start!=n&&this.lineLinks[i][e].end==r||this.lineLinks[i][e].start==n&&this.lineLinks[i][e].end!=r)&&(delete this.lineLinks[i][e],0===Object.keys(this.lineLinks[i]).length&&delete this.lineLinks[i]))}catch(t){console.error(t)}},t.prototype.updateLinesConnected=function(t,n,r){var i=this;null!=this.lineLinks[t.id]&&(Object.keys(this.lineLinks[t.id]).forEach((function(o){var s=parseInt(o);if(-1!==i.elementIds.indexOf(s)){var a=i.elementsById[s];if(a.props){var l=a.props.startPosition.x,c=a.props.startPosition.y,p=a.props.endPosition.x,u=a.props.endPosition.y;t.id==i.lineLinks[t.id][s].start&&(l=n.x+t.width/2,c=n.y+t.height/2),t.id==i.lineLinks[t.id][s].end&&(p=n.x+t.width/2,u=n.y+t.height/2),i.updateElement(de(de({},a.props),{startX:l,startY:c,endX:p,endY:u})),r&&(0,e.Ds)(500,(function(t){i.lineMovedEventManager.emit({item:t.line,startPosition:{x:t.startX,y:t.startY},endPosition:{x:t.endX,y:t.endY}})}))({line:a,startX:l,startY:c,endX:p,endY:u})}}})),this.buildRelations(t.id,n.x+t.width/2,n.y+t.height/2))},Object.defineProperty(t.prototype,"elements",{get:function(){var t=this;return this.elementIds.map((function(e){return t.elementsById[e]})).filter((function(t){return null!=t}))},enumerable:!1,configurable:!0}),t.prototype.addElement=function(t,n){void 0===n&&(n=this);try{var r=function(t){var n=(0,e.I1)(t.type,null);if(null==n)throw new TypeError("missing item type.");var r=(0,e.SM)(t);switch(n){case 0:return new l(s(t),r);case 1:return new $t.Z((0,$t.C)(t),r);case 2:case 6:case 7:case 8:return new ht(ut(t),r);case 3:case 9:case 15:case 16:return new Yt(Zt(t),r);case 4:return new at(ot(t),r);case 5:return new h(u(t),r);case 10:return new ie(ne(t),r);case 11:return new U(V(t),r);case 12:return new nt(tt(t),r);case 13:return new S(O(t),r);case 14:return new mt.Z((0,mt.o)(t),r);case 17:return new Xt.Z((0,Xt.p)(t),r);case 18:return new Qt.Z((0,Qt.K)(t),r);case 19:return new X(J(t),r);case 20:return new x(E(t),r);case 21:return new W(B(t),r);case 22:return new pe(ae(t),r);case 23:return new ue.Z((0,ue.u)(t),r);default:throw new TypeError("item not found")}}(t);return n.elementsById[r.props.id]=r,n.elementIds.push(r.props.id),r.onRemove(n.handleElementRemove),r.onSelectionChanged(n.handleElementSelectionChanged),r.onClick(n.handleElementClick),r.onDblClick(n.handleElementDblClick),r instanceof S?(r.onLineMovementFinished(n.handleLineElementMovementFinished),this.refreshLink(r)):(r.onMoved(n.handleElementMovement),r.onMovementFinished(n.handleElementMovementFinished),r.onResized(n.handleElementResizement),r.onResizeFinished(n.handleElementResizementFinished)),n.containerRef.append(r.elementRef),r}catch(t){console.error("Error creating a new element:",t.message)}},t.prototype.updateElements=function(t){var e=this,n=t.map((function(t){return t.id||null})).filter((function(t){return null!=t}));this.elementIds.filter((function(t){return n.indexOf(t)<0})).forEach((function(t){null!=e.elementsById[t]&&(e.elementsById[t].remove(),delete e.elementsById[t])})),this.elementIds=n,t.forEach((function(t){if(t.id)if(null==e.elementsById[t.id])e.addElement(t);else try{e.elementsById[t.id].props=he(t)}catch(t){console.error("Error updating an element:",t.message)}})),this.buildRelations()},t.prototype.updateElement=function(t){try{this.elementsById[t.id].props=de({},he(t))}catch(t){console.error("Error updating element:",t.message)}this.buildRelations()},Object.defineProperty(t.prototype,"props",{get:function(){return de({},this._props)},set:function(t){var e=this.props;this._props=t,this.render(e)},enumerable:!1,configurable:!0}),t.prototype.render=function(t){void 0===t&&(t=null),t?(t.backgroundURL!==this.props.backgroundURL&&(this.containerRef.style.backgroundImage=null!==this.props.backgroundURL?"url(".concat(this.props.backgroundURL,")"):""),null!=this.props.backgroundColor&&t.backgroundColor!==this.props.backgroundColor&&(this.containerRef.style.backgroundColor=this.props.backgroundColor),this.sizeChanged(t,this.props)&&this.resizeElement(this.props.width,this.props.height)):(this.props.backgroundURL&&(this.containerRef.style.backgroundImage=null!==this.props.backgroundURL?"url(".concat(this.props.backgroundURL,")"):""),this.props.backgroundColor&&(this.containerRef.style.backgroundColor=this.props.backgroundColor),this.resizeElement(this.props.width,this.props.height))},t.prototype.sizeChanged=function(t,e){return t.width!==e.width||t.height!==e.height},t.prototype.resizeElement=function(t,e){this.containerRef.style.width="".concat(t,"px"),this.containerRef.style.height="".concat(e,"px")},t.prototype.resize=function(t,e){this.props=de(de({},this.props),{width:t,height:e})},t.prototype.remove=function(){this.disposables.forEach((function(t){return t.dispose()})),this.elements.forEach((function(t){return t.remove()})),this.elementsById={},this.elementIds=[],this.clearRelations(),this.containerRef.removeEventListener("click",this.handleContainerClick),this.containerRef.innerHTML=""},t.prototype.buildRelations=function(t,e,n){var r=this;this.clearRelations(),this.elements.forEach((function(i){if(null!==i.props.parentId){var o=r.elementsById[i.props.parentId],s=r.elementsById[i.props.id];o&&s&&(null!=t?i.props.parentId==t?r.addRelationLine(o,s,e,n):i.props.id==t?r.addRelationLine(o,s,void 0,void 0,e,n):r.addRelationLine(o,s):r.addRelationLine(o,s))}}))},t.prototype.clearRelations=function(t){if(null!=t)for(var e in this.relations){var n=e.split("|"),r=Number.parseInt(n[0]),i=Number.parseInt(n[1]);t!==r&&t!==i||(this.relations[e].remove(),delete this.relations[e])}else for(var e in this.relations)this.relations[e].remove(),delete this.relations[e]},t.prototype.getRelationLine=function(t,e){var n="".concat(t,"|").concat(e);return this.relations[n]||null},t.prototype.getItemRelations=function(t){var e=[];for(var n in this.relations){var r=n.split("|"),i=Number.parseInt(r[0]),o=Number.parseInt(r[1]);t!==i&&t!==o||e.push({parentId:i,childId:o,line:this.relations[n]})}return e},t.prototype.getVisualCenter=function(t,e){var n=t.x+e.elementRef.clientWidth/2,r=t.y+e.elementRef.clientHeight/2;if(void 0!==e.props.label||""!==e.props.label||null!==e.props.label)switch(e.props.labelPosition){case"up":r=t.y+(e.elementRef.clientHeight+e.labelElementRef.clientHeight)/2;break;case"down":r=t.y+(e.elementRef.clientHeight-e.labelElementRef.clientHeight)/2;break;case"right":n=t.x+(e.elementRef.clientWidth-e.labelElementRef.clientWidth)/2;break;case"left":n=t.x+(e.elementRef.clientWidth+e.labelElementRef.clientWidth)/2}return{x:n,y:r}},t.prototype.addRelationLine=function(t,n,r,i,o,s){var a="".concat(t.props.id,"|").concat(n.props.id);null!=this.relations[a]&&this.relations[a].remove();var l=this.getVisualCenter(t.props,t),c=l.x,p=l.y,u=this.getVisualCenter(n.props,n),d=u.x,h=u.y;null!=r&&(c=r),null!=i&&(p=i),null!=o&&(d=o),null!=s&&(h=s);var m=new S(O({id:0,type:13,startX:c,startY:p,endX:d,endY:h,width:0,height:0,lineWidth:this.props.relationLineWidth,color:(0,e.JW)(n.props.colorStatus,"#CCC")}),(0,e.SM)({receivedAt:new Date}));return this.relations[a]=m,m.elementRef.style.zIndex="0",this.containerRef.append(m.elementRef),m},t.prototype.onItemClick=function(t){var e=this.clickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemDblClick=function(t){var e=this.dblClickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemMoved=function(t){var e=this.movedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onLineMoved=function(t){var e=this.lineMovedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemResized=function(t){var e=this.resizedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemSelectionChanged=function(t){var e=this.selectionChangedEventManager.on(t);return this.disposables.push(e),e},t.prototype.enableEditMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{editMode:!0})})),this.containerRef.classList.add("is-editing")},t.prototype.disableEditMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{editMode:!1})})),this.containerRef.classList.remove("is-editing")},t.prototype.enableMaintenanceMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{maintenanceMode:!0})})),this.containerRef.classList.add("is-maintenance"),this.containerRef.classList.remove("is-editing")},t.prototype.disableMaintenanceMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{maintenanceMode:!1})})),this.containerRef.classList.remove("is-maintenance"),this.containerRef.classList.add("is-editing")},t.prototype.selectItem=function(t,e){var n=this;void 0===e&&(e=!1),e?this.elementIds.forEach((function(e){var r=n.elementsById[e].meta;e!==t&&r.isSelected?n.elementsById[e].unSelectItem():e!==t||r.isSelected||n.elementsById[e].selectItem()})):this.elementsById[t]&&this.elementsById[t].selectItem()},t.prototype.unSelectItem=function(t){this.elementsById[t]&&this.elementsById[t].meta.isSelected&&this.elementsById[t].unSelectItem()},t.prototype.unSelectItems=function(){var t=this;this.elementIds.forEach((function(e){t.elementsById[e]&&t.elementsById[e].unSelectItem()}))},t.itemDescriptiveName=function(t){var n;switch(t.props.type){case 0:n="".concat((0,e.t)("Static graph")," - ").concat(t.props.imageSrc);break;case 1:n=(0,e.t)("Module graph");break;case 19:n=(0,e.t)("Clock");break;case 18:n=(0,e.t)("Bars graph");break;case 14:n=(0,e.t)("Event history graph");break;case 3:n=(0,e.t)("Percentile bar");break;case 15:n=(0,e.t)("Circular progress bar");break;case 16:n=(0,e.t)("Circular progress bar (interior)");break;case 2:n=(0,e.t)("Simple Value");break;case 4:n=(0,e.t)("Label");break;case 11:n=(0,e.t)("Group");break;case 20:n=(0,e.t)("Color cloud");break;case 5:n="".concat((0,e.t)("Icon")," - ").concat(t.props.imageSrc);break;case 22:n=(0,e.t)("Odometer");break;case 23:n=(0,e.t)("BasicChart");break;default:n=(0,e.t)("Item")}var r=t.props;return null!=r.agentAlias&&null!=r.moduleName?n+=" (".concat((0,e.fk)(r.agentAlias,18)," - ").concat((0,e.fk)(r.moduleName,25),")"):null!=r.agentAlias&&(n+=" (".concat((0,e.fk)(r.agentAlias,25),")")),n},t.items=((le={})[0]=l,le[1]=$t.Z,le[2]=ht,le[6]=ht,le[7]=ht,le[8]=ht,le[3]=Yt,le[9]=Yt,le[15]=Yt,le[16]=Yt,le[4]=at,le[5]=h,le[10]=ie,le[11]=U,le[12]=nt,le[13]=S,le[14]=mt.Z,le[17]=Xt.Z,le[18]=Qt.Z,le[19]=X,le[20]=x,le[21]=W,le[22]=pe,le[23]=ue.Z,le),t}(),fe=function(){function t(t){this.cancellable={cancel:function(){}},this._status="waiting",this.statusChangeEventManager=new P.Z,this.disposables=[],this.taskInitiator=t}return Object.defineProperty(t.prototype,"status",{get:function(){return this._status},set:function(t){this._status=t,this.statusChangeEventManager.emit(t)},enumerable:!1,configurable:!0}),t.prototype.init=function(){var t=this;this.cancellable=this.taskInitiator((function(){t.status="finished"})),this.status="started"},t.prototype.cancel=function(){this.cancellable.cancel(),this.status="cancelled"},t.prototype.onStatusChange=function(t){var e=this.statusChangeEventManager.on(t);return this.disposables.push(e),e},t}(),_e=function(){function t(){this.tasks={}}return t.prototype.add=function(t,e,n){void 0===n&&(n=0),this.tasks[t]&&"started"===this.tasks[t].status&&this.tasks[t].cancel();var r=n>0?function(t,e){return new fe((function(){var n=null;return t.onStatusChange((function(r){"finished"===r&&(n=window.setTimeout((function(){t.init()}),e))})),t.init(),{cancel:function(){n&&clearTimeout(n),t.cancel()}}}))}(new fe(e),n):new fe(e);return this.tasks[t]=r,this.tasks[t]},t.prototype.init=function(t){!this.tasks[t]||"waiting"!==this.tasks[t].status&&"cancelled"!==this.tasks[t].status&&"finished"!==this.tasks[t].status||this.tasks[t].init()},t.prototype.cancel=function(t){this.tasks[t]&&"started"===this.tasks[t].status&&this.tasks[t].cancel()},t}();window.VisualConsole=me,window.VisualConsole.Form=m,window.AsyncTaskManager=_e}()})(); +(function(){"use strict";var __webpack_modules__={630:function(t,e,n){n.r(e),n.d(e,{FormContainer:function(){return a},InputGroup:function(){return s}});var r=n(510),i=function(){return i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&(this.inputGroupsByName=e.reduce((function(t,e){return e.onDataRequested(i.handleItemDataRequested),t[e.name]=e,t}),this.inputGroupsByName)),n.length>0&&(this.enabledInputGroupNames=o(o([],this.enabledInputGroupNames,!0),n.filter((function(t){return null!=i.inputGroupsByName[t]})),!0))}return t.prototype.getInputGroup=function(t){return this.inputGroupsByName[t]||null},t.prototype.addInputGroup=function(t,e){return void 0===e&&(e=null),t.onDataRequested(this.handleItemDataRequested),this.inputGroupsByName[t.name]=t,this.enabledInputGroupNames=this.enabledInputGroupNames.filter((function(e){return e!==t.name})),null!==e?e<=0?this.enabledInputGroupNames=o([t.name],this.enabledInputGroupNames,!0):e>=this.enabledInputGroupNames.length?this.enabledInputGroupNames=o(o([],this.enabledInputGroupNames,!0),[t.name],!1):this.enabledInputGroupNames=o(o(o([],this.enabledInputGroupNames.slice(0,e),!0),[t.name],!1),this.enabledInputGroupNames.slice(e),!0):this.enabledInputGroupNames=o(o([],this.enabledInputGroupNames,!0),[t.name],!1),this},t.prototype.removeInputGroup=function(t){return delete this.inputGroupsByName[t],this.enabledInputGroupNames=this.enabledInputGroupNames.filter((function(e){return e!==t})),this},t.prototype.getFormElement=function(t){var e=this;void 0===t&&(t="update");var n=document.createElement("form");n.id="visual-console-item-edition",n.className="visual-console-item-edition",n.addEventListener("submit",(function(t){t.preventDefault(),e.submitEventManager.emit({nativeEvent:t,data:e.enabledInputGroupNames.reduce((function(t,n){return e.inputGroupsByName[n]&&(t=i(i({},t),e.inputGroupsByName[n].data)),t}),{})})}));var r=document.createElement("div");return r.className="input-groups",this.enabledInputGroupNames.forEach((function(t){e.inputGroupsByName[t]&&r.appendChild(e.inputGroupsByName[t].element)})),n.appendChild(r),n},t.prototype.reset=function(){var t=this;this.enabledInputGroupNames.forEach((function(e){t.inputGroupsByName[e]&&t.inputGroupsByName[e].reset()}))},t.prototype.onSubmit=function(t){return this.submitEventManager.on(t)},t.prototype.onInputGroupDataRequested=function(t){return this.itemDataRequestedEventManager.on(t)},t}()},478:function(t,e,n){n.d(e,{TB:function(){return l}});var r=n(541),i=n(510),o=n(630),s=function(){return s=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){var r=e.labelElementRef.getBoundingClientRect(),i=r.width,o=r.height;switch(e.props.labelPosition){case"up":case"down":n-=o;break;case"left":case"right":t-=i}}var s={width:e.props.width,height:e.props.height},a={width:t,height:n};e.sizeChanged(s,a)&&(e.resizeElement(t,n),e.resizedEventManager.emit({item:e,prevSize:s,newSize:a}),e.debouncedResizementSave(t,n))})))},t.prototype.stopResizementListener=function(){this.removeResizement&&(this.removeResizement(),this.removeResizement=null)},t.prototype.init=function(){this.elementRef=this.createContainerDomElement(),this.labelElementRef=this.createLabelDomElement(),this.childElementRef=this.createDomElement(),this.elementRef.appendChild(this.childElementRef),this.elementRef.appendChild(this.labelElementRef),this.resizeElement(this.itemProps.width,this.itemProps.height),this.changeLabelPosition(this.itemProps.labelPosition)},t.prototype.createContainerDomElement=function(){var t,e=this;return this.props.isLinkEnabled?(t=document.createElement("a"),this.props.link?t.href=this.props.link:t.className="textDecorationNone"):(t=document.createElement("div")).className="textDecorationNone",t.classList.add("visual-console-item"),this.props.isOnTop&&t.classList.add("is-on-top"),t.style.left="".concat(this.props.x,"px"),t.style.top="".concat(this.props.y,"px"),this.props.alertOutline&&t.classList.add("is-alert-triggered"),t.addEventListener("dblclick",(function(t){e.meta.isBeingMoved||e.meta.isBeingResized||(e.unSelectItem(),e.selectItem(),e.dblClickEventManager.emit({item:e,nativeEvent:t}))})),t.addEventListener("click",(function(t){if(e.meta.editMode)t.preventDefault(),t.stopPropagation();else if(e.itemProps.isLinkEnabled&&null!=e.itemProps.link){var n=document.createElement("div");n.className="div-visual-console-spinner";var r=document.createElement("div");r.className="visual-console-spinner",n.appendChild(r);for(var i=t.composedPath(),o="visual-console-container",s=0;s0){var n=document.createElement("table"),r=document.createElement("tr"),i=document.createElement("tr"),o=document.createElement("tr"),s=document.createElement("td");switch(s.innerHTML=e,r.appendChild(s),n.appendChild(i),n.appendChild(r),n.appendChild(o),n.style.textAlign="center",this.props.labelPosition){case"up":case"down":this.props.width>0&&(n.style.width="".concat(this.props.width,"px"),n.style.height="");break;case"left":case"right":this.props.height>0&&(n.style.width="",n.style.height="".concat(this.props.height,"px"))}t.appendChild(n)}return t},t.prototype.getLabelWithMacrosReplaced=function(){var t=this.props;return(0,r.No)([{macro:"_date_",value:(0,r.rN)(new Date)},{macro:"_time_",value:(0,r.bc)(new Date)},{macro:"_agent_",value:null!=t.agentAlias?t.agentAlias:""},{macro:"_agentdescription_",value:null!=t.agentDescription?t.agentDescription:""},{macro:"_address_",value:null!=t.agentAddress?t.agentAddress:""},{macro:"_module_",value:null!=t.moduleName?t.moduleName:""},{macro:"_moduledescription_",value:null!=t.moduleDescription?t.moduleDescription:""}],this.props.label||"")},t.prototype.updateDomElement=function(t){t.innerHTML=this.createDomElement().innerHTML},Object.defineProperty(t.prototype,"props",{get:function(){return s({},this.itemProps)},set:function(t){this.setProps(t)},enumerable:!1,configurable:!0}),t.prototype.setProps=function(t){var e=this.props;this.itemProps=t,this.shouldBeUpdated(e,t)&&this.render(e,this._metadata)},Object.defineProperty(t.prototype,"meta",{get:function(){return s({},this._metadata)},set:function(t){this.setMeta(t)},enumerable:!1,configurable:!0}),t.prototype.setMeta=function(t){var e=this._metadata;this._metadata=s(s({},e),t),void 0!==t.isSelected&&e.isSelected!==t.isSelected&&this.selectionChangedEventManager.emit({selected:t.isSelected}),this.render(this.itemProps,e)},t.prototype.shouldBeUpdated=function(t,e){return t!==e},t.prototype.render=function(t,e){void 0===t&&(t=null),void 0===e&&(e=null),t&&this.updateDomElement(this.childElementRef),t&&!this.positionChanged(t,this.props)||(this.moveElement(this.props.x,this.props.y),t&&13!=t.type&&21!=t.type&&this.updateDomElement(this.childElementRef)),t&&!this.sizeChanged(t,this.props)||(this.resizeElement(this.props.width,this.props.height),t&&13!=t.type&&21!=t.type&&this.updateDomElement(this.childElementRef));var n=this.labelElementRef.innerHTML,r=this.createLabelDomElement().innerHTML;if(n!==r&&(this.labelElementRef.innerHTML=r),t&&t.labelPosition===this.props.labelPosition||this.changeLabelPosition(this.props.labelPosition),t&&t.isOnTop===this.props.isOnTop||(this.props.isOnTop?this.elementRef.classList.add("is-on-top"):this.elementRef.classList.remove("is-on-top")),t&&t.isLinkEnabled!==this.props.isLinkEnabled){var i=this.createContainerDomElement();i.innerHTML=this.elementRef.innerHTML;for(var o=this.elementRef.attributes,s=0;s0?e.item(0):null;if(n)switch(this.props.labelPosition){case"up":case"down":this.props.width>0&&(n.style.width="".concat(this.props.width,"px"),n.style.height="");break;case"left":case"right":this.props.height>0&&(n.style.width="",n.style.height="".concat(this.props.height,"px"))}},t.prototype.moveElement=function(t,e){this.elementRef.style.left="".concat(t,"px"),this.elementRef.style.top="".concat(e,"px")},t.prototype.move=function(t,e){this.moveElement(t,e),this.itemProps=s(s({},this.props),{x:t,y:e})},t.prototype.sizeChanged=function(t,e){return t.width!==e.width||t.height!==e.height},t.prototype.resizeElement=function(t,e){if(13!=this.props.type&&21!=this.props.type&&(this.childElementRef.style.width=t>0?"".concat(t,"px"):"",this.childElementRef.style.height=e>0?"".concat(e,"px"):""),this.props.label&&this.props.label.length>0){var n=this.labelElementRef.getElementsByTagName("table"),r=n.length>0?n.item(0):null;if(r)switch(this.props.labelPosition){case"up":case"down":r.style.width=t>0?"".concat(t,"px"):"";break;case"left":case"right":r.style.height=e>0?"".concat(e,"px"):""}}},t.prototype.resize=function(t,e){this.resizeElement(t,e),this.itemProps=s(s({},this.props),{width:t,height:e})},t.prototype.onClick=function(t){var e=this.clickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onDblClick=function(t){var e=this.dblClickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onMoved=function(t){var e=this.movedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onMovementFinished=function(t){var e=this.movementFinishedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onResized=function(t){var e=this.resizedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onResizeFinished=function(t){var e=this.resizeFinishedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onRemove=function(t){var e=this.removeEventManager.on(t);return this.disposables.push(e),e},t.prototype.onSelectionChanged=function(t){var e=this.selectionChangedEventManager.on(t);return this.disposables.push(e),e},t.prototype.selectItem=function(){this.meta=s(s({},this.meta),{isSelected:!0}),this.initMovementListener(this.elementRef),13!==this.props.type&&21!==this.props.type&&this.initResizementListener(this.elementRef)},t.prototype.unSelectItem=function(){this.meta=s(s({},this.meta),{isSelected:!1}),this.stopMovementListener(),13!==this.props.type&&this.stopResizementListener()},t.prototype.getFormContainer=function(){return t.getFormContainer(this.props)},t.getFormContainer=function(t){var e=t.type?function(t){var e="";switch(t){case 0:e=(0,r.t)("Static image");break;case 1:e=(0,r.t)("Module graph");break;case 2:case 6:case 7:case 8:e=(0,r.t)("Simple value");break;case 3:case 9:case 15:case 16:e=(0,r.t)("Percentile item");break;case 4:e=(0,r.t)("Label");break;case 5:e=(0,r.t)("Icon");break;case 10:e=(0,r.t)("Service");break;case 11:e=(0,r.t)("Group");break;case 12:e=(0,r.t)("Box");break;case 13:e=(0,r.t)("Line");break;case 14:e=(0,r.t)("Event history graph");break;case 17:e=(0,r.t)("Serialized pie graph");break;case 18:e=(0,r.t)("Bars graph");break;case 19:e=(0,r.t)("Clock");break;case 20:e=(0,r.t)("Color cloud");break;case 21:e=(0,r.t)("Network link");break;case 22:e=(0,r.t)("Odometer");break;case 23:e=(0,r.t)("Basic chart");break;default:e=(0,r.t)("Item")}return e}(t.type):(0,r.t)("Item");return new o.FormContainer(e,[],[])},t}();e.ZP=c},709:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{K:function(){return barsGraphPropsDecoder}});var _lib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(541),_Item__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(478),__extends=(extendStatics=function(t,e){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},extendStatics(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}extendStatics(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),extendStatics,__assign=function(){return __assign=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=i;)s++,t/=i;return t=i?Math.round(2*t)/2:Math.round(2*t),isNaN(t)&&(t=0),t+" "+["","K","M","G","T","P","E","Z","Y"][s]+n},BasicChart.prototype.pad=function(t,e,n){var r=t+"";return e<=r.length?r:this.pad(r+n,e,n)},BasicChart}(_Item__WEBPACK_IMPORTED_MODULE_1__.ZP);__webpack_exports__.Z=BasicChart},369:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{p:function(){return donutGraphPropsDecoder}});var _lib__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(541),_Item__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(478),__extends=(extendStatics=function(t,e){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},extendStatics(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}extendStatics(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),extendStatics,__assign=function(){return __assign=Object.assign||function(t){for(var e,n=1,r=arguments.length;n-1&&t.listeners.splice(n,1)},this.emit=function(e){t.listeners.forEach((function(t){return t(e)})),t.listenersOncer.forEach((function(t){return t(e)})),t.listenersOncer=[]},this.pipe=function(e){return t.on((function(t){return e.emit(t)}))}}},541:function(t,e,n){n.d(e,{Dw:function(){return M},Aq:function(){return C},Ds:function(){return E},NV:function(){return _},fk:function(){return k},rN:function(){return v},bc:function(){return y},SM:function(){return m},bs:function(){return h},MH:function(){return d},JW:function(){return a},gx:function(){return l},xn:function(){return o},I1:function(){return i},oF:function(){return p},OR:function(){return f},No:function(){return g},HY:function(){return u},VJ:function(){return s},t:function(){return x}});var r=function(){return r=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&!isNaN(parseInt(t))?parseInt(t):e}function o(t,e){return"number"==typeof t?t:"string"==typeof t&&t.length>0&&!isNaN(parseFloat(t))?parseFloat(t):e}function s(t){return null==t||0===t.length}function a(t,e){return"string"==typeof t&&t.length>0?t:e}function l(t){return"boolean"==typeof t?t:"number"==typeof t?t>0:"string"==typeof t&&("1"===t||"true"===t)}function c(t,e,n){void 0===n&&(n=" "),"number"==typeof t&&(t="".concat(t)),"number"==typeof n&&(n="".concat(n));var r=e-t.length;if(0===r)return t;if(r<0)return t.substr(Math.abs(r));if(r===n.length)return"".concat(n).concat(t);if(r0&&r_||d+o+v.width-g>u.width||o===b&&d<0&&r>f+b+c,k=i0&&im||y+s+v.height-g>u.height||s===E&&y<0&&i>h+E+p;(e=w?0:x?b:d+o)<0&&(e=0),(n=k?0:P?E:y+s)<0&&(n=0),a=r,l=i,e===o&&n===s||(C(e,n),M(e,n),o=e,s=n)},k=function(){o=0,s=0,a=0,l=0,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",k),t.draggable=i,document.body.style.userSelect="auto"},P=function(e){if(2!==e.button){e.stopPropagation(),t.draggable=!1,t.setAttribute("ondragstart","return false;"),t.setAttribute("draggable","false");var n=w(t,r);o=n.left,s=n.top,a=e.pageX,l=e.pageY,c=e.offsetX,p=e.offsetY,u=r.getBoundingClientRect(),d=w(r),h=d.top,m=h+u.height,f=d.left,_=f+u.width,v=t.getBoundingClientRect(),y=window.getComputedStyle(t).borderWidth||"0",g=2*Number.parseInt(y),document.addEventListener("mousemove",x),document.addEventListener("mouseup",k),document.body.style.userSelect="none"}};return t.addEventListener("mousedown",P),function(){t.removeEventListener("mousedown",P),k()}}function C(t,e){var n=document.createElement("div");n.className="resize-draggable",t.appendChild(n);var r=t.parentElement,i=t.draggable,o=0,s=0,a=0,l=0,c=0,p=r.getBoundingClientRect(),u=w(r),d=u.top,h=d+p.height,m=u.left,f=m+p.width,_=w(t),v=_.top,y=_.left,g=window.getComputedStyle(t).borderWidth||"0",M=Number.parseInt(g),C=E(32,e),x=b(16,e),k=function(t){var e=o+(t.pageX-a),n=s+(t.pageY-l);e===o&&n===s||ey+(o-c)||(e<15?e=15:e+y-M/2>=f&&(e=f-y),n<15?n=15:n+v-M/2>=h&&(n=h-v),x(e,n),C(e,n),o=e,s=n,a=t.pageX,l=t.pageY)},P=function(){o=0,s=0,a=0,l=0,c=0,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",P),t.draggable=i,document.body.style.userSelect="auto"};return n.addEventListener("mousedown",(function(e){e.stopPropagation(),t.draggable=!1;var n=t.getBoundingClientRect(),i=n.width,g=n.height;o=i,s=g,a=e.pageX,l=e.pageY,c=e.offsetX,e.offsetY,p=r.getBoundingClientRect(),u=w(r),d=u.top,h=d+p.height,m=u.left,f=m+p.width,_=w(t),v=_.top,y=_.left,document.addEventListener("mousemove",k),document.addEventListener("mouseup",P),document.body.style.userSelect="none"})),function(){n.remove(),P()}}function x(t){return t}function k(t,e,n){return void 0===e&&(e=140),void 0===n&&(n="…"),t.trim().length>e?t.substr(0,e).trim()+n:t}}},__webpack_module_cache__={};function __webpack_require__(t){var e=__webpack_module_cache__[t];if(void 0!==e)return e.exports;var n=__webpack_module_cache__[t]={exports:{}};return __webpack_modules__[t](n,n.exports,__webpack_require__),n.exports}__webpack_require__.d=function(t,e){for(var n in e)__webpack_require__.o(e,n)&&!__webpack_require__.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},__webpack_require__.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},__webpack_require__.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var __webpack_exports__={};!function(){var t,e=__webpack_require__(541),n=__webpack_require__(478),r=(t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)},function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}),i=function(){return i=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){var v=_.item(0);if(null!=v){v.setAttribute("width","".concat(i+s)),v.setAttribute("height","".concat(o+s));var y=v.getElementsByTagNameNS(O,"line");if(y.length>0){var g=y.item(0);null!=g&&(g.setAttribute("x1","".concat(d)),g.setAttribute("y1","".concat(h)),g.setAttribute("x2","".concat(m)),g.setAttribute("y2","".concat(f)),g.setAttribute("stroke",u||"black"),g.setAttribute("stroke-width","".concat(s)))}}}if(this.moveMode){var b=document.createElement("div"),E=document.createElement("div");if(this.isMoving){var w=t.getElementsByClassName("visual-console-item-line-circle-start");w.length>0&&(x=w.item(0))&&(b=x);var M=t.getElementsByClassName("visual-console-item-line-circle-end");M.length>0&&(x=M.item(0))&&(E=x)}if(b.classList.add("visual-console-item-line-circle","visual-console-item-line-circle-start"),b.style.width="".concat(2*this.circleRadius,"px"),b.style.height="".concat(2*this.circleRadius,"px"),b.style.borderRadius="50%",b.style.backgroundColor="".concat(u),b.style.position="absolute",b.style.left="".concat(d-this.circleRadius,"px"),b.style.top="".concat(h-this.circleRadius,"px"),b.style.cursor="move",E.classList.add("visual-console-item-line-circle","visual-console-item-line-circle-end"),E.style.width="".concat(2*this.circleRadius,"px"),E.style.height="".concat(2*this.circleRadius,"px"),E.style.borderRadius="50%",E.style.backgroundColor="".concat(u),E.style.position="absolute",E.style.left="".concat(m-this.circleRadius,"px"),E.style.top="".concat(f-this.circleRadius,"px"),E.style.cursor="move",null!==t.parentElement){for(var C=t.parentElement.getElementsByClassName("visual-console-item-line-circle");C.length>0;)(x=C.item(0))&&x.remove();t.parentElement.appendChild(b),t.parentElement.appendChild(E)}this.initStartPositionMovementListener(b,this.elementRef.parentElement),this.initEndPositionMovementListener(E,this.elementRef.parentElement)}else if(this.moveMode)this.stopStartPositionMovementListener();else if(this.stopStartPositionMovementListener(),null!==t.parentElement)for(C=t.parentElement.getElementsByClassName("visual-console-item-line-circle");C.length>0;){var x;(x=C.item(0))&&x.remove()}},n.extractBoxSizeAndPosition=function(t,e){return{width:Math.abs(t.x-e.x),height:Math.abs(t.y-e.y),x:Math.min(t.x,e.x),y:Math.min(t.y,e.y)}},n.prototype.move=function(e,n){t.prototype.moveElement.call(this,e,n);var r=this.props.startPosition.x-this.props.endPosition.x<=0,i=this.props.startPosition.y-this.props.endPosition.y<=0,o={x:r?e:this.props.width+e,y:i?n:this.props.height+n},s={x:r?this.props.width+e:e,y:i?this.props.height+n:n};this.props=A(A({},this.props),{startPosition:o,endPosition:s})},n.prototype.remove=function(){this.stopStartPositionMovementListener(),t.prototype.remove.call(this)},n.prototype.onLineMovementFinished=function(t){var e=this.lineMovedEventManager.on(t);return this.lineMovedEventDisposables.push(e),e},n}(n.ZP),L=S,D=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),R=function(){return R=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){if(null!=(r=g.item(0))){for(var b=r.getElementsByTagNameNS(N,"line"),E=r.getElementsByTagNameNS(N,"g");E.length>0;)E[0].remove();b.length>0&&(n=b.item(0))}if(null!=r&&null!=n){var w=25,M=p.x-o+a/2+l/2,C=p.y-s+a/2+c/2,x=u.x-o+a/2+l/2,k=u.y-s+a/2+c/2,P=p.x-o+a/2+l/2,I=p.y-s+a/2+c/2,A=u.x-o+a/2+l/2,T=u.y-s+a/2+c/2,O=180*Math.atan2(k-C,x-M)/Math.PI;if(v<=0&&(b=m.split("
"),v=0,b.forEach((function(t){t.length>v&&(v=10*t.length)})),y<=0&&(y=25*b.length)),f<=0&&(b=h.split("
"),f=0,b.forEach((function(t){t.length>f&&(f=10*t.length)})),_<=0&&(_=25*b.length)),PA&&(P-=w+v,A+=w),IT&&(I-=w+y,T+=w),void 0===d&&(d="#000"),null!==e.parentElement){for(var S=e.parentElement.getElementsByClassName("vc-item-nl-label");S.length>0;){var L=S.item(0);L&&L.remove()}for(var D=e.parentElement.getElementsByClassName("vc-item-nl-arrow");D.length>0;){var R=D.item(0);R&&R.remove()}}var B=2*a,z=M+(x-M)/2-B,W=C+(k-C)/2-B,j=document.createElement("div");j.classList.add("vc-item-nl-arrow"),j.style.position="absolute",j.style.border="".concat(B,"px solid transparent"),j.style.borderBottom="".concat(B,"px solid ").concat(d),j.style.left="".concat(z,"px"),j.style.top="".concat(W,"px"),j.style.transform="rotate(".concat(90+O,"deg)");var H=document.createElement("div");if(H.classList.add("vc-item-nl-arrow"),H.style.position="absolute",H.style.border="".concat(B,"px solid transparent"),H.style.borderBottom="".concat(B,"px solid ").concat(d),H.style.left="".concat(z,"px"),H.style.top="".concat(W,"px"),H.style.transform="rotate(".concat(270+O,"deg)"),null!==e.parentElement&&(e.parentElement.appendChild(j),e.parentElement.appendChild(H)),""!=m){var V=document.createElement("div");try{V.innerHTML=m,V.style.position="absolute",V.style.left="".concat(P,"px"),V.style.top="".concat(I,"px"),V.style.width="".concat(v,"px"),V.style.border="2px solid ".concat(d),V.classList.add("vc-item-nl-label","label-start")}catch(t){console.error(t)}null!==e.parentElement&&e.parentElement.appendChild(V)}if(""!=h){var G=document.createElement("div");try{G.innerHTML=h,G.style.position="absolute",G.style.left="".concat(A,"px"),G.style.top="".concat(T,"px"),G.style.width="".concat(f,"px"),G.style.border="2px solid ".concat(d),G.classList.add("vc-item-nl-label","label-end")}catch(t){console.error(t)}null!==e.parentElement&&e.parentElement.appendChild(G)}}}},n}(L),W=z,j=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),H=function(){return H=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){var _=document.createElementNS(t,"text");_.setAttribute("text-anchor","middle"),_.setAttribute("font-size","8"),_.setAttribute("transform","translate(30 50) rotate(90)"),_.setAttribute("fill",r),_.textContent=f,h.append(_)}var v=document.createElementNS(t,"g");v.setAttribute("class","marks");var y=document.createElementNS(t,"g");y.setAttribute("class","mark"),y.setAttribute("transform","translate(50 50)");var g=document.createElementNS(t,"line");g.setAttribute("x1","36"),g.setAttribute("y1","0"),g.setAttribute("x2","46"),g.setAttribute("y2","0"),g.setAttribute("stroke",r),g.setAttribute("stroke-width","5");var b=document.createElementNS(t,"line");b.setAttribute("x1","36"),b.setAttribute("y1","0"),b.setAttribute("x2","46"),b.setAttribute("y2","0"),b.setAttribute("stroke",n),b.setAttribute("stroke-width","1"),y.append(g,b),v.append(y);for(var E=1;E<60;E++){var w=document.createElementNS(t,"line");w.setAttribute("y1","0"),w.setAttribute("y2","0"),w.setAttribute("stroke",r),w.setAttribute("transform","translate(50 50) rotate(".concat(6*E,")")),E%5==0?(w.setAttribute("x1","38"),w.setAttribute("x2","46"),w.setAttribute("stroke-width",E%15==0?"2":"1")):(w.setAttribute("x1","42"),w.setAttribute("x2","46"),w.setAttribute("stroke-width","0.5")),v.append(w)}var M=document.createElementNS(t,"g");M.setAttribute("class","hour-hand"),M.setAttribute("transform","translate(50 50)");var C=document.createElementNS(t,"line");C.setAttribute("class","hour-hand-a"),C.setAttribute("x1","0"),C.setAttribute("y1","0"),C.setAttribute("x2","30"),C.setAttribute("y2","0"),C.setAttribute("stroke",o),C.setAttribute("stroke-width","4"),C.setAttribute("stroke-linecap","round");var x=document.createElementNS(t,"line");x.setAttribute("class","hour-hand-b"),x.setAttribute("x1","0"),x.setAttribute("y1","0"),x.setAttribute("x2","29.9"),x.setAttribute("y2","0"),x.setAttribute("stroke",i),x.setAttribute("stroke-width","3.1"),x.setAttribute("stroke-linecap","round"),M.append(C,x);var k=document.createElementNS(t,"g");k.setAttribute("class","minute-hand"),k.setAttribute("transform","translate(50 50)");var P=document.createElementNS(t,"line");P.setAttribute("class","minute-hand-a"),P.setAttribute("x1","0"),P.setAttribute("y1","0"),P.setAttribute("x2","40"),P.setAttribute("y2","0"),P.setAttribute("stroke",o),P.setAttribute("stroke-width","2"),P.setAttribute("stroke-linecap","round");var I=document.createElementNS(t,"line");I.setAttribute("class","minute-hand-b"),I.setAttribute("x1","0"),I.setAttribute("y1","0"),I.setAttribute("x2","39.9"),I.setAttribute("y2","0"),I.setAttribute("stroke",i),I.setAttribute("stroke-width","1.5"),I.setAttribute("stroke-linecap","round");var A=document.createElementNS(t,"circle");A.setAttribute("r","3"),A.setAttribute("fill",i),k.append(P,I,A);var T=document.createElementNS(t,"g");T.setAttribute("class","second-hand"),T.setAttribute("transform","translate(50 50)");var O=document.createElementNS(t,"line");O.setAttribute("x1","0"),O.setAttribute("y1","0"),O.setAttribute("x2","46"),O.setAttribute("y2","0"),O.setAttribute("stroke",s),O.setAttribute("stroke-width","1"),O.setAttribute("stroke-linecap","round");var S=document.createElementNS(t,"circle");S.setAttribute("r","2"),S.setAttribute("fill",s),T.append(O,S);var L=document.createElementNS(t,"circle");L.setAttribute("cx","50"),L.setAttribute("cy","50"),L.setAttribute("r","0.3"),L.setAttribute("fill",i);var D=this.getOriginDate(),R=D.getSeconds(),N=D.getMinutes(),B=6*R,z=6*N+R/60*6,W=30*D.getHours()+N/60*30;if(M.setAttribute("transform","translate(50 50) rotate(".concat(W,")")),k.setAttribute("transform","translate(50 50) rotate(".concat(z,")")),T.setAttribute("transform","translate(50 50) rotate(".concat(B,")")),d.append(h,v,M,k,T,L),d.setAttribute("transform","rotate(-90)"),u.innerHTML="\n \n "),u.append(d),"datetime"===this.props.clockFormat){var j=document.createElement("span");j.className="date",j.textContent=(0,e.rN)(D,"default"),j.style.fontSize="".concat(p,"px"),this.props.color&&(j.style.color=this.props.color),u.append(j)}return u},n.prototype.createDigitalClock=function(){var t=document.createElement("div");t.className="digital-clock";var n=this.getElementSize(),r=n.width,i=n.height,o=r;i0){var m=document.createElement("span");m.className="timezone",m.textContent=h,m.style.fontSize="".concat(c,"px"),this.props.color&&(m.style.color=this.props.color),t.append(m)}return t},n.prototype.getOriginDate=function(t){void 0===t&&(t=null);var e=t||new Date,n=1e3*this.props.clockTimezoneOffset,r=60*e.getTimezoneOffset()*1e3,i=e.getTime()+n+r;return new Date(i)},n.prototype.getHumanTimezone=function(t){void 0===t&&(t=this.props.clockTimezone);var e=t.split("/")[1];return(void 0===e?"":e).replace("_"," ")},n.prototype.getElementSize=function(t,e){switch(void 0===t&&(t=this.props.width),void 0===e&&(e=this.props.height),this.props.clockType){case"analogic":var n=100;t>0&&e>0?n=Math.min(t,e):t>0?n=t:e>0&&(n=e);var r=0;return"datetime"===this.props.clockFormat&&(r=e/8),{width:n,height:n+r};case"digital":return t>0&&e>0?e=t/20?e=t/2:e>0?t=2*e:(t=100,e=50),{width:t,height:e};default:throw new Error("invalid clock type.")}},n.TICK_INTERVAL=1e3,n}(n.ZP),X=Y,Q=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),$=function(){return $=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0){t.style.borderStyle="solid";var e=Math.min(this.props.width,this.props.height)/2,n=Math.min(this.props.borderWidth,e);t.style.borderWidth="".concat(n,"px"),this.props.borderColor&&(t.style.borderColor=this.props.borderColor)}return t},e.prototype.updateDomElement=function(t){if(this.props.fillTransparent?t.style.backgroundColor="transparent":this.props.fillColor&&(t.style.backgroundColor=this.props.fillColor),this.props.borderWidth>0){t.style.borderStyle="solid";var e=Math.min(this.props.width,this.props.height)/2,n=Math.min(this.props.borderWidth,e);t.style.borderWidth="".concat(n,"px"),this.props.borderColor&&(t.style.borderColor=this.props.borderColor)}},e}(n.ZP),nt=et,rt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),it=function(){return it=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&(r=(0,e.No)([{macro:/\(?_VALUE_\)?/i,value:r}],i)),t.innerHTML=r}return t},n.prototype.createLabelDomElement=function(){var t=document.createElement("div");return t.className="visual-console-item-label",t},n}(n.ZP),ht=dt,mt=__webpack_require__(280),ft=Math.PI,_t=2*ft,vt=1e-6,yt=_t-vt;function gt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function bt(){return new gt}gt.prototype=bt.prototype={constructor:gt,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,i,o){this._+="C"+ +t+","+ +e+","+ +n+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,e,n,r,i){t=+t,e=+e,n=+n,r=+r,i=+i;var o=this._x1,s=this._y1,a=n-t,l=r-e,c=o-t,p=s-e,u=c*c+p*p;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(u>vt)if(Math.abs(p*a-l*c)>vt&&i){var d=n-o,h=r-s,m=a*a+l*l,f=d*d+h*h,_=Math.sqrt(m),v=Math.sqrt(u),y=i*Math.tan((ft-Math.acos((m+u-f)/(2*_*v)))/2),g=y/v,b=y/_;Math.abs(g-1)>vt&&(this._+="L"+(t+g*c)+","+(e+g*p)),this._+="A"+i+","+i+",0,0,"+ +(p*d>c*h)+","+(this._x1=t+b*a)+","+(this._y1=e+b*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,r,i,o){t=+t,e=+e,o=!!o;var s=(n=+n)*Math.cos(r),a=n*Math.sin(r),l=t+s,c=e+a,p=1^o,u=o?r-i:i-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>vt||Math.abs(this._y1-c)>vt)&&(this._+="L"+l+","+c),n&&(u<0&&(u=u%_t+_t),u>yt?this._+="A"+n+","+n+",0,1,"+p+","+(t-s)+","+(e-a)+"A"+n+","+n+",0,1,"+p+","+(this._x1=l)+","+(this._y1=c):u>vt&&(this._+="A"+n+","+n+",0,"+ +(u>=ft)+","+p+","+(this._x1=t+n*Math.cos(i))+","+(this._y1=e+n*Math.sin(i))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var Et=bt;function wt(t){return function(){return t}}var Mt=Math.abs,Ct=Math.atan2,xt=Math.cos,kt=Math.max,Pt=Math.min,It=Math.sin,At=Math.sqrt,Tt=1e-12,Ot=Math.PI,St=Ot/2,Lt=2*Ot;function Dt(t){return t>1?0:t<-1?Ot:Math.acos(t)}function Rt(t){return t>=1?St:t<=-1?-St:Math.asin(t)}function Nt(t){return t.innerRadius}function Bt(t){return t.outerRadius}function zt(t){return t.startAngle}function Wt(t){return t.endAngle}function jt(t){return t&&t.padAngle}function Ht(t,e,n,r,i,o,s,a){var l=n-t,c=r-e,p=s-i,u=a-o,d=u*l-p*c;if(!(d*dT*T+O*O&&(C=k,x=P),{cx:C,cy:x,x01:-p,y01:-u,x11:C*(i/E-1),y11:x*(i/E-1)}}var Gt=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ut=function(){return Ut=Object.assign||function(t){for(var e,n=1,r=arguments.length;nd;if(a||(a=l=Et()),uTt)if(m>Lt-Tt)a.moveTo(u*xt(d),u*It(d)),a.arc(0,0,u,d,h,!f),p>Tt&&(a.moveTo(p*xt(h),p*It(h)),a.arc(0,0,p,h,d,f));else{var _,v,y=d,g=h,b=d,E=h,w=m,M=m,C=s.apply(this,arguments)/2,x=C>Tt&&(r?+r.apply(this,arguments):At(p*p+u*u)),k=Pt(Mt(u-p)/2,+n.apply(this,arguments)),P=k,I=k;if(x>Tt){var A=Rt(x/p*It(C)),T=Rt(x/u*It(C));(w-=2*A)>Tt?(b+=A*=f?1:-1,E-=A):(w=0,b=E=(d+h)/2),(M-=2*T)>Tt?(y+=T*=f?1:-1,g-=T):(M=0,y=g=(d+h)/2)}var O=u*xt(y),S=u*It(y),L=p*xt(E),D=p*It(E);if(k>Tt){var R,N=u*xt(g),B=u*It(g),z=p*xt(b),W=p*It(b);if(mTt?I>Tt?(_=Vt(z,W,O,S,u,I,f),v=Vt(N,B,L,D,u,I,f),a.moveTo(_.cx+_.x01,_.cy+_.y01),ITt&&w>Tt?P>Tt?(_=Vt(L,D,N,B,p,-P,f),v=Vt(O,S,z,W,p,-P,f),a.lineTo(_.cx+_.x01,_.cy+_.y01),P0){var d=document.createElementNS(qt,"tspan");d.setAttribute("x","0"),d.setAttribute("dy","1em"),d.textContent="".concat(t),d.style.fontSize="8pt";var h=document.createElementNS(qt,"tspan");h.setAttribute("x","0"),h.setAttribute("dy","1em"),h.textContent="".concat(this.props.unit),h.style.fontSize="8pt",u.append(d,h),u.setAttribute("transform","translate(50 33)")}else u.textContent="".concat(t),u.style.fontSize="8pt",u.setAttribute("transform","translate(50 50)");else u.textContent="".concat(n,"%"),u.setAttribute("transform","translate(50 50)");i.append(u)}return!0!==this.props.agentDisabled&&!0!==this.props.moduleDisabled||i.setAttribute("opacity","0.2"),null!==i&&r.append(i),r},e.prototype.updateDomElement=function(t){!1===this.meta.isBeingResized&&this.resizeElement(this.props.width,this.props.height),t.innerHTML=this.createDomElement().innerHTML},e.prototype.resizeElement=function(e,n){"progress-bar"===this.props.percentileType?t.prototype.resizeElement.call(this,e,35):t.prototype.resizeElement.call(this,e,e)},e.prototype.resize=function(e){this.resizeElement(e,e);var n=this.props.maxValue||0;"progress-bar"===this.props.percentileType&&(n=35),t.prototype.setProps.call(this,Ut(Ut({},this.props),{width:e,height:n}))},e.prototype.getProgress=function(){var t=this.props.minValue||0,e=this.props.maxValue||100,n=null==this.props.value?0:this.props.value;return n<=t?0:n>=e?100:Math.trunc((n-t)/(e-t)*100)},e}(n.ZP),Yt=Jt,Xt=__webpack_require__(369),Qt=__webpack_require__(709),$t=__webpack_require__(600),te=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),ee=function(){return ee=Object.assign||function(t){for(var e,n=1,r=arguments.length;n3&&n<=6?e=" K":n>6&&n<=9?e=" M":n>9&&n<=12?e=" G":n>12&&n<=15&&(e=" T"),e},e.prototype.getCoords=function(t,e){if(""!==this.props.minMaxValue){var n=JSON.parse(this.props.minMaxValue);if(n.min===t)t=0;else if(n.max===t||100===t)t=100;else{var r=n.max-n.min;t=100-100*(n.max-t)/r}}t=180-1.8*t;var i=e+Math.cos(t*Math.PI/180)*e,o=e-Math.sin(t*Math.PI/180)*e;return"".concat(i,",").concat(o)},e.prototype.truncateTitle=function(t){if(null!=t&&t.length>22){var e=t.length/2,n=e-9,r=t.substr(0,e-n),i=t.substr(e+n);return"".concat(r,"...").concat(i)}return t},e}(n.ZP),pe=ce,ue=__webpack_require__(880),de=function(){return de=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0?t.selected=!0:t.selected=!1,i.selectionChangedEventManager.emit(t)},this.handleContainerClick=function(){i.unSelectItems()},this.containerRef=t,this._props=function(t){var n=t.id,r=t.name,i=t.groupId,o=t.backgroundURL,s=t.backgroundColor,a=t.isFavorite,l=t.relationLineWidth,c=t.maintenanceMode,p=t.gridSize;if(t.gridSelected,null==n||isNaN(parseInt(n)))throw new TypeError("invalid Id.");if("string"!=typeof r||0===r.length)throw new TypeError("invalid name.");if(null==i||isNaN(parseInt(i)))throw new TypeError("invalid group Id.");return de({id:parseInt(n),name:r,groupId:parseInt(i),backgroundURL:(0,e.JW)(o,null),backgroundColor:(0,e.JW)(s,null),isFavorite:(0,e.gx)(a),relationLineWidth:(0,e.I1)(l,0),maintenanceMode:c,gridSize:(0,e.I1)(p,10),gridSelected:!1},(0,e.HY)(t))}(n),this.render(),(r=r.sort((function(t,e){return null==t.id||null==e.id?0:t.id>e.id?1:-1}))).forEach((function(t){return i.addElement(t,i)})),this.buildRelations(),this.elements.forEach((function(t){t instanceof L&&i.refreshLink(t)})),this.containerRef.addEventListener("click",this.handleContainerClick)}return t.prototype.coordinatesInItem=function(t,e,n){return 13!=n.type&&21!=n.type&&t>n.x&&tn.y&&e0?(null==this.lineLinks[n]&&(this.lineLinks[n]={}),this.lineLinks[n][e]={start:n,end:r}):this.lines[e].start>0&&(this.lineLinks[this.lines[e].start][e].start=0,this.lines[e].start=0),r>0?(null==this.lineLinks[r]&&(this.lineLinks[r]={}),this.lineLinks[r][e]={start:n,end:r}):this.lines[e].end>0&&(this.lineLinks[this.lines[e].end][e].end=0,this.lines[e].end=0),this.lines[e]={start:n,end:r},this.lineLinks)this.lineLinks[i][e]&&(0==this.lineLinks[i][e].start&&0==this.lineLinks[i][e].end&&(delete this.lineLinks[i][e],0===Object.keys(this.lineLinks[i]).length&&delete this.lineLinks[i]),(this.lineLinks[i][e].start!=n&&this.lineLinks[i][e].end==r||this.lineLinks[i][e].start==n&&this.lineLinks[i][e].end!=r)&&(delete this.lineLinks[i][e],0===Object.keys(this.lineLinks[i]).length&&delete this.lineLinks[i]))}catch(t){console.error(t)}},t.prototype.updateLinesConnected=function(t,n,r){var i=this;null!=this.lineLinks[t.id]&&(Object.keys(this.lineLinks[t.id]).forEach((function(o){var s=parseInt(o);if(-1!==i.elementIds.indexOf(s)){var a=i.elementsById[s];if(a.props){var l=a.props.startPosition.x,c=a.props.startPosition.y,p=a.props.endPosition.x,u=a.props.endPosition.y;t.id==i.lineLinks[t.id][s].start&&(l=n.x+t.width/2,c=n.y+t.height/2),t.id==i.lineLinks[t.id][s].end&&(p=n.x+t.width/2,u=n.y+t.height/2),i.updateElement(de(de({},a.props),{startX:l,startY:c,endX:p,endY:u})),r&&(0,e.Ds)(500,(function(t){i.lineMovedEventManager.emit({item:t.line,startPosition:{x:t.startX,y:t.startY},endPosition:{x:t.endX,y:t.endY}})}))({line:a,startX:l,startY:c,endX:p,endY:u})}}})),this.buildRelations(t.id,n.x+t.width/2,n.y+t.height/2))},Object.defineProperty(t.prototype,"elements",{get:function(){var t=this;return this.elementIds.map((function(e){return t.elementsById[e]})).filter((function(t){return null!=t}))},enumerable:!1,configurable:!0}),t.prototype.addElement=function(t,n){void 0===n&&(n=this);try{var r=function(t){var n=(0,e.I1)(t.type,null);if(null==n)throw new TypeError("missing item type.");var r=(0,e.SM)(t);switch(n){case 0:return new l(s(t),r);case 1:return new $t.Z((0,$t.C)(t),r);case 2:case 6:case 7:case 8:return new ht(ut(t),r);case 3:case 9:case 15:case 16:return new Yt(Zt(t),r);case 4:return new at(ot(t),r);case 5:return new h(u(t),r);case 10:return new ie(ne(t),r);case 11:return new U(V(t),r);case 12:return new nt(tt(t),r);case 13:return new L(T(t),r);case 14:return new mt.Z((0,mt.o)(t),r);case 17:return new Xt.Z((0,Xt.p)(t),r);case 18:return new Qt.Z((0,Qt.K)(t),r);case 19:return new X(J(t),r);case 20:return new k(E(t),r);case 21:return new W(B(t),r);case 22:return new pe(ae(t),r);case 23:return new ue.Z((0,ue.u)(t),r);default:throw new TypeError("item not found")}}(t);return n.elementsById[r.props.id]=r,n.elementIds.push(r.props.id),r.onRemove(n.handleElementRemove),r.onSelectionChanged(n.handleElementSelectionChanged),r.onClick(n.handleElementClick),r.onDblClick(n.handleElementDblClick),r instanceof L?(r.onLineMovementFinished(n.handleLineElementMovementFinished),this.refreshLink(r)):(r.onMoved(n.handleElementMovement),r.onMovementFinished(n.handleElementMovementFinished),r.onResized(n.handleElementResizement),r.onResizeFinished(n.handleElementResizementFinished)),n.containerRef.append(r.elementRef),r}catch(t){console.error("Error creating a new element:",t.message)}},t.prototype.updateElements=function(t){var e=this,n=t.map((function(t){return t.id||null})).filter((function(t){return null!=t}));this.elementIds.filter((function(t){return n.indexOf(t)<0})).forEach((function(t){null!=e.elementsById[t]&&(e.elementsById[t].remove(),delete e.elementsById[t])})),this.elementIds=n,t.forEach((function(t){if(t.id)if(null==e.elementsById[t.id])e.addElement(t);else try{e.elementsById[t.id].props=he(t)}catch(t){console.error("Error updating an element:",t.message)}})),this.buildRelations()},t.prototype.updateElement=function(t){try{this.elementsById[t.id].props=de({},he(t))}catch(t){console.error("Error updating element:",t.message)}this.buildRelations()},Object.defineProperty(t.prototype,"props",{get:function(){return de({},this._props)},set:function(t){var e=this.props;this._props=t,this.render(e)},enumerable:!1,configurable:!0}),t.prototype.render=function(t){void 0===t&&(t=null),t?(t.backgroundURL!==this.props.backgroundURL&&(this.containerRef.style.backgroundImage=null!==this.props.backgroundURL?"url(".concat(this.props.backgroundURL,")"):""),null!=this.props.backgroundColor&&t.backgroundColor!==this.props.backgroundColor&&(this.containerRef.style.backgroundColor=this.props.backgroundColor),this.sizeChanged(t,this.props)&&this.resizeElement(this.props.width,this.props.height)):(this.props.backgroundURL&&(this.containerRef.style.backgroundImage=null!==this.props.backgroundURL?"url(".concat(this.props.backgroundURL,")"):""),this.props.backgroundColor&&(this.containerRef.style.backgroundColor=this.props.backgroundColor),this.resizeElement(this.props.width,this.props.height))},t.prototype.sizeChanged=function(t,e){return t.width!==e.width||t.height!==e.height},t.prototype.resizeElement=function(t,e){this.containerRef.style.width="".concat(t,"px"),this.containerRef.style.height="".concat(e,"px")},t.prototype.resize=function(t,e){this.props=de(de({},this.props),{width:t,height:e})},t.prototype.remove=function(){this.disposables.forEach((function(t){return t.dispose()})),this.elements.forEach((function(t){return t.remove()})),this.elementsById={},this.elementIds=[],this.clearRelations(),this.containerRef.removeEventListener("click",this.handleContainerClick),this.containerRef.innerHTML=""},t.prototype.buildRelations=function(t,e,n){var r=this;this.clearRelations(),this.elements.forEach((function(i){if(null!==i.props.parentId){var o=r.elementsById[i.props.parentId],s=r.elementsById[i.props.id];o&&s&&(null!=t?i.props.parentId==t?r.addRelationLine(o,s,e,n):i.props.id==t?r.addRelationLine(o,s,void 0,void 0,e,n):r.addRelationLine(o,s):r.addRelationLine(o,s))}}))},t.prototype.clearRelations=function(t){if(null!=t)for(var e in this.relations){var n=e.split("|"),r=Number.parseInt(n[0]),i=Number.parseInt(n[1]);t!==r&&t!==i||(this.relations[e].remove(),delete this.relations[e])}else for(var e in this.relations)this.relations[e].remove(),delete this.relations[e]},t.prototype.getRelationLine=function(t,e){var n="".concat(t,"|").concat(e);return this.relations[n]||null},t.prototype.getItemRelations=function(t){var e=[];for(var n in this.relations){var r=n.split("|"),i=Number.parseInt(r[0]),o=Number.parseInt(r[1]);t!==i&&t!==o||e.push({parentId:i,childId:o,line:this.relations[n]})}return e},t.prototype.getVisualCenter=function(t,e){var n=t.x+e.elementRef.clientWidth/2,r=t.y+e.elementRef.clientHeight/2;if(void 0!==e.props.label||""!==e.props.label||null!==e.props.label)switch(e.props.labelPosition){case"up":r=t.y+(e.elementRef.clientHeight+e.labelElementRef.clientHeight)/2;break;case"down":r=t.y+(e.elementRef.clientHeight-e.labelElementRef.clientHeight)/2;break;case"right":n=t.x+(e.elementRef.clientWidth-e.labelElementRef.clientWidth)/2;break;case"left":n=t.x+(e.elementRef.clientWidth+e.labelElementRef.clientWidth)/2}return{x:n,y:r}},t.prototype.addRelationLine=function(t,n,r,i,o,s){var a="".concat(t.props.id,"|").concat(n.props.id);null!=this.relations[a]&&this.relations[a].remove();var l=this.getVisualCenter(t.props,t),c=l.x,p=l.y,u=this.getVisualCenter(n.props,n),d=u.x,h=u.y;null!=r&&(c=r),null!=i&&(p=i),null!=o&&(d=o),null!=s&&(h=s);var m=new L(T({id:0,type:13,startX:c,startY:p,endX:d,endY:h,width:0,height:0,lineWidth:this.props.relationLineWidth,color:(0,e.JW)(n.props.colorStatus,"#CCC")}),(0,e.SM)({receivedAt:new Date}));return this.relations[a]=m,m.elementRef.style.zIndex="0",this.containerRef.append(m.elementRef),m},t.prototype.onItemClick=function(t){var e=this.clickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemDblClick=function(t){var e=this.dblClickEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemMoved=function(t){var e=this.movedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onLineMoved=function(t){var e=this.lineMovedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemResized=function(t){var e=this.resizedEventManager.on(t);return this.disposables.push(e),e},t.prototype.onItemSelectionChanged=function(t){var e=this.selectionChangedEventManager.on(t);return this.disposables.push(e),e},t.prototype.enableEditMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{editMode:!0})})),this.containerRef.classList.add("is-editing")},t.prototype.disableEditMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{editMode:!1})})),this.containerRef.classList.remove("is-editing")},t.prototype.enableMaintenanceMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{maintenanceMode:!0})})),this.containerRef.classList.add("is-maintenance"),this.containerRef.classList.remove("is-editing")},t.prototype.disableMaintenanceMode=function(){this.elements.forEach((function(t){t.meta=de(de({},t.meta),{maintenanceMode:!1})})),this.containerRef.classList.remove("is-maintenance"),this.containerRef.classList.add("is-editing")},t.prototype.updateGridSize=function(t){this._props.gridSize=parseInt(t),this.props.gridSize=parseInt(t)},t.prototype.updateGridSelected=function(t){this._props.gridSelected=t,this.props.gridSelected=t},t.prototype.selectItem=function(t,e){var n=this;void 0===e&&(e=!1),e?this.elementIds.forEach((function(e){var r=n.elementsById[e].meta;e!==t&&r.isSelected?n.elementsById[e].unSelectItem():e!==t||r.isSelected||n.elementsById[e].selectItem()})):this.elementsById[t]&&this.elementsById[t].selectItem()},t.prototype.unSelectItem=function(t){this.elementsById[t]&&this.elementsById[t].meta.isSelected&&this.elementsById[t].unSelectItem()},t.prototype.unSelectItems=function(){var t=this;this.elementIds.forEach((function(e){t.elementsById[e]&&t.elementsById[e].unSelectItem()}))},t.itemDescriptiveName=function(t){var n;switch(t.props.type){case 0:n="".concat((0,e.t)("Static graph")," - ").concat(t.props.imageSrc);break;case 1:n=(0,e.t)("Module graph");break;case 19:n=(0,e.t)("Clock");break;case 18:n=(0,e.t)("Bars graph");break;case 14:n=(0,e.t)("Event history graph");break;case 3:n=(0,e.t)("Percentile bar");break;case 15:n=(0,e.t)("Circular progress bar");break;case 16:n=(0,e.t)("Circular progress bar (interior)");break;case 2:n=(0,e.t)("Simple Value");break;case 4:n=(0,e.t)("Label");break;case 11:n=(0,e.t)("Group");break;case 20:n=(0,e.t)("Color cloud");break;case 5:n="".concat((0,e.t)("Icon")," - ").concat(t.props.imageSrc);break;case 22:n=(0,e.t)("Odometer");break;case 23:n=(0,e.t)("BasicChart");break;default:n=(0,e.t)("Item")}var r=t.props;return null!=r.agentAlias&&null!=r.moduleName?n+=" (".concat((0,e.fk)(r.agentAlias,18)," - ").concat((0,e.fk)(r.moduleName,25),")"):null!=r.agentAlias&&(n+=" (".concat((0,e.fk)(r.agentAlias,25),")")),n},t.items=((le={})[0]=l,le[1]=$t.Z,le[2]=ht,le[6]=ht,le[7]=ht,le[8]=ht,le[3]=Yt,le[9]=Yt,le[15]=Yt,le[16]=Yt,le[4]=at,le[5]=h,le[10]=ie,le[11]=U,le[12]=nt,le[13]=L,le[14]=mt.Z,le[17]=Xt.Z,le[18]=Qt.Z,le[19]=X,le[20]=k,le[21]=W,le[22]=pe,le[23]=ue.Z,le),t}(),fe=function(){function t(t){this.cancellable={cancel:function(){}},this._status="waiting",this.statusChangeEventManager=new P.Z,this.disposables=[],this.taskInitiator=t}return Object.defineProperty(t.prototype,"status",{get:function(){return this._status},set:function(t){this._status=t,this.statusChangeEventManager.emit(t)},enumerable:!1,configurable:!0}),t.prototype.init=function(){var t=this;this.cancellable=this.taskInitiator((function(){t.status="finished"})),this.status="started"},t.prototype.cancel=function(){this.cancellable.cancel(),this.status="cancelled"},t.prototype.onStatusChange=function(t){var e=this.statusChangeEventManager.on(t);return this.disposables.push(e),e},t}(),_e=function(){function t(){this.tasks={}}return t.prototype.add=function(t,e,n){void 0===n&&(n=0),this.tasks[t]&&"started"===this.tasks[t].status&&this.tasks[t].cancel();var r=n>0?function(t,e){return new fe((function(){var n=null;return t.onStatusChange((function(r){"finished"===r&&(n=window.setTimeout((function(){t.init()}),e))})),t.init(),{cancel:function(){n&&clearTimeout(n),t.cancel()}}}))}(new fe(e),n):new fe(e);return this.tasks[t]=r,this.tasks[t]},t.prototype.init=function(t){!this.tasks[t]||"waiting"!==this.tasks[t].status&&"cancelled"!==this.tasks[t].status&&"finished"!==this.tasks[t].status||this.tasks[t].init()},t.prototype.cancel=function(t){this.tasks[t]&&"started"===this.tasks[t].status&&this.tasks[t].cancel()},t}();window.VisualConsole=me,window.VisualConsole.Form=m,window.AsyncTaskManager=_e}()})(); //# sourceMappingURL=vc.main.min.js.map \ No newline at end of file diff --git a/pandora_console/include/visual-console-client/vc.main.min.js.map b/pandora_console/include/visual-console-client/vc.main.min.js.map index 25eb5c5745..1b63396f88 100644 --- a/pandora_console/include/visual-console-client/vc.main.min.js.map +++ b/pandora_console/include/visual-console-client/vc.main.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vc.main.min.js","mappings":"wjBAWA,aAUE,WAAmBA,EAAcC,GATzB,KAAAC,MAAgB,GAGd,KAAAC,YAA6B,CAAC,EAEvB,KAAAC,0BAA4B,IAAI,IAK/CC,KAAKL,KAAOA,EACZK,KAAKJ,YAAcA,CACrB,CA+DF,OA7DE,sBAAW,mBAAI,C,IAKf,WACE,OAAOI,KAAKH,KACd,E,IAPA,SAAgBF,GACd,GAAoB,IAAhBA,EAAKM,OAAc,MAAM,IAAIC,WAAW,cAC5CF,KAAKH,MAAQF,CACf,E,gCAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYK,KAAKF,YACnB,E,gCAEA,sBAAW,sBAAO,C,IAAlB,WACE,GAAqB,MAAjBE,KAAKG,SAAkB,CACzB,IAAMC,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,kCAA2BP,KAAKL,MAEpD,IAAMa,EAAUR,KAAKS,gBAEjBD,aAAmBE,MACrBF,EAAQG,QAAQP,EAAQQ,aAExBR,EAAQQ,YAAYJ,GAGtBR,KAAKG,SAAWC,C,CAGlB,OAAOJ,KAAKG,QACd,E,gCAEO,YAAAU,MAAP,WACEb,KAAKF,YAAc,CAAC,CACtB,EAEU,YAAAgB,WAAV,SAAqBC,GACnBf,KAAKF,YAAc,EAAH,KACXE,KAAKF,aACLiB,EAGP,EAEU,YAAAC,YAAV,SACEC,EACAC,EACAC,GAEAnB,KAAKD,0BAA0BqB,KAAK,CAAEH,WAAU,EAAEC,OAAM,EAAEC,KAAI,GAChE,EAEO,YAAAE,gBAAP,SACEC,GAEA,OAAOtB,KAAKD,0BAA0BwB,GAAGD,EAC3C,EAKF,EA5EA,GAoFA,aAYE,WACEE,EACAC,EACAC,QADA,IAAAD,IAAAA,EAAA,SACA,IAAAC,IAAAA,EAAA,IAHF,WAVQ,KAAAC,kBAAoD,CAAC,EACrD,KAAAC,uBAAmC,GAE1B,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,8BAAgC,IAAI,IAG7C,KAAAC,wBAA0B/B,KAAK8B,8BAA8BV,KAOnEpB,KAAKwB,MAAQA,EAETC,EAAYxB,OAAS,IACvBD,KAAK2B,kBAAoBF,EAAYO,QAAO,SAACC,EAASC,GAIpD,OAFAA,EAAWb,gBAAgB,EAAKU,yBAChCE,EAAQC,EAAWvC,MAAQuC,EACpBD,CACT,GAAGjC,KAAK2B,oBAGND,EAAmBzB,OAAS,IAC9BD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,GAC3BF,EAAmBS,QACpB,SAAAxC,GAAQ,OAAgC,MAAhC,EAAKgC,kBAAkBhC,EAAvB,KACT,GAGP,CA0HF,OAxHS,YAAAyC,cAAP,SAAqBC,GACnB,OAAOrC,KAAK2B,kBAAkBU,IAAmB,IACnD,EAEO,YAAAC,cAAP,SACEJ,EACAK,GAuCA,YAvCA,IAAAA,IAAAA,EAAA,MAGAL,EAAWb,gBAAgBrB,KAAK+B,yBAChC/B,KAAK2B,kBAAkBO,EAAWvC,MAAQuC,EAG1ClC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAASuC,EAAWvC,IAApB,IAGI,OAAV4C,EACEA,GAAS,EACXvC,KAAK4B,uBAAyB,EAAH,CACzBM,EAAWvC,MACRK,KAAK4B,wBAAsB,GAEvBW,GAASvC,KAAK4B,uBAAuB3B,OAC9CD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAGbK,KAAK4B,uBAAyB,EAAH,OAEtB5B,KAAK4B,uBAAuBY,MAAM,EAAGD,IAAM,IAE9CL,EAAWvC,O,GAERK,KAAK4B,uBAAuBY,MAAMD,IAAM,GAI/CvC,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAIRK,IACT,EAEO,YAAAyC,iBAAP,SAAwBJ,GAOtB,cANOrC,KAAK2B,kBAAkBU,GAE9BrC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAAS0C,CAAT,IAGHrC,IACT,EAEO,YAAA0C,eAAP,SACEC,GADF,gBACE,IAAAA,IAAAA,EAAA,UAEA,IAAMC,EAAOvC,SAASC,cAAc,QACpCsC,EAAKC,GAAK,8BACVD,EAAKrC,UAAY,8BACjBqC,EAAKE,iBAAiB,UAAU,SAAAC,GAC9BA,EAAEC,iBACF,EAAKnB,mBAAmBT,KAAK,CAC3B6B,YAAaF,EACbhC,KAAM,EAAKa,uBAAuBI,QAAO,SAACjB,EAAMpB,GAO9C,OANI,EAAKgC,kBAAkBhC,KACzBoB,EAAO,EAAH,KACCA,GACA,EAAKY,kBAAkBhC,GAAMoB,OAG7BA,CACT,GAAG,CAAC,IAER,IAEA,IAAMmC,EAAc7C,SAASC,cAAc,OAW3C,OAVA4C,EAAY3C,UAAY,eAExBP,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzBuD,EAAYtC,YAAY,EAAKe,kBAAkBhC,GAAMS,QAEzD,IAEAwC,EAAKhC,YAAYsC,GAEVN,CACT,EAEO,YAAA/B,MAAP,sBACEb,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzB,EAAKgC,kBAAkBhC,GAAMkB,OAEjC,GACF,EAWO,YAAAsC,SAAP,SAAgB7B,GACd,OAAOtB,KAAK6B,mBAAmBN,GAAGD,EACpC,EAEO,YAAA8B,0BAAP,SACE9B,GAEA,OAAOtB,KAAK8B,8BAA8BP,GAAGD,EAC/C,EACF,EA9JA,E,sSCOM+B,EAAqB,SACzBC,GAEA,OAAQA,GACN,IAAK,KACL,IAAK,QACL,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,EAAqBxC,GACnC,GAAe,MAAXA,EAAK8B,IAAcW,MAAMC,SAAS1C,EAAK8B,KACzC,MAAM,IAAIa,UAAU,eAEtB,GAAiB,MAAb3C,EAAK4B,MAAgBa,MAAMC,SAAS1C,EAAK4B,OAC3C,MAAM,IAAIe,UAAU,iBAGtB,OAAO,EAAP,GACEb,GAAIY,SAAS1C,EAAK8B,IAClBF,KAAMc,SAAS1C,EAAK4B,MACpBgB,OAAO,QAAiB5C,EAAK4C,MAAO,MACpCL,cAAeD,EAAmBtC,EAAKuC,eACvCM,eAAe,QAAa7C,EAAK6C,eACjCC,MAAM,QAAiB9C,EAAK8C,KAAM,MAClCC,SAAS,QAAa/C,EAAK+C,SAC3BC,UAAU,QAAWhD,EAAKgD,SAAU,MACpCC,YAAY,QAAWjD,EAAKiD,WAAY,MACxCC,iBAAiB,QAAWlD,EAAKkD,gBAAiB,MAClDC,aAAa,QAAiBnD,EAAKmD,YAAa,QAChDC,QAAQ,QAAWpD,EAAKoD,OAAQ,MAChCC,cAAc,QAAarD,EAAKqD,gBAC7B,QAAiBrD,KACjB,QAAqBA,GAE5B,CAyFA,iBAwOE,WACEsD,EACAC,EACAC,QAAA,IAAAA,IAAAA,GAAA,GAHF,WAlOO,KAAAC,WAA0BnE,SAASC,cAAc,OACjD,KAAAmE,gBAA+BpE,SAASC,cAAc,OAEnD,KAAAoE,gBAA+BrE,SAASC,cAAc,OAE/C,KAAAqE,kBAAoB,IAAI,IAExB,KAAAC,qBAAuB,IAAI,IAE3B,KAAAC,kBAAoB,IAAI,IAExB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,oBAAsB,IAAI,IAE1B,KAAAC,2BAA6B,IAAI,IAIjC,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,YAA4B,GAIrC,KAAAC,uBAAwB,QAC9B,KACA,SAACC,EAAkBC,GAGjB,EAAKC,UAAUC,cAAe,EAE9B,IAAMC,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAClBL,EAAGA,EACHC,EAAGA,GAGA,EAAKK,gBAAgBF,EAAcC,KAGxC,EAAKE,KAAKP,EAAGC,GAEb,EAAKR,6BAA6B1D,KAAK,CACrCyE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAEjB,IAIM,KAAAI,eAAkC,KA2DlC,KAAAC,yBAA0B,QAChC,KACA,SAACC,EAAsBC,GAGrB,EAAKV,UAAUW,gBAAiB,EAEhC,IAAMC,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKE,OAAON,EAAOC,GAGnB,EAAKjB,2BAA2B5D,KAAK,CACnCyE,KAAM,EACNM,SAAUA,EACVC,QAASA,IAEb,IAIM,KAAAG,iBAAoC,KAmF1CvG,KAAKwG,UAAYnC,EACjBrE,KAAKuF,UAAYjB,EAEZC,GAAWvE,KAAKyG,MACvB,CAozBF,OA59BU,YAAAC,qBAAR,SAA6BtG,GAA7B,WAGuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAKb3C,KAAK8F,gBAAiB,QACpB1F,GACA,SAACiF,EAAkBC,GACjB,IAAMG,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAAEL,EAAC,EAAEC,EAAC,GAE1B,EAAKqB,KAAO,EAAH,KACJ,EAAKA,MAAI,CACZC,YAAY,IAGT,EAAKjB,gBAAgBF,EAAcC,KAIxC,EAAKH,UAAUC,cAAe,EAE9B,EAAKqB,YAAYxB,EAAGC,GAEpB,EAAKT,kBAAkBzD,KAAK,CAC1ByE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAGf,EAAKN,sBAAsBC,EAAGC,GAChC,IAEJ,EAIQ,YAAAwB,qBAAR,WACM9G,KAAK8F,iBACP9F,KAAK8F,iBACL9F,KAAK8F,eAAiB,KAE1B,EAsCU,YAAAiB,uBAAV,SAAiC3G,GAAjC,WAEuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAIb3C,KAAKuG,kBAAmB,QACtBnG,GACA,SAAC4F,EAAsBC,GAQrB,GALA,EAAKV,UAAUW,gBAAiB,EAK5B,EAAK7B,MAAMV,OAAS,EAAKU,MAAMV,MAAM1D,OAAS,EAAG,CAC7C,MAGF,EAAKwE,gBAAgBuC,wBAFhBC,EAAU,QACTC,EAAW,SAGrB,OAAQ,EAAK7C,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2C,GAAUiB,EACV,MACF,IAAK,OACL,IAAK,QACHlB,GAASiB,E,CAKf,IAAMd,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKe,cAAcnB,EAAOC,GAE1B,EAAKlB,oBAAoB3D,KAAK,CAC5ByE,KAAM,EACNM,SAAQ,EACRC,QAAO,IAGT,EAAKL,wBAAwBC,EAAOC,GACtC,IAEJ,EAIQ,YAAAmB,uBAAR,WACMpH,KAAKuG,mBACPvG,KAAKuG,mBACLvG,KAAKuG,iBAAmB,KAE5B,EAsBU,YAAAE,KAAV,WAOEzG,KAAKwE,WAAaxE,KAAKqH,4BACvBrH,KAAKyE,gBAAkBzE,KAAKsH,wBAO5BtH,KAAK0E,gBAAkB1E,KAAKuH,mBAG5BvH,KAAKwE,WAAW5D,YAAYZ,KAAK0E,iBACjC1E,KAAKwE,WAAW5D,YAAYZ,KAAKyE,iBAGjCzE,KAAKmH,cAAcnH,KAAKwG,UAAUR,MAAOhG,KAAKwG,UAAUP,QAExDjG,KAAKwH,oBAAoBxH,KAAKwG,UAAUlD,cAC1C,EAMQ,YAAA+D,0BAAR,eACMI,EADN,OAmGE,OAjGIzH,KAAKqE,MAAMT,eACb6D,EAAMpH,SAASC,cAAc,KAEzBN,KAAKqE,MAAMR,KACb4D,EAAIC,KAAO1H,KAAKqE,MAAMR,KAEtB4D,EAAIlH,UAAY,uBAGlBkH,EAAMpH,SAASC,cAAc,QACzBC,UAAY,qBAGlBkH,EAAIE,UAAUC,IAAI,uBACd5H,KAAKqE,MAAMP,SACb2D,EAAIE,UAAUC,IAAI,aAEpBH,EAAII,MAAMC,KAAO,UAAG9H,KAAKqE,MAAMgB,EAAC,MAChCoC,EAAII,MAAME,IAAM,UAAG/H,KAAKqE,MAAMiB,EAAC,MAE3BtF,KAAKqE,MAAMD,cACbqD,EAAIE,UAAUC,IAAI,sBAIpBH,EAAI3E,iBAAiB,YAAY,SAAAC,GAC1B,EAAK4D,KAAKnB,cAAiB,EAAKmB,KAAKT,iBACxC,EAAK8B,eACL,EAAKC,aAEL,EAAKrD,qBAAqBxD,KAAK,CAC7ByE,KAAM,EACN5C,YAAaF,IAGnB,IACA0E,EAAI3E,iBAAiB,SAAS,SAAAC,GAC5B,GAAI,EAAK4D,KAAKuB,SACZnF,EAAEC,iBACFD,EAAEoF,uBAGF,GAAI,EAAK3B,UAAU5C,eAAwC,MAAvB,EAAK4C,UAAU3C,KAAc,CAC/D,IAAMuE,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GAGtB,IAFA,IAAIC,EAAOvF,EAAEwF,eACTC,EAAc,2BACTjG,EAAQ,EAAGA,EAAQ+F,EAAKrI,OAAQsC,IAAS,CAChD,IAAMnC,EAAUkI,EAAK/F,GACrB,GACgBkG,MAAdrI,EAAQyC,IACM,MAAdzC,EAAQyC,IACM,IAAdzC,EAAQyC,KAEiC,IAArCzC,EAAQyC,GAAG6F,SAASF,GAAuB,CAC7CA,EAAcpI,EAAQyC,GACtB,K,EAKN,IAAM8F,EAActI,SAASuI,eAAeJ,GACzB,MAAfG,IACFA,EAAYhB,UAAUC,IAAI,eAC1Be,EAAY/H,YAAYwH,G,CAKzB,EAAKzB,KAAKnB,cAAiB,EAAKmB,KAAKT,gBACxC,EAAKvB,kBAAkBvD,KAAK,CAC1ByE,KAAM,EACN5C,YAAaF,GAGnB,IAGI/C,KAAK2G,KAAKkC,iBACZpB,EAAIE,UAAUC,IAAI,kBAEhB5H,KAAK2G,KAAKuB,UACZT,EAAIE,UAAUC,IAAI,cAEhB5H,KAAK2G,KAAKmC,YACZrB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKoC,YACZtB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKC,YACZa,EAAIE,UAAUC,IAAI,eAGbH,CACT,EAMU,YAAAH,sBAAV,WACE,IAAMlH,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,4BAEpB,IAAMoD,EAAQ3D,KAAKgJ,6BACnB,GAAIrF,EAAM1D,OAAS,EAAG,CAEpB,IAAMgJ,EAAQ5I,SAASC,cAAc,SAC/B4I,EAAM7I,SAASC,cAAc,MAC7B6I,EAAY9I,SAASC,cAAc,MACnC8I,EAAY/I,SAASC,cAAc,MACnC+I,EAAOhJ,SAASC,cAAc,MAUpC,OARA+I,EAAKC,UAAY3F,EACjBuF,EAAItI,YAAYyI,GAChBJ,EAAMrI,YAAYuI,GAClBF,EAAMrI,YAAYsI,GAClBD,EAAMrI,YAAYwI,GAClBH,EAAMpB,MAAM0B,UAAY,SAGhBvJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAM/C7F,EAAQQ,YAAYqI,E,CAGtB,OAAO7I,CACT,EAKU,YAAA4I,2BAAV,WAEE,IAAM3E,EAAQrE,KAAKqE,MAEnB,OAAO,QACL,CACE,CACEmF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,UACPC,MAA2B,MAApBpF,EAAMsF,WAAqBtF,EAAMsF,WAAa,IAEvD,CACEH,MAAO,qBACPC,MAAiC,MAA1BpF,EAAMuF,iBAA2BvF,EAAMuF,iBAAmB,IAEnE,CACEJ,MAAO,YACPC,MAA6B,MAAtBpF,EAAMwF,aAAuBxF,EAAMwF,aAAe,IAE3D,CACEL,MAAO,WACPC,MAA2B,MAApBpF,EAAMyF,WAAqBzF,EAAMyF,WAAa,IAEvD,CACEN,MAAO,sBACPC,MAAkC,MAA3BpF,EAAM0F,kBAA4B1F,EAAM0F,kBAAoB,KAGvE/J,KAAKqE,MAAMV,OAAS,GAExB,EAMU,YAAAqG,iBAAV,SAA2B5J,GACzBA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,EAAP,GAAYtJ,KAAKwG,UACnB,E,IAQA,SAAiByD,GACfjK,KAAKkK,SAASD,EAChB,E,gCAOU,YAAAC,SAAV,SAAmBD,GACjB,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAKwG,UAAYyD,EAKbjK,KAAKoK,gBAAgBD,EAAWF,IAClCjK,KAAKqK,OAAOF,EAAWnK,KAAKuF,UAChC,EAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYvF,KAAKuF,UACnB,E,IAQA,SAAgB+E,GACdtK,KAAKuK,QAAQD,EACf,E,gCAOO,YAAAC,QAAP,SAAeD,GACb,IAAME,EAAexK,KAAKuF,UAE1BvF,KAAKuF,UAAY,EAAH,KACTiF,GACAF,QAI+B,IAA3BA,EAAY1D,YACnB4D,EAAa5D,aAAe0D,EAAY1D,YAExC5G,KAAKkF,6BAA6B9D,KAAK,CACrCqJ,SAAUH,EAAY1D,aAQ1B5G,KAAKqK,OAAOrK,KAAKwG,UAAWgE,EAC9B,EAcU,YAAAJ,gBAAV,SAA0BD,EAAkBF,GAC1C,OAAOE,IAAcF,CACvB,EAMO,YAAAI,OAAP,SACEF,EACAO,QADA,IAAAP,IAAAA,EAAA,WACA,IAAAO,IAAAA,EAAA,MAEIP,GACFnK,KAAKgK,iBAAiBhK,KAAK0E,iBAGxByF,IAAanK,KAAK2F,gBAAgBwE,EAAWnK,KAAKqE,SACrDrE,KAAK6G,YAAY7G,KAAKqE,MAAMgB,EAAGrF,KAAKqE,MAAMiB,GAExC6E,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI1ByF,IAAanK,KAAKqG,YAAY8D,EAAWnK,KAAKqE,SACjDrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAE9CkE,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI/B,IAAMiG,EAAe3K,KAAKyE,gBAAgB6E,UACpCsB,EAAe5K,KAAKsH,wBAAwBgC,UAiBlD,GAhBIqB,IAAiBC,IACnB5K,KAAKyE,gBAAgB6E,UAAYsB,GAG9BT,GAAaA,EAAU7G,gBAAkBtD,KAAKqE,MAAMf,eACvDtD,KAAKwH,oBAAoBxH,KAAKqE,MAAMf,eAGjC6G,GAAaA,EAAUrG,UAAY9D,KAAKqE,MAAMP,UAC7C9D,KAAKqE,MAAMP,QACb9D,KAAKwE,WAAWmD,UAAUC,IAAI,aAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,cAIjCV,GAAaA,EAAUvG,gBAAkB5D,KAAKqE,MAAMT,cAAe,CACrE,IAAMkH,EAAY9K,KAAKqH,4BAEvByD,EAAUxB,UAAYtJ,KAAKwE,WAAW8E,UAGtC,IADA,IAAMyB,EAAQ/K,KAAKwE,WAAWwG,WACrBC,EAAI,EAAGA,EAAIF,EAAM9K,OAAQgL,IAChC,GAA0B,OAAtBF,EAAME,GAAGC,SAAmB,CAC9B,IAAIC,EAAgBnL,KAAKwE,WAAW4G,iBAClCL,EAAME,GAAGC,UAEW,OAAlBC,GACFL,EAAUO,iBAAsBF,EAAcG,Y,CAKjB,OAA/BtL,KAAKwE,WAAW+G,YAClBvL,KAAKwE,WAAW+G,WAAWC,aAAaV,EAAW9K,KAAKwE,YAI1DxE,KAAKwE,WAAasG,C,CAuCpB,GAnCEX,GACAnK,KAAKqE,MAAMT,eACXuG,EAAUtG,OAAS7D,KAAKqE,MAAMR,MAEN,OAApB7D,KAAKqE,MAAMR,MACb7D,KAAKwE,WAAWiH,aAAa,OAAQzL,KAAKqE,MAAMR,MAMjD6G,GACDA,EAASxC,WAAalI,KAAK2G,KAAKuB,UAChCwC,EAAS7B,kBAAoB7I,KAAK2G,KAAKkC,kBAEnC7I,KAAK2G,KAAKuB,WAA0C,IAA9BlI,KAAK2G,KAAKkC,iBAClC7I,KAAKwE,WAAWmD,UAAUC,IAAI,cAC9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,wBAEjC7K,KAAKwE,WAAWmD,UAAUkD,OAAO,cAE7B7K,KAAKqE,MAAMD,cACbpE,KAAKwE,WAAWmD,UAAUC,IAAI,wBAK/B8C,GAAYA,EAAS5B,aAAe9I,KAAK2G,KAAKmC,aAC7C9I,KAAK2G,KAAKmC,WACZ9I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,iBAIhCH,GAAYA,EAAS3B,aAAe/I,KAAK2G,KAAKoC,WAAY,CAC7D,GAAI/I,KAAK2G,KAAKoC,WAAY,CACxB/I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B,IAAMQ,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GACtBrI,KAAKwE,WAAW5D,YAAYwH,E,KACvB,CACLpI,KAAKwE,WAAWmD,UAAUkD,OAAO,eAEjC,IAAMa,EAAM1L,KAAKwE,WAAWmH,cAC1B,+BAEF,GAAY,OAARD,EAAc,CAChB,IAAM,EAASA,EAAIE,cACJ,OAAX,GACF,EAAOC,YAAYH,E,EAKzB1L,KAAKgK,iBAAiBhK,KAAK0E,gB,CAExBgG,GAAYA,EAAS9D,aAAe5G,KAAK2G,KAAKC,aAC7C5G,KAAK2G,KAAKC,WACZ5G,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,eAGvC,EAKO,YAAAA,OAAP,WAEE7K,KAAKiF,mBAAmB7D,KAAK,CAAEyE,KAAM7F,OAErCA,KAAKmF,YAAYxE,SAAQ,SAAAmL,GACvB,IACEA,EAAWC,SACO,CAAlB,MAAOC,GAAW,CACtB,IAEAhM,KAAKwE,WAAWqG,QAClB,EASU,YAAAlF,gBAAV,SACEF,EACAC,GAEA,OAAOD,EAAaJ,IAAMK,EAAYL,GAAKI,EAAaH,IAAMI,EAAYJ,CAC5E,EAMU,YAAAkC,oBAAV,SAA8ByE,GAC5B,OAAQA,GACN,IAAK,KACHjM,KAAKwE,WAAWqD,MAAMqE,cAAgB,iBACtC,MACF,IAAK,OACHlM,KAAKwE,WAAWqD,MAAMqE,cAAgB,cACtC,MACF,IAAK,QACHlM,KAAKwE,WAAWqD,MAAMqE,cAAgB,MACtC,MAEF,QACElM,KAAKwE,WAAWqD,MAAMqE,cAAgB,SAK1C,IAAMC,EAASnM,KAAKyE,gBAAgB2H,qBAAqB,SACnDnD,EAAQkD,EAAOlM,OAAS,EAAIkM,EAAOtG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAKnD,EAOU,YAAAY,YAAV,SAAsBxB,EAAWC,GAC/BtF,KAAKwE,WAAWqD,MAAMC,KAAO,UAAGzC,EAAC,MACjCrF,KAAKwE,WAAWqD,MAAME,IAAM,UAAGzC,EAAC,KAClC,EAOO,YAAAM,KAAP,SAAYP,EAAWC,GACrBtF,KAAK6G,YAAYxB,EAAGC,GACpBtF,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACbgB,EAAC,EACDC,EAAC,GAEL,EASU,YAAAe,YAAV,SAAsBF,EAAgBC,GACpC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOU,YAAAkB,cAAV,SAAwBnB,EAAeC,GAUrC,GAPqB,IAAnBjG,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAEX3C,KAAK0E,gBAAgBmD,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC9DhG,KAAK0E,gBAAgBmD,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,IAG/DjG,KAAKqE,MAAMV,OAAS3D,KAAKqE,MAAMV,MAAM1D,OAAS,EAAG,CAEnD,IAAMkM,EAASnM,KAAKyE,gBAAgB2H,qBAAqB,SACnDnD,EAAQkD,EAAOlM,OAAS,EAAIkM,EAAOtG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2F,EAAMpB,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC/C,MACF,IAAK,OACL,IAAK,QACHiD,EAAMpB,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,G,CAK5D,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKmH,cAAcnB,EAAOC,GAC1BjG,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAMO,YAAAoG,QAAP,SAAe/K,GAMb,IAAMwK,EAAa9L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAAS,WAAP,SAAkBjL,GAMhB,IAAMwK,EAAa9L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAAU,QAAP,SAAelL,GAMb,IAAMwK,EAAa9L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAAW,mBAAP,SAA0BnL,GAMxB,IAAMwK,EAAa9L,KAAK8E,6BAA6BvD,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAAY,UAAP,SAAiBpL,GAMf,IAAMwK,EAAa9L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAAa,iBAAP,SAAwBrL,GAMtB,IAAMwK,EAAa9L,KAAKgF,2BAA2BzD,GAAGD,GAGtD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAAc,SAAP,SAAgBtL,GAMd,IAAMwK,EAAa9L,KAAKiF,mBAAmB1D,GAAGD,GAG9C,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAAe,mBAAP,SACEvL,GAOA,IAAMwK,EAAa9L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAOO,YAAA7D,WAAP,WACEjI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK0G,qBAAqB1G,KAAKwE,YAET,KAApBxE,KAAKqE,MAAM1B,MACS,KAApB3C,KAAKqE,MAAM1B,MAEX3C,KAAK+G,uBAAuB/G,KAAKwE,WAErC,EAMO,YAAAwD,aAAP,WACEhI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK8G,uBACmB,KAApB9G,KAAKqE,MAAM1B,MACb3C,KAAKoH,wBAET,EAGO,YAAA0F,iBAAP,WACE,OAAOC,EAAkBD,iBAAiB9M,KAAKqE,MACjD,EAGc,EAAAyI,iBAAd,SAA+BzI,GAC7B,IAAM7C,EAAgB6C,EAAM1B,KAxnCzB,SAAmBE,GACxB,IAAIrB,EAAQ,GACZ,OAAQqB,GACN,KAAK,EACHrB,GAAQ,IAAAwL,GAAE,gBACV,MACF,KAAK,EACHxL,GAAQ,IAAAwL,GAAE,gBACV,MACF,KAAK,EAYL,KAAK,EAGL,KAAK,EAGL,KAAK,EACHxL,GAAQ,IAAAwL,GAAE,gBACV,MAjBF,KAAK,EAkBL,KAAK,EAkBL,KAAK,GAGL,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,mBACV,MAtCF,KAAK,EACHxL,GAAQ,IAAAwL,GAAE,SACV,MACF,KAAK,EACHxL,GAAQ,IAAAwL,GAAE,QACV,MAaF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,WACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,SACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,OACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,QACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,uBACV,MAOF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,wBACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,cACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,SACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,eACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,gBACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,YACV,MACF,KAAK,GACHxL,GAAQ,IAAAwL,GAAE,eACV,MACF,QACExL,GAAQ,IAAAwL,GAAE,QAId,OAAOxL,CACT,CAuiCuCyL,CAAU5I,EAAM1B,OAAQ,IAAAqK,GAAE,QAC7D,OAAO,IAAI,EAAAE,cAAc1L,EAAO,GAAI,GACtC,EACF,EAriCA,GAuiCA,M,ihCCrwCM2L,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,aACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,sBAAsBxM,GACpC,IAAI,wCAAcA,EAAKyM,QAAS,wCAAczM,EAAK0M,aACjD,MAAM,IAAI/J,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN6K,MAAO,wCAAczM,EAAKyM,OAEtB,wCAAazM,EAAK0M,aADlB1M,EAAKyM,KAETJ,gBAAiBD,oBAAoBpM,EAAKqM,iBAC1CE,UAAWD,eAAetM,EAAKuM,WAC/BI,WAAW,wCAAc3M,EAAK2M,WAAa,UAAY3M,EAAK2M,aACzD,wCAAmB3M,GAE1B,CAEA,oD,wDA6CA,QA7CuC,4BAC3B,oBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAC/BpN,QAAQG,UAAY,cAEW,IAA7BP,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMC,QAAU1N,QAAQgM,qBAAqB,U,iBACpCnB,GACuB,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjB+N,YAAW,WACT,IACEC,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEf,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,oBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,MAGA,IAA7BxN,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMC,QAAU1N,QAAQgM,qBAAqB,UACpCnB,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,IACJ,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjBgO,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OAGhC,EACF,UA7CA,CAAuC,uC,ijCCrChC,SAASC,uBACdpN,GAEA,IAAI,wCAAcA,EAAKyM,QAAS,wCAAczM,EAAK0M,aACjD,MAAM,IAAI/J,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN6K,MAAO,wCAAczM,EAAKyM,OAEtB,wCAAazM,EAAK0M,aADlB1M,EAAKyM,KAETY,QAAQ,wCAAWrN,EAAKqN,OAAQ,MAChC3E,MAAO4E,WAAWtN,EAAK0I,OACvB6E,QAAQ,wCAAcvN,EAAKuN,QAAU,UAAYvN,EAAKuN,OACtDC,iBAAiB,wCAAcxN,EAAKwN,iBAChC,UACAxN,EAAKwN,mBACN,wCAAmBxN,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAmKA,QAnKwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEjCkO,OAASnO,SAASC,cAAc,OACtCkO,OAAOjO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW2E,YAAczO,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM6G,MAAQ,UAAG1O,KAAKqE,MAAMkK,iBACvCC,OAAO5N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK2O,cAAc3O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMmF,YAAcvO,SAASC,cAAc,MAC3CsO,YAAYrO,UAAY,2BACxBqO,YAAYH,YAAc,UAAGhF,OAC7BmF,YAAY/G,MAAM6G,MAAQ1O,KAAKqE,MAAMiK,OACrCE,OAAO5N,YAAYgO,aAEnBxO,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAC/BpN,QAAQG,UAAY,eAEW,IAA7BP,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMgB,QAAUzO,QAAQgM,qBAAqB,KACpCnB,EAAI,EAAGA,EAAI4D,QAAQ5O,OAAQgL,IAClC4D,QAAQ5D,GAAGpD,MAAMiH,OAAS,MAK5B,IADA,IAAMC,eAAiB3O,QAAQ4O,uBAAuB,kBAC7C/D,EAAI,EAAGA,EAAI8D,eAAe9O,OAAQgL,IACzC8D,eAAe9D,GAAGJ,SAKpB,IADA,IAAMiD,QAAU1N,QAAQgM,qBAAqB,U,iBACpCnB,GACuB,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjB+N,YAAW,WACT,IACEC,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEf,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,I,QAA3BA,GAaT,OAHA7K,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAC/BpN,QAAQ6O,aAAaT,OAAQpO,QAAQ8O,YAE9B9O,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzB,IAAMoO,OAASnO,SAASC,cAAc,OACtCkO,OAAOjO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW2E,YAAczO,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM6G,MAAQ,UAAG1O,KAAKqE,MAAMkK,iBACvCC,OAAO5N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK2O,cAAc3O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMmF,YAAcvO,SAASC,cAAc,MAC3CsO,YAAYrO,UAAY,2BACxBqO,YAAYH,YAAc,UAAGhF,OAC7BmF,YAAY/G,MAAM6G,MAAQ1O,KAAKqE,MAAMiK,OACrCE,OAAO5N,YAAYgO,aAEnBxO,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAC/BpN,QAAQ6O,aAAaT,OAAQpO,QAAQ8O,YAIrC,IADA,IAAML,QAAUzO,QAAQgM,qBAAqB,KACpCnB,EAAI,EAAGA,EAAI4D,QAAQ5O,OAAQgL,IAClC4D,QAAQ5D,GAAGpD,MAAMiH,OAAS,MAK5B,IADA,IAAMC,eAAiB3O,QAAQ4O,uBAAuB,kBAC7C/D,EAAI,EAAGA,EAAI8D,eAAe9O,OAAQgL,IACzC8D,eAAe9D,GAAGJ,SAKpB,IADA,IAAMiD,QAAU1N,QAAQgM,qBAAqB,UACpCnB,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,IACJ,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjBgO,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OAGhC,EAEU,qBAAAS,cAAV,SACEQ,EACAC,EACAC,EACAC,EACAC,GAUA,GARAA,OAA6B,IAAZA,EAA0BA,EAAU,IAIhDD,IACHA,EAAa,IAGXF,GACF,GAAII,KAAKC,MAAMN,IAAWA,EACxB,MAAO,OAEJ,CACLG,IACA,IAAMI,EAAe1P,KAAK2P,IAAI,IAAKL,EAAY,GAC/CH,EACEK,KAAKC,MAAMN,EAASS,OAAOnM,SAASiM,IACpCE,OAAOnM,SAASiM,E,CAMpB,IAHA,IACIG,EAAM,EAEHL,KAAKM,IAAIX,IAAWI,GAEzBM,IACAV,GAAkBI,EAapB,OATEJ,EADEI,EACOC,KAAKC,MA7BD,EA6BON,GA7BP,EA+BJK,KAAKC,MA/BD,EA+BON,GAGlB3L,MAAM2L,KACRA,EAAS,GAGJA,EAAS,IAnBH,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAmBxBU,GAAOR,CACtC,EAEU,qBAAAM,IAAV,SAAcI,EAAe9P,EAAgB+P,GAC3C,IAAIC,EAAMF,EAAQ,GAClB,OAAO9P,GAAUgQ,EAAIhQ,OACjBgQ,EACAjQ,KAAK2P,IAAIM,EAAMD,EAAS/P,EAAQ+P,EACtC,EACF,WAnKA,CAAwC,uC,kjCC3BjC,SAASE,uBACdnP,GAEA,IAAI,wCAAcA,EAAKyM,QAAS,wCAAczM,EAAK0M,aACjD,MAAM,IAAI/J,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN6K,MAAO,wCAAczM,EAAKyM,OAEtB,wCAAazM,EAAK0M,aADlB1M,EAAKyM,KAET2C,uBAAuB,wCAAcpP,EAAKoP,uBACtC,UACApP,EAAKoP,yBACN,wCAAmBpP,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAgDA,QAhDwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,cACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAC/BpN,QAAQyH,MAAMuF,gBAAkBpN,KAAKqE,MAAM8L,uBAGZ,IAA7BnQ,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMC,QAAU1N,QAAQgM,qBAAqB,U,iBACpCnB,GACuB,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjB+N,YAAW,WACT,IACEC,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEf,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAC/BpN,QAAQyH,MAAMuF,gBAAkBpN,KAAKqE,MAAM8L,uBAGZ,IAA7BnQ,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMC,QAAU1N,QAAQgM,qBAAqB,UACpCnB,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,IACJ,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjBgO,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OAGhC,EACF,WAhDA,CAAwC,uC,qjCCzBjC,SAASkC,0BACdrP,GAEA,IAAI,wCAAcA,EAAKyM,QAAS,wCAAczM,EAAK0M,aACjD,MAAM,IAAI/J,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN0N,SAAS,wCAAWtP,EAAKsP,QAAS,MAClCC,YAAavP,EAAKuP,YAClB9C,MAAO,wCAAczM,EAAKyM,OAEtB,wCAAazM,EAAK0M,aADlB1M,EAAKyM,QAEN,wCAAmBzM,GAE1B,CAEA,4D,wDAmDA,QAnD2C,gCAC/B,wBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,iBACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,MAGA,IAA7BxN,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMC,QAAU1N,QAAQgM,qBAAqB,U,iBACpCnB,GACuB,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjB+N,YAAW,WACT,IACEC,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEf,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,I,QAA3BA,GAUT,IAAIsF,SAAWnQ,QAAQ4O,uBACrB,cAIF,OAFAuB,SAAS,GAAG1I,MAAM6G,MAAQ1O,KAAKqE,MAAMiM,YAE9BlQ,OACT,EAEU,wBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAG/B,IAAMgD,IAAMnQ,SAASC,cAAc,OACnCkQ,IAAIlH,UAAYtJ,KAAKqE,MAAMmJ,KAE3B,IADA,IAAMM,QAAU0C,IAAIpE,qBAAqB,UAChCnB,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,IACJ,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjBgO,KAAKH,QAAQ7C,GAAG3B,UAAU4E,QAI9B,IAAIqC,SAAWnQ,QAAQ4O,uBACrB,cAEFuB,SAAS,GAAG1I,MAAM6G,MAAQ1O,KAAKqE,MAAMiM,WACvC,EACF,cAnDA,CAA2C,uC,sjCCjBrCG,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,wBACd9P,GAEA,IAAI,wCAAcA,EAAKyM,QAAS,wCAAczM,EAAK0M,aACjD,MAAM,IAAI/J,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,EACN6K,MAAO,wCAAczM,EAAKyM,OAEtB,wCAAazM,EAAK0M,aADlB1M,EAAKyM,KAETkD,eAAgBD,oBAAoB1P,EAAK2P,gBACzCtC,QAAQ,wCAAWrN,EAAKqN,OAAQ,MAChCwC,UAAWD,eAAe5P,EAAK6P,WAC/BE,eAAe,wCAAW/P,EAAK+P,cAAe,SAC3C,wCAAmB/P,KACnB,wCAAqBA,GAE5B,CAEA,wD,wDA8CA,QA9CyC,8BAC7B,sBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,KAC/BpN,QAAQG,UAAY,gBAEW,IAA7BP,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMC,QAAU1N,QAAQgM,qBAAqB,U,iBACpCnB,GACuB,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjB+N,YAAW,WACT,IACEC,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEf,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,sBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,MAGA,IAA7BxN,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,QAAQyH,MAAMgG,QAAU,OAK1B,IADA,IAAMC,QAAU1N,QAAQgM,qBAAqB,UACpCnB,EAAI,EAAGA,EAAI6C,QAAQ7N,OAAQgL,IACJ,IAA1B6C,QAAQ7C,GAAG8C,IAAI9N,QACjBgO,KAAKH,QAAQ7C,GAAG3B,UAAU4E,OAGhC,EACF,YA9CA,CAAyC,uC,qDCpFzC,IAAM6C,EAAQ,6BA6Cd,IApCwB,SACtBC,EACAxP,EACA,G,IAAA,aAA2C,CAAC,EAAC,EAA3CyP,EAAI,OAAEvC,EAAK,QAAEwC,EAAI,OAAEC,EAAK,QAEpBrG,EAAYzK,SAASC,cAAc,UACzCwK,EAAUtJ,MAAQA,EAClBsJ,EAAUvK,UAAY,gBAASyQ,EAAeI,UAE1CH,GAAMnG,EAAUnD,UAAUC,IAAI,aAAMqJ,IAEpCC,EAAMpG,EAAUnD,UAAUC,IAAI,WACzBuJ,GAAOrG,EAAUnD,UAAUC,IAAI,YAExC,IAAMyJ,EAAOhR,SAASiR,gBAAgBP,EAAO,OAE7CM,EAAK5F,aACH,UACA,cAAOuF,EAAeK,KAAK,GAAE,YAAIL,EAAeK,KAAK,KAEnD3C,GAAO2C,EAAK5F,aAAa,OAAQiD,GAGrC,IAAMpG,EAAOjI,SAASiR,gBAAgBP,EAAO,QACvCQ,EAC8B,iBAA3BP,EAAeK,KAAK,GACvBL,EAAeK,KAAK,GACpBL,EAAeK,KAAK,GAAG,GAM7B,OALA/I,EAAKmD,aAAa,IAAK8F,GAEvBF,EAAKzQ,YAAY0H,GACjBwC,EAAUlK,YAAYyQ,GAEfvG,CACT,C,wBCrCA,sBACU,KAAA0G,UAA2B,GAC3B,KAAAC,eAAgC,GAEjC,KAAAlQ,GAAK,SAACD,GAEX,OADA,EAAKkQ,UAAUlF,KAAKhL,GACb,CACLyK,QAAS,WAAM,SAAK2F,IAAIpQ,EAAT,EAEnB,EAEO,KAAAqQ,KAAO,SAACrQ,GACb,EAAKmQ,eAAenF,KAAKhL,EAC3B,EAEO,KAAAoQ,IAAM,SAACpQ,GACZ,IAAMsQ,EAAgB,EAAKJ,UAAUK,QAAQvQ,GACzCsQ,GAAiB,GAAG,EAAKJ,UAAUM,OAAOF,EAAe,EAC/D,EAEO,KAAAxQ,KAAO,SAAC2Q,GAEb,EAAKP,UAAU7Q,SAAQ,SAAAW,GAAY,OAAAA,EAASyQ,EAAT,IAGnC,EAAKN,eAAe9Q,SAAQ,SAAAW,GAAY,OAAAA,EAASyQ,EAAT,IACxC,EAAKN,eAAiB,EACxB,EAEO,KAAAO,KAAO,SAACC,GAAkC,SAAK1Q,IAAG,SAAAwB,GAAK,OAAAkP,EAAG7Q,KAAK2B,EAAR,GAAb,CACnD,C,ktBChBO,SAASmP,EAAczI,EAAgB0I,GAC5C,MAAqB,iBAAV1I,EAA2BA,EACjB,iBAAVA,GAAsBA,EAAMxJ,OAAS,IAAMuD,MAAMC,SAASgG,IAC5DhG,SAASgG,GACN0I,CACd,CAQO,SAASC,EAAgB3I,EAAgB0I,GAC9C,MAAqB,iBAAV1I,EAA2BA,EAEnB,iBAAVA,GACPA,EAAMxJ,OAAS,IACduD,MAAM6K,WAAW5E,IAEX4E,WAAW5E,GACR0I,CACd,CAOO,SAASE,EAAc5I,GAC5B,OAAgB,MAATA,GAAkC,IAAjBA,EAAMxJ,MAChC,CAQO,SAASqS,EACd7I,EACA0I,GAEA,MAAwB,iBAAV1I,GAAsBA,EAAMxJ,OAAS,EAAIwJ,EAAQ0I,CACjE,CAOO,SAASI,EAAa9I,GAC3B,MAAqB,kBAAVA,EAA4BA,EACb,iBAAVA,EAA2BA,EAAQ,EACzB,iBAAVA,IAAqC,MAAVA,GAA2B,SAAVA,EAE9D,CA4BO,SAAS+I,EACd/I,EACAxJ,EACA0P,QAAA,IAAAA,IAAAA,EAAA,KAEqB,iBAAVlG,IAAoBA,EAAQ,UAAGA,IACvB,iBAARkG,IAAkBA,EAAM,UAAGA,IAEtC,IAAM8C,EAAaxS,EAASwJ,EAAMxJ,OAClC,GAAmB,IAAfwS,EAAkB,OAAOhJ,EAC7B,GAAIgJ,EAAa,EAAG,OAAOhJ,EAAMiJ,OAAOlD,KAAKM,IAAI2C,IAEjD,GAAIA,IAAe9C,EAAI1P,OAAQ,MAAO,UAAG0P,GAAG,OAAGlG,GAC/C,GAAIgJ,EAAa9C,EAAI1P,OAAQ,MAAO,UAAG0P,EAAIgD,UAAU,EAAGF,IAAW,OAAGhJ,GAMtE,IAJA,IAAMmJ,EAAcpD,KAAKqD,MAAMJ,EAAa9C,EAAI1P,QAC1C6S,EAAaL,EAAa9C,EAAI1P,OAAS2S,EAEzCG,EAAS,GACJ9H,EAAI,EAAGA,EAAI2H,EAAa3H,IAAK8H,GAAUpD,EAEhD,OAAmB,IAAfmD,EAAyB,UAAGC,GAAM,OAAGtJ,GAClC,UAAGsJ,GAAM,OAAGpD,EAAIgD,UAAU,EAAGG,IAAW,OAAGrJ,EACpD,CASO,SAASuJ,EAAqBjS,GACnC,MAAO,CACLsE,EAAG6M,EAAWnR,EAAKsE,EAAG,GACtBC,EAAG4M,EAAWnR,EAAKuE,EAAG,GAE1B,CAQO,SAAS2N,EAAiBlS,GAC/B,GACgB,MAAdA,EAAKiF,OACLxC,MAAMC,SAAS1C,EAAKiF,SACL,MAAfjF,EAAKkF,QACLzC,MAAMC,SAAS1C,EAAKkF,SAEpB,MAAM,IAAIvC,UAAU,iBAGtB,MAAO,CACLsC,MAAOvC,SAAS1C,EAAKiF,OACrBC,OAAQxC,SAAS1C,EAAKkF,QAE1B,CA8BO,SAASiN,EAAmBnS,GACjC,OAAO,EAAP,CACEoS,SAAUjB,EAAWnR,EAAKoS,SAAU,MACpCrJ,WAAYwI,EAAiBvR,EAAK+I,WAAY,MAC9CC,kBAAmBuI,EAAiBvR,EAAKgJ,kBAAmB,MAC5D6D,eAAgB2E,EAAaxR,EAAK6M,iBA5B/B,SAA2B7M,GAChC,IAAMqS,EAA6B,CACjCC,QAASnB,EAAWnR,EAAKsS,QAAS,MAClCC,UAAWhB,EAAiBvR,EAAKuS,UAAW,MAC5C3J,WAAY2I,EAAiBvR,EAAK4I,WAAY,MAC9CC,iBAAkB0I,EAAiBvR,EAAK6I,iBAAkB,MAC1DC,aAAcyI,EAAiBvR,EAAK8I,aAAc,MAClD8D,cAAe4E,EAAaxR,EAAK4M,gBAGnC,OAA6B,MAAtB5M,EAAKwS,cACR,EAAD,CACGA,cAAexS,EAAKwS,eACjBH,GAELA,CACN,CAaOI,CAAkBzS,GAEzB,CAQO,SAAS0S,EACd1S,GAEA,IAAI2S,EAA0D,CAC5DC,uBAAwB,WAE1B,OAAQ5S,EAAK4S,wBACX,IAAK,SACH,IAAMC,EAAS1B,EAAWnR,EAAK8S,6BAA8B,MAC7D,GAAc,MAAVD,EACF,MAAM,IAAIlQ,UAAU,0CAElB3C,EAAK8S,+BACPH,EAA0B,CACxBC,uBAAwB,SACxBE,6BAA8BD,IAElC,MAEF,IAAK,UACH,IAAME,EAAmB5B,EACvBnR,EAAKgT,uCACL,MAEIC,EAAoB9B,EACxBnR,EAAKkT,wCACL,MAEF,GAAwB,MAApBH,GAAiD,MAArBE,EAC9B,MAAM,IAAItQ,UAAU,0CAGtBgQ,EAA0B,CACxBC,uBAAwB,UACxBI,uCAAwCD,EACxCG,wCAAyCD,GAM/C,OAAO,EAAP,CACEE,eAAgBhC,EAAWnR,EAAKmT,eAAgB,MAChDC,mBAAoBjC,EAAWnR,EAAKoT,mBAAoB,OACrDT,EAEP,CAOO,SAASU,EAAgBrT,GAC9B,IAnL6B0I,EAmLvB4K,GAA0C,MAnLnB5K,EAmLE1I,EAAKsT,sBAlLf3K,KAAaD,EACR,iBAAVA,EAA2B,IAAIC,KAAa,IAARD,GAEjC,iBAAVA,GACNmG,OAAOpM,MAAM,IAAIkG,KAAKD,GAAO6K,WA8KgB,KA5KvC,IAAI5K,KAAKD,IA6KlB,GAAmB,OAAf4K,EAAqB,MAAM,IAAI3Q,UAAU,0BAE7C,IAAI6Q,EAAQ,KAIZ,OAHIxT,EAAKwT,iBAAiBC,MAAOD,EAAQxT,EAAKwT,MACf,iBAAfxT,EAAKwT,QAAoBA,EAAQ,IAAIC,MAAMzT,EAAKwT,QAEzD,CACLF,WAAU,EACVE,MAAK,EACLrM,SAAUqK,EAAaxR,EAAKmH,UAC5BW,gBAAiB0J,EAAaxR,EAAK8H,iBACnC4L,YAAalC,EAAaxR,EAAK0T,aAC/B3L,YAAY,EACZC,YAAY,EACZvD,cAAc,EACdU,gBAAgB,EAChBU,YAAY,EACZ8N,UAAU,EAEd,CAQO,SAASC,EACdC,EACAC,GAEA,IAAMC,EAAO,UAAGF,EAAQ,aAAKC,EAAS,KACtC,MAAO,CACL,kBAAWC,GACX,eAAQA,GACR,cAAOA,GACP,aAAMA,GACN,UAAGA,GAEP,CAOO,SAASC,EAAahF,GAC3B,OAAOiF,mBAAmBC,OAAOC,OAAOC,KAAKpF,IAC/C,CASO,SAASqF,EAAUC,EAAYC,GACpC,QADoC,IAAAA,IAAAA,EAAA,MAChCA,GAAUC,MAAQA,KAAKC,eAOzB,OAAOD,KAAKC,eAAeF,EALiB,CAC1CG,IAAK,UACLC,MAAO,UACPC,KAAM,YAEoCC,OAAOP,GAGnD,IAAMI,EAAMjD,EAAQ6C,EAAKQ,UAAW,EAAG,GAEjCH,EAAQlD,EAAQ6C,EAAKS,WAAa,EAAG,EAAG,GACxCH,EAAOnD,EAAQ6C,EAAKU,cAAe,EAAG,GAG5C,MAAO,UAAGN,EAAG,YAAIC,EAAK,YAAIC,EAE9B,CAQO,SAASK,EAAUX,GACxB,IAAMY,EAAQzD,EAAQ6C,EAAKa,WAAY,EAAG,GACpCC,EAAU3D,EAAQ6C,EAAKe,aAAc,EAAG,GACxCC,EAAU7D,EAAQ6C,EAAKiB,aAAc,EAAG,GAE9C,MAAO,UAAGL,EAAK,YAAIE,EAAO,YAAIE,EAChC,CAWO,SAASE,EAAcC,EAAiBC,GAC7C,OAAOD,EAAOxU,QACZ,SAAC0U,EAAK,G,IAAElN,EAAK,QAAEC,EAAK,QAAO,OAAAiN,EAAIC,QAAQnN,EAAOC,EAAnB,GAC3BgN,EAEJ,CAQO,SAASG,EAAeC,EAAeC,GAC5C,IAAIC,EAAO,EACX,OAAO,W,IAAC,sDACN,IAAMC,EAAMtN,KAAKsN,MACjB,KAAIA,EAAMD,EAAOF,GAEjB,OADAE,EAAOC,EACAF,EAAE,aAAIG,EACf,CACF,CAQO,SAASC,EAAYL,EAAeC,GACzC,IAAIK,EAA0B,KAC9B,OAAO,W,IAAC,sDACW,OAAbA,GAAmBjC,OAAOkC,aAAaD,GAC3CA,EAAWjC,OAAOlH,YAAW,WAC3B8I,EAAE,aAAIG,GACNE,EAAW,IACb,GAAGN,EACL,CACF,CAMA,SAASQ,EAAUC,EAAwBC,GAGzC,IAFA,IAAIlS,EAAI,EACJC,EAAI,EAENgS,IACC1H,OAAOpM,MAAM8T,EAAGE,cAChB5H,OAAOpM,MAAM8T,EAAGG,YACjBH,IAAOC,GAEPlS,GAAKiS,EAAGE,WAAaF,EAAGI,WACxBpS,GAAKgS,EAAGG,UAAYH,EAAGK,UACvBL,EAAKA,EAAGM,aAEV,MAAO,CAAE7P,IAAKzC,EAAGwC,KAAMzC,EACzB,CAWO,SAASwS,EACdzX,EACAoM,EACAsL,GAEA,IAAMhN,EAAYgN,GAAiB1X,EAAQwL,cAGrCmM,EAAc3X,EAAQ4X,UAExBC,EAAuB,EACvBC,EAAuB,EACvBC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EACrCC,EAAqC,EAErCC,EAAkBzN,EAAU9D,wBAC5BwR,EAAkBnB,EAAUvM,GAC5B2N,EAAeD,EAAgBzQ,IAC/B2Q,EAAkBD,EAAeF,EAAgBtS,OACjD0S,EAAgBH,EAAgB1Q,KAChC8Q,EAAiBD,EAAgBJ,EAAgBvS,MACjD6S,EAAgBzY,EAAQ4G,wBACxB8R,EAAc5D,OAAO6D,iBAAiB3Y,GAAS0Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOnM,SAASqV,GAG1BG,EAAoB/B,EAAS,GAAI1K,GAEjC0M,EAAoBtC,EAAS,GAAIpK,GAEjC2M,EAAa,SAACpW,GAElB,IAAIsC,EAAI,EACJC,EAAI,EAEF8T,EAASrW,EAAEsW,MACXC,EAASvW,EAAEwW,MACXC,EAAcJ,EAASjB,EACvBsB,EAAcH,EAASlB,EAGvBsB,EAAOnB,EAAgBvS,MAAQ6S,EAAc7S,MAAQgT,EAErDW,EAAOpB,EAAgBtS,OAAS4S,EAAc5S,OAAS+S,EAEvDY,EACJR,EAAST,GACE,IAAVV,GACCuB,EAAc,GACdJ,EAAST,EAAgBN,EACvBwB,EACJT,EAASR,GACTY,EAAcvB,EAAQY,EAAc7S,MAAQgT,EAC1CT,EAAgBvS,OACjBiS,IAAUyB,GACTF,EAAc,GACdJ,EAAST,EAAgBe,EAAOrB,EAC9ByB,EACJR,EAASb,GACE,IAAVP,GACCuB,EAAc,GACdH,EAASb,EAAeH,EACtByB,EACJT,EAASZ,GACTe,EAAcvB,EAAQW,EAAc5S,OAAS+S,EAC3CT,EAAgBtS,QACjBiS,IAAUyB,GACTF,EAAc,GACdH,EAASb,EAAekB,EAAOrB,GAEdjT,EAAjBuU,EA9BS,EA+BJC,EAAsBH,EACtBF,EAAcvB,GAMf,IAAG5S,EAtCE,IAkCOC,EAAhBwU,EAhCS,EAiCJC,EAAuBJ,EACvBF,EAAcvB,GAGf,IAAG5S,EArCE,GAwCb6S,EAAaiB,EACbhB,EAAakB,EAETjU,IAAM4S,GAAS3S,IAAM4S,IAGzBgB,EAAkB7T,EAAGC,GACrB2T,EAAkB5T,EAAGC,GAGrB2S,EAAQ5S,EACR6S,EAAQ5S,EACV,EACM0U,EAAY,WAEhB/B,EAAQ,EACRC,EAAQ,EACRC,EAAa,EACbC,EAAa,EAEb/X,SAAS4Z,oBAAoB,YAAad,GAE1C9Y,SAAS4Z,oBAAoB,UAAWD,GAExC5Z,EAAQ4X,UAAYD,EAEpB1X,SAAS6Z,KAAKrS,MAAMsS,WAAa,MACnC,EACMC,EAAc,SAACrX,GAEnB,GAAiB,IAAbA,EAAEsX,OAAN,CAEAtX,EAAEoF,kBAGF/H,EAAQ4X,WAAY,EAGpB5X,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAIlC,IAAM6O,EAAgBjD,EAAUjX,EAAS0K,GACzCmN,EAAQqC,EAAcxS,KACtBoQ,EAAQoC,EAAcvS,IAGtBoQ,EAAapV,EAAEsW,MACfjB,EAAarV,EAAEwW,MAEflB,EAAsBtV,EAAEwX,QACxBjC,EAAsBvV,EAAEyX,QAGxBjC,EAAkBzN,EAAU9D,wBAC5BwR,EAAkBnB,EAAUvM,GAC5B2N,EAAeD,EAAgBzQ,IAC/B2Q,EAAkBD,EAAeF,EAAgBtS,OACjD0S,EAAgBH,EAAgB1Q,KAChC8Q,EAAiBD,EAAgBJ,EAAgBvS,MACjD6S,EAAgBzY,EAAQ4G,wBACxB8R,EAAc5D,OAAO6D,iBAAiB3Y,GAAS0Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOnM,SAASqV,GAG5BzY,SAASyC,iBAAiB,YAAaqW,GAEvC9Y,SAASyC,iBAAiB,UAAWkX,GAErC3Z,SAAS6Z,KAAKrS,MAAMsS,WAAa,MAxCP,CAyC5B,EAMA,OAHA/Z,EAAQ0C,iBAAiB,YAAasX,GAG/B,WACLha,EAAQ6Z,oBAAoB,YAAaG,GACzCJ,GACF,CACF,CAUO,SAASS,EACdra,EACAsM,GAEA,IAGMgO,EAAkBra,SAASC,cAAc,OAC/Coa,EAAgBna,UAAY,mBAC5BH,EAAQQ,YAAY8Z,GAGpB,IAAM5P,EAAY1K,EAAQwL,cAEpBmM,EAAc3X,EAAQ4X,UAExB2C,EAA2B,EAC3BC,EAA6B,EAC7BzC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EAGrCE,EAAkBzN,EAAU9D,wBAC5BwR,EAAkBnB,EAAUvM,GAC5B2N,EAAeD,EAAgBzQ,IAC/B2Q,EAAkBD,EAAeF,EAAgBtS,OACjD0S,EAAgBH,EAAgB1Q,KAChC8Q,EAAiBD,EAAgBJ,EAAgBvS,MACjDsU,EAAgBjD,EAAUjX,GAC1Bya,EAAaP,EAAcvS,IAC3B+S,EAAcR,EAAcxS,KAC5BgR,EAAc5D,OAAO6D,iBAAiB3Y,GAAS0Y,aAAe,IAC9DE,EAAYpJ,OAAOnM,SAASqV,GAG1BiC,EAAsB7D,EAAS,GAAIxK,GAEnCsO,EAAsBpE,EAAS,GAAIlK,GAEnCuO,EAAe,SAAClY,GAEpB,IAAIiD,EAAQ2U,GAAa5X,EAAEsW,MAAQlB,GAC/BlS,EAAS2U,GAAc7X,EAAEwW,MAAQnB,GAEjCpS,IAAU2U,GAAa1U,IAAW2U,GAGpC5U,EAAQ2U,GACR5X,EAAEsW,MAAQyB,GAAeH,EAAYtC,KAInCrS,EAjDW,GAmDbA,EAnDa,GAoDJA,EAAQ8U,EAAc9B,EAAY,GAAKJ,IAEhD5S,EAAQ4S,EAAiBkC,GAEvB7U,EAvDY,GAyDdA,EAzDc,GA0DLA,EAAS4U,EAAa7B,EAAY,GAAKN,IAEhDzS,EAASyS,EAAkBmC,GAI7BG,EAAoBhV,EAAOC,GAC3B8U,EAAoB/U,EAAOC,GAG3B0U,EAAY3U,EACZ4U,EAAa3U,EAEbkS,EAAapV,EAAEsW,MACfjB,EAAarV,EAAEwW,MACjB,EACMS,EAAY,WAEhBW,EAAY,EACZC,EAAa,EACbzC,EAAa,EACbC,EAAa,EACbC,EAAsB,EAGtBhY,SAAS4Z,oBAAoB,YAAagB,GAE1C5a,SAAS4Z,oBAAoB,UAAWD,GAExC5Z,EAAQ4X,UAAYD,EAEpB1X,SAAS6Z,KAAKrS,MAAMsS,WAAa,MACnC,EA0CA,OAHAO,EAAgB5X,iBAAiB,aAtCb,SAACC,GACnBA,EAAEoF,kBAGF/H,EAAQ4X,WAAY,EAId,MAAoB5X,EAAQ4G,wBAA1BhB,EAAK,QAAEC,EAAM,SACrB0U,EAAY3U,EACZ4U,EAAa3U,EAEbkS,EAAapV,EAAEsW,MACfjB,EAAarV,EAAEwW,MAEflB,EAAsBtV,EAAEwX,QACFxX,EAAEyX,QAGxBjC,EAAkBzN,EAAU9D,wBAC5BwR,EAAkBnB,EAAUvM,GAC5B2N,EAAeD,EAAgBzQ,IAC/B2Q,EAAkBD,EAAeF,EAAgBtS,OACjD0S,EAAgBH,EAAgB1Q,KAChC8Q,EAAiBD,EAAgBJ,EAAgBvS,MACjDsU,EAAgBjD,EAAUjX,GAC1Bya,EAAaP,EAAcvS,IAC3B+S,EAAcR,EAAcxS,KAG5BzH,SAASyC,iBAAiB,YAAamY,GAEvC5a,SAASyC,iBAAiB,UAAWkX,GAErC3Z,SAAS6Z,KAAKrS,MAAMsS,WAAa,MACnC,IAMO,WACLO,EAAgB7P,SAChBmP,GACF,CACF,CAGO,SAAShN,EAAEyJ,GAChB,OAAOA,CACT,CAmNO,SAASyE,EACdjL,EACAkL,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAA,UACA,IAAAC,IAAAA,EAAA,KAEOnL,EAAI/B,OAAOjO,OAASkb,EAAMlL,EAAIyC,OAAO,EAAGyI,GAAKjN,OAASkN,EAAUnL,CACzE,C,GC98BIoL,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBnI,GAE5B,IAAIoI,EAAeF,yBAAyBlI,GAC5C,QAAqB1K,IAAjB8S,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASJ,yBAAyBlI,GAAY,CAGjDqI,QAAS,CAAC,GAOX,OAHAE,oBAAoBvI,GAAUsI,EAAQA,EAAOD,QAASF,qBAG/CG,EAAOD,OACf,CCrBAF,oBAAoBK,EAAI,SAASH,EAASI,GACzC,IAAI,IAAIC,KAAOD,EACXN,oBAAoBQ,EAAEF,EAAYC,KAASP,oBAAoBQ,EAAEN,EAASK,IAC5EE,OAAOC,eAAeR,EAASK,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAG3E,ECPAP,oBAAoBQ,EAAI,SAASK,EAAKC,GAAQ,OAAOL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,EAAO,ECCtGd,oBAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAeR,EAASiB,OAAOC,YAAa,CAAEjT,MAAO,WAE7DsS,OAAOC,eAAeR,EAAS,aAAc,CAAE/R,OAAO,GACvD,E,svBCqBMkT,EAA4B,SAChCC,GAEA,OAAQA,GACN,IAAK,UACL,IAAK,UACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,UAEb,EAWO,SAASC,EACd9b,GAEA,GAA6B,iBAAlBA,EAAK+b,UAAkD,IAAzB/b,EAAK+b,SAAS7c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,OAAO,EAAP,UACK,QAAqB3C,IAAK,CAC7B4B,KAAM,EACNma,SAAU/b,EAAK+b,SACfF,qBAAsBD,EAA0B5b,EAAK6b,sBACrDG,gBAAgB,QAAiBhc,EAAKgc,eAAgB,MACtDC,WAAW,QAAiBjc,EAAKic,UAAW,SACzC,QAAmBjc,KACnB,QAAqBA,GAE5B,CAEA,+B,8CAwCA,QAxCyC,OAC7B,YAAAwG,iBAAV,WACE,IAAM0V,EAASjd,KAAKqE,MAAM0Y,gBAAkB/c,KAAKqE,MAAMyY,SACjD1c,EAAUC,SAASC,cAAc,OA0BvC,OAzBAF,EAAQG,UAAY,eACpBH,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAClCrL,EAAQyH,MAAMqV,gBAAkB,cAAOD,EAAM,KAC7C7c,EAAQyH,MAAMsV,iBAAmB,YACjC/c,EAAQyH,MAAMuV,eAAiB,UAC/Bhd,EAAQyH,MAAMwV,mBAAqB,UAGJ,IAA7Brd,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,EAAQyH,MAAMgG,QAAU,OAKC,OAAzB7N,KAAKqE,MAAM2Y,WACyB,aAApChd,KAAKqE,MAAMuY,uBAEXxc,EAAQG,UAAY,kCACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aAAa,aAAczL,KAAKqE,MAAM2Y,YAGzC5c,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzB,IAAM6c,EAASjd,KAAKqE,MAAM0Y,gBAAkB/c,KAAKqE,MAAMyY,SACvD1c,EAAQyH,MAAMqV,gBAAkB,cAAOD,EAAM,IAC/C,EACF,EAxCA,CAAyCK,EAAA,I,8qBChDlC,SAASC,EAAiBxc,GAC/B,GAA6B,iBAAlBA,EAAK+b,UAAkD,IAAzB/b,EAAK+b,SAAS7c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,GAA0B,iBAAf3C,EAAKyc,OAA4C,IAAtBzc,EAAKyc,MAAMvd,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,EACN6a,MAAOzc,EAAKyc,MACZV,SAAU/b,EAAK+b,YACZ,QAAqB/b,GAE5B,CAEA,+B,8CAmBA,QAnBkC,OACtB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAOvC,OANAF,EAAQG,UAAY,QAAUP,KAAKqE,MAAMmZ,MACzCpd,EAAQyH,MAAMqV,gBAAkB,cAAOld,KAAKqE,MAAMyY,SAAQ,KAC1D1c,EAAQyH,MAAMsV,iBAAmB,YACjC/c,EAAQyH,MAAMuV,eAAiB,UAC/Bhd,EAAQyH,MAAMwV,mBAAqB,SAE5Bjd,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzBA,EAAQyH,MAAMqV,gBAAkB,cAAOld,KAAKqE,MAAMyY,SAAQ,IAC5D,EACF,EAnBA,CAAkCQ,EAAA,I,0DCktG9BG,EAAe,CACjBC,OAAQ,MACRtM,SAAU,cACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,uRAurC3BsM,EAAa,CACfD,OAAQ,MACRtM,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4W,42BCj5IxB,SAASuM,EACd7c,GAGA,GAA0B,iBAAfA,EAAK2N,OAA4C,IAAtB3N,EAAK2N,MAAMzO,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,YACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACN+L,MAAO3N,EAAK2N,MACZmP,aAAc9c,EAAK8c,aACnBC,YAAa/c,EAAK+c,eACf,QAAmB/c,KACnB,QAAqBA,GAE5B,CAOA,+B,8CA4BA,QA5B8B,OAClB,YAAAN,cAAV,sBACQsd,EAAa1d,SAASC,cAAc,OAC1Cyd,EAAWxd,UAAY,kBAEvB,IAAMyd,EAAa3d,SAASC,cAAc,SAC1C0d,EAAWvP,aAAc,IAAAzB,GAAE,iBAE3B+Q,EAAWnd,YAAYod,GAEvB,IAAMC,EAAa5d,SAASC,cAAc,SAgB1C,OAfA2d,EAAWtb,KAAO,QAClBsb,EAAWC,UAAW,EAEtBD,EAAWxU,MAAQ,UAAGzJ,KAAKF,YAAY+d,cACrC7d,KAAKJ,YAAYie,cACjB,WAEFI,EAAWnb,iBAAiB,UAAU,SAAAC,GACpC,EAAKjC,WAAW,CACd+c,aAAe9a,EAAEob,OAA4B1U,OAEjD,IAEAsU,EAAWnd,YAAYqd,GAEhBF,CACT,EACF,EA5BA,CAA8B,EAAAK,YAiC9B,2B,8CAiQA,QAjQ+B,OACnB,YAAA3d,cAAV,sBACQsd,EAAa1d,SAASC,cAAc,OAC1Cyd,EAAWxd,UAAY,yCAEvB,IAAM8d,EAAcre,KAAKse,YAAY,UAErCP,EAAWnd,YAAYyd,GAEvB,IAAME,EAA0Ble,SAASC,cAAc,OACjDke,EAAyBne,SAASC,cAAc,OAEtDyd,EAAWnd,YAAY4d,GACvBT,EAAWnd,YAAY2d,GAEvB,IAGIE,EAHEX,EACJ9d,KAAKF,YAAYge,aAAe9d,KAAKJ,YAAYke,aAAe,GAyDlE,OAnBAW,EAAc,SAAAC,GACZF,EAAuBlV,UAAY,GACnCoV,EAAO/d,SAAQ,SAACge,EAAYpc,GAC1B,OAAAic,EAAuB5d,YACrB,EAAKge,eACHD,EAvCyB,SAACpc,GAAkB,gBAClDsc,GAEA,IAAMf,EACJ,EAAKhe,YAAYge,aAAe,EAAKle,YAAYke,aAAe,GAClE,EAAKhd,WAAW,CACdgd,YAAa,EAAF,OACNA,EAAYtb,MAAM,EAAGD,IAAM,IAC9Bsc,I,GACGf,EAAYtb,MAAMD,EAAQ,IAAE,IAGrC,CAZoD,CAwC5Cuc,CAAyBvc,GA1BZ,SAACA,GAAkB,kBACtC,IAAMub,EACJ,EAAKhe,YAAYge,aAAe,EAAKle,YAAYke,aAAe,GAC5DiB,EAAY,EAAH,KACVjB,EAAYtb,MAAM,EAAGD,IAAM,GAC3Bub,EAAYtb,MAAMD,EAAQ,IAAE,GAGjC,EAAKzB,WAAW,CAAEgd,YAAaiB,IAC/BN,EAAYM,EACd,CAVwC,CA2BhCC,CAAazc,IAJjB,GAQJ,EAEAkc,EAAYX,GAEZS,EAAwB3d,YACtBZ,KAAKif,uBAxBc,SAACJ,GACpB,IAAMf,EACJ,EAAKhe,YAAYge,aAAe,EAAKle,YAAYke,aAAe,GAC5DiB,EAAY,EAAH,KAAOjB,GAAa,GAAF,CAAEe,IAAK,GACxC,EAAK/d,WAAW,CAAEgd,YAAaiB,IAC/BN,EAAYM,EACd,KAqBOhB,CACT,EAEQ,YAAAkB,sBAAR,SAA8BC,GAE5B,IAAMC,EAAe,CAAEzQ,MAAO,WAE1B0Q,EAAK,KAA6BD,GAmBhCE,EAAkBhf,SAASC,cAAc,OAGzCgf,EAA2Bjf,SAASC,cAAc,OAClDif,EAAuBvf,KAAKse,YAAY,cACxCkB,EAAuBxf,KAAKyf,kBAAkB,MAtB5B,SAAChW,GACvB2V,EAAMM,UAAYjW,CACpB,IAqBA6V,EAAyB1e,YAAY2e,GACrCD,EAAyB1e,YAAY4e,GACrCH,EAAgBze,YAAY0e,GAG5B,IAAMK,EAA4Btf,SAASC,cAAc,OACnDsf,EAAqB5f,KAAKse,YAAY,YACtCuB,EAAqB7f,KAAKyf,kBAAkB,MA3B5B,SAAChW,GACrB2V,EAAMU,QAAUrW,CAClB,IA0BA6V,EAAyB1e,YAAYgf,GACrCN,EAAyB1e,YAAYif,GACrCR,EAAgBze,YAAY+e,GAG5B,IAAMI,EAA0B1f,SAASC,cAAc,OACjD0f,EAAmBhgB,KAAKse,YAAY,SACpC2B,EAAmBjgB,KAAKkgB,iBAC5Bf,EAAazQ,OAjCK,SAACjF,GACnB2V,EAAM1Q,MAAQjF,CAChB,IAkCA6V,EAAyB1e,YAAYof,GACrCV,EAAyB1e,YAAYqf,GACrCZ,EAAgBze,YAAYmf,GAG5B,IAAMI,EAAY9f,SAASC,cAAc,KAoBzC,OAnBA6f,EAAUvf,aACR,OAAgB6c,GAAc,IAAAzQ,GAAE,sBAAuB,CACrDiE,KAAM,QACNvC,MAAO,aAYXyR,EAAUrd,iBAAiB,SARN,WA3CL,IAAC+b,OACQ,KADRA,EA4CHO,GA3CC1Q,YACY,IAAlBmQ,EAAMiB,cACc,IAApBjB,EAAMa,WAyCOR,EAASE,GAC7BA,EAAQD,EACRK,EAAqB/V,MAAQ,UAAG2V,EAAMM,WAAa,IACnDG,EAAmBpW,MAAQ,UAAG2V,EAAMU,SAAW,IAC/CG,EAAiBxW,MAAQ,UAAG2V,EAAM1Q,MACpC,IAIA2Q,EAAgBze,YAAYuf,GAErBd,CACT,EAEQ,YAAAT,eAAR,SACED,EACAyB,EACAC,GAGA,IAAMjB,EAAQ,KAAKT,GAebU,EAAkBhf,SAASC,cAAc,OAGzCgf,EAA2Bjf,SAASC,cAAc,OAClDif,EAAuBvf,KAAKse,YAAY,cACxCkB,EAAuBxf,KAAKyf,kBAChCd,EAAWe,WAnBW,SAACjW,GACvB2V,EAAMM,UAAYjW,EAClB2W,EAAS,KAAKhB,GAChB,IAmBAE,EAAyB1e,YAAY2e,GACrCD,EAAyB1e,YAAY4e,GACrCH,EAAgBze,YAAY0e,GAG5B,IAAMK,EAA4Btf,SAASC,cAAc,OACnDsf,EAAqB5f,KAAKse,YAAY,YACtCuB,EAAqB7f,KAAKyf,kBAC9Bd,EAAWmB,SA1BS,SAACrW,GACrB2V,EAAMU,QAAUrW,EAChB2W,EAAS,KAAKhB,GAChB,IA0BAE,EAAyB1e,YAAYgf,GACrCN,EAAyB1e,YAAYif,GACrCR,EAAgBze,YAAY+e,GAG5B,IAAMI,EAA0B1f,SAASC,cAAc,OACjD0f,EAAmBhgB,KAAKse,YAAY,SACpC2B,EAAmBjgB,KAAKkgB,iBAC5BvB,EAAWjQ,OAjCO,SAACjF,GACnB2V,EAAM1Q,MAAQjF,EACd2W,EAAS,KAAKhB,GAChB,IAiCAE,EAAyB1e,YAAYof,GACrCV,EAAyB1e,YAAYqf,GACrCZ,EAAgBze,YAAYmf,GAG5B,IAAMO,EAAYjgB,SAASC,cAAc,KAWzC,OAVAggB,EAAU1f,aACR,OAAgB+c,GAAY,IAAA3Q,GAAE,sBAAuB,CACnDiE,KAAM,QACNvC,MAAO,aAGX4R,EAAUxd,iBAAiB,QAASud,GAEpChB,EAAgBze,YAAY0f,GAErBjB,CACT,EAEQ,YAAAf,YAAR,SAAoB7H,GAClB,IAAM9S,EAAQtD,SAASC,cAAc,SAErC,OADAqD,EAAM8K,aAAc,IAAAzB,GAAEyJ,GACf9S,CACT,EAEQ,YAAA8b,kBAAR,SACEhW,EACA2W,GAEA,IAAMrQ,EAAQ1P,SAASC,cAAc,SAQrC,OAPAyP,EAAMpN,KAAO,SACC,OAAV8G,IAAgBsG,EAAMtG,MAAQ,UAAGA,IACrCsG,EAAMjN,iBAAiB,UAAU,SAAAC,GAC/B,IAAM0G,EAAQhG,SAAUV,EAAEob,OAA4B1U,OACjDjG,MAAMiG,IAAQ2W,EAAS3W,EAC9B,IAEOsG,CACT,EAEQ,YAAAmQ,iBAAR,SACEzW,EACA2W,GAEA,IAAMrQ,EAAQ1P,SAASC,cAAc,SAOrC,OANAyP,EAAMpN,KAAO,QACC,OAAV8G,IAAgBsG,EAAMtG,MAAQA,GAClCsG,EAAMjN,iBAAiB,UAAU,SAAAC,GAC/B,OAAAqd,EAAUrd,EAAEob,OAA4B1U,MAAxC,IAGKsG,CACT,EACF,EAjQA,CAA+B,EAAAqO,YAmQzBrN,EAAQ,6BAEd,2B,8CAwFA,QAxFwC,OAC5B,YAAAxJ,iBAAV,WACE,IAAMuD,EAA4BzK,SAASC,cAAc,OAMzD,OALAwK,EAAUvK,UAAY,cAGtBuK,EAAUyV,OAAOvgB,KAAKwgB,oBAEf1V,CACT,EAEU,YAAA3D,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAC7B,EAEO,YAAAwa,iBAAP,WACE,IAAMC,EAAa,eAAQzgB,KAAKqE,MAAMxB,IAEhC6d,EAAMrgB,SAASiR,gBAAgBP,EAAO,OAE5C2P,EAAIjV,aAAa,UAAW,eAG5B,IAAMkV,EAAOtgB,SAASiR,gBAAgBP,EAAO,QAEvC6P,EAAiBvgB,SAASiR,gBAAgBP,EAAO,kBACvD6P,EAAenV,aAAa,KAAMgV,GAClCG,EAAenV,aAAa,KAAM,OAClCmV,EAAenV,aAAa,KAAM,OAClCmV,EAAenV,aAAa,IAAK,OACjCmV,EAAenV,aAAa,KAAM,OAClCmV,EAAenV,aAAa,KAAM,OAElC,IAAMoV,EAAQxgB,SAASiR,gBAAgBP,EAAO,QAC9C8P,EAAMpV,aAAa,SAAU,MAC7BoV,EAAMpV,aACJ,QACA,qBAAczL,KAAKqE,MAAMqK,MAAK,sBAEhC,IAAMoS,EAAUzgB,SAASiR,gBAAgBP,EAAO,QAChD+P,EAAQrV,aAAa,SAAU,QAC/BqV,EAAQrV,aACN,QACA,qBAAczL,KAAKqE,MAAMqK,MAAK,oBAGhC,IAAMqS,EAAS1gB,SAASiR,gBAAgBP,EAAO,UAkB/C,OAjBAgQ,EAAOtV,aAAa,OAAQ,eAAQgV,EAAU,MAC9CM,EAAOtV,aAAa,KAAM,OAC1BsV,EAAOtV,aAAa,KAAM,OAC1BsV,EAAOtV,aAAa,IAAK,OAGzBmV,EAAeL,OAAOM,EAAOC,GAC7BH,EAAKJ,OAAOK,GACZF,EAAIH,OAAOI,EAAMI,IAGc,IAA7B/gB,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,gBAEX8S,EAAIjV,aAAa,UAAW,OAGvBiV,CACT,EAQO,YAAA5T,iBAAP,WACE,OAAOkU,EAAWlU,iBAAiB9M,KAAKqE,MAC1C,EAEc,EAAAyI,iBAAd,SACEzI,GAEA,IAAM4c,EAAgB,EAAMnU,iBAAgB,UAACzI,GAM7C,OALA4c,EAAcxe,iBAAiB,SAE/Bwe,EAAc3e,cAAc,IAAI4e,EAAgB,cAAe7c,GAAQ,GACvE4c,EAAc3e,cAAc,IAAI6e,EAAiB,eAAgB9c,GAAQ,GAElE4c,CACT,EACF,EAxFA,CAAwC3D,EAAA,I,ysBCvTjC,SAAS8D,EAAiBrgB,GAC/B,IAAMsD,EAAK,QACN,QAAqB,OAAKtD,GAAI,CAAEiF,MAAO,EAAGC,OAAQ,MAAI,CACzDtD,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZqB,EAAG,EACHC,EAAG,EACHU,MAAO,EACPC,OAAQ,EAERob,cAAe,CACbhc,GAAG,QAAWtE,EAAKugB,OAAQ,GAC3Bhc,GAAG,QAAWvE,EAAKwgB,OAAQ,IAE7BC,YAAa,CACXnc,GAAG,QAAWtE,EAAK0gB,KAAM,GACzBnc,GAAG,QAAWvE,EAAK2gB,KAAM,IAE3BC,WAAW,QAAW5gB,EAAK4gB,WAAa5gB,EAAK+X,YAAa,GAC1DpK,OAAO,QAAiB3N,EAAK6gB,aAAe7gB,EAAK2N,MAAO,MACxDmT,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBhhB,EAAKghB,SAAU,IAC1CC,eAAe,QAAWjhB,EAAKihB,cAAe,GAC9CC,UAAWlhB,EAAKkhB,UAChBC,YAAanhB,EAAKmhB,YAClBC,gBAAgB,QAAWphB,EAAKohB,eAAgB,GAChDC,YAAY,QAAiBrhB,EAAKqhB,WAAY,IAC9CC,iBAAiB,QAAWthB,EAAKshB,gBAAiB,GAClDC,kBAAkB,QAAWvhB,EAAKuhB,iBAAkB,KAWtD,OAAO,OACFje,GAGAke,EAAKC,0BAA0Bne,EAAMgd,cAAehd,EAAMmd,aAEjE,CAEA,IAAM,EAAQ,6BAQd,cAiIE,WAAmBnd,EAAkBsC,GAArC,MAKE,mBAEOtC,GACAke,EAAKC,0BACNne,EAAMgd,cACNhd,EAAMmd,cACP,KAGE7a,IAEL,IACD,K,OAjJO,EAAA8b,aAAe,EAEf,EAAAC,UAAoB,EAEpB,EAAAC,UAAoB,EAGd,EAAAC,sBAAwB,IAAIC,EAAA,EAEzB,EAAAC,0BAA0C,GAInD,EAAAC,oCAAqC,QAC7C,KACA,SAAC1d,EAAkBC,GACjB,EAAKqd,UAAW,EAChB,IAAMtB,EAAgB,CAAEhc,EAAC,EAAEC,EAAC,GAE5B,EAAKsd,sBAAsBxhB,KAAK,CAC9ByE,KAAM,EACNwb,cAAa,EACbG,YAAa,EAAKnd,MAAMmd,aAE5B,IAIQ,EAAAwB,4BAA+C,KA2C/C,EAAAC,kCAAmC,QAC3C,KACA,SAAC5d,EAAkBC,GACjB,EAAKqd,UAAW,EAChB,IAAMnB,EAAc,CAAEnc,EAAC,EAAEC,EAAC,GAE1B,EAAKsd,sBAAsBxhB,KAAK,CAC9ByE,KAAM,EACN2b,YAAW,EACXH,cAAe,EAAKhd,MAAMgd,eAE9B,IAIQ,EAAA6B,0BAA6C,KA6DrD,EAAKR,SAAW/b,EAAKuB,SACrB,EAAKzB,OAEL,YAAMU,cAAa,OACjBqI,KAAK2L,IAAI9W,EAAM2B,MAAO3B,EAAMwd,iBAC5BrS,KAAK2L,IAAI9W,EAAM4B,OAAQ5B,EAAMyd,kB,CAEjC,CA2SF,OAtckC,OAmCtB,YAAAqB,kCAAV,SACE/iB,EACA0K,GAFF,WAIE9K,KAAKgjB,6BAA8B,QACjC5iB,GACA,SAACiF,EAAkBC,GAKjB,IAAM+b,EAAgB,CAAEhc,EAHxBA,GAAK,EAAKod,aAAe,EAAKpe,MAAMwd,gBAAkB,EAG3Bvc,EAF3BA,GAAK,EAAKmd,aAAe,EAAKpe,MAAMyd,gBAAkB,GAItD,EAAKa,UAAW,EAChB,EAAKte,MAAQ,OACR,EAAKA,OAAK,CACbgd,cAAa,IAIf,EAAK0B,mCAAmC1d,EAAGC,EAC7C,GACAwF,EAEJ,EAIQ,YAAAsY,kCAAR,WACMpjB,KAAKgjB,8BACPhjB,KAAKgjB,8BACLhjB,KAAKgjB,4BAA8B,KAEvC,EAyBU,YAAAK,gCAAV,SACEjjB,EACA0K,GAFF,WAIE9K,KAAKkjB,2BAA4B,QAC/B9iB,GACA,SAACiF,EAAkBC,GAEjBD,GAAK,EAAKod,aAAe,EAAKpe,MAAMwd,gBAAkB,EACtDvc,GAAK,EAAKmd,aAAe,EAAKpe,MAAMyd,gBAAkB,EAEtD,EAAKa,UAAW,EAChB,EAAKte,MAAQ,OACR,EAAKA,OAAK,CACbmd,YAAa,CAAEnc,EAAC,EAAEC,EAAC,KAIrB,EAAK2d,iCAAiC5d,EAAGC,EAC3C,GACAwF,EAEJ,EAIQ,YAAAwY,gCAAR,WACMtjB,KAAKkjB,4BACPljB,KAAKkjB,4BACLljB,KAAKkjB,0BAA4B,KAErC,EAuCO,YAAAhZ,SAAP,SAAgBD,GACd,YAAMC,SAAQ,YAAC,KACVD,GACAsY,EAAKC,0BACNvY,EAASoX,cACTpX,EAASuX,cAGf,EAQO,YAAAjX,QAAP,SAAeD,GACbtK,KAAK0iB,SAAWpY,EAAYpC,SAC5B,YAAMqC,QAAO,YAAC,KACTD,GAAW,CACdoK,UAAU,IAEd,EAOU,YAAAnN,iBAAV,WACE,IAAMnH,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,OAEhB,MAWAP,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN0b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP1I,GAAgB6b,EAChB5b,GAAkB6b,EAElB,IAAMyB,EAAKlC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAc/b,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYlc,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EAG3DpB,EAAMrgB,SAASiR,gBAAgB,EAAO,OAE5CoP,EAAIjV,aAAa,QAAS,UAAGzF,EAAQ2b,IACrCjB,EAAIjV,aAAa,SAAU,UAAGxF,EAAS0b,IAEvC,IAAMgC,EAAOtjB,SAASiR,gBAAgB,EAAO,QAW7C,OAVAqS,EAAKlY,aAAa,KAAM,UAAG8X,IAC3BI,EAAKlY,aAAa,KAAM,UAAG+X,IAC3BG,EAAKlY,aAAa,KAAM,UAAGgY,IAC3BE,EAAKlY,aAAa,KAAM,UAAGiY,IAC3BC,EAAKlY,aAAa,SAAUiD,GAAS,SACrCiV,EAAKlY,aAAa,eAAgB,UAAGkW,IAErCjB,EAAIH,OAAOoD,GACXvjB,EAAQmgB,OAAOG,GAERtgB,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GACI,MAAzBA,EAAQwL,gBACVxL,EAAQwL,cAAc/D,MAAM+b,OAAS,WAGnC,MAWA5jB,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN0b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP1I,GAAgB6b,EAChB5b,GAAkB6b,EAElB,IAAMyB,EAAKlC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAc/b,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYlc,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EAE3D+B,EAAOzjB,EAAQgM,qBAAqB,OAE1C,GAAIyX,EAAK5jB,OAAS,EAAG,CACnB,IAAMygB,EAAMmD,EAAKhe,KAAK,GAEtB,GAAW,MAAP6a,EAAa,CAEfA,EAAIjV,aAAa,QAAS,UAAGzF,EAAQ2b,IACrCjB,EAAIjV,aAAa,SAAU,UAAGxF,EAAS0b,IAEvC,IAAMmC,EAAQpD,EAAIqD,uBAAuB,EAAO,QAEhD,GAAID,EAAM7jB,OAAS,EAAG,CACpB,IAAM0jB,EAAOG,EAAMje,KAAK,GAEZ,MAAR8d,IACFA,EAAKlY,aAAa,KAAM,UAAG8X,IAC3BI,EAAKlY,aAAa,KAAM,UAAG+X,IAC3BG,EAAKlY,aAAa,KAAM,UAAGgY,IAC3BE,EAAKlY,aAAa,KAAM,UAAGiY,IAC3BC,EAAKlY,aAAa,SAAUiD,GAAS,SACrCiV,EAAKlY,aAAa,eAAgB,UAAGkW,I,GAM7C,GAAI3hB,KAAK0iB,SAAU,CACjB,IAAIsB,EAA2B3jB,SAASC,cAAc,OAClD2jB,EAAyB5jB,SAASC,cAAc,OAEpD,GAAIN,KAAK2iB,SAAU,CACjB,IAAMuB,EAAe9jB,EAAQ4O,uBAC3B,yCAEEkV,EAAajkB,OAAS,IAClB8gB,EAASmD,EAAare,KAAK,MACrBme,EAAcjD,GAE5B,IAAMoD,EAAa/jB,EAAQ4O,uBACzB,uCAEEmV,EAAWlkB,OAAS,IAChB8gB,EAASoD,EAAWte,KAAK,MACnBoe,EAAYlD,E,CA8B5B,GA1BAiD,EAAYrc,UAAUC,IACpB,kCACA,yCAEFoc,EAAYnc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAKyiB,aAAgB,MAClDuB,EAAYnc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAKyiB,aAAgB,MACnDuB,EAAYnc,MAAMuc,aAAe,MACjCJ,EAAYnc,MAAMuF,gBAAkB,UAAGsB,GACvCsV,EAAYnc,MAAMoE,SAAW,WAC7B+X,EAAYnc,MAAMC,KAAO,UAAGyb,EAAKvjB,KAAKyiB,aAAY,MAClDuB,EAAYnc,MAAME,IAAM,UAAGyb,EAAKxjB,KAAKyiB,aAAY,MACjDuB,EAAYnc,MAAM+b,OAAS,OAE3BK,EAAUtc,UAAUC,IAClB,kCACA,uCAEFqc,EAAUpc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAKyiB,aAAgB,MAChDwB,EAAUpc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAKyiB,aAAgB,MACjDwB,EAAUpc,MAAMuc,aAAe,MAC/BH,EAAUpc,MAAMuF,gBAAkB,UAAGsB,GACrCuV,EAAUpc,MAAMoE,SAAW,WAC3BgY,EAAUpc,MAAMC,KAAO,UAAG2b,EAAKzjB,KAAKyiB,aAAY,MAChDwB,EAAUpc,MAAME,IAAM,UAAG2b,EAAK1jB,KAAKyiB,aAAY,MAC/CwB,EAAUpc,MAAM+b,OAAS,OAEK,OAA1BxjB,EAAQwL,cAAwB,CAIlC,IAHA,IAAMyY,EAAUjkB,EAAQwL,cAAcoD,uBACpC,mCAEKqV,EAAQpkB,OAAS,IAChB8gB,EAASsD,EAAQxe,KAAK,KAChBkb,EAAOlW,SAGrBzK,EAAQwL,cAAchL,YAAYojB,GAClC5jB,EAAQwL,cAAchL,YAAYqjB,E,CAIpCjkB,KAAKmjB,kCACHa,EACAhkB,KAAKwE,WAAWoH,eAElB5L,KAAKqjB,gCACHY,EACAjkB,KAAKwE,WAAWoH,c,MAEb,GAAK5L,KAAK0iB,SAcf1iB,KAAKojB,yCAXL,GAFApjB,KAAKojB,oCAEyB,OAA1BhjB,EAAQwL,cAKV,IAJMyY,EAAUjkB,EAAQwL,cAAcoD,uBACpC,mCAGKqV,EAAQpkB,OAAS,GAAG,CACzB,IAAM8gB,KAASsD,EAAQxe,KAAK,KAChBkb,EAAOlW,Q,CAM3B,EAOc,EAAA2X,0BAAd,SACEnB,EACAG,GAEA,MAAO,CACLxb,MAAOwJ,KAAKM,IAAIuR,EAAchc,EAAImc,EAAYnc,GAC9CY,OAAQuJ,KAAKM,IAAIuR,EAAc/b,EAAIkc,EAAYlc,GAC/CD,EAAGmK,KAAK8U,IAAIjD,EAAchc,EAAGmc,EAAYnc,GACzCC,EAAGkK,KAAK8U,IAAIjD,EAAc/b,EAAGkc,EAAYlc,GAE7C,EAQO,YAAAM,KAAP,SAAYP,EAAWC,GACrB,YAAMuB,YAAW,UAACxB,EAAGC,GACrB,IAAMif,EACJvkB,KAAKqE,MAAMgd,cAAchc,EAAIrF,KAAKqE,MAAMmd,YAAYnc,GAAK,EACrDmf,EACJxkB,KAAKqE,MAAMgd,cAAc/b,EAAItF,KAAKqE,MAAMmd,YAAYlc,GAAK,EAErDmf,EAAQ,CACZpf,EAAGkf,EAAclf,EAAIrF,KAAKqE,MAAM2B,MAAQX,EACxCC,EAAGkf,EAAalf,EAAItF,KAAKqE,MAAM4B,OAASX,GAGpCof,EAAM,CACVrf,EAAGkf,EAAcvkB,KAAKqE,MAAM2B,MAAQX,EAAIA,EACxCC,EAAGkf,EAAaxkB,KAAKqE,MAAM4B,OAASX,EAAIA,GAG1CtF,KAAKqE,MAAQ,OACRrE,KAAKqE,OAAK,CACbgd,cAAeoD,EACfjD,YAAakD,GAEjB,EAMO,YAAA7Z,OAAP,WAEE7K,KAAKojB,oCAEL,YAAMvY,OAAM,UACd,EAQO,YAAA8Z,uBAAP,SACErjB,GAOA,IAAMwK,EAAa9L,KAAK4iB,sBAAsBrhB,GAAGD,GAGjD,OAFAtB,KAAK8iB,0BAA0BxW,KAAKR,GAE7BA,CACT,EACF,EAtcA,CAAkCwR,EAAA,I,8qBClG5B,EAAQ,6BAkBP,SAASsH,EACd7jB,GAEA,OAAO,OACFqgB,EAAiBrgB,IAAK,CACzB4B,KAAM,GACNkf,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBhhB,EAAKghB,SAAU,IAC1CC,eAAe,QAAWjhB,EAAKihB,cAAe,GAC9CG,gBAAgB,QAAWphB,EAAKohB,eAAgB,GAChDC,YAAY,QAAiBrhB,EAAKqhB,WAAY,IAC9CC,iBAAiB,QAAWthB,EAAKshB,gBAAiB,GAClDC,kBAAkB,QAAWvhB,EAAKuhB,iBAAkB,IAExD,CAEA,kBAIE,WAAmBje,EAAyBsC,GAA5C,MAKE,iBAEOtC,GAAK,KAGLsC,KAEN,K,OAQO,EAAAoc,oCAAqC,QAC7C,IACA,SAAC1d,EAAkBC,GACjB,EAAKqd,UAAW,EAEhB,IAAMtB,EAAgB,CAAEhc,EAAC,EAAEC,EAAC,GAG5B,EAAK+E,SAGL,EAAKuY,sBAAsBxhB,KAAK,CAC9ByE,KAAM,EACNwb,cAAa,EACbG,YAAa,EAAKnd,MAAMmd,aAE5B,IAGQ,EAAAyB,kCAAmC,QAC3C,IACA,SAAC5d,EAAkBC,GACjB,EAAKqd,UAAW,EAChB,IAAMnB,EAAc,CAAEnc,EAAC,EAAEC,EAAC,GAG1B,EAAK+E,SAGL,EAAKuY,sBAAsBxhB,KAAK,CAC9ByE,KAAM,EACN2b,YAAW,EACXH,cAAe,EAAKhd,MAAMgd,eAE9B,IAxCA,EAAKhX,S,CACP,CA8PF,OAjRyC,OA6D7B,YAAAL,iBAAV,SAA2B5J,GACzB,YAAM4J,iBAAgB,UAAC5J,GAEnB,IAkBAujB,EACAjD,EAnBA,EAeA1gB,KAAKqE,MAdPgB,EAAC,IACDC,EAAC,IACDqc,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QACLqT,EAAQ,WACRK,EAAU,aACVJ,EAAa,gBACbG,EAAc,iBACdE,EAAe,kBACfC,EAAgB,mBAGZuB,EAAOzjB,EAAQgM,qBAAqB,OAI1C,GAAIyX,EAAK5jB,OAAS,EAAlB,CAGE,GAAW,OAFXygB,EAAMmD,EAAKhe,KAAK,IAEC,CAIf,IAFA,IAAMie,EAAQpD,EAAIqD,uBAAuB,EAAO,QAC5Cc,EAASnE,EAAIqD,uBAAuB,EAAO,KACxCc,EAAO5kB,OAAS,GACrB4kB,EAAO,GAAGha,SAGRiZ,EAAM7jB,OAAS,IACjB0jB,EAAOG,EAAMje,KAAK,G,CAQxB,GAAW,MAAP6a,GAAuB,MAARiD,EAAnB,CAMA,IACMmB,EAAa,GAEbC,EAAS1D,EAAchc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EACjEmD,EAAS3D,EAAc/b,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EACjEmD,EAASzD,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EAC/DqD,EAAS1D,EAAYlc,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EAEjEyB,EAAKlC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAc/b,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYlc,EAAIA,EAAIqc,EAAY,EAAIG,EAAkB,EAI3DqD,EAAW,IADL3V,KAAK4V,MAAMF,EAASF,EAAQC,EAASF,GACzBvV,KAAK6V,GA2D3B,GAvDIhD,GAAmB,IACjByB,EAAQ1B,EAAWkD,MAAM,QAC7BjD,EAAkB,EAClByB,EAAMnjB,SAAQ,SAAA4kB,GACRA,EAAEtlB,OAASoiB,IACbA,EAxBW,GAwBOkD,EAAEtlB,OAExB,IACIqiB,GAAoB,IACtBA,EAVe,GAUIwB,EAAM7jB,SAIzB+hB,GAAiB,IACf8B,EAAQ/B,EAASuD,MAAM,QAC3BtD,EAAgB,EAChB8B,EAAMnjB,SAAQ,SAAA4kB,GACRA,EAAEtlB,OAAS+hB,IACbA,EArCW,GAqCKuD,EAAEtlB,OAEtB,IACIkiB,GAAkB,IACpBA,EAvBe,GAuBE2B,EAAM7jB,SAIvBsjB,EAAKE,IAEPF,GAAMuB,EACNrB,GAAMqB,EAAa9C,GAGjBuB,EAAKE,IAEPF,GAAMuB,EAAazC,EACnBoB,GAAMqB,GAGJtB,EAAKE,IAEPF,GAAMsB,EACNpB,GAAMoB,EAAa3C,GAGjBqB,EAAKE,IAEPF,GAAMsB,EAAaxC,EACnBoB,GAAMoB,QAGY,IAATpW,IACTA,EAAQ,QAIoB,OAA1BtO,EAAQwL,cAAwB,CAIlC,IAHA,IAAM4Z,EAASplB,EAAQwL,cAAcoD,uBACnC,oBAEKwW,EAAOvlB,OAAS,GAAG,CACxB,IAAM0D,EAAQ6hB,EAAO3f,KAAK,GACtBlC,GAAOA,EAAMkH,Q,CAMnB,IAHA,IAAM4a,EAASrlB,EAAQwL,cAAcoD,uBACnC,oBAEKyW,EAAOxlB,OAAS,GAAG,CACxB,IAAMylB,EAAQD,EAAO5f,KAAK,GACtB6f,GAAOA,EAAM7a,Q,EAIrB,IAAI8a,EAAwB,EAAZhE,EAEZiE,EAAYb,GAAUE,EAASF,GAAU,EAAIY,EAC7CE,EAAYb,GAAUE,EAASF,GAAU,EAAIW,EAE7CG,EAA0BzlB,SAASC,cAAc,OACrDwlB,EAAWne,UAAUC,IAAI,oBACzBke,EAAWje,MAAMoE,SAAW,WAC5B6Z,EAAWje,MAAMke,OAAS,UAAGJ,EAAS,wBACtCG,EAAWje,MAAMme,aAAe,UAAGL,EAAS,oBAAYjX,GACxDoX,EAAWje,MAAMC,KAAO,UAAG8d,EAAS,MACpCE,EAAWje,MAAME,IAAM,UAAG8d,EAAS,MACnCC,EAAWje,MAAMoe,UAAY,iBAAU,GAAKd,EAAC,QAE7C,IAAIe,EAAwB7lB,SAASC,cAAc,OAcnD,GAbA4lB,EAASve,UAAUC,IAAI,oBACvBse,EAASre,MAAMoE,SAAW,WAC1Bia,EAASre,MAAMke,OAAS,UAAGJ,EAAS,wBACpCO,EAASre,MAAMme,aAAe,UAAGL,EAAS,oBAAYjX,GACtDwX,EAASre,MAAMC,KAAO,UAAG8d,EAAS,MAClCM,EAASre,MAAME,IAAM,UAAG8d,EAAS,MACjCK,EAASre,MAAMoe,UAAY,iBAAU,IAAMd,EAAC,QAEd,OAA1B/kB,EAAQwL,gBACVxL,EAAQwL,cAAchL,YAAYklB,GAClC1lB,EAAQwL,cAAchL,YAAYslB,IAGlB,IAAd9D,EAAkB,CACpB,IAAI+D,EAA8B9lB,SAASC,cAAc,OAEzD,IACE6lB,EAAe7c,UAAY8Y,EAC3B+D,EAAete,MAAMoE,SAAW,WAChCka,EAAete,MAAMC,KAAO,UAAGyb,EAAE,MACjC4C,EAAete,MAAME,IAAM,UAAGyb,EAAE,MAChC2C,EAAete,MAAM7B,MAAQ,UAAGqc,EAAe,MAC/C8D,EAAete,MAAMke,OAAS,oBAAarX,GAE3CyX,EAAexe,UAAUC,IAAI,mBAAoB,c,CACjD,MAAO2M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BnU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAYulB,E,CAItC,GAAgB,IAAZpE,EAAgB,CAClB,IAAIsE,EAA4BhmB,SAASC,cAAc,OAEvD,IACE+lB,EAAa/c,UAAYyY,EACzBsE,EAAaxe,MAAMoE,SAAW,WAC9Boa,EAAaxe,MAAMC,KAAO,UAAG2b,EAAE,MAC/B4C,EAAaxe,MAAME,IAAM,UAAG2b,EAAE,MAC9B2C,EAAaxe,MAAM7B,MAAQ,UAAGgc,EAAa,MAC3CqE,EAAaxe,MAAMke,OAAS,oBAAarX,GAEzC2X,EAAa1e,UAAUC,IAAI,mBAAoB,Y,CAC/C,MAAO2M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BnU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAYylB,E,GAGxC,EACF,EAjRA,CAAyC,G,8qBCHlC,SAASC,EAAkBvlB,GAChC,IAC4B,iBAAlBA,EAAK+b,UAAkD,IAAzB/b,EAAK+b,SAAS7c,SAC/B,OAArBc,EAAK0M,YAEL,MAAM,IAAI/J,UAAU,sBAEtB,GAAuC,QAAnC,QAAW3C,EAAKwlB,QAAS,MAC3B,MAAM,IAAI7iB,UAAU,qBAGtB,IAAM8iB,GAAiB,QAAazlB,EAAKylB,gBACnChZ,EAAOgZ,EA3Bf,SAAqBzlB,GACnB,OAAK,QAAcA,EAAKyM,OACnB,QAAczM,EAAK0M,aACjB,MADsC,QAAa1M,EAAK0M,aADzB1M,EAAKyM,IAG7C,CAuBgCiZ,CAAY1lB,GAAQ,KAElD,OAAO,UACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN4jB,QAAS9iB,SAAS1C,EAAKwlB,SACvBzJ,UAAU,QAAiB/b,EAAK+b,SAAU,MAC1CC,gBAAgB,QAAiBhc,EAAKgc,eAAgB,MACtDyJ,eAAc,EACdhZ,KAAI,KACD,QAAqBzM,GAE5B,CACA,+B,8CAsCA,QAtCmC,OACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAevC,OAdAF,EAAQG,UAAY,QAEfP,KAAKqE,MAAMmiB,gBAAgD,OAA9BxmB,KAAKqE,MAAM0Y,eAMlC/c,KAAKqE,MAAMmiB,gBAAqC,MAAnBxmB,KAAKqE,MAAMmJ,OAEjDpN,EAAQyH,MAAMqV,gBAAkB,OAChC9c,EAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,OAP/BpN,EAAQyH,MAAMqV,gBAAkB,cAAOld,KAAKqE,MAAM0Y,eAAc,KAChE3c,EAAQyH,MAAMsV,iBAAmB,YACjC/c,EAAQyH,MAAMuV,eAAiB,UAC/Bhd,EAAQyH,MAAMwV,mBAAqB,UAO9Bjd,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACpBJ,KAAKqE,MAAMmiB,gBAAgD,OAA9BxmB,KAAKqE,MAAM0Y,eAOlC/c,KAAKqE,MAAMmiB,gBAAqC,MAAnBxmB,KAAKqE,MAAMmJ,OAEjDpN,EAAQyH,MAAMqV,gBAAkB,OAChC9c,EAAQkJ,UAAYtJ,KAAKqE,MAAMmJ,OAR/BpN,EAAQyH,MAAMqV,gBAAkB,cAAOld,KAAKqE,MAAM0Y,eAAc,KAChE3c,EAAQyH,MAAMsV,iBAAmB,YACjC/c,EAAQyH,MAAMuV,eAAiB,UAC/Bhd,EAAQyH,MAAMwV,mBAAqB,SACnCjd,EAAQkJ,UAAY,GAMxB,EACF,EAtCA,CAAmCgU,EAAA,I,8qBC3B7BoJ,EAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,WACL,IAAK,UACH,OAAOA,EACT,QACE,MAAO,WAEb,EAMMC,EAAmB,SAACC,GACxB,OAAQA,GACN,IAAK,WACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,EAAkB/lB,GAChC,GACgC,iBAAvBA,EAAKgmB,eACkB,IAA9BhmB,EAAKgmB,cAAc9mB,OAEnB,MAAM,IAAIyD,UAAU,qBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACNgkB,UAAWD,EAAe3lB,EAAK4lB,WAC/BE,YAAaD,EAAiB7lB,EAAK8lB,aACnCE,cAAehmB,EAAKgmB,cACpBC,qBAAqB,QAAWjmB,EAAKimB,oBAAqB,GAC1DC,mBAAmB,QAAalmB,EAAKkmB,mBACrCvY,OAAO,QAAiB3N,EAAK2N,MAAO,SACjC,QAAqB3N,GAE5B,CAEA,kBAIE,WAAmBsD,EAAmBsC,GAAtC,MAEE,YAAMtC,EAAOsC,IAAK,K,OAJZ,EAAAugB,YAA6B,KAoBnC,EAAKC,WACH,WAEE,EAAKziB,gBAAgB4E,UAAY,EAAK8d,cAAc9d,SACtD,GAKyB,aAAzB,EAAKjF,MAAMsiB,UAA2B,IAAQU,EAAMC,e,CAExD,CAqhBF,OAtjBmC,OAsCzB,YAAAC,SAAR,WAC2B,OAArBvnB,KAAKknB,cACPhS,OAAOsS,cAAcxnB,KAAKknB,aAC1BlnB,KAAKknB,YAAc,KAEvB,EAQQ,YAAAC,UAAR,SACEM,EACAC,QAAA,IAAAA,IAAAA,EAAmBL,EAAMC,eAEzBtnB,KAAKunB,WACLvnB,KAAKknB,YAAchS,OAAOyS,YAAYF,EAASC,EACjD,EAOU,YAAAngB,iBAAV,WACE,OAAOvH,KAAKonB,aACd,EAMU,YAAApd,iBAAV,SAA2B5J,GAEnB,MAAyCJ,KAAK4nB,eAClD5nB,KAAKqE,MAAM2B,MACXhG,KAAKqE,MAAM4B,QAFE4hB,EAAQ,QAAUC,EAAS,SAKb,YAAzB9nB,KAAKqE,MAAMsiB,YACoB,IAA7B3mB,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAACnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEnD7F,EAAQuH,UAAUgP,QAAQ,iBAAkB,oBAEX,IAA7B3W,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAAC0gB,EAAUC,GAEhC1nB,EAAQuH,UAAUgP,QAAQ,gBAAiB,mBAE7CvW,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMO,YAAAuB,OAAP,WAEE7K,KAAKunB,WAEL,YAAM1c,OAAM,UACd,EAQU,YAAA1D,cAAV,SAAwBnB,EAAeC,GAE/B,MAAyCjG,KAAK4nB,eAClD5hB,EACAC,GAFa4hB,EAAQ,QAAUC,EAAS,SAMb,YAAzB9nB,KAAKqE,MAAMsiB,UACb,YAAMxf,cAAa,UAACnB,EAAOC,GAI3B,YAAMkB,cAAa,UAAC0gB,EAAUC,EAElC,EAQQ,YAAAV,YAAR,WACE,OAAQpnB,KAAKqE,MAAMsiB,WACjB,IAAK,WACH,OAAO3mB,KAAK+nB,sBACd,IAAK,UACH,OAAO/nB,KAAKgoB,qBACd,QACE,MAAM,IAAIxT,MAAM,uBAEtB,EAMQ,YAAAuT,oBAAR,WACE,IAAMhX,EAAQ,6BACRkX,EACO,UADPA,EAGE,UAHFA,EAIM,UAJNA,EAKO,UALPA,EAMQ,UAGR,EAAoBjoB,KAAK4nB,iBAAvB5hB,EAAK,QAAEC,EAAM,SAKfiiB,EACHC,GAA4CniB,EAAS,IAElD0F,EAAMrL,SAASC,cAAc,OACnCoL,EAAInL,UAAY,iBAChBmL,EAAI7D,MAAM7B,MAAQ,UAAGA,EAAK,MAC1B0F,EAAI7D,MAAM5B,OAAS,UAAGA,EAAM,MAG5B,IAAMya,EAAMrgB,SAASiR,gBAAgBP,EAAO,OAE5C2P,EAAIjV,aAAa,UAAW,eAG5B,IAAM2c,EAAY/nB,SAASiR,gBAAgBP,EAAO,KAClDqX,EAAU3c,aAAa,QAAS,aAChC,IAAM4c,EAAsBhoB,SAASiR,gBAAgBP,EAAO,UAC5DsX,EAAoB5c,aAAa,KAAM,MACvC4c,EAAoB5c,aAAa,KAAM,MACvC4c,EAAoB5c,aAAa,IAAK,MACtC4c,EAAoB5c,aAAa,OAAQwc,GACzCI,EAAoB5c,aAAa,SAjCd,WAkCnB4c,EAAoB5c,aAAa,eAAgB,KACjD4c,EAAoB5c,aAAa,iBAAkB,SAEnD2c,EAAU7H,OAAO8H,GAGjB,IAAMC,EAAOtoB,KAAKuoB,mBAClB,GAAID,EAAKroB,OAAS,EAAG,CACnB,IAAMuoB,EAAuBnoB,SAASiR,gBAAgBP,EAAO,QAC7DyX,EAAqB/c,aAAa,cAAe,UACjD+c,EAAqB/c,aAAa,YAAa,KAC/C+c,EAAqB/c,aACnB,YACA,+BAEF+c,EAAqB/c,aAAa,OAAQwc,GAC1CO,EAAqB/Z,YAAc6Z,EACnCF,EAAU7H,OAAOiI,E,CAInB,IAAMC,EAAapoB,SAASiR,gBAAgBP,EAAO,KACnD0X,EAAWhd,aAAa,QAAS,SAEjC,IAAMid,EAAgBroB,SAASiR,gBAAgBP,EAAO,KACtD2X,EAAcjd,aAAa,QAAS,QACpCid,EAAcjd,aAAa,YAAa,oBACxC,IAAMkd,EAAStoB,SAASiR,gBAAgBP,EAAO,QAC/C4X,EAAOld,aAAa,KAAM,MAC1Bkd,EAAOld,aAAa,KAAM,KAC1Bkd,EAAOld,aAAa,KAAM,MAC1Bkd,EAAOld,aAAa,KAAM,KAC1Bkd,EAAOld,aAAa,SAAUwc,GAC9BU,EAAOld,aAAa,eAAgB,KACpC,IAAMmd,EAASvoB,SAASiR,gBAAgBP,EAAO,QAC/C6X,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,SAAUwc,GAC9BW,EAAOnd,aAAa,eAAgB,KAEpCid,EAAcnI,OAAOoI,EAAQC,GAE7BH,EAAWlI,OAAOmI,GAElB,IAAK,IAAIzd,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAM4d,EAAOxoB,SAASiR,gBAAgBP,EAAO,QAC7C8X,EAAKpd,aAAa,KAAM,KACxBod,EAAKpd,aAAa,KAAM,KACxBod,EAAKpd,aAAa,SAAUwc,GAC5BY,EAAKpd,aAAa,YAAa,kCAA+B,EAAJR,EAAK,MAE3DA,EAAI,GAAM,GACZ4d,EAAKpd,aAAa,KAAM,MACxBod,EAAKpd,aAAa,KAAM,MACxBod,EAAKpd,aAAa,eAAgBR,EAAI,IAAO,EAAI,IAAM,OAEvD4d,EAAKpd,aAAa,KAAM,MACxBod,EAAKpd,aAAa,KAAM,MACxBod,EAAKpd,aAAa,eAAgB,QAIpCgd,EAAWlI,OAAOsI,E,CAMpB,IAAMC,EAAWzoB,SAASiR,gBAAgBP,EAAO,KACjD+X,EAASrd,aAAa,QAAS,aAC/Bqd,EAASrd,aAAa,YAAa,oBAEnC,IAAMsd,EAAY1oB,SAASiR,gBAAgBP,EAAO,QAClDgY,EAAUtd,aAAa,QAAS,eAChCsd,EAAUtd,aAAa,KAAM,KAC7Bsd,EAAUtd,aAAa,KAAM,KAC7Bsd,EAAUtd,aAAa,KAAM,MAC7Bsd,EAAUtd,aAAa,KAAM,KAC7Bsd,EAAUtd,aAAa,SAAUwc,GACjCc,EAAUtd,aAAa,eAAgB,KACvCsd,EAAUtd,aAAa,iBAAkB,SAEzC,IAAMud,EAAY3oB,SAASiR,gBAAgBP,EAAO,QAClDiY,EAAUvd,aAAa,QAAS,eAChCud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,QAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,SAAUwc,GACjCe,EAAUvd,aAAa,eAAgB,OACvCud,EAAUvd,aAAa,iBAAkB,SAEzCqd,EAASvI,OAAOwI,EAAWC,GAG3B,IAAMC,EAAa5oB,SAASiR,gBAAgBP,EAAO,KACnDkY,EAAWxd,aAAa,QAAS,eACjCwd,EAAWxd,aAAa,YAAa,oBAErC,IAAMyd,EAAc7oB,SAASiR,gBAAgBP,EAAO,QACpDmY,EAAYzd,aAAa,QAAS,iBAClCyd,EAAYzd,aAAa,KAAM,KAC/Byd,EAAYzd,aAAa,KAAM,KAC/Byd,EAAYzd,aAAa,KAAM,MAC/Byd,EAAYzd,aAAa,KAAM,KAC/Byd,EAAYzd,aAAa,SAAUwc,GACnCiB,EAAYzd,aAAa,eAAgB,KACzCyd,EAAYzd,aAAa,iBAAkB,SAE3C,IAAM0d,EAAc9oB,SAASiR,gBAAgBP,EAAO,QACpDoY,EAAY1d,aAAa,QAAS,iBAClC0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,QAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,SAAUwc,GACnCkB,EAAY1d,aAAa,eAAgB,OACzC0d,EAAY1d,aAAa,iBAAkB,SAC3C,IAAM2d,EAAgB/oB,SAASiR,gBAAgBP,EAAO,UACtDqY,EAAc3d,aAAa,IAAK,KAChC2d,EAAc3d,aAAa,OAAQwc,GAEnCgB,EAAW1I,OAAO2I,EAAaC,EAAaC,GAG5C,IAAMC,EAAahpB,SAASiR,gBAAgBP,EAAO,KACnDsY,EAAW5d,aAAa,QAAS,eACjC4d,EAAW5d,aAAa,YAAa,oBACrC,IAAM6d,EAAgBjpB,SAASiR,gBAAgBP,EAAO,QACtDuY,EAAc7d,aAAa,KAAM,KACjC6d,EAAc7d,aAAa,KAAM,KACjC6d,EAAc7d,aAAa,KAAM,MACjC6d,EAAc7d,aAAa,KAAM,KACjC6d,EAAc7d,aAAa,SAAUwc,GACrCqB,EAAc7d,aAAa,eAAgB,KAC3C6d,EAAc7d,aAAa,iBAAkB,SAC7C,IAAM8d,EAAgBlpB,SAASiR,gBAAgBP,EAAO,UACtDwY,EAAc9d,aAAa,IAAK,KAChC8d,EAAc9d,aAAa,OAAQwc,GAEnCoB,EAAW9I,OAAO+I,EAAeC,GAGjC,IAAMC,EAAMnpB,SAASiR,gBAAgBP,EAAO,UAC5CyY,EAAI/d,aAAa,KAAM,MACvB+d,EAAI/d,aAAa,KAAM,MACvB+d,EAAI/d,aAAa,IAAK,OACtB+d,EAAI/d,aAAa,OAAQwc,GAGzB,IAAM5S,EAAOrV,KAAKypB,gBACZpT,EAAUhB,EAAKiB,aACfH,EAAUd,EAAKe,aAEfsT,EAAW,EAAarT,EACxBsT,EAAc,EAAaxT,EAAwBE,EAAU,GAAxB,EACrCuT,EAAY,GAHJvU,EAAKa,WAGkCC,EAAU,GAAxB,GA0EvC,GAxEA2S,EAASrd,aAAa,YAAa,kCAA2Bme,EAAS,MACvEX,EAAWxd,aACT,YACA,kCAA2Bke,EAAW,MAExCN,EAAW5d,aACT,YACA,kCAA2Bie,EAAQ,MAIrChJ,EAAIH,OAAO6H,EAAWK,EAAYK,EAAUG,EAAYI,EAAYG,GAEpE9I,EAAIjV,aAAa,YAAa,eAS9BC,EAAIpC,UAAY,4FAIN,QACA,YACA,uCAAgCsgB,EAAS,SACzCC,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCD,EAAY,IAAG,SAC/CC,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCF,EAAW,SAC3CE,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCF,EAAc,IAAG,SACjDE,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCH,EAAQ,SACxCG,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCH,EAAW,IAAG,SAC9CG,KAAK,MAAK,kDAMpBne,EAAI6U,OAAOG,GAGoB,aAA3B1gB,KAAKqE,MAAMwiB,YAA4B,CACzC,IAAMiD,EAA4BzpB,SAASC,cAAc,QACzDwpB,EAASvpB,UAAY,OACrBupB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASjiB,MAAMkiB,SAAW,UAAG7B,EAAY,MACrCloB,KAAKqE,MAAMqK,QAAOob,EAASjiB,MAAM6G,MAAQ1O,KAAKqE,MAAMqK,OACxDhD,EAAI6U,OAAOuJ,E,CAGb,OAAOpe,CACT,EAMQ,YAAAsc,mBAAR,WACE,IAAM5nB,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,gBAEd,MAAoBP,KAAK4nB,iBAAvB5hB,EAAK,QAAEC,EAAM,SACjB+jB,EAAWhkB,EACXC,EAASD,IACXgkB,EAAW/jB,GAIb,IAEMgkB,EAAuB,EAAIjqB,KAAKqE,MAAM0iB,cAAc9mB,OACpDiqB,EAHmB,GAGgBF,EAAY,IAC/C9B,EACHC,KAA4C6B,EAAY,IACrDG,EAAa3a,KAAK8U,IANC,GAOH2F,EAAuBD,EAAY,IACtDhkB,EAAQ,IAAO,IAIZqP,EAAOrV,KAAKypB,gBAGlB,GAA+B,aAA3BzpB,KAAKqE,MAAMwiB,YAA4B,CACzC,IAAMiD,EAA4BzpB,SAASC,cAAc,QACzDwpB,EAASvpB,UAAY,OACrBupB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASjiB,MAAMkiB,SAAW,UAAG7B,EAAY,MACrCloB,KAAKqE,MAAMqK,QAAOob,EAASjiB,MAAM6G,MAAQ1O,KAAKqE,MAAMqK,OACxDtO,EAAQmgB,OAAOuJ,E,CAIjB,IAAMM,EAA4B/pB,SAASC,cAAc,QACzD8pB,EAAS7pB,UAAY,OACrB6pB,EAAS3b,aAAc,QAAU4G,GACjC+U,EAASviB,MAAMkiB,SAAW,UAAGG,EAAY,MACrClqB,KAAKqE,MAAMqK,QAAO0b,EAASviB,MAAM6G,MAAQ1O,KAAKqE,MAAMqK,OACxDtO,EAAQmgB,OAAO6J,GAGf,IAAM9B,EAAOtoB,KAAKuoB,mBAClB,GAAID,EAAKroB,OAAS,EAAG,CACnB,IAAMoqB,EAA0BhqB,SAASC,cAAc,QACvD+pB,EAAO9pB,UAAY,WACnB8pB,EAAO5b,YAAc6Z,EACrB+B,EAAOxiB,MAAMkiB,SAAW,UAAGI,EAAU,MACjCnqB,KAAKqE,MAAMqK,QAAO2b,EAAOxiB,MAAM6G,MAAQ1O,KAAKqE,MAAMqK,OACtDtO,EAAQmgB,OAAO8J,E,CAGjB,OAAOjqB,CACT,EAMQ,YAAAqpB,cAAR,SAAsBa,QAAA,IAAAA,IAAAA,EAAA,MACpB,IAAM3O,EAAI2O,GAA4B,IAAI5gB,KACpC6gB,EAAkD,IAAjCvqB,KAAKqE,MAAM2iB,oBAC5BwD,EAAwC,GAAxB7O,EAAE8O,oBAA2B,IAC7CC,EAAa/O,EAAErH,UAAYiW,EAAiBC,EAElD,OAAO,IAAI9gB,KAAKghB,EAClB,EAMO,YAAAnC,iBAAP,SAAwBoC,QAAA,IAAAA,IAAAA,EAAmB3qB,KAAKqE,MAAM0iB,eAC9C,IAAG,EAAa4D,EAASrF,MAAM,KAA5B,GACT,YADa,IAAG,KAAE,GACN3O,QAAQ,IAAK,IAC3B,EAMQ,YAAAiR,eAAR,SACE5hB,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAgBhG,KAAKqE,MAAM2B,YAC3B,IAAAC,IAAAA,EAAiBjG,KAAKqE,MAAM4B,QAEpBjG,KAAKqE,MAAMsiB,WACjB,IAAK,WACH,IAAIiE,EAAW,IAEX5kB,EAAQ,GAAKC,EAAS,EACxB2kB,EAAWpb,KAAK8U,IAAIte,EAAOC,GAClBD,EAAQ,EACjB4kB,EAAW5kB,EACFC,EAAS,IAClB2kB,EAAW3kB,GAGb,IAAI4kB,EAAc,EAKlB,MAJ+B,aAA3B7qB,KAAKqE,MAAMwiB,cACbgE,EAAc5kB,EAAS,GAGlB,CACLD,MAAO4kB,EACP3kB,OAAQ2kB,EAAWC,GAGvB,IAAK,UAcH,OAbI7kB,EAAQ,GAAKC,EAAS,EAExBA,EAASD,EAAQ,EAAIC,EAASD,EAAQ,EAAIC,EACjCD,EAAQ,EACjBC,EAASD,EAAQ,EACRC,EAAS,EAElBD,EAAiB,EAATC,GAERD,EAAQ,IACRC,EAAS,IAGJ,CACLD,MAAK,EACLC,OAAM,GAGV,QACE,MAAM,IAAIuO,MAAM,uBAEtB,EApjBuB,EAAA8S,cAAgB,IAqjBzC,C,CAtjBA,CAAmChK,EAAA,I,8qBC9D5B,SAASwN,GAAgB/pB,GAC9B,OAAO,QACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZ8U,aAAa,QAAW/X,EAAK+X,YAAa,GAC1C8I,aAAa,QAAiB7gB,EAAK6gB,YAAa,MAChDmJ,WAAW,QAAiBhqB,EAAKgqB,UAAW,MAC5CC,gBAAiBjqB,EAAKiqB,iBAE1B,CAEA,gC,8CAyDA,QAzDiC,OACrB,YAAAzjB,iBAAV,WACE,IAAME,EAAsBpH,SAASC,cAAc,OAcnD,GAbAmH,EAAIlH,UAAY,MAEhBkH,EAAII,MAAMojB,UAAY,aAElBjrB,KAAKqE,MAAM2mB,gBACbvjB,EAAII,MAAMuF,gBAAkB,cAExBpN,KAAKqE,MAAM0mB,YACbtjB,EAAII,MAAMuF,gBAAkBpN,KAAKqE,MAAM0mB,WAKvC/qB,KAAKqE,MAAMyU,YAAc,EAAG,CAC9BrR,EAAII,MAAMqjB,YAAc,QAExB,IAAMC,EAAiB3b,KAAK8U,IAAItkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE6S,EAActJ,KAAK8U,IAAItkB,KAAKqE,MAAMyU,YAAaqS,GACrD1jB,EAAII,MAAMiR,YAAc,UAAGA,EAAW,MAElC9Y,KAAKqE,MAAMud,cACbna,EAAII,MAAM+Z,YAAc5hB,KAAKqE,MAAMud,Y,CAIvC,OAAOna,CACT,EAMU,YAAAuC,iBAAV,SAA2B5J,GAUzB,GATIJ,KAAKqE,MAAM2mB,gBACb5qB,EAAQyH,MAAMuF,gBAAkB,cAE5BpN,KAAKqE,MAAM0mB,YACb3qB,EAAQyH,MAAMuF,gBAAkBpN,KAAKqE,MAAM0mB,WAK3C/qB,KAAKqE,MAAMyU,YAAc,EAAG,CAC9B1Y,EAAQyH,MAAMqjB,YAAc,QAE5B,IAAMC,EAAiB3b,KAAK8U,IAAItkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE6S,EAActJ,KAAK8U,IAAItkB,KAAKqE,MAAMyU,YAAaqS,GACrD/qB,EAAQyH,MAAMiR,YAAc,UAAGA,EAAW,MAEtC9Y,KAAKqE,MAAMud,cACbxhB,EAAQyH,MAAM+Z,YAAc5hB,KAAKqE,MAAMud,Y,CAG7C,EACF,EAzDA,CAAiCtE,EAAA,I,orBCzB1B,SAAS8N,GAAkBrqB,GAChC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,KACH,QAAqB5B,GAE5B,CAEA,gC,8CAoBA,QApBmC,QACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAIvC,OAHAF,EAAQG,UAAY,QACpBH,EAAQkJ,UAAYtJ,KAAKgJ,6BAElB5I,CACT,EAOO,YAAAkH,sBAAP,WACE,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EApBA,CAAmCkd,EAAA,I,orBCQ7B+N,GAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,SACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,SAEb,EA6BO,SAASC,GACdxqB,GAEA,GAA0B,iBAAfA,EAAK0I,OAA4C,IAAtB1I,EAAK0I,MAAMxJ,OAC/C,MAAM,IAAIyD,UAAU,iBAGtB,IAAM8nB,EA9BkB,SACxBA,GAEA,OAAQA,GACN,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACH,OAAOA,EACT,QACE,MAAO,OAEb,CAkBuBC,CAAkB1qB,EAAKyqB,cAE5C,OAAO,mBACF,QAAqBzqB,IAAK,CAC7B4B,KAAM,EACN2oB,UAAWD,GAAetqB,EAAKuqB,WAC/B7hB,MAAO1I,EAAK0I,QACS,SAAjB+hB,EACA,CAAEA,aAAY,GACd,CAAEA,aAAY,EAAEpd,QAAQ,QAAWrN,EAAKqN,OAAQ,MACjD,QAAmBrN,KACnB,QAAqBA,GAE5B,CAEA,gC,8CAwCA,QAxCyC,QAC7B,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAUvC,GATAF,EAAQG,UAAY,gBAGW,IAA7BP,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,EAAQyH,MAAMgG,QAAU,OAGG,UAAzB7N,KAAKqE,MAAMinB,UAAuB,CACpC,IAAMI,EAAMrrB,SAASC,cAAc,OACnCorB,EAAI3d,IAAM/N,KAAKqE,MAAMoF,MACrBrJ,EAAQmgB,OAAOmL,E,KACV,CAEL,IAAIjV,EAAOzW,KAAKqE,MAAMoF,MAClB9F,EAAQ3D,KAAKgJ,6BACbrF,EAAM1D,OAAS,IACjBwW,GAAO,QAAc,CAAC,CAAEjN,MAAO,iBAAkBC,MAAOgN,IAAS9S,IAGnEvD,EAAQkJ,UAAYmN,C,CAGtB,OAAOrW,CACT,EAMc,YAAAkH,sBAAV,WACF,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EAxCA,CAAyCkd,EAAA,I,kCC7FrCqO,GAAKnc,KAAK6V,GACVuG,GAAM,EAAID,GACVE,GAAU,KACVC,GAAaF,GAAMC,GAEvB,SAASE,KACP/rB,KAAKgsB,IAAMhsB,KAAKisB,IAChBjsB,KAAKksB,IAAMlsB,KAAKmsB,IAAM,KACtBnsB,KAAKosB,EAAI,EACX,CAEA,SAAS9jB,KACP,OAAO,IAAIyjB,EACb,CAEAA,GAAK1P,UAAY/T,GAAK+T,UAAY,CAChCgQ,YAAaN,GACbO,OAAQ,SAASjnB,EAAGC,GAClBtF,KAAKosB,GAAK,KAAOpsB,KAAKgsB,IAAMhsB,KAAKksB,KAAO7mB,GAAK,KAAOrF,KAAKisB,IAAMjsB,KAAKmsB,KAAO7mB,EAC7E,EACAinB,UAAW,WACQ,OAAbvsB,KAAKksB,MACPlsB,KAAKksB,IAAMlsB,KAAKgsB,IAAKhsB,KAAKmsB,IAAMnsB,KAAKisB,IACrCjsB,KAAKosB,GAAK,IAEd,EACAI,OAAQ,SAASnnB,EAAGC,GAClBtF,KAAKosB,GAAK,KAAOpsB,KAAKksB,KAAO7mB,GAAK,KAAOrF,KAAKmsB,KAAO7mB,EACvD,EACAmnB,iBAAkB,SAASlJ,EAAIC,EAAIne,EAAGC,GACpCtF,KAAKosB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,KAAOxjB,KAAKksB,KAAO7mB,GAAK,KAAOrF,KAAKmsB,KAAO7mB,EACnF,EACAonB,cAAe,SAASnJ,EAAIC,EAAIC,EAAIC,EAAIre,EAAGC,GACzCtF,KAAKosB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,MAAQC,EAAM,MAAQC,EAAM,KAAO1jB,KAAKksB,KAAO7mB,GAAK,KAAOrF,KAAKmsB,KAAO7mB,EAC/G,EACAqnB,MAAO,SAASpJ,EAAIC,EAAIC,EAAIC,EAAIlH,GAC9B+G,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIlH,GAAKA,EAC7C,IAAIoQ,EAAK5sB,KAAKksB,IACVW,EAAK7sB,KAAKmsB,IACVW,EAAMrJ,EAAKF,EACXwJ,EAAMrJ,EAAKF,EACXwJ,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0J,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAIzQ,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGjD,GAAiB,OAAbxc,KAAKksB,IACPlsB,KAAKosB,GAAK,KAAOpsB,KAAKksB,IAAM3I,GAAM,KAAOvjB,KAAKmsB,IAAM3I,QAIjD,GAAM0J,EAAQrB,GAKd,GAAMrc,KAAKM,IAAImd,EAAMH,EAAMC,EAAMC,GAAOnB,IAAarP,EAKrD,CACH,IAAI2Q,EAAM1J,EAAKmJ,EACXQ,EAAM1J,EAAKmJ,EACXQ,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAM/d,KAAKge,KAAKH,GAChBI,EAAMje,KAAKge,KAAKN,GAChB3H,EAAI/I,EAAIhN,KAAKke,KAAK/B,GAAKnc,KAAKme,MAAMN,EAAQH,EAAQI,IAAU,EAAIC,EAAME,KAAS,GAC/EG,EAAMrI,EAAIkI,EACVI,EAAMtI,EAAIgI,EAGV/d,KAAKM,IAAI8d,EAAM,GAAK/B,KACtB7rB,KAAKosB,GAAK,KAAO7I,EAAKqK,EAAMZ,GAAO,KAAOxJ,EAAKoK,EAAMX,IAGvDjtB,KAAKosB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,WAAayQ,EAAME,EAAMH,EAAMI,GAAQ,KAAOptB,KAAKksB,IAAM3I,EAAKsK,EAAMf,GAAO,KAAO9sB,KAAKmsB,IAAM3I,EAAKqK,EAAMd,EACxI,MArBE/sB,KAAKosB,GAAK,KAAOpsB,KAAKksB,IAAM3I,GAAM,KAAOvjB,KAAKmsB,IAAM3I,EAsBxD,EACAsK,IAAK,SAASzoB,EAAGC,EAAGkX,EAAGuR,EAAIC,EAAIC,GAC7B5oB,GAAKA,EAAGC,GAAKA,EAAW2oB,IAAQA,EAChC,IAAIC,GADY1R,GAAKA,GACRhN,KAAK2e,IAAIJ,GAClBK,EAAK5R,EAAIhN,KAAK6e,IAAIN,GAClBnB,EAAKvnB,EAAI6oB,EACTrB,EAAKvnB,EAAI8oB,EACTE,EAAK,EAAIL,EACTM,EAAKN,EAAMF,EAAKC,EAAKA,EAAKD,EAG9B,GAAIvR,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGhC,OAAbxc,KAAKksB,IACPlsB,KAAKosB,GAAK,IAAMQ,EAAK,IAAMC,GAIpBrd,KAAKM,IAAI9P,KAAKksB,IAAMU,GAAMf,IAAWrc,KAAKM,IAAI9P,KAAKmsB,IAAMU,GAAMhB,MACtE7rB,KAAKosB,GAAK,IAAMQ,EAAK,IAAMC,GAIxBrQ,IAGD+R,EAAK,IAAGA,EAAKA,EAAK3C,GAAMA,IAGxB2C,EAAKzC,GACP9rB,KAAKosB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOjpB,EAAI6oB,GAAM,KAAO5oB,EAAI8oB,GAAM,IAAM5R,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOtuB,KAAKksB,IAAMU,GAAM,KAAO5sB,KAAKmsB,IAAMU,GAIrJ0B,EAAK1C,KACZ7rB,KAAKosB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,SAAW+R,GAAM5C,IAAO,IAAM2C,EAAK,KAAOtuB,KAAKksB,IAAM7mB,EAAImX,EAAIhN,KAAK2e,IAAIH,IAAO,KAAOhuB,KAAKmsB,IAAM7mB,EAAIkX,EAAIhN,KAAK6e,IAAIL,KAElJ,EACAQ,KAAM,SAASnpB,EAAGC,EAAGmpB,EAAGC,GACtB1uB,KAAKosB,GAAK,KAAOpsB,KAAKgsB,IAAMhsB,KAAKksB,KAAO7mB,GAAK,KAAOrF,KAAKisB,IAAMjsB,KAAKmsB,KAAO7mB,GAAK,MAAQmpB,EAAK,MAAQC,EAAK,KAAQD,EAAK,GACzH,EACAE,SAAU,WACR,OAAO3uB,KAAKosB,CACd,GAGF,UCjIe,YAAS/mB,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJO,IAAIyK,GAAMN,KAAKM,IACXsV,GAAQ5V,KAAK4V,MACb+I,GAAM3e,KAAK2e,IACXhT,GAAM3L,KAAK2L,IACXmJ,GAAM9U,KAAK8U,IACX+J,GAAM7e,KAAK6e,IACXb,GAAOhe,KAAKge,KAEZ,GAAU,MACV,GAAKhe,KAAK6V,GACVuJ,GAAS,GAAK,EACd,GAAM,EAAI,GAEd,SAASjB,GAAKtoB,GACnB,OAAOA,EAAI,EAAI,EAAIA,GAAK,EAAI,GAAKmK,KAAKme,KAAKtoB,EAC7C,CAEO,SAASwpB,GAAKxpB,GACnB,OAAOA,GAAK,EAAIupB,GAASvpB,IAAM,GAAKupB,GAASpf,KAAKqf,KAAKxpB,EACzD,CCfA,SAASypB,GAAenT,GACtB,OAAOA,EAAEoT,WACX,CAEA,SAASC,GAAerT,GACtB,OAAOA,EAAEsT,WACX,CAEA,SAASC,GAAcvT,GACrB,OAAOA,EAAEwT,UACX,CAEA,SAASC,GAAYzT,GACnB,OAAOA,EAAE0T,QACX,CAEA,SAASC,GAAY3T,GACnB,OAAOA,GAAKA,EAAE4T,QAChB,CAEA,SAASC,GAAU5C,EAAIC,EAAItJ,EAAIC,EAAIC,EAAIC,EAAI+L,EAAIC,GAC7C,IAAIC,EAAMpM,EAAKqJ,EAAIgD,EAAMpM,EAAKqJ,EAC1BgD,EAAMJ,EAAKhM,EAAIqM,EAAMJ,EAAKhM,EAC1B1W,EAAI8iB,EAAMH,EAAME,EAAMD,EAC1B,KAAI5iB,EAAIA,EAAI,IAEZ,MAAO,CAAC4f,GADR5f,GAAK6iB,GAAOhD,EAAKnJ,GAAMoM,GAAOlD,EAAKnJ,IAAOzW,GACzB2iB,EAAK9C,EAAK7f,EAAI4iB,EACjC,CAIA,SAASG,GAAenD,EAAIC,EAAItJ,EAAIC,EAAIwM,EAAIC,EAAI3B,GAC9C,IAAItB,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0M,GAAM5B,EAAK2B,GAAMA,GAAMzC,GAAKR,EAAMA,EAAMC,EAAMA,GAC9CkD,EAAKD,EAAKjD,EACVmD,GAAMF,EAAKlD,EACXqD,EAAMzD,EAAKuD,EACXG,EAAMzD,EAAKuD,EACXT,EAAMpM,EAAK4M,EACXP,EAAMpM,EAAK4M,EACXG,GAAOF,EAAMV,GAAO,EACpBa,GAAOF,EAAMV,GAAO,EACpB1B,EAAKyB,EAAMU,EACXjC,EAAKwB,EAAMU,EACXG,EAAKvC,EAAKA,EAAKE,EAAKA,EACpB5R,EAAIwT,EAAKC,EACTS,EAAIL,EAAMT,EAAMD,EAAMW,EACtB3U,GAAKyS,EAAK,GAAK,EAAI,GAAKZ,GAAKrS,GAAI,EAAGqB,EAAIA,EAAIiU,EAAKC,EAAIA,IACrDC,GAAOD,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BG,IAAQF,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BI,GAAOH,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BK,IAAQJ,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BM,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMN,EACZW,EAAMJ,EAAMN,EAMhB,OAFIO,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKP,EAAME,EAAKD,EAAME,GAE7D,CACLK,GAAIR,EACJS,GAAIR,EACJ5D,KAAMmD,EACNlD,KAAMmD,EACNC,IAAKM,GAAOX,EAAKxT,EAAI,GACrB8T,IAAKM,GAAOZ,EAAKxT,EAAI,GAEzB,C,krBCpCA,SAAS6U,GACP1uB,GAEA,OAAQA,GACN,IAAK,eACL,IAAK,SACL,IAAK,wBACL,IAAK,4BACH,OAAOA,EACT,QACA,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,SACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,4BAEb,CAMA,SAAS2uB,GAAiBhG,GACxB,OAAQA,GACN,IAAK,UACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,UAEb,CAWO,SAASiG,GACdxwB,GAEA,OAAO,gBACF,QAAqBA,IAAK,CAC7B4B,KAAM,EACN6uB,eAAgBH,GAAsBtwB,EAAKywB,gBAAkBzwB,EAAK4B,MAClE2oB,UAAWgG,GAAiBvwB,EAAKuqB,WACjCmG,UAAU,QAAW1wB,EAAK0wB,SAAU,MACpCC,UAAU,QAAW3wB,EAAK2wB,SAAU,MACpChjB,OAAO,QAAiB3N,EAAK2N,MAAO,MACpCijB,YAAY,QAAiB5wB,EAAK4wB,WAAY,MAC9CloB,OAAO,QAAa1I,EAAK0I,MAAO,MAChC4F,MAAM,QAAiBtO,EAAKsO,KAAM,SAC/B,QAAmBtO,KACnB,QAAqBA,GAE5B,CAEA,IAAM,GAAQ,6BAEd,4B,8CA6NA,QA7NwC,QAC5B,YAAAwG,iBAAV,WACE,IAUIqqB,EAVE3J,EAAS,CACb4J,WAAY,UACZC,SAAU9xB,KAAKqE,MAAMqK,OAAS,UAC9B+H,KAAMzW,KAAKqE,MAAMstB,YAAc,WAG3BG,EAAW9xB,KAAK+xB,cAEhB3xB,EAAUC,SAASC,cAAc,OAGf,MAApBN,KAAKqE,MAAMoF,QAEXmoB,EADErc,KACYA,KAAKyc,aAAa,SAASpc,OAAO5V,KAAKqE,MAAMoF,OAE7CzJ,KAAKqE,MAAMoF,OAK7B,IAAMiX,EAAMrgB,SAASiR,gBAAgB,GAAO,OAE5C,OAAQtR,KAAKqE,MAAMmtB,gBACjB,IAAK,eAED,IAAMS,EAAiB5xB,SAASiR,gBAAgB,GAAO,QACvD2gB,EAAexmB,aAAa,OAAQwc,EAAO4J,YAC3CI,EAAexmB,aAAa,eAAgB,OAC5CwmB,EAAexmB,aAAa,QAAS,QACrCwmB,EAAexmB,aAAa,SAAU,QACtCwmB,EAAexmB,aAAa,KAAM,KAClCwmB,EAAexmB,aAAa,KAAM,KAClC,IAAMymB,EAAe7xB,SAASiR,gBAAgB,GAAO,QACrD4gB,EAAazmB,aAAa,OAAQwc,EAAO6J,UACzCI,EAAazmB,aAAa,eAAgB,KAC1CymB,EAAazmB,aAAa,QAAS,UAAGqmB,EAAQ,MAC9CI,EAAazmB,aAAa,SAAU,QACpCymB,EAAazmB,aAAa,KAAM,KAChCymB,EAAazmB,aAAa,KAAM,MAC1BgL,EAAOpW,SAASiR,gBAAgB,GAAO,SACxC7F,aAAa,cAAe,UACjCgL,EAAKhL,aAAa,qBAAsB,UACxCgL,EAAKhL,aAAa,YAAa,MAC/BgL,EAAKhL,aAAa,cAAe,QACjCgL,EAAKhL,aAAa,cAAe,QACjCgL,EAAKhL,aACH,YACA,oBAAazL,KAAKqE,MAAM2B,MAAQ,EAAC,YAEnCyQ,EAAKhL,aAAa,OAAQwc,EAAOxR,MAEJ,UAAzBzW,KAAKqE,MAAMinB,WACb7U,EAAK5O,MAAMkiB,SAAW,MAEtBtT,EAAKhI,YAAczO,KAAKqE,MAAMgL,KAC1B,UAAGuiB,EAAW,YAAI5xB,KAAKqE,MAAMgL,MAC7B,UAAGuiB,IAEPnb,EAAKhI,YAAc,UAAGqjB,EAAQ,KAGhCpR,EAAIjV,aAAa,QAAS,QAC1BiV,EAAIjV,aAAa,SAAU,QAC3BiV,EAAIH,OAAO0R,EAAgBC,EAAczb,GAE3C,MACF,IAAK,SACL,IAAK,wBACL,IAAK,4BAKD,GAFAiK,EAAIjV,aAAa,UAAW,eAEM,WAA9BzL,KAAKqE,MAAMmtB,gBAEPW,EAAmB9xB,SAASiR,gBAAgB,GAAO,WACxC7F,aAAa,YAAa,oBAC3C0mB,EAAiB1mB,aAAa,OAAQwc,EAAO4J,YAC7CM,EAAiB1mB,aAAa,eAAgB,OAC9C0mB,EAAiB1mB,aAAa,IAAK,OAC7B2mB,EAAiB/xB,SAASiR,gBAAgB,GAAO,WACxC7F,aAAa,YAAa,oBACzC2mB,EAAe3mB,aAAa,OAAQwc,EAAO6J,UAC3CM,EAAe3mB,aAAa,eAAgB,KAC5C2mB,EAAe3mB,aAAa,IAAK,UAAGqmB,EAAW,IAE/CpR,EAAIH,OAAO4R,EAAkBC,OACxB,CAEL,IASMD,EAKAC,EAdAC,EAAW,CACftD,YACgC,0BAA9B/uB,KAAKqE,MAAMmtB,eAA6C,GAAK,EAC/DvC,YAAa,GACbE,WAAY,EACZE,SAAoB,EAAV7f,KAAK6V,IAEXyI,ED7HH,WACb,IAAIiB,EAAcD,GACdG,EAAcD,GACdsD,EAAeC,GAAS,GACxBC,EAAY,KACZrD,EAAaD,GACbG,EAAWD,GACXG,EAAWD,GACXmD,EAAU,KAEd,SAAS3E,IACP,IAAI4E,EACAlW,EACAmW,GAAM5D,EAAY6D,MAAM5yB,KAAM6yB,WAC9B7C,GAAMf,EAAY2D,MAAM5yB,KAAM6yB,WAC9B9E,EAAKoB,EAAWyD,MAAM5yB,KAAM6yB,WAAajE,GACzCZ,EAAKqB,EAASuD,MAAM5yB,KAAM6yB,WAAajE,GACvCL,EAAKze,GAAIke,EAAKD,GACdO,EAAKN,EAAKD,EAQd,GANK0E,IAASA,EAAUC,EAAS,MAG7B1C,EAAK2C,IAAInW,EAAIwT,EAAIA,EAAK2C,EAAIA,EAAKnW,GAG7BwT,EAAK,GAGN,GAAIzB,EAAK,GAAM,GAClBkE,EAAQnG,OAAO0D,EAAK7B,GAAIJ,GAAKiC,EAAK3B,GAAIN,IACtC0E,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIjC,EAAIC,GAAKM,GAC3BqE,EAAK,KACPF,EAAQnG,OAAOqG,EAAKxE,GAAIH,GAAK2E,EAAKtE,GAAIL,IACtCyE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAI3E,EAAID,EAAIO,QAK7B,CACH,IAWIwE,EACAC,EAZAC,EAAMjF,EACNkF,EAAMjF,EACNkF,EAAMnF,EACNoF,EAAMnF,EACNoF,EAAM7E,EACN8E,EAAM9E,EACN+E,EAAK/D,EAASqD,MAAM5yB,KAAM6yB,WAAa,EACvCU,EAAMD,EAAK,KAAad,GAAaA,EAAUI,MAAM5yB,KAAM6yB,WAAarF,GAAKmF,EAAKA,EAAK3C,EAAKA,IAC5FC,EAAK3L,GAAIxU,GAAIkgB,EAAK2C,GAAM,GAAIL,EAAaM,MAAM5yB,KAAM6yB,YACrDW,EAAMvD,EACNwD,EAAMxD,EAKV,GAAIsD,EAAK,GAAS,CAChB,IAAIG,EAAK7E,GAAK0E,EAAKZ,EAAKtE,GAAIiF,IACxBK,EAAK9E,GAAK0E,EAAKvD,EAAK3B,GAAIiF,KACvBF,GAAY,EAALM,GAAU,IAA8BR,GAArBQ,GAAOpF,EAAK,GAAK,EAAe6E,GAAOO,IACjEN,EAAM,EAAGF,EAAMC,GAAOpF,EAAKC,GAAM,IACjCqF,GAAY,EAALM,GAAU,IAA8BX,GAArBW,GAAOrF,EAAK,GAAK,EAAe2E,GAAOU,IACjEN,EAAM,EAAGL,EAAMC,GAAOlF,EAAKC,GAAM,EACxC,CAEA,IAAIhB,EAAMgD,EAAK7B,GAAI6E,GACf/F,EAAM+C,EAAK3B,GAAI2E,GACfrD,EAAMgD,EAAKxE,GAAIgF,GACfvD,EAAM+C,EAAKtE,GAAI8E,GAGnB,GAAIlD,EAAK,GAAS,CAChB,IAII2D,EAJAvD,EAAML,EAAK7B,GAAI8E,GACf3C,EAAMN,EAAK3B,GAAI4E,GACf1C,EAAMoC,EAAKxE,GAAI+E,GACf1C,EAAMmC,EAAKtE,GAAI6E,GAInB,GAAI3E,EAAK,KAAOqF,EAAKpE,GAAUxC,EAAKC,EAAKsD,EAAKC,EAAKH,EAAKC,EAAKX,EAAKC,IAAO,CACvE,IAAIiE,EAAK7G,EAAM4G,EAAG,GACdE,EAAK7G,EAAM2G,EAAG,GACdG,EAAK1D,EAAMuD,EAAG,GACdI,EAAK1D,EAAMsD,EAAG,GACdK,EAAK,EAAI5F,GAAIV,IAAMkG,EAAKE,EAAKD,EAAKE,IAAOxG,GAAKqG,EAAKA,EAAKC,EAAKA,GAAMtG,GAAKuG,EAAKA,EAAKC,EAAKA,KAAQ,GAC/FE,EAAK1G,GAAKoG,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IACzCJ,EAAMlP,GAAI2L,GAAK0C,EAAKuB,IAAOD,EAAK,IAChCR,EAAMnP,GAAI2L,GAAKD,EAAKkE,IAAOD,EAAK,GAClC,CACF,CAGMZ,EAAM,GAGHI,EAAM,IACbX,EAAK/C,GAAeQ,EAAKC,EAAKxD,EAAKC,EAAK+C,EAAIyD,EAAKnF,GACjDyE,EAAKhD,GAAeM,EAAKC,EAAKX,EAAKC,EAAKI,EAAIyD,EAAKnF,GAEjDmE,EAAQnG,OAAOwG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCwG,EAAMxD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAGkC,EAAI5K,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,MAAO/B,GACrGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIqC,EAAKrO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,MAK7EmE,EAAQnG,OAAOU,EAAKC,GAAMwF,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIgD,EAAKC,GAAM3E,IArB1CmE,EAAQnG,OAAOU,EAAKC,GAyBpC0F,EAAK,IAAcS,EAAM,GAGtBI,EAAM,IACbV,EAAK/C,GAAeJ,EAAKC,EAAKS,EAAKC,EAAKqC,GAAKa,EAAKlF,GAClDyE,EAAKhD,GAAe/C,EAAKC,EAAKsD,EAAKC,EAAKmC,GAAKa,EAAKlF,GAElDmE,EAAQjG,OAAOsG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCuG,EAAMvD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIvN,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,KAAM/B,GACpGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIoC,EAAKpO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,KAK7EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIQ,EAAKD,EAAK5E,GArBImE,EAAQjG,OAAOmD,EAAKC,EAsB/D,MAhHqB6C,EAAQnG,OAAO,EAAG,GAoHvC,GAFAmG,EAAQlG,YAEJmG,EAAQ,OAAOD,EAAU,KAAMC,EAAS,IAAM,IACpD,CAwCA,OAtCA5E,EAAIqG,SAAW,WACb,IAAI3X,IAAMuS,EAAY6D,MAAM5yB,KAAM6yB,aAAc5D,EAAY2D,MAAM5yB,KAAM6yB,YAAc,EAClFuB,IAAMjF,EAAWyD,MAAM5yB,KAAM6yB,aAAcxD,EAASuD,MAAM5yB,KAAM6yB,YAAc,EAAI,GAAK,EAC3F,MAAO,CAAC1E,GAAIiG,GAAK5X,EAAG6R,GAAI+F,GAAK5X,EAC/B,EAEAsR,EAAIiB,YAAc,SAAS3C,GACzB,OAAOyG,UAAU5yB,QAAU8uB,EAA2B,mBAAN3C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOiB,CAC9F,EAEAjB,EAAImB,YAAc,SAAS7C,GACzB,OAAOyG,UAAU5yB,QAAUgvB,EAA2B,mBAAN7C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOmB,CAC9F,EAEAnB,EAAIwE,aAAe,SAASlG,GAC1B,OAAOyG,UAAU5yB,QAAUqyB,EAA4B,mBAANlG,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOwE,CAC/F,EAEAxE,EAAI0E,UAAY,SAASpG,GACvB,OAAOyG,UAAU5yB,QAAUuyB,EAAiB,MAALpG,EAAY,KAAoB,mBAANA,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAO0E,CAC/G,EAEA1E,EAAIqB,WAAa,SAAS/C,GACxB,OAAOyG,UAAU5yB,QAAUkvB,EAA0B,mBAAN/C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOqB,CAC7F,EAEArB,EAAIuB,SAAW,SAASjD,GACtB,OAAOyG,UAAU5yB,QAAUovB,EAAwB,mBAANjD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOuB,CAC3F,EAEAvB,EAAIyB,SAAW,SAASnD,GACtB,OAAOyG,UAAU5yB,QAAUsvB,EAAwB,mBAANnD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOyB,CAC3F,EAEAzB,EAAI2E,QAAU,SAASrG,GACrB,OAAOyG,UAAU5yB,QAAWwyB,EAAe,MAALrG,EAAY,KAAOA,EAAI0B,GAAO2E,CACtE,EAEO3E,CACT,CC3DwB,IAENqE,EAAmB9xB,SAASiR,gBAAgB,GAAO,SACxC7F,aAAa,YAAa,oBAC3C0mB,EAAiB1mB,aAAa,OAAQwc,EAAO4J,YAC7CM,EAAiB1mB,aAAa,eAAgB,OAC9C0mB,EAAiB1mB,aAAa,IAAK,UAAGqiB,EAAIuE,MACpCD,EAAiB/xB,SAASiR,gBAAgB,GAAO,SACxC7F,aAAa,YAAa,oBACzC2mB,EAAe3mB,aAAa,OAAQwc,EAAO6J,UAC3CM,EAAe3mB,aAAa,eAAgB,KAC5C2mB,EAAe3mB,aACb,IACA,UAAGqiB,EAAI,SACFuE,GAAQ,CACXhD,SAAUgD,EAAShD,UAAYyC,EAAW,UAI9CpR,EAAIH,OAAO4R,EAAkBC,E,CAI/B,IAAM3b,EAQN,IARMA,EAAOpW,SAASiR,gBAAgB,GAAO,SACxC7F,aAAa,cAAe,UACjCgL,EAAKhL,aAAa,qBAAsB,UACxCgL,EAAKhL,aAAa,YAAa,MAC/BgL,EAAKhL,aAAa,cAAe,QACjCgL,EAAKhL,aAAa,cAAe,QACjCgL,EAAKhL,aAAa,OAAQwc,EAAOxR,MAEJ,UAAzBzW,KAAKqE,MAAMinB,WAA6C,MAApBtrB,KAAKqE,MAAMoF,MAEjD,GAAIzJ,KAAKqE,MAAMgL,MAAQrP,KAAKqE,MAAMgL,KAAKpP,OAAS,EAAG,CACjD,IAAMwJ,EAAQpJ,SAASiR,gBAAgB,GAAO,SAC9C7H,EAAMgC,aAAa,IAAK,KACxBhC,EAAMgC,aAAa,KAAM,OACzBhC,EAAMgF,YAAc,UAAGmjB,GACvBnoB,EAAM5B,MAAMkiB,SAAW,MACvB,IAAM1a,EAAOhP,SAASiR,gBAAgB,GAAO,SAC7CjC,EAAK5D,aAAa,IAAK,KACvB4D,EAAK5D,aAAa,KAAM,OACxB4D,EAAKZ,YAAc,UAAGzO,KAAKqE,MAAMgL,MACjCA,EAAKxH,MAAMkiB,SAAW,MACtBtT,EAAK8J,OAAO9W,EAAO4F,GACnBoH,EAAKhL,aAAa,YAAa,mB,MAE/BgL,EAAKhI,YAAc,UAAGmjB,GACtBnb,EAAK5O,MAAMkiB,SAAW,MACtBtT,EAAKhL,aAAa,YAAa,yBAIjCgL,EAAKhI,YAAc,UAAGqjB,EAAQ,KAC9Brb,EAAKhL,aAAa,YAAa,oBAGjCiV,EAAIH,OAAO9J,GAcjB,OAR+B,IAA7BzW,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,gBAEX8S,EAAIjV,aAAa,UAAW,OAGlB,OAARiV,GAActgB,EAAQmgB,OAAOG,GAE1BtgB,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,IACQ,IAA7BJ,KAAK2G,KAAKT,gBACZlG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAElD7F,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMU,YAAAnC,cAAV,SAAwBnB,EAAeC,GACH,iBAA9BjG,KAAKqE,MAAMmtB,eACb,YAAMrqB,cAAa,UAACnB,EAAO,IAE3B,YAAMmB,cAAa,UAACnB,EAAOA,EAE/B,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnB,EAAOA,GAC1B,IAAIC,EAASjG,KAAKqE,MAAMqtB,UAAY,EACF,iBAA9B1xB,KAAKqE,MAAMmtB,iBACbvrB,EAAS,IAEX,YAAMiE,SAAQ,aAAC,MACVlK,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,IAEV,EAEQ,YAAA8rB,YAAR,WACE,IAAMN,EAAWzxB,KAAKqE,MAAMotB,UAAY,EAClCC,EAAW1xB,KAAKqE,MAAMqtB,UAAY,IAClCjoB,EAA4B,MAApBzJ,KAAKqE,MAAMoF,MAAgB,EAAIzJ,KAAKqE,MAAMoF,MAExD,OAAIA,GAASgoB,EAAiB,EACrBhoB,GAASioB,EAAiB,IACvBliB,KAAK6kB,OAAQ5qB,EAAQgoB,IAAaC,EAAWD,GAAa,IACxE,EACF,EA7NA,CAAwCnU,EAAA,I,wwBCtEjC,SAASgX,GAAoBvzB,GAClC,GAAsB,OAAlBA,EAAK+b,UACP,GACiC,iBAAxB/b,EAAKgc,gBACqB,IAAjChc,EAAK+b,SAASC,eAEd,MAAM,IAAIrZ,UAAU,kCAGtB,IAAI,QAAc3C,EAAKwzB,cACrB,MAAM,IAAI7wB,UAAU,kCAIxB,GAAyC,QAArC,QAAW3C,EAAKyzB,UAAW,MAC7B,MAAM,IAAI9wB,UAAU,uBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACN6xB,UAAWzzB,EAAKyzB,UAChB1X,UAAU,QAAiB/b,EAAK+b,SAAU,MAC1CC,gBAAgB,QAAiBhc,EAAKgc,eAAgB,MACtDwX,cAAc,QAAiBxzB,EAAKwzB,aAAc,OAEtD,CAEA,gC,8CA8CA,QA9CqC,QAC5B,YAAAhtB,iBAAP,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAmBvC,OAlBAF,EAAQG,UAAY,UAEc,OAA9BP,KAAKqE,MAAM0Y,gBACb3c,EAAQyH,MAAMgqB,WAAa,cAAO7xB,KAAKqE,MAAM0Y,eAAc,eAC3D3c,EAAQyH,MAAMuV,eAAiB,UAC/Bhd,EAAQyH,MAAMwV,mBAAqB,SACH,OAA5Brd,KAAKqE,MAAMkwB,eACbn0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMkwB,iBAGS,OAA5Bv0B,KAAKqE,MAAMkwB,eACpBn0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMkwB,eAGvCn0B,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACS,OAA9BJ,KAAKqE,MAAM0Y,gBACb3c,EAAQyH,MAAMgqB,WAAa,cAAO7xB,KAAKqE,MAAM0Y,eAAc,eAC3D3c,EAAQyH,MAAMuV,eAAiB,UAC/Bhd,EAAQyH,MAAMwV,mBAAqB,SACH,OAA5Brd,KAAKqE,MAAMkwB,eACbn0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMkwB,gBAG5Bn0B,EAAQkJ,UAAY,IACiB,OAA5BtJ,KAAKqE,MAAMkwB,eACpBn0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMkwB,cAEhD,EACF,EA9CA,CAAqCjX,EAAA,I,orBClC9B,SAASmX,GAAqB1zB,GACnC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN8G,OAAO,QAAW1I,EAAK0I,MAAO,GAC9B6E,QAAQ,QAAcvN,EAAKuN,QAAU,UAAYvN,EAAKuN,OACtDomB,YAAY,QAAc3zB,EAAK2zB,YAAc,UAAY3zB,EAAK2zB,WAC9DlzB,OAAO,QAAcT,EAAKS,OAAS,GAAKT,EAAKS,MAC7CmzB,aAAa,QAAc5zB,EAAK4zB,aAAe,GAAK5zB,EAAK4zB,YACzDC,YAAY,QAAc7zB,EAAK6zB,YAAc,GAAK7zB,EAAK6zB,WACvDC,aAAa,QAAc9zB,EAAK8zB,aAAe,GAAK9zB,EAAK8zB,YACzDC,cAAc,QAAc/zB,EAAK+zB,cAC7B,UACA/zB,EAAK+zB,gBACN,QAAmB/zB,GAE1B,CAEA,I,GAAA,4B,8CAoTA,QApTsC,QAC1B,YAAAwG,iBAAV,WACE,IAAIwtB,EAAc,GACdC,EAAe,GACfC,EAAe,GACfC,EAAgB,GAEpB,GAA8B,KAA1Bl1B,KAAKqE,MAAMuwB,WAAmB,CAChC,IAAMA,EAAaO,KAAKC,MAAMp1B,KAAKqE,MAAMuwB,YAEtB,OAAfA,IAC4B,GAA1BA,EAAWS,aAA8C,GAA1BT,EAAWU,cAC5CP,EAAc/0B,KAAKu1B,UACjBX,EAAWS,YACXr1B,KAAKqE,MAAM2B,MAAQ,GAGnBgvB,EAD4B,GAA1BJ,EAAWU,YACEt1B,KAAKu1B,UAAU,IAAKv1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKu1B,UAClBX,EAAWU,YACXt1B,KAAKqE,MAAM2B,MAAQ,IAKM,GAA3B4uB,EAAWY,cAAgD,GAA3BZ,EAAWa,eAC7CR,EAAej1B,KAAKu1B,UAClBX,EAAWY,aACXx1B,KAAKqE,MAAM2B,MAAQ,GAGnBkvB,EAD6B,GAA3BN,EAAWa,aACGz1B,KAAKu1B,UAAU,IAAKv1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKu1B,UACnBX,EAAWa,aACXz1B,KAAKqE,MAAM2B,MAAQ,I,CAO7B,IACImJ,EADAumB,EAAU,GAIZ9lB,OAAO5P,KAAKqE,MAAMoF,SAAWzJ,KAAKqE,MAAMoF,OACxCzJ,KAAKqE,MAAMoF,MAAQ,GAAM,EAEzB0F,EAASnP,KAAKqE,MAAMoF,MAAMksB,QAAQ,IAGhCD,EAD6B,KAA3B11B,KAAKqE,MAAMwwB,YACH,KAEA70B,KAAK41B,UAAU51B,KAAKqE,MAAMoF,OAEtC0F,EAAS,IAAIoG,KAAKyc,aAAa,KAAM,CACnC6D,yBAA0B,EAC1BC,sBAAuB,IACtBlgB,OAAO5V,KAAKqE,MAAMoF,QAGvB,IAAIssB,EAAO5mB,EAAO6mB,MAAM,WACX,OAATD,IACF5mB,EAAS4mB,EAAK,IAGhB,IAAME,EAASj2B,KAAKk2B,UAAUl2B,KAAKqE,MAAMoF,OAErC2D,EAAkB/M,SAASuI,eAC7B,4BAGsB,OAApBwE,IACFA,EAAkB/M,SAASuI,eACzB,mCAA4B5I,KAAKqE,MAAMF,UAIE,IAAzCiJ,EAAgBvF,MAAMuF,kBACxBA,EAAgBvF,MAAMuF,gBAAkB,QAG1C,IAAM+oB,EAA4B,GAAnBn2B,KAAKqE,MAAM2B,MAEpB5F,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,YAGW,IAA7BP,KAAKqE,MAAMsJ,gBACmB,IAA9B3N,KAAKqE,MAAMuJ,iBAEXxN,EAAQyH,MAAMgG,QAAU,OAI1B,IAAMuoB,EAAoB/1B,SAASC,cAAc,OACjD81B,EAAkB71B,UAAY,qBAG9B,IAAM81B,EAAYh2B,SAASC,cAAc,OACzC+1B,EAAU91B,UAAY,aACtB81B,EAAUxuB,MAAMuF,gBAAkB,UAAGA,EAAgBvF,MAAMuF,iBAG3D,IAAMkpB,EAAYj2B,SAASC,cAAc,OACzCg2B,EAAU/1B,UAAY,aACtB+1B,EAAUzzB,GAAK,oBAAa7C,KAAKqE,MAAMxB,IACvCyzB,EAAUzuB,MAAMuF,gBAAkB,UAAGpN,KAAKqE,MAAMiK,QAGhD,IAAMioB,EAAYl2B,SAASC,cAAc,OACzCi2B,EAAUh2B,UAAY,aAGtB,IAAMi2B,EAASn2B,SAASC,cAAc,OACtCk2B,EAAOj2B,UAAY,aAEnB,IAAMk2B,EAAS,6BAEf,GAAmB,IAAf1B,EAAmB,CACrB,IAAM2B,EAAar2B,SAASiR,gBAAgBmlB,EAAQ,OACpDC,EAAWC,eAAe,KAAM,QAAS,QACzCD,EAAWC,eAAe,KAAM,SAAU,QAC1CD,EAAWC,eAAe,KAAM,QAAS,+BACzC,IAAMC,EAAcv2B,SAASiR,gBAAgBmlB,EAAQ,QACrDG,EAAYD,eAAe,KAAM,KAAM,qBAAc32B,KAAKqE,MAAMxB,KAChE+zB,EAAYD,eACV,KACA,IACA,WAAI32B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAI+uB,EAAW,YAAI/0B,KAChEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUgvB,EAAY,MAElE4B,EAAYD,eAAe,KAAM,QAAS,eAC1CD,EAAW91B,YAAYg2B,GACvBR,EAAkBx1B,YAAY81B,E,CAIhC,GAAoB,IAAhBzB,EAAoB,CACtB,IAAM4B,EAAcx2B,SAASiR,gBAAgBmlB,EAAQ,OACrDI,EAAYF,eAAe,KAAM,QAAS,QAC1CE,EAAYF,eAAe,KAAM,SAAU,QAC3CE,EAAYF,eAAe,KAAM,QAAS,+BAC1C,IAAMG,EAAez2B,SAASiR,gBAAgBmlB,EAAQ,QACtDK,EAAaH,eAAe,KAAM,KAAM,sBAAe32B,KAAKqE,MAAMxB,KAClEi0B,EAAaH,eACX,KACA,IACA,WAAI32B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIivB,EAAY,YAAIj1B,KACjEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUkvB,EAAa,MAEnE4B,EAAaH,eAAe,KAAM,OAAQ,WAC1CE,EAAYj2B,YAAYk2B,GACxBV,EAAkBx1B,YAAYi2B,E,CAIhC,IAAME,EAAK12B,SAASC,cAAc,MAClCy2B,EAAGC,UAAY7nB,EAASumB,EACxBqB,EAAGlvB,MAAMkiB,SAAW,UAAY,IAAToM,EAAa,MACpCY,EAAGlvB,MAAM6G,MAAQ,UAAG1O,KAAKqE,MAAMiK,QAC/ByoB,EAAGlvB,MAAMovB,WAAa,IAEtB,IAAMC,EAAK72B,SAASC,cAAc,MACV,IAApBN,KAAKqE,MAAM7C,MACb01B,EAAGzoB,YAAczO,KAAKm3B,cAAcn3B,KAAKqE,MAAMyF,YAE/CotB,EAAGzoB,YAAczO,KAAKm3B,cAAcn3B,KAAKqE,MAAM7C,OAEjD01B,EAAG11B,MAAQxB,KAAKqE,MAAMswB,YACtBuC,EAAGzrB,aAAa,QAASzL,KAAKqE,MAAMswB,aAEpCuC,EAAGrvB,MAAMkiB,SAAW,UAAY,IAAToM,EAAa,MACpCe,EAAGrvB,MAAM6G,MAAQ,UAAG1O,KAAKqE,MAAMqwB,YAC/BwC,EAAGrvB,MAAMovB,WAAa,IAEtB,IAAIG,EAAS/2B,SAASC,cAAc,UACpC82B,EAAOz0B,KAAO,kBACdy0B,EAAOC,OAAS,WACdf,EAAUzuB,MAAMoe,UAAY,iBAAUgQ,EAAM,QAC9C,EACA,IAAIqB,EAAcpiB,OAAOqiB,SAASC,SAASlS,MAAM,KAAK,GAWtD,OAVA8R,EAAOrpB,IAAM,UAAG1N,SAASo3B,IAAG,YAAIH,EAAW,yCAC3CjB,EAAUz1B,YAAYm2B,GACtBV,EAAUz1B,YAAYs2B,GACtBd,EAAkBx1B,YAAY01B,GAC9BF,EAAkBx1B,YAAY21B,GAC9BH,EAAkBx1B,YAAY41B,GAC9BJ,EAAkBx1B,YAAYy1B,GAC9BD,EAAkBx1B,YAAYw2B,GAC9Bh3B,EAAQQ,YAAYw1B,GAEbh2B,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GAA3B,WACEA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,UAE5C,IAAI2sB,EAASj2B,KAAKk2B,UAAUl2B,KAAKqE,MAAMoF,OAEjCitB,EAAar2B,SAASuI,eAAe,qBAAc5I,KAAKqE,MAAMxB,KAClD,MAAd6zB,IACFA,EAAW7uB,MAAM6vB,QAAU,QAG7B,IAAMb,EAAcx2B,SAASuI,eAAe,sBAAe5I,KAAKqE,MAAMxB,KACnD,MAAfg0B,IACFA,EAAYhvB,MAAM6vB,QAAU,QAG9B1pB,YAAW,WACS,MAAd0oB,IACFA,EAAW7uB,MAAM6vB,QAAU,SAGV,MAAfb,IACFA,EAAYhvB,MAAM6vB,QAAU,SAG9B,IAAIpB,EAAYj2B,SAASuI,eAAe,oBAAa,EAAKvE,MAAMxB,KAC5DyzB,IACFA,EAAUzuB,MAAMoe,UAAY,iBAAUgQ,EAAM,SAEhD,GAAG,IACL,EAEU,YAAA9uB,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAAQ,EACrC,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAChC,EAEQ,YAAAkwB,UAAR,SAAkBzsB,GAChB,IAAIwsB,EAAS,EACb,GAA+B,KAA3Bj2B,KAAKqE,MAAMwwB,YACboB,EAASxsB,EAAQ,EAAI,QAChB,CACL,IAAMkuB,EAASxC,KAAKC,MAAMp1B,KAAKqE,MAAMwwB,aACrC,GAAI8C,EAAY,MAAMluB,EACpBwsB,EAAS,OACJ,GAAI0B,EAAY,MAAMluB,EAC3BwsB,EAAS,OACJ,CACL,IAAM2B,EAAQD,EAAY,IAAIA,EAAY,IAE1C1B,GAAU,IAAkB,KADX0B,EAAY,IAAIluB,GACEmuB,GAAS,IAAM,C,EAItD,OAAO3B,CACT,EAEQ,YAAAL,UAAR,SAAkBnsB,GAChB,IAAIouB,EAAS,GACP53B,GAAUwJ,EAAQ,IAAIxJ,OAW5B,OAVIA,EAAS,GAAKA,GAAU,EAC1B43B,EAAS,KACA53B,EAAS,GAAKA,GAAU,EACjC43B,EAAS,KACA53B,EAAS,GAAKA,GAAU,GACjC43B,EAAS,KACA53B,EAAS,IAAMA,GAAU,KAClC43B,EAAS,MAGJA,CACT,EAEQ,YAAAtC,UAAR,SAAkBG,EAAiBoC,GACjC,GAA+B,KAA3B93B,KAAKqE,MAAMwwB,YAAoB,CACjC,IAAM8C,EAASxC,KAAKC,MAAMp1B,KAAKqE,MAAMwwB,aACrC,GAAI8C,EAAY,MAAMjC,EACpBA,EAAU,OACL,GAAIiC,EAAY,MAAMjC,GAAuB,MAAZA,EACtCA,EAAU,QACL,CACL,IAAMkC,EAAQD,EAAY,IAAIA,EAAY,IAE1CjC,EAAU,IAAkB,KADbiC,EAAY,IAAIjC,GACIkC,C,EAIvClC,EAAU,IAAgB,IAAVA,EAChB,IAAMrwB,EAAIyyB,EAAQtoB,KAAK2e,IAAKuH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EAClDxyB,EAAIwyB,EAAQtoB,KAAK6e,IAAKqH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EACxD,MAAO,UAAGzyB,EAAC,YAAIC,EACjB,EAEQ,YAAA6xB,cAAR,SAAsB31B,GACpB,GAAa,MAATA,GAAiBA,EAAMvB,OAAS,GAAI,CACtC,IAAM83B,EAAav2B,EAAMvB,OAAS,EAC5B+3B,EAAOD,EAAa,EACpBE,EAAez2B,EAAMkR,OAAO,EAAGqlB,EAAaC,GAC5CE,EAAc12B,EAAMkR,OAAOqlB,EAAaC,GAE9C,MAAO,UAAGC,EAAY,cAAMC,E,CAE5B,OAAO12B,CAEX,EACF,EApTA,CAAsC8b,EAAA,I,qPCuDtC,SAAS6a,GAAYp3B,GACnB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,OAAQf,GACN,KAAK,EACH,OAAOka,EAAwB9b,GACjC,KAAK,EACH,OAAO,QAAwBA,GACjC,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAOwqB,GAAwBxqB,GACjC,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAOwwB,GAAuBxwB,GAChC,KAAK,EACH,OAAOqqB,GAAkBrqB,GAC3B,KAAK,EACH,OAAOwc,EAAiBxc,GAC1B,KAAK,GACH,OAAOuzB,GAAoBvzB,GAC7B,KAAK,GACH,OAAOulB,EAAkBvlB,GAC3B,KAAK,GACH,OAAO+pB,GAAgB/pB,GACzB,KAAK,GACH,OAAOqgB,EAAiBrgB,GAC1B,KAAK,GACH,OAAO,QAA0BA,GACnC,KAAK,GACH,OAAO,QAAuBA,GAChC,KAAK,GACH,OAAO,QAAsBA,GAC/B,KAAK,GACH,OAAO+lB,EAAkB/lB,GAC3B,KAAK,GACH,OAAO6c,EAAuB7c,GAChC,KAAK,GACH,OAAO6jB,EAAwB7jB,GACjC,KAAK,GACH,OAAO0zB,GAAqB1zB,GAC9B,KAAK,GACH,OAAO,QAAuBA,GAChC,QACE,MAAM,IAAI2C,UAAU,qBAE1B,CAkEA,I,GAAA,WA4bE,WACEoH,EACAzG,EACA+zB,GAHF,WAtbQ,KAAAC,aAEJ,CAAC,EAEG,KAAAC,WAAgC,GAEhC,KAAAC,UAEJ,CAAC,EAGG,KAAAC,UAEJ,CAAC,EAEG,KAAA1U,MAEJ,CAAC,EAGY,KAAAnf,kBAAoB,IAAIke,EAAA,EAExB,KAAAje,qBAAuB,IAAIie,EAAA,EAE3B,KAAAhe,kBAAoB,IAAIge,EAAA,EAExB,KAAAD,sBAAwB,IAAIC,EAAA,EAE5B,KAAA9d,oBAAsB,IAAI8d,EAAA,EAE1B,KAAA3d,6BAA+B,IAAI2d,EAAA,EAInC,KAAA1d,YAA4B,GAMrC,KAAAszB,mBAAkD,SAAA11B,GACxD,EAAK4B,kBAAkBvD,KAAK2B,EAE9B,EAMQ,KAAA21B,sBAAqD,SAAA31B,GAC3D,EAAK6B,qBAAqBxD,KAAK2B,EAEjC,EAMQ,KAAA41B,sBAAqD,SAAA51B,GAE3D,IAAM61B,EAAS71B,EAAE8C,KAAKxB,MAAMxB,GACV,EAAKg2B,iBAAiBD,GAE9Bj4B,SAAQ,SAAAm4B,GACZA,EAAS/0B,WAAa60B,EAExBE,EAASnV,KAAKtf,MAAQ,SACjBy0B,EAASnV,KAAKtf,OAAK,CACtBgd,cAAe,EAAK0X,gBAAgBh2B,EAAE2C,YAAa3C,EAAE8C,QAE9CizB,EAASE,UAAYJ,IAE9BE,EAASnV,KAAKtf,MAAQ,SACjBy0B,EAASnV,KAAKtf,OAAK,CACtBmd,YAAa,EAAKuX,gBAAgBh2B,EAAE2C,YAAa3C,EAAE8C,QAGzD,IAGA,EAAKozB,qBAAqBl2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAGzD,EAMQ,KAAAwzB,8BAA6D,SAAAn2B,GACnE,EAAK8B,kBAAkBzD,KAAK2B,GAE5B,EAAKk2B,qBAAqBl2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAEzD,EA+BQ,KAAAyzB,kCAEI,SAAAp2B,GAEV,EAAKq2B,YAAYr2B,EAAE8C,MAGnB,EAAK+c,sBAAsBxhB,KAAK2B,EAGlC,EAMQ,KAAAs2B,wBAAyD,SAAAt2B,GAE/D,IAAM8C,EAAO9C,EAAE8C,KACTxB,EAAQwB,EAAKxB,MACbu0B,EAASv0B,EAAMxB,GACf01B,EAAY,EAAKM,iBAAiBD,GAElC3sB,EAAW,CACf5G,EAAGhB,EAAMgB,EACTC,EAAGjB,EAAMiB,GAGLqB,EAAO,EAAK0xB,aAAaO,GAAQjyB,KAEvC,EAAK0xB,aAAaO,GAAQjyB,KAAO,SAC5BA,GAAI,CACPoC,YAAY,IAGdwvB,EAAU53B,SAAQ,SAAAm4B,GACZA,EAAS/0B,WAAa60B,EAExBE,EAASnV,KAAKtf,MAAQ,SACjBy0B,EAASnV,KAAKtf,OAAK,CACtBgd,cAAe,EAAK0X,gBAAgB9sB,EAAUpG,KAEvCizB,EAASE,UAAYJ,IAE9BE,EAASnV,KAAKtf,MAAQ,SACjBy0B,EAASnV,KAAKtf,OAAK,CACtBmd,YAAa,EAAKuX,gBAAgB9sB,EAAUpG,KAGlD,GAGF,EAMQ,KAAAyzB,gCAEI,SAAAv2B,GACV,EAAKgC,oBAAoB3D,KAAK2B,EAEhC,EAMQ,KAAAw2B,oBAAoD,SAAAx2B,GAE1D,EAAKu1B,WAAa,EAAKA,WAAWn2B,QAAO,SAAAU,GAAM,OAAAA,IAAOE,EAAE8C,KAAKxB,MAAMxB,EAApB,WACxC,EAAKw1B,aAAat1B,EAAE8C,KAAKxB,MAAMxB,IACtC,EAAK22B,eAAez2B,EAAE8C,KAAKxB,MAAMxB,GACnC,EAMQ,KAAA42B,8BAEI,SAAA12B,GACN,EAAK22B,SAASv3B,QAAO,SAAA0D,GAAQ,OAAwB,GAAxBA,EAAKc,KAAKC,UAAV,IAA8B3G,OAAS,EACtE8C,EAAE0H,UAAW,EAEb1H,EAAE0H,UAAW,EAEf,EAAKvF,6BAA6B9D,KAAK2B,EACzC,EAGQ,KAAA42B,qBAAgD,WACtD,EAAKC,eACP,EAgOE55B,KAAK65B,aAAe/uB,EACpB9K,KAAK85B,OAxeF,SACL/4B,GAIE,IAAA8B,EAQE9B,EAAI,GAPNpB,EAOEoB,EAAI,KANNwlB,EAMExlB,EAAI,QALNg5B,EAKEh5B,EAAI,cAJNqM,EAIErM,EAAI,gBAHNi5B,EAGEj5B,EAAI,WAFNk5B,EAEEl5B,EAAI,kBADN8H,EACE9H,EAAI,gBAER,GAAU,MAAN8B,GAAcW,MAAMC,SAASZ,IAC/B,MAAM,IAAIa,UAAU,eAEtB,GAAoB,iBAAT/D,GAAqC,IAAhBA,EAAKM,OACnC,MAAM,IAAIyD,UAAU,iBAEtB,GAAe,MAAX6iB,GAAmB/iB,MAAMC,SAAS8iB,IACpC,MAAM,IAAI7iB,UAAU,qBAGtB,OAAO,IACLb,GAAIY,SAASZ,GACblD,KAAI,EACJ4mB,QAAS9iB,SAAS8iB,GAClBwT,eAAe,QAAiBA,EAAe,MAC/C3sB,iBAAiB,QAAiBA,EAAiB,MACnD4sB,YAAY,QAAaA,GACzBC,mBAAmB,QAAWA,EAAmB,GACjDpxB,gBAAiBA,IACd,QAAiB9H,GAExB,CAockBm5B,CAA0B71B,GAGxCrE,KAAKqK,UAGL+tB,EAAQA,EAAM+B,MAAK,SAAS/F,EAAGgG,GAC7B,OAAY,MAARhG,EAAEvxB,IAAsB,MAARu3B,EAAEv3B,GAAmB,EAChCuxB,EAAEvxB,GAAKu3B,EAAEv3B,GAAW,GAChB,CACf,KAGMlC,SAAQ,SAAAkF,GAAQ,SAAKw0B,WAAWx0B,EAAM,EAAtB,IAGtB7F,KAAKs6B,iBAGLt6B,KAAK05B,SAAS/4B,SAAQ,SAAAkF,GAChBA,aAAgB,GAClB,EAAKuzB,YAAYvzB,EAErB,IAEA7F,KAAK65B,aAAa/2B,iBAAiB,QAAS9C,KAAK25B,qBACnD,CAytBF,OAzkCU,YAAAY,kBAAR,SAA0Bl1B,EAAWC,EAAWjB,GAC9C,OACgB,IAAdA,EAAM1B,MACQ,IAAd0B,EAAM1B,MAMN0C,EAAIhB,EAAMgB,GACVA,EAAIhB,EAAMgB,EAAIhB,EAAM2B,OACpBV,EAAIjB,EAAMiB,GACVA,EAAIjB,EAAMiB,EAAIjB,EAAM4B,MAKxB,EA2GU,YAAAmzB,YAAV,SAAsB7T,GACpB,IAAI5B,EAAe4B,EAAElhB,MAAMxB,GACvB23B,EAAc,EACdC,EAAY,EAEhB,IACE,IAAK,IAAIxvB,KAAKjL,KAAKq4B,aAEfr4B,KAAKu6B,kBACHhV,EAAElhB,MAAMgd,cAAchc,EACtBkgB,EAAElhB,MAAMgd,cAAc/b,EACtBtF,KAAKq4B,aAAaptB,GAAG5G,SAIvBm2B,EAAc/2B,SAASwH,IAIvBjL,KAAKu6B,kBACHhV,EAAElhB,MAAMmd,YAAYnc,EACpBkgB,EAAElhB,MAAMmd,YAAYlc,EACpBtF,KAAKq4B,aAAaptB,GAAG5G,SAIvBo2B,EAAYh3B,SAASwH,IAyEzB,IAAK,IAAIA,KArEa,MAAlBjL,KAAKw4B,YACPx4B,KAAKw4B,UAAY,CAAC,GAGF,MAAdx4B,KAAK8jB,QACP9jB,KAAK8jB,MAAQ,CAAC,GAGZ0W,GAAe7W,IACjB6W,EAAc,GAGZC,GAAa9W,IACf8W,EAAY,GAIU,MAApBz6B,KAAK8jB,MAAMH,KACb3jB,KAAK8jB,MAAMH,GAAQ,CACjBc,MAAO+V,EACP9V,IAAK+V,IAKLD,EAAc,GAEmB,MAA/Bx6B,KAAKw4B,UAAUgC,KACjBx6B,KAAKw4B,UAAUgC,GAAe,CAAC,GAIjCx6B,KAAKw4B,UAAUgC,GAAa7W,GAAQ,CAClCc,MAAO+V,EACP9V,IAAK+V,IAMHz6B,KAAK8jB,MAAMH,GAAa,MAAI,IAC9B3jB,KAAKw4B,UAAUx4B,KAAK8jB,MAAMH,GAAa,OAAGA,GAAa,MAAI,EAC3D3jB,KAAK8jB,MAAMH,GAAa,MAAI,GAI5B8W,EAAY,GACmB,MAA7Bz6B,KAAKw4B,UAAUiC,KACjBz6B,KAAKw4B,UAAUiC,GAAa,CAAC,GAG/Bz6B,KAAKw4B,UAAUiC,GAAW9W,GAAQ,CAChCc,MAAO+V,EACP9V,IAAK+V,IAIHz6B,KAAK8jB,MAAMH,GAAW,IAAI,IAC5B3jB,KAAKw4B,UAAUx4B,KAAK8jB,MAAMH,GAAW,KAAGA,GAAW,IAAI,EACvD3jB,KAAK8jB,MAAMH,GAAW,IAAI,GAI9B3jB,KAAK8jB,MAAMH,GAAQ,CACjBc,MAAO+V,EACP9V,IAAK+V,GAIOz6B,KAAKw4B,UACbx4B,KAAKw4B,UAAUvtB,GAAG0Y,KAEe,GAAjC3jB,KAAKw4B,UAAUvtB,GAAG0Y,GAAMc,OACO,GAA/BzkB,KAAKw4B,UAAUvtB,GAAG0Y,GAAMe,aAGjB1kB,KAAKw4B,UAAUvtB,GAAG0Y,GAEqB,IAA1C5H,OAAO2e,KAAK16B,KAAKw4B,UAAUvtB,IAAIhL,eAC1BD,KAAKw4B,UAAUvtB,KAKvBjL,KAAKw4B,UAAUvtB,GAAG0Y,GAAMc,OAAS+V,GAChCx6B,KAAKw4B,UAAUvtB,GAAG0Y,GAAMe,KAAO+V,GAChCz6B,KAAKw4B,UAAUvtB,GAAG0Y,GAAMc,OAAS+V,GAChCx6B,KAAKw4B,UAAUvtB,GAAG0Y,GAAMe,KAAO+V,YAG1Bz6B,KAAKw4B,UAAUvtB,GAAG0Y,GAEqB,IAA1C5H,OAAO2e,KAAK16B,KAAKw4B,UAAUvtB,IAAIhL,eAC1BD,KAAKw4B,UAAUvtB,I,CAK9B,MAAOsJ,GACP6R,QAAQ7R,MAAMA,E,CAElB,EAUU,YAAA0kB,qBAAV,SAA+BpzB,EAAiB80B,EAAcC,GAA9D,WACiC,MAA3B56B,KAAKw4B,UAAU3yB,EAAKhD,MAIxBkZ,OAAO2e,KAAK16B,KAAKw4B,UAAU3yB,EAAKhD,KAAKlC,SAAQ,SAAAsK,GAC3C,IAAI4vB,EAASp3B,SAASwH,GAEtB,IAAe,IADD,EAAKqtB,WAAWzmB,QAAQgpB,GACtC,CAGA,IAAIlX,EAAO,EAAK0U,aAAawC,GAC7B,GAAIlX,EAAKtf,MAAO,CACd,IAAIid,EAASqC,EAAKtf,MAAMgd,cAAchc,EAClCkc,EAASoC,EAAKtf,MAAMgd,cAAc/b,EAClCmc,EAAOkC,EAAKtf,MAAMmd,YAAYnc,EAC9Bqc,EAAOiC,EAAKtf,MAAMmd,YAAYlc,EAE9BO,EAAKhD,IAAM,EAAK21B,UAAU3yB,EAAKhD,IAAIg4B,GAAe,QACpDvZ,EAASqZ,EAAGt1B,EAAIQ,EAAKG,MAAQ,EAC7Bub,EAASoZ,EAAGr1B,EAAIO,EAAKI,OAAS,GAG5BJ,EAAKhD,IAAM,EAAK21B,UAAU3yB,EAAKhD,IAAIg4B,GAAa,MAClDpZ,EAAOkZ,EAAGt1B,EAAIQ,EAAKG,MAAQ,EAC3B0b,EAAOiZ,EAAGr1B,EAAIO,EAAKI,OAAS,GAI9B,EAAK60B,cAAc,SACdnX,EAAKtf,OAAK,CACbid,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,KAGJkZ,IAC8B,QAC9B,KACA,SAACG,GACC,EAAKnY,sBAAsBxhB,KAAK,CAC9ByE,KAAMk1B,EAAQpX,KACdtC,cAAe,CACbhc,EAAG01B,EAAQzZ,OACXhc,EAAGy1B,EAAQxZ,QAEbC,YAAa,CACXnc,EAAG01B,EAAQtZ,KACXnc,EAAGy1B,EAAQrZ,OAGjB,GAIFsZ,CAA0B,CACxBrX,KAAMA,EACNrC,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,G,EAId,IAGA1hB,KAAKs6B,eAAez0B,EAAKhD,GAAI83B,EAAGt1B,EAAIQ,EAAKG,MAAQ,EAAG20B,EAAGr1B,EAAIO,EAAKI,OAAS,GAC3E,EAwCA,sBAAW,uBAAQ,C,IAAnB,sBAEE,OAAOjG,KAAKs4B,WACT2C,KAAI,SAAAp4B,GAAM,SAAKw1B,aAAax1B,EAAlB,IACVV,QAAO,SAAAiqB,GAAK,OAAK,MAALA,CAAA,GACjB,E,gCAMO,YAAAiO,WAAP,SAAkBx0B,EAAiB4sB,QAAA,IAAAA,IAAAA,EAAA,MACjC,IACE,IAAMyI,EA3pBZ,SAA0Bn6B,GACxB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,IAAMiD,GAAO,QAAgB5F,GAE7B,OAAQ4B,GACN,KAAK,EACH,OAAO,IAAI,EAAYka,EAAwB9b,GAAO4F,GACxD,KAAK,EACH,OAAO,IAAIw0B,GAAA,GAAY,QAAwBp6B,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAO,IAAI,GAAY4kB,GAAwBxqB,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAO,IAAI,GAAW4qB,GAAuBxwB,GAAO4F,GACtD,KAAK,EACH,OAAO,IAAI,GAAMykB,GAAkBrqB,GAAO4F,GAC5C,KAAK,EACH,OAAO,IAAI,EAAK4W,EAAiBxc,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAI,GAAQ2tB,GAAoBvzB,GAAO4F,GAChD,KAAK,GACH,OAAO,IAAI,EAAM2f,EAAkBvlB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,GAAImkB,GAAgB/pB,GAAO4F,GACxC,KAAK,GACH,OAAO,IAAI,EAAKya,EAAiBrgB,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAIy0B,GAAA,GAAc,QAA0Br6B,GAAO4F,GAC5D,KAAK,GACH,OAAO,IAAI00B,GAAA,GAAW,QAAuBt6B,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAI20B,GAAA,GAAU,QAAsBv6B,GAAO4F,GACpD,KAAK,GACH,OAAO,IAAI,EAAMmgB,EAAkB/lB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,EAAWiX,EAAuB7c,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAI,EAAYie,EAAwB7jB,GAAO4F,GACxD,KAAK,GACH,OAAO,IAAI,GAAS8tB,GAAqB1zB,GAAO4F,GAClD,KAAK,GACH,OAAO,IAAI40B,GAAA,GAAW,QAAuBx6B,GAAO4F,GACtD,QACE,MAAM,IAAIjD,UAAU,kBAE1B,CAumB2B83B,CAAiB31B,GAyBtC,OAvBA4sB,EAAQ4F,aAAa6C,EAAa72B,MAAMxB,IAAMq4B,EAC9CzI,EAAQ6F,WAAWhsB,KAAK4uB,EAAa72B,MAAMxB,IAE3Cq4B,EAAatuB,SAAS6lB,EAAQ8G,qBAC9B2B,EAAaruB,mBAAmB4lB,EAAQgH,+BACxCyB,EAAa7uB,QAAQomB,EAAQgG,oBAC7ByC,EAAa3uB,WAAWkmB,EAAQiG,uBAG5BwC,aAAwB,GAC1BA,EAAavW,uBACX8N,EAAQ0G,mCAEVn5B,KAAKo5B,YAAY8B,KAEjBA,EAAa1uB,QAAQimB,EAAQkG,uBAC7BuC,EAAazuB,mBAAmBgmB,EAAQyG,+BACxCgC,EAAaxuB,UAAU+lB,EAAQ4G,yBAC/B6B,EAAavuB,iBAAiB8lB,EAAQ6G,kCAIxC7G,EAAQoH,aAAatZ,OAAO2a,EAAa12B,YAClC02B,C,CACP,MAAO3mB,GACP6R,QAAQ7R,MAAM,gCAAkCA,EAAgBknB,Q,CAGpE,EAMO,YAAAC,eAAP,SAAsBtD,GAAtB,WAEQuD,EAAUvD,EACb6C,KAAI,SAAAp1B,GAAQ,OAAAA,EAAKhD,IAAM,IAAX,IACZV,QAAO,SAAAU,GAAM,OAAM,MAANA,CAAA,IAEG7C,KAAKs4B,WAAWn2B,QAAO,SAAAU,GAAM,OAAA84B,EAAQ9pB,QAAQhP,GAAM,CAAtB,IAErClC,SAAQ,SAAAkC,GACY,MAAzB,EAAKw1B,aAAax1B,KACpB,EAAKw1B,aAAax1B,GAAIgI,gBACf,EAAKwtB,aAAax1B,GAE7B,IAEA7C,KAAKs4B,WAAaqD,EAGlBvD,EAAMz3B,SAAQ,SAAAkF,GACZ,GAAIA,EAAKhD,GACP,GAAkC,MAA9B,EAAKw1B,aAAaxyB,EAAKhD,IAEzB,EAAKw3B,WAAWx0B,QAGhB,IACE,EAAKwyB,aAAaxyB,EAAKhD,IAAIwB,MAAQ8zB,GAAYtyB,E,CAC/C,MAAO0O,GACP6R,QAAQ7R,MACN,6BACCA,EAAgBknB,Q,CAK3B,IAGAz7B,KAAKs6B,gBACP,EAMO,YAAAQ,cAAP,SAAqBj1B,GAEnB,IACE7F,KAAKq4B,aAAaxyB,EAAKhD,IAAIwB,MAAQ,MAC9B8zB,GAAYtyB,G,CAEjB,MAAO0O,GACP6R,QAAQ7R,MAAM,0BAA4BA,EAAgBknB,Q,CAI5Dz7B,KAAKs6B,gBACP,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,MAAKt6B,KAAK85B,OACnB,E,IAQA,SAAiB7vB,GACf,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAK85B,OAAS7vB,EAKdjK,KAAKqK,OAAOF,EACd,E,gCAMO,YAAAE,OAAP,SAAcF,QAAA,IAAAA,IAAAA,EAAA,MACRA,GACEA,EAAU4vB,gBAAkB/5B,KAAKqE,MAAM01B,gBACzC/5B,KAAK65B,aAAahyB,MAAMqV,gBACO,OAA7Bld,KAAKqE,MAAM01B,cACP,cAAO/5B,KAAKqE,MAAM01B,cAAa,KAC/B,IAE0B,MAA9B/5B,KAAKqE,MAAM+I,iBACTjD,EAAUiD,kBAAoBpN,KAAKqE,MAAM+I,kBAC3CpN,KAAK65B,aAAahyB,MAAMuF,gBAAkBpN,KAAKqE,MAAM+I,iBAErDpN,KAAKqG,YAAY8D,EAAWnK,KAAKqE,QACnCrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,UAG9CjG,KAAKqE,MAAM01B,gBACb/5B,KAAK65B,aAAahyB,MAAMqV,gBACO,OAA7Bld,KAAKqE,MAAM01B,cACP,cAAO/5B,KAAKqE,MAAM01B,cAAa,KAC/B,IAEJ/5B,KAAKqE,MAAM+I,kBACbpN,KAAK65B,aAAahyB,MAAMuF,gBAAkBpN,KAAKqE,MAAM+I,iBACvDpN,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEpD,EASO,YAAAI,YAAP,SAAmBF,EAAgBC,GACjC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOO,YAAAkB,cAAP,SAAqBnB,EAAeC,GAClCjG,KAAK65B,aAAahyB,MAAM7B,MAAQ,UAAGA,EAAK,MACxChG,KAAK65B,aAAahyB,MAAM5B,OAAS,UAAGA,EAAM,KAC5C,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKqE,MAAQ,SACRrE,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAKO,YAAA4E,OAAP,WACE7K,KAAKmF,YAAYxE,SAAQ,SAAAgb,GAAK,OAAAA,EAAE5P,SAAF,IAC9B/L,KAAK05B,SAAS/4B,SAAQ,SAAAoC,GAAK,OAAAA,EAAE8H,QAAF,IAC3B7K,KAAKq4B,aAAe,CAAC,EACrBr4B,KAAKs4B,WAAa,GAElBt4B,KAAKw5B,iBAELx5B,KAAK65B,aAAa5f,oBAAoB,QAASja,KAAK25B,sBAEpD35B,KAAK65B,aAAavwB,UAAY,EAChC,EAQO,YAAAgxB,eAAP,SAAsB1B,EAAiBvzB,EAAYC,GAAnD,WAEEtF,KAAKw5B,iBAELx5B,KAAK05B,SAAS/4B,SAAQ,SAAAkF,GACpB,GAA4B,OAAxBA,EAAKxB,MAAMN,SAAmB,CAChC,IAAM,EAAS,EAAKs0B,aAAaxyB,EAAKxB,MAAMN,UACtC63B,EAAQ,EAAKvD,aAAaxyB,EAAKxB,MAAMxB,IAEvC,GAAU+4B,IACEnzB,MAAVmwB,EACE/yB,EAAKxB,MAAMN,UAAY60B,EAEzB,EAAKiD,gBAAgB,EAAQD,EAAOv2B,EAAGC,GAC9BO,EAAKxB,MAAMxB,IAAM+1B,EAE1B,EAAKiD,gBAAgB,EAAQD,OAAOnzB,OAAWA,EAAWpD,EAAGC,GAE7D,EAAKu2B,gBAAgB,EAAQD,GAI/B,EAAKC,gBAAgB,EAAQD,G,CAIrC,GACF,EAMQ,YAAApC,eAAR,SAAuBZ,GACrB,GAAc,MAAVA,EACF,IAAK,IAAI/c,KAAO7b,KAAKu4B,UAAW,CAC9B,IAAMuD,EAAMjgB,EAAIyJ,MAAM,KAChBvhB,EAAW6L,OAAOnM,SAASq4B,EAAI,IAC/B9C,EAAUppB,OAAOnM,SAASq4B,EAAI,IAEhClD,IAAW70B,GAAY60B,IAAWI,IACpCh5B,KAAKu4B,UAAU1c,GAAKhR,gBACb7K,KAAKu4B,UAAU1c,G,MAI1B,IAAK,IAAIA,KAAO7b,KAAKu4B,UACnBv4B,KAAKu4B,UAAU1c,GAAKhR,gBACb7K,KAAKu4B,UAAU1c,EAG5B,EAQQ,YAAAkgB,gBAAR,SAAwBh4B,EAAkBi1B,GACxC,IAAM/3B,EAAa,UAAG8C,EAAQ,YAAIi1B,GAClC,OAAOh5B,KAAKu4B,UAAUt3B,IAAe,IACvC,EAGQ,YAAA43B,iBAAR,SACED,GAMA,IAAMoD,EAAgB,GAEtB,IAAK,IAAIngB,KAAO7b,KAAKu4B,UAAW,CAC9B,IAAMuD,EAAMjgB,EAAIyJ,MAAM,KAChBvhB,EAAW6L,OAAOnM,SAASq4B,EAAI,IAC/B9C,EAAUppB,OAAOnM,SAASq4B,EAAI,IAEhClD,IAAW70B,GAAY60B,IAAWI,GACpCgD,EAAc1vB,KAAK,CACjBvI,SAAQ,EACRi1B,QAAO,EACPrV,KAAM3jB,KAAKu4B,UAAU1c,I,CAK3B,OAAOmgB,CACT,EAQQ,YAAAjD,gBAAR,SACE9sB,EACA7L,GAEA,IAAIiF,EAAI4G,EAAS5G,EAAIjF,EAAQoE,WAAWy3B,YAAc,EAClD32B,EAAI2G,EAAS3G,EAAIlF,EAAQoE,WAAW03B,aAAe,EACvD,QACiC,IAAxB97B,EAAQiE,MAAMV,OACG,KAAxBvD,EAAQiE,MAAMV,OACU,OAAxBvD,EAAQiE,MAAMV,MAEd,OAAQvD,EAAQiE,MAAMf,eACpB,IAAK,KACHgC,EACE2G,EAAS3G,GACRlF,EAAQoE,WAAW03B,aAClB97B,EAAQqE,gBAAgBy3B,cACxB,EACJ,MACF,IAAK,OACH52B,EACE2G,EAAS3G,GACRlF,EAAQoE,WAAW03B,aAClB97B,EAAQqE,gBAAgBy3B,cACxB,EACJ,MACF,IAAK,QACH72B,EACE4G,EAAS5G,GACRjF,EAAQoE,WAAWy3B,YAClB77B,EAAQqE,gBAAgBw3B,aACxB,EACJ,MACF,IAAK,OACH52B,EACE4G,EAAS5G,GACRjF,EAAQoE,WAAWy3B,YAClB77B,EAAQqE,gBAAgBw3B,aACxB,EAIV,MAAO,CAAE52B,EAAC,EAAEC,EAAC,EACf,EAQQ,YAAAu2B,gBAAR,SACEtkB,EACAqkB,EACAO,EACAC,EACAC,EACAC,GAEA,IAAMr7B,EAAa,UAAGsW,EAAOlT,MAAMxB,GAAE,YAAI+4B,EAAMv3B,MAAMxB,IACnB,MAA9B7C,KAAKu4B,UAAUt3B,IACjBjB,KAAKu4B,UAAUt3B,GAAY4J,SAIzB,MAA2B7K,KAAK+4B,gBAAgBxhB,EAAOlT,MAAOkT,GAAzD+J,EAAM,IAAKC,EAAM,IACtB,EAAuBvhB,KAAK+4B,gBAAgB6C,EAAMv3B,MAAOu3B,GAApDna,EAAI,IAAKC,EAAI,IAGP,MAAXya,IACF7a,EAAS6a,GAGI,MAAXC,IACF7a,EAAS6a,GAGG,MAAVC,IACF5a,EAAO4a,GAGK,MAAVC,IACF5a,EAAO4a,GAIT,IAAM3Y,EAAO,IAAI,EACfvC,EAAiB,CACfve,GAAI,EACJF,KAAM,GACN2e,OAAM,EACNC,OAAM,EACNE,KAAI,EACJC,KAAI,EACJ1b,MAAO,EACPC,OAAQ,EACR0b,UAAW3hB,KAAKqE,MAAM41B,kBACtBvrB,OAAO,QAAiBktB,EAAMv3B,MAAMH,YAAa,WAEnD,QAAgB,CACdmQ,WAAY,IAAI3K,QAUpB,OANA1J,KAAKu4B,UAAUt3B,GAAc0iB,EAG7BA,EAAKnf,WAAWqD,MAAM00B,OAAS,IAC/Bv8B,KAAK65B,aAAatZ,OAAOoD,EAAKnf,YAEvBmf,CACT,EAMO,YAAA6Y,YAAP,SAAmBl7B,GAMjB,IAAMwK,EAAa9L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAA2wB,eAAP,SAAsBn7B,GAMpB,IAAMwK,EAAa9L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAA4wB,YAAP,SAAmBp7B,GAMjB,IAAMwK,EAAa9L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAA6wB,YAAP,SAAmBr7B,GAMjB,IAAMwK,EAAa9L,KAAK4iB,sBAAsBrhB,GAAGD,GAGjD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAA8wB,cAAP,SAAqBt7B,GAMnB,IAAMwK,EAAa9L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAMO,YAAA+wB,uBAAP,SACEv7B,GAOA,IAAMwK,EAAa9L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EAKO,YAAAgxB,eAAP,WACE98B,KAAK05B,SAAS/4B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAK65B,aAAalyB,UAAUC,IAAI,aAClC,EAKO,YAAAm1B,gBAAP,WACE/8B,KAAK05B,SAAS/4B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAK65B,aAAalyB,UAAUkD,OAAO,aACrC,EAKO,YAAAmyB,sBAAP,WACEh9B,KAAK05B,SAAS/4B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAK65B,aAAalyB,UAAUC,IAAI,kBAChC5H,KAAK65B,aAAalyB,UAAUkD,OAAO,aACrC,EAKO,YAAAoyB,uBAAP,WACEj9B,KAAK05B,SAAS/4B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAK65B,aAAalyB,UAAUkD,OAAO,kBACnC7K,KAAK65B,aAAalyB,UAAUC,IAAI,aAClC,EAOO,YAAAK,WAAP,SAAkB2wB,EAAgBsE,GAAlC,gBAAkC,IAAAA,IAAAA,GAAA,GAC5BA,EACFl9B,KAAKs4B,WAAW33B,SAAQ,SAAAw8B,GACtB,IAAMx2B,EAAO,EAAK0xB,aAAa8E,GAAex2B,KAE1Cw2B,IAAkBvE,GAAUjyB,EAAKC,WACnC,EAAKyxB,aAAa8E,GAAen1B,eACxBm1B,IAAkBvE,GAAWjyB,EAAKC,YAC3C,EAAKyxB,aAAa8E,GAAel1B,YAErC,IACSjI,KAAKq4B,aAAaO,IAC3B54B,KAAKq4B,aAAaO,GAAQ3wB,YAE9B,EAMO,YAAAD,aAAP,SAAoB4wB,GACd54B,KAAKq4B,aAAaO,IACP54B,KAAKq4B,aAAaO,GAAQjyB,KAE9BC,YACP5G,KAAKq4B,aAAaO,GAAQ5wB,cAGhC,EAKO,YAAA4xB,cAAP,sBACE55B,KAAKs4B,WAAW33B,SAAQ,SAAAi4B,GAClB,EAAKP,aAAaO,IACpB,EAAKP,aAAaO,GAAQ5wB,cAE9B,GACF,EAsCc,EAAAo1B,oBAAd,SAAkCv3B,GAChC,IAAI4Q,EACJ,OAAQ5Q,EAAKxB,MAAM1B,MACjB,KAAK,EACH8T,EAAO,WAAG,IAAAzJ,GAAE,gBAAe,cAAOnH,EAAqBxB,MAAMyY,UAC7D,MACF,KAAK,EACHrG,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,uBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,kBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,yBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,oCACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,eACT,MACF,KAAK,EACHyJ,EAAO,WAAG,IAAAzJ,GAAE,QAAO,cAAOnH,EAAcxB,MAAMyY,UAC9C,MACF,KAAK,GACHrG,GAAO,IAAAzJ,GAAE,YACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,QACEyJ,GAAO,IAAAzJ,GAAE,QAIb,IAAMqwB,EAA4Bx3B,EAAKxB,MAavC,OAX0C,MAAxCg5B,EAA0B1zB,YACc,MAAxC0zB,EAA0BvzB,WAE1B2M,GAAQ,aAAK,QACX4mB,EAA0B1zB,WAC1B,IACD,eAAM,QAAU0zB,EAA0BvzB,WAAY,IAAG,KACT,MAAxCuzB,EAA0B1zB,aACnC8M,GAAQ,aAAK,QAAU4mB,EAA0B1zB,WAAY,IAAG,MAG3D8M,CACT,EAtGc,EAAA2hB,QAAK,OACjB,GAAyB,EACzB,MAAyB+C,GAAA,EACzB,MAAyB,GACzB,MAA6B,GAC7B,MAA6B,GAC7B,MAA6B,GAC7B,MAA2B,GAC3B,MAA8B,GAC9B,OAAkC,GAClC,OAA2C,GAC3C,MAAkB,GAClB,MAAiB,EACjB,OAAoB,GACpB,OAAuB,EACvB,OAAqB,GACrB,OAAsB,EACtB,OAA2BC,GAAA,EAC3B,OAAwBC,GAAA,EACxB,OAAuBC,GAAA,EACvB,OAAkB,EAClB,OAAwB,EACxB,OAAyB,EACzB,OAAqB,GACrB,OAAwBC,GAAA,E,IA+E5B,C,CArrCA,GC3MA,cAUE,WAAmB+B,GARX,KAAAC,YAA2B,CAAEC,OAAQ,WAAO,GAC5C,KAAAC,QAA2B,UAGlB,KAAAC,yBAA2B,IAAI7a,EAAA,EAE/B,KAAA1d,YAA4B,GAG3CnF,KAAKs9B,cAAgBA,CACvB,CAoDF,OA9CE,sBAAW,qBAAM,C,IASjB,WACE,OAAOt9B,KAAKy9B,OACd,E,IAXA,SAAkBnvB,GAChBtO,KAAKy9B,QAAUnvB,EACftO,KAAK09B,yBAAyBt8B,KAAKkN,EACrC,E,gCAaO,YAAA7H,KAAP,sBACEzG,KAAKu9B,YAAcv9B,KAAKs9B,eAAc,WACpC,EAAKhvB,OAAS,UAChB,IACAtO,KAAKsO,OAAS,SAChB,EAKO,YAAAkvB,OAAP,WACEx9B,KAAKu9B,YAAYC,SACjBx9B,KAAKsO,OAAS,WAChB,EAMO,YAAAqvB,eAAP,SAAsBr8B,GAMpB,IAAMwK,EAAa9L,KAAK09B,yBAAyBn8B,GAAGD,GAGpD,OAFAtB,KAAKmF,YAAYmH,KAAKR,GAEfA,CACT,EACF,EAhEA,G,GAsGA,wBACU,KAAA8xB,MAA6C,CAAC,CAuDxD,QA7CS,YAAAh2B,IAAP,SACE3G,EACAq8B,EACAlvB,QAAA,IAAAA,IAAAA,EAAA,GAEIpO,KAAK49B,MAAM38B,IAAiD,YAAlCjB,KAAK49B,MAAM38B,GAAYqN,QACnDtO,KAAK49B,MAAM38B,GAAYu8B,SAGzB,IAAMK,EACJzvB,EAAS,EA/Cf,SAAuB0vB,EAAiB1vB,GACtC,OAAO,IAAI2vB,IAAU,WACnB,IAAIC,EAAqB,KAYzB,OAVAF,EAAKH,gBAAe,SAAArvB,GACH,aAAXA,IACF0vB,EAAM9oB,OAAOlH,YAAW,WACtB8vB,EAAKr3B,MACP,GAAG2H,GAEP,IAEA0vB,EAAKr3B,OAEE,CACL+2B,OAAQ,WACFQ,GAAK5mB,aAAa4mB,GACtBF,EAAKN,QACP,EAEJ,GACF,CA2BUS,CAAc,IAAIF,GAAUT,GAAgBlvB,GAC5C,IAAI2vB,GAAUT,GAIpB,OAFAt9B,KAAK49B,MAAM38B,GAAc48B,EAElB79B,KAAK49B,MAAM38B,EACpB,EAOO,YAAAwF,KAAP,SAAYxF,IAERjB,KAAK49B,MAAM38B,IACwB,YAAlCjB,KAAK49B,MAAM38B,GAAYqN,QACY,cAAlCtO,KAAK49B,MAAM38B,GAAYqN,QACW,aAAlCtO,KAAK49B,MAAM38B,GAAYqN,QAEzBtO,KAAK49B,MAAM38B,GAAYwF,MAE3B,EAOO,YAAA+2B,OAAP,SAAcv8B,GACRjB,KAAK49B,MAAM38B,IAAiD,YAAlCjB,KAAK49B,MAAM38B,GAAYqN,QACnDtO,KAAK49B,MAAM38B,GAAYu8B,QAE3B,EACF,EAxDA,GCrGCtoB,OAAegpB,cAAgB,GAI/BhpB,OAAegpB,cAAcC,KAAOA,EAIpCjpB,OAAekpB,iBAAmB,E","sources":["webpack://pandora-fms-visual-console/./src/Form.ts","webpack://pandora-fms-visual-console/./src/Item.ts","webpack://pandora-fms-visual-console/./src/items/BarsGraph.ts","webpack://pandora-fms-visual-console/./src/items/BasicChart.ts","webpack://pandora-fms-visual-console/./src/items/DonutGraph.ts","webpack://pandora-fms-visual-console/./src/items/EventsHistory.ts","webpack://pandora-fms-visual-console/./src/items/ModuleGraph.ts","webpack://pandora-fms-visual-console/./src/lib/FontAwesomeIcon.ts","webpack://pandora-fms-visual-console/./src/lib/TypedEvent.ts","webpack://pandora-fms-visual-console/./src/lib/index.ts","webpack://pandora-fms-visual-console/webpack/bootstrap","webpack://pandora-fms-visual-console/webpack/runtime/define property getters","webpack://pandora-fms-visual-console/webpack/runtime/hasOwnProperty shorthand","webpack://pandora-fms-visual-console/webpack/runtime/make namespace object","webpack://pandora-fms-visual-console/./src/items/StaticGraph.ts","webpack://pandora-fms-visual-console/./src/items/Icon.ts","webpack://pandora-fms-visual-console/./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack://pandora-fms-visual-console/./src/items/ColorCloud.ts","webpack://pandora-fms-visual-console/./src/items/Line.ts","webpack://pandora-fms-visual-console/./src/items/NetworkLink.ts","webpack://pandora-fms-visual-console/./src/items/Group.ts","webpack://pandora-fms-visual-console/./src/items/Clock/index.ts","webpack://pandora-fms-visual-console/./src/items/Box.ts","webpack://pandora-fms-visual-console/./src/items/Label.ts","webpack://pandora-fms-visual-console/./src/items/SimpleValue.ts","webpack://pandora-fms-visual-console/./node_modules/d3-path/src/path.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/constant.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/math.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/arc.js","webpack://pandora-fms-visual-console/./src/items/Percentile.ts","webpack://pandora-fms-visual-console/./src/items/Service.ts","webpack://pandora-fms-visual-console/./src/items/Odometer.ts","webpack://pandora-fms-visual-console/./src/VisualConsole.ts","webpack://pandora-fms-visual-console/./src/lib/AsyncTaskManager.ts","webpack://pandora-fms-visual-console/./src/index.ts"],"sourcesContent":["import TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { AnyObject, UnknownObject } from \"./lib/types\";\nimport { t } from \"./lib\";\n\ninterface InputGroupDataRequestedEvent {\n identifier: string;\n params: UnknownObject;\n done: (error: Error | null, data?: unknown) => void;\n}\n\n// TODO: Document\nexport abstract class InputGroup {\n private _name: string = \"\";\n private _element?: HTMLElement;\n public readonly initialData: Data;\n protected currentData: Partial = {};\n // Event manager for data requests.\n private readonly dataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n\n public constructor(name: string, initialData: Data) {\n this.name = name;\n this.initialData = initialData;\n }\n\n public set name(name: string) {\n if (name.length === 0) throw new RangeError(\"empty name\");\n this._name = name;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get data(): Partial {\n return { ...this.currentData };\n }\n\n public get element(): HTMLElement {\n if (this._element == null) {\n const element = document.createElement(\"div\");\n element.className = `input-group input-group-${this.name}`;\n\n const content = this.createContent();\n\n if (content instanceof Array) {\n content.forEach(element.appendChild);\n } else {\n element.appendChild(content);\n }\n\n this._element = element;\n }\n\n return this._element;\n }\n\n public reset(): void {\n this.currentData = {};\n }\n\n protected updateData(data: Partial): void {\n this.currentData = {\n ...this.currentData,\n ...data\n };\n // TODO: Update item.\n }\n\n protected requestData(\n identifier: string,\n params: UnknownObject,\n done: (error: Error | null, data?: unknown) => void\n ): void {\n this.dataRequestedEventManager.emit({ identifier, params, done });\n }\n\n public onDataRequested(\n listener: Listener\n ): Disposable {\n return this.dataRequestedEventManager.on(listener);\n }\n\n protected abstract createContent(): HTMLElement | HTMLElement[];\n\n // public abstract get isValid(): boolean;\n}\n\nexport interface SubmitFormEvent {\n nativeEvent: Event;\n data: AnyObject;\n}\n\n// TODO: Document\nexport class FormContainer {\n public readonly title: string;\n private inputGroupsByName: { [name: string]: InputGroup } = {};\n private enabledInputGroupNames: string[] = [];\n // Event manager for submit events.\n private readonly submitEventManager = new TypedEvent();\n // Event manager for item data requests.\n private readonly itemDataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n private handleItemDataRequested = this.itemDataRequestedEventManager.emit;\n\n public constructor(\n title: string,\n inputGroups: InputGroup[] = [],\n enabledInputGroups: string[] = []\n ) {\n this.title = title;\n\n if (inputGroups.length > 0) {\n this.inputGroupsByName = inputGroups.reduce((prevVal, inputGroup) => {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n prevVal[inputGroup.name] = inputGroup;\n return prevVal;\n }, this.inputGroupsByName);\n }\n\n if (enabledInputGroups.length > 0) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n ...enabledInputGroups.filter(\n name => this.inputGroupsByName[name] != null\n )\n ];\n }\n }\n\n public getInputGroup(inputGroupName: string): InputGroup | null {\n return this.inputGroupsByName[inputGroupName] || null;\n }\n\n public addInputGroup(\n inputGroup: InputGroup,\n index: number | null = null\n ): FormContainer {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n this.inputGroupsByName[inputGroup.name] = inputGroup;\n\n // Remove the current stored name if exist.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroup.name\n );\n\n if (index !== null) {\n if (index <= 0) {\n this.enabledInputGroupNames = [\n inputGroup.name,\n ...this.enabledInputGroupNames\n ];\n } else if (index >= this.enabledInputGroupNames.length) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n } else {\n this.enabledInputGroupNames = [\n // part of the array before the specified index\n ...this.enabledInputGroupNames.slice(0, index),\n // inserted item\n inputGroup.name,\n // part of the array after the specified index\n ...this.enabledInputGroupNames.slice(index)\n ];\n }\n } else {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n }\n\n return this;\n }\n\n public removeInputGroup(inputGroupName: string): FormContainer {\n delete this.inputGroupsByName[inputGroupName];\n // Remove the current stored name.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroupName\n );\n\n return this;\n }\n\n public getFormElement(\n type: \"creation\" | \"update\" = \"update\"\n ): HTMLFormElement {\n const form = document.createElement(\"form\");\n form.id = \"visual-console-item-edition\";\n form.className = \"visual-console-item-edition\";\n form.addEventListener(\"submit\", e => {\n e.preventDefault();\n this.submitEventManager.emit({\n nativeEvent: e,\n data: this.enabledInputGroupNames.reduce((data, name) => {\n if (this.inputGroupsByName[name]) {\n data = {\n ...data,\n ...this.inputGroupsByName[name].data\n };\n }\n return data;\n }, {})\n });\n });\n\n const formContent = document.createElement(\"div\");\n formContent.className = \"input-groups\";\n\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n formContent.appendChild(this.inputGroupsByName[name].element);\n }\n });\n\n form.appendChild(formContent);\n\n return form;\n }\n\n public reset(): void {\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n this.inputGroupsByName[name].reset();\n }\n });\n }\n\n // public get isValid(): boolean {\n // for (let i = 0; i < this.enabledInputGroupNames.length; i++) {\n // const inputGroup = this.inputGroupsByName[this.enabledInputGroupNames[i]];\n // if (inputGroup && !inputGroup.isValid) return false;\n // }\n\n // return true;\n // }\n\n public onSubmit(listener: Listener): Disposable {\n return this.submitEventManager.on(listener);\n }\n\n public onInputGroupDataRequested(\n listener: Listener\n ): Disposable {\n return this.itemDataRequestedEventManager.on(listener);\n }\n}\n","import {\n Position,\n Size,\n AnyObject,\n WithModuleProps,\n ItemMeta,\n LinkedVisualConsoleProps,\n WithAgentProps\n} from \"./lib/types\";\nimport {\n sizePropsDecoder,\n positionPropsDecoder,\n parseIntOr,\n parseBoolean,\n notEmptyStringOr,\n replaceMacros,\n humanDate,\n humanTime,\n addMovementListener,\n debounce,\n addResizementListener,\n t\n} from \"./lib\";\nimport TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { FormContainer, InputGroup } from \"./Form\";\n\n// Enum: https://www.typescriptlang.org/docs/handbook/enums.html.\nexport const enum ItemType {\n STATIC_GRAPH = 0,\n MODULE_GRAPH = 1,\n SIMPLE_VALUE = 2,\n PERCENTILE_BAR = 3,\n LABEL = 4,\n ICON = 5,\n SIMPLE_VALUE_MAX = 6,\n SIMPLE_VALUE_MIN = 7,\n SIMPLE_VALUE_AVG = 8,\n PERCENTILE_BUBBLE = 9,\n SERVICE = 10,\n GROUP_ITEM = 11,\n BOX_ITEM = 12,\n LINE_ITEM = 13,\n AUTO_SLA_GRAPH = 14,\n CIRCULAR_PROGRESS_BAR = 15,\n CIRCULAR_INTERIOR_PROGRESS_BAR = 16,\n DONUT_GRAPH = 17,\n BARS_GRAPH = 18,\n CLOCK = 19,\n COLOR_CLOUD = 20,\n NETWORK_LINK = 21,\n ODOMETER = 22,\n BASIC_CHART = 23\n}\n\n// Base item properties. This interface should be extended by the item implementations.\nexport interface ItemProps extends Position, Size {\n readonly id: number;\n readonly type: ItemType;\n label: string | null;\n labelPosition: \"up\" | \"right\" | \"down\" | \"left\";\n isLinkEnabled: boolean;\n link: string | null;\n isOnTop: boolean;\n parentId: number | null;\n aclGroupId: number | null;\n cacheExpiration: number | null;\n colorStatus: string;\n cellId: number | null;\n alertOutline: boolean;\n}\n\nexport interface ItemClickEvent {\n item: VisualConsoleItem;\n nativeEvent: Event;\n}\n\n// FIXME: Fix type compatibility.\nexport interface ItemRemoveEvent {\n // data: Props;\n item: VisualConsoleItem;\n}\n\nexport interface ItemMovedEvent {\n item: VisualConsoleItem;\n prevPosition: Position;\n newPosition: Position;\n}\n\nexport interface ItemResizedEvent {\n item: VisualConsoleItem;\n prevSize: Size;\n newSize: Size;\n}\n\nexport interface ItemSelectionChangedEvent {\n selected: boolean;\n}\n\n/**\n * Extract a valid enum value from a raw label position value.\n * @param labelPosition Raw value.\n */\nconst parseLabelPosition = (\n labelPosition: unknown\n): ItemProps[\"labelPosition\"] => {\n switch (labelPosition) {\n case \"up\":\n case \"right\":\n case \"down\":\n case \"left\":\n return labelPosition;\n default:\n return \"down\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function itemBasePropsDecoder(data: AnyObject): ItemProps | never {\n if (data.id == null || isNaN(parseInt(data.id))) {\n throw new TypeError(\"invalid id.\");\n }\n if (data.type == null || isNaN(parseInt(data.type))) {\n throw new TypeError(\"invalid type.\");\n }\n\n return {\n id: parseInt(data.id),\n type: parseInt(data.type),\n label: notEmptyStringOr(data.label, null),\n labelPosition: parseLabelPosition(data.labelPosition),\n isLinkEnabled: parseBoolean(data.isLinkEnabled),\n link: notEmptyStringOr(data.link, null),\n isOnTop: parseBoolean(data.isOnTop),\n parentId: parseIntOr(data.parentId, null),\n aclGroupId: parseIntOr(data.aclGroupId, null),\n cacheExpiration: parseIntOr(data.cacheExpiration, null),\n colorStatus: notEmptyStringOr(data.colorStatus, \"#CCC\"),\n cellId: parseIntOr(data.cellId, null),\n alertOutline: parseBoolean(data.alertOutline),\n ...sizePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...positionPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n//TODO: Document\nexport function titleItem(id: number): string {\n let title = \"\";\n switch (id) {\n case ItemType.STATIC_GRAPH:\n title = t(\"Static image\");\n break;\n case ItemType.MODULE_GRAPH:\n title = t(\"Module graph\");\n break;\n case ItemType.SIMPLE_VALUE:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.LABEL:\n title = t(\"Label\");\n break;\n case ItemType.ICON:\n title = t(\"Icon\");\n break;\n case ItemType.SIMPLE_VALUE_MAX:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_MIN:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_AVG:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BUBBLE:\n title = t(\"Percentile item\");\n break;\n case ItemType.SERVICE:\n title = t(\"Service\");\n break;\n case ItemType.GROUP_ITEM:\n title = t(\"Group\");\n break;\n case ItemType.BOX_ITEM:\n title = t(\"Box\");\n break;\n case ItemType.LINE_ITEM:\n title = t(\"Line\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n title = t(\"Event history graph\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.DONUT_GRAPH:\n title = t(\"Serialized pie graph\");\n break;\n case ItemType.BARS_GRAPH:\n title = t(\"Bars graph\");\n break;\n case ItemType.CLOCK:\n title = t(\"Clock\");\n break;\n case ItemType.COLOR_CLOUD:\n title = t(\"Color cloud\");\n break;\n case ItemType.NETWORK_LINK:\n title = t(\"Network link\");\n break;\n case ItemType.ODOMETER:\n title = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n title = t(\"Basic chart\");\n break;\n default:\n title = t(\"Item\");\n break;\n }\n\n return title;\n}\n\n/**\n * Base class of the visual console items. Should be extended to use its capabilities.\n */\nabstract class VisualConsoleItem {\n // Properties of the item.\n private itemProps: Props;\n // Metadata of the item.\n private _metadata: ItemMeta;\n // Reference to the DOM element which will contain the item.\n public elementRef: HTMLElement = document.createElement(\"div\");\n public labelElementRef: HTMLElement = document.createElement(\"div\");\n // Reference to the DOM element which will contain the view of the item which extends this class.\n protected childElementRef: HTMLElement = document.createElement(\"div\");\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for moved events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for stopped movement events.\n private readonly movementFinishedEventManager = new TypedEvent<\n ItemMovedEvent\n >();\n // Event manager for resized events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for resize finished events.\n private readonly resizeFinishedEventManager = new TypedEvent<\n ItemResizedEvent\n >();\n // Event manager for remove events.\n private readonly removeEventManager = new TypedEvent();\n // Event manager for selection change events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = false;\n\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = {\n x: x,\n y: y\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Save the new position to the props.\n this.move(x, y);\n // Emit the movement event.\n this.movementFinishedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n private removeMovement: Function | null = null;\n\n /**\n * Start the movement funtionality.\n * @param element Element to move inside its container.\n */\n private initMovementListener(element: HTMLElement): void {\n // Avoid line movement as 'block' force using circles.\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n\n this.removeMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = { x, y };\n\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = true;\n // Move the DOM element.\n this.moveElement(x, y);\n // Emit the movement event.\n this.movedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n // Run the save function.\n this.debouncedMovementSave(x, y);\n }\n );\n }\n /**\n * Stop the movement fun\n */\n private stopMovementListener(): void {\n if (this.removeMovement) {\n this.removeMovement();\n this.removeMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedResizementSave = debounce(\n 500, // ms.\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = false;\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Save the new position to the props.\n this.resize(width, height);\n\n // Emit the resize finished event.\n this.resizeFinishedEventManager.emit({\n item: this,\n prevSize: prevSize,\n newSize: newSize\n });\n }\n );\n // This property will store the function\n // to clean the resizement listener.\n private removeResizement: Function | null = null;\n\n /**\n * Start the resizement funtionality.\n * @param element Element to move inside its container.\n */\n protected initResizementListener(element: HTMLElement): void {\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n this.removeResizement = addResizementListener(\n element,\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = true;\n\n // The label it's outside the item's size, so we need\n // to get rid of its size to get the real size of the\n // item's content.\n if (this.props.label && this.props.label.length > 0) {\n const {\n width: labelWidth,\n height: labelHeight\n } = this.labelElementRef.getBoundingClientRect();\n\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n height -= labelHeight;\n break;\n case \"left\":\n case \"right\":\n width -= labelWidth;\n break;\n }\n }\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Move the DOM element.\n this.resizeElement(width, height);\n // Emit the resizement event.\n this.resizedEventManager.emit({\n item: this,\n prevSize,\n newSize\n });\n // Run the save function.\n this.debouncedResizementSave(width, height);\n }\n );\n }\n /**\n * Stop the resizement functionality.\n */\n private stopResizementListener(): void {\n if (this.removeResizement) {\n this.removeResizement();\n this.removeResizement = null;\n }\n }\n\n /**\n * To create a new element which will be inside the item box.\n * @return Item.\n */\n protected abstract createDomElement(): HTMLElement;\n\n public constructor(\n props: Props,\n metadata: ItemMeta,\n deferInit: boolean = false\n ) {\n this.itemProps = props;\n this._metadata = metadata;\n\n if (!deferInit) this.init();\n }\n\n /**\n * To create and append the DOM elements.\n */\n protected init(): void {\n /*\n * Get a HTMLElement which represents the container box\n * of the Visual Console item. This element will manage\n * all the common things like click events, show a border\n * when hovered, etc.\n */\n this.elementRef = this.createContainerDomElement();\n this.labelElementRef = this.createLabelDomElement();\n\n /*\n * Get a HTMLElement which represents the custom view\n * of the Visual Console item. This element will be\n * different depending on the item implementation.\n */\n this.childElementRef = this.createDomElement();\n\n // Insert the elements into the container.\n this.elementRef.appendChild(this.childElementRef);\n this.elementRef.appendChild(this.labelElementRef);\n\n // Resize element.\n this.resizeElement(this.itemProps.width, this.itemProps.height);\n // Set label position.\n this.changeLabelPosition(this.itemProps.labelPosition);\n }\n\n /**\n * To create a new box for the visual console item.\n * @return Item box.\n */\n private createContainerDomElement(): HTMLElement {\n let box;\n if (this.props.isLinkEnabled) {\n box = document.createElement(\"a\") as HTMLAnchorElement;\n\n if (this.props.link) {\n box.href = this.props.link;\n } else {\n box.className = \"textDecorationNone\";\n }\n } else {\n box = document.createElement(\"div\") as HTMLDivElement;\n box.className = \"textDecorationNone\";\n }\n\n box.classList.add(\"visual-console-item\");\n if (this.props.isOnTop) {\n box.classList.add(\"is-on-top\");\n }\n box.style.left = `${this.props.x}px`;\n box.style.top = `${this.props.y}px`;\n\n if (this.props.alertOutline) {\n box.classList.add(\"is-alert-triggered\");\n }\n\n // Init the click listeners.\n box.addEventListener(\"dblclick\", e => {\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.unSelectItem();\n this.selectItem();\n\n this.dblClickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n box.addEventListener(\"click\", e => {\n if (this.meta.editMode) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n // Add loading click item.\n if (this.itemProps.isLinkEnabled && this.itemProps.link != null) {\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n let path = e.composedPath();\n let containerId = \"visual-console-container\";\n for (let index = 0; index < path.length; index++) {\n const element = path[index] as HTMLInputElement;\n if (\n element.id != undefined &&\n element.id != null &&\n element.id != \"\"\n ) {\n if (element.id.includes(containerId) === true) {\n containerId = element.id;\n break;\n }\n }\n }\n\n const containerVC = document.getElementById(containerId);\n if (containerVC != null) {\n containerVC.classList.add(\"is-updating\");\n containerVC.appendChild(divParent);\n }\n }\n }\n\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.clickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n\n // Metadata state.\n if (this.meta.maintenanceMode) {\n box.classList.add(\"is-maintenance\");\n }\n if (this.meta.editMode) {\n box.classList.add(\"is-editing\");\n }\n if (this.meta.isFetching) {\n box.classList.add(\"is-fetching\");\n }\n if (this.meta.isUpdating) {\n box.classList.add(\"is-updating\");\n }\n if (this.meta.isSelected) {\n box.classList.add(\"is-selected\");\n }\n\n return box;\n }\n\n /**\n * To create a new label for the visual console item.\n * @return Item label.\n */\n protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Add the label if it exists.\n const label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n // Ugly table we need to use to replicate the legacy style.\n const table = document.createElement(\"table\");\n const row = document.createElement(\"tr\");\n const emptyRow1 = document.createElement(\"tr\");\n const emptyRow2 = document.createElement(\"tr\");\n const cell = document.createElement(\"td\");\n\n cell.innerHTML = label;\n row.appendChild(cell);\n table.appendChild(emptyRow1);\n table.appendChild(row);\n table.appendChild(emptyRow2);\n table.style.textAlign = \"center\";\n\n // Change the table size depending on its position.\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n\n // element.innerHTML = this.props.label;\n element.appendChild(table);\n }\n\n return element;\n }\n\n /**\n * Return the label stored into the props with some macros replaced.\n */\n protected getLabelWithMacrosReplaced(): string {\n // We assert that the props may have some needed properties.\n const props = this.props as Partial;\n\n return replaceMacros(\n [\n {\n macro: \"_date_\",\n value: humanDate(new Date())\n },\n {\n macro: \"_time_\",\n value: humanTime(new Date())\n },\n {\n macro: \"_agent_\",\n value: props.agentAlias != null ? props.agentAlias : \"\"\n },\n {\n macro: \"_agentdescription_\",\n value: props.agentDescription != null ? props.agentDescription : \"\"\n },\n {\n macro: \"_address_\",\n value: props.agentAddress != null ? props.agentAddress : \"\"\n },\n {\n macro: \"_module_\",\n value: props.moduleName != null ? props.moduleName : \"\"\n },\n {\n macro: \"_moduledescription_\",\n value: props.moduleDescription != null ? props.moduleDescription : \"\"\n }\n ],\n this.props.label || \"\"\n );\n }\n\n /**\n * To update the content element.\n * @return Item.\n */\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): Props {\n return { ...this.itemProps }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: Props) {\n this.setProps(newProps);\n }\n\n /**\n * Clasic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n protected setProps(newProps: Props) {\n const prevProps = this.props;\n // Update the internal props.\n this.itemProps = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n if (this.shouldBeUpdated(prevProps, newProps))\n this.render(prevProps, this._metadata);\n }\n\n /**\n * Public accessor of the `meta` property.\n * @return Properties.\n */\n public get meta(): ItemMeta {\n return { ...this._metadata }; // Return a copy.\n }\n\n /**\n * Public setter of the `meta` property.\n * If the new meta are different enough than the\n * stored meta, a render would be fired.\n * @param newProps\n */\n public set meta(newMetadata: ItemMeta) {\n this.setMeta(newMetadata);\n }\n\n /**\n * Classic version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n public setMeta(newMetadata: Partial): void {\n const prevMetadata = this._metadata;\n // Update the internal meta.\n this._metadata = {\n ...prevMetadata,\n ...newMetadata\n };\n\n if (\n typeof newMetadata.isSelected !== \"undefined\" &&\n prevMetadata.isSelected !== newMetadata.isSelected\n ) {\n this.selectionChangedEventManager.emit({\n selected: newMetadata.isSelected\n });\n }\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n // if (this.shouldBeUpdated(prevMetadata, newMetadata))\n this.render(this.itemProps, prevMetadata);\n }\n\n /**\n * To compare the previous and the new props and returns a boolean value\n * in case the difference is meaningfull enough to perform DOM changes.\n *\n * Here, the only comparision is done by reference.\n *\n * Override this function to perform a different comparision depending on the item needs.\n *\n * @param prevProps\n * @param newProps\n * @return Whether the difference is meaningful enough to perform DOM changes or not.\n */\n protected shouldBeUpdated(prevProps: Props, newProps: Props): boolean {\n return prevProps !== newProps;\n }\n\n /**\n * To recreate or update the HTMLElement which represents the item into the DOM.\n * @param prevProps If exists it will be used to only perform DOM updates instead of a full replace.\n */\n public render(\n prevProps: Props | null = null,\n prevMeta: ItemMeta | null = null\n ): void {\n if (prevProps) {\n this.updateDomElement(this.childElementRef);\n }\n // Move box.\n if (!prevProps || this.positionChanged(prevProps, this.props)) {\n this.moveElement(this.props.x, this.props.y);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Resize box.\n if (!prevProps || this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Change label.\n const oldLabelHtml = this.labelElementRef.innerHTML;\n const newLabelHtml = this.createLabelDomElement().innerHTML;\n if (oldLabelHtml !== newLabelHtml) {\n this.labelElementRef.innerHTML = newLabelHtml;\n }\n // Change label position.\n if (!prevProps || prevProps.labelPosition !== this.props.labelPosition) {\n this.changeLabelPosition(this.props.labelPosition);\n }\n //Change z-index class is-on-top\n if (!prevProps || prevProps.isOnTop !== this.props.isOnTop) {\n if (this.props.isOnTop) {\n this.elementRef.classList.add(\"is-on-top\");\n } else {\n this.elementRef.classList.remove(\"is-on-top\");\n }\n }\n // Change link.\n if (prevProps && prevProps.isLinkEnabled !== this.props.isLinkEnabled) {\n const container = this.createContainerDomElement();\n // Add the children of the old element.\n container.innerHTML = this.elementRef.innerHTML;\n // Copy the attributes.\n const attrs = this.elementRef.attributes;\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].nodeName !== \"id\") {\n let cloneIsNeeded = this.elementRef.getAttributeNode(\n attrs[i].nodeName\n );\n if (cloneIsNeeded !== null) {\n container.setAttributeNode(cloneIsNeeded.cloneNode());\n }\n }\n }\n // Replace the reference.\n if (this.elementRef.parentNode !== null) {\n this.elementRef.parentNode.replaceChild(container, this.elementRef);\n }\n\n // Changed the reference to the main element. It's ugly, but needed.\n this.elementRef = container;\n }\n\n if (\n prevProps &&\n this.props.isLinkEnabled &&\n prevProps.link !== this.props.link\n ) {\n if (this.props.link !== null) {\n this.elementRef.setAttribute(\"href\", this.props.link);\n }\n }\n\n // Change metadata related things.\n if (\n !prevMeta ||\n prevMeta.editMode !== this.meta.editMode ||\n prevMeta.maintenanceMode !== this.meta.maintenanceMode\n ) {\n if (this.meta.editMode && this.meta.maintenanceMode === false) {\n this.elementRef.classList.add(\"is-editing\");\n this.elementRef.classList.remove(\"is-alert-triggered\");\n } else {\n this.elementRef.classList.remove(\"is-editing\");\n\n if (this.props.alertOutline) {\n this.elementRef.classList.add(\"is-alert-triggered\");\n }\n }\n }\n\n if (!prevMeta || prevMeta.isFetching !== this.meta.isFetching) {\n if (this.meta.isFetching) {\n this.elementRef.classList.add(\"is-fetching\");\n } else {\n this.elementRef.classList.remove(\"is-fetching\");\n }\n }\n\n if (!prevMeta || prevMeta.isUpdating !== this.meta.isUpdating) {\n if (this.meta.isUpdating) {\n this.elementRef.classList.add(\"is-updating\");\n\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n this.elementRef.appendChild(divParent);\n } else {\n this.elementRef.classList.remove(\"is-updating\");\n\n const div = this.elementRef.querySelector(\n \".div-visual-console-spinner\"\n );\n if (div !== null) {\n const parent = div.parentElement;\n if (parent !== null) {\n parent.removeChild(div);\n }\n }\n }\n\n this.updateDomElement(this.childElementRef);\n }\n if (!prevMeta || prevMeta.isSelected !== this.meta.isSelected) {\n if (this.meta.isSelected) {\n this.elementRef.classList.add(\"is-selected\");\n } else {\n this.elementRef.classList.remove(\"is-selected\");\n }\n }\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n // Call the remove event.\n this.removeEventManager.emit({ item: this });\n // Event listeners.\n this.disposables.forEach(disposable => {\n try {\n disposable.dispose();\n } catch (ignored) { } // eslint-disable-line no-empty\n });\n // VisualConsoleItem DOM element.\n this.elementRef.remove();\n }\n\n /**\n * Compare the previous and the new position and return\n * a boolean value in case the position changed.\n * @param prevPosition\n * @param newPosition\n * @return Whether the position changed or not.\n */\n protected positionChanged(\n prevPosition: Position,\n newPosition: Position\n ): boolean {\n return prevPosition.x !== newPosition.x || prevPosition.y !== newPosition.y;\n }\n\n /**\n * Move the label around the item content.\n * @param position Label position.\n */\n protected changeLabelPosition(position: Props[\"labelPosition\"]): void {\n switch (position) {\n case \"up\":\n this.elementRef.style.flexDirection = \"column-reverse\";\n break;\n case \"left\":\n this.elementRef.style.flexDirection = \"row-reverse\";\n break;\n case \"right\":\n this.elementRef.style.flexDirection = \"row\";\n break;\n case \"down\":\n default:\n this.elementRef.style.flexDirection = \"column\";\n break;\n }\n\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n // Change the table size depending on its position.\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n }\n }\n\n /**\n * Move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n protected moveElement(x: number, y: number): void {\n this.elementRef.style.left = `${x}px`;\n this.elementRef.style.top = `${y}px`;\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n public move(x: number, y: number): void {\n this.moveElement(x, y);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n x,\n y\n };\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n protected sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // The most valuable size is the content size.\n if (\n this.props.type != ItemType.LINE_ITEM &&\n this.props.type != ItemType.NETWORK_LINK\n ) {\n this.childElementRef.style.width = width > 0 ? `${width}px` : \"\";\n this.childElementRef.style.height = height > 0 ? `${height}px` : \"\";\n }\n\n if (this.props.label && this.props.label.length > 0) {\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n table.style.width = width > 0 ? `${width}px` : \"\";\n break;\n case \"left\":\n case \"right\":\n table.style.height = height > 0 ? `${height}px` : \"\";\n break;\n }\n }\n }\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.resizeElement(width, height);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement stopped of visual console elements.\n * @param listener Function which is going to be executed when a linked console's movement is finished.\n */\n public onMovementFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movementFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement finish of visual console elements.\n * @param listener Function which is going to be executed when a linked console is finished resizing.\n */\n public onResizeFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizeFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the removal of the item.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onRemove(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.removeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to item selection.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n this.initMovementListener(this.elementRef);\n if (\n this.props.type !== ItemType.LINE_ITEM &&\n this.props.type !== ItemType.NETWORK_LINK\n ) {\n this.initResizementListener(this.elementRef);\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: false\n };\n\n this.stopMovementListener();\n if (this.props.type !== ItemType.LINE_ITEM) {\n this.stopResizementListener();\n }\n }\n\n // TODO: Document\n public getFormContainer(): FormContainer {\n return VisualConsoleItem.getFormContainer(this.props);\n }\n\n // TODO: Document\n public static getFormContainer(props: Partial): FormContainer {\n const title: string = props.type ? titleItem(props.type) : t(\"Item\");\n return new FormContainer(title, [], []);\n }\n}\n\nexport default VisualConsoleItem;\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport { modulePropsDecoder, decodeBase64, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BarsGraphProps = {\n type: ItemType.BARS_GRAPH;\n html: string;\n backgroundColor: \"white\" | \"black\" | \"transparent\";\n typeGraph: \"horizontal\" | \"vertical\";\n gridColor: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param BarsGraphProps Raw value.\n */\nconst parseBarsGraphProps = (\n backgroundColor: unknown\n): BarsGraphProps[\"backgroundColor\"] => {\n switch (backgroundColor) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundColor;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param typeGraph Raw value.\n */\nconst parseTypeGraph = (typeGraph: unknown): BarsGraphProps[\"typeGraph\"] => {\n switch (typeGraph) {\n case \"horizontal\":\n case \"vertical\":\n return typeGraph;\n default:\n return \"vertical\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the bars graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function barsGraphPropsDecoder(data: AnyObject): BarsGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BARS_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundColor: parseBarsGraphProps(data.backgroundColor),\n typeGraph: parseTypeGraph(data.typeGraph),\n gridColor: stringIsEmpty(data.gridColor) ? \"#000000\" : data.gridColor,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BarsGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.innerHTML = this.props.html;\n element.className = \"bars-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BasicChartProps = {\n type: ItemType.BASIC_CHART;\n html: string;\n period: number | null;\n value: number | null;\n status: string;\n moduleNameColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the basic chart props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function basicChartPropsDecoder(\n data: AnyObject\n): BasicChartProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BASIC_CHART,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n period: parseIntOr(data.period, null),\n value: parseFloat(data.value),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n moduleNameColor: stringIsEmpty(data.moduleNameColor)\n ? \"#3f3f3f\"\n : data.moduleNameColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BasicChart extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.className = \"basic-chart\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n\n protected number_format(\n number: number,\n force_integer: boolean,\n unit: string,\n short_data: number,\n divisor: number\n ) {\n divisor = typeof divisor !== \"undefined\" ? divisor : 1000;\n var decimals = 2;\n\n // Set maximum decimal precision to 99 in case short_data is not set.\n if (!short_data) {\n short_data = 99;\n }\n\n if (force_integer) {\n if (Math.round(number) != number) {\n return \"\";\n }\n } else {\n short_data++;\n const aux_decimals = this.pad(\"1\", short_data, 0);\n number =\n Math.round(number * Number.parseInt(aux_decimals)) /\n Number.parseInt(aux_decimals);\n }\n\n var shorts = [\"\", \"K\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n var pos = 0;\n\n while (Math.abs(number) >= divisor) {\n // As long as the number can be divided by 1000 or 1024.\n pos++;\n number = number / divisor;\n }\n\n if (divisor) {\n number = Math.round(number * decimals) / decimals;\n } else {\n number = Math.round(number * decimals);\n }\n\n if (isNaN(number)) {\n number = 0;\n }\n\n return number + \" \" + shorts[pos] + unit;\n }\n\n protected pad(input: string, length: number, padding: number): string {\n var str = input + \"\";\n return length <= str.length\n ? str\n : this.pad(str + padding, length, padding);\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type DonutGraphProps = {\n type: ItemType.DONUT_GRAPH;\n html: string;\n legendBackgroundColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the donut graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function donutGraphPropsDecoder(\n data: AnyObject\n): DonutGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.DONUT_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n legendBackgroundColor: stringIsEmpty(data.legendBackgroundColor)\n ? \"#ffffff\"\n : data.legendBackgroundColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class DonutGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"donut-graph\";\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport {\n modulePropsDecoder,\n parseIntOr,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type EventsHistoryProps = {\n type: ItemType.AUTO_SLA_GRAPH;\n maxTime: number | null;\n legendColor: string;\n html: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function eventsHistoryPropsDecoder(\n data: AnyObject\n): EventsHistoryProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.AUTO_SLA_GRAPH,\n maxTime: parseIntOr(data.maxTime, null),\n legendColor: data.legendColor,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class EventsHistory extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"events-history\";\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const aux = document.createElement(\"div\");\n aux.innerHTML = this.props.html;\n const scripts = aux.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type ModuleGraphProps = {\n type: ItemType.MODULE_GRAPH;\n html: string;\n backgroundType: \"white\" | \"black\" | \"transparent\";\n graphType: \"line\" | \"area\";\n period: number | null;\n customGraphId: number | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param backgroundType Raw value.\n */\nconst parseBackgroundType = (\n backgroundType: unknown\n): ModuleGraphProps[\"backgroundType\"] => {\n switch (backgroundType) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundType;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param graphType Raw value.\n */\nconst parseGraphType = (graphType: unknown): ModuleGraphProps[\"graphType\"] => {\n switch (graphType) {\n case \"line\":\n case \"area\":\n return graphType;\n default:\n return \"line\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the module graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function moduleGraphPropsDecoder(\n data: AnyObject\n): ModuleGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.MODULE_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundType: parseBackgroundType(data.backgroundType),\n period: parseIntOr(data.period, null),\n graphType: parseGraphType(data.graphType),\n customGraphId: parseIntOr(data.customGraphId, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class ModuleGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n element.innerHTML = this.props.html;\n element.className = \"module-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./FontAwesomeIcon.styles.css\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\ninterface ExtraProps {\n size?: \"small\" | \"medium\" | \"large\";\n color?: string;\n spin?: boolean;\n pulse?: boolean;\n}\n\nconst fontAwesomeIcon = (\n iconDefinition: IconDefinition,\n title: string,\n { size, color, spin, pulse }: ExtraProps = {}\n): HTMLElement => {\n const container = document.createElement(\"figure\");\n container.title = title;\n container.className = `fa fa-${iconDefinition.iconName}`;\n\n if (size) container.classList.add(`fa-${size}`);\n\n if (spin) container.classList.add(\"fa-spin\");\n else if (pulse) container.classList.add(\"fa-pulse\");\n\n const icon = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n icon.setAttribute(\n \"viewBox\",\n `0 0 ${iconDefinition.icon[0]} ${iconDefinition.icon[1]}`\n );\n if (color) icon.setAttribute(\"fill\", color);\n\n // Path\n const path = document.createElementNS(svgNS, \"path\");\n const pathData =\n typeof iconDefinition.icon[4] === \"string\"\n ? iconDefinition.icon[4]\n : iconDefinition.icon[4][0];\n path.setAttribute(\"d\", pathData);\n\n icon.appendChild(path);\n container.appendChild(icon);\n\n return container;\n};\n\nexport default fontAwesomeIcon;\n","export interface Listener {\n (event: T): void;\n}\n\nexport interface Disposable {\n dispose: () => void;\n}\n\n/** passes through events as they happen. You will not get events from before you start listening */\nexport default class TypedEvent {\n private listeners: Listener[] = [];\n private listenersOncer: Listener[] = [];\n\n public on = (listener: Listener): Disposable => {\n this.listeners.push(listener);\n return {\n dispose: () => this.off(listener)\n };\n };\n\n public once = (listener: Listener): void => {\n this.listenersOncer.push(listener);\n };\n\n public off = (listener: Listener): void => {\n const callbackIndex = this.listeners.indexOf(listener);\n if (callbackIndex > -1) this.listeners.splice(callbackIndex, 1);\n };\n\n public emit = (event: T): void => {\n /** Update any general listeners */\n this.listeners.forEach(listener => listener(event));\n\n /** Clear the `once` queue */\n this.listenersOncer.forEach(listener => listener(event));\n this.listenersOncer = [];\n };\n\n public pipe = (te: TypedEvent): Disposable => this.on(e => te.emit(e));\n}\n","import {\n AnyObject,\n Position,\n Size,\n WithAgentProps,\n WithModuleProps,\n LinkedVisualConsoleProps,\n LinkedVisualConsolePropsStatus,\n UnknownObject,\n ItemMeta\n} from \"./types\";\n\nimport helpTipIcon from \"./help-tip.png\";\nimport fontAwesomeIcon from \"./FontAwesomeIcon\";\nimport { faPencilAlt, faListAlt } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./autocomplete.css\";\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseIntOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\" && value.length > 0 && !isNaN(parseInt(value)))\n return parseInt(value);\n else return defaultValue;\n}\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseFloatOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (\n typeof value === \"string\" &&\n value.length > 0 &&\n !isNaN(parseFloat(value))\n )\n return parseFloat(value);\n else return defaultValue;\n}\n\n/**\n * Check if a string exists and it's not empty.\n * @param value Value to check.\n * @return The check result.\n */\nexport function stringIsEmpty(value?: string | null): boolean {\n return value == null || value.length === 0;\n}\n\n/**\n * Return a not empty string or a default value from a raw value.\n * @param value Raw value from which we will try to extract a non empty string.\n * @param defaultValue Default value to use if we cannot extract a non empty string.\n * @return A non empty string or the default value.\n */\nexport function notEmptyStringOr(\n value: unknown,\n defaultValue: T\n): string | T {\n return typeof value === \"string\" && value.length > 0 ? value : defaultValue;\n}\n\n/**\n * Return a boolean from a raw value.\n * @param value Raw value from which we will try to extract the boolean.\n * @return A valid boolean value. false by default.\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === \"boolean\") return value;\n else if (typeof value === \"number\") return value > 0;\n else if (typeof value === \"string\") return value === \"1\" || value === \"true\";\n else return false;\n}\n\n/**\n * Return a valid date or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid date.\n * @param defaultValue Default value to use if we cannot extract a valid date.\n * @return A valid date or the default value.\n */\nexport function parseDateOr(value: unknown, defaultValue: T): Date | T {\n if (value instanceof Date) return value;\n else if (typeof value === \"number\") return new Date(value * 1000);\n else if (\n typeof value === \"string\" &&\n !Number.isNaN(new Date(value).getTime())\n )\n return new Date(value);\n else return defaultValue;\n}\n\n/**\n * Pad the current string with another string (multiple times, if needed)\n * until the resulting string reaches the given length.\n * The padding is applied from the start (left) of the current string.\n * @param value Text that needs to be padded.\n * @param length Length of the returned text.\n * @param pad Text to add.\n * @return Padded text.\n */\nexport function leftPad(\n value: string | number,\n length: number,\n pad: string | number = \" \"\n): string {\n if (typeof value === \"number\") value = `${value}`;\n if (typeof pad === \"number\") pad = `${pad}`;\n\n const diffLength = length - value.length;\n if (diffLength === 0) return value;\n if (diffLength < 0) return value.substr(Math.abs(diffLength));\n\n if (diffLength === pad.length) return `${pad}${value}`;\n if (diffLength < pad.length) return `${pad.substring(0, diffLength)}${value}`;\n\n const repeatTimes = Math.floor(diffLength / pad.length);\n const restLength = diffLength - pad.length * repeatTimes;\n\n let newPad = \"\";\n for (let i = 0; i < repeatTimes; i++) newPad += pad;\n\n if (restLength === 0) return `${newPad}${value}`;\n return `${newPad}${pad.substring(0, restLength)}${value}`;\n}\n\n/* Decoders */\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the position.\n */\nexport function positionPropsDecoder(data: AnyObject): Position {\n return {\n x: parseIntOr(data.x, 0),\n y: parseIntOr(data.y, 0)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the size.\n * @throws Will throw a TypeError if the width and height are not valid numbers.\n */\nexport function sizePropsDecoder(data: AnyObject): Size | never {\n if (\n data.width == null ||\n isNaN(parseInt(data.width)) ||\n data.height == null ||\n isNaN(parseInt(data.height))\n ) {\n throw new TypeError(\"invalid size.\");\n }\n\n return {\n width: parseInt(data.width),\n height: parseInt(data.height)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the agent properties.\n */\nexport function agentPropsDecoder(data: AnyObject): WithAgentProps {\n const agentProps: WithAgentProps = {\n agentId: parseIntOr(data.agentId, null),\n agentName: notEmptyStringOr(data.agentName, null),\n agentAlias: notEmptyStringOr(data.agentAlias, null),\n agentDescription: notEmptyStringOr(data.agentDescription, null),\n agentAddress: notEmptyStringOr(data.agentAddress, null),\n agentDisabled: parseBoolean(data.agentDisabled)\n };\n\n return data.metaconsoleId != null\n ? {\n metaconsoleId: data.metaconsoleId,\n ...agentProps // Object spread: http://es6-features.org/#SpreadOperator\n }\n : agentProps;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the module and agent properties.\n */\nexport function modulePropsDecoder(data: AnyObject): WithModuleProps {\n return {\n moduleId: parseIntOr(data.moduleId, null),\n moduleName: notEmptyStringOr(data.moduleName, null),\n moduleDescription: notEmptyStringOr(data.moduleDescription, null),\n moduleDisabled: parseBoolean(data.moduleDisabled),\n ...agentPropsDecoder(data) // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the linked visual console properties.\n * @throws Will throw a TypeError if the status calculation properties are invalid.\n */\nexport function linkedVCPropsDecoder(\n data: AnyObject\n): LinkedVisualConsoleProps | never {\n let linkedLayoutStatusProps: LinkedVisualConsolePropsStatus = {\n linkedLayoutStatusType: \"default\"\n };\n switch (data.linkedLayoutStatusType) {\n case \"weight\": {\n const weight = parseIntOr(data.linkedLayoutStatusTypeWeight, null);\n if (weight == null)\n throw new TypeError(\"invalid status calculation properties.\");\n\n if (data.linkedLayoutStatusTypeWeight)\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"weight\",\n linkedLayoutStatusTypeWeight: weight\n };\n break;\n }\n case \"service\": {\n const warningThreshold = parseIntOr(\n data.linkedLayoutStatusTypeWarningThreshold,\n null\n );\n const criticalThreshold = parseIntOr(\n data.linkedLayoutStatusTypeCriticalThreshold,\n null\n );\n if (warningThreshold == null || criticalThreshold == null) {\n throw new TypeError(\"invalid status calculation properties.\");\n }\n\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"service\",\n linkedLayoutStatusTypeWarningThreshold: warningThreshold,\n linkedLayoutStatusTypeCriticalThreshold: criticalThreshold\n };\n break;\n }\n }\n\n return {\n linkedLayoutId: parseIntOr(data.linkedLayoutId, null),\n linkedLayoutNodeId: parseIntOr(data.linkedLayoutNodeId, null),\n ...linkedLayoutStatusProps // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the item's meta properties.\n */\nexport function itemMetaDecoder(data: UnknownObject): ItemMeta | never {\n const receivedAt = parseDateOr(data.receivedAt, null);\n if (receivedAt === null) throw new TypeError(\"invalid meta structure\");\n\n let error = null;\n if (data.error instanceof Error) error = data.error;\n else if (typeof data.error === \"string\") error = new Error(data.error);\n\n return {\n receivedAt,\n error,\n editMode: parseBoolean(data.editMode),\n maintenanceMode: parseBoolean(data.maintenanceMode),\n isFromCache: parseBoolean(data.isFromCache),\n isFetching: false,\n isUpdating: false,\n isBeingMoved: false,\n isBeingResized: false,\n isSelected: false,\n lineMode: false\n };\n}\n\n/**\n * To get a CSS rule with the most used prefixes.\n * @param ruleName Name of the CSS rule.\n * @param ruleValue Value of the CSS rule.\n * @return An array of rules with the prefixes applied.\n */\nexport function prefixedCssRules(\n ruleName: string,\n ruleValue: string\n): string[] {\n const rule = `${ruleName}: ${ruleValue};`;\n return [\n `-webkit-${rule}`,\n `-moz-${rule}`,\n `-ms-${rule}`,\n `-o-${rule}`,\n `${rule}`\n ];\n}\n\n/**\n * Decode a base64 string.\n * @param input Data encoded using base64.\n * @return Decoded data.\n */\nexport function decodeBase64(input: string): string {\n return decodeURIComponent(escape(window.atob(input)));\n}\n\n/**\n * Generate a date representation with the format 'd/m/Y'.\n * @param initialDate Date to be used instead of a generated one.\n * @param locale Locale to use if localization is required and available.\n * @example 24/02/2020.\n * @return Date representation.\n */\nexport function humanDate(date: Date, locale: string | null = null): string {\n if (locale && Intl && Intl.DateTimeFormat) {\n // Format using the user locale.\n const options: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\"\n };\n return Intl.DateTimeFormat(locale, options).format(date);\n } else {\n // Use getDate, getDay returns the week day.\n const day = leftPad(date.getDate(), 2, 0);\n // The getMonth function returns the month starting by 0.\n const month = leftPad(date.getMonth() + 1, 2, 0);\n const year = leftPad(date.getFullYear(), 4, 0);\n\n // Format: 'd/m/Y'.\n return `${day}/${month}/${year}`;\n }\n}\n\n/**\n * Generate a time representation with the format 'hh:mm:ss'.\n * @param initialDate Date to be used instead of a generated one.\n * @example 01:34:09.\n * @return Time representation.\n */\nexport function humanTime(date: Date): string {\n const hours = leftPad(date.getHours(), 2, 0);\n const minutes = leftPad(date.getMinutes(), 2, 0);\n const seconds = leftPad(date.getSeconds(), 2, 0);\n\n return `${hours}:${minutes}:${seconds}`;\n}\n\ninterface Macro {\n macro: string | RegExp;\n value: string;\n}\n/**\n * Replace the macros of a text.\n * @param macros List of macros and their replacements.\n * @param text Text in which we need to replace the macros.\n */\nexport function replaceMacros(macros: Macro[], text: string): string {\n return macros.reduce(\n (acc, { macro, value }) => acc.replace(macro, value),\n text\n );\n}\n\n/**\n * Create a function which will limit the rate of execution of\n * the selected function to one time for the selected interval.\n * @param delay Interval.\n * @param fn Function to be executed at a limited rate.\n */\nexport function throttle(delay: number, fn: (...args: T[]) => R) {\n let last = 0;\n return (...args: T[]) => {\n const now = Date.now();\n if (now - last < delay) return;\n last = now;\n return fn(...args);\n };\n}\n\n/**\n * Create a function which will call the selected function only\n * after the interval time has passed after its last execution.\n * @param delay Interval.\n * @param fn Function to be executed after the last call.\n */\nexport function debounce(delay: number, fn: (...args: T[]) => void) {\n let timerRef: number | null = null;\n return (...args: T[]) => {\n if (timerRef !== null) window.clearTimeout(timerRef);\n timerRef = window.setTimeout(() => {\n fn(...args);\n timerRef = null;\n }, delay);\n };\n}\n\n/**\n * Retrieve the offset of an element relative to the page.\n * @param el Node used to calculate the offset.\n */\nfunction getOffset(el: HTMLElement | null, parent?: HTMLElement) {\n let x = 0;\n let y = 0;\n while (\n el &&\n !Number.isNaN(el.offsetLeft) &&\n !Number.isNaN(el.offsetTop) &&\n el !== parent\n ) {\n x += el.offsetLeft - el.scrollLeft;\n y += el.offsetTop - el.scrollTop;\n el = el.offsetParent as HTMLElement | null;\n }\n return { top: y, left: x };\n}\n\n/**\n * Add the grab & move functionality to a certain element inside it's container.\n *\n * @param element Element to move.\n * @param onMoved Function to execute when the element moves.\n * @param altContainer Alternative element to contain the moved element.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addMovementListener(\n element: HTMLElement,\n onMoved: (x: Position[\"x\"], y: Position[\"y\"]) => void,\n altContainer?: HTMLElement\n): Function {\n const container = altContainer || (element.parentElement as HTMLElement);\n\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastX: Position[\"x\"] = 0;\n let lastY: Position[\"y\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementBounds = element.getBoundingClientRect();\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth) * 2;\n\n // Will run onMoved 32ms after its last execution.\n const debouncedMovement = debounce(32, onMoved);\n // Will run onMoved one time max every 16ms.\n const throttledMovement = throttle(16, onMoved);\n\n const handleMove = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let x = 0;\n let y = 0;\n\n const mouseX = e.pageX;\n const mouseY = e.pageY;\n const mouseDeltaX = mouseX - lastMouseX;\n const mouseDeltaY = mouseY - lastMouseY;\n\n const minX = 0;\n const maxX = containerBounds.width - elementBounds.width + borderFix;\n const minY = 0;\n const maxY = containerBounds.height - elementBounds.height + borderFix;\n\n const outOfBoundsLeft =\n mouseX < containerLeft ||\n (lastX === 0 &&\n mouseDeltaX > 0 &&\n mouseX < containerLeft + mouseElementOffsetX);\n const outOfBoundsRight =\n mouseX > containerRight ||\n mouseDeltaX + lastX + elementBounds.width - borderFix >\n containerBounds.width ||\n (lastX === maxX &&\n mouseDeltaX < 0 &&\n mouseX > containerLeft + maxX + mouseElementOffsetX);\n const outOfBoundsTop =\n mouseY < containerTop ||\n (lastY === 0 &&\n mouseDeltaY > 0 &&\n mouseY < containerTop + mouseElementOffsetY);\n const outOfBoundsBottom =\n mouseY > containerBottom ||\n mouseDeltaY + lastY + elementBounds.height - borderFix >\n containerBounds.height ||\n (lastY === maxY &&\n mouseDeltaY < 0 &&\n mouseY > containerTop + maxY + mouseElementOffsetY);\n\n if (outOfBoundsLeft) x = minX;\n else if (outOfBoundsRight) x = maxX;\n else x = mouseDeltaX + lastX;\n\n if (outOfBoundsTop) y = minY;\n else if (outOfBoundsBottom) y = maxY;\n else y = mouseDeltaY + lastY;\n\n if (x < 0) x = minX;\n if (y < 0) y = minY;\n\n // Store the last mouse coordinates.\n lastMouseX = mouseX;\n lastMouseY = mouseY;\n\n if (x === lastX && y === lastY) return;\n\n // Run the movement events.\n throttledMovement(x, y);\n debouncedMovement(x, y);\n\n // Store the coordinates of the element.\n lastX = x;\n lastY = y;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastX = 0;\n lastY = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleMove);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n // Avoid starting the movement on right click.\n if (e.button === 2) return;\n\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Fix for Firefox browser.\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const elementOffset = getOffset(element, container);\n lastX = elementOffset.left;\n lastY = elementOffset.top;\n\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementBounds = element.getBoundingClientRect();\n borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n borderFix = Number.parseInt(borderWidth) * 2;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleMove);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n element.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n element.removeEventListener(\"mousedown\", handleStart);\n handleEnd();\n };\n}\n\n/**\n * Add the grab & resize functionality to a certain element.\n *\n * @param element Element to move.\n * @param onResized Function to execute when the element is resized.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addResizementListener(\n element: HTMLElement,\n onResized: (x: Position[\"x\"], y: Position[\"y\"]) => void\n): Function {\n const minWidth = 15;\n const minHeight = 15;\n\n const resizeDraggable = document.createElement(\"div\");\n resizeDraggable.className = \"resize-draggable\";\n element.appendChild(resizeDraggable);\n\n // Container of the resizable element.\n const container = element.parentElement as HTMLElement;\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastWidth: Size[\"width\"] = 0;\n let lastHeight: Size[\"height\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Init the bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementOffset = getOffset(element);\n let elementTop = elementOffset.top;\n let elementLeft = elementOffset.left;\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth);\n\n // Will run onResized 32ms after its last execution.\n const debouncedResizement = debounce(32, onResized);\n // Will run onResized one time max every 16ms.\n const throttledResizement = throttle(16, onResized);\n\n const handleResize = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let width = lastWidth + (e.pageX - lastMouseX);\n let height = lastHeight + (e.pageY - lastMouseY);\n\n if (width === lastWidth && height === lastHeight) return;\n\n if (\n width < lastWidth &&\n e.pageX > elementLeft + (lastWidth - mouseElementOffsetX)\n )\n return;\n\n if (width < minWidth) {\n // Minimum value.\n width = minWidth;\n } else if (width + elementLeft - borderFix / 2 >= containerRight) {\n // Limit the size to the container.\n width = containerRight - elementLeft;\n }\n if (height < minHeight) {\n // Minimum value.\n height = minHeight;\n } else if (height + elementTop - borderFix / 2 >= containerBottom) {\n // Limit the size to the container.\n height = containerBottom - elementTop;\n }\n\n // Run the movement events.\n throttledResizement(width, height);\n debouncedResizement(width, height);\n\n // Store the coordinates of the element.\n lastWidth = width;\n lastHeight = height;\n // Store the last mouse coordinates.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastWidth = 0;\n lastHeight = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n mouseElementOffsetX = 0;\n mouseElementOffsetY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleResize);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const { width, height } = element.getBoundingClientRect();\n lastWidth = width;\n lastHeight = height;\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementOffset = getOffset(element);\n elementTop = elementOffset.top;\n elementLeft = elementOffset.left;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleResize);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n resizeDraggable.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n resizeDraggable.remove();\n handleEnd();\n };\n}\n\n// TODO: Document and code\nexport function t(text: string): string {\n return text;\n}\n\nexport function helpTip(text: string): HTMLElement {\n const container = document.createElement(\"a\");\n container.className = \"tip\";\n const icon = document.createElement(\"img\");\n icon.src = helpTipIcon;\n icon.className = \"forced_title\";\n icon.setAttribute(\"alt\", text);\n icon.setAttribute(\"data-title\", text);\n icon.setAttribute(\"data-use_title_for_force_title\", \"1\");\n\n container.appendChild(icon);\n\n return container;\n}\n\ninterface PeriodSelectorOption {\n value: number;\n text: string;\n}\nexport function periodSelector(\n selectedValue: PeriodSelectorOption[\"value\"] | null,\n emptyOption: PeriodSelectorOption | null,\n options: PeriodSelectorOption[],\n onChange: (value: PeriodSelectorOption[\"value\"]) => void\n): HTMLElement {\n if (selectedValue === null) selectedValue = 0;\n const initialValue = emptyOption ? emptyOption.value : 0;\n let currentValue: number =\n selectedValue != null ? selectedValue : initialValue;\n // Main container.\n const container = document.createElement(\"div\");\n // Container for the period selector.\n const periodsContainer = document.createElement(\"div\");\n const selectPeriods = document.createElement(\"select\");\n const useManualPeriodsBtn = document.createElement(\"a\");\n // Container for the custom period input.\n const manualPeriodsContainer = document.createElement(\"div\");\n const inputTimeValue = document.createElement(\"input\");\n const unitsSelect = document.createElement(\"select\");\n const usePeriodsBtn = document.createElement(\"a\");\n // Units to multiply the custom period input.\n const unitOptions: { value: string; text: string }[] = [\n { value: \"1\", text: t(\"Seconds\").toLowerCase() },\n { value: \"60\", text: t(\"Minutes\").toLowerCase() },\n { value: \"3600\", text: t(\"Hours\").toLowerCase() },\n { value: \"86400\", text: t(\"Days\").toLowerCase() },\n { value: \"604800\", text: t(\"Weeks\").toLowerCase() },\n { value: `${86400 * 30}`, text: t(\"Months\").toLowerCase() },\n { value: `${86400 * 30 * 12}`, text: t(\"Years\").toLowerCase() }\n ];\n\n // Will be executed every time the value changes.\n const handleChange = (value: number) => {\n currentValue = value;\n onChange(currentValue);\n };\n // Will return the first period option smaller than the value.\n const findPeriodsOption = (value: number) =>\n options\n .sort((a, b) => (a.value < b.value ? 1 : -1))\n .find(optionVal => value >= optionVal.value);\n // Will return the first multiple of the value using the custom input multipliers.\n const findManualPeriodsOptionValue = (value: number) =>\n unitOptions\n .map(unitOption => Number.parseInt(unitOption.value))\n .sort((a, b) => (a < b ? 1 : -1))\n .find(optionVal => value % optionVal === 0);\n // Will find and set a valid option for the period selector.\n const setPeriodsValue = (value: number) => {\n let option = findPeriodsOption(value);\n selectPeriods.value = `${option ? option.value : initialValue}`;\n };\n // Will transform the value to show the perfect fit for the custom input period.\n const setManualPeriodsValue = (value: number) => {\n const optionVal = findManualPeriodsOptionValue(value);\n if (optionVal) {\n inputTimeValue.value = `${value / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${value}`;\n unitsSelect.value = \"1\";\n }\n };\n\n // Will modify the value to show the perfect fit for this element and show its container.\n const showPeriods = () => {\n let option = findPeriodsOption(currentValue);\n const newValue = option ? option.value : initialValue;\n selectPeriods.value = `${newValue}`;\n\n if (newValue !== currentValue) handleChange(newValue);\n\n container.replaceChild(periodsContainer, manualPeriodsContainer);\n };\n // Will modify the value to show the perfect fit for this element and show its container.\n const showManualPeriods = () => {\n const optionVal = findManualPeriodsOptionValue(currentValue);\n\n if (optionVal) {\n inputTimeValue.value = `${currentValue / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${currentValue}`;\n unitsSelect.value = \"1\";\n }\n\n container.replaceChild(manualPeriodsContainer, periodsContainer);\n };\n\n // Append the elements\n\n periodsContainer.appendChild(selectPeriods);\n periodsContainer.appendChild(useManualPeriodsBtn);\n\n manualPeriodsContainer.appendChild(inputTimeValue);\n manualPeriodsContainer.appendChild(unitsSelect);\n manualPeriodsContainer.appendChild(usePeriodsBtn);\n\n if (\n options.find(option => option.value === selectedValue) ||\n (emptyOption && emptyOption.value === selectedValue)\n ) {\n // Start with the custom periods select.\n container.appendChild(periodsContainer);\n } else {\n // Start with the manual time input\n container.appendChild(manualPeriodsContainer);\n }\n\n // Set and fill the elements.\n\n // Periods selector.\n\n selectPeriods.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, initialValue)\n )\n );\n if (emptyOption) {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${emptyOption.value}`;\n optionElem.text = emptyOption.text;\n selectPeriods.appendChild(optionElem);\n }\n options.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n selectPeriods.appendChild(optionElem);\n });\n\n setPeriodsValue(selectedValue);\n\n useManualPeriodsBtn.appendChild(\n fontAwesomeIcon(faPencilAlt, t(\"Show manual period input\"), {\n size: \"small\"\n })\n );\n useManualPeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showManualPeriods();\n });\n\n // Manual periods input.\n\n inputTimeValue.type = \"number\";\n inputTimeValue.min = \"0\";\n inputTimeValue.required = true;\n inputTimeValue.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, 0) *\n parseIntOr(unitsSelect.value, 1)\n )\n );\n // Select for time units.\n unitsSelect.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr(inputTimeValue.value, 0) *\n parseIntOr((e.target as HTMLSelectElement).value, 1)\n )\n );\n unitOptions.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n unitsSelect.appendChild(optionElem);\n });\n\n setManualPeriodsValue(selectedValue);\n\n usePeriodsBtn.appendChild(\n fontAwesomeIcon(faListAlt, t(\"Show periods selector\"), { size: \"small\" })\n );\n usePeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showPeriods();\n });\n\n return container;\n}\n\n/**\n * Cuts the text if their length is greater than the selected max length\n * and applies the selected ellipse to the result text.\n * @param str Text to cut\n * @param max Maximum length after cutting the text\n * @param ellipse String to be added to the cutted text\n * @returns Full text or text cutted with the ellipse\n */\nexport function ellipsize(\n str: string,\n max: number = 140,\n ellipse: string = \"…\"\n): string {\n return str.trim().length > max ? str.substr(0, max).trim() + ellipse : str;\n}\n\n// TODO: Document\nexport function autocompleteInput(\n initialValue: string | null,\n onDataRequested: (value: string, done: (data: T[]) => void) => void,\n renderListElement: (data: T) => HTMLElement,\n onSelected: (data: T) => string\n): HTMLElement {\n const container = document.createElement(\"div\");\n container.classList.add(\"autocomplete\");\n\n const input = document.createElement(\"input\");\n input.type = \"text\";\n input.required = true;\n if (initialValue !== null) input.value = initialValue;\n\n const list = document.createElement(\"div\");\n list.classList.add(\"autocomplete-items\");\n\n const cleanList = () => {\n list.innerHTML = \"\";\n };\n\n input.addEventListener(\"keyup\", e => {\n const value = (e.target as HTMLInputElement).value;\n if (value) {\n onDataRequested(value, data => {\n cleanList();\n if (data instanceof Array) {\n data.forEach(item => {\n const listElement = renderListElement(item);\n listElement.addEventListener(\"click\", () => {\n input.value = onSelected(item);\n cleanList();\n });\n list.appendChild(listElement);\n });\n }\n });\n } else {\n cleanList();\n }\n });\n\n container.appendChild(input);\n container.appendChild(list);\n\n return container;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject\n} from \"../lib/types\";\n\nimport {\n modulePropsDecoder,\n linkedVCPropsDecoder,\n notEmptyStringOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type StaticGraphProps = {\n type: ItemType.STATIC_GRAPH;\n imageSrc: string; // URL?\n showLastValueTooltip: \"default\" | \"enabled\" | \"disabled\";\n statusImageSrc: string | null; // URL?\n lastValue: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param showLastValueTooltip Raw value.\n */\nconst parseShowLastValueTooltip = (\n showLastValueTooltip: unknown\n): StaticGraphProps[\"showLastValueTooltip\"] => {\n switch (showLastValueTooltip) {\n case \"default\":\n case \"enabled\":\n case \"disabled\":\n return showLastValueTooltip;\n default:\n return \"default\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function staticGraphPropsDecoder(\n data: AnyObject\n): StaticGraphProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.STATIC_GRAPH,\n imageSrc: data.imageSrc,\n showLastValueTooltip: parseShowLastValueTooltip(data.showLastValueTooltip),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n lastValue: notEmptyStringOr(data.lastValue, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class StaticGraph extends Item {\n protected createDomElement(): HTMLElement {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n const element = document.createElement(\"div\");\n element.className = \"static-graph\";\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n element.style.backgroundImage = `url(${imgSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Show last value in a tooltip.\n if (\n this.props.lastValue !== null &&\n this.props.showLastValueTooltip !== \"disabled\"\n ) {\n element.className = \"static-graph image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\"data-title\", this.props.lastValue);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n element.style.backgroundImage = `url(${imgSrc})`;\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type IconProps = {\n type: ItemType.ICON;\n image: string;\n imageSrc: string; // URL?\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the icon props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function iconPropsDecoder(data: AnyObject): IconProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n if (typeof data.image !== \"string\" || data.image.length === 0) {\n throw new TypeError(\"invalid image.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ICON,\n image: data.image,\n imageSrc: data.imageSrc,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Icon extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"icon \" + this.props.image;\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n }\n}\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\n","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject,\n WithAgentProps\n} from \"../lib/types\";\nimport { modulePropsDecoder, linkedVCPropsDecoder, t } from \"../lib\";\nimport Item, { itemBasePropsDecoder, ItemType, ItemProps } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport { faTrashAlt, faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ColorCloudProps = {\n type: ItemType.COLOR_CLOUD;\n color: string;\n defaultColor: string;\n colorRanges: {\n color: string;\n fromValue: number;\n toValue: number;\n }[];\n // TODO: Add the rest of the color cloud values?\n} & ItemProps &\n WithAgentProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function colorCloudPropsDecoder(\n data: AnyObject\n): ColorCloudProps | never {\n // TODO: Validate the color.\n if (typeof data.color !== \"string\" || data.color.length === 0) {\n throw new TypeError(\"invalid color.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.COLOR_CLOUD,\n color: data.color,\n defaultColor: data.defaultColor,\n colorRanges: data.colorRanges,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n/**\n * Class to add item to the Color cloud item form\n * This item consists of a label and a color type input color.\n * Element default color is stored in the color property\n */\nclass ColorInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group\";\n\n const colorLabel = document.createElement(\"label\");\n colorLabel.textContent = t(\"Default color\");\n\n generalDiv.appendChild(colorLabel);\n\n const ColorInput = document.createElement(\"input\");\n ColorInput.type = \"color\";\n ColorInput.required = true;\n\n ColorInput.value = `${this.currentData.defaultColor ||\n this.initialData.defaultColor ||\n \"#000000\"}`;\n\n ColorInput.addEventListener(\"change\", e => {\n this.updateData({\n defaultColor: (e.target as HTMLInputElement).value\n });\n });\n\n generalDiv.appendChild(ColorInput);\n\n return generalDiv;\n }\n}\n\ntype ColorRanges = ColorCloudProps[\"colorRanges\"];\ntype ColorRange = ColorRanges[0];\n\nclass RangesInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group div-ranges-input-group\";\n\n const rangesLabel = this.createLabel(\"Ranges\");\n\n generalDiv.appendChild(rangesLabel);\n\n const rangesControlsContainer = document.createElement(\"div\");\n const createdRangesContainer = document.createElement(\"div\");\n\n generalDiv.appendChild(createdRangesContainer);\n generalDiv.appendChild(rangesControlsContainer);\n\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n\n let buildRanges: (ranges: ColorRanges) => void;\n\n const handleRangeUpdatePartial = (index: number) => (\n range: ColorRange\n ): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n this.updateData({\n colorRanges: [\n ...colorRanges.slice(0, index),\n range,\n ...colorRanges.slice(index + 1)\n ]\n });\n };\n\n const handleDelete = (index: number) => () => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [\n ...colorRanges.slice(0, index),\n ...colorRanges.slice(index + 1)\n ];\n\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n const handleCreate = (range: ColorRange): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [...colorRanges, range];\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n buildRanges = ranges => {\n createdRangesContainer.innerHTML = \"\";\n ranges.forEach((colorRange, index) =>\n createdRangesContainer.appendChild(\n this.rangeContainer(\n colorRange,\n handleRangeUpdatePartial(index),\n handleDelete(index)\n )\n )\n );\n };\n\n buildRanges(colorRanges);\n\n rangesControlsContainer.appendChild(\n this.initialRangeContainer(handleCreate)\n );\n\n return generalDiv;\n }\n\n private initialRangeContainer(onCreate: (range: ColorRange) => void) {\n // TODO: Document\n const initialState = { color: \"#ffffff\" };\n\n let state: Partial = { ...initialState };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n };\n\n // User defined type guard.\n // Docs: https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards\n const isValid = (range: Partial): range is ColorRange =>\n typeof range.color !== \"undefined\" &&\n typeof range.toValue !== \"undefined\" &&\n typeof range.fromValue !== \"undefined\";\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(null, handleFromValue);\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(null, handleToValue);\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n initialState.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const createBtn = document.createElement(\"a\");\n createBtn.appendChild(\n fontAwesomeIcon(faPlusCircle, t(\"Create color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n\n const handleCreate = () => {\n if (isValid(state)) onCreate(state);\n state = initialState;\n rangesInputFromValue.value = `${state.fromValue || \"\"}`;\n rangesInputToValue.value = `${state.toValue || \"\"}`;\n rangesInputColor.value = `${state.color}`;\n };\n\n createBtn.addEventListener(\"click\", handleCreate);\n\n rangesContainer.appendChild(createBtn);\n\n return rangesContainer;\n }\n\n private rangeContainer(\n colorRange: ColorRange,\n onUpdate: (range: ColorRange) => void,\n onDelete: () => void\n ): HTMLDivElement {\n // TODO: Document\n const state = { ...colorRange };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n onUpdate({ ...state });\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n onUpdate({ ...state });\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n onUpdate({ ...state });\n };\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(\n colorRange.fromValue,\n handleFromValue\n );\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(\n colorRange.toValue,\n handleToValue\n );\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n colorRange.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const deleteBtn = document.createElement(\"a\");\n deleteBtn.appendChild(\n fontAwesomeIcon(faTrashAlt, t(\"Delete color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n deleteBtn.addEventListener(\"click\", onDelete);\n\n rangesContainer.appendChild(deleteBtn);\n\n return rangesContainer;\n }\n\n private createLabel(text: string): HTMLLabelElement {\n const label = document.createElement(\"label\");\n label.textContent = t(text);\n return label;\n }\n\n private createInputNumber(\n value: number | null,\n onUpdate: (value: number) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"number\";\n if (value !== null) input.value = `${value}`;\n input.addEventListener(\"change\", e => {\n const value = parseInt((e.target as HTMLInputElement).value);\n if (!isNaN(value)) onUpdate(value);\n });\n\n return input;\n }\n\n private createInputColor(\n value: string | null,\n onUpdate: (value: string) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"color\";\n if (value !== null) input.value = value;\n input.addEventListener(\"change\", e =>\n onUpdate((e.target as HTMLInputElement).value)\n );\n\n return input;\n }\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class ColorCloud extends Item {\n protected createDomElement(): HTMLElement {\n const container: HTMLDivElement = document.createElement(\"div\");\n container.className = \"color-cloud\";\n\n // Add the SVG.\n container.append(this.createSvgElement());\n\n return container;\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width);\n }\n\n public createSvgElement(): SVGSVGElement {\n const gradientId = `grad_${this.props.id}`;\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Defs.\n const defs = document.createElementNS(svgNS, \"defs\");\n // Radial gradient.\n const radialGradient = document.createElementNS(svgNS, \"radialGradient\");\n radialGradient.setAttribute(\"id\", gradientId);\n radialGradient.setAttribute(\"cx\", \"50%\");\n radialGradient.setAttribute(\"cy\", \"50%\");\n radialGradient.setAttribute(\"r\", \"50%\");\n radialGradient.setAttribute(\"fx\", \"50%\");\n radialGradient.setAttribute(\"fy\", \"50%\");\n // Stops.\n const stop0 = document.createElementNS(svgNS, \"stop\");\n stop0.setAttribute(\"offset\", \"0%\");\n stop0.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0.9`\n );\n const stop100 = document.createElementNS(svgNS, \"stop\");\n stop100.setAttribute(\"offset\", \"100%\");\n stop100.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0`\n );\n // Circle.\n const circle = document.createElementNS(svgNS, \"circle\");\n circle.setAttribute(\"fill\", `url(#${gradientId})`);\n circle.setAttribute(\"cx\", \"50%\");\n circle.setAttribute(\"cy\", \"50%\");\n circle.setAttribute(\"r\", \"50%\");\n\n // Append elements.\n radialGradient.append(stop0, stop100);\n defs.append(radialGradient);\n svg.append(defs, circle);\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n return svg;\n }\n\n /**\n * @override function to add or remove inputsGroups those that are not necessary.\n * Add to:\n * ColorInputGroup\n * RangesInputGroup\n */\n public getFormContainer(): FormContainer {\n return ColorCloud.getFormContainer(this.props);\n }\n\n public static getFormContainer(\n props: Partial\n ): FormContainer {\n const formContainer = super.getFormContainer(props);\n formContainer.removeInputGroup(\"label\");\n\n formContainer.addInputGroup(new ColorInputGroup(\"color-cloud\", props), 3);\n formContainer.addInputGroup(new RangesInputGroup(\"ranges-cloud\", props), 4);\n\n return formContainer;\n }\n}\n","import { AnyObject, Position, Size, ItemMeta } from \"../lib/types\";\nimport {\n parseIntOr,\n notEmptyStringOr,\n debounce,\n addMovementListener\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport TypedEvent, { Listener, Disposable } from \"../lib/TypedEvent\";\n\nexport interface LineProps extends ItemProps {\n // Overrided properties.\n type: number;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n startPosition: Position;\n endPosition: Position;\n lineWidth: number;\n color: string | null;\n viewportOffsetX: number;\n viewportOffsetY: number;\n labelEnd: string;\n labelStart: string;\n linkedEnd: number | null;\n linkedStart: number | null;\n labelEndWidth: number;\n labelEndHeight: number;\n labelStartWidth: number;\n labelStartHeight: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function linePropsDecoder(data: AnyObject): LineProps | never {\n const props: LineProps = {\n ...itemBasePropsDecoder({ ...data, width: 1, height: 1 }), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LINE_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Initialize Position & Size.\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // Custom properties.\n startPosition: {\n x: parseIntOr(data.startX, 0),\n y: parseIntOr(data.startY, 0)\n },\n endPosition: {\n x: parseIntOr(data.endX, 0),\n y: parseIntOr(data.endY, 0)\n },\n lineWidth: parseIntOr(data.lineWidth || data.borderWidth, 1),\n color: notEmptyStringOr(data.borderColor || data.color, null),\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n linkedEnd: data.linkedEnd,\n linkedStart: data.linkedStart,\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n\n /*\n * We need to enhance the props with the extracted size and position\n * of the box cause there are missing at the props update. A better\n * solution would be overriding the props setter to do it there, but\n * the language doesn't allow it while targetting ES5.\n * TODO: We need to figure out a more consistent solution.\n */\n\n return {\n ...props,\n // Enhance the props extracting the box size and position.\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...Line.extractBoxSizeAndPosition(props.startPosition, props.endPosition)\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface LineMovedEvent {\n item: Line;\n startPosition: LineProps[\"startPosition\"];\n endPosition: LineProps[\"endPosition\"];\n}\n\nexport default class Line extends Item {\n protected circleRadius = 8;\n // To control if the line movement is enabled.\n protected moveMode: boolean = false;\n // To control if the line is moving.\n protected isMoving: boolean = false;\n\n // Event manager for moved events.\n public readonly lineMovedEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n protected readonly lineMovedEventDisposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedStartPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const startPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeStartPositionMovement: Function | null = null;\n\n /**\n * Start the movement funtionality for the start position.\n * @param element Element to move inside its container.\n */\n protected initStartPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeStartPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n const startPosition = { x, y };\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n startPosition\n };\n\n // Run the end function.\n this.debouncedStartPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement fun\n */\n private stopStartPositionMovementListener(): void {\n if (this.removeStartPositionMovement) {\n this.removeStartPositionMovement();\n this.removeStartPositionMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedEndPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeEndPositionMovement: Function | null = null;\n\n /**\n * End the movement funtionality for the end position.\n * @param element Element to move inside its container.\n */\n protected initEndPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeEndPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n endPosition: { x, y }\n };\n\n // Run the end function.\n this.debouncedEndPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement function.\n */\n private stopEndPositionMovementListener(): void {\n if (this.removeEndPositionMovement) {\n this.removeEndPositionMovement();\n this.removeEndPositionMovement = null;\n }\n }\n\n /**\n * @override\n */\n public constructor(props: LineProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props,\n ...Line.extractBoxSizeAndPosition(\n props.startPosition,\n props.endPosition\n )\n },\n {\n ...meta\n },\n true\n );\n\n this.moveMode = meta.editMode;\n this.init();\n\n super.resizeElement(\n Math.max(props.width, props.viewportOffsetX),\n Math.max(props.height, props.viewportOffsetY)\n );\n }\n\n /**\n * Classic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n * @override Item.setProps\n */\n public setProps(newProps: LineProps) {\n super.setProps({\n ...newProps,\n ...Line.extractBoxSizeAndPosition(\n newProps.startPosition,\n newProps.endPosition\n )\n });\n }\n\n /**\n * Classic and protected version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newMetadata\n * @override Item.setMeta\n */\n public setMeta(newMetadata: ItemMeta) {\n this.moveMode = newMetadata.editMode;\n super.setMeta({\n ...newMetadata,\n lineMode: true\n });\n }\n\n /**\n * @override\n * To create the item's DOM representation.\n * @return Item.\n */\n protected createDomElement(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"line\";\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness,\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const line = document.createElementNS(svgNS, \"line\");\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n\n svg.append(line);\n element.append(svg);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n if (element.parentElement != null) {\n element.parentElement.style.cursor = \"default\";\n }\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n const svgs = element.getElementsByTagName(\"svg\");\n\n if (svgs.length > 0) {\n const svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n\n if (lines.length > 0) {\n const line = lines.item(0);\n\n if (line != null) {\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n }\n }\n }\n }\n\n if (this.moveMode) {\n let startCircle: HTMLElement = document.createElement(\"div\");\n let endCircle: HTMLElement = document.createElement(\"div\");\n\n if (this.isMoving) {\n const circlesStart = element.getElementsByClassName(\n \"visual-console-item-line-circle-start\"\n );\n if (circlesStart.length > 0) {\n const circle = circlesStart.item(0) as HTMLElement;\n if (circle) startCircle = circle;\n }\n const circlesEnd = element.getElementsByClassName(\n \"visual-console-item-line-circle-end\"\n );\n if (circlesEnd.length > 0) {\n const circle = circlesEnd.item(0) as HTMLElement;\n if (circle) endCircle = circle;\n }\n }\n\n startCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-start\"\n );\n startCircle.style.width = `${this.circleRadius * 2}px`;\n startCircle.style.height = `${this.circleRadius * 2}px`;\n startCircle.style.borderRadius = \"50%\";\n startCircle.style.backgroundColor = `${color}`;\n startCircle.style.position = \"absolute\";\n startCircle.style.left = `${x1 - this.circleRadius}px`;\n startCircle.style.top = `${y1 - this.circleRadius}px`;\n startCircle.style.cursor = `move`;\n\n endCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-end\"\n );\n endCircle.style.width = `${this.circleRadius * 2}px`;\n endCircle.style.height = `${this.circleRadius * 2}px`;\n endCircle.style.borderRadius = \"50%\";\n endCircle.style.backgroundColor = `${color}`;\n endCircle.style.position = \"absolute\";\n endCircle.style.left = `${x2 - this.circleRadius}px`;\n endCircle.style.top = `${y2 - this.circleRadius}px`;\n endCircle.style.cursor = `move`;\n\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n\n element.parentElement.appendChild(startCircle);\n element.parentElement.appendChild(endCircle);\n }\n\n // Init the movement listeners.\n this.initStartPositionMovementListener(\n startCircle,\n this.elementRef.parentElement as HTMLElement\n );\n this.initEndPositionMovementListener(\n endCircle,\n this.elementRef.parentElement as HTMLElement\n );\n } else if (!this.moveMode) {\n this.stopStartPositionMovementListener();\n // Remove circles.\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n }\n } else {\n this.stopStartPositionMovementListener();\n }\n }\n\n /**\n * Extract the size and position of the box from\n * the start and the finish of the line.\n * @param props Item properties.\n */\n public static extractBoxSizeAndPosition(\n startPosition: Position,\n endPosition: Position\n ): Size & Position {\n return {\n width: Math.abs(startPosition.x - endPosition.x),\n height: Math.abs(startPosition.y - endPosition.y),\n x: Math.min(startPosition.x, endPosition.x),\n y: Math.min(startPosition.y, endPosition.y)\n };\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n * @override item function\n */\n public move(x: number, y: number): void {\n super.moveElement(x, y);\n const startIsLeft =\n this.props.startPosition.x - this.props.endPosition.x <= 0;\n const startIsTop =\n this.props.startPosition.y - this.props.endPosition.y <= 0;\n\n const start = {\n x: startIsLeft ? x : this.props.width + x,\n y: startIsTop ? y : this.props.height + y\n };\n\n const end = {\n x: startIsLeft ? this.props.width + x : x,\n y: startIsTop ? this.props.height + y : y\n };\n\n this.props = {\n ...this.props,\n startPosition: start,\n endPosition: end\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override Item.remove\n */\n public remove(): void {\n // Clear the item's event listeners.\n this.stopStartPositionMovementListener();\n // Call the parent's .remove()\n super.remove();\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n *\n * @override Item.onMoved\n */\n public onLineMovementFinished(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.lineMovedEventDisposables.push(disposable);\n\n return disposable;\n }\n}\n","import { AnyObject, Position, ItemMeta } from \"../lib/types\";\nimport { debounce, notEmptyStringOr, parseIntOr } from \"../lib\";\nimport { ItemType } from \"../Item\";\nimport Line, { LineProps, linePropsDecoder } from \"./Line\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface NetworkLinkProps extends LineProps {\n // Overrided properties.\n type: number;\n labelStart: string;\n labelEnd: string;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function networkLinkPropsDecoder(\n data: AnyObject\n): NetworkLinkProps | never {\n return {\n ...linePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.NETWORK_LINK,\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n}\n\nexport default class NetworkLink extends Line {\n /**\n * @override\n */\n public constructor(props: NetworkLinkProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props\n },\n {\n ...meta\n }\n );\n\n this.render();\n }\n\n /**\n * @override\n */\n protected debouncedStartPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n\n const startPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n\n protected debouncedEndPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n\n protected updateDomElement(element: HTMLElement): void {\n super.updateDomElement(element);\n\n let {\n x, // Box x\n y, // Box y\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color, // Line color\n labelEnd,\n labelStart,\n labelEndWidth,\n labelEndHeight,\n labelStartWidth,\n labelStartHeight\n } = this.props;\n\n const svgs = element.getElementsByTagName(\"svg\");\n let line;\n let svg;\n\n if (svgs.length > 0) {\n svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n let groups = svg.getElementsByTagNameNS(svgNS, \"g\");\n while (groups.length > 0) {\n groups[0].remove();\n }\n\n if (lines.length > 0) {\n line = lines.item(0);\n }\n }\n } else {\n // No line or svg, no more actions are required.\n return;\n }\n\n if (svg == null || line == null) {\n // No more actionas are required.\n return;\n }\n\n // Font size and text adjustments.\n const fontsize = 10;\n const adjustment = 25;\n\n const lineX1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const lineX2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n let x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n let x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // Calculate angle (rotation).\n let rad = Math.atan2(lineY2 - lineY1, lineX2 - lineX1);\n let g = (rad * 180) / Math.PI;\n\n // Calculate effective 'text' box sizes.\n const fontheight = 25;\n if (labelStartWidth <= 0) {\n let lines = labelStart.split(\"
\");\n labelStartWidth = 0;\n lines.forEach(l => {\n if (l.length > labelStartWidth) {\n labelStartWidth = l.length * fontsize;\n }\n });\n if (labelStartHeight <= 0) {\n labelStartHeight = lines.length * fontheight;\n }\n }\n\n if (labelEndWidth <= 0) {\n let lines = labelEnd.split(\"
\");\n labelEndWidth = 0;\n lines.forEach(l => {\n if (l.length > labelEndWidth) {\n labelEndWidth = l.length * fontsize;\n }\n });\n if (labelEndHeight <= 0) {\n labelEndHeight = lines.length * fontheight;\n }\n }\n\n if (x1 < x2) {\n // x1 on left of x2.\n x1 += adjustment;\n x2 -= adjustment + labelEndWidth;\n }\n\n if (x1 > x2) {\n // x1 on right of x2.\n x1 -= adjustment + labelStartWidth;\n x2 += adjustment;\n }\n\n if (y1 < y2) {\n // y1 on y2.\n y1 += adjustment;\n y2 -= adjustment + labelEndHeight;\n }\n\n if (y1 > y2) {\n // y1 under y2.\n y1 -= adjustment + labelStartHeight;\n y2 += adjustment;\n }\n\n if (typeof color == \"undefined\") {\n color = \"#000\";\n }\n\n // Clean.\n if (element.parentElement !== null) {\n const labels = element.parentElement.getElementsByClassName(\n \"vc-item-nl-label\"\n );\n while (labels.length > 0) {\n const label = labels.item(0);\n if (label) label.remove();\n }\n\n const arrows = element.parentElement.getElementsByClassName(\n \"vc-item-nl-arrow\"\n );\n while (arrows.length > 0) {\n const arrow = arrows.item(0);\n if (arrow) arrow.remove();\n }\n }\n\n let arrowSize = lineWidth * 2;\n\n let arrowPosX = lineX1 + (lineX2 - lineX1) / 2 - arrowSize;\n let arrowPosY = lineY1 + (lineY2 - lineY1) / 2 - arrowSize;\n\n let arrowStart: HTMLElement = document.createElement(\"div\");\n arrowStart.classList.add(\"vc-item-nl-arrow\");\n arrowStart.style.position = \"absolute\";\n arrowStart.style.border = `${arrowSize}px solid transparent`;\n arrowStart.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowStart.style.left = `${arrowPosX}px`;\n arrowStart.style.top = `${arrowPosY}px`;\n arrowStart.style.transform = `rotate(${90 + g}deg)`;\n\n let arrowEnd: HTMLElement = document.createElement(\"div\");\n arrowEnd.classList.add(\"vc-item-nl-arrow\");\n arrowEnd.style.position = \"absolute\";\n arrowEnd.style.border = `${arrowSize}px solid transparent`;\n arrowEnd.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowEnd.style.left = `${arrowPosX}px`;\n arrowEnd.style.top = `${arrowPosY}px`;\n arrowEnd.style.transform = `rotate(${270 + g}deg)`;\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(arrowStart);\n element.parentElement.appendChild(arrowEnd);\n }\n\n if (labelStart != \"\") {\n let htmlLabelStart: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelStart.innerHTML = labelStart;\n htmlLabelStart.style.position = \"absolute\";\n htmlLabelStart.style.left = `${x1}px`;\n htmlLabelStart.style.top = `${y1}px`;\n htmlLabelStart.style.width = `${labelStartWidth}px`;\n htmlLabelStart.style.border = `2px solid ${color}`;\n\n htmlLabelStart.classList.add(\"vc-item-nl-label\", \"label-start\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelStart);\n }\n }\n\n if (labelEnd != \"\") {\n let htmlLabelEnd: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelEnd.innerHTML = labelEnd;\n htmlLabelEnd.style.position = \"absolute\";\n htmlLabelEnd.style.left = `${x2}px`;\n htmlLabelEnd.style.top = `${y2}px`;\n htmlLabelEnd.style.width = `${labelEndWidth}px`;\n htmlLabelEnd.style.border = `2px solid ${color}`;\n\n htmlLabelEnd.classList.add(\"vc-item-nl-label\", \"label-end\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelEnd);\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n stringIsEmpty,\n decodeBase64,\n parseBoolean,\n t\n} from \"../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../Item\";\n\nexport type GroupProps = {\n type: ItemType.GROUP_ITEM;\n groupId: number;\n imageSrc: string | null; // URL?\n statusImageSrc: string | null;\n showStatistics: boolean;\n html?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\nfunction extractHtml(data: AnyObject): string | null {\n if (!stringIsEmpty(data.html)) return data.html;\n if (!stringIsEmpty(data.encodedHtml)) return decodeBase64(data.encodedHtml);\n return null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the group props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function groupPropsDecoder(data: AnyObject): GroupProps | never {\n if (\n (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) &&\n data.encodedHtml === null\n ) {\n throw new TypeError(\"invalid image src.\");\n }\n if (parseIntOr(data.groupId, null) === null) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n const showStatistics = parseBoolean(data.showStatistics);\n const html = showStatistics ? extractHtml(data) : null;\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.GROUP_ITEM,\n groupId: parseInt(data.groupId),\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n showStatistics,\n html,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\nexport default class Group extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"group\";\n\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n element.innerHTML = \"\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n }\n}\n","import \"./styles.css\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n Size,\n ItemMeta\n} from \"../../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n parseBoolean,\n prefixedCssRules,\n notEmptyStringOr,\n humanDate,\n humanTime,\n t\n} from \"../../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../../Item\";\n\nexport type ClockProps = {\n type: ItemType.CLOCK;\n clockType: \"analogic\" | \"digital\";\n clockFormat: \"datetime\" | \"time\";\n clockTimezone: string;\n clockTimezoneOffset: number; // Offset of the timezone to UTC in seconds.\n showClockTimezone: boolean;\n color?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockType Raw value.\n */\nconst parseClockType = (clockType: unknown): ClockProps[\"clockType\"] => {\n switch (clockType) {\n case \"analogic\":\n case \"digital\":\n return clockType;\n default:\n return \"analogic\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockFormat Raw value.\n */\nconst parseClockFormat = (clockFormat: unknown): ClockProps[\"clockFormat\"] => {\n switch (clockFormat) {\n case \"datetime\":\n case \"time\":\n return clockFormat;\n default:\n return \"datetime\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the clock props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function clockPropsDecoder(data: AnyObject): ClockProps | never {\n if (\n typeof data.clockTimezone !== \"string\" ||\n data.clockTimezone.length === 0\n ) {\n throw new TypeError(\"invalid timezone.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.CLOCK,\n clockType: parseClockType(data.clockType),\n clockFormat: parseClockFormat(data.clockFormat),\n clockTimezone: data.clockTimezone,\n clockTimezoneOffset: parseIntOr(data.clockTimezoneOffset, 0),\n showClockTimezone: parseBoolean(data.showClockTimezone),\n color: notEmptyStringOr(data.color, null),\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Clock extends Item {\n public static readonly TICK_INTERVAL = 1000; // In ms.\n private intervalRef: number | null = null;\n\n public constructor(props: ClockProps, meta: ItemMeta) {\n // Call the superclass constructor.\n super(props, meta);\n\n /* The item is already loaded and inserted into the DOM.\n * The class properties are now initialized.\n * Now you can modify the item, add event handlers, timers, etc.\n */\n\n /* The use of the arrow function is important here. startTick will\n * use the function passed as an argument to call the global setInterval\n * function. The interval, timeout or event functions, among other, are\n * called into another execution loop and using a different context.\n * The arrow functions, unlike the classic functions, doesn't create\n * their own context (this), so their context at execution time will be\n * use the current context at the declaration time.\n * http://es6-features.org/#Lexicalthis\n */\n this.startTick(\n () => {\n // Replace the old element with the updated date.\n this.childElementRef.innerHTML = this.createClock().innerHTML;\n },\n /* The analogic clock doesn't need to tick,\n * but it will be refreshed every 20 seconds\n * to avoid a desync caused by page freezes.\n */\n this.props.clockType === \"analogic\" ? 20000 : Clock.TICK_INTERVAL\n );\n }\n\n /**\n * Wrap a window.clearInterval call.\n */\n private stopTick(): void {\n if (this.intervalRef !== null) {\n window.clearInterval(this.intervalRef);\n this.intervalRef = null;\n }\n }\n\n /**\n * Wrap a window.setInterval call.\n * @param handler Function to be called every time the interval\n * timer is reached.\n * @param interval Number in milliseconds for the interval timer.\n */\n private startTick(\n handler: TimerHandler,\n interval: number = Clock.TICK_INTERVAL\n ): void {\n this.stopTick();\n this.intervalRef = window.setInterval(handler, interval);\n }\n\n /**\n * Create a element which contains the DOM representation of the item.\n * @return DOM Element.\n * @override\n */\n protected createDomElement(): HTMLElement | never {\n return this.createClock();\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n this.props.width,\n this.props.height\n );\n\n if (this.props.clockType === \"digital\") {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(this.props.width, this.props.height);\n }\n element.classList.replace(\"analogic-clock\", \"digital-clock\");\n } else {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(newWidth, newHeight);\n }\n element.classList.replace(\"digital-clock\", \"analogic-clock\");\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override\n */\n public remove(): void {\n // Clear the interval.\n this.stopTick();\n // Call to the parent clean function.\n super.remove();\n }\n\n /**\n * @override Item.resizeElement\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n width,\n height\n );\n\n // Re-render the item to force it calculate a new font size.\n if (this.props.clockType === \"digital\") {\n super.resizeElement(width, height);\n // Replace the old element with the updated date.\n //this.childElementRef.innerHTML = this.createClock().innerHTML;\n } else {\n super.resizeElement(newWidth, newHeight);\n }\n }\n\n /**\n * Create a element which contains a representation of a clock.\n * It choose between the clock types.\n * @return DOM Element.\n * @throws Error.\n */\n private createClock(): HTMLElement | never {\n switch (this.props.clockType) {\n case \"analogic\":\n return this.createAnalogicClock();\n case \"digital\":\n return this.createDigitalClock();\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n\n /**\n * Create a element which contains a representation of an analogic clock.\n * @return DOM Element.\n */\n private createAnalogicClock(): HTMLElement {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const colors = {\n watchFace: \"#FFFFF0\",\n watchFaceBorder: \"#242124\",\n mark: \"#242124\",\n handDark: \"#242124\",\n handLight: \"#525252\",\n secondHand: \"#DC143C\"\n };\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 20; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * width) / 100;\n\n const div = document.createElement(\"div\");\n div.className = \"analogic-clock\";\n div.style.width = `${width}px`;\n div.style.height = `${height}px`;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Clock face.\n const clockFace = document.createElementNS(svgNS, \"g\");\n clockFace.setAttribute(\"class\", \"clockface\");\n const clockFaceBackground = document.createElementNS(svgNS, \"circle\");\n clockFaceBackground.setAttribute(\"cx\", \"50\");\n clockFaceBackground.setAttribute(\"cy\", \"50\");\n clockFaceBackground.setAttribute(\"r\", \"48\");\n clockFaceBackground.setAttribute(\"fill\", colors.watchFace);\n clockFaceBackground.setAttribute(\"stroke\", colors.watchFaceBorder);\n clockFaceBackground.setAttribute(\"stroke-width\", \"2\");\n clockFaceBackground.setAttribute(\"stroke-linecap\", \"round\");\n // Insert the clockface background into the clockface group.\n clockFace.append(clockFaceBackground);\n\n // Timezone complication.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const timezoneComplication = document.createElementNS(svgNS, \"text\");\n timezoneComplication.setAttribute(\"text-anchor\", \"middle\");\n timezoneComplication.setAttribute(\"font-size\", \"8\");\n timezoneComplication.setAttribute(\n \"transform\",\n \"translate(30 50) rotate(90)\" // Rotate to counter the clock rotation.\n );\n timezoneComplication.setAttribute(\"fill\", colors.mark);\n timezoneComplication.textContent = city;\n clockFace.append(timezoneComplication);\n }\n\n // Marks group.\n const marksGroup = document.createElementNS(svgNS, \"g\");\n marksGroup.setAttribute(\"class\", \"marks\");\n // Build the 12 hours mark.\n const mainMarkGroup = document.createElementNS(svgNS, \"g\");\n mainMarkGroup.setAttribute(\"class\", \"mark\");\n mainMarkGroup.setAttribute(\"transform\", \"translate(50 50)\");\n const mark1a = document.createElementNS(svgNS, \"line\");\n mark1a.setAttribute(\"x1\", \"36\");\n mark1a.setAttribute(\"y1\", \"0\");\n mark1a.setAttribute(\"x2\", \"46\");\n mark1a.setAttribute(\"y2\", \"0\");\n mark1a.setAttribute(\"stroke\", colors.mark);\n mark1a.setAttribute(\"stroke-width\", \"5\");\n const mark1b = document.createElementNS(svgNS, \"line\");\n mark1b.setAttribute(\"x1\", \"36\");\n mark1b.setAttribute(\"y1\", \"0\");\n mark1b.setAttribute(\"x2\", \"46\");\n mark1b.setAttribute(\"y2\", \"0\");\n mark1b.setAttribute(\"stroke\", colors.watchFace);\n mark1b.setAttribute(\"stroke-width\", \"1\");\n // Insert the 12 mark lines into their group.\n mainMarkGroup.append(mark1a, mark1b);\n // Insert the main mark into the marks group.\n marksGroup.append(mainMarkGroup);\n // Build the rest of the marks.\n for (let i = 1; i < 60; i++) {\n const mark = document.createElementNS(svgNS, \"line\");\n mark.setAttribute(\"y1\", \"0\");\n mark.setAttribute(\"y2\", \"0\");\n mark.setAttribute(\"stroke\", colors.mark);\n mark.setAttribute(\"transform\", `translate(50 50) rotate(${i * 6})`);\n\n if (i % 5 === 0) {\n mark.setAttribute(\"x1\", \"38\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", i % 15 === 0 ? \"2\" : \"1\");\n } else {\n mark.setAttribute(\"x1\", \"42\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", \"0.5\");\n }\n\n // Insert the mark into the marks group.\n marksGroup.append(mark);\n }\n\n /* Clock hands */\n\n // Hour hand.\n const hourHand = document.createElementNS(svgNS, \"g\");\n hourHand.setAttribute(\"class\", \"hour-hand\");\n hourHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const hourHandA = document.createElementNS(svgNS, \"line\");\n hourHandA.setAttribute(\"class\", \"hour-hand-a\");\n hourHandA.setAttribute(\"x1\", \"0\");\n hourHandA.setAttribute(\"y1\", \"0\");\n hourHandA.setAttribute(\"x2\", \"30\");\n hourHandA.setAttribute(\"y2\", \"0\");\n hourHandA.setAttribute(\"stroke\", colors.handLight);\n hourHandA.setAttribute(\"stroke-width\", \"4\");\n hourHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const hourHandB = document.createElementNS(svgNS, \"line\");\n hourHandB.setAttribute(\"class\", \"hour-hand-b\");\n hourHandB.setAttribute(\"x1\", \"0\");\n hourHandB.setAttribute(\"y1\", \"0\");\n hourHandB.setAttribute(\"x2\", \"29.9\");\n hourHandB.setAttribute(\"y2\", \"0\");\n hourHandB.setAttribute(\"stroke\", colors.handDark);\n hourHandB.setAttribute(\"stroke-width\", \"3.1\");\n hourHandB.setAttribute(\"stroke-linecap\", \"round\");\n // Append the elements to finish the hour hand.\n hourHand.append(hourHandA, hourHandB);\n\n // Minute hand.\n const minuteHand = document.createElementNS(svgNS, \"g\");\n minuteHand.setAttribute(\"class\", \"minute-hand\");\n minuteHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const minuteHandA = document.createElementNS(svgNS, \"line\");\n minuteHandA.setAttribute(\"class\", \"minute-hand-a\");\n minuteHandA.setAttribute(\"x1\", \"0\");\n minuteHandA.setAttribute(\"y1\", \"0\");\n minuteHandA.setAttribute(\"x2\", \"40\");\n minuteHandA.setAttribute(\"y2\", \"0\");\n minuteHandA.setAttribute(\"stroke\", colors.handLight);\n minuteHandA.setAttribute(\"stroke-width\", \"2\");\n minuteHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const minuteHandB = document.createElementNS(svgNS, \"line\");\n minuteHandB.setAttribute(\"class\", \"minute-hand-b\");\n minuteHandB.setAttribute(\"x1\", \"0\");\n minuteHandB.setAttribute(\"y1\", \"0\");\n minuteHandB.setAttribute(\"x2\", \"39.9\");\n minuteHandB.setAttribute(\"y2\", \"0\");\n minuteHandB.setAttribute(\"stroke\", colors.handDark);\n minuteHandB.setAttribute(\"stroke-width\", \"1.5\");\n minuteHandB.setAttribute(\"stroke-linecap\", \"round\");\n const minuteHandPin = document.createElementNS(svgNS, \"circle\");\n minuteHandPin.setAttribute(\"r\", \"3\");\n minuteHandPin.setAttribute(\"fill\", colors.handDark);\n // Append the elements to finish the minute hand.\n minuteHand.append(minuteHandA, minuteHandB, minuteHandPin);\n\n // Second hand.\n const secondHand = document.createElementNS(svgNS, \"g\");\n secondHand.setAttribute(\"class\", \"second-hand\");\n secondHand.setAttribute(\"transform\", \"translate(50 50)\");\n const secondHandBar = document.createElementNS(svgNS, \"line\");\n secondHandBar.setAttribute(\"x1\", \"0\");\n secondHandBar.setAttribute(\"y1\", \"0\");\n secondHandBar.setAttribute(\"x2\", \"46\");\n secondHandBar.setAttribute(\"y2\", \"0\");\n secondHandBar.setAttribute(\"stroke\", colors.secondHand);\n secondHandBar.setAttribute(\"stroke-width\", \"1\");\n secondHandBar.setAttribute(\"stroke-linecap\", \"round\");\n const secondHandPin = document.createElementNS(svgNS, \"circle\");\n secondHandPin.setAttribute(\"r\", \"2\");\n secondHandPin.setAttribute(\"fill\", colors.secondHand);\n // Append the elements to finish the second hand.\n secondHand.append(secondHandBar, secondHandPin);\n\n // Pin.\n const pin = document.createElementNS(svgNS, \"circle\");\n pin.setAttribute(\"cx\", \"50\");\n pin.setAttribute(\"cy\", \"50\");\n pin.setAttribute(\"r\", \"0.3\");\n pin.setAttribute(\"fill\", colors.handDark);\n\n // Get the hand angles.\n const date = this.getOriginDate();\n const seconds = date.getSeconds();\n const minutes = date.getMinutes();\n const hours = date.getHours();\n const secAngle = (360 / 60) * seconds;\n const minuteAngle = (360 / 60) * minutes + (360 / 60) * (seconds / 60);\n const hourAngle = (360 / 12) * hours + (360 / 12) * (minutes / 60);\n // Set the clock time by moving the hands.\n hourHand.setAttribute(\"transform\", `translate(50 50) rotate(${hourAngle})`);\n minuteHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${minuteAngle})`\n );\n secondHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${secAngle})`\n );\n\n // Build the clock\n svg.append(clockFace, marksGroup, hourHand, minuteHand, secondHand, pin);\n // Rotate the clock to its normal position.\n svg.setAttribute(\"transform\", \"rotate(-90)\");\n\n /* Add the animation declaration to the container.\n * Since the animation keyframes need to know the\n * start angle, this angle is dynamic (current time),\n * and we can't edit keyframes through javascript\n * safely and with backwards compatibility, we need\n * to inject it.\n */\n div.innerHTML = `\n \n `;\n // Add the clock to the container\n div.append(svg);\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n div.append(dateElem);\n }\n\n return div;\n }\n\n /**\n * Create a element which contains a representation of a digital clock.\n * @return DOM Element.\n */\n private createDigitalClock(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"digital-clock\";\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n let modified = width;\n if (height < width) {\n modified = height;\n }\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 35; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const tzFontSizeMultiplier = 6 / this.props.clockTimezone.length;\n const timeFontSize = (baseTimeFontSize * modified) / 100;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * modified) / 100;\n const tzFontSize = Math.min(\n (baseTimeFontSize * tzFontSizeMultiplier * modified) / 100,\n (width / 100) * 10\n );\n\n // Date calculated using the original timezone.\n const date = this.getOriginDate();\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n element.append(dateElem);\n }\n\n // Time.\n const timeElem: HTMLSpanElement = document.createElement(\"span\");\n timeElem.className = \"time\";\n timeElem.textContent = humanTime(date);\n timeElem.style.fontSize = `${timeFontSize}px`;\n if (this.props.color) timeElem.style.color = this.props.color;\n element.append(timeElem);\n\n // City name.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const tzElem: HTMLSpanElement = document.createElement(\"span\");\n tzElem.className = \"timezone\";\n tzElem.textContent = city;\n tzElem.style.fontSize = `${tzFontSize}px`;\n if (this.props.color) tzElem.style.color = this.props.color;\n element.append(tzElem);\n }\n\n return element;\n }\n\n /**\n * Generate the current date using the timezone offset stored into the properties.\n * @return The current date.\n */\n private getOriginDate(initialDate: Date | null = null): Date {\n const d = initialDate ? initialDate : new Date();\n const targetTZOffset = this.props.clockTimezoneOffset * 1000; // In ms.\n const localTZOffset = d.getTimezoneOffset() * 60 * 1000; // In ms.\n const utimestamp = d.getTime() + targetTZOffset + localTZOffset;\n\n return new Date(utimestamp);\n }\n\n /**\n * Extract a human readable city name from the timezone text.\n * @param timezone Timezone text.\n */\n public getHumanTimezone(timezone: string = this.props.clockTimezone): string {\n const [, city = \"\"] = timezone.split(\"/\");\n return city.replace(\"_\", \" \");\n }\n\n /**\n * Generate a element size using the current size and the default values.\n * @return The size.\n */\n private getElementSize(\n width: number = this.props.width,\n height: number = this.props.height\n ): Size {\n switch (this.props.clockType) {\n case \"analogic\": {\n let diameter = 100; // Default value.\n\n if (width > 0 && height > 0) {\n diameter = Math.min(width, height);\n } else if (width > 0) {\n diameter = width;\n } else if (height > 0) {\n diameter = height;\n }\n\n let extraHeigth = 0;\n if (this.props.clockFormat === \"datetime\") {\n extraHeigth = height / 8;\n }\n\n return {\n width: diameter,\n height: diameter + extraHeigth\n };\n }\n case \"digital\": {\n if (width > 0 && height > 0) {\n // The proportion of the clock should be (width = height / 2) aproximately.\n height = width / 2 < height ? width / 2 : height;\n } else if (width > 0) {\n height = width / 2;\n } else if (height > 0) {\n // The proportion of the clock should be (height * 2 = width) aproximately.\n width = height * 2;\n } else {\n width = 100; // Default value.\n height = 50; // Default value.\n }\n\n return {\n width,\n height\n };\n }\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport { parseIntOr, notEmptyStringOr, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\ninterface BoxProps extends ItemProps {\n // Overrided properties.\n readonly type: ItemType.BOX_ITEM;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n borderWidth: number;\n borderColor: string | null;\n fillColor: string | null;\n fillTransparent: boolean | null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function boxPropsDecoder(data: AnyObject): BoxProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BOX_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Custom properties.\n borderWidth: parseIntOr(data.borderWidth, 0),\n borderColor: notEmptyStringOr(data.borderColor, null),\n fillColor: notEmptyStringOr(data.fillColor, null),\n fillTransparent: data.fillTransparent\n };\n}\n\nexport default class Box extends Item {\n protected createDomElement(): HTMLElement {\n const box: HTMLDivElement = document.createElement(\"div\");\n box.className = \"box\";\n // To prevent this item to expand beyond its parent.\n box.style.boxSizing = \"border-box\";\n\n if (this.props.fillTransparent) {\n box.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n box.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n box.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n box.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n box.style.borderColor = this.props.borderColor;\n }\n }\n\n return box;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.fillTransparent) {\n element.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n element.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n element.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n element.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n element.style.borderColor = this.props.borderColor;\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type LabelProps = {\n type: ItemType.LABEL;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the label props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function labelPropsDecoder(data: AnyObject): LabelProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LABEL,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Label extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"label\";\n element.innerHTML = this.getLabelWithMacrosReplaced();\n\n return element;\n }\n\n /**\n * @override Item.createLabelDomElement\n * Create a new label for the visual console item.\n * @return Item label.\n */\n public createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n modulePropsDecoder,\n replaceMacros\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type SimpleValueProps = {\n type: ItemType.SIMPLE_VALUE;\n valueType: \"string\" | \"image\";\n value: string;\n} & (\n | {\n processValue: \"none\";\n }\n | {\n processValue: \"avg\" | \"max\" | \"min\";\n period: number;\n }\n) &\n ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw value type.\n * @param valueType Raw value.\n */\nconst parseValueType = (valueType: unknown): SimpleValueProps[\"valueType\"] => {\n switch (valueType) {\n case \"string\":\n case \"image\":\n return valueType;\n default:\n return \"string\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw process value.\n * @param processValue Raw value.\n */\nconst parseProcessValue = (\n processValue: unknown\n): SimpleValueProps[\"processValue\"] => {\n switch (processValue) {\n case \"none\":\n case \"avg\":\n case \"max\":\n case \"min\":\n return processValue;\n default:\n return \"none\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the simple value props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function simpleValuePropsDecoder(\n data: AnyObject\n): SimpleValueProps | never {\n if (typeof data.value !== \"string\" || data.value.length === 0) {\n throw new TypeError(\"invalid value\");\n }\n\n const processValue = parseProcessValue(data.processValue);\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SIMPLE_VALUE,\n valueType: parseValueType(data.valueType),\n value: data.value,\n ...(processValue === \"none\"\n ? { processValue }\n : { processValue, period: parseIntOr(data.period, 0) }), // Object spread. It will merge the properties of the two objects.\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class SimpleValue extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"simple-value\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n if (this.props.valueType === \"image\") {\n const img = document.createElement(\"img\");\n img.src = this.props.value;\n element.append(img);\n } else {\n // Add the value to the label and show it.\n let text = this.props.value;\n let label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n text = replaceMacros([{ macro: /\\(?_VALUE_\\)?/i, value: text }], label);\n }\n\n element.innerHTML = text;\n }\n\n return element;\n }\n\n /**\n * Generate a element size\n * using the current size and the default values.\n * @return The size.\n */ protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { arc as arcFactory } from \"d3-shape\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n notEmptyStringOr,\n parseIntOr,\n parseFloatOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type PercentileProps = {\n type: ItemType.PERCENTILE_BAR;\n percentileType:\n | \"progress-bar\"\n | \"bubble\"\n | \"circular-progress-bar\"\n | \"circular-progress-bar-alt\";\n valueType: \"percent\" | \"value\";\n minValue: number | null;\n maxValue: number | null;\n color: string | null;\n labelColor: string | null;\n value: number | null;\n unit: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw type value.\n * @param type Raw value.\n */\nfunction extractPercentileType(\n type: unknown\n): PercentileProps[\"percentileType\"] {\n switch (type) {\n case \"progress-bar\":\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n return type;\n default:\n case ItemType.PERCENTILE_BAR:\n return \"progress-bar\";\n case ItemType.PERCENTILE_BUBBLE:\n return \"bubble\";\n case ItemType.CIRCULAR_PROGRESS_BAR:\n return \"circular-progress-bar\";\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return \"circular-progress-bar-alt\";\n }\n}\n\n/**\n * Extract a valid enum value from a raw value type value.\n * @param type Raw value.\n */\nfunction extractValueType(valueType: unknown): PercentileProps[\"valueType\"] {\n switch (valueType) {\n case \"percent\":\n case \"value\":\n return valueType;\n default:\n return \"percent\";\n }\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the percentile props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function percentilePropsDecoder(\n data: AnyObject\n): PercentileProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.PERCENTILE_BAR,\n percentileType: extractPercentileType(data.percentileType || data.type),\n valueType: extractValueType(data.valueType),\n minValue: parseIntOr(data.minValue, null),\n maxValue: parseIntOr(data.maxValue, null),\n color: notEmptyStringOr(data.color, null),\n labelColor: notEmptyStringOr(data.labelColor, null),\n value: parseFloatOr(data.value, null),\n unit: notEmptyStringOr(data.unit, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class Percentile extends Item {\n protected createDomElement(): HTMLElement {\n const colors = {\n background: \"#000000\",\n progress: this.props.color || \"#F0F0F0\",\n text: this.props.labelColor || \"#444444\"\n };\n // Progress.\n const progress = this.getProgress();\n // Main element.\n const element = document.createElement(\"div\");\n\n var formatValue;\n if (this.props.value != null) {\n if (Intl) {\n formatValue = Intl.NumberFormat(\"en-EN\").format(this.props.value);\n } else {\n formatValue = this.props.value;\n }\n }\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n\n switch (this.props.percentileType) {\n case \"progress-bar\":\n {\n const backgroundRect = document.createElementNS(svgNS, \"rect\");\n backgroundRect.setAttribute(\"fill\", colors.background);\n backgroundRect.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundRect.setAttribute(\"width\", \"100%\");\n backgroundRect.setAttribute(\"height\", \"100%\");\n backgroundRect.setAttribute(\"rx\", \"5\");\n backgroundRect.setAttribute(\"ry\", \"5\");\n const progressRect = document.createElementNS(svgNS, \"rect\");\n progressRect.setAttribute(\"fill\", colors.progress);\n progressRect.setAttribute(\"fill-opacity\", \"1\");\n progressRect.setAttribute(\"width\", `${progress}%`);\n progressRect.setAttribute(\"height\", \"100%\");\n progressRect.setAttribute(\"rx\", \"5\");\n progressRect.setAttribute(\"ry\", \"5\");\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"15\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\n \"transform\",\n `translate(${this.props.width / 2}, 17.5)`\n );\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\") {\n text.style.fontSize = \"6pt\";\n\n text.textContent = this.props.unit\n ? `${formatValue} ${this.props.unit}`\n : `${formatValue}`;\n } else {\n text.textContent = `${progress}%`;\n }\n\n svg.setAttribute(\"width\", \"100%\");\n svg.setAttribute(\"height\", \"100%\");\n svg.append(backgroundRect, progressRect, text);\n }\n break;\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n {\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n if (this.props.percentileType === \"bubble\") {\n // Create and append the circles.\n const backgroundCircle = document.createElementNS(svgNS, \"circle\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"r\", \"50\");\n const progressCircle = document.createElementNS(svgNS, \"circle\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\"r\", `${progress / 2}`);\n\n svg.append(backgroundCircle, progressCircle);\n } else {\n // Create and append the circles.\n const arcProps = {\n innerRadius:\n this.props.percentileType === \"circular-progress-bar\" ? 30 : 0,\n outerRadius: 50,\n startAngle: 0,\n endAngle: Math.PI * 2\n };\n const arc = arcFactory();\n\n const backgroundCircle = document.createElementNS(svgNS, \"path\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"d\", `${arc(arcProps)}`);\n const progressCircle = document.createElementNS(svgNS, \"path\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\n \"d\",\n `${arc({\n ...arcProps,\n endAngle: arcProps.endAngle * (progress / 100)\n })}`\n );\n\n svg.append(backgroundCircle, progressCircle);\n }\n\n // Create and append the text.\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"16\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\" && this.props.value != null) {\n // Show value and unit in 1 (no unit) or 2 lines.\n if (this.props.unit && this.props.unit.length > 0) {\n const value = document.createElementNS(svgNS, \"tspan\");\n value.setAttribute(\"x\", \"0\");\n value.setAttribute(\"dy\", \"1em\");\n value.textContent = `${formatValue}`;\n value.style.fontSize = \"8pt\";\n const unit = document.createElementNS(svgNS, \"tspan\");\n unit.setAttribute(\"x\", \"0\");\n unit.setAttribute(\"dy\", \"1em\");\n unit.textContent = `${this.props.unit}`;\n unit.style.fontSize = \"8pt\";\n text.append(value, unit);\n text.setAttribute(\"transform\", \"translate(50 33)\");\n } else {\n text.textContent = `${formatValue}`;\n text.style.fontSize = \"8pt\";\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n } else {\n // Percentage.\n text.textContent = `${progress}%`;\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n\n svg.append(text);\n }\n break;\n }\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n if (svg !== null) element.append(svg);\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.meta.isBeingResized === false) {\n this.resizeElement(this.props.width, this.props.height);\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected resizeElement(width: number, height: number): void {\n if (this.props.percentileType === \"progress-bar\") {\n super.resizeElement(width, 35);\n } else {\n super.resizeElement(width, width);\n }\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(width, width);\n let height = this.props.maxValue || 0;\n if (this.props.percentileType === \"progress-bar\") {\n height = 35;\n }\n super.setProps({\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n });\n }\n\n private getProgress(): number {\n const minValue = this.props.minValue || 0;\n const maxValue = this.props.maxValue || 100;\n const value = this.props.value == null ? 0 : this.props.value;\n\n if (value <= minValue) return 0;\n else if (value >= maxValue) return 100;\n else return Math.trunc(((value - minValue) / (maxValue - minValue)) * 100);\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport {\n stringIsEmpty,\n notEmptyStringOr,\n decodeBase64,\n parseIntOr,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport {\n faCircleNotch,\n faExclamationCircle\n} from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ServiceProps = {\n type: ItemType.SERVICE;\n serviceId: number;\n imageSrc: string | null;\n statusImageSrc: string | null;\n encodedTitle: string | null;\n} & ItemProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the service props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function servicePropsDecoder(data: AnyObject): ServiceProps | never {\n if (data.imageSrc !== null) {\n if (\n typeof data.statusImageSrc !== \"string\" ||\n data.imageSrc.statusImageSrc === 0\n ) {\n throw new TypeError(\"invalid status image src.\");\n }\n } else {\n if (stringIsEmpty(data.encodedTitle)) {\n throw new TypeError(\"missing encode tittle content.\");\n }\n }\n\n if (parseIntOr(data.serviceId, null) === null) {\n throw new TypeError(\"invalid service id.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SERVICE,\n serviceId: data.serviceId,\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n encodedTitle: notEmptyStringOr(data.encodedTitle, null)\n };\n}\n\nexport default class Service extends Item {\n public createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"service\";\n\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n element.innerHTML = \"\";\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\n\nimport { modulePropsDecoder, parseIntOr, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type OdometerProps = {\n type: ItemType.ODOMETER;\n value: number;\n status: string;\n title: string | null;\n titleModule: string;\n titleColor: string;\n odometerType: string;\n thresholds: string | any;\n minMaxValue: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function odometerPropsDecoder(data: AnyObject): OdometerProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ODOMETER,\n value: parseIntOr(data.value, 0),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n titleColor: stringIsEmpty(data.titleColor) ? \"#3f3f3f\" : data.titleColor,\n title: stringIsEmpty(data.title) ? \"\" : data.title,\n titleModule: stringIsEmpty(data.titleModule) ? \"\" : data.titleModule,\n thresholds: stringIsEmpty(data.thresholds) ? \"\" : data.thresholds,\n minMaxValue: stringIsEmpty(data.minMaxValue) ? \"\" : data.minMaxValue,\n odometerType: stringIsEmpty(data.odometerType)\n ? \"percent\"\n : data.odometerType,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Odometer extends Item {\n protected createDomElement(): HTMLElement {\n let lineWarning = \"\";\n let lineWarning2 = \"\";\n let lineCritical = \"\";\n let lineCritical2 = \"\";\n\n if (this.props.thresholds !== \"\") {\n const thresholds = JSON.parse(this.props.thresholds);\n\n if (thresholds !== null) {\n if (thresholds.min_warning != 0 || thresholds.max_warning != 0) {\n lineWarning = this.getCoords(\n thresholds.min_warning,\n this.props.width / 2\n );\n if (thresholds.max_warning == 0) {\n lineWarning2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineWarning2 = this.getCoords(\n thresholds.max_warning,\n this.props.width / 2\n );\n }\n }\n\n if (thresholds.min_critical != 0 || thresholds.max_critical != 0) {\n lineCritical = this.getCoords(\n thresholds.min_critical,\n this.props.width / 2\n );\n if (thresholds.max_critical == 0) {\n lineCritical2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineCritical2 = this.getCoords(\n thresholds.max_critical,\n this.props.width / 2\n );\n }\n }\n }\n }\n\n let percent = \"\";\n let number;\n // Float\n if (\n Number(this.props.value) === this.props.value &&\n this.props.value % 1 !== 0\n ) {\n number = this.props.value.toFixed(1);\n } else {\n if (this.props.minMaxValue === \"\") {\n percent = \" %\";\n } else {\n percent = this.getSubfix(this.props.value);\n }\n number = new Intl.NumberFormat(\"es\", {\n maximumSignificantDigits: 4,\n maximumFractionDigits: 3\n }).format(this.props.value);\n }\n\n var numb = number.match(/\\d*\\.\\d/);\n if (numb !== null) {\n number = numb[0];\n }\n\n const rotate = this.getRotate(this.props.value);\n\n let backgroundColor = document.getElementById(\n \"visual-console-container\"\n ) as HTMLElement;\n\n if (backgroundColor === null) {\n backgroundColor = document.getElementById(\n `visual-console-container-${this.props.cellId}`\n ) as HTMLElement;\n }\n\n if (backgroundColor.style.backgroundColor == \"\") {\n backgroundColor.style.backgroundColor = \"#fff\";\n }\n\n const anchoB = this.props.width * 0.7;\n\n const element = document.createElement(\"div\");\n element.className = \"odometer\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Odometer container.\n const odometerContainer = document.createElement(\"div\");\n odometerContainer.className = \"odometer-container\";\n\n // Central semicircle.\n const odometerA = document.createElement(\"div\");\n odometerA.className = \"odometer-a\";\n odometerA.style.backgroundColor = `${backgroundColor.style.backgroundColor}`;\n\n // Semicircle rotating with the value.\n const odometerB = document.createElement(\"div\");\n odometerB.className = \"odometer-b\";\n odometerB.id = `odometerB-${this.props.id}`;\n odometerB.style.backgroundColor = `${this.props.status}`;\n\n // Dark semicircle.\n const odometerC = document.createElement(\"div\");\n odometerC.className = \"odometer-c\";\n\n // Green outer semicircle.\n const gaugeE = document.createElement(\"div\");\n gaugeE.className = \"odometer-d\";\n\n const SVG_NS = \"http://www.w3.org/2000/svg\";\n // Portion of threshold warning\n if (lineWarning != \"\") {\n const svgWarning = document.createElementNS(SVG_NS, \"svg\");\n svgWarning.setAttributeNS(null, \"width\", \"100%\");\n svgWarning.setAttributeNS(null, \"height\", \"100%\");\n svgWarning.setAttributeNS(null, \"style\", \"position:absolute;z-index:1\");\n const pathWarning = document.createElementNS(SVG_NS, \"path\");\n pathWarning.setAttributeNS(null, \"id\", `svgWarning-${this.props.id}`);\n pathWarning.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineWarning}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineWarning2}Z`\n );\n pathWarning.setAttributeNS(null, \"class\", \"svg_warning\");\n svgWarning.appendChild(pathWarning);\n odometerContainer.appendChild(svgWarning);\n }\n\n // Portion of threshold critical\n if (lineCritical != \"\") {\n const svgCritical = document.createElementNS(SVG_NS, \"svg\");\n svgCritical.setAttributeNS(null, \"width\", \"100%\");\n svgCritical.setAttributeNS(null, \"height\", \"100%\");\n svgCritical.setAttributeNS(null, \"style\", \"position:absolute;z-index:2\");\n const pathCritical = document.createElementNS(SVG_NS, \"path\");\n pathCritical.setAttributeNS(null, \"id\", `svgCritical-${this.props.id}`);\n pathCritical.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineCritical}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineCritical2}Z`\n );\n pathCritical.setAttributeNS(null, \"fill\", \"#E63C52\");\n svgCritical.appendChild(pathCritical);\n odometerContainer.appendChild(svgCritical);\n }\n\n // Text.\n const h1 = document.createElement(\"h1\");\n h1.innerText = number + percent;\n h1.style.fontSize = `${anchoB * 0.17}px`;\n h1.style.color = `${this.props.status}`;\n h1.style.lineHeight = \"0\";\n\n const h2 = document.createElement(\"h2\");\n if (this.props.title == \"\") {\n h2.textContent = this.truncateTitle(this.props.moduleName);\n } else {\n h2.textContent = this.truncateTitle(this.props.title);\n }\n h2.title = this.props.titleModule;\n h2.setAttribute(\"title\", this.props.titleModule);\n\n h2.style.fontSize = `${anchoB * 0.06}px`;\n h2.style.color = `${this.props.titleColor}`;\n h2.style.lineHeight = \"0\";\n\n let script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.onload = () => {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n };\n var url_pandora = window.location.pathname.split(\"/\")[1];\n script.src = `${document.dir}/${url_pandora}/include/javascript/pandora_alerts.js`;\n odometerA.appendChild(h1);\n odometerA.appendChild(h2);\n odometerContainer.appendChild(odometerB);\n odometerContainer.appendChild(odometerC);\n odometerContainer.appendChild(gaugeE);\n odometerContainer.appendChild(odometerA);\n odometerContainer.appendChild(script);\n element.appendChild(odometerContainer);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n\n let rotate = this.getRotate(this.props.value);\n\n const svgWarning = document.getElementById(`svgWarning-${this.props.id}`);\n if (svgWarning != null) {\n svgWarning.style.display = \"none\";\n }\n\n const svgCritical = document.getElementById(`svgCritical-${this.props.id}`);\n if (svgCritical != null) {\n svgCritical.style.display = \"none\";\n }\n\n setTimeout(() => {\n if (svgWarning != null) {\n svgWarning.style.display = \"block\";\n }\n\n if (svgCritical != null) {\n svgCritical.style.display = \"block\";\n }\n\n var odometerB = document.getElementById(`odometerB-${this.props.id}`);\n if (odometerB) {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n }\n }, 500);\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width / 2);\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(this.props.width);\n }\n\n private getRotate(value: number): number {\n let rotate = 0;\n if (this.props.minMaxValue === \"\") {\n rotate = value / 2 / 100;\n } else {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === value) {\n rotate = 0;\n } else if (minMax[\"max\"] === value) {\n rotate = 0.5;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n const valueMax = minMax[\"max\"] - value;\n rotate = (100 - (valueMax * 100) / limit) / 100 / 2;\n }\n }\n\n return rotate;\n }\n\n private getSubfix(value: number): string {\n let subfix = \"\";\n const length = (value + \"\").length;\n if (length > 3 && length <= 6) {\n subfix = \" K\";\n } else if (length > 6 && length <= 9) {\n subfix = \" M\";\n } else if (length > 9 && length <= 12) {\n subfix = \" G\";\n } else if (length > 12 && length <= 15) {\n subfix = \" T\";\n }\n\n return subfix;\n }\n\n private getCoords(percent: number, radio: number): string {\n if (this.props.minMaxValue !== \"\") {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === percent) {\n percent = 0;\n } else if (minMax[\"max\"] === percent || percent === 100) {\n percent = 100;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n let valueMax = minMax[\"max\"] - percent;\n percent = 100 - (valueMax * 100) / limit;\n }\n }\n\n percent = 180 - percent * 1.8;\n const x = radio + Math.cos((percent * Math.PI) / 180) * radio;\n const y = radio - Math.sin((percent * Math.PI) / 180) * radio;\n return `${x},${y}`;\n }\n\n private truncateTitle(title: any): string {\n if (title != null && title.length > 22) {\n const halfLength = title.length / 2;\n const diff = halfLength - 9;\n const stringBefore = title.substr(0, halfLength - diff);\n const stringAfter = title.substr(halfLength + diff);\n\n return `${stringBefore}...${stringAfter}`;\n } else {\n return title;\n }\n }\n}\n","import { AnyObject, Size, Position, WithModuleProps } from \"./lib/types\";\nimport {\n parseBoolean,\n sizePropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n itemMetaDecoder,\n t,\n ellipsize,\n debounce\n} from \"./lib\";\nimport Item, {\n ItemType,\n ItemProps,\n ItemClickEvent,\n ItemRemoveEvent,\n ItemMovedEvent,\n ItemResizedEvent,\n ItemSelectionChangedEvent\n} from \"./Item\";\nimport StaticGraph, { staticGraphPropsDecoder } from \"./items/StaticGraph\";\nimport Icon, { iconPropsDecoder } from \"./items/Icon\";\nimport ColorCloud, { colorCloudPropsDecoder } from \"./items/ColorCloud\";\nimport NetworkLink, { networkLinkPropsDecoder } from \"./items/NetworkLink\";\nimport Group, { groupPropsDecoder } from \"./items/Group\";\nimport Clock, { clockPropsDecoder } from \"./items/Clock\";\nimport Box, { boxPropsDecoder } from \"./items/Box\";\nimport Line, { linePropsDecoder, LineMovedEvent } from \"./items/Line\";\nimport Label, { labelPropsDecoder } from \"./items/Label\";\nimport SimpleValue, { simpleValuePropsDecoder } from \"./items/SimpleValue\";\nimport EventsHistory, {\n eventsHistoryPropsDecoder\n} from \"./items/EventsHistory\";\nimport Percentile, { percentilePropsDecoder } from \"./items/Percentile\";\nimport TypedEvent, { Disposable, Listener } from \"./lib/TypedEvent\";\nimport DonutGraph, { donutGraphPropsDecoder } from \"./items/DonutGraph\";\nimport BarsGraph, { barsGraphPropsDecoder } from \"./items/BarsGraph\";\nimport ModuleGraph, { moduleGraphPropsDecoder } from \"./items/ModuleGraph\";\nimport Service, { servicePropsDecoder } from \"./items/Service\";\nimport Odometer, { odometerPropsDecoder } from \"./items/Odometer\";\nimport BasicChart, { basicChartPropsDecoder } from \"./items/BasicChart\";\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction itemInstanceFrom(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n const meta = itemMetaDecoder(data);\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return new StaticGraph(staticGraphPropsDecoder(data), meta);\n case ItemType.MODULE_GRAPH:\n return new ModuleGraph(moduleGraphPropsDecoder(data), meta);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return new SimpleValue(simpleValuePropsDecoder(data), meta);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return new Percentile(percentilePropsDecoder(data), meta);\n case ItemType.LABEL:\n return new Label(labelPropsDecoder(data), meta);\n case ItemType.ICON:\n return new Icon(iconPropsDecoder(data), meta);\n case ItemType.SERVICE:\n return new Service(servicePropsDecoder(data), meta);\n case ItemType.GROUP_ITEM:\n return new Group(groupPropsDecoder(data), meta);\n case ItemType.BOX_ITEM:\n return new Box(boxPropsDecoder(data), meta);\n case ItemType.LINE_ITEM:\n return new Line(linePropsDecoder(data), meta);\n case ItemType.AUTO_SLA_GRAPH:\n return new EventsHistory(eventsHistoryPropsDecoder(data), meta);\n case ItemType.DONUT_GRAPH:\n return new DonutGraph(donutGraphPropsDecoder(data), meta);\n case ItemType.BARS_GRAPH:\n return new BarsGraph(barsGraphPropsDecoder(data), meta);\n case ItemType.CLOCK:\n return new Clock(clockPropsDecoder(data), meta);\n case ItemType.COLOR_CLOUD:\n return new ColorCloud(colorCloudPropsDecoder(data), meta);\n case ItemType.NETWORK_LINK:\n return new NetworkLink(networkLinkPropsDecoder(data), meta);\n case ItemType.ODOMETER:\n return new Odometer(odometerPropsDecoder(data), meta);\n case ItemType.BASIC_CHART:\n return new BasicChart(basicChartPropsDecoder(data), meta);\n default:\n throw new TypeError(\"item not found\");\n }\n}\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction decodeProps(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return staticGraphPropsDecoder(data);\n case ItemType.MODULE_GRAPH:\n return moduleGraphPropsDecoder(data);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return simpleValuePropsDecoder(data);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return percentilePropsDecoder(data);\n case ItemType.LABEL:\n return labelPropsDecoder(data);\n case ItemType.ICON:\n return iconPropsDecoder(data);\n case ItemType.SERVICE:\n return servicePropsDecoder(data);\n case ItemType.GROUP_ITEM:\n return groupPropsDecoder(data);\n case ItemType.BOX_ITEM:\n return boxPropsDecoder(data);\n case ItemType.LINE_ITEM:\n return linePropsDecoder(data);\n case ItemType.AUTO_SLA_GRAPH:\n return eventsHistoryPropsDecoder(data);\n case ItemType.DONUT_GRAPH:\n return donutGraphPropsDecoder(data);\n case ItemType.BARS_GRAPH:\n return barsGraphPropsDecoder(data);\n case ItemType.CLOCK:\n return clockPropsDecoder(data);\n case ItemType.COLOR_CLOUD:\n return colorCloudPropsDecoder(data);\n case ItemType.NETWORK_LINK:\n return networkLinkPropsDecoder(data);\n case ItemType.ODOMETER:\n return odometerPropsDecoder(data);\n case ItemType.BASIC_CHART:\n return basicChartPropsDecoder(data);\n default:\n throw new TypeError(\"decoder not found\");\n }\n}\n\n// Base properties.\nexport interface VisualConsoleProps extends Size {\n readonly id: number;\n name: string;\n groupId: number;\n backgroundURL: string | null; // URL?\n backgroundColor: string | null;\n isFavorite: boolean;\n relationLineWidth: number;\n maintenanceMode: MaintenanceModeInterface | null;\n}\n\nexport interface MaintenanceModeInterface {\n user: string;\n timestamp: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the Visual Console props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function visualConsolePropsDecoder(\n data: AnyObject\n): VisualConsoleProps | never {\n // Object destructuring: http://es6-features.org/#ObjectMatchingShorthandNotation\n const {\n id,\n name,\n groupId,\n backgroundURL,\n backgroundColor,\n isFavorite,\n relationLineWidth,\n maintenanceMode\n } = data;\n\n if (id == null || isNaN(parseInt(id))) {\n throw new TypeError(\"invalid Id.\");\n }\n if (typeof name !== \"string\" || name.length === 0) {\n throw new TypeError(\"invalid name.\");\n }\n if (groupId == null || isNaN(parseInt(groupId))) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n return {\n id: parseInt(id),\n name,\n groupId: parseInt(groupId),\n backgroundURL: notEmptyStringOr(backgroundURL, null),\n backgroundColor: notEmptyStringOr(backgroundColor, null),\n isFavorite: parseBoolean(isFavorite),\n relationLineWidth: parseIntOr(relationLineWidth, 0),\n maintenanceMode: maintenanceMode,\n ...sizePropsDecoder(data)\n };\n}\n\nexport default class VisualConsole {\n // Reference to the DOM element which will contain the items.\n private readonly containerRef: HTMLElement;\n // Properties.\n private _props: VisualConsoleProps;\n // Visual Console Item instances by their Id.\n private elementsById: {\n [key: number]: Item;\n } = {};\n // Visual Console Item Ids.\n private elementIds: ItemProps[\"id\"][] = [];\n // Dictionary which store the created lines.\n private relations: {\n [key: string]: Line;\n } = {};\n\n // Dictionary which store the related items (by ID).\n private lineLinks: {\n [key: number]: { [key: number]: { [key: string]: number } };\n } = {};\n\n private lines: {\n [key: number]: { [key: string]: number };\n } = {};\n\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for move events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for line move events.\n private readonly lineMovedEventManager = new TypedEvent();\n // Event manager for resize events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for remove events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n /**\n * React to a click on an element.\n * @param e Event object.\n */\n private handleElementClick: (e: ItemClickEvent) => void = e => {\n this.clickEventManager.emit(e);\n // console.log(`Clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a double click on an element.\n * @param e Event object.\n */\n private handleElementDblClick: (e: ItemClickEvent) => void = e => {\n this.dblClickEventManager.emit(e);\n // console.log(`Double clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a movement on an element.\n * @param e Event object.\n */\n private handleElementMovement: (e: ItemMovedEvent) => void = e => {\n // Move their relation lines.\n const itemId = e.item.props.id;\n const relations = this.getItemRelations(itemId);\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n }\n });\n\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, false);\n\n // console.log(`Moved element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a movement finished on an element.\n * @param e Event object.\n */\n private handleElementMovementFinished: (e: ItemMovedEvent) => void = e => {\n this.movedEventManager.emit(e);\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, true);\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Verifies if x,y are inside item coordinates.\n * @param x Coordinate X\n * @param y Coordinate Y\n * @param item ItemProps instance.\n */\n private coordinatesInItem(x: number, y: number, props: ItemProps) {\n if (\n props.type == ItemType.LINE_ITEM ||\n props.type == ItemType.NETWORK_LINK\n ) {\n return false;\n }\n\n if (\n x > props.x &&\n x < props.x + props.width &&\n y > props.y &&\n y < props.y + props.height\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * React to a line movement.\n * @param e Event object.\n */\n private handleLineElementMovementFinished: (\n e: LineMovedEvent\n ) => void = e => {\n // Update links.\n this.refreshLink(e.item);\n\n // Build line relationships between items and lines.\n this.lineMovedEventManager.emit(e);\n\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a resizement on an element.\n * @param e Event object.\n */\n private handleElementResizement: (e: ItemResizedEvent) => void = e => {\n // Move their relation lines.\n const item = e.item;\n const props = item.props;\n const itemId = props.id;\n const relations = this.getItemRelations(itemId);\n\n const position = {\n x: props.x,\n y: props.y\n };\n\n const meta = this.elementsById[itemId].meta;\n\n this.elementsById[itemId].meta = {\n ...meta,\n isUpdating: true\n };\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(position, item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(position, item)\n };\n }\n });\n\n // console.log(`Resized element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a finished resizement on an element.\n * @param e Event object.\n */\n private handleElementResizementFinished: (\n e: ItemResizedEvent\n ) => void = e => {\n this.resizedEventManager.emit(e);\n // console.log(`Resize fonished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Clear some element references.\n * @param e Event object.\n */\n private handleElementRemove: (e: ItemRemoveEvent) => void = e => {\n // Remove the element from the list and its relations.\n this.elementIds = this.elementIds.filter(id => id !== e.item.props.id);\n delete this.elementsById[e.item.props.id];\n this.clearRelations(e.item.props.id);\n };\n\n /**\n * React to element selection change\n * @param e Event object.\n */\n private handleElementSelectionChanged: (\n e: ItemSelectionChangedEvent\n ) => void = e => {\n if (this.elements.filter(item => item.meta.isSelected == true).length > 0) {\n e.selected = true;\n } else {\n e.selected = false;\n }\n this.selectionChangedEventManager.emit(e);\n };\n\n // TODO: Document\n private handleContainerClick: (e: MouseEvent) => void = () => {\n this.unSelectItems();\n };\n\n /**\n * Refresh link for given line.\n *\n * @param line Line.\n */\n protected refreshLink(l: Line) {\n let line: number = l.props.id;\n let itemAtStart = 0;\n let itemAtEnd = 0;\n\n try {\n for (let i in this.elementsById) {\n if (\n this.coordinatesInItem(\n l.props.startPosition.x,\n l.props.startPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtStart = parseInt(i);\n }\n\n if (\n this.coordinatesInItem(\n l.props.endPosition.x,\n l.props.endPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtEnd = parseInt(i);\n }\n }\n\n if (this.lineLinks == null) {\n this.lineLinks = {};\n }\n\n if (this.lines == null) {\n this.lines = {};\n }\n\n if (itemAtStart == line) {\n itemAtStart = 0;\n }\n\n if (itemAtEnd == line) {\n itemAtEnd = 0;\n }\n\n // Initialize line if not registered.\n if (this.lines[line] == null) {\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n }\n\n // Register 'start' side of the line.\n if (itemAtStart > 0) {\n // Initialize.\n if (this.lineLinks[itemAtStart] == null) {\n this.lineLinks[itemAtStart] = {};\n }\n\n // Assign.\n this.lineLinks[itemAtStart][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Register line if not exists prviously.\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"start\"] > 0) {\n this.lineLinks[this.lines[line][\"start\"]][line][\"start\"] = 0;\n this.lines[line][\"start\"] = 0;\n }\n }\n\n if (itemAtEnd > 0) {\n if (this.lineLinks[itemAtEnd] == null) {\n this.lineLinks[itemAtEnd] = {};\n }\n\n this.lineLinks[itemAtEnd][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"end\"] > 0) {\n this.lineLinks[this.lines[line][\"end\"]][line][\"end\"] = 0;\n this.lines[line][\"end\"] = 0;\n }\n }\n\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Cleanup.\n for (let i in this.lineLinks) {\n if (this.lineLinks[i][line]) {\n if (\n this.lineLinks[i][line].start == 0 &&\n this.lineLinks[i][line].end == 0\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n\n if (\n (this.lineLinks[i][line].start != itemAtStart &&\n this.lineLinks[i][line].end == itemAtEnd) ||\n (this.lineLinks[i][line].start == itemAtStart &&\n this.lineLinks[i][line].end != itemAtEnd)\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n /**\n * Updates lines connected to this item.\n *\n * @param item Item moved.\n * @param newPosition New location for item.\n * @param oldPosition Old location for item.\n * @param save Save to ajax or not.\n */\n protected updateLinesConnected(item: ItemProps, to: Position, save: boolean) {\n if (this.lineLinks[item.id] == null) {\n return;\n }\n\n Object.keys(this.lineLinks[item.id]).forEach(i => {\n let lineId = parseInt(i);\n const found = this.elementIds.indexOf(lineId);\n if (found === -1) {\n return;\n }\n let line = this.elementsById[lineId] as Line;\n if (line.props) {\n let startX = line.props.startPosition.x;\n let startY = line.props.startPosition.y;\n let endX = line.props.endPosition.x;\n let endY = line.props.endPosition.y;\n\n if (item.id == this.lineLinks[item.id][lineId][\"start\"]) {\n startX = to.x + item.width / 2;\n startY = to.y + item.height / 2;\n }\n\n if (item.id == this.lineLinks[item.id][lineId][\"end\"]) {\n endX = to.x + item.width / 2;\n endY = to.y + item.height / 2;\n }\n\n // Update line movement.\n this.updateElement({\n ...line.props,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n\n if (save) {\n let debouncedLinePositionSave = debounce(\n 500,\n (options: AnyObject) => {\n this.lineMovedEventManager.emit({\n item: options.line,\n startPosition: {\n x: options.startX,\n y: options.startY\n },\n endPosition: {\n x: options.endX,\n y: options.endY\n }\n });\n }\n );\n\n // Save line positon.\n debouncedLinePositionSave({\n line: line,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n }\n }\n });\n\n // Update parents...\n this.buildRelations(item.id, to.x + item.width / 2, to.y + item.height / 2);\n }\n\n public constructor(\n container: HTMLElement,\n props: AnyObject,\n items: AnyObject[]\n ) {\n this.containerRef = container;\n this._props = visualConsolePropsDecoder(props);\n\n // Force the first render.\n this.render();\n\n // Sort by id ASC\n items = items.sort(function(a, b) {\n if (a.id == null || b.id == null) return 0;\n else if (a.id > b.id) return 1;\n else return -1;\n });\n\n // Initialize the items.\n items.forEach(item => this.addElement(item, this));\n\n // Create lines.\n this.buildRelations();\n\n // Re-attach all connected lines if any.\n this.elements.forEach(item => {\n if (item instanceof Line) {\n this.refreshLink(item);\n }\n });\n\n this.containerRef.addEventListener(\"click\", this.handleContainerClick);\n }\n\n /**\n * Public accessor of the `elements` property.\n * @return Properties.\n */\n public get elements(): Item[] {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n return this.elementIds\n .map(id => this.elementsById[id])\n .filter(_ => _ != null) as Item[];\n }\n\n /**\n * To create a new element add it to the DOM.\n * @param item. Raw representation of the item's data.\n */\n public addElement(item: AnyObject, context: this = this) {\n try {\n const itemInstance = itemInstanceFrom(item);\n // Add the item to the list.\n context.elementsById[itemInstance.props.id] = itemInstance;\n context.elementIds.push(itemInstance.props.id);\n // Item event handlers.\n itemInstance.onRemove(context.handleElementRemove);\n itemInstance.onSelectionChanged(context.handleElementSelectionChanged);\n itemInstance.onClick(context.handleElementClick);\n itemInstance.onDblClick(context.handleElementDblClick);\n\n // TODO:Continue\n if (itemInstance instanceof Line) {\n itemInstance.onLineMovementFinished(\n context.handleLineElementMovementFinished\n );\n this.refreshLink(itemInstance);\n } else {\n itemInstance.onMoved(context.handleElementMovement);\n itemInstance.onMovementFinished(context.handleElementMovementFinished);\n itemInstance.onResized(context.handleElementResizement);\n itemInstance.onResizeFinished(context.handleElementResizementFinished);\n }\n\n // Add the item to the DOM.\n context.containerRef.append(itemInstance.elementRef);\n return itemInstance;\n } catch (error) {\n console.error(\"Error creating a new element:\", (error as Error).message);\n }\n return;\n }\n\n /**\n * Public setter of the `elements` property.\n * @param items.\n */\n public updateElements(items: AnyObject[]): void {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n const itemIds = items\n .map(item => item.id || null)\n .filter(id => id != null) as number[];\n // Get the elements we should delete.\n const deletedIds = this.elementIds.filter(id => itemIds.indexOf(id) < 0);\n // Delete the elements.\n deletedIds.forEach(id => {\n if (this.elementsById[id] != null) {\n this.elementsById[id].remove();\n delete this.elementsById[id];\n }\n });\n // Replace the element ids.\n this.elementIds = itemIds;\n\n // Initialize the items.\n items.forEach(item => {\n if (item.id) {\n if (this.elementsById[item.id] == null) {\n // New item.\n this.addElement(item);\n } else {\n // Update item.\n try {\n this.elementsById[item.id].props = decodeProps(item);\n } catch (error) {\n console.error(\n \"Error updating an element:\",\n (error as Error).message\n );\n }\n }\n }\n });\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public setter of the `element` property.\n * @param item.\n */\n public updateElement(item: AnyObject): void {\n // Update item.\n try {\n this.elementsById[item.id].props = {\n ...decodeProps(item)\n };\n } catch (error) {\n console.error(\"Error updating element:\", (error as Error).message);\n }\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): VisualConsoleProps {\n return { ...this._props }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: VisualConsoleProps) {\n const prevProps = this.props;\n // Update the internal props.\n this._props = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Re-render.\n this.render(prevProps);\n }\n\n /**\n * Recreate or update the HTMLElement which represents the Visual Console into the DOM.\n * @param prevProps If exists it will be used to only DOM updates instead of a full replace.\n */\n public render(prevProps: VisualConsoleProps | null = null): void {\n if (prevProps) {\n if (prevProps.backgroundURL !== this.props.backgroundURL) {\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n }\n if (this.props.backgroundColor != null)\n if (prevProps.backgroundColor !== this.props.backgroundColor) {\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n }\n if (this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n }\n } else {\n if (this.props.backgroundURL)\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n\n if (this.props.backgroundColor)\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n this.resizeElement(this.props.width, this.props.height);\n }\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n public sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM container.\n * @param width\n * @param height\n */\n public resizeElement(width: number, height: number): void {\n this.containerRef.style.width = `${width}px`;\n this.containerRef.style.height = `${height}px`;\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.props = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n this.disposables.forEach(d => d.dispose()); // Arrow function.\n this.elements.forEach(e => e.remove()); // Arrow function.\n this.elementsById = {};\n this.elementIds = [];\n // Clear relations.\n this.clearRelations();\n // Remove the click event listener.\n this.containerRef.removeEventListener(\"click\", this.handleContainerClick);\n // Clean container.\n this.containerRef.innerHTML = \"\";\n }\n\n /**\n * Create line elements which connect the elements with their parents.\n *\n * When itemId is being moved, overwrite position of the 'parent' or 'child'\n * endpoints of the line, using X and Y values.\n */\n public buildRelations(itemId?: number, x?: number, y?: number): void {\n // Clear relations.\n this.clearRelations();\n // Add relations.\n this.elements.forEach(item => {\n if (item.props.parentId !== null) {\n const parent = this.elementsById[item.props.parentId];\n const child = this.elementsById[item.props.id];\n\n if (parent && child) {\n if (itemId != undefined) {\n if (item.props.parentId == itemId) {\n // Update parent line position.\n this.addRelationLine(parent, child, x, y);\n } else if (item.props.id == itemId) {\n // Update child line position.\n this.addRelationLine(parent, child, undefined, undefined, x, y);\n } else {\n this.addRelationLine(parent, child);\n }\n } else {\n // No movements default behaviour.\n this.addRelationLine(parent, child);\n }\n }\n }\n });\n }\n\n /**\n * @param itemId Optional identifier of a parent or child item.\n * Remove the line elements which connect the elements with their parents.\n */\n private clearRelations(itemId?: number): void {\n if (itemId != null) {\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n } else {\n for (let key in this.relations) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n }\n\n /**\n * Retrieve the line element which represent the relation between items.\n * @param parentId Identifier of the parent item.\n * @param childId Itentifier of the child item.\n * @return The line element or nothing.\n */\n private getRelationLine(parentId: number, childId: number): Line | null {\n const identifier = `${parentId}|${childId}`;\n return this.relations[identifier] || null;\n }\n\n // TODO: Document.\n private getItemRelations(\n itemId: number\n ): {\n parentId: number;\n childId: number;\n line: Line;\n }[] {\n const itemRelations = [];\n\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n itemRelations.push({\n parentId,\n childId,\n line: this.relations[key]\n });\n }\n }\n\n return itemRelations;\n }\n\n /**\n * Retrieve the visual center of the item. It's ussually the center of the\n * content, like the label doesn't exist.\n * @param position Initial position.\n * @param element Element we want to use.\n */\n private getVisualCenter(\n position: Position,\n element: Item\n ): Position {\n let x = position.x + element.elementRef.clientWidth / 2;\n let y = position.y + element.elementRef.clientHeight / 2;\n if (\n typeof element.props.label !== \"undefined\" ||\n element.props.label !== \"\" ||\n element.props.label !== null\n ) {\n switch (element.props.labelPosition) {\n case \"up\":\n y =\n position.y +\n (element.elementRef.clientHeight +\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"down\":\n y =\n position.y +\n (element.elementRef.clientHeight -\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"right\":\n x =\n position.x +\n (element.elementRef.clientWidth -\n element.labelElementRef.clientWidth) /\n 2;\n break;\n case \"left\":\n x =\n position.x +\n (element.elementRef.clientWidth +\n element.labelElementRef.clientWidth) /\n 2;\n break;\n }\n }\n return { x, y };\n }\n\n /**\n * Add a new line item to represent a relation between the items.\n * @param parent Parent item.\n * @param child Child item.\n * @return Whether the line was added or not.\n */\n private addRelationLine(\n parent: Item,\n child: Item,\n parentX?: number,\n parentY?: number,\n childX?: number,\n childY?: number\n ): Line {\n const identifier = `${parent.props.id}|${child.props.id}`;\n if (this.relations[identifier] != null) {\n this.relations[identifier].remove();\n }\n\n // Get the items center.\n let { x: startX, y: startY } = this.getVisualCenter(parent.props, parent);\n let { x: endX, y: endY } = this.getVisualCenter(child.props, child);\n\n // Overwrite positions if needed (while moving it!).\n if (parentX != null) {\n startX = parentX;\n }\n\n if (parentY != null) {\n startY = parentY;\n }\n\n if (childX != null) {\n endX = childX;\n }\n\n if (childY != null) {\n endY = childY;\n }\n\n // Line inherits child element status.\n const line = new Line(\n linePropsDecoder({\n id: 0,\n type: ItemType.LINE_ITEM,\n startX,\n startY,\n endX,\n endY,\n width: 0,\n height: 0,\n lineWidth: this.props.relationLineWidth,\n color: notEmptyStringOr(child.props.colorStatus, \"#CCC\")\n }),\n itemMetaDecoder({\n receivedAt: new Date()\n })\n );\n // Save a reference to the line item.\n this.relations[identifier] = line;\n\n // Add the line to the DOM.\n line.elementRef.style.zIndex = \"0\";\n this.containerRef.append(line.elementRef);\n\n return line;\n }\n\n /**\n * Add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onItemClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onItemDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console line elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onLineMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the resizement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the elements selection change of the visual console .\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Enable the edition mode.\n */\n public enableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: true };\n });\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Disable the edition mode.\n */\n public disableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: false };\n });\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Enable the maintenance mode.\n */\n public enableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: true };\n });\n this.containerRef.classList.add(\"is-maintenance\");\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Disable the maintenance mode.\n */\n public disableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: false };\n });\n this.containerRef.classList.remove(\"is-maintenance\");\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(itemId: number, unique: boolean = false): void {\n if (unique) {\n this.elementIds.forEach(currentItemId => {\n const meta = this.elementsById[currentItemId].meta;\n\n if (currentItemId !== itemId && meta.isSelected) {\n this.elementsById[currentItemId].unSelectItem();\n } else if (currentItemId === itemId && !meta.isSelected) {\n this.elementsById[currentItemId].selectItem();\n }\n });\n } else if (this.elementsById[itemId]) {\n this.elementsById[itemId].selectItem();\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(itemId: number): void {\n if (this.elementsById[itemId]) {\n const meta = this.elementsById[itemId].meta;\n\n if (meta.isSelected) {\n this.elementsById[itemId].unSelectItem();\n }\n }\n }\n\n /**\n * Unselect all items.\n */\n public unSelectItems(): void {\n this.elementIds.forEach(itemId => {\n if (this.elementsById[itemId]) {\n this.elementsById[itemId].unSelectItem();\n }\n });\n }\n\n // TODO: Document.\n public static items = {\n [ItemType.STATIC_GRAPH]: StaticGraph,\n [ItemType.MODULE_GRAPH]: ModuleGraph,\n [ItemType.SIMPLE_VALUE]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MAX]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MIN]: SimpleValue,\n [ItemType.SIMPLE_VALUE_AVG]: SimpleValue,\n [ItemType.PERCENTILE_BAR]: Percentile,\n [ItemType.PERCENTILE_BUBBLE]: Percentile,\n [ItemType.CIRCULAR_PROGRESS_BAR]: Percentile,\n [ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR]: Percentile,\n [ItemType.LABEL]: Label,\n [ItemType.ICON]: Icon,\n [ItemType.SERVICE]: Service,\n [ItemType.GROUP_ITEM]: Group,\n [ItemType.BOX_ITEM]: Box,\n [ItemType.LINE_ITEM]: Line,\n [ItemType.AUTO_SLA_GRAPH]: EventsHistory,\n [ItemType.DONUT_GRAPH]: DonutGraph,\n [ItemType.BARS_GRAPH]: BarsGraph,\n [ItemType.CLOCK]: Clock,\n [ItemType.COLOR_CLOUD]: ColorCloud,\n [ItemType.NETWORK_LINK]: NetworkLink,\n [ItemType.ODOMETER]: Odometer,\n [ItemType.BASIC_CHART]: BasicChart\n };\n\n /**\n * Relying type item and srcimg and agent and module\n * name convert name item representative.\n *\n * @param item Instance item from extract name.\n *\n * @return Name item.\n */\n public static itemDescriptiveName(item: Item): string {\n let text: string;\n switch (item.props.type) {\n case ItemType.STATIC_GRAPH:\n text = `${t(\"Static graph\")} - ${(item as StaticGraph).props.imageSrc}`;\n break;\n case ItemType.MODULE_GRAPH:\n text = t(\"Module graph\");\n break;\n case ItemType.CLOCK:\n text = t(\"Clock\");\n break;\n case ItemType.BARS_GRAPH:\n text = t(\"Bars graph\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n text = t(\"Event history graph\");\n break;\n case ItemType.PERCENTILE_BAR:\n text = t(\"Percentile bar\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n text = t(\"Circular progress bar\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n text = t(\"Circular progress bar (interior)\");\n break;\n case ItemType.SIMPLE_VALUE:\n text = t(\"Simple Value\");\n break;\n case ItemType.LABEL:\n text = t(\"Label\");\n break;\n case ItemType.GROUP_ITEM:\n text = t(\"Group\");\n break;\n case ItemType.COLOR_CLOUD:\n text = t(\"Color cloud\");\n break;\n case ItemType.ICON:\n text = `${t(\"Icon\")} - ${(item as Icon).props.imageSrc}`;\n break;\n case ItemType.ODOMETER:\n text = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n text = t(\"BasicChart\");\n break;\n default:\n text = t(\"Item\");\n break;\n }\n\n const linkedAgentAndModuleProps = item.props as Partial;\n if (\n linkedAgentAndModuleProps.agentAlias != null &&\n linkedAgentAndModuleProps.moduleName != null\n ) {\n text += ` (${ellipsize(\n linkedAgentAndModuleProps.agentAlias,\n 18\n )} - ${ellipsize(linkedAgentAndModuleProps.moduleName, 25)})`;\n } else if (linkedAgentAndModuleProps.agentAlias != null) {\n text += ` (${ellipsize(linkedAgentAndModuleProps.agentAlias, 25)})`;\n }\n\n return text;\n }\n}\n","import TypedEvent, { Disposable, Listener } from \"./TypedEvent\";\n\ninterface Cancellable {\n cancel(): void;\n}\n\ntype AsyncTaskStatus = \"waiting\" | \"started\" | \"cancelled\" | \"finished\";\ntype AsyncTaskInitiator = (done: () => void) => Cancellable;\n\n/**\n * Defines an async task which can be started and cancelled.\n * It's possible to observe the status changes of the task.\n */\nclass AsyncTask {\n private readonly taskInitiator: AsyncTaskInitiator;\n private cancellable: Cancellable = { cancel: () => {} };\n private _status: AsyncTaskStatus = \"waiting\";\n\n // Event manager for status change events.\n private readonly statusChangeEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n public constructor(taskInitiator: AsyncTaskInitiator) {\n this.taskInitiator = taskInitiator;\n }\n\n /**\n * Public setter of the `status` property.\n * @param status.\n */\n public set status(status: AsyncTaskStatus) {\n this._status = status;\n this.statusChangeEventManager.emit(status);\n }\n\n /**\n * Public accessor of the `status` property.\n * @return status.\n */\n public get status() {\n return this._status;\n }\n\n /**\n * Start the async task.\n */\n public init(): void {\n this.cancellable = this.taskInitiator(() => {\n this.status = \"finished\";\n });\n this.status = \"started\";\n }\n\n /**\n * Cancel the async task.\n */\n public cancel(): void {\n this.cancellable.cancel();\n this.status = \"cancelled\";\n }\n\n /**\n * Add an event handler to the status change.\n * @param listener Function which is going to be executed when the status changes.\n */\n public onStatusChange(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.statusChangeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n}\n\n/**\n * Wrap an async task into another which will execute that task indefinitely\n * every time the tash finnish and the chosen period ends.\n * Will last until cancellation.\n *\n * @param task Async task to execute.\n * @param period Time in milliseconds to wait until the next async esecution.\n *\n * @return A new async task.\n */\nfunction asyncPeriodic(task: AsyncTask, period: number): AsyncTask {\n return new AsyncTask(() => {\n let ref: number | null = null;\n\n task.onStatusChange(status => {\n if (status === \"finished\") {\n ref = window.setTimeout(() => {\n task.init();\n }, period);\n }\n });\n\n task.init();\n\n return {\n cancel: () => {\n if (ref) clearTimeout(ref);\n task.cancel();\n }\n };\n });\n}\n\n/**\n * Manages a list of async tasks.\n */\nexport default class AsyncTaskManager {\n private tasks: { [identifier: string]: AsyncTask } = {};\n\n /**\n * Adds an async task to the manager.\n *\n * @param identifier Unique identifier.\n * @param taskInitiator Function to initialize the async task.\n * Should return a structure to cancel the task.\n * @param period Optional period to repeat the task indefinitely.\n */\n public add(\n identifier: string,\n taskInitiator: AsyncTaskInitiator,\n period: number = 0\n ): AsyncTask {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n\n const asyncTask =\n period > 0\n ? asyncPeriodic(new AsyncTask(taskInitiator), period)\n : new AsyncTask(taskInitiator);\n\n this.tasks[identifier] = asyncTask;\n\n return this.tasks[identifier];\n }\n\n /**\n * Starts an async task.\n *\n * @param identifier Unique identifier.\n */\n public init(identifier: string) {\n if (\n this.tasks[identifier] &&\n (this.tasks[identifier].status === \"waiting\" ||\n this.tasks[identifier].status === \"cancelled\" ||\n this.tasks[identifier].status === \"finished\")\n ) {\n this.tasks[identifier].init();\n }\n }\n\n /**\n * Cancel a running async task.\n *\n * @param identifier Unique identifier.\n */\n public cancel(identifier: string) {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n }\n}\n","/*\n * Useful resources.\n * http://es6-features.org/\n * http://exploringjs.com/es6\n * https://www.typescriptlang.org/\n */\n\nimport \"./main.css\"; // CSS import.\nimport VisualConsole from \"./VisualConsole\";\nimport * as Form from \"./Form\";\nimport AsyncTaskManager from \"./lib/AsyncTaskManager\";\n\n// Export the VisualConsole class to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole = VisualConsole;\n\n// Export the VisualConsole's Form classes to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole.Form = Form;\n\n// Export the AsyncTaskManager class to the global object.\n// eslint-disable-next-line\n(window as any).AsyncTaskManager = AsyncTaskManager;\n"],"names":["name","initialData","_name","currentData","dataRequestedEventManager","this","length","RangeError","_element","element","document","createElement","className","content","createContent","Array","forEach","appendChild","reset","updateData","data","requestData","identifier","params","done","emit","onDataRequested","listener","on","title","inputGroups","enabledInputGroups","inputGroupsByName","enabledInputGroupNames","submitEventManager","itemDataRequestedEventManager","handleItemDataRequested","reduce","prevVal","inputGroup","filter","getInputGroup","inputGroupName","addInputGroup","index","slice","removeInputGroup","getFormElement","type","form","id","addEventListener","e","preventDefault","nativeEvent","formContent","onSubmit","onInputGroupDataRequested","parseLabelPosition","labelPosition","itemBasePropsDecoder","isNaN","parseInt","TypeError","label","isLinkEnabled","link","isOnTop","parentId","aclGroupId","cacheExpiration","colorStatus","cellId","alertOutline","props","metadata","deferInit","elementRef","labelElementRef","childElementRef","clickEventManager","dblClickEventManager","movedEventManager","movementFinishedEventManager","resizedEventManager","resizeFinishedEventManager","removeEventManager","selectionChangedEventManager","disposables","debouncedMovementSave","x","y","_metadata","isBeingMoved","prevPosition","newPosition","positionChanged","move","item","removeMovement","debouncedResizementSave","width","height","isBeingResized","prevSize","newSize","sizeChanged","resize","removeResizement","itemProps","init","initMovementListener","meta","isSelected","moveElement","stopMovementListener","initResizementListener","getBoundingClientRect","labelWidth","labelHeight","resizeElement","stopResizementListener","createContainerDomElement","createLabelDomElement","createDomElement","changeLabelPosition","box","href","classList","add","style","left","top","unSelectItem","selectItem","editMode","stopPropagation","divParent","divSpinner","path","composedPath","containerId","undefined","includes","containerVC","getElementById","maintenanceMode","isFetching","isUpdating","getLabelWithMacrosReplaced","table","row","emptyRow1","emptyRow2","cell","innerHTML","textAlign","macro","value","Date","agentAlias","agentDescription","agentAddress","moduleName","moduleDescription","updateDomElement","newProps","setProps","prevProps","shouldBeUpdated","render","newMetadata","setMeta","prevMetadata","selected","prevMeta","oldLabelHtml","newLabelHtml","remove","container","attrs","attributes","i","nodeName","cloneIsNeeded","getAttributeNode","setAttributeNode","cloneNode","parentNode","replaceChild","setAttribute","div","querySelector","parentElement","removeChild","disposable","dispose","ignored","position","flexDirection","tables","getElementsByTagName","onClick","push","onDblClick","onMoved","onMovementFinished","onResized","onResizeFinished","onRemove","onSelectionChanged","getFormContainer","VisualConsoleItem","t","titleItem","FormContainer","parseBarsGraphProps","backgroundColor","parseTypeGraph","typeGraph","barsGraphPropsDecoder","html","encodedHtml","gridColor","agentDisabled","moduleDisabled","opacity","scripts","src","setTimeout","eval","trim","basicChartPropsDecoder","period","parseFloat","status","moduleNameColor","header","textContent","color","number_format","moduleValue","legendP","margin","overviewGraphs","getElementsByClassName","insertBefore","firstChild","number","force_integer","unit","short_data","divisor","Math","round","aux_decimals","pad","Number","pos","abs","input","padding","str","donutGraphPropsDecoder","legendBackgroundColor","eventsHistoryPropsDecoder","maxTime","legendColor","flotText","aux","parseBackgroundType","backgroundType","parseGraphType","graphType","moduleGraphPropsDecoder","customGraphId","svgNS","iconDefinition","size","spin","pulse","iconName","icon","createElementNS","pathData","listeners","listenersOncer","off","once","callbackIndex","indexOf","splice","event","pipe","te","parseIntOr","defaultValue","parseFloatOr","stringIsEmpty","notEmptyStringOr","parseBoolean","leftPad","diffLength","substr","substring","repeatTimes","floor","restLength","newPad","positionPropsDecoder","sizePropsDecoder","modulePropsDecoder","moduleId","agentProps","agentId","agentName","metaconsoleId","agentPropsDecoder","linkedVCPropsDecoder","linkedLayoutStatusProps","linkedLayoutStatusType","weight","linkedLayoutStatusTypeWeight","warningThreshold","linkedLayoutStatusTypeWarningThreshold","criticalThreshold","linkedLayoutStatusTypeCriticalThreshold","linkedLayoutId","linkedLayoutNodeId","itemMetaDecoder","receivedAt","getTime","error","Error","isFromCache","lineMode","prefixedCssRules","ruleName","ruleValue","rule","decodeBase64","decodeURIComponent","escape","window","atob","humanDate","date","locale","Intl","DateTimeFormat","day","month","year","format","getDate","getMonth","getFullYear","humanTime","hours","getHours","minutes","getMinutes","seconds","getSeconds","replaceMacros","macros","text","acc","replace","throttle","delay","fn","last","now","args","debounce","timerRef","clearTimeout","getOffset","el","parent","offsetLeft","offsetTop","scrollLeft","scrollTop","offsetParent","addMovementListener","altContainer","isDraggable","draggable","lastX","lastY","lastMouseX","lastMouseY","mouseElementOffsetX","mouseElementOffsetY","containerBounds","containerOffset","containerTop","containerBottom","containerLeft","containerRight","elementBounds","borderWidth","getComputedStyle","borderFix","debouncedMovement","throttledMovement","handleMove","mouseX","pageX","mouseY","pageY","mouseDeltaX","mouseDeltaY","maxX","maxY","outOfBoundsLeft","outOfBoundsRight","outOfBoundsTop","outOfBoundsBottom","handleEnd","removeEventListener","body","userSelect","handleStart","button","elementOffset","offsetX","offsetY","addResizementListener","resizeDraggable","lastWidth","lastHeight","elementTop","elementLeft","debouncedResizement","throttledResizement","handleResize","ellipsize","max","ellipse","__webpack_module_cache__","__webpack_require__","cachedModule","exports","module","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","parseShowLastValueTooltip","showLastValueTooltip","staticGraphPropsDecoder","imageSrc","statusImageSrc","lastValue","imgSrc","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","Item","iconPropsDecoder","image","faPlusCircle","prefix","faTrashAlt","colorCloudPropsDecoder","defaultColor","colorRanges","generalDiv","colorLabel","ColorInput","required","target","InputGroup","rangesLabel","createLabel","rangesControlsContainer","createdRangesContainer","buildRanges","ranges","colorRange","rangeContainer","range","handleRangeUpdatePartial","newRanges","handleDelete","initialRangeContainer","onCreate","initialState","state","rangesContainer","rangesContainerFromValue","rangesLabelFromValue","rangesInputFromValue","createInputNumber","fromValue","rangesDivContainerToValue","rangesLabelToValue","rangesInputToValue","toValue","rangesDivContainerColor","rangesLabelColor","rangesInputColor","createInputColor","createBtn","onUpdate","onDelete","deleteBtn","append","createSvgElement","gradientId","svg","defs","radialGradient","stop0","stop100","circle","ColorCloud","formContainer","ColorInputGroup","RangesInputGroup","linePropsDecoder","startPosition","startX","startY","endPosition","endX","endY","lineWidth","borderColor","viewportOffsetX","viewportOffsetY","labelEnd","labelEndWidth","linkedEnd","linkedStart","labelEndHeight","labelStart","labelStartWidth","labelStartHeight","Line","extractBoxSizeAndPosition","circleRadius","moveMode","isMoving","lineMovedEventManager","TypedEvent","lineMovedEventDisposables","debouncedStartPositionMovementSave","removeStartPositionMovement","debouncedEndPositionMovementSave","removeEndPositionMovement","initStartPositionMovementListener","stopStartPositionMovementListener","initEndPositionMovementListener","stopEndPositionMovementListener","x1","y1","x2","y2","line","cursor","svgs","lines","getElementsByTagNameNS","startCircle","endCircle","circlesStart","circlesEnd","borderRadius","circles","min","startIsLeft","startIsTop","start","end","onLineMovementFinished","networkLinkPropsDecoder","groups","adjustment","lineX1","lineY1","lineX2","lineY2","g","atan2","PI","split","l","labels","arrows","arrow","arrowSize","arrowPosX","arrowPosY","arrowStart","border","borderBottom","transform","arrowEnd","htmlLabelStart","console","htmlLabelEnd","groupPropsDecoder","groupId","showStatistics","extractHtml","parseClockType","clockType","parseClockFormat","clockFormat","clockPropsDecoder","clockTimezone","clockTimezoneOffset","showClockTimezone","intervalRef","startTick","createClock","Clock","TICK_INTERVAL","stopTick","clearInterval","handler","interval","setInterval","getElementSize","newWidth","newHeight","createAnalogicClock","createDigitalClock","colors","dateFontSize","baseTimeFontSize","clockFace","clockFaceBackground","city","getHumanTimezone","timezoneComplication","marksGroup","mainMarkGroup","mark1a","mark1b","mark","hourHand","hourHandA","hourHandB","minuteHand","minuteHandA","minuteHandB","minuteHandPin","secondHand","secondHandBar","secondHandPin","pin","getOriginDate","secAngle","minuteAngle","hourAngle","join","dateElem","fontSize","modified","tzFontSizeMultiplier","timeFontSize","tzFontSize","timeElem","tzElem","initialDate","targetTZOffset","localTZOffset","getTimezoneOffset","utimestamp","timezone","diameter","extraHeigth","boxPropsDecoder","fillColor","fillTransparent","boxSizing","borderStyle","maxBorderWidth","labelPropsDecoder","parseValueType","valueType","simpleValuePropsDecoder","processValue","parseProcessValue","img","pi","tau","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_","constructor","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","sqrt","l01","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","toString","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","extractPercentileType","extractValueType","percentilePropsDecoder","percentileType","minValue","maxValue","labelColor","formatValue","background","progress","getProgress","NumberFormat","backgroundRect","progressRect","backgroundCircle","progressCircle","arcProps","cornerRadius","constant","padRadius","context","buffer","r0","apply","arguments","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","a","trunc","servicePropsDecoder","encodedTitle","serviceId","odometerPropsDecoder","titleColor","titleModule","thresholds","minMaxValue","odometerType","lineWarning","lineWarning2","lineCritical","lineCritical2","JSON","parse","min_warning","max_warning","getCoords","min_critical","max_critical","percent","toFixed","getSubfix","maximumSignificantDigits","maximumFractionDigits","numb","match","rotate","getRotate","anchoB","odometerContainer","odometerA","odometerB","odometerC","gaugeE","SVG_NS","svgWarning","setAttributeNS","pathWarning","svgCritical","pathCritical","h1","innerText","lineHeight","h2","truncateTitle","script","onload","url_pandora","location","pathname","dir","display","minMax","limit","subfix","radio","halfLength","diff","stringBefore","stringAfter","decodeProps","items","elementsById","elementIds","relations","lineLinks","handleElementClick","handleElementDblClick","handleElementMovement","itemId","getItemRelations","relation","getVisualCenter","childId","updateLinesConnected","handleElementMovementFinished","handleLineElementMovementFinished","refreshLink","handleElementResizement","handleElementResizementFinished","handleElementRemove","clearRelations","handleElementSelectionChanged","elements","handleContainerClick","unSelectItems","containerRef","_props","backgroundURL","isFavorite","relationLineWidth","visualConsolePropsDecoder","sort","b","addElement","buildRelations","coordinatesInItem","itemAtStart","itemAtEnd","keys","to","save","lineId","updateElement","options","debouncedLinePositionSave","map","itemInstance","ModuleGraph","EventsHistory","DonutGraph","BarsGraph","BasicChart","itemInstanceFrom","message","updateElements","itemIds","child","addRelationLine","ids","getRelationLine","itemRelations","clientWidth","clientHeight","parentX","parentY","childX","childY","zIndex","onItemClick","onItemDblClick","onItemMoved","onLineMoved","onItemResized","onItemSelectionChanged","enableEditMode","disableEditMode","enableMaintenanceMode","disableMaintenanceMode","unique","currentItemId","itemDescriptiveName","linkedAgentAndModuleProps","taskInitiator","cancellable","cancel","_status","statusChangeEventManager","onStatusChange","tasks","asyncTask","task","AsyncTask","ref","asyncPeriodic","VisualConsole","Form","AsyncTaskManager"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"vc.main.min.js","mappings":"wjBAWA,aAUE,WAAmBA,EAAcC,GATzB,KAAAC,MAAgB,GAGd,KAAAC,YAA6B,CAAC,EAEvB,KAAAC,0BAA4B,IAAI,IAK/CC,KAAKL,KAAOA,EACZK,KAAKJ,YAAcA,CACrB,CA+DF,OA7DE,sBAAW,mBAAI,C,IAKf,WACE,OAAOI,KAAKH,KACd,E,IAPA,SAAgBF,GACd,GAAoB,IAAhBA,EAAKM,OAAc,MAAM,IAAIC,WAAW,cAC5CF,KAAKH,MAAQF,CACf,E,gCAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYK,KAAKF,YACnB,E,gCAEA,sBAAW,sBAAO,C,IAAlB,WACE,GAAqB,MAAjBE,KAAKG,SAAkB,CACzB,IAAMC,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,kCAA2BP,KAAKL,MAEpD,IAAMa,EAAUR,KAAKS,gBAEjBD,aAAmBE,MACrBF,EAAQG,QAAQP,EAAQQ,aAExBR,EAAQQ,YAAYJ,GAGtBR,KAAKG,SAAWC,C,CAGlB,OAAOJ,KAAKG,QACd,E,gCAEO,YAAAU,MAAP,WACEb,KAAKF,YAAc,CAAC,CACtB,EAEU,YAAAgB,WAAV,SAAqBC,GACnBf,KAAKF,YAAc,EAAH,KACXE,KAAKF,aACLiB,EAGP,EAEU,YAAAC,YAAV,SACEC,EACAC,EACAC,GAEAnB,KAAKD,0BAA0BqB,KAAK,CAAEH,WAAU,EAAEC,OAAM,EAAEC,KAAI,GAChE,EAEO,YAAAE,gBAAP,SACEC,GAEA,OAAOtB,KAAKD,0BAA0BwB,GAAGD,EAC3C,EAKF,EA5EA,GAoFA,aAYE,WACEE,EACAC,EACAC,QADA,IAAAD,IAAAA,EAAA,SACA,IAAAC,IAAAA,EAAA,IAHF,WAVQ,KAAAC,kBAAoD,CAAC,EACrD,KAAAC,uBAAmC,GAE1B,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,8BAAgC,IAAI,IAG7C,KAAAC,wBAA0B/B,KAAK8B,8BAA8BV,KAOnEpB,KAAKwB,MAAQA,EAETC,EAAYxB,OAAS,IACvBD,KAAK2B,kBAAoBF,EAAYO,QAAO,SAACC,EAASC,GAIpD,OAFAA,EAAWb,gBAAgB,EAAKU,yBAChCE,EAAQC,EAAWvC,MAAQuC,EACpBD,CACT,GAAGjC,KAAK2B,oBAGND,EAAmBzB,OAAS,IAC9BD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,GAC3BF,EAAmBS,QACpB,SAAAxC,GAAQ,OAAgC,MAAhC,EAAKgC,kBAAkBhC,EAAvB,KACT,GAGP,CA0HF,OAxHS,YAAAyC,cAAP,SAAqBC,GACnB,OAAOrC,KAAK2B,kBAAkBU,IAAmB,IACnD,EAEO,YAAAC,cAAP,SACEJ,EACAK,GAuCA,YAvCA,IAAAA,IAAAA,EAAA,MAGAL,EAAWb,gBAAgBrB,KAAK+B,yBAChC/B,KAAK2B,kBAAkBO,EAAWvC,MAAQuC,EAG1ClC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAASuC,EAAWvC,IAApB,IAGI,OAAV4C,EACEA,GAAS,EACXvC,KAAK4B,uBAAyB,EAAH,CACzBM,EAAWvC,MACRK,KAAK4B,wBAAsB,GAEvBW,GAASvC,KAAK4B,uBAAuB3B,OAC9CD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAGbK,KAAK4B,uBAAyB,EAAH,OAEtB5B,KAAK4B,uBAAuBY,MAAM,EAAGD,IAAM,IAE9CL,EAAWvC,O,GAERK,KAAK4B,uBAAuBY,MAAMD,IAAM,GAI/CvC,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAIRK,IACT,EAEO,YAAAyC,iBAAP,SAAwBJ,GAOtB,cANOrC,KAAK2B,kBAAkBU,GAE9BrC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAAS0C,CAAT,IAGHrC,IACT,EAEO,YAAA0C,eAAP,SACEC,GADF,gBACE,IAAAA,IAAAA,EAAA,UAEA,IAAMC,EAAOvC,SAASC,cAAc,QACpCsC,EAAKC,GAAK,8BACVD,EAAKrC,UAAY,8BACjBqC,EAAKE,iBAAiB,UAAU,SAAAC,GAC9BA,EAAEC,iBACF,EAAKnB,mBAAmBT,KAAK,CAC3B6B,YAAaF,EACbhC,KAAM,EAAKa,uBAAuBI,QAAO,SAACjB,EAAMpB,GAO9C,OANI,EAAKgC,kBAAkBhC,KACzBoB,EAAO,EAAH,KACCA,GACA,EAAKY,kBAAkBhC,GAAMoB,OAG7BA,CACT,GAAG,CAAC,IAER,IAEA,IAAMmC,EAAc7C,SAASC,cAAc,OAW3C,OAVA4C,EAAY3C,UAAY,eAExBP,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzBuD,EAAYtC,YAAY,EAAKe,kBAAkBhC,GAAMS,QAEzD,IAEAwC,EAAKhC,YAAYsC,GAEVN,CACT,EAEO,YAAA/B,MAAP,sBACEb,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzB,EAAKgC,kBAAkBhC,GAAMkB,OAEjC,GACF,EAWO,YAAAsC,SAAP,SAAgB7B,GACd,OAAOtB,KAAK6B,mBAAmBN,GAAGD,EACpC,EAEO,YAAA8B,0BAAP,SACE9B,GAEA,OAAOtB,KAAK8B,8BAA8BP,GAAGD,EAC/C,EACF,EA9JA,E,sSCOM+B,EAAqB,SACzBC,GAEA,OAAQA,GACN,IAAK,KACL,IAAK,QACL,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,EAAqBxC,GACnC,GAAe,MAAXA,EAAK8B,IAAcW,MAAMC,SAAS1C,EAAK8B,KACzC,MAAM,IAAIa,UAAU,eAEtB,GAAiB,MAAb3C,EAAK4B,MAAgBa,MAAMC,SAAS1C,EAAK4B,OAC3C,MAAM,IAAIe,UAAU,iBAGtB,OAAO,EAAP,GACEb,GAAIY,SAAS1C,EAAK8B,IAClBF,KAAMc,SAAS1C,EAAK4B,MACpBgB,OAAO,QAAiB5C,EAAK4C,MAAO,MACpCL,cAAeD,EAAmBtC,EAAKuC,eACvCM,eAAe,QAAa7C,EAAK6C,eACjCC,MAAM,QAAiB9C,EAAK8C,KAAM,MAClCC,SAAS,QAAa/C,EAAK+C,SAC3BC,UAAU,QAAWhD,EAAKgD,SAAU,MACpCC,YAAY,QAAWjD,EAAKiD,WAAY,MACxCC,iBAAiB,QAAWlD,EAAKkD,gBAAiB,MAClDC,aAAa,QAAiBnD,EAAKmD,YAAa,QAChDC,QAAQ,QAAWpD,EAAKoD,OAAQ,MAChCC,cAAc,QAAarD,EAAKqD,gBAC7B,QAAiBrD,KACjB,QAAqBA,GAE5B,CAyFA,iBAwOE,WACEsD,EACAC,EACAC,QAAA,IAAAA,IAAAA,GAAA,GAHF,WAlOO,KAAAC,WAA0BnE,SAASC,cAAc,OACjD,KAAAmE,gBAA+BpE,SAASC,cAAc,OAEnD,KAAAoE,gBAA+BrE,SAASC,cAAc,OAE/C,KAAAqE,kBAAoB,IAAI,IAExB,KAAAC,qBAAuB,IAAI,IAE3B,KAAAC,kBAAoB,IAAI,IAExB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,oBAAsB,IAAI,IAE1B,KAAAC,2BAA6B,IAAI,IAIjC,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,YAA4B,GAIrC,KAAAC,uBAAwB,QAC9B,KACA,SAACC,EAAkBC,GAGjB,EAAKC,UAAUC,cAAe,EAE9B,IAAMC,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAClBL,EAAGA,EACHC,EAAGA,GAGA,EAAKK,gBAAgBF,EAAcC,KAGxC,EAAKE,KAAKP,EAAGC,GAEb,EAAKR,6BAA6B1D,KAAK,CACrCyE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAEjB,IAIM,KAAAI,eAAkC,KA2DlC,KAAAC,yBAA0B,QAChC,KACA,SAACC,EAAsBC,GAGrB,EAAKV,UAAUW,gBAAiB,EAEhC,IAAMC,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKE,OAAON,EAAOC,GAGnB,EAAKjB,2BAA2B5D,KAAK,CACnCyE,KAAM,EACNM,SAAUA,EACVC,QAASA,IAEb,IAIM,KAAAG,iBAAoC,KAmF1CvG,KAAKwG,UAAYnC,EACjBrE,KAAKuF,UAAYjB,EAEZC,GAAWvE,KAAKyG,MACvB,CAszBF,OA99BU,YAAAC,qBAAR,SAA6BtG,GAA7B,WAGuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAKb3C,KAAK8F,gBAAiB,QACpB1F,GACA,SAACiF,EAAkBC,GACjB,IAAMG,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAAEL,EAAC,EAAEC,EAAC,GAE1B,EAAKqB,KAAO,EAAH,KACJ,EAAKA,MAAI,CACZC,YAAY,IAGT,EAAKjB,gBAAgBF,EAAcC,KAIxC,EAAKH,UAAUC,cAAe,EAE9B,EAAKqB,YAAYxB,EAAGC,GAEpB,EAAKT,kBAAkBzD,KAAK,CAC1ByE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAGf,EAAKN,sBAAsBC,EAAGC,GAChC,IAEJ,EAIQ,YAAAwB,qBAAR,WACM9G,KAAK8F,iBACP9F,KAAK8F,iBACL9F,KAAK8F,eAAiB,KAE1B,EAsCU,YAAAiB,uBAAV,SAAiC3G,GAAjC,WAEuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAIb3C,KAAKuG,kBAAmB,QACtBnG,GACA,SAAC4F,EAAsBC,GAQrB,GALA,EAAKV,UAAUW,gBAAiB,EAK5B,EAAK7B,MAAMV,OAAS,EAAKU,MAAMV,MAAM1D,OAAS,EAAG,CAC7C,MAGF,EAAKwE,gBAAgBuC,wBAFhBC,EAAU,QACTC,EAAW,SAGrB,OAAQ,EAAK7C,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2C,GAAUiB,EACV,MACF,IAAK,OACL,IAAK,QACHlB,GAASiB,E,CAKf,IAAMd,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKe,cAAcnB,EAAOC,GAE1B,EAAKlB,oBAAoB3D,KAAK,CAC5ByE,KAAM,EACNM,SAAQ,EACRC,QAAO,IAGT,EAAKL,wBAAwBC,EAAOC,GACtC,IAEJ,EAIQ,YAAAmB,uBAAR,WACMpH,KAAKuG,mBACPvG,KAAKuG,mBACLvG,KAAKuG,iBAAmB,KAE5B,EAsBU,YAAAE,KAAV,WAOEzG,KAAKwE,WAAaxE,KAAKqH,4BACvBrH,KAAKyE,gBAAkBzE,KAAKsH,wBAO5BtH,KAAK0E,gBAAkB1E,KAAKuH,mBAG5BvH,KAAKwE,WAAW5D,YAAYZ,KAAK0E,iBACjC1E,KAAKwE,WAAW5D,YAAYZ,KAAKyE,iBAGjCzE,KAAKmH,cAAcnH,KAAKwG,UAAUR,MAAOhG,KAAKwG,UAAUP,QAExDjG,KAAKwH,oBAAoBxH,KAAKwG,UAAUlD,cAC1C,EAMQ,YAAA+D,0BAAR,eACMI,EADN,OAmGE,OAjGIzH,KAAKqE,MAAMT,eACb6D,EAAMpH,SAASC,cAAc,KAEzBN,KAAKqE,MAAMR,KACb4D,EAAIC,KAAO1H,KAAKqE,MAAMR,KAEtB4D,EAAIlH,UAAY,uBAGlBkH,EAAMpH,SAASC,cAAc,QACzBC,UAAY,qBAGlBkH,EAAIE,UAAUC,IAAI,uBACd5H,KAAKqE,MAAMP,SACb2D,EAAIE,UAAUC,IAAI,aAEpBH,EAAII,MAAMC,KAAO,UAAG9H,KAAKqE,MAAMgB,EAAC,MAChCoC,EAAII,MAAME,IAAM,UAAG/H,KAAKqE,MAAMiB,EAAC,MAE3BtF,KAAKqE,MAAMD,cACbqD,EAAIE,UAAUC,IAAI,sBAIpBH,EAAI3E,iBAAiB,YAAY,SAAAC,GAC1B,EAAK4D,KAAKnB,cAAiB,EAAKmB,KAAKT,iBACxC,EAAK8B,eACL,EAAKC,aAEL,EAAKrD,qBAAqBxD,KAAK,CAC7ByE,KAAM,EACN5C,YAAaF,IAGnB,IACA0E,EAAI3E,iBAAiB,SAAS,SAAAC,GAC5B,GAAI,EAAK4D,KAAKuB,SACZnF,EAAEC,iBACFD,EAAEoF,uBAGF,GAAI,EAAK3B,UAAU5C,eAAwC,MAAvB,EAAK4C,UAAU3C,KAAc,CAC/D,IAAMuE,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GAGtB,IAFA,IAAIC,EAAOvF,EAAEwF,eACTC,EAAc,2BACTjG,EAAQ,EAAGA,EAAQ+F,EAAKrI,OAAQsC,IAAS,CAChD,IAAMnC,EAAUkI,EAAK/F,GACrB,GACgBkG,MAAdrI,EAAQyC,IACM,MAAdzC,EAAQyC,IACM,IAAdzC,EAAQyC,KAEiC,IAArCzC,EAAQyC,GAAG6F,SAASF,GAAuB,CAC7CA,EAAcpI,EAAQyC,GACtB,K,EAKN,IAAM8F,EAActI,SAASuI,eAAeJ,GACzB,MAAfG,IACFA,EAAYhB,UAAUC,IAAI,eAC1Be,EAAY/H,YAAYwH,G,CAKzB,EAAKzB,KAAKnB,cAAiB,EAAKmB,KAAKT,gBACxC,EAAKvB,kBAAkBvD,KAAK,CAC1ByE,KAAM,EACN5C,YAAaF,GAGnB,IAGI/C,KAAK2G,KAAKkC,iBACZpB,EAAIE,UAAUC,IAAI,kBAEhB5H,KAAK2G,KAAKuB,UACZT,EAAIE,UAAUC,IAAI,cAEhB5H,KAAK2G,KAAKmC,YACZrB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKoC,YACZtB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKC,YACZa,EAAIE,UAAUC,IAAI,eAGbH,CACT,EAMU,YAAAH,sBAAV,WACE,IAAMlH,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,4BAEpB,IAAMoD,EAAQ3D,KAAKgJ,6BACnB,GAAIrF,EAAM1D,OAAS,EAAG,CAEpB,IAAMgJ,EAAQ5I,SAASC,cAAc,SAC/B4I,EAAM7I,SAASC,cAAc,MAC7B6I,EAAY9I,SAASC,cAAc,MACnC8I,EAAY/I,SAASC,cAAc,MACnC+I,EAAOhJ,SAASC,cAAc,MAUpC,OARA+I,EAAKC,UAAY3F,EACjBuF,EAAItI,YAAYyI,GAChBJ,EAAMrI,YAAYuI,GAClBF,EAAMrI,YAAYsI,GAClBD,EAAMrI,YAAYwI,GAClBH,EAAMpB,MAAM0B,UAAY,SAGhBvJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAM/C7F,EAAQQ,YAAYqI,E,CAGtB,OAAO7I,CACT,EAKU,YAAA4I,2BAAV,WAEE,IAAM3E,EAAQrE,KAAKqE,MAEnB,OAAO,QACL,CACE,CACEmF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,UACPC,MAA2B,MAApBpF,EAAMsF,WAAqBtF,EAAMsF,WAAa,IAEvD,CACEH,MAAO,qBACPC,MAAiC,MAA1BpF,EAAMuF,iBAA2BvF,EAAMuF,iBAAmB,IAEnE,CACEJ,MAAO,YACPC,MAA6B,MAAtBpF,EAAMwF,aAAuBxF,EAAMwF,aAAe,IAE3D,CACEL,MAAO,WACPC,MAA2B,MAApBpF,EAAMyF,WAAqBzF,EAAMyF,WAAa,IAEvD,CACEN,MAAO,sBACPC,MAAkC,MAA3BpF,EAAM0F,kBAA4B1F,EAAM0F,kBAAoB,KAGvE/J,KAAKqE,MAAMV,OAAS,GAExB,EAMU,YAAAqG,iBAAV,SAA2B5J,GACzBA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,EAAP,GAAYtJ,KAAKwG,UACnB,E,IAQA,SAAiByD,GACfjK,KAAKkK,SAASD,EAChB,E,gCAOU,YAAAC,SAAV,SAAmBD,GACjB,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAKwG,UAAYyD,EAKbjK,KAAKoK,gBAAgBD,EAAWF,IAClCjK,KAAKqK,OAAOF,EAAWnK,KAAKuF,UAChC,EAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYvF,KAAKuF,UACnB,E,IAQA,SAAgB+E,GACdtK,KAAKuK,QAAQD,EACf,E,gCAOO,YAAAC,QAAP,SAAeD,GACb,IAAME,EAAexK,KAAKuF,UAE1BvF,KAAKuF,UAAY,EAAH,KACTiF,GACAF,QAI+B,IAA3BA,EAAY1D,YACnB4D,EAAa5D,aAAe0D,EAAY1D,YAExC5G,KAAKkF,6BAA6B9D,KAAK,CACrCqJ,SAAUH,EAAY1D,aAQ1B5G,KAAKqK,OAAOrK,KAAKwG,UAAWgE,EAC9B,EAcU,YAAAJ,gBAAV,SAA0BD,EAAkBF,GAC1C,OAAOE,IAAcF,CACvB,EAMO,YAAAI,OAAP,SACEF,EACAO,QADA,IAAAP,IAAAA,EAAA,WACA,IAAAO,IAAAA,EAAA,MAEIP,GACFnK,KAAKgK,iBAAiBhK,KAAK0E,iBAGxByF,IAAanK,KAAK2F,gBAAgBwE,EAAWnK,KAAKqE,SACrDrE,KAAK6G,YAAY7G,KAAKqE,MAAMgB,EAAGrF,KAAKqE,MAAMiB,GAExC6E,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI1ByF,IAAanK,KAAKqG,YAAY8D,EAAWnK,KAAKqE,SACjDrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAE9CkE,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI/B,IAAMiG,EAAe3K,KAAKyE,gBAAgB6E,UACpCsB,EAAe5K,KAAKsH,wBAAwBgC,UAiBlD,GAhBIqB,IAAiBC,IACnB5K,KAAKyE,gBAAgB6E,UAAYsB,GAG9BT,GAAaA,EAAU7G,gBAAkBtD,KAAKqE,MAAMf,eACvDtD,KAAKwH,oBAAoBxH,KAAKqE,MAAMf,eAGjC6G,GAAaA,EAAUrG,UAAY9D,KAAKqE,MAAMP,UAC7C9D,KAAKqE,MAAMP,QACb9D,KAAKwE,WAAWmD,UAAUC,IAAI,aAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,cAIjCV,GAAaA,EAAUvG,gBAAkB5D,KAAKqE,MAAMT,cAAe,CACrE,IAAMkH,EAAY9K,KAAKqH,4BAEvByD,EAAUxB,UAAYtJ,KAAKwE,WAAW8E,UAGtC,IADA,IAAMyB,EAAQ/K,KAAKwE,WAAWwG,WACrBC,EAAI,EAAGA,EAAIF,EAAM9K,OAAQgL,IAChC,GAA0B,OAAtBF,EAAME,GAAGC,SAAmB,CAC9B,IAAIC,EAAgBnL,KAAKwE,WAAW4G,iBAClCL,EAAME,GAAGC,UAEW,OAAlBC,GACFL,EAAUO,iBAAsBF,EAAcG,Y,CAKjB,OAA/BtL,KAAKwE,WAAW+G,YAClBvL,KAAKwE,WAAW+G,WAAWC,aAAaV,EAAW9K,KAAKwE,YAI1DxE,KAAKwE,WAAasG,C,CAuCpB,GAnCEX,GACAnK,KAAKqE,MAAMT,eACXuG,EAAUtG,OAAS7D,KAAKqE,MAAMR,MAEN,OAApB7D,KAAKqE,MAAMR,MACb7D,KAAKwE,WAAWiH,aAAa,OAAQzL,KAAKqE,MAAMR,MAMjD6G,GACDA,EAASxC,WAAalI,KAAK2G,KAAKuB,UAChCwC,EAAS7B,kBAAoB7I,KAAK2G,KAAKkC,kBAEnC7I,KAAK2G,KAAKuB,WAA0C,IAA9BlI,KAAK2G,KAAKkC,iBAClC7I,KAAKwE,WAAWmD,UAAUC,IAAI,cAC9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,wBAEjC7K,KAAKwE,WAAWmD,UAAUkD,OAAO,cAE7B7K,KAAKqE,MAAMD,cACbpE,KAAKwE,WAAWmD,UAAUC,IAAI,wBAK/B8C,GAAYA,EAAS5B,aAAe9I,KAAK2G,KAAKmC,aAC7C9I,KAAK2G,KAAKmC,WACZ9I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,iBAIhCH,GAAYA,EAAS3B,aAAe/I,KAAK2G,KAAKoC,WAAY,CAC7D,GAAI/I,KAAK2G,KAAKoC,WAAY,CACxB/I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B,IAAMQ,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GACtBrI,KAAKwE,WAAW5D,YAAYwH,E,KACvB,CACLpI,KAAKwE,WAAWmD,UAAUkD,OAAO,eAEjC,IAAMa,EAAM1L,KAAKwE,WAAWmH,cAC1B,+BAEF,GAAY,OAARD,EAAc,CAChB,IAAM,EAASA,EAAIE,cACJ,OAAX,GACF,EAAOC,YAAYH,E,EAKzB1L,KAAKgK,iBAAiBhK,KAAK0E,gB,CAExBgG,GAAYA,EAAS9D,aAAe5G,KAAK2G,KAAKC,aAC7C5G,KAAK2G,KAAKC,YACZ5G,KAAKwE,WAAWmD,UAAUC,IAAI,eAC9B5H,KAAKwE,WAAWiH,aAAa,KAAK,wBAElCzL,KAAKwE,WAAWmD,UAAUkD,OAAO,eACjC7K,KAAKwE,WAAWsH,gBAAgB,OAGtC,EAKO,YAAAjB,OAAP,WAEE7K,KAAKiF,mBAAmB7D,KAAK,CAAEyE,KAAM7F,OAErCA,KAAKmF,YAAYxE,SAAQ,SAAAoL,GACvB,IACEA,EAAWC,SACK,CAAhB,MAAOC,GAAS,CACpB,IAEAjM,KAAKwE,WAAWqG,QAClB,EASU,YAAAlF,gBAAV,SACEF,EACAC,GAEA,OAAOD,EAAaJ,IAAMK,EAAYL,GAAKI,EAAaH,IAAMI,EAAYJ,CAC5E,EAMU,YAAAkC,oBAAV,SAA8B0E,GAC5B,OAAQA,GACN,IAAK,KACHlM,KAAKwE,WAAWqD,MAAMsE,cAAgB,iBACtC,MACF,IAAK,OACHnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,cACtC,MACF,IAAK,QACHnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,MACtC,MAEF,QACEnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,SAK1C,IAAMC,EAASpM,KAAKyE,gBAAgB4H,qBAAqB,SACnDpD,EAAQmD,EAAOnM,OAAS,EAAImM,EAAOvG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAKnD,EAOU,YAAAY,YAAV,SAAsBxB,EAAWC,GAC/BtF,KAAKwE,WAAWqD,MAAMC,KAAO,UAAGzC,EAAC,MACjCrF,KAAKwE,WAAWqD,MAAME,IAAM,UAAGzC,EAAC,KAClC,EAOO,YAAAM,KAAP,SAAYP,EAAWC,GACrBtF,KAAK6G,YAAYxB,EAAGC,GACpBtF,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACbgB,EAAC,EACDC,EAAC,GAEL,EASU,YAAAe,YAAV,SAAsBF,EAAgBC,GACpC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOU,YAAAkB,cAAV,SAAwBnB,EAAeC,GAUrC,GAPqB,IAAnBjG,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAEX3C,KAAK0E,gBAAgBmD,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC9DhG,KAAK0E,gBAAgBmD,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,IAG/DjG,KAAKqE,MAAMV,OAAS3D,KAAKqE,MAAMV,MAAM1D,OAAS,EAAG,CAEnD,IAAMmM,EAASpM,KAAKyE,gBAAgB4H,qBAAqB,SACnDpD,EAAQmD,EAAOnM,OAAS,EAAImM,EAAOvG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2F,EAAMpB,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC/C,MACF,IAAK,OACL,IAAK,QACHiD,EAAMpB,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,G,CAK5D,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKmH,cAAcnB,EAAOC,GAC1BjG,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAMO,YAAAqG,QAAP,SAAehL,GAMb,IAAMyK,EAAa/L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAS,WAAP,SAAkBlL,GAMhB,IAAMyK,EAAa/L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAU,QAAP,SAAenL,GAMb,IAAMyK,EAAa/L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAW,mBAAP,SAA0BpL,GAMxB,IAAMyK,EAAa/L,KAAK8E,6BAA6BvD,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAY,UAAP,SAAiBrL,GAMf,IAAMyK,EAAa/L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAa,iBAAP,SAAwBtL,GAMtB,IAAMyK,EAAa/L,KAAKgF,2BAA2BzD,GAAGD,GAGtD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAc,SAAP,SAAgBvL,GAMd,IAAMyK,EAAa/L,KAAKiF,mBAAmB1D,GAAGD,GAG9C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAe,mBAAP,SACExL,GAOA,IAAMyK,EAAa/L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAOO,YAAA9D,WAAP,WACEjI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK0G,qBAAqB1G,KAAKwE,YAET,KAApBxE,KAAKqE,MAAM1B,MACS,KAApB3C,KAAKqE,MAAM1B,MAEX3C,KAAK+G,uBAAuB/G,KAAKwE,WAErC,EAMO,YAAAwD,aAAP,WACEhI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK8G,uBACmB,KAApB9G,KAAKqE,MAAM1B,MACb3C,KAAKoH,wBAET,EAGO,YAAA2F,iBAAP,WACE,OAAOC,EAAkBD,iBAAiB/M,KAAKqE,MACjD,EAGc,EAAA0I,iBAAd,SAA+B1I,GAC7B,IAAM7C,EAAgB6C,EAAM1B,KA1nCzB,SAAmBE,GACxB,IAAIrB,EAAQ,GACZ,OAAQqB,GACN,KAAK,EACHrB,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,EAYL,KAAK,EAGL,KAAK,EAGL,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,gBACV,MAjBF,KAAK,EAkBL,KAAK,EAkBL,KAAK,GAGL,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,mBACV,MAtCF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,QACV,MAaF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,WACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,OACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,QACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,uBACV,MAOF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,wBACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,cACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,eACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,YACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,eACV,MACF,QACEzL,GAAQ,IAAAyL,GAAE,QAId,OAAOzL,CACT,CAyiCuC0L,CAAU7I,EAAM1B,OAAQ,IAAAsK,GAAE,QAC7D,OAAO,IAAI,EAAAE,cAAc3L,EAAO,GAAI,GACtC,EACF,EAviCA,GAyiCA,M,ihCCvwCM4L,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,aACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,sBAAsBzM,GACpC,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETJ,gBAAiBD,oBAAoBrM,EAAKsM,iBAC1CE,UAAWD,eAAevM,EAAKwM,WAC/BI,WAAW,wCAAc5M,EAAK4M,WAAa,UAAY5M,EAAK4M,aACzD,wCAAmB5M,GAE1B,CAEA,oD,wDA6CA,QA7CuC,4BAC3B,oBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,cAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,oBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,UA7CA,CAAuC,uC,ijCCrChC,SAASC,uBACdrN,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETY,QAAQ,wCAAWtN,EAAKsN,OAAQ,MAChC5E,MAAO6E,WAAWvN,EAAK0I,OACvB8E,QAAQ,wCAAcxN,EAAKwN,QAAU,UAAYxN,EAAKwN,OACtDC,iBAAiB,wCAAczN,EAAKyN,iBAChC,UACAzN,EAAKyN,mBACN,wCAAmBzN,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAmKA,QAnKwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEjCmO,OAASpO,SAASC,cAAc,OACtCmO,OAAOlO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW4E,YAAc1O,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMmK,iBACvCC,OAAO7N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK4O,cAAc5O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMoF,YAAcxO,SAASC,cAAc,MAC3CuO,YAAYtO,UAAY,2BACxBsO,YAAYH,YAAc,UAAGjF,OAC7BoF,YAAYhH,MAAM8G,MAAQ3O,KAAKqE,MAAMkK,OACrCE,OAAO7N,YAAYiO,aAEnBzO,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,eAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMgB,QAAU1O,QAAQiM,qBAAqB,KACpCpB,EAAI,EAAGA,EAAI6D,QAAQ7O,OAAQgL,IAClC6D,QAAQ7D,GAAGpD,MAAMkH,OAAS,MAK5B,IADA,IAAMC,eAAiB5O,QAAQ6O,uBAAuB,kBAC7ChE,EAAI,EAAGA,EAAI+D,eAAe/O,OAAQgL,IACzC+D,eAAe/D,GAAGJ,SAKpB,IADA,IAAMkD,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAaT,OAHA7K,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQ8O,aAAaT,OAAQrO,QAAQ+O,YAE9B/O,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzB,IAAMqO,OAASpO,SAASC,cAAc,OACtCmO,OAAOlO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW4E,YAAc1O,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMmK,iBACvCC,OAAO7N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK4O,cAAc5O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMoF,YAAcxO,SAASC,cAAc,MAC3CuO,YAAYtO,UAAY,2BACxBsO,YAAYH,YAAc,UAAGjF,OAC7BoF,YAAYhH,MAAM8G,MAAQ3O,KAAKqE,MAAMkK,OACrCE,OAAO7N,YAAYiO,aAEnBzO,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQ8O,aAAaT,OAAQrO,QAAQ+O,YAIrC,IADA,IAAML,QAAU1O,QAAQiM,qBAAqB,KACpCpB,EAAI,EAAGA,EAAI6D,QAAQ7O,OAAQgL,IAClC6D,QAAQ7D,GAAGpD,MAAMkH,OAAS,MAK5B,IADA,IAAMC,eAAiB5O,QAAQ6O,uBAAuB,kBAC7ChE,EAAI,EAAGA,EAAI+D,eAAe/O,OAAQgL,IACzC+D,eAAe/D,GAAGJ,SAKpB,IADA,IAAMkD,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EAEU,qBAAAS,cAAV,SACEQ,EACAC,EACAC,EACAC,EACAC,GAUA,GARAA,OAA6B,IAAZA,EAA0BA,EAAU,IAIhDD,IACHA,EAAa,IAGXF,GACF,GAAII,KAAKC,MAAMN,IAAWA,EACxB,MAAO,OAEJ,CACLG,IACA,IAAMI,EAAe3P,KAAK4P,IAAI,IAAKL,EAAY,GAC/CH,EACEK,KAAKC,MAAMN,EAASS,OAAOpM,SAASkM,IACpCE,OAAOpM,SAASkM,E,CAMpB,IAHA,IACIG,EAAM,EAEHL,KAAKM,IAAIX,IAAWI,GAEzBM,IACAV,GAAkBI,EAapB,OATEJ,EADEI,EACOC,KAAKC,MA7BD,EA6BON,GA7BP,EA+BJK,KAAKC,MA/BD,EA+BON,GAGlB5L,MAAM4L,KACRA,EAAS,GAGJA,EAAS,IAnBH,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAmBxBU,GAAOR,CACtC,EAEU,qBAAAM,IAAV,SAAcI,EAAe/P,EAAgBgQ,GAC3C,IAAIC,EAAMF,EAAQ,GAClB,OAAO/P,GAAUiQ,EAAIjQ,OACjBiQ,EACAlQ,KAAK4P,IAAIM,EAAMD,EAAShQ,EAAQgQ,EACtC,EACF,WAnKA,CAAwC,uC,kjCC3BjC,SAASE,uBACdpP,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAET2C,uBAAuB,wCAAcrP,EAAKqP,uBACtC,UACArP,EAAKqP,yBACN,wCAAmBrP,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAgDA,QAhDwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,cACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM+L,uBAGZ,IAA7BpQ,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM+L,uBAGZ,IAA7BpQ,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,WAhDA,CAAwC,uC,qjCCzBjC,SAASkC,0BACdtP,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN2N,SAAS,wCAAWvP,EAAKuP,QAAS,MAClCC,YAAaxP,EAAKwP,YAClB9C,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,QAEN,wCAAmB1M,GAE1B,CAEA,4D,wDAmDA,QAnD2C,gCAC/B,wBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,iBACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,IAAIuF,SAAWpQ,QAAQ6O,uBACrB,cAIF,OAFAuB,SAAS,GAAG3I,MAAM8G,MAAQ3O,KAAKqE,MAAMkM,YAE9BnQ,OACT,EAEU,wBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAG/B,IAAMgD,IAAMpQ,SAASC,cAAc,OACnCmQ,IAAInH,UAAYtJ,KAAKqE,MAAMoJ,KAE3B,IADA,IAAMM,QAAU0C,IAAIpE,qBAAqB,UAChCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,QAI9B,IAAIqC,SAAWpQ,QAAQ6O,uBACrB,cAEFuB,SAAS,GAAG3I,MAAM8G,MAAQ3O,KAAKqE,MAAMkM,WACvC,EACF,cAnDA,CAA2C,uC,sjCCjBrCG,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,wBACd/P,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,EACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETkD,eAAgBD,oBAAoB3P,EAAK4P,gBACzCtC,QAAQ,wCAAWtN,EAAKsN,OAAQ,MAChCwC,UAAWD,eAAe7P,EAAK8P,WAC/BE,eAAe,wCAAWhQ,EAAKgQ,cAAe,SAC3C,wCAAmBhQ,KACnB,wCAAqBA,GAE5B,CAEA,wD,wDA8CA,QA9CyC,8BAC7B,sBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,gBAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,sBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,YA9CA,CAAyC,uC,qDCpFzC,IAAM6C,EAAQ,6BA6Cd,IApCwB,SACtBC,EACAzP,EACA,G,IAAA,aAA2C,CAAC,EAAC,EAA3C0P,EAAI,OAAEvC,EAAK,QAAEwC,EAAI,OAAEC,EAAK,QAEpBtG,EAAYzK,SAASC,cAAc,UACzCwK,EAAUtJ,MAAQA,EAClBsJ,EAAUvK,UAAY,gBAAS0Q,EAAeI,UAE1CH,GAAMpG,EAAUnD,UAAUC,IAAI,aAAMsJ,IAEpCC,EAAMrG,EAAUnD,UAAUC,IAAI,WACzBwJ,GAAOtG,EAAUnD,UAAUC,IAAI,YAExC,IAAM0J,EAAOjR,SAASkR,gBAAgBP,EAAO,OAE7CM,EAAK7F,aACH,UACA,cAAOwF,EAAeK,KAAK,GAAE,YAAIL,EAAeK,KAAK,KAEnD3C,GAAO2C,EAAK7F,aAAa,OAAQkD,GAGrC,IAAMrG,EAAOjI,SAASkR,gBAAgBP,EAAO,QACvCQ,EAC8B,iBAA3BP,EAAeK,KAAK,GACvBL,EAAeK,KAAK,GACpBL,EAAeK,KAAK,GAAG,GAM7B,OALAhJ,EAAKmD,aAAa,IAAK+F,GAEvBF,EAAK1Q,YAAY0H,GACjBwC,EAAUlK,YAAY0Q,GAEfxG,CACT,C,wBCrCA,sBACU,KAAA2G,UAA2B,GAC3B,KAAAC,eAAgC,GAEjC,KAAAnQ,GAAK,SAACD,GAEX,OADA,EAAKmQ,UAAUlF,KAAKjL,GACb,CACL0K,QAAS,WAAM,SAAK2F,IAAIrQ,EAAT,EAEnB,EAEO,KAAAsQ,KAAO,SAACtQ,GACb,EAAKoQ,eAAenF,KAAKjL,EAC3B,EAEO,KAAAqQ,IAAM,SAACrQ,GACZ,IAAMuQ,EAAgB,EAAKJ,UAAUK,QAAQxQ,GACzCuQ,GAAiB,GAAG,EAAKJ,UAAUM,OAAOF,EAAe,EAC/D,EAEO,KAAAzQ,KAAO,SAAC4Q,GAEb,EAAKP,UAAU9Q,SAAQ,SAAAW,GAAY,OAAAA,EAAS0Q,EAAT,IAGnC,EAAKN,eAAe/Q,SAAQ,SAAAW,GAAY,OAAAA,EAAS0Q,EAAT,IACxC,EAAKN,eAAiB,EACxB,EAEO,KAAAO,KAAO,SAACC,GAAkC,SAAK3Q,IAAG,SAAAwB,GAAK,OAAAmP,EAAG9Q,KAAK2B,EAAR,GAAb,CACnD,C,ktBChBO,SAASoP,EAAc1I,EAAgB2I,GAC5C,MAAqB,iBAAV3I,EAA2BA,EACjB,iBAAVA,GAAsBA,EAAMxJ,OAAS,IAAMuD,MAAMC,SAASgG,IAC5DhG,SAASgG,GACN2I,CACd,CAQO,SAASC,EAAgB5I,EAAgB2I,GAC9C,MAAqB,iBAAV3I,EAA2BA,EAEnB,iBAAVA,GACPA,EAAMxJ,OAAS,IACduD,MAAM8K,WAAW7E,IAEX6E,WAAW7E,GACR2I,CACd,CAOO,SAASE,EAAc7I,GAC5B,OAAgB,MAATA,GAAkC,IAAjBA,EAAMxJ,MAChC,CAQO,SAASsS,EACd9I,EACA2I,GAEA,MAAwB,iBAAV3I,GAAsBA,EAAMxJ,OAAS,EAAIwJ,EAAQ2I,CACjE,CAOO,SAASI,EAAa/I,GAC3B,MAAqB,kBAAVA,EAA4BA,EACb,iBAAVA,EAA2BA,EAAQ,EACzB,iBAAVA,IAAqC,MAAVA,GAA2B,SAAVA,EAE9D,CA4BO,SAASgJ,EACdhJ,EACAxJ,EACA2P,QAAA,IAAAA,IAAAA,EAAA,KAEqB,iBAAVnG,IAAoBA,EAAQ,UAAGA,IACvB,iBAARmG,IAAkBA,EAAM,UAAGA,IAEtC,IAAM8C,EAAazS,EAASwJ,EAAMxJ,OAClC,GAAmB,IAAfyS,EAAkB,OAAOjJ,EAC7B,GAAIiJ,EAAa,EAAG,OAAOjJ,EAAMkJ,OAAOlD,KAAKM,IAAI2C,IAEjD,GAAIA,IAAe9C,EAAI3P,OAAQ,MAAO,UAAG2P,GAAG,OAAGnG,GAC/C,GAAIiJ,EAAa9C,EAAI3P,OAAQ,MAAO,UAAG2P,EAAIgD,UAAU,EAAGF,IAAW,OAAGjJ,GAMtE,IAJA,IAAMoJ,EAAcpD,KAAKqD,MAAMJ,EAAa9C,EAAI3P,QAC1C8S,EAAaL,EAAa9C,EAAI3P,OAAS4S,EAEzCG,EAAS,GACJ/H,EAAI,EAAGA,EAAI4H,EAAa5H,IAAK+H,GAAUpD,EAEhD,OAAmB,IAAfmD,EAAyB,UAAGC,GAAM,OAAGvJ,GAClC,UAAGuJ,GAAM,OAAGpD,EAAIgD,UAAU,EAAGG,IAAW,OAAGtJ,EACpD,CASO,SAASwJ,EAAqBlS,GACnC,MAAO,CACLsE,EAAG8M,EAAWpR,EAAKsE,EAAG,GACtBC,EAAG6M,EAAWpR,EAAKuE,EAAG,GAE1B,CAQO,SAAS4N,EAAiBnS,GAC/B,GACgB,MAAdA,EAAKiF,OACLxC,MAAMC,SAAS1C,EAAKiF,SACL,MAAfjF,EAAKkF,QACLzC,MAAMC,SAAS1C,EAAKkF,SAEpB,MAAM,IAAIvC,UAAU,iBAGtB,MAAO,CACLsC,MAAOvC,SAAS1C,EAAKiF,OACrBC,OAAQxC,SAAS1C,EAAKkF,QAE1B,CA8BO,SAASkN,EAAmBpS,GACjC,OAAO,EAAP,CACEqS,SAAUjB,EAAWpR,EAAKqS,SAAU,MACpCtJ,WAAYyI,EAAiBxR,EAAK+I,WAAY,MAC9CC,kBAAmBwI,EAAiBxR,EAAKgJ,kBAAmB,MAC5D8D,eAAgB2E,EAAazR,EAAK8M,iBA5B/B,SAA2B9M,GAChC,IAAMsS,EAA6B,CACjCC,QAASnB,EAAWpR,EAAKuS,QAAS,MAClCC,UAAWhB,EAAiBxR,EAAKwS,UAAW,MAC5C5J,WAAY4I,EAAiBxR,EAAK4I,WAAY,MAC9CC,iBAAkB2I,EAAiBxR,EAAK6I,iBAAkB,MAC1DC,aAAc0I,EAAiBxR,EAAK8I,aAAc,MAClD+D,cAAe4E,EAAazR,EAAK6M,gBAGnC,OAA6B,MAAtB7M,EAAKyS,cACR,EAAD,CACGA,cAAezS,EAAKyS,eACjBH,GAELA,CACN,CAaOI,CAAkB1S,GAEzB,CAQO,SAAS2S,EACd3S,GAEA,IAAI4S,EAA0D,CAC5DC,uBAAwB,WAE1B,OAAQ7S,EAAK6S,wBACX,IAAK,SACH,IAAMC,EAAS1B,EAAWpR,EAAK+S,6BAA8B,MAC7D,GAAc,MAAVD,EACF,MAAM,IAAInQ,UAAU,0CAElB3C,EAAK+S,+BACPH,EAA0B,CACxBC,uBAAwB,SACxBE,6BAA8BD,IAElC,MAEF,IAAK,UACH,IAAME,EAAmB5B,EACvBpR,EAAKiT,uCACL,MAEIC,EAAoB9B,EACxBpR,EAAKmT,wCACL,MAEF,GAAwB,MAApBH,GAAiD,MAArBE,EAC9B,MAAM,IAAIvQ,UAAU,0CAGtBiQ,EAA0B,CACxBC,uBAAwB,UACxBI,uCAAwCD,EACxCG,wCAAyCD,GAM/C,OAAO,EAAP,CACEE,eAAgBhC,EAAWpR,EAAKoT,eAAgB,MAChDC,mBAAoBjC,EAAWpR,EAAKqT,mBAAoB,OACrDT,EAEP,CAOO,SAASU,EAAgBtT,GAC9B,IAnL6B0I,EAmLvB6K,GAA0C,MAnLnB7K,EAmLE1I,EAAKuT,sBAlLf5K,KAAaD,EACR,iBAAVA,EAA2B,IAAIC,KAAa,IAARD,GAEjC,iBAAVA,GACNoG,OAAOrM,MAAM,IAAIkG,KAAKD,GAAO8K,WA8KgB,KA5KvC,IAAI7K,KAAKD,IA6KlB,GAAmB,OAAf6K,EAAqB,MAAM,IAAI5Q,UAAU,0BAE7C,IAAI8Q,EAAQ,KAIZ,OAHIzT,EAAKyT,iBAAiBC,MAAOD,EAAQzT,EAAKyT,MACf,iBAAfzT,EAAKyT,QAAoBA,EAAQ,IAAIC,MAAM1T,EAAKyT,QAEzD,CACLF,WAAU,EACVE,MAAK,EACLtM,SAAUsK,EAAazR,EAAKmH,UAC5BW,gBAAiB2J,EAAazR,EAAK8H,iBACnC6L,YAAalC,EAAazR,EAAK2T,aAC/B5L,YAAY,EACZC,YAAY,EACZvD,cAAc,EACdU,gBAAgB,EAChBU,YAAY,EACZ+N,UAAU,EAEd,CAQO,SAASC,EACdC,EACAC,GAEA,IAAMC,EAAO,UAAGF,EAAQ,aAAKC,EAAS,KACtC,MAAO,CACL,kBAAWC,GACX,eAAQA,GACR,cAAOA,GACP,aAAMA,GACN,UAAGA,GAEP,CAOO,SAASC,EAAahF,GAC3B,OAAOiF,mBAAmBC,OAAOC,OAAOC,KAAKpF,IAC/C,CASO,SAASqF,EAAUC,EAAYC,GACpC,QADoC,IAAAA,IAAAA,EAAA,MAChCA,GAAUC,MAAQA,KAAKC,eAOzB,OAAOD,KAAKC,eAAeF,EALiB,CAC1CG,IAAK,UACLC,MAAO,UACPC,KAAM,YAEoCC,OAAOP,GAGnD,IAAMI,EAAMjD,EAAQ6C,EAAKQ,UAAW,EAAG,GAEjCH,EAAQlD,EAAQ6C,EAAKS,WAAa,EAAG,EAAG,GACxCH,EAAOnD,EAAQ6C,EAAKU,cAAe,EAAG,GAG5C,MAAO,UAAGN,EAAG,YAAIC,EAAK,YAAIC,EAE9B,CAQO,SAASK,EAAUX,GACxB,IAAMY,EAAQzD,EAAQ6C,EAAKa,WAAY,EAAG,GACpCC,EAAU3D,EAAQ6C,EAAKe,aAAc,EAAG,GACxCC,EAAU7D,EAAQ6C,EAAKiB,aAAc,EAAG,GAE9C,MAAO,UAAGL,EAAK,YAAIE,EAAO,YAAIE,EAChC,CAWO,SAASE,EAAcC,EAAiBC,GAC7C,OAAOD,EAAOzU,QACZ,SAAC2U,EAAK,G,IAAEnN,EAAK,QAAEC,EAAK,QAAO,OAAAkN,EAAIC,QAAQpN,EAAOC,EAAnB,GAC3BiN,EAEJ,CAQO,SAASG,EAAeC,EAAeC,GAC5C,IAAIC,EAAO,EACX,OAAO,W,IAAC,sDACN,IAAMC,EAAMvN,KAAKuN,MACjB,KAAIA,EAAMD,EAAOF,GAEjB,OADAE,EAAOC,EACAF,EAAE,aAAIG,EACf,CACF,CAQO,SAASC,EAAYL,EAAeC,GACzC,IAAIK,EAA0B,KAC9B,OAAO,W,IAAC,sDACW,OAAbA,GAAmBjC,OAAOkC,aAAaD,GAC3CA,EAAWjC,OAAOlH,YAAW,WAC3B8I,EAAE,aAAIG,GACNE,EAAW,IACb,GAAGN,EACL,CACF,CAMA,SAASQ,EAAUC,EAAwBC,GAGzC,IAFA,IAAInS,EAAI,EACJC,EAAI,EAENiS,IACC1H,OAAOrM,MAAM+T,EAAGE,cAChB5H,OAAOrM,MAAM+T,EAAGG,YACjBH,IAAOC,GAEPnS,GAAKkS,EAAGE,WAAaF,EAAGI,WACxBrS,GAAKiS,EAAGG,UAAYH,EAAGK,UACvBL,EAAKA,EAAGM,aAEV,MAAO,CAAE9P,IAAKzC,EAAGwC,KAAMzC,EACzB,CAWO,SAASyS,EACd1X,EACAqM,EACAsL,GAEA,IAAMjN,EAAYiN,GAAiB3X,EAAQwL,cAGrCoM,EAAc5X,EAAQ6X,UAExBC,EAAuB,EACvBC,EAAuB,EACvBC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EACrCC,EAAqC,EAErCC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjD8S,EAAgB1Y,EAAQ4G,wBACxB+R,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOpM,SAASsV,GAG1BG,EAAoB/B,EAAS,GAAI1K,GAEjC0M,EAAoBtC,EAAS,GAAIpK,GAEjC2M,EAAa,SAACrW,GAElB,IAAIsC,EAAI,EACJC,EAAI,EAEF+T,EAAStW,EAAEuW,MACXC,EAASxW,EAAEyW,MACXC,EAAcJ,EAASjB,EACvBsB,EAAcH,EAASlB,EAGvBsB,EAAOnB,EAAgBxS,MAAQ8S,EAAc9S,MAAQiT,EAErDW,EAAOpB,EAAgBvS,OAAS6S,EAAc7S,OAASgT,EAEvDY,EACJR,EAAST,GACE,IAAVV,GACCuB,EAAc,GACdJ,EAAST,EAAgBN,EACvBwB,EACJT,EAASR,GACTY,EAAcvB,EAAQY,EAAc9S,MAAQiT,EAC1CT,EAAgBxS,OACjBkS,IAAUyB,GACTF,EAAc,GACdJ,EAAST,EAAgBe,EAAOrB,EAC9ByB,EACJR,EAASb,GACE,IAAVP,GACCuB,EAAc,GACdH,EAASb,EAAeH,EACtByB,EACJT,EAASZ,GACTe,EAAcvB,EAAQW,EAAc7S,OAASgT,EAC3CT,EAAgBvS,QACjBkS,IAAUyB,GACTF,EAAc,GACdH,EAASb,EAAekB,EAAOrB,GAEdlT,EAAjBwU,EA9BS,EA+BJC,EAAsBH,EACtBF,EAAcvB,GAMf,IAAG7S,EAtCE,IAkCOC,EAAhByU,EAhCS,EAiCJC,EAAuBJ,EACvBF,EAAcvB,GAGf,IAAG7S,EArCE,GAwCb8S,EAAaiB,EACbhB,EAAakB,EAETlU,IAAM6S,GAAS5S,IAAM6S,IAGzBgB,EAAkB9T,EAAGC,GACrB4T,EAAkB7T,EAAGC,GAGrB4S,EAAQ7S,EACR8S,EAAQ7S,EACV,EACM2U,EAAY,WAEhB/B,EAAQ,EACRC,EAAQ,EACRC,EAAa,EACbC,EAAa,EAEbhY,SAAS6Z,oBAAoB,YAAad,GAE1C/Y,SAAS6Z,oBAAoB,UAAWD,GAExC7Z,EAAQ6X,UAAYD,EAEpB3X,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,EACMC,EAAc,SAACtX,GAEnB,GAAiB,IAAbA,EAAEuX,OAAN,CAEAvX,EAAEoF,kBAGF/H,EAAQ6X,WAAY,EAGpB7X,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAIlC,IAAM8O,EAAgBjD,EAAUlX,EAAS0K,GACzCoN,EAAQqC,EAAczS,KACtBqQ,EAAQoC,EAAcxS,IAGtBqQ,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MAEflB,EAAsBvV,EAAEyX,QACxBjC,EAAsBxV,EAAE0X,QAGxBjC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjD8S,EAAgB1Y,EAAQ4G,wBACxB+R,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOpM,SAASsV,GAG5B1Y,SAASyC,iBAAiB,YAAasW,GAEvC/Y,SAASyC,iBAAiB,UAAWmX,GAErC5Z,SAAS8Z,KAAKtS,MAAMuS,WAAa,MAxCP,CAyC5B,EAMA,OAHAha,EAAQ0C,iBAAiB,YAAauX,GAG/B,WACLja,EAAQ8Z,oBAAoB,YAAaG,GACzCJ,GACF,CACF,CAUO,SAASS,EACdta,EACAuM,GAEA,IAGMgO,EAAkBta,SAASC,cAAc,OAC/Cqa,EAAgBpa,UAAY,mBAC5BH,EAAQQ,YAAY+Z,GAGpB,IAAM7P,EAAY1K,EAAQwL,cAEpBoM,EAAc5X,EAAQ6X,UAExB2C,EAA2B,EAC3BC,EAA6B,EAC7BzC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EAGrCE,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjDuU,EAAgBjD,EAAUlX,GAC1B0a,EAAaP,EAAcxS,IAC3BgT,EAAcR,EAAczS,KAC5BiR,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAAYpJ,OAAOpM,SAASsV,GAG1BiC,EAAsB7D,EAAS,GAAIxK,GAEnCsO,EAAsBpE,EAAS,GAAIlK,GAEnCuO,EAAe,SAACnY,GAEpB,IAAIiD,EAAQ4U,GAAa7X,EAAEuW,MAAQlB,GAC/BnS,EAAS4U,GAAc9X,EAAEyW,MAAQnB,GAEjCrS,IAAU4U,GAAa3U,IAAW4U,GAGpC7U,EAAQ4U,GACR7X,EAAEuW,MAAQyB,GAAeH,EAAYtC,KAInCtS,EAjDW,GAmDbA,EAnDa,GAoDJA,EAAQ+U,EAAc9B,EAAY,GAAKJ,IAEhD7S,EAAQ6S,EAAiBkC,GAEvB9U,EAvDY,GAyDdA,EAzDc,GA0DLA,EAAS6U,EAAa7B,EAAY,GAAKN,IAEhD1S,EAAS0S,EAAkBmC,GAI7BG,EAAoBjV,EAAOC,GAC3B+U,EAAoBhV,EAAOC,GAG3B2U,EAAY5U,EACZ6U,EAAa5U,EAEbmS,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MACjB,EACMS,EAAY,WAEhBW,EAAY,EACZC,EAAa,EACbzC,EAAa,EACbC,EAAa,EACbC,EAAsB,EAGtBjY,SAAS6Z,oBAAoB,YAAagB,GAE1C7a,SAAS6Z,oBAAoB,UAAWD,GAExC7Z,EAAQ6X,UAAYD,EAEpB3X,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,EA0CA,OAHAO,EAAgB7X,iBAAiB,aAtCb,SAACC,GACnBA,EAAEoF,kBAGF/H,EAAQ6X,WAAY,EAId,MAAoB7X,EAAQ4G,wBAA1BhB,EAAK,QAAEC,EAAM,SACrB2U,EAAY5U,EACZ6U,EAAa5U,EAEbmS,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MAEflB,EAAsBvV,EAAEyX,QACFzX,EAAE0X,QAGxBjC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjDuU,EAAgBjD,EAAUlX,GAC1B0a,EAAaP,EAAcxS,IAC3BgT,EAAcR,EAAczS,KAG5BzH,SAASyC,iBAAiB,YAAaoY,GAEvC7a,SAASyC,iBAAiB,UAAWmX,GAErC5Z,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,IAMO,WACLO,EAAgB9P,SAChBoP,GACF,CACF,CAGO,SAAShN,EAAEyJ,GAChB,OAAOA,CACT,CAmNO,SAASyE,EACdjL,EACAkL,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAA,UACA,IAAAC,IAAAA,EAAA,KAEOnL,EAAI/B,OAAOlO,OAASmb,EAAMlL,EAAIyC,OAAO,EAAGyI,GAAKjN,OAASkN,EAAUnL,CACzE,C,GC98BIoL,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBnI,GAE5B,IAAIoI,EAAeF,yBAAyBlI,GAC5C,QAAqB3K,IAAjB+S,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASJ,yBAAyBlI,GAAY,CAGjDqI,QAAS,CAAC,GAOX,OAHAE,oBAAoBvI,GAAUsI,EAAQA,EAAOD,QAASF,qBAG/CG,EAAOD,OACf,CCrBAF,oBAAoBK,EAAI,SAASH,EAASI,GACzC,IAAI,IAAIC,KAAOD,EACXN,oBAAoBQ,EAAEF,EAAYC,KAASP,oBAAoBQ,EAAEN,EAASK,IAC5EE,OAAOC,eAAeR,EAASK,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAG3E,ECPAP,oBAAoBQ,EAAI,SAASK,EAAKC,GAAQ,OAAOL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,EAAO,ECCtGd,oBAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAeR,EAASiB,OAAOC,YAAa,CAAElT,MAAO,WAE7DuS,OAAOC,eAAeR,EAAS,aAAc,CAAEhS,OAAO,GACvD,E,svBCqBMmT,EAA4B,SAChCC,GAEA,OAAQA,GACN,IAAK,UACL,IAAK,UACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,UAEb,EAWO,SAASC,EACd/b,GAEA,GAA6B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,OAAO,EAAP,UACK,QAAqB3C,IAAK,CAC7B4B,KAAM,EACNoa,SAAUhc,EAAKgc,SACfF,qBAAsBD,EAA0B7b,EAAK8b,sBACrDG,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDC,WAAW,QAAiBlc,EAAKkc,UAAW,SACzC,QAAmBlc,KACnB,QAAqBA,GAE5B,CAEA,+B,8CAwCA,QAxCyC,OAC7B,YAAAwG,iBAAV,WACE,IAAM2V,EAASld,KAAKqE,MAAM2Y,gBAAkBhd,KAAKqE,MAAM0Y,SACjD3c,EAAUC,SAASC,cAAc,OA0BvC,OAzBAF,EAAQG,UAAY,eACpBH,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAClCrL,EAAQyH,MAAMsV,gBAAkB,cAAOD,EAAM,KAC7C9c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,UAGJ,IAA7Btd,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAKC,OAAzB9N,KAAKqE,MAAM4Y,WACyB,aAApCjd,KAAKqE,MAAMwY,uBAEXzc,EAAQG,UAAY,kCACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aAAa,aAAczL,KAAKqE,MAAM4Y,YAGzC7c,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzB,IAAM8c,EAASld,KAAKqE,MAAM2Y,gBAAkBhd,KAAKqE,MAAM0Y,SACvD3c,EAAQyH,MAAMsV,gBAAkB,cAAOD,EAAM,IAC/C,EACF,EAxCA,CAAyCK,EAAA,I,8qBChDlC,SAASC,EAAiBzc,GAC/B,GAA6B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,GAA0B,iBAAf3C,EAAK0c,OAA4C,IAAtB1c,EAAK0c,MAAMxd,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,EACN8a,MAAO1c,EAAK0c,MACZV,SAAUhc,EAAKgc,YACZ,QAAqBhc,GAE5B,CAEA,+B,8CAmBA,QAnBkC,OACtB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAOvC,OANAF,EAAQG,UAAY,QAAUP,KAAKqE,MAAMoZ,MACzCrd,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM0Y,SAAQ,KAC1D3c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SAE5Bld,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzBA,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM0Y,SAAQ,IAC5D,EACF,EAnBA,CAAkCQ,EAAA,I,0DCktG9BG,EAAe,CACjBC,OAAQ,MACRtM,SAAU,cACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,uRAurC3BsM,EAAa,CACfD,OAAQ,MACRtM,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4W,42BCj5IxB,SAASuM,EACd9c,GAGA,GAA0B,iBAAfA,EAAK4N,OAA4C,IAAtB5N,EAAK4N,MAAM1O,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,YACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACNgM,MAAO5N,EAAK4N,MACZmP,aAAc/c,EAAK+c,aACnBC,YAAahd,EAAKgd,eACf,QAAmBhd,KACnB,QAAqBA,GAE5B,CAOA,+B,8CA4BA,QA5B8B,OAClB,YAAAN,cAAV,sBACQud,EAAa3d,SAASC,cAAc,OAC1C0d,EAAWzd,UAAY,kBAEvB,IAAM0d,EAAa5d,SAASC,cAAc,SAC1C2d,EAAWvP,aAAc,IAAAzB,GAAE,iBAE3B+Q,EAAWpd,YAAYqd,GAEvB,IAAMC,EAAa7d,SAASC,cAAc,SAgB1C,OAfA4d,EAAWvb,KAAO,QAClBub,EAAWC,UAAW,EAEtBD,EAAWzU,MAAQ,UAAGzJ,KAAKF,YAAYge,cACrC9d,KAAKJ,YAAYke,cACjB,WAEFI,EAAWpb,iBAAiB,UAAU,SAAAC,GACpC,EAAKjC,WAAW,CACdgd,aAAe/a,EAAEqb,OAA4B3U,OAEjD,IAEAuU,EAAWpd,YAAYsd,GAEhBF,CACT,EACF,EA5BA,CAA8B,EAAAK,YAiC9B,2B,8CAiQA,QAjQ+B,OACnB,YAAA5d,cAAV,sBACQud,EAAa3d,SAASC,cAAc,OAC1C0d,EAAWzd,UAAY,yCAEvB,IAAM+d,EAActe,KAAKue,YAAY,UAErCP,EAAWpd,YAAY0d,GAEvB,IAAME,EAA0Bne,SAASC,cAAc,OACjDme,EAAyBpe,SAASC,cAAc,OAEtD0d,EAAWpd,YAAY6d,GACvBT,EAAWpd,YAAY4d,GAEvB,IAGIE,EAHEX,EACJ/d,KAAKF,YAAYie,aAAe/d,KAAKJ,YAAYme,aAAe,GAyDlE,OAnBAW,EAAc,SAAAC,GACZF,EAAuBnV,UAAY,GACnCqV,EAAOhe,SAAQ,SAACie,EAAYrc,GAC1B,OAAAkc,EAAuB7d,YACrB,EAAKie,eACHD,EAvCyB,SAACrc,GAAkB,gBAClDuc,GAEA,IAAMf,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAClE,EAAKjd,WAAW,CACdid,YAAa,EAAF,OACNA,EAAYvb,MAAM,EAAGD,IAAM,IAC9Buc,I,GACGf,EAAYvb,MAAMD,EAAQ,IAAE,IAGrC,CAZoD,CAwC5Cwc,CAAyBxc,GA1BZ,SAACA,GAAkB,kBACtC,IAAMwb,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAC5DiB,EAAY,EAAH,KACVjB,EAAYvb,MAAM,EAAGD,IAAM,GAC3Bwb,EAAYvb,MAAMD,EAAQ,IAAE,GAGjC,EAAKzB,WAAW,CAAEid,YAAaiB,IAC/BN,EAAYM,EACd,CAVwC,CA2BhCC,CAAa1c,IAJjB,GAQJ,EAEAmc,EAAYX,GAEZS,EAAwB5d,YACtBZ,KAAKkf,uBAxBc,SAACJ,GACpB,IAAMf,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAC5DiB,EAAY,EAAH,KAAOjB,GAAa,GAAF,CAAEe,IAAK,GACxC,EAAKhe,WAAW,CAAEid,YAAaiB,IAC/BN,EAAYM,EACd,KAqBOhB,CACT,EAEQ,YAAAkB,sBAAR,SAA8BC,GAE5B,IAAMC,EAAe,CAAEzQ,MAAO,WAE1B0Q,EAAK,KAA6BD,GAmBhCE,EAAkBjf,SAASC,cAAc,OAGzCif,EAA2Blf,SAASC,cAAc,OAClDkf,EAAuBxf,KAAKue,YAAY,cACxCkB,EAAuBzf,KAAK0f,kBAAkB,MAtB5B,SAACjW,GACvB4V,EAAMM,UAAYlW,CACpB,IAqBA8V,EAAyB3e,YAAY4e,GACrCD,EAAyB3e,YAAY6e,GACrCH,EAAgB1e,YAAY2e,GAG5B,IAAMK,EAA4Bvf,SAASC,cAAc,OACnDuf,EAAqB7f,KAAKue,YAAY,YACtCuB,EAAqB9f,KAAK0f,kBAAkB,MA3B5B,SAACjW,GACrB4V,EAAMU,QAAUtW,CAClB,IA0BA8V,EAAyB3e,YAAYif,GACrCN,EAAyB3e,YAAYkf,GACrCR,EAAgB1e,YAAYgf,GAG5B,IAAMI,EAA0B3f,SAASC,cAAc,OACjD2f,EAAmBjgB,KAAKue,YAAY,SACpC2B,EAAmBlgB,KAAKmgB,iBAC5Bf,EAAazQ,OAjCK,SAAClF,GACnB4V,EAAM1Q,MAAQlF,CAChB,IAkCA8V,EAAyB3e,YAAYqf,GACrCV,EAAyB3e,YAAYsf,GACrCZ,EAAgB1e,YAAYof,GAG5B,IAAMI,EAAY/f,SAASC,cAAc,KAoBzC,OAnBA8f,EAAUxf,aACR,OAAgB8c,GAAc,IAAAzQ,GAAE,sBAAuB,CACrDiE,KAAM,QACNvC,MAAO,aAYXyR,EAAUtd,iBAAiB,SARN,WA3CL,IAACgc,OACQ,KADRA,EA4CHO,GA3CC1Q,YACY,IAAlBmQ,EAAMiB,cACc,IAApBjB,EAAMa,WAyCOR,EAASE,GAC7BA,EAAQD,EACRK,EAAqBhW,MAAQ,UAAG4V,EAAMM,WAAa,IACnDG,EAAmBrW,MAAQ,UAAG4V,EAAMU,SAAW,IAC/CG,EAAiBzW,MAAQ,UAAG4V,EAAM1Q,MACpC,IAIA2Q,EAAgB1e,YAAYwf,GAErBd,CACT,EAEQ,YAAAT,eAAR,SACED,EACAyB,EACAC,GAGA,IAAMjB,EAAQ,KAAKT,GAebU,EAAkBjf,SAASC,cAAc,OAGzCif,EAA2Blf,SAASC,cAAc,OAClDkf,EAAuBxf,KAAKue,YAAY,cACxCkB,EAAuBzf,KAAK0f,kBAChCd,EAAWe,WAnBW,SAAClW,GACvB4V,EAAMM,UAAYlW,EAClB4W,EAAS,KAAKhB,GAChB,IAmBAE,EAAyB3e,YAAY4e,GACrCD,EAAyB3e,YAAY6e,GACrCH,EAAgB1e,YAAY2e,GAG5B,IAAMK,EAA4Bvf,SAASC,cAAc,OACnDuf,EAAqB7f,KAAKue,YAAY,YACtCuB,EAAqB9f,KAAK0f,kBAC9Bd,EAAWmB,SA1BS,SAACtW,GACrB4V,EAAMU,QAAUtW,EAChB4W,EAAS,KAAKhB,GAChB,IA0BAE,EAAyB3e,YAAYif,GACrCN,EAAyB3e,YAAYkf,GACrCR,EAAgB1e,YAAYgf,GAG5B,IAAMI,EAA0B3f,SAASC,cAAc,OACjD2f,EAAmBjgB,KAAKue,YAAY,SACpC2B,EAAmBlgB,KAAKmgB,iBAC5BvB,EAAWjQ,OAjCO,SAAClF,GACnB4V,EAAM1Q,MAAQlF,EACd4W,EAAS,KAAKhB,GAChB,IAiCAE,EAAyB3e,YAAYqf,GACrCV,EAAyB3e,YAAYsf,GACrCZ,EAAgB1e,YAAYof,GAG5B,IAAMO,EAAYlgB,SAASC,cAAc,KAWzC,OAVAigB,EAAU3f,aACR,OAAgBgd,GAAY,IAAA3Q,GAAE,sBAAuB,CACnDiE,KAAM,QACNvC,MAAO,aAGX4R,EAAUzd,iBAAiB,QAASwd,GAEpChB,EAAgB1e,YAAY2f,GAErBjB,CACT,EAEQ,YAAAf,YAAR,SAAoB7H,GAClB,IAAM/S,EAAQtD,SAASC,cAAc,SAErC,OADAqD,EAAM+K,aAAc,IAAAzB,GAAEyJ,GACf/S,CACT,EAEQ,YAAA+b,kBAAR,SACEjW,EACA4W,GAEA,IAAMrQ,EAAQ3P,SAASC,cAAc,SAQrC,OAPA0P,EAAMrN,KAAO,SACC,OAAV8G,IAAgBuG,EAAMvG,MAAQ,UAAGA,IACrCuG,EAAMlN,iBAAiB,UAAU,SAAAC,GAC/B,IAAM0G,EAAQhG,SAAUV,EAAEqb,OAA4B3U,OACjDjG,MAAMiG,IAAQ4W,EAAS5W,EAC9B,IAEOuG,CACT,EAEQ,YAAAmQ,iBAAR,SACE1W,EACA4W,GAEA,IAAMrQ,EAAQ3P,SAASC,cAAc,SAOrC,OANA0P,EAAMrN,KAAO,QACC,OAAV8G,IAAgBuG,EAAMvG,MAAQA,GAClCuG,EAAMlN,iBAAiB,UAAU,SAAAC,GAC/B,OAAAsd,EAAUtd,EAAEqb,OAA4B3U,MAAxC,IAGKuG,CACT,EACF,EAjQA,CAA+B,EAAAqO,YAmQzBrN,EAAQ,6BAEd,2B,8CAwFA,QAxFwC,OAC5B,YAAAzJ,iBAAV,WACE,IAAMuD,EAA4BzK,SAASC,cAAc,OAMzD,OALAwK,EAAUvK,UAAY,cAGtBuK,EAAU0V,OAAOxgB,KAAKygB,oBAEf3V,CACT,EAEU,YAAA3D,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAC7B,EAEO,YAAAya,iBAAP,WACE,IAAMC,EAAa,eAAQ1gB,KAAKqE,MAAMxB,IAEhC8d,EAAMtgB,SAASkR,gBAAgBP,EAAO,OAE5C2P,EAAIlV,aAAa,UAAW,eAG5B,IAAMmV,EAAOvgB,SAASkR,gBAAgBP,EAAO,QAEvC6P,EAAiBxgB,SAASkR,gBAAgBP,EAAO,kBACvD6P,EAAepV,aAAa,KAAMiV,GAClCG,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,IAAK,OACjCoV,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,KAAM,OAElC,IAAMqV,EAAQzgB,SAASkR,gBAAgBP,EAAO,QAC9C8P,EAAMrV,aAAa,SAAU,MAC7BqV,EAAMrV,aACJ,QACA,qBAAczL,KAAKqE,MAAMsK,MAAK,sBAEhC,IAAMoS,EAAU1gB,SAASkR,gBAAgBP,EAAO,QAChD+P,EAAQtV,aAAa,SAAU,QAC/BsV,EAAQtV,aACN,QACA,qBAAczL,KAAKqE,MAAMsK,MAAK,oBAGhC,IAAMqS,EAAS3gB,SAASkR,gBAAgBP,EAAO,UAkB/C,OAjBAgQ,EAAOvV,aAAa,OAAQ,eAAQiV,EAAU,MAC9CM,EAAOvV,aAAa,KAAM,OAC1BuV,EAAOvV,aAAa,KAAM,OAC1BuV,EAAOvV,aAAa,IAAK,OAGzBoV,EAAeL,OAAOM,EAAOC,GAC7BH,EAAKJ,OAAOK,GACZF,EAAIH,OAAOI,EAAMI,IAGc,IAA7BhhB,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,gBAEX8S,EAAIlV,aAAa,UAAW,OAGvBkV,CACT,EAQO,YAAA5T,iBAAP,WACE,OAAOkU,EAAWlU,iBAAiB/M,KAAKqE,MAC1C,EAEc,EAAA0I,iBAAd,SACE1I,GAEA,IAAM6c,EAAgB,EAAMnU,iBAAgB,UAAC1I,GAM7C,OALA6c,EAAcze,iBAAiB,SAE/Bye,EAAc5e,cAAc,IAAI6e,EAAgB,cAAe9c,GAAQ,GACvE6c,EAAc5e,cAAc,IAAI8e,EAAiB,eAAgB/c,GAAQ,GAElE6c,CACT,EACF,EAxFA,CAAwC3D,EAAA,I,ysBCvTjC,SAAS8D,EAAiBtgB,GAC/B,IAAMsD,EAAK,QACN,QAAqB,OAAKtD,GAAI,CAAEiF,MAAO,EAAGC,OAAQ,MAAI,CACzDtD,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZqB,EAAG,EACHC,EAAG,EACHU,MAAO,EACPC,OAAQ,EAERqb,cAAe,CACbjc,GAAG,QAAWtE,EAAKwgB,OAAQ,GAC3Bjc,GAAG,QAAWvE,EAAKygB,OAAQ,IAE7BC,YAAa,CACXpc,GAAG,QAAWtE,EAAK2gB,KAAM,GACzBpc,GAAG,QAAWvE,EAAK4gB,KAAM,IAE3BC,WAAW,QAAW7gB,EAAK6gB,WAAa7gB,EAAKgY,YAAa,GAC1DpK,OAAO,QAAiB5N,EAAK8gB,aAAe9gB,EAAK4N,MAAO,MACxDmT,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBjhB,EAAKihB,SAAU,IAC1CC,eAAe,QAAWlhB,EAAKkhB,cAAe,GAC9CC,UAAWnhB,EAAKmhB,UAChBC,YAAaphB,EAAKohB,YAClBC,gBAAgB,QAAWrhB,EAAKqhB,eAAgB,GAChDC,YAAY,QAAiBthB,EAAKshB,WAAY,IAC9CC,iBAAiB,QAAWvhB,EAAKuhB,gBAAiB,GAClDC,kBAAkB,QAAWxhB,EAAKwhB,iBAAkB,KAWtD,OAAO,OACFle,GAGAme,EAAKC,0BAA0Bpe,EAAMid,cAAejd,EAAMod,aAEjE,CAEA,IAAM,EAAQ,6BAQd,cAiIE,WAAmBpd,EAAkBsC,GAArC,MAKE,mBAEOtC,GACAme,EAAKC,0BACNpe,EAAMid,cACNjd,EAAMod,cACP,KAGE9a,IAEL,IACD,K,OAjJO,EAAA+b,aAAe,EAEf,EAAAC,UAAoB,EAEpB,EAAAC,UAAoB,EAGd,EAAAC,sBAAwB,IAAIC,EAAA,EAEzB,EAAAC,0BAA0C,GAInD,EAAAC,oCAAqC,QAC7C,KACA,SAAC3d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMtB,EAAgB,CAAEjc,EAAC,EAAEC,EAAC,GAE5B,EAAKud,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACNyb,cAAa,EACbG,YAAa,EAAKpd,MAAMod,aAE5B,IAIQ,EAAAwB,4BAA+C,KA2C/C,EAAAC,kCAAmC,QAC3C,KACA,SAAC7d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMnB,EAAc,CAAEpc,EAAC,EAAEC,EAAC,GAE1B,EAAKud,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACN4b,YAAW,EACXH,cAAe,EAAKjd,MAAMid,eAE9B,IAIQ,EAAA6B,0BAA6C,KA6DrD,EAAKR,SAAWhc,EAAKuB,SACrB,EAAKzB,OAEL,YAAMU,cAAa,OACjBsI,KAAK2L,IAAI/W,EAAM2B,MAAO3B,EAAMyd,iBAC5BrS,KAAK2L,IAAI/W,EAAM4B,OAAQ5B,EAAM0d,kB,CAEjC,CA2SF,OAtckC,OAmCtB,YAAAqB,kCAAV,SACEhjB,EACA0K,GAFF,WAIE9K,KAAKijB,6BAA8B,QACjC7iB,GACA,SAACiF,EAAkBC,GAKjB,IAAMgc,EAAgB,CAAEjc,EAHxBA,GAAK,EAAKqd,aAAe,EAAKre,MAAMyd,gBAAkB,EAG3Bxc,EAF3BA,GAAK,EAAKod,aAAe,EAAKre,MAAM0d,gBAAkB,GAItD,EAAKa,UAAW,EAChB,EAAKve,MAAQ,OACR,EAAKA,OAAK,CACbid,cAAa,IAIf,EAAK0B,mCAAmC3d,EAAGC,EAC7C,GACAwF,EAEJ,EAIQ,YAAAuY,kCAAR,WACMrjB,KAAKijB,8BACPjjB,KAAKijB,8BACLjjB,KAAKijB,4BAA8B,KAEvC,EAyBU,YAAAK,gCAAV,SACEljB,EACA0K,GAFF,WAIE9K,KAAKmjB,2BAA4B,QAC/B/iB,GACA,SAACiF,EAAkBC,GAEjBD,GAAK,EAAKqd,aAAe,EAAKre,MAAMyd,gBAAkB,EACtDxc,GAAK,EAAKod,aAAe,EAAKre,MAAM0d,gBAAkB,EAEtD,EAAKa,UAAW,EAChB,EAAKve,MAAQ,OACR,EAAKA,OAAK,CACbod,YAAa,CAAEpc,EAAC,EAAEC,EAAC,KAIrB,EAAK4d,iCAAiC7d,EAAGC,EAC3C,GACAwF,EAEJ,EAIQ,YAAAyY,gCAAR,WACMvjB,KAAKmjB,4BACPnjB,KAAKmjB,4BACLnjB,KAAKmjB,0BAA4B,KAErC,EAuCO,YAAAjZ,SAAP,SAAgBD,GACd,YAAMC,SAAQ,YAAC,KACVD,GACAuY,EAAKC,0BACNxY,EAASqX,cACTrX,EAASwX,cAGf,EAQO,YAAAlX,QAAP,SAAeD,GACbtK,KAAK2iB,SAAWrY,EAAYpC,SAC5B,YAAMqC,QAAO,YAAC,KACTD,GAAW,CACdqK,UAAU,IAEd,EAOU,YAAApN,iBAAV,WACE,IAAMnH,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,OAEhB,MAWAP,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN2b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP3I,GAAgB8b,EAChB7b,GAAkB8b,EAElB,IAAMyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAG3DpB,EAAMtgB,SAASkR,gBAAgB,EAAO,OAE5CoP,EAAIlV,aAAa,QAAS,UAAGzF,EAAQ4b,IACrCjB,EAAIlV,aAAa,SAAU,UAAGxF,EAAS2b,IAEvC,IAAMgC,EAAOvjB,SAASkR,gBAAgB,EAAO,QAW7C,OAVAqS,EAAKnY,aAAa,KAAM,UAAG+X,IAC3BI,EAAKnY,aAAa,KAAM,UAAGgY,IAC3BG,EAAKnY,aAAa,KAAM,UAAGiY,IAC3BE,EAAKnY,aAAa,KAAM,UAAGkY,IAC3BC,EAAKnY,aAAa,SAAUkD,GAAS,SACrCiV,EAAKnY,aAAa,eAAgB,UAAGmW,IAErCjB,EAAIH,OAAOoD,GACXxjB,EAAQogB,OAAOG,GAERvgB,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GACI,MAAzBA,EAAQwL,gBACVxL,EAAQwL,cAAc/D,MAAMgc,OAAS,WAGnC,MAWA7jB,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN2b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP3I,GAAgB8b,EAChB7b,GAAkB8b,EAElB,IAAMyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAE3D+B,EAAO1jB,EAAQiM,qBAAqB,OAE1C,GAAIyX,EAAK7jB,OAAS,EAAG,CACnB,IAAM0gB,EAAMmD,EAAKje,KAAK,GAEtB,GAAW,MAAP8a,EAAa,CAEfA,EAAIlV,aAAa,QAAS,UAAGzF,EAAQ4b,IACrCjB,EAAIlV,aAAa,SAAU,UAAGxF,EAAS2b,IAEvC,IAAMmC,EAAQpD,EAAIqD,uBAAuB,EAAO,QAEhD,GAAID,EAAM9jB,OAAS,EAAG,CACpB,IAAM2jB,EAAOG,EAAMle,KAAK,GAEZ,MAAR+d,IACFA,EAAKnY,aAAa,KAAM,UAAG+X,IAC3BI,EAAKnY,aAAa,KAAM,UAAGgY,IAC3BG,EAAKnY,aAAa,KAAM,UAAGiY,IAC3BE,EAAKnY,aAAa,KAAM,UAAGkY,IAC3BC,EAAKnY,aAAa,SAAUkD,GAAS,SACrCiV,EAAKnY,aAAa,eAAgB,UAAGmW,I,GAM7C,GAAI5hB,KAAK2iB,SAAU,CACjB,IAAIsB,EAA2B5jB,SAASC,cAAc,OAClD4jB,EAAyB7jB,SAASC,cAAc,OAEpD,GAAIN,KAAK4iB,SAAU,CACjB,IAAMuB,EAAe/jB,EAAQ6O,uBAC3B,yCAEEkV,EAAalkB,OAAS,IAClB+gB,EAASmD,EAAate,KAAK,MACrBoe,EAAcjD,GAE5B,IAAMoD,EAAahkB,EAAQ6O,uBACzB,uCAEEmV,EAAWnkB,OAAS,IAChB+gB,EAASoD,EAAWve,KAAK,MACnBqe,EAAYlD,E,CA8B5B,GA1BAiD,EAAYtc,UAAUC,IACpB,kCACA,yCAEFqc,EAAYpc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAK0iB,aAAgB,MAClDuB,EAAYpc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAK0iB,aAAgB,MACnDuB,EAAYpc,MAAMwc,aAAe,MACjCJ,EAAYpc,MAAMwF,gBAAkB,UAAGsB,GACvCsV,EAAYpc,MAAMqE,SAAW,WAC7B+X,EAAYpc,MAAMC,KAAO,UAAG0b,EAAKxjB,KAAK0iB,aAAY,MAClDuB,EAAYpc,MAAME,IAAM,UAAG0b,EAAKzjB,KAAK0iB,aAAY,MACjDuB,EAAYpc,MAAMgc,OAAS,OAE3BK,EAAUvc,UAAUC,IAClB,kCACA,uCAEFsc,EAAUrc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAK0iB,aAAgB,MAChDwB,EAAUrc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAK0iB,aAAgB,MACjDwB,EAAUrc,MAAMwc,aAAe,MAC/BH,EAAUrc,MAAMwF,gBAAkB,UAAGsB,GACrCuV,EAAUrc,MAAMqE,SAAW,WAC3BgY,EAAUrc,MAAMC,KAAO,UAAG4b,EAAK1jB,KAAK0iB,aAAY,MAChDwB,EAAUrc,MAAME,IAAM,UAAG4b,EAAK3jB,KAAK0iB,aAAY,MAC/CwB,EAAUrc,MAAMgc,OAAS,OAEK,OAA1BzjB,EAAQwL,cAAwB,CAIlC,IAHA,IAAM0Y,EAAUlkB,EAAQwL,cAAcqD,uBACpC,mCAEKqV,EAAQrkB,OAAS,IAChB+gB,EAASsD,EAAQze,KAAK,KAChBmb,EAAOnW,SAGrBzK,EAAQwL,cAAchL,YAAYqjB,GAClC7jB,EAAQwL,cAAchL,YAAYsjB,E,CAIpClkB,KAAKojB,kCACHa,EACAjkB,KAAKwE,WAAWoH,eAElB5L,KAAKsjB,gCACHY,EACAlkB,KAAKwE,WAAWoH,c,MAEb,GAAK5L,KAAK2iB,SAcf3iB,KAAKqjB,yCAXL,GAFArjB,KAAKqjB,oCAEyB,OAA1BjjB,EAAQwL,cAKV,IAJM0Y,EAAUlkB,EAAQwL,cAAcqD,uBACpC,mCAGKqV,EAAQrkB,OAAS,GAAG,CACzB,IAAM+gB,KAASsD,EAAQze,KAAK,KAChBmb,EAAOnW,Q,CAM3B,EAOc,EAAA4X,0BAAd,SACEnB,EACAG,GAEA,MAAO,CACLzb,MAAOyJ,KAAKM,IAAIuR,EAAcjc,EAAIoc,EAAYpc,GAC9CY,OAAQwJ,KAAKM,IAAIuR,EAAchc,EAAImc,EAAYnc,GAC/CD,EAAGoK,KAAK8U,IAAIjD,EAAcjc,EAAGoc,EAAYpc,GACzCC,EAAGmK,KAAK8U,IAAIjD,EAAchc,EAAGmc,EAAYnc,GAE7C,EAQO,YAAAM,KAAP,SAAYP,EAAWC,GACrB,YAAMuB,YAAW,UAACxB,EAAGC,GACrB,IAAMkf,EACJxkB,KAAKqE,MAAMid,cAAcjc,EAAIrF,KAAKqE,MAAMod,YAAYpc,GAAK,EACrDof,EACJzkB,KAAKqE,MAAMid,cAAchc,EAAItF,KAAKqE,MAAMod,YAAYnc,GAAK,EAErDof,EAAQ,CACZrf,EAAGmf,EAAcnf,EAAIrF,KAAKqE,MAAM2B,MAAQX,EACxCC,EAAGmf,EAAanf,EAAItF,KAAKqE,MAAM4B,OAASX,GAGpCqf,EAAM,CACVtf,EAAGmf,EAAcxkB,KAAKqE,MAAM2B,MAAQX,EAAIA,EACxCC,EAAGmf,EAAazkB,KAAKqE,MAAM4B,OAASX,EAAIA,GAG1CtF,KAAKqE,MAAQ,OACRrE,KAAKqE,OAAK,CACbid,cAAeoD,EACfjD,YAAakD,GAEjB,EAMO,YAAA9Z,OAAP,WAEE7K,KAAKqjB,oCAEL,YAAMxY,OAAM,UACd,EAQO,YAAA+Z,uBAAP,SACEtjB,GAOA,IAAMyK,EAAa/L,KAAK6iB,sBAAsBthB,GAAGD,GAGjD,OAFAtB,KAAK+iB,0BAA0BxW,KAAKR,GAE7BA,CACT,EACF,EAtcA,CAAkCwR,EAAA,I,8qBClG5B,EAAQ,6BAkBP,SAASsH,EACd9jB,GAEA,OAAO,OACFsgB,EAAiBtgB,IAAK,CACzB4B,KAAM,GACNmf,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBjhB,EAAKihB,SAAU,IAC1CC,eAAe,QAAWlhB,EAAKkhB,cAAe,GAC9CG,gBAAgB,QAAWrhB,EAAKqhB,eAAgB,GAChDC,YAAY,QAAiBthB,EAAKshB,WAAY,IAC9CC,iBAAiB,QAAWvhB,EAAKuhB,gBAAiB,GAClDC,kBAAkB,QAAWxhB,EAAKwhB,iBAAkB,IAExD,CAEA,kBAIE,WAAmBle,EAAyBsC,GAA5C,MAKE,iBAEOtC,GAAK,KAGLsC,KAEN,K,OAQO,EAAAqc,oCAAqC,QAC7C,IACA,SAAC3d,EAAkBC,GACjB,EAAKsd,UAAW,EAEhB,IAAMtB,EAAgB,CAAEjc,EAAC,EAAEC,EAAC,GAG5B,EAAK+E,SAGL,EAAKwY,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACNyb,cAAa,EACbG,YAAa,EAAKpd,MAAMod,aAE5B,IAGQ,EAAAyB,kCAAmC,QAC3C,IACA,SAAC7d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMnB,EAAc,CAAEpc,EAAC,EAAEC,EAAC,GAG1B,EAAK+E,SAGL,EAAKwY,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACN4b,YAAW,EACXH,cAAe,EAAKjd,MAAMid,eAE9B,IAxCA,EAAKjX,S,CACP,CA8PF,OAjRyC,OA6D7B,YAAAL,iBAAV,SAA2B5J,GACzB,YAAM4J,iBAAgB,UAAC5J,GAEnB,IAkBAwjB,EACAjD,EAnBA,EAeA3gB,KAAKqE,MAdPgB,EAAC,IACDC,EAAC,IACDsc,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QACLqT,EAAQ,WACRK,EAAU,aACVJ,EAAa,gBACbG,EAAc,iBACdE,EAAe,kBACfC,EAAgB,mBAGZuB,EAAO1jB,EAAQiM,qBAAqB,OAI1C,GAAIyX,EAAK7jB,OAAS,EAAlB,CAGE,GAAW,OAFX0gB,EAAMmD,EAAKje,KAAK,IAEC,CAIf,IAFA,IAAMke,EAAQpD,EAAIqD,uBAAuB,EAAO,QAC5Cc,EAASnE,EAAIqD,uBAAuB,EAAO,KACxCc,EAAO7kB,OAAS,GACrB6kB,EAAO,GAAGja,SAGRkZ,EAAM9jB,OAAS,IACjB2jB,EAAOG,EAAMle,KAAK,G,CAQxB,GAAW,MAAP8a,GAAuB,MAARiD,EAAnB,CAMA,IACMmB,EAAa,GAEbC,EAAS1D,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EACjEmD,EAAS3D,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EACjEmD,EAASzD,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC/DqD,EAAS1D,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAEjEyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAI3DqD,EAAW,IADL3V,KAAK4V,MAAMF,EAASF,EAAQC,EAASF,GACzBvV,KAAK6V,GA2D3B,GAvDIhD,GAAmB,IACjByB,EAAQ1B,EAAWkD,MAAM,QAC7BjD,EAAkB,EAClByB,EAAMpjB,SAAQ,SAAA6kB,GACRA,EAAEvlB,OAASqiB,IACbA,EAxBW,GAwBOkD,EAAEvlB,OAExB,IACIsiB,GAAoB,IACtBA,EAVe,GAUIwB,EAAM9jB,SAIzBgiB,GAAiB,IACf8B,EAAQ/B,EAASuD,MAAM,QAC3BtD,EAAgB,EAChB8B,EAAMpjB,SAAQ,SAAA6kB,GACRA,EAAEvlB,OAASgiB,IACbA,EArCW,GAqCKuD,EAAEvlB,OAEtB,IACImiB,GAAkB,IACpBA,EAvBe,GAuBE2B,EAAM9jB,SAIvBujB,EAAKE,IAEPF,GAAMuB,EACNrB,GAAMqB,EAAa9C,GAGjBuB,EAAKE,IAEPF,GAAMuB,EAAazC,EACnBoB,GAAMqB,GAGJtB,EAAKE,IAEPF,GAAMsB,EACNpB,GAAMoB,EAAa3C,GAGjBqB,EAAKE,IAEPF,GAAMsB,EAAaxC,EACnBoB,GAAMoB,QAGY,IAATpW,IACTA,EAAQ,QAIoB,OAA1BvO,EAAQwL,cAAwB,CAIlC,IAHA,IAAM6Z,EAASrlB,EAAQwL,cAAcqD,uBACnC,oBAEKwW,EAAOxlB,OAAS,GAAG,CACxB,IAAM0D,EAAQ8hB,EAAO5f,KAAK,GACtBlC,GAAOA,EAAMkH,Q,CAMnB,IAHA,IAAM6a,EAAStlB,EAAQwL,cAAcqD,uBACnC,oBAEKyW,EAAOzlB,OAAS,GAAG,CACxB,IAAM0lB,EAAQD,EAAO7f,KAAK,GACtB8f,GAAOA,EAAM9a,Q,EAIrB,IAAI+a,EAAwB,EAAZhE,EAEZiE,EAAYb,GAAUE,EAASF,GAAU,EAAIY,EAC7CE,EAAYb,GAAUE,EAASF,GAAU,EAAIW,EAE7CG,EAA0B1lB,SAASC,cAAc,OACrDylB,EAAWpe,UAAUC,IAAI,oBACzBme,EAAWle,MAAMqE,SAAW,WAC5B6Z,EAAWle,MAAMme,OAAS,UAAGJ,EAAS,wBACtCG,EAAWle,MAAMoe,aAAe,UAAGL,EAAS,oBAAYjX,GACxDoX,EAAWle,MAAMC,KAAO,UAAG+d,EAAS,MACpCE,EAAWle,MAAME,IAAM,UAAG+d,EAAS,MACnCC,EAAWle,MAAMqe,UAAY,iBAAU,GAAKd,EAAC,QAE7C,IAAIe,EAAwB9lB,SAASC,cAAc,OAcnD,GAbA6lB,EAASxe,UAAUC,IAAI,oBACvBue,EAASte,MAAMqE,SAAW,WAC1Bia,EAASte,MAAMme,OAAS,UAAGJ,EAAS,wBACpCO,EAASte,MAAMoe,aAAe,UAAGL,EAAS,oBAAYjX,GACtDwX,EAASte,MAAMC,KAAO,UAAG+d,EAAS,MAClCM,EAASte,MAAME,IAAM,UAAG+d,EAAS,MACjCK,EAASte,MAAMqe,UAAY,iBAAU,IAAMd,EAAC,QAEd,OAA1BhlB,EAAQwL,gBACVxL,EAAQwL,cAAchL,YAAYmlB,GAClC3lB,EAAQwL,cAAchL,YAAYulB,IAGlB,IAAd9D,EAAkB,CACpB,IAAI+D,EAA8B/lB,SAASC,cAAc,OAEzD,IACE8lB,EAAe9c,UAAY+Y,EAC3B+D,EAAeve,MAAMqE,SAAW,WAChCka,EAAeve,MAAMC,KAAO,UAAG0b,EAAE,MACjC4C,EAAeve,MAAME,IAAM,UAAG0b,EAAE,MAChC2C,EAAeve,MAAM7B,MAAQ,UAAGsc,EAAe,MAC/C8D,EAAeve,MAAMme,OAAS,oBAAarX,GAE3CyX,EAAeze,UAAUC,IAAI,mBAAoB,c,CACjD,MAAO4M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BpU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAYwlB,E,CAItC,GAAgB,IAAZpE,EAAgB,CAClB,IAAIsE,EAA4BjmB,SAASC,cAAc,OAEvD,IACEgmB,EAAahd,UAAY0Y,EACzBsE,EAAaze,MAAMqE,SAAW,WAC9Boa,EAAaze,MAAMC,KAAO,UAAG4b,EAAE,MAC/B4C,EAAaze,MAAME,IAAM,UAAG4b,EAAE,MAC9B2C,EAAaze,MAAM7B,MAAQ,UAAGic,EAAa,MAC3CqE,EAAaze,MAAMme,OAAS,oBAAarX,GAEzC2X,EAAa3e,UAAUC,IAAI,mBAAoB,Y,CAC/C,MAAO4M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BpU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAY0lB,E,GAGxC,EACF,EAjRA,CAAyC,G,8qBCHlC,SAASC,EAAkBxlB,GAChC,IAC4B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,SAC/B,OAArBc,EAAK2M,YAEL,MAAM,IAAIhK,UAAU,sBAEtB,GAAuC,QAAnC,QAAW3C,EAAKylB,QAAS,MAC3B,MAAM,IAAI9iB,UAAU,qBAGtB,IAAM+iB,GAAiB,QAAa1lB,EAAK0lB,gBACnChZ,EAAOgZ,EA3Bf,SAAqB1lB,GACnB,OAAK,QAAcA,EAAK0M,OACnB,QAAc1M,EAAK2M,aACjB,MADsC,QAAa3M,EAAK2M,aADzB3M,EAAK0M,IAG7C,CAuBgCiZ,CAAY3lB,GAAQ,KAElD,OAAO,UACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN6jB,QAAS/iB,SAAS1C,EAAKylB,SACvBzJ,UAAU,QAAiBhc,EAAKgc,SAAU,MAC1CC,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDyJ,eAAc,EACdhZ,KAAI,KACD,QAAqB1M,GAE5B,CACA,+B,8CAsCA,QAtCmC,OACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAevC,OAdAF,EAAQG,UAAY,QAEfP,KAAKqE,MAAMoiB,gBAAgD,OAA9BzmB,KAAKqE,MAAM2Y,eAMlChd,KAAKqE,MAAMoiB,gBAAqC,MAAnBzmB,KAAKqE,MAAMoJ,OAEjDrN,EAAQyH,MAAMsV,gBAAkB,OAChC/c,EAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,OAP/BrN,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM2Y,eAAc,KAChE5c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,UAO9Bld,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACpBJ,KAAKqE,MAAMoiB,gBAAgD,OAA9BzmB,KAAKqE,MAAM2Y,eAOlChd,KAAKqE,MAAMoiB,gBAAqC,MAAnBzmB,KAAKqE,MAAMoJ,OAEjDrN,EAAQyH,MAAMsV,gBAAkB,OAChC/c,EAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,OAR/BrN,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM2Y,eAAc,KAChE5c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACnCld,EAAQkJ,UAAY,GAMxB,EACF,EAtCA,CAAmCiU,EAAA,I,8qBC3B7BoJ,EAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,WACL,IAAK,UACH,OAAOA,EACT,QACE,MAAO,WAEb,EAMMC,EAAmB,SAACC,GACxB,OAAQA,GACN,IAAK,WACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,EAAkBhmB,GAChC,GACgC,iBAAvBA,EAAKimB,eACkB,IAA9BjmB,EAAKimB,cAAc/mB,OAEnB,MAAM,IAAIyD,UAAU,qBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACNikB,UAAWD,EAAe5lB,EAAK6lB,WAC/BE,YAAaD,EAAiB9lB,EAAK+lB,aACnCE,cAAejmB,EAAKimB,cACpBC,qBAAqB,QAAWlmB,EAAKkmB,oBAAqB,GAC1DC,mBAAmB,QAAanmB,EAAKmmB,mBACrCvY,OAAO,QAAiB5N,EAAK4N,MAAO,SACjC,QAAqB5N,GAE5B,CAEA,kBAIE,WAAmBsD,EAAmBsC,GAAtC,MAEE,YAAMtC,EAAOsC,IAAK,K,OAJZ,EAAAwgB,YAA6B,KAoBnC,EAAKC,WACH,WAEE,EAAK1iB,gBAAgB4E,UAAY,EAAK+d,cAAc/d,SACtD,GAKyB,aAAzB,EAAKjF,MAAMuiB,UAA2B,IAAQU,EAAMC,e,CAExD,CAqhBF,OAtjBmC,OAsCzB,YAAAC,SAAR,WAC2B,OAArBxnB,KAAKmnB,cACPhS,OAAOsS,cAAcznB,KAAKmnB,aAC1BnnB,KAAKmnB,YAAc,KAEvB,EAQQ,YAAAC,UAAR,SACEM,EACAC,QAAA,IAAAA,IAAAA,EAAmBL,EAAMC,eAEzBvnB,KAAKwnB,WACLxnB,KAAKmnB,YAAchS,OAAOyS,YAAYF,EAASC,EACjD,EAOU,YAAApgB,iBAAV,WACE,OAAOvH,KAAKqnB,aACd,EAMU,YAAArd,iBAAV,SAA2B5J,GAEnB,MAAyCJ,KAAK6nB,eAClD7nB,KAAKqE,MAAM2B,MACXhG,KAAKqE,MAAM4B,QAFE6hB,EAAQ,QAAUC,EAAS,SAKb,YAAzB/nB,KAAKqE,MAAMuiB,YACoB,IAA7B5mB,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAACnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEnD7F,EAAQuH,UAAUiP,QAAQ,iBAAkB,oBAEX,IAA7B5W,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAAC2gB,EAAUC,GAEhC3nB,EAAQuH,UAAUiP,QAAQ,gBAAiB,mBAE7CxW,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMO,YAAAuB,OAAP,WAEE7K,KAAKwnB,WAEL,YAAM3c,OAAM,UACd,EAQU,YAAA1D,cAAV,SAAwBnB,EAAeC,GAE/B,MAAyCjG,KAAK6nB,eAClD7hB,EACAC,GAFa6hB,EAAQ,QAAUC,EAAS,SAMb,YAAzB/nB,KAAKqE,MAAMuiB,UACb,YAAMzf,cAAa,UAACnB,EAAOC,GAI3B,YAAMkB,cAAa,UAAC2gB,EAAUC,EAElC,EAQQ,YAAAV,YAAR,WACE,OAAQrnB,KAAKqE,MAAMuiB,WACjB,IAAK,WACH,OAAO5mB,KAAKgoB,sBACd,IAAK,UACH,OAAOhoB,KAAKioB,qBACd,QACE,MAAM,IAAIxT,MAAM,uBAEtB,EAMQ,YAAAuT,oBAAR,WACE,IAAMhX,EAAQ,6BACRkX,EACO,UADPA,EAGE,UAHFA,EAIM,UAJNA,EAKO,UALPA,EAMQ,UAGR,EAAoBloB,KAAK6nB,iBAAvB7hB,EAAK,QAAEC,EAAM,SAKfkiB,EACHC,GAA4CpiB,EAAS,IAElD0F,EAAMrL,SAASC,cAAc,OACnCoL,EAAInL,UAAY,iBAChBmL,EAAI7D,MAAM7B,MAAQ,UAAGA,EAAK,MAC1B0F,EAAI7D,MAAM5B,OAAS,UAAGA,EAAM,MAG5B,IAAM0a,EAAMtgB,SAASkR,gBAAgBP,EAAO,OAE5C2P,EAAIlV,aAAa,UAAW,eAG5B,IAAM4c,EAAYhoB,SAASkR,gBAAgBP,EAAO,KAClDqX,EAAU5c,aAAa,QAAS,aAChC,IAAM6c,EAAsBjoB,SAASkR,gBAAgBP,EAAO,UAC5DsX,EAAoB7c,aAAa,KAAM,MACvC6c,EAAoB7c,aAAa,KAAM,MACvC6c,EAAoB7c,aAAa,IAAK,MACtC6c,EAAoB7c,aAAa,OAAQyc,GACzCI,EAAoB7c,aAAa,SAjCd,WAkCnB6c,EAAoB7c,aAAa,eAAgB,KACjD6c,EAAoB7c,aAAa,iBAAkB,SAEnD4c,EAAU7H,OAAO8H,GAGjB,IAAMC,EAAOvoB,KAAKwoB,mBAClB,GAAID,EAAKtoB,OAAS,EAAG,CACnB,IAAMwoB,EAAuBpoB,SAASkR,gBAAgBP,EAAO,QAC7DyX,EAAqBhd,aAAa,cAAe,UACjDgd,EAAqBhd,aAAa,YAAa,KAC/Cgd,EAAqBhd,aACnB,YACA,+BAEFgd,EAAqBhd,aAAa,OAAQyc,GAC1CO,EAAqB/Z,YAAc6Z,EACnCF,EAAU7H,OAAOiI,E,CAInB,IAAMC,EAAaroB,SAASkR,gBAAgBP,EAAO,KACnD0X,EAAWjd,aAAa,QAAS,SAEjC,IAAMkd,EAAgBtoB,SAASkR,gBAAgBP,EAAO,KACtD2X,EAAcld,aAAa,QAAS,QACpCkd,EAAcld,aAAa,YAAa,oBACxC,IAAMmd,EAASvoB,SAASkR,gBAAgBP,EAAO,QAC/C4X,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,SAAUyc,GAC9BU,EAAOnd,aAAa,eAAgB,KACpC,IAAMod,EAASxoB,SAASkR,gBAAgBP,EAAO,QAC/C6X,EAAOpd,aAAa,KAAM,MAC1Bod,EAAOpd,aAAa,KAAM,KAC1Bod,EAAOpd,aAAa,KAAM,MAC1Bod,EAAOpd,aAAa,KAAM,KAC1Bod,EAAOpd,aAAa,SAAUyc,GAC9BW,EAAOpd,aAAa,eAAgB,KAEpCkd,EAAcnI,OAAOoI,EAAQC,GAE7BH,EAAWlI,OAAOmI,GAElB,IAAK,IAAI1d,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAM6d,EAAOzoB,SAASkR,gBAAgBP,EAAO,QAC7C8X,EAAKrd,aAAa,KAAM,KACxBqd,EAAKrd,aAAa,KAAM,KACxBqd,EAAKrd,aAAa,SAAUyc,GAC5BY,EAAKrd,aAAa,YAAa,kCAA+B,EAAJR,EAAK,MAE3DA,EAAI,GAAM,GACZ6d,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,eAAgBR,EAAI,IAAO,EAAI,IAAM,OAEvD6d,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,eAAgB,QAIpCid,EAAWlI,OAAOsI,E,CAMpB,IAAMC,EAAW1oB,SAASkR,gBAAgBP,EAAO,KACjD+X,EAAStd,aAAa,QAAS,aAC/Bsd,EAAStd,aAAa,YAAa,oBAEnC,IAAMud,EAAY3oB,SAASkR,gBAAgBP,EAAO,QAClDgY,EAAUvd,aAAa,QAAS,eAChCud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,MAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,SAAUyc,GACjCc,EAAUvd,aAAa,eAAgB,KACvCud,EAAUvd,aAAa,iBAAkB,SAEzC,IAAMwd,EAAY5oB,SAASkR,gBAAgBP,EAAO,QAClDiY,EAAUxd,aAAa,QAAS,eAChCwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,KAAM,QAC7Bwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,SAAUyc,GACjCe,EAAUxd,aAAa,eAAgB,OACvCwd,EAAUxd,aAAa,iBAAkB,SAEzCsd,EAASvI,OAAOwI,EAAWC,GAG3B,IAAMC,EAAa7oB,SAASkR,gBAAgBP,EAAO,KACnDkY,EAAWzd,aAAa,QAAS,eACjCyd,EAAWzd,aAAa,YAAa,oBAErC,IAAM0d,EAAc9oB,SAASkR,gBAAgBP,EAAO,QACpDmY,EAAY1d,aAAa,QAAS,iBAClC0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,MAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,SAAUyc,GACnCiB,EAAY1d,aAAa,eAAgB,KACzC0d,EAAY1d,aAAa,iBAAkB,SAE3C,IAAM2d,EAAc/oB,SAASkR,gBAAgBP,EAAO,QACpDoY,EAAY3d,aAAa,QAAS,iBAClC2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,KAAM,QAC/B2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,SAAUyc,GACnCkB,EAAY3d,aAAa,eAAgB,OACzC2d,EAAY3d,aAAa,iBAAkB,SAC3C,IAAM4d,EAAgBhpB,SAASkR,gBAAgBP,EAAO,UACtDqY,EAAc5d,aAAa,IAAK,KAChC4d,EAAc5d,aAAa,OAAQyc,GAEnCgB,EAAW1I,OAAO2I,EAAaC,EAAaC,GAG5C,IAAMC,EAAajpB,SAASkR,gBAAgBP,EAAO,KACnDsY,EAAW7d,aAAa,QAAS,eACjC6d,EAAW7d,aAAa,YAAa,oBACrC,IAAM8d,EAAgBlpB,SAASkR,gBAAgBP,EAAO,QACtDuY,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,KAAM,MACjC8d,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,SAAUyc,GACrCqB,EAAc9d,aAAa,eAAgB,KAC3C8d,EAAc9d,aAAa,iBAAkB,SAC7C,IAAM+d,EAAgBnpB,SAASkR,gBAAgBP,EAAO,UACtDwY,EAAc/d,aAAa,IAAK,KAChC+d,EAAc/d,aAAa,OAAQyc,GAEnCoB,EAAW9I,OAAO+I,EAAeC,GAGjC,IAAMC,EAAMppB,SAASkR,gBAAgBP,EAAO,UAC5CyY,EAAIhe,aAAa,KAAM,MACvBge,EAAIhe,aAAa,KAAM,MACvBge,EAAIhe,aAAa,IAAK,OACtBge,EAAIhe,aAAa,OAAQyc,GAGzB,IAAM5S,EAAOtV,KAAK0pB,gBACZpT,EAAUhB,EAAKiB,aACfH,EAAUd,EAAKe,aAEfsT,EAAW,EAAarT,EACxBsT,EAAc,EAAaxT,EAAwBE,EAAU,GAAxB,EACrCuT,EAAY,GAHJvU,EAAKa,WAGkCC,EAAU,GAAxB,GA0EvC,GAxEA2S,EAAStd,aAAa,YAAa,kCAA2Boe,EAAS,MACvEX,EAAWzd,aACT,YACA,kCAA2Bme,EAAW,MAExCN,EAAW7d,aACT,YACA,kCAA2Bke,EAAQ,MAIrChJ,EAAIH,OAAO6H,EAAWK,EAAYK,EAAUG,EAAYI,EAAYG,GAEpE9I,EAAIlV,aAAa,YAAa,eAS9BC,EAAIpC,UAAY,4FAIN,QACA,YACA,uCAAgCugB,EAAS,SACzCC,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCD,EAAY,IAAG,SAC/CC,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCF,EAAW,SAC3CE,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCF,EAAc,IAAG,SACjDE,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCH,EAAQ,SACxCG,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCH,EAAW,IAAG,SAC9CG,KAAK,MAAK,kDAMpBpe,EAAI8U,OAAOG,GAGoB,aAA3B3gB,KAAKqE,MAAMyiB,YAA4B,CACzC,IAAMiD,EAA4B1pB,SAASC,cAAc,QACzDypB,EAASxpB,UAAY,OACrBwpB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASliB,MAAMmiB,SAAW,UAAG7B,EAAY,MACrCnoB,KAAKqE,MAAMsK,QAAOob,EAASliB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDjD,EAAI8U,OAAOuJ,E,CAGb,OAAOre,CACT,EAMQ,YAAAuc,mBAAR,WACE,IAAM7nB,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,gBAEd,MAAoBP,KAAK6nB,iBAAvB7hB,EAAK,QAAEC,EAAM,SACjBgkB,EAAWjkB,EACXC,EAASD,IACXikB,EAAWhkB,GAIb,IAEMikB,EAAuB,EAAIlqB,KAAKqE,MAAM2iB,cAAc/mB,OACpDkqB,EAHmB,GAGgBF,EAAY,IAC/C9B,EACHC,KAA4C6B,EAAY,IACrDG,EAAa3a,KAAK8U,IANC,GAOH2F,EAAuBD,EAAY,IACtDjkB,EAAQ,IAAO,IAIZsP,EAAOtV,KAAK0pB,gBAGlB,GAA+B,aAA3B1pB,KAAKqE,MAAMyiB,YAA4B,CACzC,IAAMiD,EAA4B1pB,SAASC,cAAc,QACzDypB,EAASxpB,UAAY,OACrBwpB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASliB,MAAMmiB,SAAW,UAAG7B,EAAY,MACrCnoB,KAAKqE,MAAMsK,QAAOob,EAASliB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDvO,EAAQogB,OAAOuJ,E,CAIjB,IAAMM,EAA4BhqB,SAASC,cAAc,QACzD+pB,EAAS9pB,UAAY,OACrB8pB,EAAS3b,aAAc,QAAU4G,GACjC+U,EAASxiB,MAAMmiB,SAAW,UAAGG,EAAY,MACrCnqB,KAAKqE,MAAMsK,QAAO0b,EAASxiB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDvO,EAAQogB,OAAO6J,GAGf,IAAM9B,EAAOvoB,KAAKwoB,mBAClB,GAAID,EAAKtoB,OAAS,EAAG,CACnB,IAAMqqB,EAA0BjqB,SAASC,cAAc,QACvDgqB,EAAO/pB,UAAY,WACnB+pB,EAAO5b,YAAc6Z,EACrB+B,EAAOziB,MAAMmiB,SAAW,UAAGI,EAAU,MACjCpqB,KAAKqE,MAAMsK,QAAO2b,EAAOziB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACtDvO,EAAQogB,OAAO8J,E,CAGjB,OAAOlqB,CACT,EAMQ,YAAAspB,cAAR,SAAsBa,QAAA,IAAAA,IAAAA,EAAA,MACpB,IAAM3O,EAAI2O,GAA4B,IAAI7gB,KACpC8gB,EAAkD,IAAjCxqB,KAAKqE,MAAM4iB,oBAC5BwD,EAAwC,GAAxB7O,EAAE8O,oBAA2B,IAC7CC,EAAa/O,EAAErH,UAAYiW,EAAiBC,EAElD,OAAO,IAAI/gB,KAAKihB,EAClB,EAMO,YAAAnC,iBAAP,SAAwBoC,QAAA,IAAAA,IAAAA,EAAmB5qB,KAAKqE,MAAM2iB,eAC9C,IAAG,EAAa4D,EAASrF,MAAM,KAA5B,GACT,YADa,IAAG,KAAE,GACN3O,QAAQ,IAAK,IAC3B,EAMQ,YAAAiR,eAAR,SACE7hB,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAgBhG,KAAKqE,MAAM2B,YAC3B,IAAAC,IAAAA,EAAiBjG,KAAKqE,MAAM4B,QAEpBjG,KAAKqE,MAAMuiB,WACjB,IAAK,WACH,IAAIiE,EAAW,IAEX7kB,EAAQ,GAAKC,EAAS,EACxB4kB,EAAWpb,KAAK8U,IAAIve,EAAOC,GAClBD,EAAQ,EACjB6kB,EAAW7kB,EACFC,EAAS,IAClB4kB,EAAW5kB,GAGb,IAAI6kB,EAAc,EAKlB,MAJ+B,aAA3B9qB,KAAKqE,MAAMyiB,cACbgE,EAAc7kB,EAAS,GAGlB,CACLD,MAAO6kB,EACP5kB,OAAQ4kB,EAAWC,GAGvB,IAAK,UAcH,OAbI9kB,EAAQ,GAAKC,EAAS,EAExBA,EAASD,EAAQ,EAAIC,EAASD,EAAQ,EAAIC,EACjCD,EAAQ,EACjBC,EAASD,EAAQ,EACRC,EAAS,EAElBD,EAAiB,EAATC,GAERD,EAAQ,IACRC,EAAS,IAGJ,CACLD,MAAK,EACLC,OAAM,GAGV,QACE,MAAM,IAAIwO,MAAM,uBAEtB,EApjBuB,EAAA8S,cAAgB,IAqjBzC,C,CAtjBA,CAAmChK,EAAA,I,8qBC9D5B,SAASwN,GAAgBhqB,GAC9B,OAAO,QACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZ+U,aAAa,QAAWhY,EAAKgY,YAAa,GAC1C8I,aAAa,QAAiB9gB,EAAK8gB,YAAa,MAChDmJ,WAAW,QAAiBjqB,EAAKiqB,UAAW,MAC5CC,gBAAiBlqB,EAAKkqB,iBAE1B,CAEA,gC,8CAyDA,QAzDiC,OACrB,YAAA1jB,iBAAV,WACE,IAAME,EAAsBpH,SAASC,cAAc,OAcnD,GAbAmH,EAAIlH,UAAY,MAEhBkH,EAAII,MAAMqjB,UAAY,aAElBlrB,KAAKqE,MAAM4mB,gBACbxjB,EAAII,MAAMwF,gBAAkB,cAExBrN,KAAKqE,MAAM2mB,YACbvjB,EAAII,MAAMwF,gBAAkBrN,KAAKqE,MAAM2mB,WAKvChrB,KAAKqE,MAAM0U,YAAc,EAAG,CAC9BtR,EAAII,MAAMsjB,YAAc,QAExB,IAAMC,EAAiB3b,KAAK8U,IAAIvkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE8S,EAActJ,KAAK8U,IAAIvkB,KAAKqE,MAAM0U,YAAaqS,GACrD3jB,EAAII,MAAMkR,YAAc,UAAGA,EAAW,MAElC/Y,KAAKqE,MAAMwd,cACbpa,EAAII,MAAMga,YAAc7hB,KAAKqE,MAAMwd,Y,CAIvC,OAAOpa,CACT,EAMU,YAAAuC,iBAAV,SAA2B5J,GAUzB,GATIJ,KAAKqE,MAAM4mB,gBACb7qB,EAAQyH,MAAMwF,gBAAkB,cAE5BrN,KAAKqE,MAAM2mB,YACb5qB,EAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM2mB,WAK3ChrB,KAAKqE,MAAM0U,YAAc,EAAG,CAC9B3Y,EAAQyH,MAAMsjB,YAAc,QAE5B,IAAMC,EAAiB3b,KAAK8U,IAAIvkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE8S,EAActJ,KAAK8U,IAAIvkB,KAAKqE,MAAM0U,YAAaqS,GACrDhrB,EAAQyH,MAAMkR,YAAc,UAAGA,EAAW,MAEtC/Y,KAAKqE,MAAMwd,cACbzhB,EAAQyH,MAAMga,YAAc7hB,KAAKqE,MAAMwd,Y,CAG7C,EACF,EAzDA,CAAiCtE,EAAA,I,orBCzB1B,SAAS8N,GAAkBtqB,GAChC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,KACH,QAAqB5B,GAE5B,CAEA,gC,8CAoBA,QApBmC,QACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAIvC,OAHAF,EAAQG,UAAY,QACpBH,EAAQkJ,UAAYtJ,KAAKgJ,6BAElB5I,CACT,EAOO,YAAAkH,sBAAP,WACE,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EApBA,CAAmCmd,EAAA,I,orBCQ7B+N,GAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,SACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,SAEb,EA6BO,SAASC,GACdzqB,GAEA,GAA0B,iBAAfA,EAAK0I,OAA4C,IAAtB1I,EAAK0I,MAAMxJ,OAC/C,MAAM,IAAIyD,UAAU,iBAGtB,IAAM+nB,EA9BkB,SACxBA,GAEA,OAAQA,GACN,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACH,OAAOA,EACT,QACE,MAAO,OAEb,CAkBuBC,CAAkB3qB,EAAK0qB,cAE5C,OAAO,mBACF,QAAqB1qB,IAAK,CAC7B4B,KAAM,EACN4oB,UAAWD,GAAevqB,EAAKwqB,WAC/B9hB,MAAO1I,EAAK0I,QACS,SAAjBgiB,EACA,CAAEA,aAAY,GACd,CAAEA,aAAY,EAAEpd,QAAQ,QAAWtN,EAAKsN,OAAQ,MACjD,QAAmBtN,KACnB,QAAqBA,GAE5B,CAEA,gC,8CAwCA,QAxCyC,QAC7B,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAUvC,GATAF,EAAQG,UAAY,gBAGW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAGG,UAAzB9N,KAAKqE,MAAMknB,UAAuB,CACpC,IAAMI,EAAMtrB,SAASC,cAAc,OACnCqrB,EAAI3d,IAAMhO,KAAKqE,MAAMoF,MACrBrJ,EAAQogB,OAAOmL,E,KACV,CAEL,IAAIjV,EAAO1W,KAAKqE,MAAMoF,MAClB9F,EAAQ3D,KAAKgJ,6BACbrF,EAAM1D,OAAS,IACjByW,GAAO,QAAc,CAAC,CAAElN,MAAO,iBAAkBC,MAAOiN,IAAS/S,IAGnEvD,EAAQkJ,UAAYoN,C,CAGtB,OAAOtW,CACT,EAMc,YAAAkH,sBAAV,WACF,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EAxCA,CAAyCmd,EAAA,I,kCC7FrCqO,GAAKnc,KAAK6V,GACVuG,GAAM,EAAID,GACVE,GAAU,KACVC,GAAaF,GAAMC,GAEvB,SAASE,KACPhsB,KAAKisB,IAAMjsB,KAAKksB,IAChBlsB,KAAKmsB,IAAMnsB,KAAKosB,IAAM,KACtBpsB,KAAKqsB,EAAI,EACX,CAEA,SAAS/jB,KACP,OAAO,IAAI0jB,EACb,CAEAA,GAAK1P,UAAYhU,GAAKgU,UAAY,CAChCgQ,YAAaN,GACbO,OAAQ,SAASlnB,EAAGC,GAClBtF,KAAKqsB,GAAK,KAAOrsB,KAAKisB,IAAMjsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKksB,IAAMlsB,KAAKosB,KAAO9mB,EAC7E,EACAknB,UAAW,WACQ,OAAbxsB,KAAKmsB,MACPnsB,KAAKmsB,IAAMnsB,KAAKisB,IAAKjsB,KAAKosB,IAAMpsB,KAAKksB,IACrClsB,KAAKqsB,GAAK,IAEd,EACAI,OAAQ,SAASpnB,EAAGC,GAClBtF,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EACvD,EACAonB,iBAAkB,SAASlJ,EAAIC,EAAIpe,EAAGC,GACpCtF,KAAKqsB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,KAAOzjB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EACnF,EACAqnB,cAAe,SAASnJ,EAAIC,EAAIC,EAAIC,EAAIte,EAAGC,GACzCtF,KAAKqsB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,MAAQC,EAAM,MAAQC,EAAM,KAAO3jB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EAC/G,EACAsnB,MAAO,SAASpJ,EAAIC,EAAIC,EAAIC,EAAIlH,GAC9B+G,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIlH,GAAKA,EAC7C,IAAIoQ,EAAK7sB,KAAKmsB,IACVW,EAAK9sB,KAAKosB,IACVW,EAAMrJ,EAAKF,EACXwJ,EAAMrJ,EAAKF,EACXwJ,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0J,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAIzQ,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGjD,GAAiB,OAAbzc,KAAKmsB,IACPnsB,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,IAAM3I,GAAM,KAAOxjB,KAAKosB,IAAM3I,QAIjD,GAAM0J,EAAQrB,GAKd,GAAMrc,KAAKM,IAAImd,EAAMH,EAAMC,EAAMC,GAAOnB,IAAarP,EAKrD,CACH,IAAI2Q,EAAM1J,EAAKmJ,EACXQ,EAAM1J,EAAKmJ,EACXQ,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAM/d,KAAKge,KAAKH,GAChBI,EAAMje,KAAKge,KAAKN,GAChB3H,EAAI/I,EAAIhN,KAAKke,KAAK/B,GAAKnc,KAAKme,MAAMN,EAAQH,EAAQI,IAAU,EAAIC,EAAME,KAAS,GAC/EG,EAAMrI,EAAIkI,EACVI,EAAMtI,EAAIgI,EAGV/d,KAAKM,IAAI8d,EAAM,GAAK/B,KACtB9rB,KAAKqsB,GAAK,KAAO7I,EAAKqK,EAAMZ,GAAO,KAAOxJ,EAAKoK,EAAMX,IAGvDltB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,WAAayQ,EAAME,EAAMH,EAAMI,GAAQ,KAAOrtB,KAAKmsB,IAAM3I,EAAKsK,EAAMf,GAAO,KAAO/sB,KAAKosB,IAAM3I,EAAKqK,EAAMd,EACxI,MArBEhtB,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,IAAM3I,GAAM,KAAOxjB,KAAKosB,IAAM3I,EAsBxD,EACAsK,IAAK,SAAS1oB,EAAGC,EAAGmX,EAAGuR,EAAIC,EAAIC,GAC7B7oB,GAAKA,EAAGC,GAAKA,EAAW4oB,IAAQA,EAChC,IAAIC,GADY1R,GAAKA,GACRhN,KAAK2e,IAAIJ,GAClBK,EAAK5R,EAAIhN,KAAK6e,IAAIN,GAClBnB,EAAKxnB,EAAI8oB,EACTrB,EAAKxnB,EAAI+oB,EACTE,EAAK,EAAIL,EACTM,EAAKN,EAAMF,EAAKC,EAAKA,EAAKD,EAG9B,GAAIvR,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGhC,OAAbzc,KAAKmsB,IACPnsB,KAAKqsB,GAAK,IAAMQ,EAAK,IAAMC,GAIpBrd,KAAKM,IAAI/P,KAAKmsB,IAAMU,GAAMf,IAAWrc,KAAKM,IAAI/P,KAAKosB,IAAMU,GAAMhB,MACtE9rB,KAAKqsB,GAAK,IAAMQ,EAAK,IAAMC,GAIxBrQ,IAGD+R,EAAK,IAAGA,EAAKA,EAAK3C,GAAMA,IAGxB2C,EAAKzC,GACP/rB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOlpB,EAAI8oB,GAAM,KAAO7oB,EAAI+oB,GAAM,IAAM5R,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOvuB,KAAKmsB,IAAMU,GAAM,KAAO7sB,KAAKosB,IAAMU,GAIrJ0B,EAAK1C,KACZ9rB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,SAAW+R,GAAM5C,IAAO,IAAM2C,EAAK,KAAOvuB,KAAKmsB,IAAM9mB,EAAIoX,EAAIhN,KAAK2e,IAAIH,IAAO,KAAOjuB,KAAKosB,IAAM9mB,EAAImX,EAAIhN,KAAK6e,IAAIL,KAElJ,EACAQ,KAAM,SAASppB,EAAGC,EAAGopB,EAAGC,GACtB3uB,KAAKqsB,GAAK,KAAOrsB,KAAKisB,IAAMjsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKksB,IAAMlsB,KAAKosB,KAAO9mB,GAAK,MAAQopB,EAAK,MAAQC,EAAK,KAAQD,EAAK,GACzH,EACAE,SAAU,WACR,OAAO5uB,KAAKqsB,CACd,GAGF,UCjIe,YAAShnB,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJO,IAAI0K,GAAMN,KAAKM,IACXsV,GAAQ5V,KAAK4V,MACb+I,GAAM3e,KAAK2e,IACXhT,GAAM3L,KAAK2L,IACXmJ,GAAM9U,KAAK8U,IACX+J,GAAM7e,KAAK6e,IACXb,GAAOhe,KAAKge,KAEZ,GAAU,MACV,GAAKhe,KAAK6V,GACVuJ,GAAS,GAAK,EACd,GAAM,EAAI,GAEd,SAASjB,GAAKvoB,GACnB,OAAOA,EAAI,EAAI,EAAIA,GAAK,EAAI,GAAKoK,KAAKme,KAAKvoB,EAC7C,CAEO,SAASypB,GAAKzpB,GACnB,OAAOA,GAAK,EAAIwpB,GAASxpB,IAAM,GAAKwpB,GAASpf,KAAKqf,KAAKzpB,EACzD,CCfA,SAAS0pB,GAAenT,GACtB,OAAOA,EAAEoT,WACX,CAEA,SAASC,GAAerT,GACtB,OAAOA,EAAEsT,WACX,CAEA,SAASC,GAAcvT,GACrB,OAAOA,EAAEwT,UACX,CAEA,SAASC,GAAYzT,GACnB,OAAOA,EAAE0T,QACX,CAEA,SAASC,GAAY3T,GACnB,OAAOA,GAAKA,EAAE4T,QAChB,CAEA,SAASC,GAAU5C,EAAIC,EAAItJ,EAAIC,EAAIC,EAAIC,EAAI+L,EAAIC,GAC7C,IAAIC,EAAMpM,EAAKqJ,EAAIgD,EAAMpM,EAAKqJ,EAC1BgD,EAAMJ,EAAKhM,EAAIqM,EAAMJ,EAAKhM,EAC1B1W,EAAI8iB,EAAMH,EAAME,EAAMD,EAC1B,KAAI5iB,EAAIA,EAAI,IAEZ,MAAO,CAAC4f,GADR5f,GAAK6iB,GAAOhD,EAAKnJ,GAAMoM,GAAOlD,EAAKnJ,IAAOzW,GACzB2iB,EAAK9C,EAAK7f,EAAI4iB,EACjC,CAIA,SAASG,GAAenD,EAAIC,EAAItJ,EAAIC,EAAIwM,EAAIC,EAAI3B,GAC9C,IAAItB,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0M,GAAM5B,EAAK2B,GAAMA,GAAMzC,GAAKR,EAAMA,EAAMC,EAAMA,GAC9CkD,EAAKD,EAAKjD,EACVmD,GAAMF,EAAKlD,EACXqD,EAAMzD,EAAKuD,EACXG,EAAMzD,EAAKuD,EACXT,EAAMpM,EAAK4M,EACXP,EAAMpM,EAAK4M,EACXG,GAAOF,EAAMV,GAAO,EACpBa,GAAOF,EAAMV,GAAO,EACpB1B,EAAKyB,EAAMU,EACXjC,EAAKwB,EAAMU,EACXG,EAAKvC,EAAKA,EAAKE,EAAKA,EACpB5R,EAAIwT,EAAKC,EACTS,EAAIL,EAAMT,EAAMD,EAAMW,EACtB3U,GAAKyS,EAAK,GAAK,EAAI,GAAKZ,GAAKrS,GAAI,EAAGqB,EAAIA,EAAIiU,EAAKC,EAAIA,IACrDC,GAAOD,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BG,IAAQF,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BI,GAAOH,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BK,IAAQJ,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BM,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMN,EACZW,EAAMJ,EAAMN,EAMhB,OAFIO,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKP,EAAME,EAAKD,EAAME,GAE7D,CACLK,GAAIR,EACJS,GAAIR,EACJ5D,KAAMmD,EACNlD,KAAMmD,EACNC,IAAKM,GAAOX,EAAKxT,EAAI,GACrB8T,IAAKM,GAAOZ,EAAKxT,EAAI,GAEzB,C,krBCpCA,SAAS6U,GACP3uB,GAEA,OAAQA,GACN,IAAK,eACL,IAAK,SACL,IAAK,wBACL,IAAK,4BACH,OAAOA,EACT,QACA,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,SACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,4BAEb,CAMA,SAAS4uB,GAAiBhG,GACxB,OAAQA,GACN,IAAK,UACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,UAEb,CAWO,SAASiG,GACdzwB,GAEA,OAAO,gBACF,QAAqBA,IAAK,CAC7B4B,KAAM,EACN8uB,eAAgBH,GAAsBvwB,EAAK0wB,gBAAkB1wB,EAAK4B,MAClE4oB,UAAWgG,GAAiBxwB,EAAKwqB,WACjCmG,UAAU,QAAW3wB,EAAK2wB,SAAU,MACpCC,UAAU,QAAW5wB,EAAK4wB,SAAU,MACpChjB,OAAO,QAAiB5N,EAAK4N,MAAO,MACpCijB,YAAY,QAAiB7wB,EAAK6wB,WAAY,MAC9CnoB,OAAO,QAAa1I,EAAK0I,MAAO,MAChC6F,MAAM,QAAiBvO,EAAKuO,KAAM,SAC/B,QAAmBvO,KACnB,QAAqBA,GAE5B,CAEA,IAAM,GAAQ,6BAEd,4B,8CA6NA,QA7NwC,QAC5B,YAAAwG,iBAAV,WACE,IAUIsqB,EAVE3J,EAAS,CACb4J,WAAY,UACZC,SAAU/xB,KAAKqE,MAAMsK,OAAS,UAC9B+H,KAAM1W,KAAKqE,MAAMutB,YAAc,WAG3BG,EAAW/xB,KAAKgyB,cAEhB5xB,EAAUC,SAASC,cAAc,OAGf,MAApBN,KAAKqE,MAAMoF,QAEXooB,EADErc,KACYA,KAAKyc,aAAa,SAASpc,OAAO7V,KAAKqE,MAAMoF,OAE7CzJ,KAAKqE,MAAMoF,OAK7B,IAAMkX,EAAMtgB,SAASkR,gBAAgB,GAAO,OAE5C,OAAQvR,KAAKqE,MAAMotB,gBACjB,IAAK,eAED,IAAMS,EAAiB7xB,SAASkR,gBAAgB,GAAO,QACvD2gB,EAAezmB,aAAa,OAAQyc,EAAO4J,YAC3CI,EAAezmB,aAAa,eAAgB,OAC5CymB,EAAezmB,aAAa,QAAS,QACrCymB,EAAezmB,aAAa,SAAU,QACtCymB,EAAezmB,aAAa,KAAM,KAClCymB,EAAezmB,aAAa,KAAM,KAClC,IAAM0mB,EAAe9xB,SAASkR,gBAAgB,GAAO,QACrD4gB,EAAa1mB,aAAa,OAAQyc,EAAO6J,UACzCI,EAAa1mB,aAAa,eAAgB,KAC1C0mB,EAAa1mB,aAAa,QAAS,UAAGsmB,EAAQ,MAC9CI,EAAa1mB,aAAa,SAAU,QACpC0mB,EAAa1mB,aAAa,KAAM,KAChC0mB,EAAa1mB,aAAa,KAAM,MAC1BiL,EAAOrW,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,cAAe,UACjCiL,EAAKjL,aAAa,qBAAsB,UACxCiL,EAAKjL,aAAa,YAAa,MAC/BiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aACH,YACA,oBAAazL,KAAKqE,MAAM2B,MAAQ,EAAC,YAEnC0Q,EAAKjL,aAAa,OAAQyc,EAAOxR,MAEJ,UAAzB1W,KAAKqE,MAAMknB,WACb7U,EAAK7O,MAAMmiB,SAAW,MAEtBtT,EAAKhI,YAAc1O,KAAKqE,MAAMiL,KAC1B,UAAGuiB,EAAW,YAAI7xB,KAAKqE,MAAMiL,MAC7B,UAAGuiB,IAEPnb,EAAKhI,YAAc,UAAGqjB,EAAQ,KAGhCpR,EAAIlV,aAAa,QAAS,QAC1BkV,EAAIlV,aAAa,SAAU,QAC3BkV,EAAIH,OAAO0R,EAAgBC,EAAczb,GAE3C,MACF,IAAK,SACL,IAAK,wBACL,IAAK,4BAKD,GAFAiK,EAAIlV,aAAa,UAAW,eAEM,WAA9BzL,KAAKqE,MAAMotB,gBAEPW,EAAmB/xB,SAASkR,gBAAgB,GAAO,WACxC9F,aAAa,YAAa,oBAC3C2mB,EAAiB3mB,aAAa,OAAQyc,EAAO4J,YAC7CM,EAAiB3mB,aAAa,eAAgB,OAC9C2mB,EAAiB3mB,aAAa,IAAK,OAC7B4mB,EAAiBhyB,SAASkR,gBAAgB,GAAO,WACxC9F,aAAa,YAAa,oBACzC4mB,EAAe5mB,aAAa,OAAQyc,EAAO6J,UAC3CM,EAAe5mB,aAAa,eAAgB,KAC5C4mB,EAAe5mB,aAAa,IAAK,UAAGsmB,EAAW,IAE/CpR,EAAIH,OAAO4R,EAAkBC,OACxB,CAEL,IASMD,EAKAC,EAdAC,EAAW,CACftD,YACgC,0BAA9BhvB,KAAKqE,MAAMotB,eAA6C,GAAK,EAC/DvC,YAAa,GACbE,WAAY,EACZE,SAAoB,EAAV7f,KAAK6V,IAEXyI,ED7HH,WACb,IAAIiB,EAAcD,GACdG,EAAcD,GACdsD,EAAeC,GAAS,GACxBC,EAAY,KACZrD,EAAaD,GACbG,EAAWD,GACXG,EAAWD,GACXmD,EAAU,KAEd,SAAS3E,IACP,IAAI4E,EACAlW,EACAmW,GAAM5D,EAAY6D,MAAM7yB,KAAM8yB,WAC9B7C,GAAMf,EAAY2D,MAAM7yB,KAAM8yB,WAC9B9E,EAAKoB,EAAWyD,MAAM7yB,KAAM8yB,WAAajE,GACzCZ,EAAKqB,EAASuD,MAAM7yB,KAAM8yB,WAAajE,GACvCL,EAAKze,GAAIke,EAAKD,GACdO,EAAKN,EAAKD,EAQd,GANK0E,IAASA,EAAUC,EAAS,MAG7B1C,EAAK2C,IAAInW,EAAIwT,EAAIA,EAAK2C,EAAIA,EAAKnW,GAG7BwT,EAAK,GAGN,GAAIzB,EAAK,GAAM,GAClBkE,EAAQnG,OAAO0D,EAAK7B,GAAIJ,GAAKiC,EAAK3B,GAAIN,IACtC0E,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIjC,EAAIC,GAAKM,GAC3BqE,EAAK,KACPF,EAAQnG,OAAOqG,EAAKxE,GAAIH,GAAK2E,EAAKtE,GAAIL,IACtCyE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAI3E,EAAID,EAAIO,QAK7B,CACH,IAWIwE,EACAC,EAZAC,EAAMjF,EACNkF,EAAMjF,EACNkF,EAAMnF,EACNoF,EAAMnF,EACNoF,EAAM7E,EACN8E,EAAM9E,EACN+E,EAAK/D,EAASqD,MAAM7yB,KAAM8yB,WAAa,EACvCU,EAAMD,EAAK,KAAad,GAAaA,EAAUI,MAAM7yB,KAAM8yB,WAAarF,GAAKmF,EAAKA,EAAK3C,EAAKA,IAC5FC,EAAK3L,GAAIxU,GAAIkgB,EAAK2C,GAAM,GAAIL,EAAaM,MAAM7yB,KAAM8yB,YACrDW,EAAMvD,EACNwD,EAAMxD,EAKV,GAAIsD,EAAK,GAAS,CAChB,IAAIG,EAAK7E,GAAK0E,EAAKZ,EAAKtE,GAAIiF,IACxBK,EAAK9E,GAAK0E,EAAKvD,EAAK3B,GAAIiF,KACvBF,GAAY,EAALM,GAAU,IAA8BR,GAArBQ,GAAOpF,EAAK,GAAK,EAAe6E,GAAOO,IACjEN,EAAM,EAAGF,EAAMC,GAAOpF,EAAKC,GAAM,IACjCqF,GAAY,EAALM,GAAU,IAA8BX,GAArBW,GAAOrF,EAAK,GAAK,EAAe2E,GAAOU,IACjEN,EAAM,EAAGL,EAAMC,GAAOlF,EAAKC,GAAM,EACxC,CAEA,IAAIhB,EAAMgD,EAAK7B,GAAI6E,GACf/F,EAAM+C,EAAK3B,GAAI2E,GACfrD,EAAMgD,EAAKxE,GAAIgF,GACfvD,EAAM+C,EAAKtE,GAAI8E,GAGnB,GAAIlD,EAAK,GAAS,CAChB,IAII2D,EAJAvD,EAAML,EAAK7B,GAAI8E,GACf3C,EAAMN,EAAK3B,GAAI4E,GACf1C,EAAMoC,EAAKxE,GAAI+E,GACf1C,EAAMmC,EAAKtE,GAAI6E,GAInB,GAAI3E,EAAK,KAAOqF,EAAKpE,GAAUxC,EAAKC,EAAKsD,EAAKC,EAAKH,EAAKC,EAAKX,EAAKC,IAAO,CACvE,IAAIiE,EAAK7G,EAAM4G,EAAG,GACdE,EAAK7G,EAAM2G,EAAG,GACdG,EAAK1D,EAAMuD,EAAG,GACdI,EAAK1D,EAAMsD,EAAG,GACdK,EAAK,EAAI5F,GAAIV,IAAMkG,EAAKE,EAAKD,EAAKE,IAAOxG,GAAKqG,EAAKA,EAAKC,EAAKA,GAAMtG,GAAKuG,EAAKA,EAAKC,EAAKA,KAAQ,GAC/FE,EAAK1G,GAAKoG,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IACzCJ,EAAMlP,GAAI2L,GAAK0C,EAAKuB,IAAOD,EAAK,IAChCR,EAAMnP,GAAI2L,GAAKD,EAAKkE,IAAOD,EAAK,GAClC,CACF,CAGMZ,EAAM,GAGHI,EAAM,IACbX,EAAK/C,GAAeQ,EAAKC,EAAKxD,EAAKC,EAAK+C,EAAIyD,EAAKnF,GACjDyE,EAAKhD,GAAeM,EAAKC,EAAKX,EAAKC,EAAKI,EAAIyD,EAAKnF,GAEjDmE,EAAQnG,OAAOwG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCwG,EAAMxD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAGkC,EAAI5K,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,MAAO/B,GACrGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIqC,EAAKrO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,MAK7EmE,EAAQnG,OAAOU,EAAKC,GAAMwF,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIgD,EAAKC,GAAM3E,IArB1CmE,EAAQnG,OAAOU,EAAKC,GAyBpC0F,EAAK,IAAcS,EAAM,GAGtBI,EAAM,IACbV,EAAK/C,GAAeJ,EAAKC,EAAKS,EAAKC,EAAKqC,GAAKa,EAAKlF,GAClDyE,EAAKhD,GAAe/C,EAAKC,EAAKsD,EAAKC,EAAKmC,GAAKa,EAAKlF,GAElDmE,EAAQjG,OAAOsG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCuG,EAAMvD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIvN,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,KAAM/B,GACpGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIoC,EAAKpO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,KAK7EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIQ,EAAKD,EAAK5E,GArBImE,EAAQjG,OAAOmD,EAAKC,EAsB/D,MAhHqB6C,EAAQnG,OAAO,EAAG,GAoHvC,GAFAmG,EAAQlG,YAEJmG,EAAQ,OAAOD,EAAU,KAAMC,EAAS,IAAM,IACpD,CAwCA,OAtCA5E,EAAIqG,SAAW,WACb,IAAI3X,IAAMuS,EAAY6D,MAAM7yB,KAAM8yB,aAAc5D,EAAY2D,MAAM7yB,KAAM8yB,YAAc,EAClFuB,IAAMjF,EAAWyD,MAAM7yB,KAAM8yB,aAAcxD,EAASuD,MAAM7yB,KAAM8yB,YAAc,EAAI,GAAK,EAC3F,MAAO,CAAC1E,GAAIiG,GAAK5X,EAAG6R,GAAI+F,GAAK5X,EAC/B,EAEAsR,EAAIiB,YAAc,SAAS3C,GACzB,OAAOyG,UAAU7yB,QAAU+uB,EAA2B,mBAAN3C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOiB,CAC9F,EAEAjB,EAAImB,YAAc,SAAS7C,GACzB,OAAOyG,UAAU7yB,QAAUivB,EAA2B,mBAAN7C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOmB,CAC9F,EAEAnB,EAAIwE,aAAe,SAASlG,GAC1B,OAAOyG,UAAU7yB,QAAUsyB,EAA4B,mBAANlG,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOwE,CAC/F,EAEAxE,EAAI0E,UAAY,SAASpG,GACvB,OAAOyG,UAAU7yB,QAAUwyB,EAAiB,MAALpG,EAAY,KAAoB,mBAANA,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAO0E,CAC/G,EAEA1E,EAAIqB,WAAa,SAAS/C,GACxB,OAAOyG,UAAU7yB,QAAUmvB,EAA0B,mBAAN/C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOqB,CAC7F,EAEArB,EAAIuB,SAAW,SAASjD,GACtB,OAAOyG,UAAU7yB,QAAUqvB,EAAwB,mBAANjD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOuB,CAC3F,EAEAvB,EAAIyB,SAAW,SAASnD,GACtB,OAAOyG,UAAU7yB,QAAUuvB,EAAwB,mBAANnD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOyB,CAC3F,EAEAzB,EAAI2E,QAAU,SAASrG,GACrB,OAAOyG,UAAU7yB,QAAWyyB,EAAe,MAALrG,EAAY,KAAOA,EAAI0B,GAAO2E,CACtE,EAEO3E,CACT,CC3DwB,IAENqE,EAAmB/xB,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,YAAa,oBAC3C2mB,EAAiB3mB,aAAa,OAAQyc,EAAO4J,YAC7CM,EAAiB3mB,aAAa,eAAgB,OAC9C2mB,EAAiB3mB,aAAa,IAAK,UAAGsiB,EAAIuE,MACpCD,EAAiBhyB,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,YAAa,oBACzC4mB,EAAe5mB,aAAa,OAAQyc,EAAO6J,UAC3CM,EAAe5mB,aAAa,eAAgB,KAC5C4mB,EAAe5mB,aACb,IACA,UAAGsiB,EAAI,SACFuE,GAAQ,CACXhD,SAAUgD,EAAShD,UAAYyC,EAAW,UAI9CpR,EAAIH,OAAO4R,EAAkBC,E,CAI/B,IAAM3b,EAQN,IARMA,EAAOrW,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,cAAe,UACjCiL,EAAKjL,aAAa,qBAAsB,UACxCiL,EAAKjL,aAAa,YAAa,MAC/BiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,OAAQyc,EAAOxR,MAEJ,UAAzB1W,KAAKqE,MAAMknB,WAA6C,MAApBvrB,KAAKqE,MAAMoF,MAEjD,GAAIzJ,KAAKqE,MAAMiL,MAAQtP,KAAKqE,MAAMiL,KAAKrP,OAAS,EAAG,CACjD,IAAMwJ,EAAQpJ,SAASkR,gBAAgB,GAAO,SAC9C9H,EAAMgC,aAAa,IAAK,KACxBhC,EAAMgC,aAAa,KAAM,OACzBhC,EAAMiF,YAAc,UAAGmjB,GACvBpoB,EAAM5B,MAAMmiB,SAAW,MACvB,IAAM1a,EAAOjP,SAASkR,gBAAgB,GAAO,SAC7CjC,EAAK7D,aAAa,IAAK,KACvB6D,EAAK7D,aAAa,KAAM,OACxB6D,EAAKZ,YAAc,UAAG1O,KAAKqE,MAAMiL,MACjCA,EAAKzH,MAAMmiB,SAAW,MACtBtT,EAAK8J,OAAO/W,EAAO6F,GACnBoH,EAAKjL,aAAa,YAAa,mB,MAE/BiL,EAAKhI,YAAc,UAAGmjB,GACtBnb,EAAK7O,MAAMmiB,SAAW,MACtBtT,EAAKjL,aAAa,YAAa,yBAIjCiL,EAAKhI,YAAc,UAAGqjB,EAAQ,KAC9Brb,EAAKjL,aAAa,YAAa,oBAGjCkV,EAAIH,OAAO9J,GAcjB,OAR+B,IAA7B1W,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,gBAEX8S,EAAIlV,aAAa,UAAW,OAGlB,OAARkV,GAAcvgB,EAAQogB,OAAOG,GAE1BvgB,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,IACQ,IAA7BJ,KAAK2G,KAAKT,gBACZlG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAElD7F,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMU,YAAAnC,cAAV,SAAwBnB,EAAeC,GACH,iBAA9BjG,KAAKqE,MAAMotB,eACb,YAAMtqB,cAAa,UAACnB,EAAO,IAE3B,YAAMmB,cAAa,UAACnB,EAAOA,EAE/B,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnB,EAAOA,GAC1B,IAAIC,EAASjG,KAAKqE,MAAMstB,UAAY,EACF,iBAA9B3xB,KAAKqE,MAAMotB,iBACbxrB,EAAS,IAEX,YAAMiE,SAAQ,aAAC,MACVlK,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,IAEV,EAEQ,YAAA+rB,YAAR,WACE,IAAMN,EAAW1xB,KAAKqE,MAAMqtB,UAAY,EAClCC,EAAW3xB,KAAKqE,MAAMstB,UAAY,IAClCloB,EAA4B,MAApBzJ,KAAKqE,MAAMoF,MAAgB,EAAIzJ,KAAKqE,MAAMoF,MAExD,OAAIA,GAASioB,EAAiB,EACrBjoB,GAASkoB,EAAiB,IACvBliB,KAAK6kB,OAAQ7qB,EAAQioB,IAAaC,EAAWD,GAAa,IACxE,EACF,EA7NA,CAAwCnU,EAAA,I,wwBCtEjC,SAASgX,GAAoBxzB,GAClC,GAAsB,OAAlBA,EAAKgc,UACP,GACiC,iBAAxBhc,EAAKic,gBACqB,IAAjCjc,EAAKgc,SAASC,eAEd,MAAM,IAAItZ,UAAU,kCAGtB,IAAI,QAAc3C,EAAKyzB,cACrB,MAAM,IAAI9wB,UAAU,kCAIxB,GAAyC,QAArC,QAAW3C,EAAK0zB,UAAW,MAC7B,MAAM,IAAI/wB,UAAU,uBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACN8xB,UAAW1zB,EAAK0zB,UAChB1X,UAAU,QAAiBhc,EAAKgc,SAAU,MAC1CC,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDwX,cAAc,QAAiBzzB,EAAKyzB,aAAc,OAEtD,CAEA,gC,8CA8CA,QA9CqC,QAC5B,YAAAjtB,iBAAP,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAmBvC,OAlBAF,EAAQG,UAAY,UAEc,OAA9BP,KAAKqE,MAAM2Y,gBACb5c,EAAQyH,MAAMiqB,WAAa,cAAO9xB,KAAKqE,MAAM2Y,eAAc,eAC3D5c,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACH,OAA5Btd,KAAKqE,MAAMmwB,eACbp0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMmwB,iBAGS,OAA5Bx0B,KAAKqE,MAAMmwB,eACpBp0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMmwB,eAGvCp0B,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACS,OAA9BJ,KAAKqE,MAAM2Y,gBACb5c,EAAQyH,MAAMiqB,WAAa,cAAO9xB,KAAKqE,MAAM2Y,eAAc,eAC3D5c,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACH,OAA5Btd,KAAKqE,MAAMmwB,eACbp0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMmwB,gBAG5Bp0B,EAAQkJ,UAAY,IACiB,OAA5BtJ,KAAKqE,MAAMmwB,eACpBp0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMmwB,cAEhD,EACF,EA9CA,CAAqCjX,EAAA,I,orBClC9B,SAASmX,GAAqB3zB,GACnC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN8G,OAAO,QAAW1I,EAAK0I,MAAO,GAC9B8E,QAAQ,QAAcxN,EAAKwN,QAAU,UAAYxN,EAAKwN,OACtDomB,YAAY,QAAc5zB,EAAK4zB,YAAc,UAAY5zB,EAAK4zB,WAC9DnzB,OAAO,QAAcT,EAAKS,OAAS,GAAKT,EAAKS,MAC7CozB,aAAa,QAAc7zB,EAAK6zB,aAAe,GAAK7zB,EAAK6zB,YACzDC,YAAY,QAAc9zB,EAAK8zB,YAAc,GAAK9zB,EAAK8zB,WACvDC,aAAa,QAAc/zB,EAAK+zB,aAAe,GAAK/zB,EAAK+zB,YACzDC,cAAc,QAAch0B,EAAKg0B,cAC7B,UACAh0B,EAAKg0B,gBACN,QAAmBh0B,GAE1B,CAEA,I,GAAA,4B,8CAoTA,QApTsC,QAC1B,YAAAwG,iBAAV,WACE,IAAIytB,EAAc,GACdC,EAAe,GACfC,EAAe,GACfC,EAAgB,GAEpB,GAA8B,KAA1Bn1B,KAAKqE,MAAMwwB,WAAmB,CAChC,IAAMA,EAAaO,KAAKC,MAAMr1B,KAAKqE,MAAMwwB,YAEtB,OAAfA,IAC4B,GAA1BA,EAAWS,aAA8C,GAA1BT,EAAWU,cAC5CP,EAAch1B,KAAKw1B,UACjBX,EAAWS,YACXt1B,KAAKqE,MAAM2B,MAAQ,GAGnBivB,EAD4B,GAA1BJ,EAAWU,YACEv1B,KAAKw1B,UAAU,IAAKx1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKw1B,UAClBX,EAAWU,YACXv1B,KAAKqE,MAAM2B,MAAQ,IAKM,GAA3B6uB,EAAWY,cAAgD,GAA3BZ,EAAWa,eAC7CR,EAAel1B,KAAKw1B,UAClBX,EAAWY,aACXz1B,KAAKqE,MAAM2B,MAAQ,GAGnBmvB,EAD6B,GAA3BN,EAAWa,aACG11B,KAAKw1B,UAAU,IAAKx1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKw1B,UACnBX,EAAWa,aACX11B,KAAKqE,MAAM2B,MAAQ,I,CAO7B,IACIoJ,EADAumB,EAAU,GAIZ9lB,OAAO7P,KAAKqE,MAAMoF,SAAWzJ,KAAKqE,MAAMoF,OACxCzJ,KAAKqE,MAAMoF,MAAQ,GAAM,EAEzB2F,EAASpP,KAAKqE,MAAMoF,MAAMmsB,QAAQ,IAGhCD,EAD6B,KAA3B31B,KAAKqE,MAAMywB,YACH,KAEA90B,KAAK61B,UAAU71B,KAAKqE,MAAMoF,OAEtC2F,EAAS,IAAIoG,KAAKyc,aAAa,KAAM,CACnC6D,yBAA0B,EAC1BC,sBAAuB,IACtBlgB,OAAO7V,KAAKqE,MAAMoF,QAGvB,IAAIusB,EAAO5mB,EAAO6mB,MAAM,WACX,OAATD,IACF5mB,EAAS4mB,EAAK,IAGhB,IAAME,EAASl2B,KAAKm2B,UAAUn2B,KAAKqE,MAAMoF,OAErC4D,EAAkBhN,SAASuI,eAC7B,4BAGsB,OAApByE,IACFA,EAAkBhN,SAASuI,eACzB,mCAA4B5I,KAAKqE,MAAMF,UAIE,IAAzCkJ,EAAgBxF,MAAMwF,kBACxBA,EAAgBxF,MAAMwF,gBAAkB,QAG1C,IAAM+oB,EAA4B,GAAnBp2B,KAAKqE,MAAM2B,MAEpB5F,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,YAGW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAI1B,IAAMuoB,EAAoBh2B,SAASC,cAAc,OACjD+1B,EAAkB91B,UAAY,qBAG9B,IAAM+1B,EAAYj2B,SAASC,cAAc,OACzCg2B,EAAU/1B,UAAY,aACtB+1B,EAAUzuB,MAAMwF,gBAAkB,UAAGA,EAAgBxF,MAAMwF,iBAG3D,IAAMkpB,EAAYl2B,SAASC,cAAc,OACzCi2B,EAAUh2B,UAAY,aACtBg2B,EAAU1zB,GAAK,oBAAa7C,KAAKqE,MAAMxB,IACvC0zB,EAAU1uB,MAAMwF,gBAAkB,UAAGrN,KAAKqE,MAAMkK,QAGhD,IAAMioB,EAAYn2B,SAASC,cAAc,OACzCk2B,EAAUj2B,UAAY,aAGtB,IAAMk2B,EAASp2B,SAASC,cAAc,OACtCm2B,EAAOl2B,UAAY,aAEnB,IAAMm2B,EAAS,6BAEf,GAAmB,IAAf1B,EAAmB,CACrB,IAAM2B,EAAat2B,SAASkR,gBAAgBmlB,EAAQ,OACpDC,EAAWC,eAAe,KAAM,QAAS,QACzCD,EAAWC,eAAe,KAAM,SAAU,QAC1CD,EAAWC,eAAe,KAAM,QAAS,+BACzC,IAAMC,EAAcx2B,SAASkR,gBAAgBmlB,EAAQ,QACrDG,EAAYD,eAAe,KAAM,KAAM,qBAAc52B,KAAKqE,MAAMxB,KAChEg0B,EAAYD,eACV,KACA,IACA,WAAI52B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIgvB,EAAW,YAAIh1B,KAChEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUivB,EAAY,MAElE4B,EAAYD,eAAe,KAAM,QAAS,eAC1CD,EAAW/1B,YAAYi2B,GACvBR,EAAkBz1B,YAAY+1B,E,CAIhC,GAAoB,IAAhBzB,EAAoB,CACtB,IAAM4B,EAAcz2B,SAASkR,gBAAgBmlB,EAAQ,OACrDI,EAAYF,eAAe,KAAM,QAAS,QAC1CE,EAAYF,eAAe,KAAM,SAAU,QAC3CE,EAAYF,eAAe,KAAM,QAAS,+BAC1C,IAAMG,EAAe12B,SAASkR,gBAAgBmlB,EAAQ,QACtDK,EAAaH,eAAe,KAAM,KAAM,sBAAe52B,KAAKqE,MAAMxB,KAClEk0B,EAAaH,eACX,KACA,IACA,WAAI52B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIkvB,EAAY,YAAIl1B,KACjEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUmvB,EAAa,MAEnE4B,EAAaH,eAAe,KAAM,OAAQ,WAC1CE,EAAYl2B,YAAYm2B,GACxBV,EAAkBz1B,YAAYk2B,E,CAIhC,IAAME,EAAK32B,SAASC,cAAc,MAClC02B,EAAGC,UAAY7nB,EAASumB,EACxBqB,EAAGnvB,MAAMmiB,SAAW,UAAY,IAAToM,EAAa,MACpCY,EAAGnvB,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMkK,QAC/ByoB,EAAGnvB,MAAMqvB,WAAa,IAEtB,IAAMC,EAAK92B,SAASC,cAAc,MACV,IAApBN,KAAKqE,MAAM7C,MACb21B,EAAGzoB,YAAc1O,KAAKo3B,cAAcp3B,KAAKqE,MAAMyF,YAE/CqtB,EAAGzoB,YAAc1O,KAAKo3B,cAAcp3B,KAAKqE,MAAM7C,OAEjD21B,EAAG31B,MAAQxB,KAAKqE,MAAMuwB,YACtBuC,EAAG1rB,aAAa,QAASzL,KAAKqE,MAAMuwB,aAEpCuC,EAAGtvB,MAAMmiB,SAAW,UAAY,IAAToM,EAAa,MACpCe,EAAGtvB,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMswB,YAC/BwC,EAAGtvB,MAAMqvB,WAAa,IAEtB,IAAIG,EAASh3B,SAASC,cAAc,UACpC+2B,EAAO10B,KAAO,kBACd00B,EAAOC,OAAS,WACdf,EAAU1uB,MAAMqe,UAAY,iBAAUgQ,EAAM,QAC9C,EACA,IAAIqB,EAAcpiB,OAAOqiB,SAASC,SAASlS,MAAM,KAAK,GAWtD,OAVA8R,EAAOrpB,IAAM,UAAG3N,SAASq3B,IAAG,YAAIH,EAAW,yCAC3CjB,EAAU11B,YAAYo2B,GACtBV,EAAU11B,YAAYu2B,GACtBd,EAAkBz1B,YAAY21B,GAC9BF,EAAkBz1B,YAAY41B,GAC9BH,EAAkBz1B,YAAY61B,GAC9BJ,EAAkBz1B,YAAY01B,GAC9BD,EAAkBz1B,YAAYy2B,GAC9Bj3B,EAAQQ,YAAYy1B,GAEbj2B,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GAA3B,WACEA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,UAE5C,IAAI4sB,EAASl2B,KAAKm2B,UAAUn2B,KAAKqE,MAAMoF,OAEjCktB,EAAat2B,SAASuI,eAAe,qBAAc5I,KAAKqE,MAAMxB,KAClD,MAAd8zB,IACFA,EAAW9uB,MAAM8vB,QAAU,QAG7B,IAAMb,EAAcz2B,SAASuI,eAAe,sBAAe5I,KAAKqE,MAAMxB,KACnD,MAAfi0B,IACFA,EAAYjvB,MAAM8vB,QAAU,QAG9B1pB,YAAW,WACS,MAAd0oB,IACFA,EAAW9uB,MAAM8vB,QAAU,SAGV,MAAfb,IACFA,EAAYjvB,MAAM8vB,QAAU,SAG9B,IAAIpB,EAAYl2B,SAASuI,eAAe,oBAAa,EAAKvE,MAAMxB,KAC5D0zB,IACFA,EAAU1uB,MAAMqe,UAAY,iBAAUgQ,EAAM,SAEhD,GAAG,IACL,EAEU,YAAA/uB,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAAQ,EACrC,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAChC,EAEQ,YAAAmwB,UAAR,SAAkB1sB,GAChB,IAAIysB,EAAS,EACb,GAA+B,KAA3Bl2B,KAAKqE,MAAMywB,YACboB,EAASzsB,EAAQ,EAAI,QAChB,CACL,IAAMmuB,EAASxC,KAAKC,MAAMr1B,KAAKqE,MAAMywB,aACrC,GAAI8C,EAAY,MAAMnuB,EACpBysB,EAAS,OACJ,GAAI0B,EAAY,MAAMnuB,EAC3BysB,EAAS,OACJ,CACL,IAAM2B,EAAQD,EAAY,IAAIA,EAAY,IAE1C1B,GAAU,IAAkB,KADX0B,EAAY,IAAInuB,GACEouB,GAAS,IAAM,C,EAItD,OAAO3B,CACT,EAEQ,YAAAL,UAAR,SAAkBpsB,GAChB,IAAIquB,EAAS,GACP73B,GAAUwJ,EAAQ,IAAIxJ,OAW5B,OAVIA,EAAS,GAAKA,GAAU,EAC1B63B,EAAS,KACA73B,EAAS,GAAKA,GAAU,EACjC63B,EAAS,KACA73B,EAAS,GAAKA,GAAU,GACjC63B,EAAS,KACA73B,EAAS,IAAMA,GAAU,KAClC63B,EAAS,MAGJA,CACT,EAEQ,YAAAtC,UAAR,SAAkBG,EAAiBoC,GACjC,GAA+B,KAA3B/3B,KAAKqE,MAAMywB,YAAoB,CACjC,IAAM8C,EAASxC,KAAKC,MAAMr1B,KAAKqE,MAAMywB,aACrC,GAAI8C,EAAY,MAAMjC,EACpBA,EAAU,OACL,GAAIiC,EAAY,MAAMjC,GAAuB,MAAZA,EACtCA,EAAU,QACL,CACL,IAAMkC,EAAQD,EAAY,IAAIA,EAAY,IAE1CjC,EAAU,IAAkB,KADbiC,EAAY,IAAIjC,GACIkC,C,EAIvClC,EAAU,IAAgB,IAAVA,EAChB,IAAMtwB,EAAI0yB,EAAQtoB,KAAK2e,IAAKuH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EAClDzyB,EAAIyyB,EAAQtoB,KAAK6e,IAAKqH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EACxD,MAAO,UAAG1yB,EAAC,YAAIC,EACjB,EAEQ,YAAA8xB,cAAR,SAAsB51B,GACpB,GAAa,MAATA,GAAiBA,EAAMvB,OAAS,GAAI,CACtC,IAAM+3B,EAAax2B,EAAMvB,OAAS,EAC5Bg4B,EAAOD,EAAa,EACpBE,EAAe12B,EAAMmR,OAAO,EAAGqlB,EAAaC,GAC5CE,EAAc32B,EAAMmR,OAAOqlB,EAAaC,GAE9C,MAAO,UAAGC,EAAY,cAAMC,E,CAE5B,OAAO32B,CAEX,EACF,EApTA,CAAsC+b,EAAA,I,qPCuDtC,SAAS6a,GAAYr3B,GACnB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,OAAQf,GACN,KAAK,EACH,OAAOma,EAAwB/b,GACjC,KAAK,EACH,OAAO,QAAwBA,GACjC,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAOyqB,GAAwBzqB,GACjC,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAOywB,GAAuBzwB,GAChC,KAAK,EACH,OAAOsqB,GAAkBtqB,GAC3B,KAAK,EACH,OAAOyc,EAAiBzc,GAC1B,KAAK,GACH,OAAOwzB,GAAoBxzB,GAC7B,KAAK,GACH,OAAOwlB,EAAkBxlB,GAC3B,KAAK,GACH,OAAOgqB,GAAgBhqB,GACzB,KAAK,GACH,OAAOsgB,EAAiBtgB,GAC1B,KAAK,GACH,OAAO,QAA0BA,GACnC,KAAK,GACH,OAAO,QAAuBA,GAChC,KAAK,GACH,OAAO,QAAsBA,GAC/B,KAAK,GACH,OAAOgmB,EAAkBhmB,GAC3B,KAAK,GACH,OAAO8c,EAAuB9c,GAChC,KAAK,GACH,OAAO8jB,EAAwB9jB,GACjC,KAAK,GACH,OAAO2zB,GAAqB3zB,GAC9B,KAAK,GACH,OAAO,QAAuBA,GAChC,QACE,MAAM,IAAI2C,UAAU,qBAE1B,CAwEA,I,GAAA,WA8cE,WACEoH,EACAzG,EACAg0B,GAHF,WAxcQ,KAAAC,aAEJ,CAAC,EAEG,KAAAC,WAAgC,GAEhC,KAAAC,UAEJ,CAAC,EAGG,KAAAC,UAEJ,CAAC,EAEG,KAAA1U,MAEJ,CAAC,EAGY,KAAApf,kBAAoB,IAAIme,EAAA,EAExB,KAAAle,qBAAuB,IAAIke,EAAA,EAE3B,KAAAje,kBAAoB,IAAIie,EAAA,EAExB,KAAAD,sBAAwB,IAAIC,EAAA,EAE5B,KAAA/d,oBAAsB,IAAI+d,EAAA,EAE1B,KAAA5d,6BAA+B,IAAI4d,EAAA,EAInC,KAAA3d,YAA4B,GAMrC,KAAAuzB,mBAAkD,SAAA31B,GACxD,EAAK4B,kBAAkBvD,KAAK2B,EAE9B,EAMQ,KAAA41B,sBAAqD,SAAA51B,GAC3D,EAAK6B,qBAAqBxD,KAAK2B,EAEjC,EAMQ,KAAA61B,sBAAqD,SAAA71B,GAC3D,IAAIJ,EAAOI,EAAE8C,KAAKW,UAAU7D,KAC5B,GAAa,KAATA,GAAwB,KAATA,IAA2C,IAA5B,EAAK0B,MAAMw0B,aAAuB,CAClE,IAAIC,EAAW,EAAKz0B,MAAMy0B,SACtBC,EAAYh2B,EAAE2C,YAAYL,EAC1B2zB,EAAYj2B,EAAE2C,YAAYJ,EAC9B,GAAIyzB,EAAYD,GAAa,GAAKE,EAAYF,GAAa,EAAG,CAC5D,IAAIzzB,EAAIoK,KAAKqD,MAAMimB,EAAYD,GAAYA,EACvCxzB,EAAImK,KAAKqD,MAAMkmB,EAAYF,GAAYA,EAQ3C,YAPqBz4B,SAASuI,eAC5B,sBAEa6C,aACb,QACA,OAASnG,EAAI,uBAAyBD,EAAI,gB,EAMhD,IAAM4zB,EAASl2B,EAAE8C,KAAKxB,MAAMxB,GACV,EAAKq2B,iBAAiBD,GAE9Bt4B,SAAQ,SAAAw4B,GACZA,EAASp1B,WAAak1B,EAExBE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBid,cAAe,EAAK8X,gBAAgBr2B,EAAE2C,YAAa3C,EAAE8C,QAE9CszB,EAASE,UAAYJ,IAE9BE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBod,YAAa,EAAK2X,gBAAgBr2B,EAAE2C,YAAa3C,EAAE8C,QAGzD,IAGA,EAAKyzB,qBAAqBv2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAGzD,EAMQ,KAAA6zB,8BAA6D,SAAAx2B,GACnE,EAAK8B,kBAAkBzD,KAAK2B,GAE5B,EAAKu2B,qBAAqBv2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAEzD,EA+BQ,KAAA8zB,kCAEI,SAAAz2B,GAEV,EAAK02B,YAAY12B,EAAE8C,MAGnB,EAAKgd,sBAAsBzhB,KAAK2B,EAGlC,EAMQ,KAAA22B,wBAAyD,SAAA32B,GAE/D,IAAM8C,EAAO9C,EAAE8C,KACTxB,EAAQwB,EAAKxB,MACb40B,EAAS50B,EAAMxB,GACf21B,EAAY,EAAKU,iBAAiBD,GAElC/sB,EAAW,CACf7G,EAAGhB,EAAMgB,EACTC,EAAGjB,EAAMiB,GAGLqB,EAAO,EAAK2xB,aAAaW,GAAQtyB,KAEvC,EAAK2xB,aAAaW,GAAQtyB,KAAO,SAC5BA,GAAI,CACPoC,YAAY,IAGdyvB,EAAU73B,SAAQ,SAAAw4B,GACZA,EAASp1B,WAAak1B,EAExBE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBid,cAAe,EAAK8X,gBAAgBltB,EAAUrG,KAEvCszB,EAASE,UAAYJ,IAE9BE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBod,YAAa,EAAK2X,gBAAgBltB,EAAUrG,KAGlD,GAGF,EAMQ,KAAA8zB,gCAEI,SAAA52B,GACV,EAAKgC,oBAAoB3D,KAAK2B,EAEhC,EAMQ,KAAA62B,oBAAoD,SAAA72B,GAE1D,EAAKw1B,WAAa,EAAKA,WAAWp2B,QAAO,SAAAU,GAAM,OAAAA,IAAOE,EAAE8C,KAAKxB,MAAMxB,EAApB,WACxC,EAAKy1B,aAAav1B,EAAE8C,KAAKxB,MAAMxB,IACtC,EAAKg3B,eAAe92B,EAAE8C,KAAKxB,MAAMxB,GACnC,EAMQ,KAAAi3B,8BAEI,SAAA/2B,GACN,EAAKg3B,SAAS53B,QAAO,SAAA0D,GAAQ,OAAwB,GAAxBA,EAAKc,KAAKC,UAAV,IAA8B3G,OAAS,EACtE8C,EAAE0H,UAAW,EAEb1H,EAAE0H,UAAW,EAEf,EAAKvF,6BAA6B9D,KAAK2B,EACzC,EAGQ,KAAAi3B,qBAAgD,WACtD,EAAKC,eACP,EAgOEj6B,KAAKk6B,aAAepvB,EACpB9K,KAAKm6B,OA9fF,SACLp5B,GAIE,IAAA8B,EAUE9B,EAAI,GATNpB,EASEoB,EAAI,KARNylB,EAQEzlB,EAAI,QAPNq5B,EAOEr5B,EAAI,cANNsM,EAMEtM,EAAI,gBALNs5B,EAKEt5B,EAAI,WAJNu5B,EAIEv5B,EAAI,kBAHN8H,EAGE9H,EAAI,gBAFN+3B,EAEE/3B,EAAI,SAER,GAFIA,EAAI,aAEE,MAAN8B,GAAcW,MAAMC,SAASZ,IAC/B,MAAM,IAAIa,UAAU,eAEtB,GAAoB,iBAAT/D,GAAqC,IAAhBA,EAAKM,OACnC,MAAM,IAAIyD,UAAU,iBAEtB,GAAe,MAAX8iB,GAAmBhjB,MAAMC,SAAS+iB,IACpC,MAAM,IAAI9iB,UAAU,qBAGtB,OAAO,IACLb,GAAIY,SAASZ,GACblD,KAAI,EACJ6mB,QAAS/iB,SAAS+iB,GAClB4T,eAAe,QAAiBA,EAAe,MAC/C/sB,iBAAiB,QAAiBA,EAAiB,MACnDgtB,YAAY,QAAaA,GACzBC,mBAAmB,QAAWA,EAAmB,GACjDzxB,gBAAiBA,EACjBiwB,UAAU,QAAWA,EAAU,IAC/BD,cAAc,IACX,QAAiB93B,GAExB,CAsdkBw5B,CAA0Bl2B,GAGxCrE,KAAKqK,UAGLguB,EAAQA,EAAMmC,MAAK,SAASnG,EAAGoG,GAC7B,OAAY,MAARpG,EAAExxB,IAAsB,MAAR43B,EAAE53B,GAAmB,EAChCwxB,EAAExxB,GAAK43B,EAAE53B,GAAW,GAChB,CACf,KAGMlC,SAAQ,SAAAkF,GAAQ,SAAK60B,WAAW70B,EAAM,EAAtB,IAGtB7F,KAAK26B,iBAGL36B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GAChBA,aAAgB,GAClB,EAAK4zB,YAAY5zB,EAErB,IAEA7F,KAAKk6B,aAAap3B,iBAAiB,QAAS9C,KAAKg6B,qBACnD,CAyuBF,OAzlCU,YAAAY,kBAAR,SAA0Bv1B,EAAWC,EAAWjB,GAC9C,OACgB,IAAdA,EAAM1B,MACQ,IAAd0B,EAAM1B,MAMN0C,EAAIhB,EAAMgB,GACVA,EAAIhB,EAAMgB,EAAIhB,EAAM2B,OACpBV,EAAIjB,EAAMiB,GACVA,EAAIjB,EAAMiB,EAAIjB,EAAM4B,MAKxB,EA2GU,YAAAwzB,YAAV,SAAsBjU,GACpB,IAAI5B,EAAe4B,EAAEnhB,MAAMxB,GACvBg4B,EAAc,EACdC,EAAY,EAEhB,IACE,IAAK,IAAI7vB,KAAKjL,KAAKs4B,aAEft4B,KAAK46B,kBACHpV,EAAEnhB,MAAMid,cAAcjc,EACtBmgB,EAAEnhB,MAAMid,cAAchc,EACtBtF,KAAKs4B,aAAartB,GAAG5G,SAIvBw2B,EAAcp3B,SAASwH,IAIvBjL,KAAK46B,kBACHpV,EAAEnhB,MAAMod,YAAYpc,EACpBmgB,EAAEnhB,MAAMod,YAAYnc,EACpBtF,KAAKs4B,aAAartB,GAAG5G,SAIvBy2B,EAAYr3B,SAASwH,IAyEzB,IAAK,IAAIA,KArEa,MAAlBjL,KAAKy4B,YACPz4B,KAAKy4B,UAAY,CAAC,GAGF,MAAdz4B,KAAK+jB,QACP/jB,KAAK+jB,MAAQ,CAAC,GAGZ8W,GAAejX,IACjBiX,EAAc,GAGZC,GAAalX,IACfkX,EAAY,GAIU,MAApB96B,KAAK+jB,MAAMH,KACb5jB,KAAK+jB,MAAMH,GAAQ,CACjBc,MAAOmW,EACPlW,IAAKmW,IAKLD,EAAc,GAEmB,MAA/B76B,KAAKy4B,UAAUoC,KACjB76B,KAAKy4B,UAAUoC,GAAe,CAAC,GAIjC76B,KAAKy4B,UAAUoC,GAAajX,GAAQ,CAClCc,MAAOmW,EACPlW,IAAKmW,IAMH96B,KAAK+jB,MAAMH,GAAa,MAAI,IAC9B5jB,KAAKy4B,UAAUz4B,KAAK+jB,MAAMH,GAAa,OAAGA,GAAa,MAAI,EAC3D5jB,KAAK+jB,MAAMH,GAAa,MAAI,GAI5BkX,EAAY,GACmB,MAA7B96B,KAAKy4B,UAAUqC,KACjB96B,KAAKy4B,UAAUqC,GAAa,CAAC,GAG/B96B,KAAKy4B,UAAUqC,GAAWlX,GAAQ,CAChCc,MAAOmW,EACPlW,IAAKmW,IAIH96B,KAAK+jB,MAAMH,GAAW,IAAI,IAC5B5jB,KAAKy4B,UAAUz4B,KAAK+jB,MAAMH,GAAW,KAAGA,GAAW,IAAI,EACvD5jB,KAAK+jB,MAAMH,GAAW,IAAI,GAI9B5jB,KAAK+jB,MAAMH,GAAQ,CACjBc,MAAOmW,EACPlW,IAAKmW,GAIO96B,KAAKy4B,UACbz4B,KAAKy4B,UAAUxtB,GAAG2Y,KAEe,GAAjC5jB,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OACO,GAA/B1kB,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,aAGjB3kB,KAAKy4B,UAAUxtB,GAAG2Y,GAEqB,IAA1C5H,OAAO+e,KAAK/6B,KAAKy4B,UAAUxtB,IAAIhL,eAC1BD,KAAKy4B,UAAUxtB,KAKvBjL,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OAASmW,GAChC76B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,KAAOmW,GAChC96B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OAASmW,GAChC76B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,KAAOmW,YAG1B96B,KAAKy4B,UAAUxtB,GAAG2Y,GAEqB,IAA1C5H,OAAO+e,KAAK/6B,KAAKy4B,UAAUxtB,IAAIhL,eAC1BD,KAAKy4B,UAAUxtB,I,CAK9B,MAAOuJ,GACP6R,QAAQ7R,MAAMA,E,CAElB,EAUU,YAAA8kB,qBAAV,SAA+BzzB,EAAiBm1B,EAAcC,GAA9D,WACiC,MAA3Bj7B,KAAKy4B,UAAU5yB,EAAKhD,MAIxBmZ,OAAO+e,KAAK/6B,KAAKy4B,UAAU5yB,EAAKhD,KAAKlC,SAAQ,SAAAsK,GAC3C,IAAIiwB,EAASz3B,SAASwH,GAEtB,IAAe,IADD,EAAKstB,WAAWzmB,QAAQopB,GACtC,CAGA,IAAItX,EAAO,EAAK0U,aAAa4C,GAC7B,GAAItX,EAAKvf,MAAO,CACd,IAAIkd,EAASqC,EAAKvf,MAAMid,cAAcjc,EAClCmc,EAASoC,EAAKvf,MAAMid,cAAchc,EAClCoc,EAAOkC,EAAKvf,MAAMod,YAAYpc,EAC9Bsc,EAAOiC,EAAKvf,MAAMod,YAAYnc,EAE9BO,EAAKhD,IAAM,EAAK41B,UAAU5yB,EAAKhD,IAAIq4B,GAAe,QACpD3Z,EAASyZ,EAAG31B,EAAIQ,EAAKG,MAAQ,EAC7Bwb,EAASwZ,EAAG11B,EAAIO,EAAKI,OAAS,GAG5BJ,EAAKhD,IAAM,EAAK41B,UAAU5yB,EAAKhD,IAAIq4B,GAAa,MAClDxZ,EAAOsZ,EAAG31B,EAAIQ,EAAKG,MAAQ,EAC3B2b,EAAOqZ,EAAG11B,EAAIO,EAAKI,OAAS,GAI9B,EAAKk1B,cAAc,SACdvX,EAAKvf,OAAK,CACbkd,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,KAGJsZ,IAC8B,QAC9B,KACA,SAACG,GACC,EAAKvY,sBAAsBzhB,KAAK,CAC9ByE,KAAMu1B,EAAQxX,KACdtC,cAAe,CACbjc,EAAG+1B,EAAQ7Z,OACXjc,EAAG81B,EAAQ5Z,QAEbC,YAAa,CACXpc,EAAG+1B,EAAQ1Z,KACXpc,EAAG81B,EAAQzZ,OAGjB,GAIF0Z,CAA0B,CACxBzX,KAAMA,EACNrC,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,G,EAId,IAGA3hB,KAAK26B,eAAe90B,EAAKhD,GAAIm4B,EAAG31B,EAAIQ,EAAKG,MAAQ,EAAGg1B,EAAG11B,EAAIO,EAAKI,OAAS,GAC3E,EAwCA,sBAAW,uBAAQ,C,IAAnB,sBAEE,OAAOjG,KAAKu4B,WACT+C,KAAI,SAAAz4B,GAAM,SAAKy1B,aAAaz1B,EAAlB,IACVV,QAAO,SAAAkqB,GAAK,OAAK,MAALA,CAAA,GACjB,E,gCAMO,YAAAqO,WAAP,SAAkB70B,EAAiB6sB,QAAA,IAAAA,IAAAA,EAAA,MACjC,IACE,IAAM6I,EAnrBZ,SAA0Bx6B,GACxB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,IAAMiD,GAAO,QAAgB5F,GAE7B,OAAQ4B,GACN,KAAK,EACH,OAAO,IAAI,EAAYma,EAAwB/b,GAAO4F,GACxD,KAAK,EACH,OAAO,IAAI60B,GAAA,GAAY,QAAwBz6B,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAO,IAAI,GAAY6kB,GAAwBzqB,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAO,IAAI,GAAW6qB,GAAuBzwB,GAAO4F,GACtD,KAAK,EACH,OAAO,IAAI,GAAM0kB,GAAkBtqB,GAAO4F,GAC5C,KAAK,EACH,OAAO,IAAI,EAAK6W,EAAiBzc,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAI,GAAQ4tB,GAAoBxzB,GAAO4F,GAChD,KAAK,GACH,OAAO,IAAI,EAAM4f,EAAkBxlB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,GAAIokB,GAAgBhqB,GAAO4F,GACxC,KAAK,GACH,OAAO,IAAI,EAAK0a,EAAiBtgB,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAI80B,GAAA,GAAc,QAA0B16B,GAAO4F,GAC5D,KAAK,GACH,OAAO,IAAI+0B,GAAA,GAAW,QAAuB36B,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAIg1B,GAAA,GAAU,QAAsB56B,GAAO4F,GACpD,KAAK,GACH,OAAO,IAAI,EAAMogB,EAAkBhmB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,EAAWkX,EAAuB9c,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAI,EAAYke,EAAwB9jB,GAAO4F,GACxD,KAAK,GACH,OAAO,IAAI,GAAS+tB,GAAqB3zB,GAAO4F,GAClD,KAAK,GACH,OAAO,IAAIi1B,GAAA,GAAW,QAAuB76B,GAAO4F,GACtD,QACE,MAAM,IAAIjD,UAAU,kBAE1B,CA+nB2Bm4B,CAAiBh2B,GAyBtC,OAvBA6sB,EAAQ4F,aAAaiD,EAAal3B,MAAMxB,IAAM04B,EAC9C7I,EAAQ6F,WAAWhsB,KAAKgvB,EAAal3B,MAAMxB,IAE3C04B,EAAa1uB,SAAS6lB,EAAQkH,qBAC9B2B,EAAazuB,mBAAmB4lB,EAAQoH,+BACxCyB,EAAajvB,QAAQomB,EAAQgG,oBAC7B6C,EAAa/uB,WAAWkmB,EAAQiG,uBAG5B4C,aAAwB,GAC1BA,EAAa3W,uBACX8N,EAAQ8G,mCAEVx5B,KAAKy5B,YAAY8B,KAEjBA,EAAa9uB,QAAQimB,EAAQkG,uBAC7B2C,EAAa7uB,mBAAmBgmB,EAAQ6G,+BACxCgC,EAAa5uB,UAAU+lB,EAAQgH,yBAC/B6B,EAAa3uB,iBAAiB8lB,EAAQiH,kCAIxCjH,EAAQwH,aAAa1Z,OAAO+a,EAAa/2B,YAClC+2B,C,CACP,MAAO/mB,GACP6R,QAAQ7R,MAAM,gCAAkCA,EAAgBsnB,Q,CAGpE,EAMO,YAAAC,eAAP,SAAsB1D,GAAtB,WAEQ2D,EAAU3D,EACbiD,KAAI,SAAAz1B,GAAQ,OAAAA,EAAKhD,IAAM,IAAX,IACZV,QAAO,SAAAU,GAAM,OAAM,MAANA,CAAA,IAEG7C,KAAKu4B,WAAWp2B,QAAO,SAAAU,GAAM,OAAAm5B,EAAQlqB,QAAQjP,GAAM,CAAtB,IAErClC,SAAQ,SAAAkC,GACY,MAAzB,EAAKy1B,aAAaz1B,KACpB,EAAKy1B,aAAaz1B,GAAIgI,gBACf,EAAKytB,aAAaz1B,GAE7B,IAEA7C,KAAKu4B,WAAayD,EAGlB3D,EAAM13B,SAAQ,SAAAkF,GACZ,GAAIA,EAAKhD,GACP,GAAkC,MAA9B,EAAKy1B,aAAazyB,EAAKhD,IAEzB,EAAK63B,WAAW70B,QAGhB,IACE,EAAKyyB,aAAazyB,EAAKhD,IAAIwB,MAAQ+zB,GAAYvyB,E,CAC/C,MAAO2O,GACP6R,QAAQ7R,MACN,6BACCA,EAAgBsnB,Q,CAK3B,IAGA97B,KAAK26B,gBACP,EAMO,YAAAQ,cAAP,SAAqBt1B,GAEnB,IACE7F,KAAKs4B,aAAazyB,EAAKhD,IAAIwB,MAAQ,MAC9B+zB,GAAYvyB,G,CAEjB,MAAO2O,GACP6R,QAAQ7R,MAAM,0BAA4BA,EAAgBsnB,Q,CAI5D97B,KAAK26B,gBACP,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,MAAK36B,KAAKm6B,OACnB,E,IAQA,SAAiBlwB,GACf,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAKm6B,OAASlwB,EAKdjK,KAAKqK,OAAOF,EACd,E,gCAMO,YAAAE,OAAP,SAAcF,QAAA,IAAAA,IAAAA,EAAA,MACRA,GACEA,EAAUiwB,gBAAkBp6B,KAAKqE,MAAM+1B,gBACzCp6B,KAAKk6B,aAAaryB,MAAMsV,gBACO,OAA7Bnd,KAAKqE,MAAM+1B,cACP,cAAOp6B,KAAKqE,MAAM+1B,cAAa,KAC/B,IAE0B,MAA9Bp6B,KAAKqE,MAAMgJ,iBACTlD,EAAUkD,kBAAoBrN,KAAKqE,MAAMgJ,kBAC3CrN,KAAKk6B,aAAaryB,MAAMwF,gBAAkBrN,KAAKqE,MAAMgJ,iBAErDrN,KAAKqG,YAAY8D,EAAWnK,KAAKqE,QACnCrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,UAG9CjG,KAAKqE,MAAM+1B,gBACbp6B,KAAKk6B,aAAaryB,MAAMsV,gBACO,OAA7Bnd,KAAKqE,MAAM+1B,cACP,cAAOp6B,KAAKqE,MAAM+1B,cAAa,KAC/B,IAEJp6B,KAAKqE,MAAMgJ,kBACbrN,KAAKk6B,aAAaryB,MAAMwF,gBAAkBrN,KAAKqE,MAAMgJ,iBACvDrN,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEpD,EASO,YAAAI,YAAP,SAAmBF,EAAgBC,GACjC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOO,YAAAkB,cAAP,SAAqBnB,EAAeC,GAClCjG,KAAKk6B,aAAaryB,MAAM7B,MAAQ,UAAGA,EAAK,MACxChG,KAAKk6B,aAAaryB,MAAM5B,OAAS,UAAGA,EAAM,KAC5C,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKqE,MAAQ,SACRrE,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAKO,YAAA4E,OAAP,WACE7K,KAAKmF,YAAYxE,SAAQ,SAAAib,GAAK,OAAAA,EAAE5P,SAAF,IAC9BhM,KAAK+5B,SAASp5B,SAAQ,SAAAoC,GAAK,OAAAA,EAAE8H,QAAF,IAC3B7K,KAAKs4B,aAAe,CAAC,EACrBt4B,KAAKu4B,WAAa,GAElBv4B,KAAK65B,iBAEL75B,KAAKk6B,aAAahgB,oBAAoB,QAASla,KAAKg6B,sBAEpDh6B,KAAKk6B,aAAa5wB,UAAY,EAChC,EAQO,YAAAqxB,eAAP,SAAsB1B,EAAiB5zB,EAAYC,GAAnD,WAEEtF,KAAK65B,iBAEL75B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpB,GAA4B,OAAxBA,EAAKxB,MAAMN,SAAmB,CAChC,IAAM,EAAS,EAAKu0B,aAAazyB,EAAKxB,MAAMN,UACtCk4B,EAAQ,EAAK3D,aAAazyB,EAAKxB,MAAMxB,IAEvC,GAAUo5B,IACExzB,MAAVwwB,EACEpzB,EAAKxB,MAAMN,UAAYk1B,EAEzB,EAAKiD,gBAAgB,EAAQD,EAAO52B,EAAGC,GAC9BO,EAAKxB,MAAMxB,IAAMo2B,EAE1B,EAAKiD,gBAAgB,EAAQD,OAAOxzB,OAAWA,EAAWpD,EAAGC,GAE7D,EAAK42B,gBAAgB,EAAQD,GAI/B,EAAKC,gBAAgB,EAAQD,G,CAIrC,GACF,EAMQ,YAAApC,eAAR,SAAuBZ,GACrB,GAAc,MAAVA,EACF,IAAK,IAAInd,KAAO9b,KAAKw4B,UAAW,CAC9B,IAAM2D,EAAMrgB,EAAIyJ,MAAM,KAChBxhB,EAAW8L,OAAOpM,SAAS04B,EAAI,IAC/B9C,EAAUxpB,OAAOpM,SAAS04B,EAAI,IAEhClD,IAAWl1B,GAAYk1B,IAAWI,IACpCr5B,KAAKw4B,UAAU1c,GAAKjR,gBACb7K,KAAKw4B,UAAU1c,G,MAI1B,IAAK,IAAIA,KAAO9b,KAAKw4B,UACnBx4B,KAAKw4B,UAAU1c,GAAKjR,gBACb7K,KAAKw4B,UAAU1c,EAG5B,EAQQ,YAAAsgB,gBAAR,SAAwBr4B,EAAkBs1B,GACxC,IAAMp4B,EAAa,UAAG8C,EAAQ,YAAIs1B,GAClC,OAAOr5B,KAAKw4B,UAAUv3B,IAAe,IACvC,EAGQ,YAAAi4B,iBAAR,SACED,GAMA,IAAMoD,EAAgB,GAEtB,IAAK,IAAIvgB,KAAO9b,KAAKw4B,UAAW,CAC9B,IAAM2D,EAAMrgB,EAAIyJ,MAAM,KAChBxhB,EAAW8L,OAAOpM,SAAS04B,EAAI,IAC/B9C,EAAUxpB,OAAOpM,SAAS04B,EAAI,IAEhClD,IAAWl1B,GAAYk1B,IAAWI,GACpCgD,EAAc9vB,KAAK,CACjBxI,SAAQ,EACRs1B,QAAO,EACPzV,KAAM5jB,KAAKw4B,UAAU1c,I,CAK3B,OAAOugB,CACT,EAQQ,YAAAjD,gBAAR,SACEltB,EACA9L,GAEA,IAAIiF,EAAI6G,EAAS7G,EAAIjF,EAAQoE,WAAW83B,YAAc,EAClDh3B,EAAI4G,EAAS5G,EAAIlF,EAAQoE,WAAW+3B,aAAe,EACvD,QACiC,IAAxBn8B,EAAQiE,MAAMV,OACG,KAAxBvD,EAAQiE,MAAMV,OACU,OAAxBvD,EAAQiE,MAAMV,MAEd,OAAQvD,EAAQiE,MAAMf,eACpB,IAAK,KACHgC,EACE4G,EAAS5G,GACRlF,EAAQoE,WAAW+3B,aAClBn8B,EAAQqE,gBAAgB83B,cACxB,EACJ,MACF,IAAK,OACHj3B,EACE4G,EAAS5G,GACRlF,EAAQoE,WAAW+3B,aAClBn8B,EAAQqE,gBAAgB83B,cACxB,EACJ,MACF,IAAK,QACHl3B,EACE6G,EAAS7G,GACRjF,EAAQoE,WAAW83B,YAClBl8B,EAAQqE,gBAAgB63B,aACxB,EACJ,MACF,IAAK,OACHj3B,EACE6G,EAAS7G,GACRjF,EAAQoE,WAAW83B,YAClBl8B,EAAQqE,gBAAgB63B,aACxB,EAIV,MAAO,CAAEj3B,EAAC,EAAEC,EAAC,EACf,EAQQ,YAAA42B,gBAAR,SACE1kB,EACAykB,EACAO,EACAC,EACAC,EACAC,GAEA,IAAM17B,EAAa,UAAGuW,EAAOnT,MAAMxB,GAAE,YAAIo5B,EAAM53B,MAAMxB,IACnB,MAA9B7C,KAAKw4B,UAAUv3B,IACjBjB,KAAKw4B,UAAUv3B,GAAY4J,SAIzB,MAA2B7K,KAAKo5B,gBAAgB5hB,EAAOnT,MAAOmT,GAAzD+J,EAAM,IAAKC,EAAM,IACtB,EAAuBxhB,KAAKo5B,gBAAgB6C,EAAM53B,MAAO43B,GAApDva,EAAI,IAAKC,EAAI,IAGP,MAAX6a,IACFjb,EAASib,GAGI,MAAXC,IACFjb,EAASib,GAGG,MAAVC,IACFhb,EAAOgb,GAGK,MAAVC,IACFhb,EAAOgb,GAIT,IAAM/Y,EAAO,IAAI,EACfvC,EAAiB,CACfxe,GAAI,EACJF,KAAM,GACN4e,OAAM,EACNC,OAAM,EACNE,KAAI,EACJC,KAAI,EACJ3b,MAAO,EACPC,OAAQ,EACR2b,UAAW5hB,KAAKqE,MAAMi2B,kBACtB3rB,OAAO,QAAiBstB,EAAM53B,MAAMH,YAAa,WAEnD,QAAgB,CACdoQ,WAAY,IAAI5K,QAUpB,OANA1J,KAAKw4B,UAAUv3B,GAAc2iB,EAG7BA,EAAKpf,WAAWqD,MAAM+0B,OAAS,IAC/B58B,KAAKk6B,aAAa1Z,OAAOoD,EAAKpf,YAEvBof,CACT,EAMO,YAAAiZ,YAAP,SAAmBv7B,GAMjB,IAAMyK,EAAa/L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAA+wB,eAAP,SAAsBx7B,GAMpB,IAAMyK,EAAa/L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAgxB,YAAP,SAAmBz7B,GAMjB,IAAMyK,EAAa/L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAixB,YAAP,SAAmB17B,GAMjB,IAAMyK,EAAa/L,KAAK6iB,sBAAsBthB,GAAGD,GAGjD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAkxB,cAAP,SAAqB37B,GAMnB,IAAMyK,EAAa/L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAmxB,uBAAP,SACE57B,GAOA,IAAMyK,EAAa/L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAKO,YAAAoxB,eAAP,WACEn9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAKk6B,aAAavyB,UAAUC,IAAI,aAClC,EAKO,YAAAw1B,gBAAP,WACEp9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAKk6B,aAAavyB,UAAUkD,OAAO,aACrC,EAKO,YAAAwyB,sBAAP,WACEr9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAKk6B,aAAavyB,UAAUC,IAAI,kBAChC5H,KAAKk6B,aAAavyB,UAAUkD,OAAO,aACrC,EAKO,YAAAyyB,uBAAP,WACEt9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAKk6B,aAAavyB,UAAUkD,OAAO,kBACnC7K,KAAKk6B,aAAavyB,UAAUC,IAAI,aAClC,EAKO,YAAA21B,eAAP,SAAsBzE,GACpB94B,KAAKm6B,OAAOrB,SAAWr1B,SAASq1B,GAChC94B,KAAKqE,MAAMy0B,SAAWr1B,SAASq1B,EACjC,EAKO,YAAA0E,mBAAP,SAA0B3E,GACxB74B,KAAKm6B,OAAOtB,aAAeA,EAC3B74B,KAAKqE,MAAMw0B,aAAeA,CAC5B,EAOO,YAAA5wB,WAAP,SAAkBgxB,EAAgBwE,GAAlC,gBAAkC,IAAAA,IAAAA,GAAA,GAC5BA,EACFz9B,KAAKu4B,WAAW53B,SAAQ,SAAA+8B,GACtB,IAAM/2B,EAAO,EAAK2xB,aAAaoF,GAAe/2B,KAE1C+2B,IAAkBzE,GAAUtyB,EAAKC,WACnC,EAAK0xB,aAAaoF,GAAe11B,eACxB01B,IAAkBzE,GAAWtyB,EAAKC,YAC3C,EAAK0xB,aAAaoF,GAAez1B,YAErC,IACSjI,KAAKs4B,aAAaW,IAC3Bj5B,KAAKs4B,aAAaW,GAAQhxB,YAE9B,EAMO,YAAAD,aAAP,SAAoBixB,GACdj5B,KAAKs4B,aAAaW,IACPj5B,KAAKs4B,aAAaW,GAAQtyB,KAE9BC,YACP5G,KAAKs4B,aAAaW,GAAQjxB,cAGhC,EAKO,YAAAiyB,cAAP,sBACEj6B,KAAKu4B,WAAW53B,SAAQ,SAAAs4B,GAClB,EAAKX,aAAaW,IACpB,EAAKX,aAAaW,GAAQjxB,cAE9B,GACF,EAsCc,EAAA21B,oBAAd,SAAkC93B,GAChC,IAAI6Q,EACJ,OAAQ7Q,EAAKxB,MAAM1B,MACjB,KAAK,EACH+T,EAAO,WAAG,IAAAzJ,GAAE,gBAAe,cAAOpH,EAAqBxB,MAAM0Y,UAC7D,MACF,KAAK,EACHrG,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,uBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,kBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,yBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,oCACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,eACT,MACF,KAAK,EACHyJ,EAAO,WAAG,IAAAzJ,GAAE,QAAO,cAAOpH,EAAcxB,MAAM0Y,UAC9C,MACF,KAAK,GACHrG,GAAO,IAAAzJ,GAAE,YACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,QACEyJ,GAAO,IAAAzJ,GAAE,QAIb,IAAM2wB,EAA4B/3B,EAAKxB,MAavC,OAX0C,MAAxCu5B,EAA0Bj0B,YACc,MAAxCi0B,EAA0B9zB,WAE1B4M,GAAQ,aAAK,QACXknB,EAA0Bj0B,WAC1B,IACD,eAAM,QAAUi0B,EAA0B9zB,WAAY,IAAG,KACT,MAAxC8zB,EAA0Bj0B,aACnC+M,GAAQ,aAAK,QAAUknB,EAA0Bj0B,WAAY,IAAG,MAG3D+M,CACT,EAtGc,EAAA2hB,QAAK,OACjB,GAAyB,EACzB,MAAyBmD,GAAA,EACzB,MAAyB,GACzB,MAA6B,GAC7B,MAA6B,GAC7B,MAA6B,GAC7B,MAA2B,GAC3B,MAA8B,GAC9B,OAAkC,GAClC,OAA2C,GAC3C,MAAkB,GAClB,MAAiB,EACjB,OAAoB,GACpB,OAAuB,EACvB,OAAqB,GACrB,OAAsB,EACtB,OAA2BC,GAAA,EAC3B,OAAwBC,GAAA,EACxB,OAAuBC,GAAA,EACvB,OAAkB,EAClB,OAAwB,EACxB,OAAyB,EACzB,OAAqB,GACrB,OAAwBC,GAAA,E,IA+E5B,C,CAvtCA,GCjNA,cAUE,WAAmBiC,GARX,KAAAC,YAA2B,CAAEC,OAAQ,WAAO,GAC5C,KAAAC,QAA2B,UAGlB,KAAAC,yBAA2B,IAAInb,EAAA,EAE/B,KAAA3d,YAA4B,GAG3CnF,KAAK69B,cAAgBA,CACvB,CAoDF,OA9CE,sBAAW,qBAAM,C,IASjB,WACE,OAAO79B,KAAKg+B,OACd,E,IAXA,SAAkBzvB,GAChBvO,KAAKg+B,QAAUzvB,EACfvO,KAAKi+B,yBAAyB78B,KAAKmN,EACrC,E,gCAaO,YAAA9H,KAAP,sBACEzG,KAAK89B,YAAc99B,KAAK69B,eAAc,WACpC,EAAKtvB,OAAS,UAChB,IACAvO,KAAKuO,OAAS,SAChB,EAKO,YAAAwvB,OAAP,WACE/9B,KAAK89B,YAAYC,SACjB/9B,KAAKuO,OAAS,WAChB,EAMO,YAAA2vB,eAAP,SAAsB58B,GAMpB,IAAMyK,EAAa/L,KAAKi+B,yBAAyB18B,GAAGD,GAGpD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EACF,EAhEA,G,GAsGA,wBACU,KAAAoyB,MAA6C,CAAC,CAuDxD,QA7CS,YAAAv2B,IAAP,SACE3G,EACA48B,EACAxvB,QAAA,IAAAA,IAAAA,EAAA,GAEIrO,KAAKm+B,MAAMl9B,IAAiD,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACnDvO,KAAKm+B,MAAMl9B,GAAY88B,SAGzB,IAAMK,EACJ/vB,EAAS,EA/Cf,SAAuBgwB,EAAiBhwB,GACtC,OAAO,IAAIiwB,IAAU,WACnB,IAAIC,EAAqB,KAYzB,OAVAF,EAAKH,gBAAe,SAAA3vB,GACH,aAAXA,IACFgwB,EAAMppB,OAAOlH,YAAW,WACtBowB,EAAK53B,MACP,GAAG4H,GAEP,IAEAgwB,EAAK53B,OAEE,CACLs3B,OAAQ,WACFQ,GAAKlnB,aAAaknB,GACtBF,EAAKN,QACP,EAEJ,GACF,CA2BUS,CAAc,IAAIF,GAAUT,GAAgBxvB,GAC5C,IAAIiwB,GAAUT,GAIpB,OAFA79B,KAAKm+B,MAAMl9B,GAAcm9B,EAElBp+B,KAAKm+B,MAAMl9B,EACpB,EAOO,YAAAwF,KAAP,SAAYxF,IAERjB,KAAKm+B,MAAMl9B,IACwB,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACY,cAAlCvO,KAAKm+B,MAAMl9B,GAAYsN,QACW,aAAlCvO,KAAKm+B,MAAMl9B,GAAYsN,QAEzBvO,KAAKm+B,MAAMl9B,GAAYwF,MAE3B,EAOO,YAAAs3B,OAAP,SAAc98B,GACRjB,KAAKm+B,MAAMl9B,IAAiD,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACnDvO,KAAKm+B,MAAMl9B,GAAY88B,QAE3B,EACF,EAxDA,GCrGC5oB,OAAespB,cAAgB,GAI/BtpB,OAAespB,cAAcC,KAAOA,EAIpCvpB,OAAewpB,iBAAmB,E","sources":["webpack://pandora-fms-visual-console/./src/Form.ts","webpack://pandora-fms-visual-console/./src/Item.ts","webpack://pandora-fms-visual-console/./src/items/BarsGraph.ts","webpack://pandora-fms-visual-console/./src/items/BasicChart.ts","webpack://pandora-fms-visual-console/./src/items/DonutGraph.ts","webpack://pandora-fms-visual-console/./src/items/EventsHistory.ts","webpack://pandora-fms-visual-console/./src/items/ModuleGraph.ts","webpack://pandora-fms-visual-console/./src/lib/FontAwesomeIcon.ts","webpack://pandora-fms-visual-console/./src/lib/TypedEvent.ts","webpack://pandora-fms-visual-console/./src/lib/index.ts","webpack://pandora-fms-visual-console/webpack/bootstrap","webpack://pandora-fms-visual-console/webpack/runtime/define property getters","webpack://pandora-fms-visual-console/webpack/runtime/hasOwnProperty shorthand","webpack://pandora-fms-visual-console/webpack/runtime/make namespace object","webpack://pandora-fms-visual-console/./src/items/StaticGraph.ts","webpack://pandora-fms-visual-console/./src/items/Icon.ts","webpack://pandora-fms-visual-console/./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack://pandora-fms-visual-console/./src/items/ColorCloud.ts","webpack://pandora-fms-visual-console/./src/items/Line.ts","webpack://pandora-fms-visual-console/./src/items/NetworkLink.ts","webpack://pandora-fms-visual-console/./src/items/Group.ts","webpack://pandora-fms-visual-console/./src/items/Clock/index.ts","webpack://pandora-fms-visual-console/./src/items/Box.ts","webpack://pandora-fms-visual-console/./src/items/Label.ts","webpack://pandora-fms-visual-console/./src/items/SimpleValue.ts","webpack://pandora-fms-visual-console/./node_modules/d3-path/src/path.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/constant.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/math.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/arc.js","webpack://pandora-fms-visual-console/./src/items/Percentile.ts","webpack://pandora-fms-visual-console/./src/items/Service.ts","webpack://pandora-fms-visual-console/./src/items/Odometer.ts","webpack://pandora-fms-visual-console/./src/VisualConsole.ts","webpack://pandora-fms-visual-console/./src/lib/AsyncTaskManager.ts","webpack://pandora-fms-visual-console/./src/index.ts"],"sourcesContent":["import TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { AnyObject, UnknownObject } from \"./lib/types\";\nimport { t } from \"./lib\";\n\ninterface InputGroupDataRequestedEvent {\n identifier: string;\n params: UnknownObject;\n done: (error: Error | null, data?: unknown) => void;\n}\n\n// TODO: Document\nexport abstract class InputGroup {\n private _name: string = \"\";\n private _element?: HTMLElement;\n public readonly initialData: Data;\n protected currentData: Partial = {};\n // Event manager for data requests.\n private readonly dataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n\n public constructor(name: string, initialData: Data) {\n this.name = name;\n this.initialData = initialData;\n }\n\n public set name(name: string) {\n if (name.length === 0) throw new RangeError(\"empty name\");\n this._name = name;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get data(): Partial {\n return { ...this.currentData };\n }\n\n public get element(): HTMLElement {\n if (this._element == null) {\n const element = document.createElement(\"div\");\n element.className = `input-group input-group-${this.name}`;\n\n const content = this.createContent();\n\n if (content instanceof Array) {\n content.forEach(element.appendChild);\n } else {\n element.appendChild(content);\n }\n\n this._element = element;\n }\n\n return this._element;\n }\n\n public reset(): void {\n this.currentData = {};\n }\n\n protected updateData(data: Partial): void {\n this.currentData = {\n ...this.currentData,\n ...data\n };\n // TODO: Update item.\n }\n\n protected requestData(\n identifier: string,\n params: UnknownObject,\n done: (error: Error | null, data?: unknown) => void\n ): void {\n this.dataRequestedEventManager.emit({ identifier, params, done });\n }\n\n public onDataRequested(\n listener: Listener\n ): Disposable {\n return this.dataRequestedEventManager.on(listener);\n }\n\n protected abstract createContent(): HTMLElement | HTMLElement[];\n\n // public abstract get isValid(): boolean;\n}\n\nexport interface SubmitFormEvent {\n nativeEvent: Event;\n data: AnyObject;\n}\n\n// TODO: Document\nexport class FormContainer {\n public readonly title: string;\n private inputGroupsByName: { [name: string]: InputGroup } = {};\n private enabledInputGroupNames: string[] = [];\n // Event manager for submit events.\n private readonly submitEventManager = new TypedEvent();\n // Event manager for item data requests.\n private readonly itemDataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n private handleItemDataRequested = this.itemDataRequestedEventManager.emit;\n\n public constructor(\n title: string,\n inputGroups: InputGroup[] = [],\n enabledInputGroups: string[] = []\n ) {\n this.title = title;\n\n if (inputGroups.length > 0) {\n this.inputGroupsByName = inputGroups.reduce((prevVal, inputGroup) => {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n prevVal[inputGroup.name] = inputGroup;\n return prevVal;\n }, this.inputGroupsByName);\n }\n\n if (enabledInputGroups.length > 0) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n ...enabledInputGroups.filter(\n name => this.inputGroupsByName[name] != null\n )\n ];\n }\n }\n\n public getInputGroup(inputGroupName: string): InputGroup | null {\n return this.inputGroupsByName[inputGroupName] || null;\n }\n\n public addInputGroup(\n inputGroup: InputGroup,\n index: number | null = null\n ): FormContainer {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n this.inputGroupsByName[inputGroup.name] = inputGroup;\n\n // Remove the current stored name if exist.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroup.name\n );\n\n if (index !== null) {\n if (index <= 0) {\n this.enabledInputGroupNames = [\n inputGroup.name,\n ...this.enabledInputGroupNames\n ];\n } else if (index >= this.enabledInputGroupNames.length) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n } else {\n this.enabledInputGroupNames = [\n // part of the array before the specified index\n ...this.enabledInputGroupNames.slice(0, index),\n // inserted item\n inputGroup.name,\n // part of the array after the specified index\n ...this.enabledInputGroupNames.slice(index)\n ];\n }\n } else {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n }\n\n return this;\n }\n\n public removeInputGroup(inputGroupName: string): FormContainer {\n delete this.inputGroupsByName[inputGroupName];\n // Remove the current stored name.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroupName\n );\n\n return this;\n }\n\n public getFormElement(\n type: \"creation\" | \"update\" = \"update\"\n ): HTMLFormElement {\n const form = document.createElement(\"form\");\n form.id = \"visual-console-item-edition\";\n form.className = \"visual-console-item-edition\";\n form.addEventListener(\"submit\", e => {\n e.preventDefault();\n this.submitEventManager.emit({\n nativeEvent: e,\n data: this.enabledInputGroupNames.reduce((data, name) => {\n if (this.inputGroupsByName[name]) {\n data = {\n ...data,\n ...this.inputGroupsByName[name].data\n };\n }\n return data;\n }, {})\n });\n });\n\n const formContent = document.createElement(\"div\");\n formContent.className = \"input-groups\";\n\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n formContent.appendChild(this.inputGroupsByName[name].element);\n }\n });\n\n form.appendChild(formContent);\n\n return form;\n }\n\n public reset(): void {\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n this.inputGroupsByName[name].reset();\n }\n });\n }\n\n // public get isValid(): boolean {\n // for (let i = 0; i < this.enabledInputGroupNames.length; i++) {\n // const inputGroup = this.inputGroupsByName[this.enabledInputGroupNames[i]];\n // if (inputGroup && !inputGroup.isValid) return false;\n // }\n\n // return true;\n // }\n\n public onSubmit(listener: Listener): Disposable {\n return this.submitEventManager.on(listener);\n }\n\n public onInputGroupDataRequested(\n listener: Listener\n ): Disposable {\n return this.itemDataRequestedEventManager.on(listener);\n }\n}\n","import {\n Position,\n Size,\n AnyObject,\n WithModuleProps,\n ItemMeta,\n LinkedVisualConsoleProps,\n WithAgentProps\n} from \"./lib/types\";\nimport {\n sizePropsDecoder,\n positionPropsDecoder,\n parseIntOr,\n parseBoolean,\n notEmptyStringOr,\n replaceMacros,\n humanDate,\n humanTime,\n addMovementListener,\n debounce,\n addResizementListener,\n t\n} from \"./lib\";\nimport TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { FormContainer, InputGroup } from \"./Form\";\n\n// Enum: https://www.typescriptlang.org/docs/handbook/enums.html.\nexport const enum ItemType {\n STATIC_GRAPH = 0,\n MODULE_GRAPH = 1,\n SIMPLE_VALUE = 2,\n PERCENTILE_BAR = 3,\n LABEL = 4,\n ICON = 5,\n SIMPLE_VALUE_MAX = 6,\n SIMPLE_VALUE_MIN = 7,\n SIMPLE_VALUE_AVG = 8,\n PERCENTILE_BUBBLE = 9,\n SERVICE = 10,\n GROUP_ITEM = 11,\n BOX_ITEM = 12,\n LINE_ITEM = 13,\n AUTO_SLA_GRAPH = 14,\n CIRCULAR_PROGRESS_BAR = 15,\n CIRCULAR_INTERIOR_PROGRESS_BAR = 16,\n DONUT_GRAPH = 17,\n BARS_GRAPH = 18,\n CLOCK = 19,\n COLOR_CLOUD = 20,\n NETWORK_LINK = 21,\n ODOMETER = 22,\n BASIC_CHART = 23\n}\n\n// Base item properties. This interface should be extended by the item implementations.\nexport interface ItemProps extends Position, Size {\n readonly id: number;\n readonly type: ItemType;\n label: string | null;\n labelPosition: \"up\" | \"right\" | \"down\" | \"left\";\n isLinkEnabled: boolean;\n link: string | null;\n isOnTop: boolean;\n parentId: number | null;\n aclGroupId: number | null;\n cacheExpiration: number | null;\n colorStatus: string;\n cellId: number | null;\n alertOutline: boolean;\n}\n\nexport interface ItemClickEvent {\n item: VisualConsoleItem;\n nativeEvent: Event;\n}\n\n// FIXME: Fix type compatibility.\nexport interface ItemRemoveEvent {\n // data: Props;\n item: VisualConsoleItem;\n}\n\nexport interface ItemMovedEvent {\n item: VisualConsoleItem;\n prevPosition: Position;\n newPosition: Position;\n}\n\nexport interface ItemResizedEvent {\n item: VisualConsoleItem;\n prevSize: Size;\n newSize: Size;\n}\n\nexport interface ItemSelectionChangedEvent {\n selected: boolean;\n}\n\n/**\n * Extract a valid enum value from a raw label position value.\n * @param labelPosition Raw value.\n */\nconst parseLabelPosition = (\n labelPosition: unknown\n): ItemProps[\"labelPosition\"] => {\n switch (labelPosition) {\n case \"up\":\n case \"right\":\n case \"down\":\n case \"left\":\n return labelPosition;\n default:\n return \"down\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function itemBasePropsDecoder(data: AnyObject): ItemProps | never {\n if (data.id == null || isNaN(parseInt(data.id))) {\n throw new TypeError(\"invalid id.\");\n }\n if (data.type == null || isNaN(parseInt(data.type))) {\n throw new TypeError(\"invalid type.\");\n }\n\n return {\n id: parseInt(data.id),\n type: parseInt(data.type),\n label: notEmptyStringOr(data.label, null),\n labelPosition: parseLabelPosition(data.labelPosition),\n isLinkEnabled: parseBoolean(data.isLinkEnabled),\n link: notEmptyStringOr(data.link, null),\n isOnTop: parseBoolean(data.isOnTop),\n parentId: parseIntOr(data.parentId, null),\n aclGroupId: parseIntOr(data.aclGroupId, null),\n cacheExpiration: parseIntOr(data.cacheExpiration, null),\n colorStatus: notEmptyStringOr(data.colorStatus, \"#CCC\"),\n cellId: parseIntOr(data.cellId, null),\n alertOutline: parseBoolean(data.alertOutline),\n ...sizePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...positionPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n//TODO: Document\nexport function titleItem(id: number): string {\n let title = \"\";\n switch (id) {\n case ItemType.STATIC_GRAPH:\n title = t(\"Static image\");\n break;\n case ItemType.MODULE_GRAPH:\n title = t(\"Module graph\");\n break;\n case ItemType.SIMPLE_VALUE:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.LABEL:\n title = t(\"Label\");\n break;\n case ItemType.ICON:\n title = t(\"Icon\");\n break;\n case ItemType.SIMPLE_VALUE_MAX:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_MIN:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_AVG:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BUBBLE:\n title = t(\"Percentile item\");\n break;\n case ItemType.SERVICE:\n title = t(\"Service\");\n break;\n case ItemType.GROUP_ITEM:\n title = t(\"Group\");\n break;\n case ItemType.BOX_ITEM:\n title = t(\"Box\");\n break;\n case ItemType.LINE_ITEM:\n title = t(\"Line\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n title = t(\"Event history graph\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.DONUT_GRAPH:\n title = t(\"Serialized pie graph\");\n break;\n case ItemType.BARS_GRAPH:\n title = t(\"Bars graph\");\n break;\n case ItemType.CLOCK:\n title = t(\"Clock\");\n break;\n case ItemType.COLOR_CLOUD:\n title = t(\"Color cloud\");\n break;\n case ItemType.NETWORK_LINK:\n title = t(\"Network link\");\n break;\n case ItemType.ODOMETER:\n title = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n title = t(\"Basic chart\");\n break;\n default:\n title = t(\"Item\");\n break;\n }\n\n return title;\n}\n\n/**\n * Base class of the visual console items. Should be extended to use its capabilities.\n */\nabstract class VisualConsoleItem {\n // Properties of the item.\n public itemProps: Props;\n // Metadata of the item.\n private _metadata: ItemMeta;\n // Reference to the DOM element which will contain the item.\n public elementRef: HTMLElement = document.createElement(\"div\");\n public labelElementRef: HTMLElement = document.createElement(\"div\");\n // Reference to the DOM element which will contain the view of the item which extends this class.\n protected childElementRef: HTMLElement = document.createElement(\"div\");\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for moved events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for stopped movement events.\n private readonly movementFinishedEventManager = new TypedEvent<\n ItemMovedEvent\n >();\n // Event manager for resized events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for resize finished events.\n private readonly resizeFinishedEventManager = new TypedEvent<\n ItemResizedEvent\n >();\n // Event manager for remove events.\n private readonly removeEventManager = new TypedEvent();\n // Event manager for selection change events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = false;\n\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = {\n x: x,\n y: y\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Save the new position to the props.\n this.move(x, y);\n // Emit the movement event.\n this.movementFinishedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n private removeMovement: Function | null = null;\n\n /**\n * Start the movement funtionality.\n * @param element Element to move inside its container.\n */\n private initMovementListener(element: HTMLElement): void {\n // Avoid line movement as 'block' force using circles.\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n\n this.removeMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = { x, y };\n\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = true;\n // Move the DOM element.\n this.moveElement(x, y);\n // Emit the movement event.\n this.movedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n // Run the save function.\n this.debouncedMovementSave(x, y);\n }\n );\n }\n /**\n * Stop the movement fun\n */\n private stopMovementListener(): void {\n if (this.removeMovement) {\n this.removeMovement();\n this.removeMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedResizementSave = debounce(\n 500, // ms.\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = false;\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Save the new position to the props.\n this.resize(width, height);\n\n // Emit the resize finished event.\n this.resizeFinishedEventManager.emit({\n item: this,\n prevSize: prevSize,\n newSize: newSize\n });\n }\n );\n // This property will store the function\n // to clean the resizement listener.\n private removeResizement: Function | null = null;\n\n /**\n * Start the resizement funtionality.\n * @param element Element to move inside its container.\n */\n protected initResizementListener(element: HTMLElement): void {\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n this.removeResizement = addResizementListener(\n element,\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = true;\n\n // The label it's outside the item's size, so we need\n // to get rid of its size to get the real size of the\n // item's content.\n if (this.props.label && this.props.label.length > 0) {\n const {\n width: labelWidth,\n height: labelHeight\n } = this.labelElementRef.getBoundingClientRect();\n\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n height -= labelHeight;\n break;\n case \"left\":\n case \"right\":\n width -= labelWidth;\n break;\n }\n }\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Move the DOM element.\n this.resizeElement(width, height);\n // Emit the resizement event.\n this.resizedEventManager.emit({\n item: this,\n prevSize,\n newSize\n });\n // Run the save function.\n this.debouncedResizementSave(width, height);\n }\n );\n }\n /**\n * Stop the resizement functionality.\n */\n private stopResizementListener(): void {\n if (this.removeResizement) {\n this.removeResizement();\n this.removeResizement = null;\n }\n }\n\n /**\n * To create a new element which will be inside the item box.\n * @return Item.\n */\n protected abstract createDomElement(): HTMLElement;\n\n public constructor(\n props: Props,\n metadata: ItemMeta,\n deferInit: boolean = false\n ) {\n this.itemProps = props;\n this._metadata = metadata;\n\n if (!deferInit) this.init();\n }\n\n /**\n * To create and append the DOM elements.\n */\n protected init(): void {\n /*\n * Get a HTMLElement which represents the container box\n * of the Visual Console item. This element will manage\n * all the common things like click events, show a border\n * when hovered, etc.\n */\n this.elementRef = this.createContainerDomElement();\n this.labelElementRef = this.createLabelDomElement();\n\n /*\n * Get a HTMLElement which represents the custom view\n * of the Visual Console item. This element will be\n * different depending on the item implementation.\n */\n this.childElementRef = this.createDomElement();\n\n // Insert the elements into the container.\n this.elementRef.appendChild(this.childElementRef);\n this.elementRef.appendChild(this.labelElementRef);\n\n // Resize element.\n this.resizeElement(this.itemProps.width, this.itemProps.height);\n // Set label position.\n this.changeLabelPosition(this.itemProps.labelPosition);\n }\n\n /**\n * To create a new box for the visual console item.\n * @return Item box.\n */\n private createContainerDomElement(): HTMLElement {\n let box;\n if (this.props.isLinkEnabled) {\n box = document.createElement(\"a\") as HTMLAnchorElement;\n\n if (this.props.link) {\n box.href = this.props.link;\n } else {\n box.className = \"textDecorationNone\";\n }\n } else {\n box = document.createElement(\"div\") as HTMLDivElement;\n box.className = \"textDecorationNone\";\n }\n\n box.classList.add(\"visual-console-item\");\n if (this.props.isOnTop) {\n box.classList.add(\"is-on-top\");\n }\n box.style.left = `${this.props.x}px`;\n box.style.top = `${this.props.y}px`;\n\n if (this.props.alertOutline) {\n box.classList.add(\"is-alert-triggered\");\n }\n\n // Init the click listeners.\n box.addEventListener(\"dblclick\", e => {\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.unSelectItem();\n this.selectItem();\n\n this.dblClickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n box.addEventListener(\"click\", e => {\n if (this.meta.editMode) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n // Add loading click item.\n if (this.itemProps.isLinkEnabled && this.itemProps.link != null) {\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n let path = e.composedPath();\n let containerId = \"visual-console-container\";\n for (let index = 0; index < path.length; index++) {\n const element = path[index] as HTMLInputElement;\n if (\n element.id != undefined &&\n element.id != null &&\n element.id != \"\"\n ) {\n if (element.id.includes(containerId) === true) {\n containerId = element.id;\n break;\n }\n }\n }\n\n const containerVC = document.getElementById(containerId);\n if (containerVC != null) {\n containerVC.classList.add(\"is-updating\");\n containerVC.appendChild(divParent);\n }\n }\n }\n\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.clickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n\n // Metadata state.\n if (this.meta.maintenanceMode) {\n box.classList.add(\"is-maintenance\");\n }\n if (this.meta.editMode) {\n box.classList.add(\"is-editing\");\n }\n if (this.meta.isFetching) {\n box.classList.add(\"is-fetching\");\n }\n if (this.meta.isUpdating) {\n box.classList.add(\"is-updating\");\n }\n if (this.meta.isSelected) {\n box.classList.add(\"is-selected\");\n }\n\n return box;\n }\n\n /**\n * To create a new label for the visual console item.\n * @return Item label.\n */\n protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Add the label if it exists.\n const label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n // Ugly table we need to use to replicate the legacy style.\n const table = document.createElement(\"table\");\n const row = document.createElement(\"tr\");\n const emptyRow1 = document.createElement(\"tr\");\n const emptyRow2 = document.createElement(\"tr\");\n const cell = document.createElement(\"td\");\n\n cell.innerHTML = label;\n row.appendChild(cell);\n table.appendChild(emptyRow1);\n table.appendChild(row);\n table.appendChild(emptyRow2);\n table.style.textAlign = \"center\";\n\n // Change the table size depending on its position.\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n\n // element.innerHTML = this.props.label;\n element.appendChild(table);\n }\n\n return element;\n }\n\n /**\n * Return the label stored into the props with some macros replaced.\n */\n protected getLabelWithMacrosReplaced(): string {\n // We assert that the props may have some needed properties.\n const props = this.props as Partial;\n\n return replaceMacros(\n [\n {\n macro: \"_date_\",\n value: humanDate(new Date())\n },\n {\n macro: \"_time_\",\n value: humanTime(new Date())\n },\n {\n macro: \"_agent_\",\n value: props.agentAlias != null ? props.agentAlias : \"\"\n },\n {\n macro: \"_agentdescription_\",\n value: props.agentDescription != null ? props.agentDescription : \"\"\n },\n {\n macro: \"_address_\",\n value: props.agentAddress != null ? props.agentAddress : \"\"\n },\n {\n macro: \"_module_\",\n value: props.moduleName != null ? props.moduleName : \"\"\n },\n {\n macro: \"_moduledescription_\",\n value: props.moduleDescription != null ? props.moduleDescription : \"\"\n }\n ],\n this.props.label || \"\"\n );\n }\n\n /**\n * To update the content element.\n * @return Item.\n */\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): Props {\n return { ...this.itemProps }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: Props) {\n this.setProps(newProps);\n }\n\n /**\n * Clasic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n protected setProps(newProps: Props) {\n const prevProps = this.props;\n // Update the internal props.\n this.itemProps = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n if (this.shouldBeUpdated(prevProps, newProps))\n this.render(prevProps, this._metadata);\n }\n\n /**\n * Public accessor of the `meta` property.\n * @return Properties.\n */\n public get meta(): ItemMeta {\n return { ...this._metadata }; // Return a copy.\n }\n\n /**\n * Public setter of the `meta` property.\n * If the new meta are different enough than the\n * stored meta, a render would be fired.\n * @param newProps\n */\n public set meta(newMetadata: ItemMeta) {\n this.setMeta(newMetadata);\n }\n\n /**\n * Classic version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n public setMeta(newMetadata: Partial): void {\n const prevMetadata = this._metadata;\n // Update the internal meta.\n this._metadata = {\n ...prevMetadata,\n ...newMetadata\n };\n\n if (\n typeof newMetadata.isSelected !== \"undefined\" &&\n prevMetadata.isSelected !== newMetadata.isSelected\n ) {\n this.selectionChangedEventManager.emit({\n selected: newMetadata.isSelected\n });\n }\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n // if (this.shouldBeUpdated(prevMetadata, newMetadata))\n this.render(this.itemProps, prevMetadata);\n }\n\n /**\n * To compare the previous and the new props and returns a boolean value\n * in case the difference is meaningfull enough to perform DOM changes.\n *\n * Here, the only comparision is done by reference.\n *\n * Override this function to perform a different comparision depending on the item needs.\n *\n * @param prevProps\n * @param newProps\n * @return Whether the difference is meaningful enough to perform DOM changes or not.\n */\n protected shouldBeUpdated(prevProps: Props, newProps: Props): boolean {\n return prevProps !== newProps;\n }\n\n /**\n * To recreate or update the HTMLElement which represents the item into the DOM.\n * @param prevProps If exists it will be used to only perform DOM updates instead of a full replace.\n */\n public render(\n prevProps: Props | null = null,\n prevMeta: ItemMeta | null = null\n ): void {\n if (prevProps) {\n this.updateDomElement(this.childElementRef);\n }\n // Move box.\n if (!prevProps || this.positionChanged(prevProps, this.props)) {\n this.moveElement(this.props.x, this.props.y);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Resize box.\n if (!prevProps || this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Change label.\n const oldLabelHtml = this.labelElementRef.innerHTML;\n const newLabelHtml = this.createLabelDomElement().innerHTML;\n if (oldLabelHtml !== newLabelHtml) {\n this.labelElementRef.innerHTML = newLabelHtml;\n }\n // Change label position.\n if (!prevProps || prevProps.labelPosition !== this.props.labelPosition) {\n this.changeLabelPosition(this.props.labelPosition);\n }\n //Change z-index class is-on-top\n if (!prevProps || prevProps.isOnTop !== this.props.isOnTop) {\n if (this.props.isOnTop) {\n this.elementRef.classList.add(\"is-on-top\");\n } else {\n this.elementRef.classList.remove(\"is-on-top\");\n }\n }\n // Change link.\n if (prevProps && prevProps.isLinkEnabled !== this.props.isLinkEnabled) {\n const container = this.createContainerDomElement();\n // Add the children of the old element.\n container.innerHTML = this.elementRef.innerHTML;\n // Copy the attributes.\n const attrs = this.elementRef.attributes;\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].nodeName !== \"id\") {\n let cloneIsNeeded = this.elementRef.getAttributeNode(\n attrs[i].nodeName\n );\n if (cloneIsNeeded !== null) {\n container.setAttributeNode(cloneIsNeeded.cloneNode());\n }\n }\n }\n // Replace the reference.\n if (this.elementRef.parentNode !== null) {\n this.elementRef.parentNode.replaceChild(container, this.elementRef);\n }\n\n // Changed the reference to the main element. It's ugly, but needed.\n this.elementRef = container;\n }\n\n if (\n prevProps &&\n this.props.isLinkEnabled &&\n prevProps.link !== this.props.link\n ) {\n if (this.props.link !== null) {\n this.elementRef.setAttribute(\"href\", this.props.link);\n }\n }\n\n // Change metadata related things.\n if (\n !prevMeta ||\n prevMeta.editMode !== this.meta.editMode ||\n prevMeta.maintenanceMode !== this.meta.maintenanceMode\n ) {\n if (this.meta.editMode && this.meta.maintenanceMode === false) {\n this.elementRef.classList.add(\"is-editing\");\n this.elementRef.classList.remove(\"is-alert-triggered\");\n } else {\n this.elementRef.classList.remove(\"is-editing\");\n\n if (this.props.alertOutline) {\n this.elementRef.classList.add(\"is-alert-triggered\");\n }\n }\n }\n\n if (!prevMeta || prevMeta.isFetching !== this.meta.isFetching) {\n if (this.meta.isFetching) {\n this.elementRef.classList.add(\"is-fetching\");\n } else {\n this.elementRef.classList.remove(\"is-fetching\");\n }\n }\n\n if (!prevMeta || prevMeta.isUpdating !== this.meta.isUpdating) {\n if (this.meta.isUpdating) {\n this.elementRef.classList.add(\"is-updating\");\n\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n this.elementRef.appendChild(divParent);\n } else {\n this.elementRef.classList.remove(\"is-updating\");\n\n const div = this.elementRef.querySelector(\n \".div-visual-console-spinner\"\n );\n if (div !== null) {\n const parent = div.parentElement;\n if (parent !== null) {\n parent.removeChild(div);\n }\n }\n }\n\n this.updateDomElement(this.childElementRef);\n }\n if (!prevMeta || prevMeta.isSelected !== this.meta.isSelected) {\n if (this.meta.isSelected) {\n this.elementRef.classList.add(\"is-selected\");\n this.elementRef.setAttribute('id','item-selected-move');\n } else {\n this.elementRef.classList.remove(\"is-selected\");\n this.elementRef.removeAttribute('id');\n }\n }\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n // Call the remove event.\n this.removeEventManager.emit({ item: this });\n // Event listeners.\n this.disposables.forEach(disposable => {\n try {\n disposable.dispose();\n } catch (ignored) {} // eslint-disable-line no-empty\n });\n // VisualConsoleItem DOM element.\n this.elementRef.remove();\n }\n\n /**\n * Compare the previous and the new position and return\n * a boolean value in case the position changed.\n * @param prevPosition\n * @param newPosition\n * @return Whether the position changed or not.\n */\n protected positionChanged(\n prevPosition: Position,\n newPosition: Position\n ): boolean {\n return prevPosition.x !== newPosition.x || prevPosition.y !== newPosition.y;\n }\n\n /**\n * Move the label around the item content.\n * @param position Label position.\n */\n protected changeLabelPosition(position: Props[\"labelPosition\"]): void {\n switch (position) {\n case \"up\":\n this.elementRef.style.flexDirection = \"column-reverse\";\n break;\n case \"left\":\n this.elementRef.style.flexDirection = \"row-reverse\";\n break;\n case \"right\":\n this.elementRef.style.flexDirection = \"row\";\n break;\n case \"down\":\n default:\n this.elementRef.style.flexDirection = \"column\";\n break;\n }\n\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n // Change the table size depending on its position.\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n }\n }\n\n /**\n * Move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n protected moveElement(x: number, y: number): void {\n this.elementRef.style.left = `${x}px`;\n this.elementRef.style.top = `${y}px`;\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n public move(x: number, y: number): void {\n this.moveElement(x, y);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n x,\n y\n };\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n protected sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // The most valuable size is the content size.\n if (\n this.props.type != ItemType.LINE_ITEM &&\n this.props.type != ItemType.NETWORK_LINK\n ) {\n this.childElementRef.style.width = width > 0 ? `${width}px` : \"\";\n this.childElementRef.style.height = height > 0 ? `${height}px` : \"\";\n }\n\n if (this.props.label && this.props.label.length > 0) {\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n table.style.width = width > 0 ? `${width}px` : \"\";\n break;\n case \"left\":\n case \"right\":\n table.style.height = height > 0 ? `${height}px` : \"\";\n break;\n }\n }\n }\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.resizeElement(width, height);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement stopped of visual console elements.\n * @param listener Function which is going to be executed when a linked console's movement is finished.\n */\n public onMovementFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movementFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement finish of visual console elements.\n * @param listener Function which is going to be executed when a linked console is finished resizing.\n */\n public onResizeFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizeFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the removal of the item.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onRemove(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.removeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to item selection.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n this.initMovementListener(this.elementRef);\n if (\n this.props.type !== ItemType.LINE_ITEM &&\n this.props.type !== ItemType.NETWORK_LINK\n ) {\n this.initResizementListener(this.elementRef);\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: false\n };\n\n this.stopMovementListener();\n if (this.props.type !== ItemType.LINE_ITEM) {\n this.stopResizementListener();\n }\n }\n\n // TODO: Document\n public getFormContainer(): FormContainer {\n return VisualConsoleItem.getFormContainer(this.props);\n }\n\n // TODO: Document\n public static getFormContainer(props: Partial): FormContainer {\n const title: string = props.type ? titleItem(props.type) : t(\"Item\");\n return new FormContainer(title, [], []);\n }\n}\n\nexport default VisualConsoleItem;\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport { modulePropsDecoder, decodeBase64, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BarsGraphProps = {\n type: ItemType.BARS_GRAPH;\n html: string;\n backgroundColor: \"white\" | \"black\" | \"transparent\";\n typeGraph: \"horizontal\" | \"vertical\";\n gridColor: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param BarsGraphProps Raw value.\n */\nconst parseBarsGraphProps = (\n backgroundColor: unknown\n): BarsGraphProps[\"backgroundColor\"] => {\n switch (backgroundColor) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundColor;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param typeGraph Raw value.\n */\nconst parseTypeGraph = (typeGraph: unknown): BarsGraphProps[\"typeGraph\"] => {\n switch (typeGraph) {\n case \"horizontal\":\n case \"vertical\":\n return typeGraph;\n default:\n return \"vertical\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the bars graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function barsGraphPropsDecoder(data: AnyObject): BarsGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BARS_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundColor: parseBarsGraphProps(data.backgroundColor),\n typeGraph: parseTypeGraph(data.typeGraph),\n gridColor: stringIsEmpty(data.gridColor) ? \"#000000\" : data.gridColor,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BarsGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.innerHTML = this.props.html;\n element.className = \"bars-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BasicChartProps = {\n type: ItemType.BASIC_CHART;\n html: string;\n period: number | null;\n value: number | null;\n status: string;\n moduleNameColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the basic chart props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function basicChartPropsDecoder(\n data: AnyObject\n): BasicChartProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BASIC_CHART,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n period: parseIntOr(data.period, null),\n value: parseFloat(data.value),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n moduleNameColor: stringIsEmpty(data.moduleNameColor)\n ? \"#3f3f3f\"\n : data.moduleNameColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BasicChart extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.className = \"basic-chart\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n\n protected number_format(\n number: number,\n force_integer: boolean,\n unit: string,\n short_data: number,\n divisor: number\n ) {\n divisor = typeof divisor !== \"undefined\" ? divisor : 1000;\n var decimals = 2;\n\n // Set maximum decimal precision to 99 in case short_data is not set.\n if (!short_data) {\n short_data = 99;\n }\n\n if (force_integer) {\n if (Math.round(number) != number) {\n return \"\";\n }\n } else {\n short_data++;\n const aux_decimals = this.pad(\"1\", short_data, 0);\n number =\n Math.round(number * Number.parseInt(aux_decimals)) /\n Number.parseInt(aux_decimals);\n }\n\n var shorts = [\"\", \"K\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n var pos = 0;\n\n while (Math.abs(number) >= divisor) {\n // As long as the number can be divided by 1000 or 1024.\n pos++;\n number = number / divisor;\n }\n\n if (divisor) {\n number = Math.round(number * decimals) / decimals;\n } else {\n number = Math.round(number * decimals);\n }\n\n if (isNaN(number)) {\n number = 0;\n }\n\n return number + \" \" + shorts[pos] + unit;\n }\n\n protected pad(input: string, length: number, padding: number): string {\n var str = input + \"\";\n return length <= str.length\n ? str\n : this.pad(str + padding, length, padding);\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type DonutGraphProps = {\n type: ItemType.DONUT_GRAPH;\n html: string;\n legendBackgroundColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the donut graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function donutGraphPropsDecoder(\n data: AnyObject\n): DonutGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.DONUT_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n legendBackgroundColor: stringIsEmpty(data.legendBackgroundColor)\n ? \"#ffffff\"\n : data.legendBackgroundColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class DonutGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"donut-graph\";\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport {\n modulePropsDecoder,\n parseIntOr,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type EventsHistoryProps = {\n type: ItemType.AUTO_SLA_GRAPH;\n maxTime: number | null;\n legendColor: string;\n html: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function eventsHistoryPropsDecoder(\n data: AnyObject\n): EventsHistoryProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.AUTO_SLA_GRAPH,\n maxTime: parseIntOr(data.maxTime, null),\n legendColor: data.legendColor,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class EventsHistory extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"events-history\";\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const aux = document.createElement(\"div\");\n aux.innerHTML = this.props.html;\n const scripts = aux.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type ModuleGraphProps = {\n type: ItemType.MODULE_GRAPH;\n html: string;\n backgroundType: \"white\" | \"black\" | \"transparent\";\n graphType: \"line\" | \"area\";\n period: number | null;\n customGraphId: number | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param backgroundType Raw value.\n */\nconst parseBackgroundType = (\n backgroundType: unknown\n): ModuleGraphProps[\"backgroundType\"] => {\n switch (backgroundType) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundType;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param graphType Raw value.\n */\nconst parseGraphType = (graphType: unknown): ModuleGraphProps[\"graphType\"] => {\n switch (graphType) {\n case \"line\":\n case \"area\":\n return graphType;\n default:\n return \"line\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the module graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function moduleGraphPropsDecoder(\n data: AnyObject\n): ModuleGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.MODULE_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundType: parseBackgroundType(data.backgroundType),\n period: parseIntOr(data.period, null),\n graphType: parseGraphType(data.graphType),\n customGraphId: parseIntOr(data.customGraphId, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class ModuleGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n element.innerHTML = this.props.html;\n element.className = \"module-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./FontAwesomeIcon.styles.css\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\ninterface ExtraProps {\n size?: \"small\" | \"medium\" | \"large\";\n color?: string;\n spin?: boolean;\n pulse?: boolean;\n}\n\nconst fontAwesomeIcon = (\n iconDefinition: IconDefinition,\n title: string,\n { size, color, spin, pulse }: ExtraProps = {}\n): HTMLElement => {\n const container = document.createElement(\"figure\");\n container.title = title;\n container.className = `fa fa-${iconDefinition.iconName}`;\n\n if (size) container.classList.add(`fa-${size}`);\n\n if (spin) container.classList.add(\"fa-spin\");\n else if (pulse) container.classList.add(\"fa-pulse\");\n\n const icon = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n icon.setAttribute(\n \"viewBox\",\n `0 0 ${iconDefinition.icon[0]} ${iconDefinition.icon[1]}`\n );\n if (color) icon.setAttribute(\"fill\", color);\n\n // Path\n const path = document.createElementNS(svgNS, \"path\");\n const pathData =\n typeof iconDefinition.icon[4] === \"string\"\n ? iconDefinition.icon[4]\n : iconDefinition.icon[4][0];\n path.setAttribute(\"d\", pathData);\n\n icon.appendChild(path);\n container.appendChild(icon);\n\n return container;\n};\n\nexport default fontAwesomeIcon;\n","export interface Listener {\n (event: T): void;\n}\n\nexport interface Disposable {\n dispose: () => void;\n}\n\n/** passes through events as they happen. You will not get events from before you start listening */\nexport default class TypedEvent {\n private listeners: Listener[] = [];\n private listenersOncer: Listener[] = [];\n\n public on = (listener: Listener): Disposable => {\n this.listeners.push(listener);\n return {\n dispose: () => this.off(listener)\n };\n };\n\n public once = (listener: Listener): void => {\n this.listenersOncer.push(listener);\n };\n\n public off = (listener: Listener): void => {\n const callbackIndex = this.listeners.indexOf(listener);\n if (callbackIndex > -1) this.listeners.splice(callbackIndex, 1);\n };\n\n public emit = (event: T): void => {\n /** Update any general listeners */\n this.listeners.forEach(listener => listener(event));\n\n /** Clear the `once` queue */\n this.listenersOncer.forEach(listener => listener(event));\n this.listenersOncer = [];\n };\n\n public pipe = (te: TypedEvent): Disposable => this.on(e => te.emit(e));\n}\n","import {\n AnyObject,\n Position,\n Size,\n WithAgentProps,\n WithModuleProps,\n LinkedVisualConsoleProps,\n LinkedVisualConsolePropsStatus,\n UnknownObject,\n ItemMeta\n} from \"./types\";\n\nimport helpTipIcon from \"./help-tip.png\";\nimport fontAwesomeIcon from \"./FontAwesomeIcon\";\nimport { faPencilAlt, faListAlt } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./autocomplete.css\";\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseIntOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\" && value.length > 0 && !isNaN(parseInt(value)))\n return parseInt(value);\n else return defaultValue;\n}\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseFloatOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (\n typeof value === \"string\" &&\n value.length > 0 &&\n !isNaN(parseFloat(value))\n )\n return parseFloat(value);\n else return defaultValue;\n}\n\n/**\n * Check if a string exists and it's not empty.\n * @param value Value to check.\n * @return The check result.\n */\nexport function stringIsEmpty(value?: string | null): boolean {\n return value == null || value.length === 0;\n}\n\n/**\n * Return a not empty string or a default value from a raw value.\n * @param value Raw value from which we will try to extract a non empty string.\n * @param defaultValue Default value to use if we cannot extract a non empty string.\n * @return A non empty string or the default value.\n */\nexport function notEmptyStringOr(\n value: unknown,\n defaultValue: T\n): string | T {\n return typeof value === \"string\" && value.length > 0 ? value : defaultValue;\n}\n\n/**\n * Return a boolean from a raw value.\n * @param value Raw value from which we will try to extract the boolean.\n * @return A valid boolean value. false by default.\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === \"boolean\") return value;\n else if (typeof value === \"number\") return value > 0;\n else if (typeof value === \"string\") return value === \"1\" || value === \"true\";\n else return false;\n}\n\n/**\n * Return a valid date or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid date.\n * @param defaultValue Default value to use if we cannot extract a valid date.\n * @return A valid date or the default value.\n */\nexport function parseDateOr(value: unknown, defaultValue: T): Date | T {\n if (value instanceof Date) return value;\n else if (typeof value === \"number\") return new Date(value * 1000);\n else if (\n typeof value === \"string\" &&\n !Number.isNaN(new Date(value).getTime())\n )\n return new Date(value);\n else return defaultValue;\n}\n\n/**\n * Pad the current string with another string (multiple times, if needed)\n * until the resulting string reaches the given length.\n * The padding is applied from the start (left) of the current string.\n * @param value Text that needs to be padded.\n * @param length Length of the returned text.\n * @param pad Text to add.\n * @return Padded text.\n */\nexport function leftPad(\n value: string | number,\n length: number,\n pad: string | number = \" \"\n): string {\n if (typeof value === \"number\") value = `${value}`;\n if (typeof pad === \"number\") pad = `${pad}`;\n\n const diffLength = length - value.length;\n if (diffLength === 0) return value;\n if (diffLength < 0) return value.substr(Math.abs(diffLength));\n\n if (diffLength === pad.length) return `${pad}${value}`;\n if (diffLength < pad.length) return `${pad.substring(0, diffLength)}${value}`;\n\n const repeatTimes = Math.floor(diffLength / pad.length);\n const restLength = diffLength - pad.length * repeatTimes;\n\n let newPad = \"\";\n for (let i = 0; i < repeatTimes; i++) newPad += pad;\n\n if (restLength === 0) return `${newPad}${value}`;\n return `${newPad}${pad.substring(0, restLength)}${value}`;\n}\n\n/* Decoders */\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the position.\n */\nexport function positionPropsDecoder(data: AnyObject): Position {\n return {\n x: parseIntOr(data.x, 0),\n y: parseIntOr(data.y, 0)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the size.\n * @throws Will throw a TypeError if the width and height are not valid numbers.\n */\nexport function sizePropsDecoder(data: AnyObject): Size | never {\n if (\n data.width == null ||\n isNaN(parseInt(data.width)) ||\n data.height == null ||\n isNaN(parseInt(data.height))\n ) {\n throw new TypeError(\"invalid size.\");\n }\n\n return {\n width: parseInt(data.width),\n height: parseInt(data.height)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the agent properties.\n */\nexport function agentPropsDecoder(data: AnyObject): WithAgentProps {\n const agentProps: WithAgentProps = {\n agentId: parseIntOr(data.agentId, null),\n agentName: notEmptyStringOr(data.agentName, null),\n agentAlias: notEmptyStringOr(data.agentAlias, null),\n agentDescription: notEmptyStringOr(data.agentDescription, null),\n agentAddress: notEmptyStringOr(data.agentAddress, null),\n agentDisabled: parseBoolean(data.agentDisabled)\n };\n\n return data.metaconsoleId != null\n ? {\n metaconsoleId: data.metaconsoleId,\n ...agentProps // Object spread: http://es6-features.org/#SpreadOperator\n }\n : agentProps;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the module and agent properties.\n */\nexport function modulePropsDecoder(data: AnyObject): WithModuleProps {\n return {\n moduleId: parseIntOr(data.moduleId, null),\n moduleName: notEmptyStringOr(data.moduleName, null),\n moduleDescription: notEmptyStringOr(data.moduleDescription, null),\n moduleDisabled: parseBoolean(data.moduleDisabled),\n ...agentPropsDecoder(data) // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the linked visual console properties.\n * @throws Will throw a TypeError if the status calculation properties are invalid.\n */\nexport function linkedVCPropsDecoder(\n data: AnyObject\n): LinkedVisualConsoleProps | never {\n let linkedLayoutStatusProps: LinkedVisualConsolePropsStatus = {\n linkedLayoutStatusType: \"default\"\n };\n switch (data.linkedLayoutStatusType) {\n case \"weight\": {\n const weight = parseIntOr(data.linkedLayoutStatusTypeWeight, null);\n if (weight == null)\n throw new TypeError(\"invalid status calculation properties.\");\n\n if (data.linkedLayoutStatusTypeWeight)\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"weight\",\n linkedLayoutStatusTypeWeight: weight\n };\n break;\n }\n case \"service\": {\n const warningThreshold = parseIntOr(\n data.linkedLayoutStatusTypeWarningThreshold,\n null\n );\n const criticalThreshold = parseIntOr(\n data.linkedLayoutStatusTypeCriticalThreshold,\n null\n );\n if (warningThreshold == null || criticalThreshold == null) {\n throw new TypeError(\"invalid status calculation properties.\");\n }\n\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"service\",\n linkedLayoutStatusTypeWarningThreshold: warningThreshold,\n linkedLayoutStatusTypeCriticalThreshold: criticalThreshold\n };\n break;\n }\n }\n\n return {\n linkedLayoutId: parseIntOr(data.linkedLayoutId, null),\n linkedLayoutNodeId: parseIntOr(data.linkedLayoutNodeId, null),\n ...linkedLayoutStatusProps // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the item's meta properties.\n */\nexport function itemMetaDecoder(data: UnknownObject): ItemMeta | never {\n const receivedAt = parseDateOr(data.receivedAt, null);\n if (receivedAt === null) throw new TypeError(\"invalid meta structure\");\n\n let error = null;\n if (data.error instanceof Error) error = data.error;\n else if (typeof data.error === \"string\") error = new Error(data.error);\n\n return {\n receivedAt,\n error,\n editMode: parseBoolean(data.editMode),\n maintenanceMode: parseBoolean(data.maintenanceMode),\n isFromCache: parseBoolean(data.isFromCache),\n isFetching: false,\n isUpdating: false,\n isBeingMoved: false,\n isBeingResized: false,\n isSelected: false,\n lineMode: false\n };\n}\n\n/**\n * To get a CSS rule with the most used prefixes.\n * @param ruleName Name of the CSS rule.\n * @param ruleValue Value of the CSS rule.\n * @return An array of rules with the prefixes applied.\n */\nexport function prefixedCssRules(\n ruleName: string,\n ruleValue: string\n): string[] {\n const rule = `${ruleName}: ${ruleValue};`;\n return [\n `-webkit-${rule}`,\n `-moz-${rule}`,\n `-ms-${rule}`,\n `-o-${rule}`,\n `${rule}`\n ];\n}\n\n/**\n * Decode a base64 string.\n * @param input Data encoded using base64.\n * @return Decoded data.\n */\nexport function decodeBase64(input: string): string {\n return decodeURIComponent(escape(window.atob(input)));\n}\n\n/**\n * Generate a date representation with the format 'd/m/Y'.\n * @param initialDate Date to be used instead of a generated one.\n * @param locale Locale to use if localization is required and available.\n * @example 24/02/2020.\n * @return Date representation.\n */\nexport function humanDate(date: Date, locale: string | null = null): string {\n if (locale && Intl && Intl.DateTimeFormat) {\n // Format using the user locale.\n const options: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\"\n };\n return Intl.DateTimeFormat(locale, options).format(date);\n } else {\n // Use getDate, getDay returns the week day.\n const day = leftPad(date.getDate(), 2, 0);\n // The getMonth function returns the month starting by 0.\n const month = leftPad(date.getMonth() + 1, 2, 0);\n const year = leftPad(date.getFullYear(), 4, 0);\n\n // Format: 'd/m/Y'.\n return `${day}/${month}/${year}`;\n }\n}\n\n/**\n * Generate a time representation with the format 'hh:mm:ss'.\n * @param initialDate Date to be used instead of a generated one.\n * @example 01:34:09.\n * @return Time representation.\n */\nexport function humanTime(date: Date): string {\n const hours = leftPad(date.getHours(), 2, 0);\n const minutes = leftPad(date.getMinutes(), 2, 0);\n const seconds = leftPad(date.getSeconds(), 2, 0);\n\n return `${hours}:${minutes}:${seconds}`;\n}\n\ninterface Macro {\n macro: string | RegExp;\n value: string;\n}\n/**\n * Replace the macros of a text.\n * @param macros List of macros and their replacements.\n * @param text Text in which we need to replace the macros.\n */\nexport function replaceMacros(macros: Macro[], text: string): string {\n return macros.reduce(\n (acc, { macro, value }) => acc.replace(macro, value),\n text\n );\n}\n\n/**\n * Create a function which will limit the rate of execution of\n * the selected function to one time for the selected interval.\n * @param delay Interval.\n * @param fn Function to be executed at a limited rate.\n */\nexport function throttle(delay: number, fn: (...args: T[]) => R) {\n let last = 0;\n return (...args: T[]) => {\n const now = Date.now();\n if (now - last < delay) return;\n last = now;\n return fn(...args);\n };\n}\n\n/**\n * Create a function which will call the selected function only\n * after the interval time has passed after its last execution.\n * @param delay Interval.\n * @param fn Function to be executed after the last call.\n */\nexport function debounce(delay: number, fn: (...args: T[]) => void) {\n let timerRef: number | null = null;\n return (...args: T[]) => {\n if (timerRef !== null) window.clearTimeout(timerRef);\n timerRef = window.setTimeout(() => {\n fn(...args);\n timerRef = null;\n }, delay);\n };\n}\n\n/**\n * Retrieve the offset of an element relative to the page.\n * @param el Node used to calculate the offset.\n */\nfunction getOffset(el: HTMLElement | null, parent?: HTMLElement) {\n let x = 0;\n let y = 0;\n while (\n el &&\n !Number.isNaN(el.offsetLeft) &&\n !Number.isNaN(el.offsetTop) &&\n el !== parent\n ) {\n x += el.offsetLeft - el.scrollLeft;\n y += el.offsetTop - el.scrollTop;\n el = el.offsetParent as HTMLElement | null;\n }\n return { top: y, left: x };\n}\n\n/**\n * Add the grab & move functionality to a certain element inside it's container.\n *\n * @param element Element to move.\n * @param onMoved Function to execute when the element moves.\n * @param altContainer Alternative element to contain the moved element.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addMovementListener(\n element: HTMLElement,\n onMoved: (x: Position[\"x\"], y: Position[\"y\"]) => void,\n altContainer?: HTMLElement\n): Function {\n const container = altContainer || (element.parentElement as HTMLElement);\n\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastX: Position[\"x\"] = 0;\n let lastY: Position[\"y\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementBounds = element.getBoundingClientRect();\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth) * 2;\n\n // Will run onMoved 32ms after its last execution.\n const debouncedMovement = debounce(32, onMoved);\n // Will run onMoved one time max every 16ms.\n const throttledMovement = throttle(16, onMoved);\n\n const handleMove = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let x = 0;\n let y = 0;\n\n const mouseX = e.pageX;\n const mouseY = e.pageY;\n const mouseDeltaX = mouseX - lastMouseX;\n const mouseDeltaY = mouseY - lastMouseY;\n\n const minX = 0;\n const maxX = containerBounds.width - elementBounds.width + borderFix;\n const minY = 0;\n const maxY = containerBounds.height - elementBounds.height + borderFix;\n\n const outOfBoundsLeft =\n mouseX < containerLeft ||\n (lastX === 0 &&\n mouseDeltaX > 0 &&\n mouseX < containerLeft + mouseElementOffsetX);\n const outOfBoundsRight =\n mouseX > containerRight ||\n mouseDeltaX + lastX + elementBounds.width - borderFix >\n containerBounds.width ||\n (lastX === maxX &&\n mouseDeltaX < 0 &&\n mouseX > containerLeft + maxX + mouseElementOffsetX);\n const outOfBoundsTop =\n mouseY < containerTop ||\n (lastY === 0 &&\n mouseDeltaY > 0 &&\n mouseY < containerTop + mouseElementOffsetY);\n const outOfBoundsBottom =\n mouseY > containerBottom ||\n mouseDeltaY + lastY + elementBounds.height - borderFix >\n containerBounds.height ||\n (lastY === maxY &&\n mouseDeltaY < 0 &&\n mouseY > containerTop + maxY + mouseElementOffsetY);\n\n if (outOfBoundsLeft) x = minX;\n else if (outOfBoundsRight) x = maxX;\n else x = mouseDeltaX + lastX;\n\n if (outOfBoundsTop) y = minY;\n else if (outOfBoundsBottom) y = maxY;\n else y = mouseDeltaY + lastY;\n\n if (x < 0) x = minX;\n if (y < 0) y = minY;\n\n // Store the last mouse coordinates.\n lastMouseX = mouseX;\n lastMouseY = mouseY;\n\n if (x === lastX && y === lastY) return;\n\n // Run the movement events.\n throttledMovement(x, y);\n debouncedMovement(x, y);\n\n // Store the coordinates of the element.\n lastX = x;\n lastY = y;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastX = 0;\n lastY = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleMove);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n // Avoid starting the movement on right click.\n if (e.button === 2) return;\n\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Fix for Firefox browser.\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const elementOffset = getOffset(element, container);\n lastX = elementOffset.left;\n lastY = elementOffset.top;\n\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementBounds = element.getBoundingClientRect();\n borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n borderFix = Number.parseInt(borderWidth) * 2;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleMove);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n element.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n element.removeEventListener(\"mousedown\", handleStart);\n handleEnd();\n };\n}\n\n/**\n * Add the grab & resize functionality to a certain element.\n *\n * @param element Element to move.\n * @param onResized Function to execute when the element is resized.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addResizementListener(\n element: HTMLElement,\n onResized: (x: Position[\"x\"], y: Position[\"y\"]) => void\n): Function {\n const minWidth = 15;\n const minHeight = 15;\n\n const resizeDraggable = document.createElement(\"div\");\n resizeDraggable.className = \"resize-draggable\";\n element.appendChild(resizeDraggable);\n\n // Container of the resizable element.\n const container = element.parentElement as HTMLElement;\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastWidth: Size[\"width\"] = 0;\n let lastHeight: Size[\"height\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Init the bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementOffset = getOffset(element);\n let elementTop = elementOffset.top;\n let elementLeft = elementOffset.left;\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth);\n\n // Will run onResized 32ms after its last execution.\n const debouncedResizement = debounce(32, onResized);\n // Will run onResized one time max every 16ms.\n const throttledResizement = throttle(16, onResized);\n\n const handleResize = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let width = lastWidth + (e.pageX - lastMouseX);\n let height = lastHeight + (e.pageY - lastMouseY);\n\n if (width === lastWidth && height === lastHeight) return;\n\n if (\n width < lastWidth &&\n e.pageX > elementLeft + (lastWidth - mouseElementOffsetX)\n )\n return;\n\n if (width < minWidth) {\n // Minimum value.\n width = minWidth;\n } else if (width + elementLeft - borderFix / 2 >= containerRight) {\n // Limit the size to the container.\n width = containerRight - elementLeft;\n }\n if (height < minHeight) {\n // Minimum value.\n height = minHeight;\n } else if (height + elementTop - borderFix / 2 >= containerBottom) {\n // Limit the size to the container.\n height = containerBottom - elementTop;\n }\n\n // Run the movement events.\n throttledResizement(width, height);\n debouncedResizement(width, height);\n\n // Store the coordinates of the element.\n lastWidth = width;\n lastHeight = height;\n // Store the last mouse coordinates.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastWidth = 0;\n lastHeight = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n mouseElementOffsetX = 0;\n mouseElementOffsetY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleResize);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const { width, height } = element.getBoundingClientRect();\n lastWidth = width;\n lastHeight = height;\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementOffset = getOffset(element);\n elementTop = elementOffset.top;\n elementLeft = elementOffset.left;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleResize);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n resizeDraggable.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n resizeDraggable.remove();\n handleEnd();\n };\n}\n\n// TODO: Document and code\nexport function t(text: string): string {\n return text;\n}\n\nexport function helpTip(text: string): HTMLElement {\n const container = document.createElement(\"a\");\n container.className = \"tip\";\n const icon = document.createElement(\"img\");\n icon.src = helpTipIcon;\n icon.className = \"forced_title\";\n icon.setAttribute(\"alt\", text);\n icon.setAttribute(\"data-title\", text);\n icon.setAttribute(\"data-use_title_for_force_title\", \"1\");\n\n container.appendChild(icon);\n\n return container;\n}\n\ninterface PeriodSelectorOption {\n value: number;\n text: string;\n}\nexport function periodSelector(\n selectedValue: PeriodSelectorOption[\"value\"] | null,\n emptyOption: PeriodSelectorOption | null,\n options: PeriodSelectorOption[],\n onChange: (value: PeriodSelectorOption[\"value\"]) => void\n): HTMLElement {\n if (selectedValue === null) selectedValue = 0;\n const initialValue = emptyOption ? emptyOption.value : 0;\n let currentValue: number =\n selectedValue != null ? selectedValue : initialValue;\n // Main container.\n const container = document.createElement(\"div\");\n // Container for the period selector.\n const periodsContainer = document.createElement(\"div\");\n const selectPeriods = document.createElement(\"select\");\n const useManualPeriodsBtn = document.createElement(\"a\");\n // Container for the custom period input.\n const manualPeriodsContainer = document.createElement(\"div\");\n const inputTimeValue = document.createElement(\"input\");\n const unitsSelect = document.createElement(\"select\");\n const usePeriodsBtn = document.createElement(\"a\");\n // Units to multiply the custom period input.\n const unitOptions: { value: string; text: string }[] = [\n { value: \"1\", text: t(\"Seconds\").toLowerCase() },\n { value: \"60\", text: t(\"Minutes\").toLowerCase() },\n { value: \"3600\", text: t(\"Hours\").toLowerCase() },\n { value: \"86400\", text: t(\"Days\").toLowerCase() },\n { value: \"604800\", text: t(\"Weeks\").toLowerCase() },\n { value: `${86400 * 30}`, text: t(\"Months\").toLowerCase() },\n { value: `${86400 * 30 * 12}`, text: t(\"Years\").toLowerCase() }\n ];\n\n // Will be executed every time the value changes.\n const handleChange = (value: number) => {\n currentValue = value;\n onChange(currentValue);\n };\n // Will return the first period option smaller than the value.\n const findPeriodsOption = (value: number) =>\n options\n .sort((a, b) => (a.value < b.value ? 1 : -1))\n .find(optionVal => value >= optionVal.value);\n // Will return the first multiple of the value using the custom input multipliers.\n const findManualPeriodsOptionValue = (value: number) =>\n unitOptions\n .map(unitOption => Number.parseInt(unitOption.value))\n .sort((a, b) => (a < b ? 1 : -1))\n .find(optionVal => value % optionVal === 0);\n // Will find and set a valid option for the period selector.\n const setPeriodsValue = (value: number) => {\n let option = findPeriodsOption(value);\n selectPeriods.value = `${option ? option.value : initialValue}`;\n };\n // Will transform the value to show the perfect fit for the custom input period.\n const setManualPeriodsValue = (value: number) => {\n const optionVal = findManualPeriodsOptionValue(value);\n if (optionVal) {\n inputTimeValue.value = `${value / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${value}`;\n unitsSelect.value = \"1\";\n }\n };\n\n // Will modify the value to show the perfect fit for this element and show its container.\n const showPeriods = () => {\n let option = findPeriodsOption(currentValue);\n const newValue = option ? option.value : initialValue;\n selectPeriods.value = `${newValue}`;\n\n if (newValue !== currentValue) handleChange(newValue);\n\n container.replaceChild(periodsContainer, manualPeriodsContainer);\n };\n // Will modify the value to show the perfect fit for this element and show its container.\n const showManualPeriods = () => {\n const optionVal = findManualPeriodsOptionValue(currentValue);\n\n if (optionVal) {\n inputTimeValue.value = `${currentValue / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${currentValue}`;\n unitsSelect.value = \"1\";\n }\n\n container.replaceChild(manualPeriodsContainer, periodsContainer);\n };\n\n // Append the elements\n\n periodsContainer.appendChild(selectPeriods);\n periodsContainer.appendChild(useManualPeriodsBtn);\n\n manualPeriodsContainer.appendChild(inputTimeValue);\n manualPeriodsContainer.appendChild(unitsSelect);\n manualPeriodsContainer.appendChild(usePeriodsBtn);\n\n if (\n options.find(option => option.value === selectedValue) ||\n (emptyOption && emptyOption.value === selectedValue)\n ) {\n // Start with the custom periods select.\n container.appendChild(periodsContainer);\n } else {\n // Start with the manual time input\n container.appendChild(manualPeriodsContainer);\n }\n\n // Set and fill the elements.\n\n // Periods selector.\n\n selectPeriods.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, initialValue)\n )\n );\n if (emptyOption) {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${emptyOption.value}`;\n optionElem.text = emptyOption.text;\n selectPeriods.appendChild(optionElem);\n }\n options.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n selectPeriods.appendChild(optionElem);\n });\n\n setPeriodsValue(selectedValue);\n\n useManualPeriodsBtn.appendChild(\n fontAwesomeIcon(faPencilAlt, t(\"Show manual period input\"), {\n size: \"small\"\n })\n );\n useManualPeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showManualPeriods();\n });\n\n // Manual periods input.\n\n inputTimeValue.type = \"number\";\n inputTimeValue.min = \"0\";\n inputTimeValue.required = true;\n inputTimeValue.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, 0) *\n parseIntOr(unitsSelect.value, 1)\n )\n );\n // Select for time units.\n unitsSelect.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr(inputTimeValue.value, 0) *\n parseIntOr((e.target as HTMLSelectElement).value, 1)\n )\n );\n unitOptions.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n unitsSelect.appendChild(optionElem);\n });\n\n setManualPeriodsValue(selectedValue);\n\n usePeriodsBtn.appendChild(\n fontAwesomeIcon(faListAlt, t(\"Show periods selector\"), { size: \"small\" })\n );\n usePeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showPeriods();\n });\n\n return container;\n}\n\n/**\n * Cuts the text if their length is greater than the selected max length\n * and applies the selected ellipse to the result text.\n * @param str Text to cut\n * @param max Maximum length after cutting the text\n * @param ellipse String to be added to the cutted text\n * @returns Full text or text cutted with the ellipse\n */\nexport function ellipsize(\n str: string,\n max: number = 140,\n ellipse: string = \"…\"\n): string {\n return str.trim().length > max ? str.substr(0, max).trim() + ellipse : str;\n}\n\n// TODO: Document\nexport function autocompleteInput(\n initialValue: string | null,\n onDataRequested: (value: string, done: (data: T[]) => void) => void,\n renderListElement: (data: T) => HTMLElement,\n onSelected: (data: T) => string\n): HTMLElement {\n const container = document.createElement(\"div\");\n container.classList.add(\"autocomplete\");\n\n const input = document.createElement(\"input\");\n input.type = \"text\";\n input.required = true;\n if (initialValue !== null) input.value = initialValue;\n\n const list = document.createElement(\"div\");\n list.classList.add(\"autocomplete-items\");\n\n const cleanList = () => {\n list.innerHTML = \"\";\n };\n\n input.addEventListener(\"keyup\", e => {\n const value = (e.target as HTMLInputElement).value;\n if (value) {\n onDataRequested(value, data => {\n cleanList();\n if (data instanceof Array) {\n data.forEach(item => {\n const listElement = renderListElement(item);\n listElement.addEventListener(\"click\", () => {\n input.value = onSelected(item);\n cleanList();\n });\n list.appendChild(listElement);\n });\n }\n });\n } else {\n cleanList();\n }\n });\n\n container.appendChild(input);\n container.appendChild(list);\n\n return container;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject\n} from \"../lib/types\";\n\nimport {\n modulePropsDecoder,\n linkedVCPropsDecoder,\n notEmptyStringOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type StaticGraphProps = {\n type: ItemType.STATIC_GRAPH;\n imageSrc: string; // URL?\n showLastValueTooltip: \"default\" | \"enabled\" | \"disabled\";\n statusImageSrc: string | null; // URL?\n lastValue: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param showLastValueTooltip Raw value.\n */\nconst parseShowLastValueTooltip = (\n showLastValueTooltip: unknown\n): StaticGraphProps[\"showLastValueTooltip\"] => {\n switch (showLastValueTooltip) {\n case \"default\":\n case \"enabled\":\n case \"disabled\":\n return showLastValueTooltip;\n default:\n return \"default\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function staticGraphPropsDecoder(\n data: AnyObject\n): StaticGraphProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.STATIC_GRAPH,\n imageSrc: data.imageSrc,\n showLastValueTooltip: parseShowLastValueTooltip(data.showLastValueTooltip),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n lastValue: notEmptyStringOr(data.lastValue, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class StaticGraph extends Item {\n protected createDomElement(): HTMLElement {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n const element = document.createElement(\"div\");\n element.className = \"static-graph\";\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n element.style.backgroundImage = `url(${imgSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Show last value in a tooltip.\n if (\n this.props.lastValue !== null &&\n this.props.showLastValueTooltip !== \"disabled\"\n ) {\n element.className = \"static-graph image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\"data-title\", this.props.lastValue);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n element.style.backgroundImage = `url(${imgSrc})`;\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type IconProps = {\n type: ItemType.ICON;\n image: string;\n imageSrc: string; // URL?\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the icon props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function iconPropsDecoder(data: AnyObject): IconProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n if (typeof data.image !== \"string\" || data.image.length === 0) {\n throw new TypeError(\"invalid image.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ICON,\n image: data.image,\n imageSrc: data.imageSrc,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Icon extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"icon \" + this.props.image;\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n }\n}\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\n","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject,\n WithAgentProps\n} from \"../lib/types\";\nimport { modulePropsDecoder, linkedVCPropsDecoder, t } from \"../lib\";\nimport Item, { itemBasePropsDecoder, ItemType, ItemProps } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport { faTrashAlt, faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ColorCloudProps = {\n type: ItemType.COLOR_CLOUD;\n color: string;\n defaultColor: string;\n colorRanges: {\n color: string;\n fromValue: number;\n toValue: number;\n }[];\n // TODO: Add the rest of the color cloud values?\n} & ItemProps &\n WithAgentProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function colorCloudPropsDecoder(\n data: AnyObject\n): ColorCloudProps | never {\n // TODO: Validate the color.\n if (typeof data.color !== \"string\" || data.color.length === 0) {\n throw new TypeError(\"invalid color.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.COLOR_CLOUD,\n color: data.color,\n defaultColor: data.defaultColor,\n colorRanges: data.colorRanges,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n/**\n * Class to add item to the Color cloud item form\n * This item consists of a label and a color type input color.\n * Element default color is stored in the color property\n */\nclass ColorInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group\";\n\n const colorLabel = document.createElement(\"label\");\n colorLabel.textContent = t(\"Default color\");\n\n generalDiv.appendChild(colorLabel);\n\n const ColorInput = document.createElement(\"input\");\n ColorInput.type = \"color\";\n ColorInput.required = true;\n\n ColorInput.value = `${this.currentData.defaultColor ||\n this.initialData.defaultColor ||\n \"#000000\"}`;\n\n ColorInput.addEventListener(\"change\", e => {\n this.updateData({\n defaultColor: (e.target as HTMLInputElement).value\n });\n });\n\n generalDiv.appendChild(ColorInput);\n\n return generalDiv;\n }\n}\n\ntype ColorRanges = ColorCloudProps[\"colorRanges\"];\ntype ColorRange = ColorRanges[0];\n\nclass RangesInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group div-ranges-input-group\";\n\n const rangesLabel = this.createLabel(\"Ranges\");\n\n generalDiv.appendChild(rangesLabel);\n\n const rangesControlsContainer = document.createElement(\"div\");\n const createdRangesContainer = document.createElement(\"div\");\n\n generalDiv.appendChild(createdRangesContainer);\n generalDiv.appendChild(rangesControlsContainer);\n\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n\n let buildRanges: (ranges: ColorRanges) => void;\n\n const handleRangeUpdatePartial = (index: number) => (\n range: ColorRange\n ): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n this.updateData({\n colorRanges: [\n ...colorRanges.slice(0, index),\n range,\n ...colorRanges.slice(index + 1)\n ]\n });\n };\n\n const handleDelete = (index: number) => () => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [\n ...colorRanges.slice(0, index),\n ...colorRanges.slice(index + 1)\n ];\n\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n const handleCreate = (range: ColorRange): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [...colorRanges, range];\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n buildRanges = ranges => {\n createdRangesContainer.innerHTML = \"\";\n ranges.forEach((colorRange, index) =>\n createdRangesContainer.appendChild(\n this.rangeContainer(\n colorRange,\n handleRangeUpdatePartial(index),\n handleDelete(index)\n )\n )\n );\n };\n\n buildRanges(colorRanges);\n\n rangesControlsContainer.appendChild(\n this.initialRangeContainer(handleCreate)\n );\n\n return generalDiv;\n }\n\n private initialRangeContainer(onCreate: (range: ColorRange) => void) {\n // TODO: Document\n const initialState = { color: \"#ffffff\" };\n\n let state: Partial = { ...initialState };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n };\n\n // User defined type guard.\n // Docs: https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards\n const isValid = (range: Partial): range is ColorRange =>\n typeof range.color !== \"undefined\" &&\n typeof range.toValue !== \"undefined\" &&\n typeof range.fromValue !== \"undefined\";\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(null, handleFromValue);\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(null, handleToValue);\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n initialState.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const createBtn = document.createElement(\"a\");\n createBtn.appendChild(\n fontAwesomeIcon(faPlusCircle, t(\"Create color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n\n const handleCreate = () => {\n if (isValid(state)) onCreate(state);\n state = initialState;\n rangesInputFromValue.value = `${state.fromValue || \"\"}`;\n rangesInputToValue.value = `${state.toValue || \"\"}`;\n rangesInputColor.value = `${state.color}`;\n };\n\n createBtn.addEventListener(\"click\", handleCreate);\n\n rangesContainer.appendChild(createBtn);\n\n return rangesContainer;\n }\n\n private rangeContainer(\n colorRange: ColorRange,\n onUpdate: (range: ColorRange) => void,\n onDelete: () => void\n ): HTMLDivElement {\n // TODO: Document\n const state = { ...colorRange };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n onUpdate({ ...state });\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n onUpdate({ ...state });\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n onUpdate({ ...state });\n };\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(\n colorRange.fromValue,\n handleFromValue\n );\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(\n colorRange.toValue,\n handleToValue\n );\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n colorRange.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const deleteBtn = document.createElement(\"a\");\n deleteBtn.appendChild(\n fontAwesomeIcon(faTrashAlt, t(\"Delete color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n deleteBtn.addEventListener(\"click\", onDelete);\n\n rangesContainer.appendChild(deleteBtn);\n\n return rangesContainer;\n }\n\n private createLabel(text: string): HTMLLabelElement {\n const label = document.createElement(\"label\");\n label.textContent = t(text);\n return label;\n }\n\n private createInputNumber(\n value: number | null,\n onUpdate: (value: number) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"number\";\n if (value !== null) input.value = `${value}`;\n input.addEventListener(\"change\", e => {\n const value = parseInt((e.target as HTMLInputElement).value);\n if (!isNaN(value)) onUpdate(value);\n });\n\n return input;\n }\n\n private createInputColor(\n value: string | null,\n onUpdate: (value: string) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"color\";\n if (value !== null) input.value = value;\n input.addEventListener(\"change\", e =>\n onUpdate((e.target as HTMLInputElement).value)\n );\n\n return input;\n }\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class ColorCloud extends Item {\n protected createDomElement(): HTMLElement {\n const container: HTMLDivElement = document.createElement(\"div\");\n container.className = \"color-cloud\";\n\n // Add the SVG.\n container.append(this.createSvgElement());\n\n return container;\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width);\n }\n\n public createSvgElement(): SVGSVGElement {\n const gradientId = `grad_${this.props.id}`;\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Defs.\n const defs = document.createElementNS(svgNS, \"defs\");\n // Radial gradient.\n const radialGradient = document.createElementNS(svgNS, \"radialGradient\");\n radialGradient.setAttribute(\"id\", gradientId);\n radialGradient.setAttribute(\"cx\", \"50%\");\n radialGradient.setAttribute(\"cy\", \"50%\");\n radialGradient.setAttribute(\"r\", \"50%\");\n radialGradient.setAttribute(\"fx\", \"50%\");\n radialGradient.setAttribute(\"fy\", \"50%\");\n // Stops.\n const stop0 = document.createElementNS(svgNS, \"stop\");\n stop0.setAttribute(\"offset\", \"0%\");\n stop0.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0.9`\n );\n const stop100 = document.createElementNS(svgNS, \"stop\");\n stop100.setAttribute(\"offset\", \"100%\");\n stop100.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0`\n );\n // Circle.\n const circle = document.createElementNS(svgNS, \"circle\");\n circle.setAttribute(\"fill\", `url(#${gradientId})`);\n circle.setAttribute(\"cx\", \"50%\");\n circle.setAttribute(\"cy\", \"50%\");\n circle.setAttribute(\"r\", \"50%\");\n\n // Append elements.\n radialGradient.append(stop0, stop100);\n defs.append(radialGradient);\n svg.append(defs, circle);\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n return svg;\n }\n\n /**\n * @override function to add or remove inputsGroups those that are not necessary.\n * Add to:\n * ColorInputGroup\n * RangesInputGroup\n */\n public getFormContainer(): FormContainer {\n return ColorCloud.getFormContainer(this.props);\n }\n\n public static getFormContainer(\n props: Partial\n ): FormContainer {\n const formContainer = super.getFormContainer(props);\n formContainer.removeInputGroup(\"label\");\n\n formContainer.addInputGroup(new ColorInputGroup(\"color-cloud\", props), 3);\n formContainer.addInputGroup(new RangesInputGroup(\"ranges-cloud\", props), 4);\n\n return formContainer;\n }\n}\n","import { AnyObject, Position, Size, ItemMeta } from \"../lib/types\";\nimport {\n parseIntOr,\n notEmptyStringOr,\n debounce,\n addMovementListener\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport TypedEvent, { Listener, Disposable } from \"../lib/TypedEvent\";\n\nexport interface LineProps extends ItemProps {\n // Overrided properties.\n type: number;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n startPosition: Position;\n endPosition: Position;\n lineWidth: number;\n color: string | null;\n viewportOffsetX: number;\n viewportOffsetY: number;\n labelEnd: string;\n labelStart: string;\n linkedEnd: number | null;\n linkedStart: number | null;\n labelEndWidth: number;\n labelEndHeight: number;\n labelStartWidth: number;\n labelStartHeight: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function linePropsDecoder(data: AnyObject): LineProps | never {\n const props: LineProps = {\n ...itemBasePropsDecoder({ ...data, width: 1, height: 1 }), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LINE_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Initialize Position & Size.\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // Custom properties.\n startPosition: {\n x: parseIntOr(data.startX, 0),\n y: parseIntOr(data.startY, 0)\n },\n endPosition: {\n x: parseIntOr(data.endX, 0),\n y: parseIntOr(data.endY, 0)\n },\n lineWidth: parseIntOr(data.lineWidth || data.borderWidth, 1),\n color: notEmptyStringOr(data.borderColor || data.color, null),\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n linkedEnd: data.linkedEnd,\n linkedStart: data.linkedStart,\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n\n /*\n * We need to enhance the props with the extracted size and position\n * of the box cause there are missing at the props update. A better\n * solution would be overriding the props setter to do it there, but\n * the language doesn't allow it while targetting ES5.\n * TODO: We need to figure out a more consistent solution.\n */\n\n return {\n ...props,\n // Enhance the props extracting the box size and position.\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...Line.extractBoxSizeAndPosition(props.startPosition, props.endPosition)\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface LineMovedEvent {\n item: Line;\n startPosition: LineProps[\"startPosition\"];\n endPosition: LineProps[\"endPosition\"];\n}\n\nexport default class Line extends Item {\n protected circleRadius = 8;\n // To control if the line movement is enabled.\n protected moveMode: boolean = false;\n // To control if the line is moving.\n protected isMoving: boolean = false;\n\n // Event manager for moved events.\n public readonly lineMovedEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n protected readonly lineMovedEventDisposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedStartPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const startPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeStartPositionMovement: Function | null = null;\n\n /**\n * Start the movement funtionality for the start position.\n * @param element Element to move inside its container.\n */\n protected initStartPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeStartPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n const startPosition = { x, y };\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n startPosition\n };\n\n // Run the end function.\n this.debouncedStartPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement fun\n */\n private stopStartPositionMovementListener(): void {\n if (this.removeStartPositionMovement) {\n this.removeStartPositionMovement();\n this.removeStartPositionMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedEndPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeEndPositionMovement: Function | null = null;\n\n /**\n * End the movement funtionality for the end position.\n * @param element Element to move inside its container.\n */\n protected initEndPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeEndPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n endPosition: { x, y }\n };\n\n // Run the end function.\n this.debouncedEndPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement function.\n */\n private stopEndPositionMovementListener(): void {\n if (this.removeEndPositionMovement) {\n this.removeEndPositionMovement();\n this.removeEndPositionMovement = null;\n }\n }\n\n /**\n * @override\n */\n public constructor(props: LineProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props,\n ...Line.extractBoxSizeAndPosition(\n props.startPosition,\n props.endPosition\n )\n },\n {\n ...meta\n },\n true\n );\n\n this.moveMode = meta.editMode;\n this.init();\n\n super.resizeElement(\n Math.max(props.width, props.viewportOffsetX),\n Math.max(props.height, props.viewportOffsetY)\n );\n }\n\n /**\n * Classic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n * @override Item.setProps\n */\n public setProps(newProps: LineProps) {\n super.setProps({\n ...newProps,\n ...Line.extractBoxSizeAndPosition(\n newProps.startPosition,\n newProps.endPosition\n )\n });\n }\n\n /**\n * Classic and protected version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newMetadata\n * @override Item.setMeta\n */\n public setMeta(newMetadata: ItemMeta) {\n this.moveMode = newMetadata.editMode;\n super.setMeta({\n ...newMetadata,\n lineMode: true\n });\n }\n\n /**\n * @override\n * To create the item's DOM representation.\n * @return Item.\n */\n protected createDomElement(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"line\";\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness,\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const line = document.createElementNS(svgNS, \"line\");\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n\n svg.append(line);\n element.append(svg);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n if (element.parentElement != null) {\n element.parentElement.style.cursor = \"default\";\n }\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n const svgs = element.getElementsByTagName(\"svg\");\n\n if (svgs.length > 0) {\n const svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n\n if (lines.length > 0) {\n const line = lines.item(0);\n\n if (line != null) {\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n }\n }\n }\n }\n\n if (this.moveMode) {\n let startCircle: HTMLElement = document.createElement(\"div\");\n let endCircle: HTMLElement = document.createElement(\"div\");\n\n if (this.isMoving) {\n const circlesStart = element.getElementsByClassName(\n \"visual-console-item-line-circle-start\"\n );\n if (circlesStart.length > 0) {\n const circle = circlesStart.item(0) as HTMLElement;\n if (circle) startCircle = circle;\n }\n const circlesEnd = element.getElementsByClassName(\n \"visual-console-item-line-circle-end\"\n );\n if (circlesEnd.length > 0) {\n const circle = circlesEnd.item(0) as HTMLElement;\n if (circle) endCircle = circle;\n }\n }\n\n startCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-start\"\n );\n startCircle.style.width = `${this.circleRadius * 2}px`;\n startCircle.style.height = `${this.circleRadius * 2}px`;\n startCircle.style.borderRadius = \"50%\";\n startCircle.style.backgroundColor = `${color}`;\n startCircle.style.position = \"absolute\";\n startCircle.style.left = `${x1 - this.circleRadius}px`;\n startCircle.style.top = `${y1 - this.circleRadius}px`;\n startCircle.style.cursor = `move`;\n\n endCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-end\"\n );\n endCircle.style.width = `${this.circleRadius * 2}px`;\n endCircle.style.height = `${this.circleRadius * 2}px`;\n endCircle.style.borderRadius = \"50%\";\n endCircle.style.backgroundColor = `${color}`;\n endCircle.style.position = \"absolute\";\n endCircle.style.left = `${x2 - this.circleRadius}px`;\n endCircle.style.top = `${y2 - this.circleRadius}px`;\n endCircle.style.cursor = `move`;\n\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n\n element.parentElement.appendChild(startCircle);\n element.parentElement.appendChild(endCircle);\n }\n\n // Init the movement listeners.\n this.initStartPositionMovementListener(\n startCircle,\n this.elementRef.parentElement as HTMLElement\n );\n this.initEndPositionMovementListener(\n endCircle,\n this.elementRef.parentElement as HTMLElement\n );\n } else if (!this.moveMode) {\n this.stopStartPositionMovementListener();\n // Remove circles.\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n }\n } else {\n this.stopStartPositionMovementListener();\n }\n }\n\n /**\n * Extract the size and position of the box from\n * the start and the finish of the line.\n * @param props Item properties.\n */\n public static extractBoxSizeAndPosition(\n startPosition: Position,\n endPosition: Position\n ): Size & Position {\n return {\n width: Math.abs(startPosition.x - endPosition.x),\n height: Math.abs(startPosition.y - endPosition.y),\n x: Math.min(startPosition.x, endPosition.x),\n y: Math.min(startPosition.y, endPosition.y)\n };\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n * @override item function\n */\n public move(x: number, y: number): void {\n super.moveElement(x, y);\n const startIsLeft =\n this.props.startPosition.x - this.props.endPosition.x <= 0;\n const startIsTop =\n this.props.startPosition.y - this.props.endPosition.y <= 0;\n\n const start = {\n x: startIsLeft ? x : this.props.width + x,\n y: startIsTop ? y : this.props.height + y\n };\n\n const end = {\n x: startIsLeft ? this.props.width + x : x,\n y: startIsTop ? this.props.height + y : y\n };\n\n this.props = {\n ...this.props,\n startPosition: start,\n endPosition: end\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override Item.remove\n */\n public remove(): void {\n // Clear the item's event listeners.\n this.stopStartPositionMovementListener();\n // Call the parent's .remove()\n super.remove();\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n *\n * @override Item.onMoved\n */\n public onLineMovementFinished(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.lineMovedEventDisposables.push(disposable);\n\n return disposable;\n }\n}\n","import { AnyObject, Position, ItemMeta } from \"../lib/types\";\nimport { debounce, notEmptyStringOr, parseIntOr } from \"../lib\";\nimport { ItemType } from \"../Item\";\nimport Line, { LineProps, linePropsDecoder } from \"./Line\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface NetworkLinkProps extends LineProps {\n // Overrided properties.\n type: number;\n labelStart: string;\n labelEnd: string;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function networkLinkPropsDecoder(\n data: AnyObject\n): NetworkLinkProps | never {\n return {\n ...linePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.NETWORK_LINK,\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n}\n\nexport default class NetworkLink extends Line {\n /**\n * @override\n */\n public constructor(props: NetworkLinkProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props\n },\n {\n ...meta\n }\n );\n\n this.render();\n }\n\n /**\n * @override\n */\n protected debouncedStartPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n\n const startPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n\n protected debouncedEndPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n\n protected updateDomElement(element: HTMLElement): void {\n super.updateDomElement(element);\n\n let {\n x, // Box x\n y, // Box y\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color, // Line color\n labelEnd,\n labelStart,\n labelEndWidth,\n labelEndHeight,\n labelStartWidth,\n labelStartHeight\n } = this.props;\n\n const svgs = element.getElementsByTagName(\"svg\");\n let line;\n let svg;\n\n if (svgs.length > 0) {\n svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n let groups = svg.getElementsByTagNameNS(svgNS, \"g\");\n while (groups.length > 0) {\n groups[0].remove();\n }\n\n if (lines.length > 0) {\n line = lines.item(0);\n }\n }\n } else {\n // No line or svg, no more actions are required.\n return;\n }\n\n if (svg == null || line == null) {\n // No more actionas are required.\n return;\n }\n\n // Font size and text adjustments.\n const fontsize = 10;\n const adjustment = 25;\n\n const lineX1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const lineX2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n let x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n let x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // Calculate angle (rotation).\n let rad = Math.atan2(lineY2 - lineY1, lineX2 - lineX1);\n let g = (rad * 180) / Math.PI;\n\n // Calculate effective 'text' box sizes.\n const fontheight = 25;\n if (labelStartWidth <= 0) {\n let lines = labelStart.split(\"
\");\n labelStartWidth = 0;\n lines.forEach(l => {\n if (l.length > labelStartWidth) {\n labelStartWidth = l.length * fontsize;\n }\n });\n if (labelStartHeight <= 0) {\n labelStartHeight = lines.length * fontheight;\n }\n }\n\n if (labelEndWidth <= 0) {\n let lines = labelEnd.split(\"
\");\n labelEndWidth = 0;\n lines.forEach(l => {\n if (l.length > labelEndWidth) {\n labelEndWidth = l.length * fontsize;\n }\n });\n if (labelEndHeight <= 0) {\n labelEndHeight = lines.length * fontheight;\n }\n }\n\n if (x1 < x2) {\n // x1 on left of x2.\n x1 += adjustment;\n x2 -= adjustment + labelEndWidth;\n }\n\n if (x1 > x2) {\n // x1 on right of x2.\n x1 -= adjustment + labelStartWidth;\n x2 += adjustment;\n }\n\n if (y1 < y2) {\n // y1 on y2.\n y1 += adjustment;\n y2 -= adjustment + labelEndHeight;\n }\n\n if (y1 > y2) {\n // y1 under y2.\n y1 -= adjustment + labelStartHeight;\n y2 += adjustment;\n }\n\n if (typeof color == \"undefined\") {\n color = \"#000\";\n }\n\n // Clean.\n if (element.parentElement !== null) {\n const labels = element.parentElement.getElementsByClassName(\n \"vc-item-nl-label\"\n );\n while (labels.length > 0) {\n const label = labels.item(0);\n if (label) label.remove();\n }\n\n const arrows = element.parentElement.getElementsByClassName(\n \"vc-item-nl-arrow\"\n );\n while (arrows.length > 0) {\n const arrow = arrows.item(0);\n if (arrow) arrow.remove();\n }\n }\n\n let arrowSize = lineWidth * 2;\n\n let arrowPosX = lineX1 + (lineX2 - lineX1) / 2 - arrowSize;\n let arrowPosY = lineY1 + (lineY2 - lineY1) / 2 - arrowSize;\n\n let arrowStart: HTMLElement = document.createElement(\"div\");\n arrowStart.classList.add(\"vc-item-nl-arrow\");\n arrowStart.style.position = \"absolute\";\n arrowStart.style.border = `${arrowSize}px solid transparent`;\n arrowStart.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowStart.style.left = `${arrowPosX}px`;\n arrowStart.style.top = `${arrowPosY}px`;\n arrowStart.style.transform = `rotate(${90 + g}deg)`;\n\n let arrowEnd: HTMLElement = document.createElement(\"div\");\n arrowEnd.classList.add(\"vc-item-nl-arrow\");\n arrowEnd.style.position = \"absolute\";\n arrowEnd.style.border = `${arrowSize}px solid transparent`;\n arrowEnd.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowEnd.style.left = `${arrowPosX}px`;\n arrowEnd.style.top = `${arrowPosY}px`;\n arrowEnd.style.transform = `rotate(${270 + g}deg)`;\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(arrowStart);\n element.parentElement.appendChild(arrowEnd);\n }\n\n if (labelStart != \"\") {\n let htmlLabelStart: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelStart.innerHTML = labelStart;\n htmlLabelStart.style.position = \"absolute\";\n htmlLabelStart.style.left = `${x1}px`;\n htmlLabelStart.style.top = `${y1}px`;\n htmlLabelStart.style.width = `${labelStartWidth}px`;\n htmlLabelStart.style.border = `2px solid ${color}`;\n\n htmlLabelStart.classList.add(\"vc-item-nl-label\", \"label-start\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelStart);\n }\n }\n\n if (labelEnd != \"\") {\n let htmlLabelEnd: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelEnd.innerHTML = labelEnd;\n htmlLabelEnd.style.position = \"absolute\";\n htmlLabelEnd.style.left = `${x2}px`;\n htmlLabelEnd.style.top = `${y2}px`;\n htmlLabelEnd.style.width = `${labelEndWidth}px`;\n htmlLabelEnd.style.border = `2px solid ${color}`;\n\n htmlLabelEnd.classList.add(\"vc-item-nl-label\", \"label-end\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelEnd);\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n stringIsEmpty,\n decodeBase64,\n parseBoolean,\n t\n} from \"../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../Item\";\n\nexport type GroupProps = {\n type: ItemType.GROUP_ITEM;\n groupId: number;\n imageSrc: string | null; // URL?\n statusImageSrc: string | null;\n showStatistics: boolean;\n html?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\nfunction extractHtml(data: AnyObject): string | null {\n if (!stringIsEmpty(data.html)) return data.html;\n if (!stringIsEmpty(data.encodedHtml)) return decodeBase64(data.encodedHtml);\n return null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the group props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function groupPropsDecoder(data: AnyObject): GroupProps | never {\n if (\n (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) &&\n data.encodedHtml === null\n ) {\n throw new TypeError(\"invalid image src.\");\n }\n if (parseIntOr(data.groupId, null) === null) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n const showStatistics = parseBoolean(data.showStatistics);\n const html = showStatistics ? extractHtml(data) : null;\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.GROUP_ITEM,\n groupId: parseInt(data.groupId),\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n showStatistics,\n html,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\nexport default class Group extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"group\";\n\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n element.innerHTML = \"\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n }\n}\n","import \"./styles.css\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n Size,\n ItemMeta\n} from \"../../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n parseBoolean,\n prefixedCssRules,\n notEmptyStringOr,\n humanDate,\n humanTime,\n t\n} from \"../../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../../Item\";\n\nexport type ClockProps = {\n type: ItemType.CLOCK;\n clockType: \"analogic\" | \"digital\";\n clockFormat: \"datetime\" | \"time\";\n clockTimezone: string;\n clockTimezoneOffset: number; // Offset of the timezone to UTC in seconds.\n showClockTimezone: boolean;\n color?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockType Raw value.\n */\nconst parseClockType = (clockType: unknown): ClockProps[\"clockType\"] => {\n switch (clockType) {\n case \"analogic\":\n case \"digital\":\n return clockType;\n default:\n return \"analogic\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockFormat Raw value.\n */\nconst parseClockFormat = (clockFormat: unknown): ClockProps[\"clockFormat\"] => {\n switch (clockFormat) {\n case \"datetime\":\n case \"time\":\n return clockFormat;\n default:\n return \"datetime\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the clock props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function clockPropsDecoder(data: AnyObject): ClockProps | never {\n if (\n typeof data.clockTimezone !== \"string\" ||\n data.clockTimezone.length === 0\n ) {\n throw new TypeError(\"invalid timezone.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.CLOCK,\n clockType: parseClockType(data.clockType),\n clockFormat: parseClockFormat(data.clockFormat),\n clockTimezone: data.clockTimezone,\n clockTimezoneOffset: parseIntOr(data.clockTimezoneOffset, 0),\n showClockTimezone: parseBoolean(data.showClockTimezone),\n color: notEmptyStringOr(data.color, null),\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Clock extends Item {\n public static readonly TICK_INTERVAL = 1000; // In ms.\n private intervalRef: number | null = null;\n\n public constructor(props: ClockProps, meta: ItemMeta) {\n // Call the superclass constructor.\n super(props, meta);\n\n /* The item is already loaded and inserted into the DOM.\n * The class properties are now initialized.\n * Now you can modify the item, add event handlers, timers, etc.\n */\n\n /* The use of the arrow function is important here. startTick will\n * use the function passed as an argument to call the global setInterval\n * function. The interval, timeout or event functions, among other, are\n * called into another execution loop and using a different context.\n * The arrow functions, unlike the classic functions, doesn't create\n * their own context (this), so their context at execution time will be\n * use the current context at the declaration time.\n * http://es6-features.org/#Lexicalthis\n */\n this.startTick(\n () => {\n // Replace the old element with the updated date.\n this.childElementRef.innerHTML = this.createClock().innerHTML;\n },\n /* The analogic clock doesn't need to tick,\n * but it will be refreshed every 20 seconds\n * to avoid a desync caused by page freezes.\n */\n this.props.clockType === \"analogic\" ? 20000 : Clock.TICK_INTERVAL\n );\n }\n\n /**\n * Wrap a window.clearInterval call.\n */\n private stopTick(): void {\n if (this.intervalRef !== null) {\n window.clearInterval(this.intervalRef);\n this.intervalRef = null;\n }\n }\n\n /**\n * Wrap a window.setInterval call.\n * @param handler Function to be called every time the interval\n * timer is reached.\n * @param interval Number in milliseconds for the interval timer.\n */\n private startTick(\n handler: TimerHandler,\n interval: number = Clock.TICK_INTERVAL\n ): void {\n this.stopTick();\n this.intervalRef = window.setInterval(handler, interval);\n }\n\n /**\n * Create a element which contains the DOM representation of the item.\n * @return DOM Element.\n * @override\n */\n protected createDomElement(): HTMLElement | never {\n return this.createClock();\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n this.props.width,\n this.props.height\n );\n\n if (this.props.clockType === \"digital\") {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(this.props.width, this.props.height);\n }\n element.classList.replace(\"analogic-clock\", \"digital-clock\");\n } else {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(newWidth, newHeight);\n }\n element.classList.replace(\"digital-clock\", \"analogic-clock\");\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override\n */\n public remove(): void {\n // Clear the interval.\n this.stopTick();\n // Call to the parent clean function.\n super.remove();\n }\n\n /**\n * @override Item.resizeElement\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n width,\n height\n );\n\n // Re-render the item to force it calculate a new font size.\n if (this.props.clockType === \"digital\") {\n super.resizeElement(width, height);\n // Replace the old element with the updated date.\n //this.childElementRef.innerHTML = this.createClock().innerHTML;\n } else {\n super.resizeElement(newWidth, newHeight);\n }\n }\n\n /**\n * Create a element which contains a representation of a clock.\n * It choose between the clock types.\n * @return DOM Element.\n * @throws Error.\n */\n private createClock(): HTMLElement | never {\n switch (this.props.clockType) {\n case \"analogic\":\n return this.createAnalogicClock();\n case \"digital\":\n return this.createDigitalClock();\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n\n /**\n * Create a element which contains a representation of an analogic clock.\n * @return DOM Element.\n */\n private createAnalogicClock(): HTMLElement {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const colors = {\n watchFace: \"#FFFFF0\",\n watchFaceBorder: \"#242124\",\n mark: \"#242124\",\n handDark: \"#242124\",\n handLight: \"#525252\",\n secondHand: \"#DC143C\"\n };\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 20; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * width) / 100;\n\n const div = document.createElement(\"div\");\n div.className = \"analogic-clock\";\n div.style.width = `${width}px`;\n div.style.height = `${height}px`;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Clock face.\n const clockFace = document.createElementNS(svgNS, \"g\");\n clockFace.setAttribute(\"class\", \"clockface\");\n const clockFaceBackground = document.createElementNS(svgNS, \"circle\");\n clockFaceBackground.setAttribute(\"cx\", \"50\");\n clockFaceBackground.setAttribute(\"cy\", \"50\");\n clockFaceBackground.setAttribute(\"r\", \"48\");\n clockFaceBackground.setAttribute(\"fill\", colors.watchFace);\n clockFaceBackground.setAttribute(\"stroke\", colors.watchFaceBorder);\n clockFaceBackground.setAttribute(\"stroke-width\", \"2\");\n clockFaceBackground.setAttribute(\"stroke-linecap\", \"round\");\n // Insert the clockface background into the clockface group.\n clockFace.append(clockFaceBackground);\n\n // Timezone complication.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const timezoneComplication = document.createElementNS(svgNS, \"text\");\n timezoneComplication.setAttribute(\"text-anchor\", \"middle\");\n timezoneComplication.setAttribute(\"font-size\", \"8\");\n timezoneComplication.setAttribute(\n \"transform\",\n \"translate(30 50) rotate(90)\" // Rotate to counter the clock rotation.\n );\n timezoneComplication.setAttribute(\"fill\", colors.mark);\n timezoneComplication.textContent = city;\n clockFace.append(timezoneComplication);\n }\n\n // Marks group.\n const marksGroup = document.createElementNS(svgNS, \"g\");\n marksGroup.setAttribute(\"class\", \"marks\");\n // Build the 12 hours mark.\n const mainMarkGroup = document.createElementNS(svgNS, \"g\");\n mainMarkGroup.setAttribute(\"class\", \"mark\");\n mainMarkGroup.setAttribute(\"transform\", \"translate(50 50)\");\n const mark1a = document.createElementNS(svgNS, \"line\");\n mark1a.setAttribute(\"x1\", \"36\");\n mark1a.setAttribute(\"y1\", \"0\");\n mark1a.setAttribute(\"x2\", \"46\");\n mark1a.setAttribute(\"y2\", \"0\");\n mark1a.setAttribute(\"stroke\", colors.mark);\n mark1a.setAttribute(\"stroke-width\", \"5\");\n const mark1b = document.createElementNS(svgNS, \"line\");\n mark1b.setAttribute(\"x1\", \"36\");\n mark1b.setAttribute(\"y1\", \"0\");\n mark1b.setAttribute(\"x2\", \"46\");\n mark1b.setAttribute(\"y2\", \"0\");\n mark1b.setAttribute(\"stroke\", colors.watchFace);\n mark1b.setAttribute(\"stroke-width\", \"1\");\n // Insert the 12 mark lines into their group.\n mainMarkGroup.append(mark1a, mark1b);\n // Insert the main mark into the marks group.\n marksGroup.append(mainMarkGroup);\n // Build the rest of the marks.\n for (let i = 1; i < 60; i++) {\n const mark = document.createElementNS(svgNS, \"line\");\n mark.setAttribute(\"y1\", \"0\");\n mark.setAttribute(\"y2\", \"0\");\n mark.setAttribute(\"stroke\", colors.mark);\n mark.setAttribute(\"transform\", `translate(50 50) rotate(${i * 6})`);\n\n if (i % 5 === 0) {\n mark.setAttribute(\"x1\", \"38\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", i % 15 === 0 ? \"2\" : \"1\");\n } else {\n mark.setAttribute(\"x1\", \"42\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", \"0.5\");\n }\n\n // Insert the mark into the marks group.\n marksGroup.append(mark);\n }\n\n /* Clock hands */\n\n // Hour hand.\n const hourHand = document.createElementNS(svgNS, \"g\");\n hourHand.setAttribute(\"class\", \"hour-hand\");\n hourHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const hourHandA = document.createElementNS(svgNS, \"line\");\n hourHandA.setAttribute(\"class\", \"hour-hand-a\");\n hourHandA.setAttribute(\"x1\", \"0\");\n hourHandA.setAttribute(\"y1\", \"0\");\n hourHandA.setAttribute(\"x2\", \"30\");\n hourHandA.setAttribute(\"y2\", \"0\");\n hourHandA.setAttribute(\"stroke\", colors.handLight);\n hourHandA.setAttribute(\"stroke-width\", \"4\");\n hourHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const hourHandB = document.createElementNS(svgNS, \"line\");\n hourHandB.setAttribute(\"class\", \"hour-hand-b\");\n hourHandB.setAttribute(\"x1\", \"0\");\n hourHandB.setAttribute(\"y1\", \"0\");\n hourHandB.setAttribute(\"x2\", \"29.9\");\n hourHandB.setAttribute(\"y2\", \"0\");\n hourHandB.setAttribute(\"stroke\", colors.handDark);\n hourHandB.setAttribute(\"stroke-width\", \"3.1\");\n hourHandB.setAttribute(\"stroke-linecap\", \"round\");\n // Append the elements to finish the hour hand.\n hourHand.append(hourHandA, hourHandB);\n\n // Minute hand.\n const minuteHand = document.createElementNS(svgNS, \"g\");\n minuteHand.setAttribute(\"class\", \"minute-hand\");\n minuteHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const minuteHandA = document.createElementNS(svgNS, \"line\");\n minuteHandA.setAttribute(\"class\", \"minute-hand-a\");\n minuteHandA.setAttribute(\"x1\", \"0\");\n minuteHandA.setAttribute(\"y1\", \"0\");\n minuteHandA.setAttribute(\"x2\", \"40\");\n minuteHandA.setAttribute(\"y2\", \"0\");\n minuteHandA.setAttribute(\"stroke\", colors.handLight);\n minuteHandA.setAttribute(\"stroke-width\", \"2\");\n minuteHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const minuteHandB = document.createElementNS(svgNS, \"line\");\n minuteHandB.setAttribute(\"class\", \"minute-hand-b\");\n minuteHandB.setAttribute(\"x1\", \"0\");\n minuteHandB.setAttribute(\"y1\", \"0\");\n minuteHandB.setAttribute(\"x2\", \"39.9\");\n minuteHandB.setAttribute(\"y2\", \"0\");\n minuteHandB.setAttribute(\"stroke\", colors.handDark);\n minuteHandB.setAttribute(\"stroke-width\", \"1.5\");\n minuteHandB.setAttribute(\"stroke-linecap\", \"round\");\n const minuteHandPin = document.createElementNS(svgNS, \"circle\");\n minuteHandPin.setAttribute(\"r\", \"3\");\n minuteHandPin.setAttribute(\"fill\", colors.handDark);\n // Append the elements to finish the minute hand.\n minuteHand.append(minuteHandA, minuteHandB, minuteHandPin);\n\n // Second hand.\n const secondHand = document.createElementNS(svgNS, \"g\");\n secondHand.setAttribute(\"class\", \"second-hand\");\n secondHand.setAttribute(\"transform\", \"translate(50 50)\");\n const secondHandBar = document.createElementNS(svgNS, \"line\");\n secondHandBar.setAttribute(\"x1\", \"0\");\n secondHandBar.setAttribute(\"y1\", \"0\");\n secondHandBar.setAttribute(\"x2\", \"46\");\n secondHandBar.setAttribute(\"y2\", \"0\");\n secondHandBar.setAttribute(\"stroke\", colors.secondHand);\n secondHandBar.setAttribute(\"stroke-width\", \"1\");\n secondHandBar.setAttribute(\"stroke-linecap\", \"round\");\n const secondHandPin = document.createElementNS(svgNS, \"circle\");\n secondHandPin.setAttribute(\"r\", \"2\");\n secondHandPin.setAttribute(\"fill\", colors.secondHand);\n // Append the elements to finish the second hand.\n secondHand.append(secondHandBar, secondHandPin);\n\n // Pin.\n const pin = document.createElementNS(svgNS, \"circle\");\n pin.setAttribute(\"cx\", \"50\");\n pin.setAttribute(\"cy\", \"50\");\n pin.setAttribute(\"r\", \"0.3\");\n pin.setAttribute(\"fill\", colors.handDark);\n\n // Get the hand angles.\n const date = this.getOriginDate();\n const seconds = date.getSeconds();\n const minutes = date.getMinutes();\n const hours = date.getHours();\n const secAngle = (360 / 60) * seconds;\n const minuteAngle = (360 / 60) * minutes + (360 / 60) * (seconds / 60);\n const hourAngle = (360 / 12) * hours + (360 / 12) * (minutes / 60);\n // Set the clock time by moving the hands.\n hourHand.setAttribute(\"transform\", `translate(50 50) rotate(${hourAngle})`);\n minuteHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${minuteAngle})`\n );\n secondHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${secAngle})`\n );\n\n // Build the clock\n svg.append(clockFace, marksGroup, hourHand, minuteHand, secondHand, pin);\n // Rotate the clock to its normal position.\n svg.setAttribute(\"transform\", \"rotate(-90)\");\n\n /* Add the animation declaration to the container.\n * Since the animation keyframes need to know the\n * start angle, this angle is dynamic (current time),\n * and we can't edit keyframes through javascript\n * safely and with backwards compatibility, we need\n * to inject it.\n */\n div.innerHTML = `\n \n `;\n // Add the clock to the container\n div.append(svg);\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n div.append(dateElem);\n }\n\n return div;\n }\n\n /**\n * Create a element which contains a representation of a digital clock.\n * @return DOM Element.\n */\n private createDigitalClock(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"digital-clock\";\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n let modified = width;\n if (height < width) {\n modified = height;\n }\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 35; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const tzFontSizeMultiplier = 6 / this.props.clockTimezone.length;\n const timeFontSize = (baseTimeFontSize * modified) / 100;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * modified) / 100;\n const tzFontSize = Math.min(\n (baseTimeFontSize * tzFontSizeMultiplier * modified) / 100,\n (width / 100) * 10\n );\n\n // Date calculated using the original timezone.\n const date = this.getOriginDate();\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n element.append(dateElem);\n }\n\n // Time.\n const timeElem: HTMLSpanElement = document.createElement(\"span\");\n timeElem.className = \"time\";\n timeElem.textContent = humanTime(date);\n timeElem.style.fontSize = `${timeFontSize}px`;\n if (this.props.color) timeElem.style.color = this.props.color;\n element.append(timeElem);\n\n // City name.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const tzElem: HTMLSpanElement = document.createElement(\"span\");\n tzElem.className = \"timezone\";\n tzElem.textContent = city;\n tzElem.style.fontSize = `${tzFontSize}px`;\n if (this.props.color) tzElem.style.color = this.props.color;\n element.append(tzElem);\n }\n\n return element;\n }\n\n /**\n * Generate the current date using the timezone offset stored into the properties.\n * @return The current date.\n */\n private getOriginDate(initialDate: Date | null = null): Date {\n const d = initialDate ? initialDate : new Date();\n const targetTZOffset = this.props.clockTimezoneOffset * 1000; // In ms.\n const localTZOffset = d.getTimezoneOffset() * 60 * 1000; // In ms.\n const utimestamp = d.getTime() + targetTZOffset + localTZOffset;\n\n return new Date(utimestamp);\n }\n\n /**\n * Extract a human readable city name from the timezone text.\n * @param timezone Timezone text.\n */\n public getHumanTimezone(timezone: string = this.props.clockTimezone): string {\n const [, city = \"\"] = timezone.split(\"/\");\n return city.replace(\"_\", \" \");\n }\n\n /**\n * Generate a element size using the current size and the default values.\n * @return The size.\n */\n private getElementSize(\n width: number = this.props.width,\n height: number = this.props.height\n ): Size {\n switch (this.props.clockType) {\n case \"analogic\": {\n let diameter = 100; // Default value.\n\n if (width > 0 && height > 0) {\n diameter = Math.min(width, height);\n } else if (width > 0) {\n diameter = width;\n } else if (height > 0) {\n diameter = height;\n }\n\n let extraHeigth = 0;\n if (this.props.clockFormat === \"datetime\") {\n extraHeigth = height / 8;\n }\n\n return {\n width: diameter,\n height: diameter + extraHeigth\n };\n }\n case \"digital\": {\n if (width > 0 && height > 0) {\n // The proportion of the clock should be (width = height / 2) aproximately.\n height = width / 2 < height ? width / 2 : height;\n } else if (width > 0) {\n height = width / 2;\n } else if (height > 0) {\n // The proportion of the clock should be (height * 2 = width) aproximately.\n width = height * 2;\n } else {\n width = 100; // Default value.\n height = 50; // Default value.\n }\n\n return {\n width,\n height\n };\n }\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport { parseIntOr, notEmptyStringOr, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\ninterface BoxProps extends ItemProps {\n // Overrided properties.\n readonly type: ItemType.BOX_ITEM;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n borderWidth: number;\n borderColor: string | null;\n fillColor: string | null;\n fillTransparent: boolean | null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function boxPropsDecoder(data: AnyObject): BoxProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BOX_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Custom properties.\n borderWidth: parseIntOr(data.borderWidth, 0),\n borderColor: notEmptyStringOr(data.borderColor, null),\n fillColor: notEmptyStringOr(data.fillColor, null),\n fillTransparent: data.fillTransparent\n };\n}\n\nexport default class Box extends Item {\n protected createDomElement(): HTMLElement {\n const box: HTMLDivElement = document.createElement(\"div\");\n box.className = \"box\";\n // To prevent this item to expand beyond its parent.\n box.style.boxSizing = \"border-box\";\n\n if (this.props.fillTransparent) {\n box.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n box.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n box.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n box.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n box.style.borderColor = this.props.borderColor;\n }\n }\n\n return box;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.fillTransparent) {\n element.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n element.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n element.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n element.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n element.style.borderColor = this.props.borderColor;\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type LabelProps = {\n type: ItemType.LABEL;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the label props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function labelPropsDecoder(data: AnyObject): LabelProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LABEL,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Label extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"label\";\n element.innerHTML = this.getLabelWithMacrosReplaced();\n\n return element;\n }\n\n /**\n * @override Item.createLabelDomElement\n * Create a new label for the visual console item.\n * @return Item label.\n */\n public createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n modulePropsDecoder,\n replaceMacros\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type SimpleValueProps = {\n type: ItemType.SIMPLE_VALUE;\n valueType: \"string\" | \"image\";\n value: string;\n} & (\n | {\n processValue: \"none\";\n }\n | {\n processValue: \"avg\" | \"max\" | \"min\";\n period: number;\n }\n) &\n ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw value type.\n * @param valueType Raw value.\n */\nconst parseValueType = (valueType: unknown): SimpleValueProps[\"valueType\"] => {\n switch (valueType) {\n case \"string\":\n case \"image\":\n return valueType;\n default:\n return \"string\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw process value.\n * @param processValue Raw value.\n */\nconst parseProcessValue = (\n processValue: unknown\n): SimpleValueProps[\"processValue\"] => {\n switch (processValue) {\n case \"none\":\n case \"avg\":\n case \"max\":\n case \"min\":\n return processValue;\n default:\n return \"none\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the simple value props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function simpleValuePropsDecoder(\n data: AnyObject\n): SimpleValueProps | never {\n if (typeof data.value !== \"string\" || data.value.length === 0) {\n throw new TypeError(\"invalid value\");\n }\n\n const processValue = parseProcessValue(data.processValue);\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SIMPLE_VALUE,\n valueType: parseValueType(data.valueType),\n value: data.value,\n ...(processValue === \"none\"\n ? { processValue }\n : { processValue, period: parseIntOr(data.period, 0) }), // Object spread. It will merge the properties of the two objects.\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class SimpleValue extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"simple-value\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n if (this.props.valueType === \"image\") {\n const img = document.createElement(\"img\");\n img.src = this.props.value;\n element.append(img);\n } else {\n // Add the value to the label and show it.\n let text = this.props.value;\n let label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n text = replaceMacros([{ macro: /\\(?_VALUE_\\)?/i, value: text }], label);\n }\n\n element.innerHTML = text;\n }\n\n return element;\n }\n\n /**\n * Generate a element size\n * using the current size and the default values.\n * @return The size.\n */ protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { arc as arcFactory } from \"d3-shape\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n notEmptyStringOr,\n parseIntOr,\n parseFloatOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type PercentileProps = {\n type: ItemType.PERCENTILE_BAR;\n percentileType:\n | \"progress-bar\"\n | \"bubble\"\n | \"circular-progress-bar\"\n | \"circular-progress-bar-alt\";\n valueType: \"percent\" | \"value\";\n minValue: number | null;\n maxValue: number | null;\n color: string | null;\n labelColor: string | null;\n value: number | null;\n unit: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw type value.\n * @param type Raw value.\n */\nfunction extractPercentileType(\n type: unknown\n): PercentileProps[\"percentileType\"] {\n switch (type) {\n case \"progress-bar\":\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n return type;\n default:\n case ItemType.PERCENTILE_BAR:\n return \"progress-bar\";\n case ItemType.PERCENTILE_BUBBLE:\n return \"bubble\";\n case ItemType.CIRCULAR_PROGRESS_BAR:\n return \"circular-progress-bar\";\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return \"circular-progress-bar-alt\";\n }\n}\n\n/**\n * Extract a valid enum value from a raw value type value.\n * @param type Raw value.\n */\nfunction extractValueType(valueType: unknown): PercentileProps[\"valueType\"] {\n switch (valueType) {\n case \"percent\":\n case \"value\":\n return valueType;\n default:\n return \"percent\";\n }\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the percentile props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function percentilePropsDecoder(\n data: AnyObject\n): PercentileProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.PERCENTILE_BAR,\n percentileType: extractPercentileType(data.percentileType || data.type),\n valueType: extractValueType(data.valueType),\n minValue: parseIntOr(data.minValue, null),\n maxValue: parseIntOr(data.maxValue, null),\n color: notEmptyStringOr(data.color, null),\n labelColor: notEmptyStringOr(data.labelColor, null),\n value: parseFloatOr(data.value, null),\n unit: notEmptyStringOr(data.unit, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class Percentile extends Item {\n protected createDomElement(): HTMLElement {\n const colors = {\n background: \"#000000\",\n progress: this.props.color || \"#F0F0F0\",\n text: this.props.labelColor || \"#444444\"\n };\n // Progress.\n const progress = this.getProgress();\n // Main element.\n const element = document.createElement(\"div\");\n\n var formatValue;\n if (this.props.value != null) {\n if (Intl) {\n formatValue = Intl.NumberFormat(\"en-EN\").format(this.props.value);\n } else {\n formatValue = this.props.value;\n }\n }\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n\n switch (this.props.percentileType) {\n case \"progress-bar\":\n {\n const backgroundRect = document.createElementNS(svgNS, \"rect\");\n backgroundRect.setAttribute(\"fill\", colors.background);\n backgroundRect.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundRect.setAttribute(\"width\", \"100%\");\n backgroundRect.setAttribute(\"height\", \"100%\");\n backgroundRect.setAttribute(\"rx\", \"5\");\n backgroundRect.setAttribute(\"ry\", \"5\");\n const progressRect = document.createElementNS(svgNS, \"rect\");\n progressRect.setAttribute(\"fill\", colors.progress);\n progressRect.setAttribute(\"fill-opacity\", \"1\");\n progressRect.setAttribute(\"width\", `${progress}%`);\n progressRect.setAttribute(\"height\", \"100%\");\n progressRect.setAttribute(\"rx\", \"5\");\n progressRect.setAttribute(\"ry\", \"5\");\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"15\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\n \"transform\",\n `translate(${this.props.width / 2}, 17.5)`\n );\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\") {\n text.style.fontSize = \"6pt\";\n\n text.textContent = this.props.unit\n ? `${formatValue} ${this.props.unit}`\n : `${formatValue}`;\n } else {\n text.textContent = `${progress}%`;\n }\n\n svg.setAttribute(\"width\", \"100%\");\n svg.setAttribute(\"height\", \"100%\");\n svg.append(backgroundRect, progressRect, text);\n }\n break;\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n {\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n if (this.props.percentileType === \"bubble\") {\n // Create and append the circles.\n const backgroundCircle = document.createElementNS(svgNS, \"circle\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"r\", \"50\");\n const progressCircle = document.createElementNS(svgNS, \"circle\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\"r\", `${progress / 2}`);\n\n svg.append(backgroundCircle, progressCircle);\n } else {\n // Create and append the circles.\n const arcProps = {\n innerRadius:\n this.props.percentileType === \"circular-progress-bar\" ? 30 : 0,\n outerRadius: 50,\n startAngle: 0,\n endAngle: Math.PI * 2\n };\n const arc = arcFactory();\n\n const backgroundCircle = document.createElementNS(svgNS, \"path\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"d\", `${arc(arcProps)}`);\n const progressCircle = document.createElementNS(svgNS, \"path\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\n \"d\",\n `${arc({\n ...arcProps,\n endAngle: arcProps.endAngle * (progress / 100)\n })}`\n );\n\n svg.append(backgroundCircle, progressCircle);\n }\n\n // Create and append the text.\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"16\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\" && this.props.value != null) {\n // Show value and unit in 1 (no unit) or 2 lines.\n if (this.props.unit && this.props.unit.length > 0) {\n const value = document.createElementNS(svgNS, \"tspan\");\n value.setAttribute(\"x\", \"0\");\n value.setAttribute(\"dy\", \"1em\");\n value.textContent = `${formatValue}`;\n value.style.fontSize = \"8pt\";\n const unit = document.createElementNS(svgNS, \"tspan\");\n unit.setAttribute(\"x\", \"0\");\n unit.setAttribute(\"dy\", \"1em\");\n unit.textContent = `${this.props.unit}`;\n unit.style.fontSize = \"8pt\";\n text.append(value, unit);\n text.setAttribute(\"transform\", \"translate(50 33)\");\n } else {\n text.textContent = `${formatValue}`;\n text.style.fontSize = \"8pt\";\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n } else {\n // Percentage.\n text.textContent = `${progress}%`;\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n\n svg.append(text);\n }\n break;\n }\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n if (svg !== null) element.append(svg);\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.meta.isBeingResized === false) {\n this.resizeElement(this.props.width, this.props.height);\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected resizeElement(width: number, height: number): void {\n if (this.props.percentileType === \"progress-bar\") {\n super.resizeElement(width, 35);\n } else {\n super.resizeElement(width, width);\n }\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(width, width);\n let height = this.props.maxValue || 0;\n if (this.props.percentileType === \"progress-bar\") {\n height = 35;\n }\n super.setProps({\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n });\n }\n\n private getProgress(): number {\n const minValue = this.props.minValue || 0;\n const maxValue = this.props.maxValue || 100;\n const value = this.props.value == null ? 0 : this.props.value;\n\n if (value <= minValue) return 0;\n else if (value >= maxValue) return 100;\n else return Math.trunc(((value - minValue) / (maxValue - minValue)) * 100);\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport {\n stringIsEmpty,\n notEmptyStringOr,\n decodeBase64,\n parseIntOr,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport {\n faCircleNotch,\n faExclamationCircle\n} from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ServiceProps = {\n type: ItemType.SERVICE;\n serviceId: number;\n imageSrc: string | null;\n statusImageSrc: string | null;\n encodedTitle: string | null;\n} & ItemProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the service props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function servicePropsDecoder(data: AnyObject): ServiceProps | never {\n if (data.imageSrc !== null) {\n if (\n typeof data.statusImageSrc !== \"string\" ||\n data.imageSrc.statusImageSrc === 0\n ) {\n throw new TypeError(\"invalid status image src.\");\n }\n } else {\n if (stringIsEmpty(data.encodedTitle)) {\n throw new TypeError(\"missing encode tittle content.\");\n }\n }\n\n if (parseIntOr(data.serviceId, null) === null) {\n throw new TypeError(\"invalid service id.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SERVICE,\n serviceId: data.serviceId,\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n encodedTitle: notEmptyStringOr(data.encodedTitle, null)\n };\n}\n\nexport default class Service extends Item {\n public createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"service\";\n\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n element.innerHTML = \"\";\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\n\nimport { modulePropsDecoder, parseIntOr, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type OdometerProps = {\n type: ItemType.ODOMETER;\n value: number;\n status: string;\n title: string | null;\n titleModule: string;\n titleColor: string;\n odometerType: string;\n thresholds: string | any;\n minMaxValue: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function odometerPropsDecoder(data: AnyObject): OdometerProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ODOMETER,\n value: parseIntOr(data.value, 0),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n titleColor: stringIsEmpty(data.titleColor) ? \"#3f3f3f\" : data.titleColor,\n title: stringIsEmpty(data.title) ? \"\" : data.title,\n titleModule: stringIsEmpty(data.titleModule) ? \"\" : data.titleModule,\n thresholds: stringIsEmpty(data.thresholds) ? \"\" : data.thresholds,\n minMaxValue: stringIsEmpty(data.minMaxValue) ? \"\" : data.minMaxValue,\n odometerType: stringIsEmpty(data.odometerType)\n ? \"percent\"\n : data.odometerType,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Odometer extends Item {\n protected createDomElement(): HTMLElement {\n let lineWarning = \"\";\n let lineWarning2 = \"\";\n let lineCritical = \"\";\n let lineCritical2 = \"\";\n\n if (this.props.thresholds !== \"\") {\n const thresholds = JSON.parse(this.props.thresholds);\n\n if (thresholds !== null) {\n if (thresholds.min_warning != 0 || thresholds.max_warning != 0) {\n lineWarning = this.getCoords(\n thresholds.min_warning,\n this.props.width / 2\n );\n if (thresholds.max_warning == 0) {\n lineWarning2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineWarning2 = this.getCoords(\n thresholds.max_warning,\n this.props.width / 2\n );\n }\n }\n\n if (thresholds.min_critical != 0 || thresholds.max_critical != 0) {\n lineCritical = this.getCoords(\n thresholds.min_critical,\n this.props.width / 2\n );\n if (thresholds.max_critical == 0) {\n lineCritical2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineCritical2 = this.getCoords(\n thresholds.max_critical,\n this.props.width / 2\n );\n }\n }\n }\n }\n\n let percent = \"\";\n let number;\n // Float\n if (\n Number(this.props.value) === this.props.value &&\n this.props.value % 1 !== 0\n ) {\n number = this.props.value.toFixed(1);\n } else {\n if (this.props.minMaxValue === \"\") {\n percent = \" %\";\n } else {\n percent = this.getSubfix(this.props.value);\n }\n number = new Intl.NumberFormat(\"es\", {\n maximumSignificantDigits: 4,\n maximumFractionDigits: 3\n }).format(this.props.value);\n }\n\n var numb = number.match(/\\d*\\.\\d/);\n if (numb !== null) {\n number = numb[0];\n }\n\n const rotate = this.getRotate(this.props.value);\n\n let backgroundColor = document.getElementById(\n \"visual-console-container\"\n ) as HTMLElement;\n\n if (backgroundColor === null) {\n backgroundColor = document.getElementById(\n `visual-console-container-${this.props.cellId}`\n ) as HTMLElement;\n }\n\n if (backgroundColor.style.backgroundColor == \"\") {\n backgroundColor.style.backgroundColor = \"#fff\";\n }\n\n const anchoB = this.props.width * 0.7;\n\n const element = document.createElement(\"div\");\n element.className = \"odometer\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Odometer container.\n const odometerContainer = document.createElement(\"div\");\n odometerContainer.className = \"odometer-container\";\n\n // Central semicircle.\n const odometerA = document.createElement(\"div\");\n odometerA.className = \"odometer-a\";\n odometerA.style.backgroundColor = `${backgroundColor.style.backgroundColor}`;\n\n // Semicircle rotating with the value.\n const odometerB = document.createElement(\"div\");\n odometerB.className = \"odometer-b\";\n odometerB.id = `odometerB-${this.props.id}`;\n odometerB.style.backgroundColor = `${this.props.status}`;\n\n // Dark semicircle.\n const odometerC = document.createElement(\"div\");\n odometerC.className = \"odometer-c\";\n\n // Green outer semicircle.\n const gaugeE = document.createElement(\"div\");\n gaugeE.className = \"odometer-d\";\n\n const SVG_NS = \"http://www.w3.org/2000/svg\";\n // Portion of threshold warning\n if (lineWarning != \"\") {\n const svgWarning = document.createElementNS(SVG_NS, \"svg\");\n svgWarning.setAttributeNS(null, \"width\", \"100%\");\n svgWarning.setAttributeNS(null, \"height\", \"100%\");\n svgWarning.setAttributeNS(null, \"style\", \"position:absolute;z-index:1\");\n const pathWarning = document.createElementNS(SVG_NS, \"path\");\n pathWarning.setAttributeNS(null, \"id\", `svgWarning-${this.props.id}`);\n pathWarning.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineWarning}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineWarning2}Z`\n );\n pathWarning.setAttributeNS(null, \"class\", \"svg_warning\");\n svgWarning.appendChild(pathWarning);\n odometerContainer.appendChild(svgWarning);\n }\n\n // Portion of threshold critical\n if (lineCritical != \"\") {\n const svgCritical = document.createElementNS(SVG_NS, \"svg\");\n svgCritical.setAttributeNS(null, \"width\", \"100%\");\n svgCritical.setAttributeNS(null, \"height\", \"100%\");\n svgCritical.setAttributeNS(null, \"style\", \"position:absolute;z-index:2\");\n const pathCritical = document.createElementNS(SVG_NS, \"path\");\n pathCritical.setAttributeNS(null, \"id\", `svgCritical-${this.props.id}`);\n pathCritical.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineCritical}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineCritical2}Z`\n );\n pathCritical.setAttributeNS(null, \"fill\", \"#E63C52\");\n svgCritical.appendChild(pathCritical);\n odometerContainer.appendChild(svgCritical);\n }\n\n // Text.\n const h1 = document.createElement(\"h1\");\n h1.innerText = number + percent;\n h1.style.fontSize = `${anchoB * 0.17}px`;\n h1.style.color = `${this.props.status}`;\n h1.style.lineHeight = \"0\";\n\n const h2 = document.createElement(\"h2\");\n if (this.props.title == \"\") {\n h2.textContent = this.truncateTitle(this.props.moduleName);\n } else {\n h2.textContent = this.truncateTitle(this.props.title);\n }\n h2.title = this.props.titleModule;\n h2.setAttribute(\"title\", this.props.titleModule);\n\n h2.style.fontSize = `${anchoB * 0.06}px`;\n h2.style.color = `${this.props.titleColor}`;\n h2.style.lineHeight = \"0\";\n\n let script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.onload = () => {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n };\n var url_pandora = window.location.pathname.split(\"/\")[1];\n script.src = `${document.dir}/${url_pandora}/include/javascript/pandora_alerts.js`;\n odometerA.appendChild(h1);\n odometerA.appendChild(h2);\n odometerContainer.appendChild(odometerB);\n odometerContainer.appendChild(odometerC);\n odometerContainer.appendChild(gaugeE);\n odometerContainer.appendChild(odometerA);\n odometerContainer.appendChild(script);\n element.appendChild(odometerContainer);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n\n let rotate = this.getRotate(this.props.value);\n\n const svgWarning = document.getElementById(`svgWarning-${this.props.id}`);\n if (svgWarning != null) {\n svgWarning.style.display = \"none\";\n }\n\n const svgCritical = document.getElementById(`svgCritical-${this.props.id}`);\n if (svgCritical != null) {\n svgCritical.style.display = \"none\";\n }\n\n setTimeout(() => {\n if (svgWarning != null) {\n svgWarning.style.display = \"block\";\n }\n\n if (svgCritical != null) {\n svgCritical.style.display = \"block\";\n }\n\n var odometerB = document.getElementById(`odometerB-${this.props.id}`);\n if (odometerB) {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n }\n }, 500);\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width / 2);\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(this.props.width);\n }\n\n private getRotate(value: number): number {\n let rotate = 0;\n if (this.props.minMaxValue === \"\") {\n rotate = value / 2 / 100;\n } else {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === value) {\n rotate = 0;\n } else if (minMax[\"max\"] === value) {\n rotate = 0.5;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n const valueMax = minMax[\"max\"] - value;\n rotate = (100 - (valueMax * 100) / limit) / 100 / 2;\n }\n }\n\n return rotate;\n }\n\n private getSubfix(value: number): string {\n let subfix = \"\";\n const length = (value + \"\").length;\n if (length > 3 && length <= 6) {\n subfix = \" K\";\n } else if (length > 6 && length <= 9) {\n subfix = \" M\";\n } else if (length > 9 && length <= 12) {\n subfix = \" G\";\n } else if (length > 12 && length <= 15) {\n subfix = \" T\";\n }\n\n return subfix;\n }\n\n private getCoords(percent: number, radio: number): string {\n if (this.props.minMaxValue !== \"\") {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === percent) {\n percent = 0;\n } else if (minMax[\"max\"] === percent || percent === 100) {\n percent = 100;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n let valueMax = minMax[\"max\"] - percent;\n percent = 100 - (valueMax * 100) / limit;\n }\n }\n\n percent = 180 - percent * 1.8;\n const x = radio + Math.cos((percent * Math.PI) / 180) * radio;\n const y = radio - Math.sin((percent * Math.PI) / 180) * radio;\n return `${x},${y}`;\n }\n\n private truncateTitle(title: any): string {\n if (title != null && title.length > 22) {\n const halfLength = title.length / 2;\n const diff = halfLength - 9;\n const stringBefore = title.substr(0, halfLength - diff);\n const stringAfter = title.substr(halfLength + diff);\n\n return `${stringBefore}...${stringAfter}`;\n } else {\n return title;\n }\n }\n}\n","import { AnyObject, Size, Position, WithModuleProps } from \"./lib/types\";\nimport {\n parseBoolean,\n sizePropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n itemMetaDecoder,\n t,\n ellipsize,\n debounce\n} from \"./lib\";\nimport Item, {\n ItemType,\n ItemProps,\n ItemClickEvent,\n ItemRemoveEvent,\n ItemMovedEvent,\n ItemResizedEvent,\n ItemSelectionChangedEvent\n} from \"./Item\";\nimport StaticGraph, { staticGraphPropsDecoder } from \"./items/StaticGraph\";\nimport Icon, { iconPropsDecoder } from \"./items/Icon\";\nimport ColorCloud, { colorCloudPropsDecoder } from \"./items/ColorCloud\";\nimport NetworkLink, { networkLinkPropsDecoder } from \"./items/NetworkLink\";\nimport Group, { groupPropsDecoder } from \"./items/Group\";\nimport Clock, { clockPropsDecoder } from \"./items/Clock\";\nimport Box, { boxPropsDecoder } from \"./items/Box\";\nimport Line, { linePropsDecoder, LineMovedEvent } from \"./items/Line\";\nimport Label, { labelPropsDecoder } from \"./items/Label\";\nimport SimpleValue, { simpleValuePropsDecoder } from \"./items/SimpleValue\";\nimport EventsHistory, {\n eventsHistoryPropsDecoder\n} from \"./items/EventsHistory\";\nimport Percentile, { percentilePropsDecoder } from \"./items/Percentile\";\nimport TypedEvent, { Disposable, Listener } from \"./lib/TypedEvent\";\nimport DonutGraph, { donutGraphPropsDecoder } from \"./items/DonutGraph\";\nimport BarsGraph, { barsGraphPropsDecoder } from \"./items/BarsGraph\";\nimport ModuleGraph, { moduleGraphPropsDecoder } from \"./items/ModuleGraph\";\nimport Service, { servicePropsDecoder } from \"./items/Service\";\nimport Odometer, { odometerPropsDecoder } from \"./items/Odometer\";\nimport BasicChart, { basicChartPropsDecoder } from \"./items/BasicChart\";\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction itemInstanceFrom(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n const meta = itemMetaDecoder(data);\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return new StaticGraph(staticGraphPropsDecoder(data), meta);\n case ItemType.MODULE_GRAPH:\n return new ModuleGraph(moduleGraphPropsDecoder(data), meta);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return new SimpleValue(simpleValuePropsDecoder(data), meta);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return new Percentile(percentilePropsDecoder(data), meta);\n case ItemType.LABEL:\n return new Label(labelPropsDecoder(data), meta);\n case ItemType.ICON:\n return new Icon(iconPropsDecoder(data), meta);\n case ItemType.SERVICE:\n return new Service(servicePropsDecoder(data), meta);\n case ItemType.GROUP_ITEM:\n return new Group(groupPropsDecoder(data), meta);\n case ItemType.BOX_ITEM:\n return new Box(boxPropsDecoder(data), meta);\n case ItemType.LINE_ITEM:\n return new Line(linePropsDecoder(data), meta);\n case ItemType.AUTO_SLA_GRAPH:\n return new EventsHistory(eventsHistoryPropsDecoder(data), meta);\n case ItemType.DONUT_GRAPH:\n return new DonutGraph(donutGraphPropsDecoder(data), meta);\n case ItemType.BARS_GRAPH:\n return new BarsGraph(barsGraphPropsDecoder(data), meta);\n case ItemType.CLOCK:\n return new Clock(clockPropsDecoder(data), meta);\n case ItemType.COLOR_CLOUD:\n return new ColorCloud(colorCloudPropsDecoder(data), meta);\n case ItemType.NETWORK_LINK:\n return new NetworkLink(networkLinkPropsDecoder(data), meta);\n case ItemType.ODOMETER:\n return new Odometer(odometerPropsDecoder(data), meta);\n case ItemType.BASIC_CHART:\n return new BasicChart(basicChartPropsDecoder(data), meta);\n default:\n throw new TypeError(\"item not found\");\n }\n}\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction decodeProps(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return staticGraphPropsDecoder(data);\n case ItemType.MODULE_GRAPH:\n return moduleGraphPropsDecoder(data);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return simpleValuePropsDecoder(data);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return percentilePropsDecoder(data);\n case ItemType.LABEL:\n return labelPropsDecoder(data);\n case ItemType.ICON:\n return iconPropsDecoder(data);\n case ItemType.SERVICE:\n return servicePropsDecoder(data);\n case ItemType.GROUP_ITEM:\n return groupPropsDecoder(data);\n case ItemType.BOX_ITEM:\n return boxPropsDecoder(data);\n case ItemType.LINE_ITEM:\n return linePropsDecoder(data);\n case ItemType.AUTO_SLA_GRAPH:\n return eventsHistoryPropsDecoder(data);\n case ItemType.DONUT_GRAPH:\n return donutGraphPropsDecoder(data);\n case ItemType.BARS_GRAPH:\n return barsGraphPropsDecoder(data);\n case ItemType.CLOCK:\n return clockPropsDecoder(data);\n case ItemType.COLOR_CLOUD:\n return colorCloudPropsDecoder(data);\n case ItemType.NETWORK_LINK:\n return networkLinkPropsDecoder(data);\n case ItemType.ODOMETER:\n return odometerPropsDecoder(data);\n case ItemType.BASIC_CHART:\n return basicChartPropsDecoder(data);\n default:\n throw new TypeError(\"decoder not found\");\n }\n}\n\n// Base properties.\nexport interface VisualConsoleProps extends Size {\n readonly id: number;\n name: string;\n groupId: number;\n backgroundURL: string | null; // URL?\n backgroundColor: string | null;\n isFavorite: boolean;\n relationLineWidth: number;\n maintenanceMode: MaintenanceModeInterface | null;\n gridSize: number | 10;\n gridSelected: boolean | false | false;\n}\n\nexport interface MaintenanceModeInterface {\n user: string;\n timestamp: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the Visual Console props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function visualConsolePropsDecoder(\n data: AnyObject\n): VisualConsoleProps | never {\n // Object destructuring: http://es6-features.org/#ObjectMatchingShorthandNotation\n const {\n id,\n name,\n groupId,\n backgroundURL,\n backgroundColor,\n isFavorite,\n relationLineWidth,\n maintenanceMode,\n gridSize,\n gridSelected\n } = data;\n\n if (id == null || isNaN(parseInt(id))) {\n throw new TypeError(\"invalid Id.\");\n }\n if (typeof name !== \"string\" || name.length === 0) {\n throw new TypeError(\"invalid name.\");\n }\n if (groupId == null || isNaN(parseInt(groupId))) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n return {\n id: parseInt(id),\n name,\n groupId: parseInt(groupId),\n backgroundURL: notEmptyStringOr(backgroundURL, null),\n backgroundColor: notEmptyStringOr(backgroundColor, null),\n isFavorite: parseBoolean(isFavorite),\n relationLineWidth: parseIntOr(relationLineWidth, 0),\n maintenanceMode: maintenanceMode,\n gridSize: parseIntOr(gridSize, 10),\n gridSelected: false,\n ...sizePropsDecoder(data)\n };\n}\n\nexport default class VisualConsole {\n // Reference to the DOM element which will contain the items.\n private readonly containerRef: HTMLElement;\n // Properties.\n private _props: VisualConsoleProps;\n // Visual Console Item instances by their Id.\n private elementsById: {\n [key: number]: Item;\n } = {};\n // Visual Console Item Ids.\n private elementIds: ItemProps[\"id\"][] = [];\n // Dictionary which store the created lines.\n private relations: {\n [key: string]: Line;\n } = {};\n\n // Dictionary which store the related items (by ID).\n private lineLinks: {\n [key: number]: { [key: number]: { [key: string]: number } };\n } = {};\n\n private lines: {\n [key: number]: { [key: string]: number };\n } = {};\n\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for move events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for line move events.\n private readonly lineMovedEventManager = new TypedEvent();\n // Event manager for resize events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for remove events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n /**\n * React to a click on an element.\n * @param e Event object.\n */\n private handleElementClick: (e: ItemClickEvent) => void = e => {\n this.clickEventManager.emit(e);\n // console.log(`Clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a double click on an element.\n * @param e Event object.\n */\n private handleElementDblClick: (e: ItemClickEvent) => void = e => {\n this.dblClickEventManager.emit(e);\n // console.log(`Double clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a movement on an element.\n * @param e Event object.\n */\n private handleElementMovement: (e: ItemMovedEvent) => void = e => {\n var type = e.item.itemProps.type;\n if (type !== 13 && type !== 21 && this.props.gridSelected === true) {\n var gridSize = this.props.gridSize;\n var positionX = e.newPosition.x;\n var positionY = e.newPosition.y;\n if (positionX % gridSize !== 0 || positionY % gridSize !== 0) {\n var x = Math.floor(positionX / gridSize) * gridSize;\n var y = Math.floor(positionY / gridSize) * gridSize;\n let elemntSelected = document.getElementById(\n \"item-selected-move\"\n ) as HTMLElement;\n elemntSelected.setAttribute(\n \"style\",\n \"top:\" + y + \"px !important; left:\" + x + \"px !important\"\n );\n return;\n }\n }\n // Move their relation lines.\n const itemId = e.item.props.id;\n const relations = this.getItemRelations(itemId);\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n }\n });\n\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, false);\n\n // console.log(`Moved element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a movement finished on an element.\n * @param e Event object.\n */\n private handleElementMovementFinished: (e: ItemMovedEvent) => void = e => {\n this.movedEventManager.emit(e);\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, true);\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Verifies if x,y are inside item coordinates.\n * @param x Coordinate X\n * @param y Coordinate Y\n * @param item ItemProps instance.\n */\n private coordinatesInItem(x: number, y: number, props: ItemProps) {\n if (\n props.type == ItemType.LINE_ITEM ||\n props.type == ItemType.NETWORK_LINK\n ) {\n return false;\n }\n\n if (\n x > props.x &&\n x < props.x + props.width &&\n y > props.y &&\n y < props.y + props.height\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * React to a line movement.\n * @param e Event object.\n */\n private handleLineElementMovementFinished: (\n e: LineMovedEvent\n ) => void = e => {\n // Update links.\n this.refreshLink(e.item);\n\n // Build line relationships between items and lines.\n this.lineMovedEventManager.emit(e);\n\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a resizement on an element.\n * @param e Event object.\n */\n private handleElementResizement: (e: ItemResizedEvent) => void = e => {\n // Move their relation lines.\n const item = e.item;\n const props = item.props;\n const itemId = props.id;\n const relations = this.getItemRelations(itemId);\n\n const position = {\n x: props.x,\n y: props.y\n };\n\n const meta = this.elementsById[itemId].meta;\n\n this.elementsById[itemId].meta = {\n ...meta,\n isUpdating: true\n };\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(position, item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(position, item)\n };\n }\n });\n\n // console.log(`Resized element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a finished resizement on an element.\n * @param e Event object.\n */\n private handleElementResizementFinished: (\n e: ItemResizedEvent\n ) => void = e => {\n this.resizedEventManager.emit(e);\n // console.log(`Resize fonished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Clear some element references.\n * @param e Event object.\n */\n private handleElementRemove: (e: ItemRemoveEvent) => void = e => {\n // Remove the element from the list and its relations.\n this.elementIds = this.elementIds.filter(id => id !== e.item.props.id);\n delete this.elementsById[e.item.props.id];\n this.clearRelations(e.item.props.id);\n };\n\n /**\n * React to element selection change\n * @param e Event object.\n */\n private handleElementSelectionChanged: (\n e: ItemSelectionChangedEvent\n ) => void = e => {\n if (this.elements.filter(item => item.meta.isSelected == true).length > 0) {\n e.selected = true;\n } else {\n e.selected = false;\n }\n this.selectionChangedEventManager.emit(e);\n };\n\n // TODO: Document\n private handleContainerClick: (e: MouseEvent) => void = () => {\n this.unSelectItems();\n };\n\n /**\n * Refresh link for given line.\n *\n * @param line Line.\n */\n protected refreshLink(l: Line) {\n let line: number = l.props.id;\n let itemAtStart = 0;\n let itemAtEnd = 0;\n\n try {\n for (let i in this.elementsById) {\n if (\n this.coordinatesInItem(\n l.props.startPosition.x,\n l.props.startPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtStart = parseInt(i);\n }\n\n if (\n this.coordinatesInItem(\n l.props.endPosition.x,\n l.props.endPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtEnd = parseInt(i);\n }\n }\n\n if (this.lineLinks == null) {\n this.lineLinks = {};\n }\n\n if (this.lines == null) {\n this.lines = {};\n }\n\n if (itemAtStart == line) {\n itemAtStart = 0;\n }\n\n if (itemAtEnd == line) {\n itemAtEnd = 0;\n }\n\n // Initialize line if not registered.\n if (this.lines[line] == null) {\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n }\n\n // Register 'start' side of the line.\n if (itemAtStart > 0) {\n // Initialize.\n if (this.lineLinks[itemAtStart] == null) {\n this.lineLinks[itemAtStart] = {};\n }\n\n // Assign.\n this.lineLinks[itemAtStart][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Register line if not exists prviously.\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"start\"] > 0) {\n this.lineLinks[this.lines[line][\"start\"]][line][\"start\"] = 0;\n this.lines[line][\"start\"] = 0;\n }\n }\n\n if (itemAtEnd > 0) {\n if (this.lineLinks[itemAtEnd] == null) {\n this.lineLinks[itemAtEnd] = {};\n }\n\n this.lineLinks[itemAtEnd][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"end\"] > 0) {\n this.lineLinks[this.lines[line][\"end\"]][line][\"end\"] = 0;\n this.lines[line][\"end\"] = 0;\n }\n }\n\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Cleanup.\n for (let i in this.lineLinks) {\n if (this.lineLinks[i][line]) {\n if (\n this.lineLinks[i][line].start == 0 &&\n this.lineLinks[i][line].end == 0\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n\n if (\n (this.lineLinks[i][line].start != itemAtStart &&\n this.lineLinks[i][line].end == itemAtEnd) ||\n (this.lineLinks[i][line].start == itemAtStart &&\n this.lineLinks[i][line].end != itemAtEnd)\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n /**\n * Updates lines connected to this item.\n *\n * @param item Item moved.\n * @param newPosition New location for item.\n * @param oldPosition Old location for item.\n * @param save Save to ajax or not.\n */\n protected updateLinesConnected(item: ItemProps, to: Position, save: boolean) {\n if (this.lineLinks[item.id] == null) {\n return;\n }\n\n Object.keys(this.lineLinks[item.id]).forEach(i => {\n let lineId = parseInt(i);\n const found = this.elementIds.indexOf(lineId);\n if (found === -1) {\n return;\n }\n let line = this.elementsById[lineId] as Line;\n if (line.props) {\n let startX = line.props.startPosition.x;\n let startY = line.props.startPosition.y;\n let endX = line.props.endPosition.x;\n let endY = line.props.endPosition.y;\n\n if (item.id == this.lineLinks[item.id][lineId][\"start\"]) {\n startX = to.x + item.width / 2;\n startY = to.y + item.height / 2;\n }\n\n if (item.id == this.lineLinks[item.id][lineId][\"end\"]) {\n endX = to.x + item.width / 2;\n endY = to.y + item.height / 2;\n }\n\n // Update line movement.\n this.updateElement({\n ...line.props,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n\n if (save) {\n let debouncedLinePositionSave = debounce(\n 500,\n (options: AnyObject) => {\n this.lineMovedEventManager.emit({\n item: options.line,\n startPosition: {\n x: options.startX,\n y: options.startY\n },\n endPosition: {\n x: options.endX,\n y: options.endY\n }\n });\n }\n );\n\n // Save line positon.\n debouncedLinePositionSave({\n line: line,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n }\n }\n });\n\n // Update parents...\n this.buildRelations(item.id, to.x + item.width / 2, to.y + item.height / 2);\n }\n\n public constructor(\n container: HTMLElement,\n props: AnyObject,\n items: AnyObject[]\n ) {\n this.containerRef = container;\n this._props = visualConsolePropsDecoder(props);\n\n // Force the first render.\n this.render();\n\n // Sort by id ASC\n items = items.sort(function(a, b) {\n if (a.id == null || b.id == null) return 0;\n else if (a.id > b.id) return 1;\n else return -1;\n });\n\n // Initialize the items.\n items.forEach(item => this.addElement(item, this));\n\n // Create lines.\n this.buildRelations();\n\n // Re-attach all connected lines if any.\n this.elements.forEach(item => {\n if (item instanceof Line) {\n this.refreshLink(item);\n }\n });\n\n this.containerRef.addEventListener(\"click\", this.handleContainerClick);\n }\n\n /**\n * Public accessor of the `elements` property.\n * @return Properties.\n */\n public get elements(): Item[] {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n return this.elementIds\n .map(id => this.elementsById[id])\n .filter(_ => _ != null) as Item[];\n }\n\n /**\n * To create a new element add it to the DOM.\n * @param item. Raw representation of the item's data.\n */\n public addElement(item: AnyObject, context: this = this) {\n try {\n const itemInstance = itemInstanceFrom(item);\n // Add the item to the list.\n context.elementsById[itemInstance.props.id] = itemInstance;\n context.elementIds.push(itemInstance.props.id);\n // Item event handlers.\n itemInstance.onRemove(context.handleElementRemove);\n itemInstance.onSelectionChanged(context.handleElementSelectionChanged);\n itemInstance.onClick(context.handleElementClick);\n itemInstance.onDblClick(context.handleElementDblClick);\n\n // TODO:Continue\n if (itemInstance instanceof Line) {\n itemInstance.onLineMovementFinished(\n context.handleLineElementMovementFinished\n );\n this.refreshLink(itemInstance);\n } else {\n itemInstance.onMoved(context.handleElementMovement);\n itemInstance.onMovementFinished(context.handleElementMovementFinished);\n itemInstance.onResized(context.handleElementResizement);\n itemInstance.onResizeFinished(context.handleElementResizementFinished);\n }\n\n // Add the item to the DOM.\n context.containerRef.append(itemInstance.elementRef);\n return itemInstance;\n } catch (error) {\n console.error(\"Error creating a new element:\", (error as Error).message);\n }\n return;\n }\n\n /**\n * Public setter of the `elements` property.\n * @param items.\n */\n public updateElements(items: AnyObject[]): void {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n const itemIds = items\n .map(item => item.id || null)\n .filter(id => id != null) as number[];\n // Get the elements we should delete.\n const deletedIds = this.elementIds.filter(id => itemIds.indexOf(id) < 0);\n // Delete the elements.\n deletedIds.forEach(id => {\n if (this.elementsById[id] != null) {\n this.elementsById[id].remove();\n delete this.elementsById[id];\n }\n });\n // Replace the element ids.\n this.elementIds = itemIds;\n\n // Initialize the items.\n items.forEach(item => {\n if (item.id) {\n if (this.elementsById[item.id] == null) {\n // New item.\n this.addElement(item);\n } else {\n // Update item.\n try {\n this.elementsById[item.id].props = decodeProps(item);\n } catch (error) {\n console.error(\n \"Error updating an element:\",\n (error as Error).message\n );\n }\n }\n }\n });\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public setter of the `element` property.\n * @param item.\n */\n public updateElement(item: AnyObject): void {\n // Update item.\n try {\n this.elementsById[item.id].props = {\n ...decodeProps(item)\n };\n } catch (error) {\n console.error(\"Error updating element:\", (error as Error).message);\n }\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): VisualConsoleProps {\n return { ...this._props }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: VisualConsoleProps) {\n const prevProps = this.props;\n // Update the internal props.\n this._props = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Re-render.\n this.render(prevProps);\n }\n\n /**\n * Recreate or update the HTMLElement which represents the Visual Console into the DOM.\n * @param prevProps If exists it will be used to only DOM updates instead of a full replace.\n */\n public render(prevProps: VisualConsoleProps | null = null): void {\n if (prevProps) {\n if (prevProps.backgroundURL !== this.props.backgroundURL) {\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n }\n if (this.props.backgroundColor != null)\n if (prevProps.backgroundColor !== this.props.backgroundColor) {\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n }\n if (this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n }\n } else {\n if (this.props.backgroundURL)\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n\n if (this.props.backgroundColor)\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n this.resizeElement(this.props.width, this.props.height);\n }\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n public sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM container.\n * @param width\n * @param height\n */\n public resizeElement(width: number, height: number): void {\n this.containerRef.style.width = `${width}px`;\n this.containerRef.style.height = `${height}px`;\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.props = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n this.disposables.forEach(d => d.dispose()); // Arrow function.\n this.elements.forEach(e => e.remove()); // Arrow function.\n this.elementsById = {};\n this.elementIds = [];\n // Clear relations.\n this.clearRelations();\n // Remove the click event listener.\n this.containerRef.removeEventListener(\"click\", this.handleContainerClick);\n // Clean container.\n this.containerRef.innerHTML = \"\";\n }\n\n /**\n * Create line elements which connect the elements with their parents.\n *\n * When itemId is being moved, overwrite position of the 'parent' or 'child'\n * endpoints of the line, using X and Y values.\n */\n public buildRelations(itemId?: number, x?: number, y?: number): void {\n // Clear relations.\n this.clearRelations();\n // Add relations.\n this.elements.forEach(item => {\n if (item.props.parentId !== null) {\n const parent = this.elementsById[item.props.parentId];\n const child = this.elementsById[item.props.id];\n\n if (parent && child) {\n if (itemId != undefined) {\n if (item.props.parentId == itemId) {\n // Update parent line position.\n this.addRelationLine(parent, child, x, y);\n } else if (item.props.id == itemId) {\n // Update child line position.\n this.addRelationLine(parent, child, undefined, undefined, x, y);\n } else {\n this.addRelationLine(parent, child);\n }\n } else {\n // No movements default behaviour.\n this.addRelationLine(parent, child);\n }\n }\n }\n });\n }\n\n /**\n * @param itemId Optional identifier of a parent or child item.\n * Remove the line elements which connect the elements with their parents.\n */\n private clearRelations(itemId?: number): void {\n if (itemId != null) {\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n } else {\n for (let key in this.relations) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n }\n\n /**\n * Retrieve the line element which represent the relation between items.\n * @param parentId Identifier of the parent item.\n * @param childId Itentifier of the child item.\n * @return The line element or nothing.\n */\n private getRelationLine(parentId: number, childId: number): Line | null {\n const identifier = `${parentId}|${childId}`;\n return this.relations[identifier] || null;\n }\n\n // TODO: Document.\n private getItemRelations(\n itemId: number\n ): {\n parentId: number;\n childId: number;\n line: Line;\n }[] {\n const itemRelations = [];\n\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n itemRelations.push({\n parentId,\n childId,\n line: this.relations[key]\n });\n }\n }\n\n return itemRelations;\n }\n\n /**\n * Retrieve the visual center of the item. It's ussually the center of the\n * content, like the label doesn't exist.\n * @param position Initial position.\n * @param element Element we want to use.\n */\n private getVisualCenter(\n position: Position,\n element: Item\n ): Position {\n let x = position.x + element.elementRef.clientWidth / 2;\n let y = position.y + element.elementRef.clientHeight / 2;\n if (\n typeof element.props.label !== \"undefined\" ||\n element.props.label !== \"\" ||\n element.props.label !== null\n ) {\n switch (element.props.labelPosition) {\n case \"up\":\n y =\n position.y +\n (element.elementRef.clientHeight +\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"down\":\n y =\n position.y +\n (element.elementRef.clientHeight -\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"right\":\n x =\n position.x +\n (element.elementRef.clientWidth -\n element.labelElementRef.clientWidth) /\n 2;\n break;\n case \"left\":\n x =\n position.x +\n (element.elementRef.clientWidth +\n element.labelElementRef.clientWidth) /\n 2;\n break;\n }\n }\n return { x, y };\n }\n\n /**\n * Add a new line item to represent a relation between the items.\n * @param parent Parent item.\n * @param child Child item.\n * @return Whether the line was added or not.\n */\n private addRelationLine(\n parent: Item,\n child: Item,\n parentX?: number,\n parentY?: number,\n childX?: number,\n childY?: number\n ): Line {\n const identifier = `${parent.props.id}|${child.props.id}`;\n if (this.relations[identifier] != null) {\n this.relations[identifier].remove();\n }\n\n // Get the items center.\n let { x: startX, y: startY } = this.getVisualCenter(parent.props, parent);\n let { x: endX, y: endY } = this.getVisualCenter(child.props, child);\n\n // Overwrite positions if needed (while moving it!).\n if (parentX != null) {\n startX = parentX;\n }\n\n if (parentY != null) {\n startY = parentY;\n }\n\n if (childX != null) {\n endX = childX;\n }\n\n if (childY != null) {\n endY = childY;\n }\n\n // Line inherits child element status.\n const line = new Line(\n linePropsDecoder({\n id: 0,\n type: ItemType.LINE_ITEM,\n startX,\n startY,\n endX,\n endY,\n width: 0,\n height: 0,\n lineWidth: this.props.relationLineWidth,\n color: notEmptyStringOr(child.props.colorStatus, \"#CCC\")\n }),\n itemMetaDecoder({\n receivedAt: new Date()\n })\n );\n // Save a reference to the line item.\n this.relations[identifier] = line;\n\n // Add the line to the DOM.\n line.elementRef.style.zIndex = \"0\";\n this.containerRef.append(line.elementRef);\n\n return line;\n }\n\n /**\n * Add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onItemClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onItemDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console line elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onLineMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the resizement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the elements selection change of the visual console .\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Enable the edition mode.\n */\n public enableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: true };\n });\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Disable the edition mode.\n */\n public disableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: false };\n });\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Enable the maintenance mode.\n */\n public enableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: true };\n });\n this.containerRef.classList.add(\"is-maintenance\");\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Disable the maintenance mode.\n */\n public disableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: false };\n });\n this.containerRef.classList.remove(\"is-maintenance\");\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Update the gridSize.\n */\n public updateGridSize(gridSize: string): void {\n this._props.gridSize = parseInt(gridSize);\n this.props.gridSize = parseInt(gridSize);\n }\n\n /**\n * Update the gridSize.\n */\n public updateGridSelected(gridSelected: boolean): void {\n this._props.gridSelected = gridSelected;\n this.props.gridSelected = gridSelected;\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(itemId: number, unique: boolean = false): void {\n if (unique) {\n this.elementIds.forEach(currentItemId => {\n const meta = this.elementsById[currentItemId].meta;\n\n if (currentItemId !== itemId && meta.isSelected) {\n this.elementsById[currentItemId].unSelectItem();\n } else if (currentItemId === itemId && !meta.isSelected) {\n this.elementsById[currentItemId].selectItem();\n }\n });\n } else if (this.elementsById[itemId]) {\n this.elementsById[itemId].selectItem();\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(itemId: number): void {\n if (this.elementsById[itemId]) {\n const meta = this.elementsById[itemId].meta;\n\n if (meta.isSelected) {\n this.elementsById[itemId].unSelectItem();\n }\n }\n }\n\n /**\n * Unselect all items.\n */\n public unSelectItems(): void {\n this.elementIds.forEach(itemId => {\n if (this.elementsById[itemId]) {\n this.elementsById[itemId].unSelectItem();\n }\n });\n }\n\n // TODO: Document.\n public static items = {\n [ItemType.STATIC_GRAPH]: StaticGraph,\n [ItemType.MODULE_GRAPH]: ModuleGraph,\n [ItemType.SIMPLE_VALUE]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MAX]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MIN]: SimpleValue,\n [ItemType.SIMPLE_VALUE_AVG]: SimpleValue,\n [ItemType.PERCENTILE_BAR]: Percentile,\n [ItemType.PERCENTILE_BUBBLE]: Percentile,\n [ItemType.CIRCULAR_PROGRESS_BAR]: Percentile,\n [ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR]: Percentile,\n [ItemType.LABEL]: Label,\n [ItemType.ICON]: Icon,\n [ItemType.SERVICE]: Service,\n [ItemType.GROUP_ITEM]: Group,\n [ItemType.BOX_ITEM]: Box,\n [ItemType.LINE_ITEM]: Line,\n [ItemType.AUTO_SLA_GRAPH]: EventsHistory,\n [ItemType.DONUT_GRAPH]: DonutGraph,\n [ItemType.BARS_GRAPH]: BarsGraph,\n [ItemType.CLOCK]: Clock,\n [ItemType.COLOR_CLOUD]: ColorCloud,\n [ItemType.NETWORK_LINK]: NetworkLink,\n [ItemType.ODOMETER]: Odometer,\n [ItemType.BASIC_CHART]: BasicChart\n };\n\n /**\n * Relying type item and srcimg and agent and module\n * name convert name item representative.\n *\n * @param item Instance item from extract name.\n *\n * @return Name item.\n */\n public static itemDescriptiveName(item: Item): string {\n let text: string;\n switch (item.props.type) {\n case ItemType.STATIC_GRAPH:\n text = `${t(\"Static graph\")} - ${(item as StaticGraph).props.imageSrc}`;\n break;\n case ItemType.MODULE_GRAPH:\n text = t(\"Module graph\");\n break;\n case ItemType.CLOCK:\n text = t(\"Clock\");\n break;\n case ItemType.BARS_GRAPH:\n text = t(\"Bars graph\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n text = t(\"Event history graph\");\n break;\n case ItemType.PERCENTILE_BAR:\n text = t(\"Percentile bar\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n text = t(\"Circular progress bar\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n text = t(\"Circular progress bar (interior)\");\n break;\n case ItemType.SIMPLE_VALUE:\n text = t(\"Simple Value\");\n break;\n case ItemType.LABEL:\n text = t(\"Label\");\n break;\n case ItemType.GROUP_ITEM:\n text = t(\"Group\");\n break;\n case ItemType.COLOR_CLOUD:\n text = t(\"Color cloud\");\n break;\n case ItemType.ICON:\n text = `${t(\"Icon\")} - ${(item as Icon).props.imageSrc}`;\n break;\n case ItemType.ODOMETER:\n text = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n text = t(\"BasicChart\");\n break;\n default:\n text = t(\"Item\");\n break;\n }\n\n const linkedAgentAndModuleProps = item.props as Partial;\n if (\n linkedAgentAndModuleProps.agentAlias != null &&\n linkedAgentAndModuleProps.moduleName != null\n ) {\n text += ` (${ellipsize(\n linkedAgentAndModuleProps.agentAlias,\n 18\n )} - ${ellipsize(linkedAgentAndModuleProps.moduleName, 25)})`;\n } else if (linkedAgentAndModuleProps.agentAlias != null) {\n text += ` (${ellipsize(linkedAgentAndModuleProps.agentAlias, 25)})`;\n }\n\n return text;\n }\n}\n","import TypedEvent, { Disposable, Listener } from \"./TypedEvent\";\n\ninterface Cancellable {\n cancel(): void;\n}\n\ntype AsyncTaskStatus = \"waiting\" | \"started\" | \"cancelled\" | \"finished\";\ntype AsyncTaskInitiator = (done: () => void) => Cancellable;\n\n/**\n * Defines an async task which can be started and cancelled.\n * It's possible to observe the status changes of the task.\n */\nclass AsyncTask {\n private readonly taskInitiator: AsyncTaskInitiator;\n private cancellable: Cancellable = { cancel: () => {} };\n private _status: AsyncTaskStatus = \"waiting\";\n\n // Event manager for status change events.\n private readonly statusChangeEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n public constructor(taskInitiator: AsyncTaskInitiator) {\n this.taskInitiator = taskInitiator;\n }\n\n /**\n * Public setter of the `status` property.\n * @param status.\n */\n public set status(status: AsyncTaskStatus) {\n this._status = status;\n this.statusChangeEventManager.emit(status);\n }\n\n /**\n * Public accessor of the `status` property.\n * @return status.\n */\n public get status() {\n return this._status;\n }\n\n /**\n * Start the async task.\n */\n public init(): void {\n this.cancellable = this.taskInitiator(() => {\n this.status = \"finished\";\n });\n this.status = \"started\";\n }\n\n /**\n * Cancel the async task.\n */\n public cancel(): void {\n this.cancellable.cancel();\n this.status = \"cancelled\";\n }\n\n /**\n * Add an event handler to the status change.\n * @param listener Function which is going to be executed when the status changes.\n */\n public onStatusChange(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.statusChangeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n}\n\n/**\n * Wrap an async task into another which will execute that task indefinitely\n * every time the tash finnish and the chosen period ends.\n * Will last until cancellation.\n *\n * @param task Async task to execute.\n * @param period Time in milliseconds to wait until the next async esecution.\n *\n * @return A new async task.\n */\nfunction asyncPeriodic(task: AsyncTask, period: number): AsyncTask {\n return new AsyncTask(() => {\n let ref: number | null = null;\n\n task.onStatusChange(status => {\n if (status === \"finished\") {\n ref = window.setTimeout(() => {\n task.init();\n }, period);\n }\n });\n\n task.init();\n\n return {\n cancel: () => {\n if (ref) clearTimeout(ref);\n task.cancel();\n }\n };\n });\n}\n\n/**\n * Manages a list of async tasks.\n */\nexport default class AsyncTaskManager {\n private tasks: { [identifier: string]: AsyncTask } = {};\n\n /**\n * Adds an async task to the manager.\n *\n * @param identifier Unique identifier.\n * @param taskInitiator Function to initialize the async task.\n * Should return a structure to cancel the task.\n * @param period Optional period to repeat the task indefinitely.\n */\n public add(\n identifier: string,\n taskInitiator: AsyncTaskInitiator,\n period: number = 0\n ): AsyncTask {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n\n const asyncTask =\n period > 0\n ? asyncPeriodic(new AsyncTask(taskInitiator), period)\n : new AsyncTask(taskInitiator);\n\n this.tasks[identifier] = asyncTask;\n\n return this.tasks[identifier];\n }\n\n /**\n * Starts an async task.\n *\n * @param identifier Unique identifier.\n */\n public init(identifier: string) {\n if (\n this.tasks[identifier] &&\n (this.tasks[identifier].status === \"waiting\" ||\n this.tasks[identifier].status === \"cancelled\" ||\n this.tasks[identifier].status === \"finished\")\n ) {\n this.tasks[identifier].init();\n }\n }\n\n /**\n * Cancel a running async task.\n *\n * @param identifier Unique identifier.\n */\n public cancel(identifier: string) {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n }\n}\n","/*\n * Useful resources.\n * http://es6-features.org/\n * http://exploringjs.com/es6\n * https://www.typescriptlang.org/\n */\n\nimport \"./main.css\"; // CSS import.\nimport VisualConsole from \"./VisualConsole\";\nimport * as Form from \"./Form\";\nimport AsyncTaskManager from \"./lib/AsyncTaskManager\";\n\n// Export the VisualConsole class to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole = VisualConsole;\n\n// Export the VisualConsole's Form classes to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole.Form = Form;\n\n// Export the AsyncTaskManager class to the global object.\n// eslint-disable-next-line\n(window as any).AsyncTaskManager = AsyncTaskManager;\n"],"names":["name","initialData","_name","currentData","dataRequestedEventManager","this","length","RangeError","_element","element","document","createElement","className","content","createContent","Array","forEach","appendChild","reset","updateData","data","requestData","identifier","params","done","emit","onDataRequested","listener","on","title","inputGroups","enabledInputGroups","inputGroupsByName","enabledInputGroupNames","submitEventManager","itemDataRequestedEventManager","handleItemDataRequested","reduce","prevVal","inputGroup","filter","getInputGroup","inputGroupName","addInputGroup","index","slice","removeInputGroup","getFormElement","type","form","id","addEventListener","e","preventDefault","nativeEvent","formContent","onSubmit","onInputGroupDataRequested","parseLabelPosition","labelPosition","itemBasePropsDecoder","isNaN","parseInt","TypeError","label","isLinkEnabled","link","isOnTop","parentId","aclGroupId","cacheExpiration","colorStatus","cellId","alertOutline","props","metadata","deferInit","elementRef","labelElementRef","childElementRef","clickEventManager","dblClickEventManager","movedEventManager","movementFinishedEventManager","resizedEventManager","resizeFinishedEventManager","removeEventManager","selectionChangedEventManager","disposables","debouncedMovementSave","x","y","_metadata","isBeingMoved","prevPosition","newPosition","positionChanged","move","item","removeMovement","debouncedResizementSave","width","height","isBeingResized","prevSize","newSize","sizeChanged","resize","removeResizement","itemProps","init","initMovementListener","meta","isSelected","moveElement","stopMovementListener","initResizementListener","getBoundingClientRect","labelWidth","labelHeight","resizeElement","stopResizementListener","createContainerDomElement","createLabelDomElement","createDomElement","changeLabelPosition","box","href","classList","add","style","left","top","unSelectItem","selectItem","editMode","stopPropagation","divParent","divSpinner","path","composedPath","containerId","undefined","includes","containerVC","getElementById","maintenanceMode","isFetching","isUpdating","getLabelWithMacrosReplaced","table","row","emptyRow1","emptyRow2","cell","innerHTML","textAlign","macro","value","Date","agentAlias","agentDescription","agentAddress","moduleName","moduleDescription","updateDomElement","newProps","setProps","prevProps","shouldBeUpdated","render","newMetadata","setMeta","prevMetadata","selected","prevMeta","oldLabelHtml","newLabelHtml","remove","container","attrs","attributes","i","nodeName","cloneIsNeeded","getAttributeNode","setAttributeNode","cloneNode","parentNode","replaceChild","setAttribute","div","querySelector","parentElement","removeChild","removeAttribute","disposable","dispose","ignored","position","flexDirection","tables","getElementsByTagName","onClick","push","onDblClick","onMoved","onMovementFinished","onResized","onResizeFinished","onRemove","onSelectionChanged","getFormContainer","VisualConsoleItem","t","titleItem","FormContainer","parseBarsGraphProps","backgroundColor","parseTypeGraph","typeGraph","barsGraphPropsDecoder","html","encodedHtml","gridColor","agentDisabled","moduleDisabled","opacity","scripts","src","setTimeout","eval","trim","basicChartPropsDecoder","period","parseFloat","status","moduleNameColor","header","textContent","color","number_format","moduleValue","legendP","margin","overviewGraphs","getElementsByClassName","insertBefore","firstChild","number","force_integer","unit","short_data","divisor","Math","round","aux_decimals","pad","Number","pos","abs","input","padding","str","donutGraphPropsDecoder","legendBackgroundColor","eventsHistoryPropsDecoder","maxTime","legendColor","flotText","aux","parseBackgroundType","backgroundType","parseGraphType","graphType","moduleGraphPropsDecoder","customGraphId","svgNS","iconDefinition","size","spin","pulse","iconName","icon","createElementNS","pathData","listeners","listenersOncer","off","once","callbackIndex","indexOf","splice","event","pipe","te","parseIntOr","defaultValue","parseFloatOr","stringIsEmpty","notEmptyStringOr","parseBoolean","leftPad","diffLength","substr","substring","repeatTimes","floor","restLength","newPad","positionPropsDecoder","sizePropsDecoder","modulePropsDecoder","moduleId","agentProps","agentId","agentName","metaconsoleId","agentPropsDecoder","linkedVCPropsDecoder","linkedLayoutStatusProps","linkedLayoutStatusType","weight","linkedLayoutStatusTypeWeight","warningThreshold","linkedLayoutStatusTypeWarningThreshold","criticalThreshold","linkedLayoutStatusTypeCriticalThreshold","linkedLayoutId","linkedLayoutNodeId","itemMetaDecoder","receivedAt","getTime","error","Error","isFromCache","lineMode","prefixedCssRules","ruleName","ruleValue","rule","decodeBase64","decodeURIComponent","escape","window","atob","humanDate","date","locale","Intl","DateTimeFormat","day","month","year","format","getDate","getMonth","getFullYear","humanTime","hours","getHours","minutes","getMinutes","seconds","getSeconds","replaceMacros","macros","text","acc","replace","throttle","delay","fn","last","now","args","debounce","timerRef","clearTimeout","getOffset","el","parent","offsetLeft","offsetTop","scrollLeft","scrollTop","offsetParent","addMovementListener","altContainer","isDraggable","draggable","lastX","lastY","lastMouseX","lastMouseY","mouseElementOffsetX","mouseElementOffsetY","containerBounds","containerOffset","containerTop","containerBottom","containerLeft","containerRight","elementBounds","borderWidth","getComputedStyle","borderFix","debouncedMovement","throttledMovement","handleMove","mouseX","pageX","mouseY","pageY","mouseDeltaX","mouseDeltaY","maxX","maxY","outOfBoundsLeft","outOfBoundsRight","outOfBoundsTop","outOfBoundsBottom","handleEnd","removeEventListener","body","userSelect","handleStart","button","elementOffset","offsetX","offsetY","addResizementListener","resizeDraggable","lastWidth","lastHeight","elementTop","elementLeft","debouncedResizement","throttledResizement","handleResize","ellipsize","max","ellipse","__webpack_module_cache__","__webpack_require__","cachedModule","exports","module","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","parseShowLastValueTooltip","showLastValueTooltip","staticGraphPropsDecoder","imageSrc","statusImageSrc","lastValue","imgSrc","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","Item","iconPropsDecoder","image","faPlusCircle","prefix","faTrashAlt","colorCloudPropsDecoder","defaultColor","colorRanges","generalDiv","colorLabel","ColorInput","required","target","InputGroup","rangesLabel","createLabel","rangesControlsContainer","createdRangesContainer","buildRanges","ranges","colorRange","rangeContainer","range","handleRangeUpdatePartial","newRanges","handleDelete","initialRangeContainer","onCreate","initialState","state","rangesContainer","rangesContainerFromValue","rangesLabelFromValue","rangesInputFromValue","createInputNumber","fromValue","rangesDivContainerToValue","rangesLabelToValue","rangesInputToValue","toValue","rangesDivContainerColor","rangesLabelColor","rangesInputColor","createInputColor","createBtn","onUpdate","onDelete","deleteBtn","append","createSvgElement","gradientId","svg","defs","radialGradient","stop0","stop100","circle","ColorCloud","formContainer","ColorInputGroup","RangesInputGroup","linePropsDecoder","startPosition","startX","startY","endPosition","endX","endY","lineWidth","borderColor","viewportOffsetX","viewportOffsetY","labelEnd","labelEndWidth","linkedEnd","linkedStart","labelEndHeight","labelStart","labelStartWidth","labelStartHeight","Line","extractBoxSizeAndPosition","circleRadius","moveMode","isMoving","lineMovedEventManager","TypedEvent","lineMovedEventDisposables","debouncedStartPositionMovementSave","removeStartPositionMovement","debouncedEndPositionMovementSave","removeEndPositionMovement","initStartPositionMovementListener","stopStartPositionMovementListener","initEndPositionMovementListener","stopEndPositionMovementListener","x1","y1","x2","y2","line","cursor","svgs","lines","getElementsByTagNameNS","startCircle","endCircle","circlesStart","circlesEnd","borderRadius","circles","min","startIsLeft","startIsTop","start","end","onLineMovementFinished","networkLinkPropsDecoder","groups","adjustment","lineX1","lineY1","lineX2","lineY2","g","atan2","PI","split","l","labels","arrows","arrow","arrowSize","arrowPosX","arrowPosY","arrowStart","border","borderBottom","transform","arrowEnd","htmlLabelStart","console","htmlLabelEnd","groupPropsDecoder","groupId","showStatistics","extractHtml","parseClockType","clockType","parseClockFormat","clockFormat","clockPropsDecoder","clockTimezone","clockTimezoneOffset","showClockTimezone","intervalRef","startTick","createClock","Clock","TICK_INTERVAL","stopTick","clearInterval","handler","interval","setInterval","getElementSize","newWidth","newHeight","createAnalogicClock","createDigitalClock","colors","dateFontSize","baseTimeFontSize","clockFace","clockFaceBackground","city","getHumanTimezone","timezoneComplication","marksGroup","mainMarkGroup","mark1a","mark1b","mark","hourHand","hourHandA","hourHandB","minuteHand","minuteHandA","minuteHandB","minuteHandPin","secondHand","secondHandBar","secondHandPin","pin","getOriginDate","secAngle","minuteAngle","hourAngle","join","dateElem","fontSize","modified","tzFontSizeMultiplier","timeFontSize","tzFontSize","timeElem","tzElem","initialDate","targetTZOffset","localTZOffset","getTimezoneOffset","utimestamp","timezone","diameter","extraHeigth","boxPropsDecoder","fillColor","fillTransparent","boxSizing","borderStyle","maxBorderWidth","labelPropsDecoder","parseValueType","valueType","simpleValuePropsDecoder","processValue","parseProcessValue","img","pi","tau","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_","constructor","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","sqrt","l01","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","toString","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","extractPercentileType","extractValueType","percentilePropsDecoder","percentileType","minValue","maxValue","labelColor","formatValue","background","progress","getProgress","NumberFormat","backgroundRect","progressRect","backgroundCircle","progressCircle","arcProps","cornerRadius","constant","padRadius","context","buffer","r0","apply","arguments","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","a","trunc","servicePropsDecoder","encodedTitle","serviceId","odometerPropsDecoder","titleColor","titleModule","thresholds","minMaxValue","odometerType","lineWarning","lineWarning2","lineCritical","lineCritical2","JSON","parse","min_warning","max_warning","getCoords","min_critical","max_critical","percent","toFixed","getSubfix","maximumSignificantDigits","maximumFractionDigits","numb","match","rotate","getRotate","anchoB","odometerContainer","odometerA","odometerB","odometerC","gaugeE","SVG_NS","svgWarning","setAttributeNS","pathWarning","svgCritical","pathCritical","h1","innerText","lineHeight","h2","truncateTitle","script","onload","url_pandora","location","pathname","dir","display","minMax","limit","subfix","radio","halfLength","diff","stringBefore","stringAfter","decodeProps","items","elementsById","elementIds","relations","lineLinks","handleElementClick","handleElementDblClick","handleElementMovement","gridSelected","gridSize","positionX","positionY","itemId","getItemRelations","relation","getVisualCenter","childId","updateLinesConnected","handleElementMovementFinished","handleLineElementMovementFinished","refreshLink","handleElementResizement","handleElementResizementFinished","handleElementRemove","clearRelations","handleElementSelectionChanged","elements","handleContainerClick","unSelectItems","containerRef","_props","backgroundURL","isFavorite","relationLineWidth","visualConsolePropsDecoder","sort","b","addElement","buildRelations","coordinatesInItem","itemAtStart","itemAtEnd","keys","to","save","lineId","updateElement","options","debouncedLinePositionSave","map","itemInstance","ModuleGraph","EventsHistory","DonutGraph","BarsGraph","BasicChart","itemInstanceFrom","message","updateElements","itemIds","child","addRelationLine","ids","getRelationLine","itemRelations","clientWidth","clientHeight","parentX","parentY","childX","childY","zIndex","onItemClick","onItemDblClick","onItemMoved","onLineMoved","onItemResized","onItemSelectionChanged","enableEditMode","disableEditMode","enableMaintenanceMode","disableMaintenanceMode","updateGridSize","updateGridSelected","unique","currentItemId","itemDescriptiveName","linkedAgentAndModuleProps","taskInitiator","cancellable","cancel","_status","statusChangeEventManager","onStatusChange","tasks","asyncTask","task","AsyncTask","ref","asyncPeriodic","VisualConsole","Form","AsyncTaskManager"],"sourceRoot":""} \ No newline at end of file diff --git a/pandora_console/operation/visual_console/view.php b/pandora_console/operation/visual_console/view.php index 332ae6f8a9..f7185503fa 100644 --- a/pandora_console/operation/visual_console/view.php +++ b/pandora_console/operation/visual_console/view.php @@ -850,9 +850,11 @@ if ($edit_capable === true) { size = $('#grid_size').val(); display_grid(color,size); $('#grid_img').removeClass('invisible'); + visualConsoleManager.visualConsole.updateGridSelected(true); } else { $('#div-grid').remove(); $('#grid_img').addClass('invisible'); + visualConsoleManager.visualConsole.updateGridSelected(false); } }); @@ -925,6 +927,7 @@ if ($edit_capable === true) { console.error(err); } }); + visualConsoleManager.visualConsole.updateGridSize(size); } // Enable/disable the maintenance mode. diff --git a/visual_console_client/src/Item.ts b/visual_console_client/src/Item.ts index 507e4f2621..ace52529a5 100644 --- a/visual_console_client/src/Item.ts +++ b/visual_console_client/src/Item.ts @@ -239,7 +239,7 @@ export function titleItem(id: number): string { */ abstract class VisualConsoleItem { // Properties of the item. - private itemProps: Props; + public itemProps: Props; // Metadata of the item. private _metadata: ItemMeta; // Reference to the DOM element which will contain the item. @@ -955,8 +955,10 @@ abstract class VisualConsoleItem { if (!prevMeta || prevMeta.isSelected !== this.meta.isSelected) { if (this.meta.isSelected) { this.elementRef.classList.add("is-selected"); + this.elementRef.setAttribute("id", "item-selected-move"); } else { this.elementRef.classList.remove("is-selected"); + this.elementRef.removeAttribute("id"); } } } diff --git a/visual_console_client/src/VisualConsole.ts b/visual_console_client/src/VisualConsole.ts index 500f7dcdaa..6ffea32162 100644 --- a/visual_console_client/src/VisualConsole.ts +++ b/visual_console_client/src/VisualConsole.ts @@ -160,6 +160,8 @@ export interface VisualConsoleProps extends Size { isFavorite: boolean; relationLineWidth: number; maintenanceMode: MaintenanceModeInterface | null; + gridSize: number | 10; + gridSelected: boolean | false | false; } export interface MaintenanceModeInterface { @@ -188,7 +190,9 @@ export function visualConsolePropsDecoder( backgroundColor, isFavorite, relationLineWidth, - maintenanceMode + maintenanceMode, + gridSize, + gridSelected } = data; if (id == null || isNaN(parseInt(id))) { @@ -210,6 +214,8 @@ export function visualConsolePropsDecoder( isFavorite: parseBoolean(isFavorite), relationLineWidth: parseIntOr(relationLineWidth, 0), maintenanceMode: maintenanceMode, + gridSize: parseIntOr(gridSize, 10), + gridSelected: false, ...sizePropsDecoder(data) }; } @@ -279,6 +285,24 @@ export default class VisualConsole { * @param e Event object. */ private handleElementMovement: (e: ItemMovedEvent) => void = e => { + var type = e.item.itemProps.type; + if (type !== 13 && type !== 21 && this.props.gridSelected === true) { + var gridSize = this.props.gridSize; + var positionX = e.newPosition.x; + var positionY = e.newPosition.y; + if (positionX % gridSize !== 0 || positionY % gridSize !== 0) { + var x = Math.floor(positionX / gridSize) * gridSize; + var y = Math.floor(positionY / gridSize) * gridSize; + let elemntSelected = document.getElementById( + "item-selected-move" + ) as HTMLElement; + elemntSelected.setAttribute( + "style", + "top:" + y + "px !important; left:" + x + "px !important" + ); + return; + } + } // Move their relation lines. const itemId = e.item.props.id; const relations = this.getItemRelations(itemId); @@ -1269,6 +1293,22 @@ export default class VisualConsole { this.containerRef.classList.add("is-editing"); } + /** + * Update the gridSize. + */ + public updateGridSize(gridSize: string): void { + this._props.gridSize = parseInt(gridSize); + this.props.gridSize = parseInt(gridSize); + } + + /** + * Update the gridSize. + */ + public updateGridSelected(gridSelected: boolean): void { + this._props.gridSelected = gridSelected; + this.props.gridSelected = gridSelected; + } + /** * Select an item. * @param itemId Item Id. From a8555c69a342fd15fd8fd4d02ae75d24cc59b6da Mon Sep 17 00:00:00 2001 From: Jonathan Date: Fri, 9 Jun 2023 08:48:17 +0200 Subject: [PATCH 097/268] #11093 VC items movement like grid when its enable --- .../include/visual-console-client/vc.main.min.js.map | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/visual-console-client/vc.main.min.js.map b/pandora_console/include/visual-console-client/vc.main.min.js.map index 1b63396f88..bbc35dc79a 100644 --- a/pandora_console/include/visual-console-client/vc.main.min.js.map +++ b/pandora_console/include/visual-console-client/vc.main.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vc.main.min.js","mappings":"wjBAWA,aAUE,WAAmBA,EAAcC,GATzB,KAAAC,MAAgB,GAGd,KAAAC,YAA6B,CAAC,EAEvB,KAAAC,0BAA4B,IAAI,IAK/CC,KAAKL,KAAOA,EACZK,KAAKJ,YAAcA,CACrB,CA+DF,OA7DE,sBAAW,mBAAI,C,IAKf,WACE,OAAOI,KAAKH,KACd,E,IAPA,SAAgBF,GACd,GAAoB,IAAhBA,EAAKM,OAAc,MAAM,IAAIC,WAAW,cAC5CF,KAAKH,MAAQF,CACf,E,gCAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYK,KAAKF,YACnB,E,gCAEA,sBAAW,sBAAO,C,IAAlB,WACE,GAAqB,MAAjBE,KAAKG,SAAkB,CACzB,IAAMC,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,kCAA2BP,KAAKL,MAEpD,IAAMa,EAAUR,KAAKS,gBAEjBD,aAAmBE,MACrBF,EAAQG,QAAQP,EAAQQ,aAExBR,EAAQQ,YAAYJ,GAGtBR,KAAKG,SAAWC,C,CAGlB,OAAOJ,KAAKG,QACd,E,gCAEO,YAAAU,MAAP,WACEb,KAAKF,YAAc,CAAC,CACtB,EAEU,YAAAgB,WAAV,SAAqBC,GACnBf,KAAKF,YAAc,EAAH,KACXE,KAAKF,aACLiB,EAGP,EAEU,YAAAC,YAAV,SACEC,EACAC,EACAC,GAEAnB,KAAKD,0BAA0BqB,KAAK,CAAEH,WAAU,EAAEC,OAAM,EAAEC,KAAI,GAChE,EAEO,YAAAE,gBAAP,SACEC,GAEA,OAAOtB,KAAKD,0BAA0BwB,GAAGD,EAC3C,EAKF,EA5EA,GAoFA,aAYE,WACEE,EACAC,EACAC,QADA,IAAAD,IAAAA,EAAA,SACA,IAAAC,IAAAA,EAAA,IAHF,WAVQ,KAAAC,kBAAoD,CAAC,EACrD,KAAAC,uBAAmC,GAE1B,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,8BAAgC,IAAI,IAG7C,KAAAC,wBAA0B/B,KAAK8B,8BAA8BV,KAOnEpB,KAAKwB,MAAQA,EAETC,EAAYxB,OAAS,IACvBD,KAAK2B,kBAAoBF,EAAYO,QAAO,SAACC,EAASC,GAIpD,OAFAA,EAAWb,gBAAgB,EAAKU,yBAChCE,EAAQC,EAAWvC,MAAQuC,EACpBD,CACT,GAAGjC,KAAK2B,oBAGND,EAAmBzB,OAAS,IAC9BD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,GAC3BF,EAAmBS,QACpB,SAAAxC,GAAQ,OAAgC,MAAhC,EAAKgC,kBAAkBhC,EAAvB,KACT,GAGP,CA0HF,OAxHS,YAAAyC,cAAP,SAAqBC,GACnB,OAAOrC,KAAK2B,kBAAkBU,IAAmB,IACnD,EAEO,YAAAC,cAAP,SACEJ,EACAK,GAuCA,YAvCA,IAAAA,IAAAA,EAAA,MAGAL,EAAWb,gBAAgBrB,KAAK+B,yBAChC/B,KAAK2B,kBAAkBO,EAAWvC,MAAQuC,EAG1ClC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAASuC,EAAWvC,IAApB,IAGI,OAAV4C,EACEA,GAAS,EACXvC,KAAK4B,uBAAyB,EAAH,CACzBM,EAAWvC,MACRK,KAAK4B,wBAAsB,GAEvBW,GAASvC,KAAK4B,uBAAuB3B,OAC9CD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAGbK,KAAK4B,uBAAyB,EAAH,OAEtB5B,KAAK4B,uBAAuBY,MAAM,EAAGD,IAAM,IAE9CL,EAAWvC,O,GAERK,KAAK4B,uBAAuBY,MAAMD,IAAM,GAI/CvC,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAIRK,IACT,EAEO,YAAAyC,iBAAP,SAAwBJ,GAOtB,cANOrC,KAAK2B,kBAAkBU,GAE9BrC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAAS0C,CAAT,IAGHrC,IACT,EAEO,YAAA0C,eAAP,SACEC,GADF,gBACE,IAAAA,IAAAA,EAAA,UAEA,IAAMC,EAAOvC,SAASC,cAAc,QACpCsC,EAAKC,GAAK,8BACVD,EAAKrC,UAAY,8BACjBqC,EAAKE,iBAAiB,UAAU,SAAAC,GAC9BA,EAAEC,iBACF,EAAKnB,mBAAmBT,KAAK,CAC3B6B,YAAaF,EACbhC,KAAM,EAAKa,uBAAuBI,QAAO,SAACjB,EAAMpB,GAO9C,OANI,EAAKgC,kBAAkBhC,KACzBoB,EAAO,EAAH,KACCA,GACA,EAAKY,kBAAkBhC,GAAMoB,OAG7BA,CACT,GAAG,CAAC,IAER,IAEA,IAAMmC,EAAc7C,SAASC,cAAc,OAW3C,OAVA4C,EAAY3C,UAAY,eAExBP,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzBuD,EAAYtC,YAAY,EAAKe,kBAAkBhC,GAAMS,QAEzD,IAEAwC,EAAKhC,YAAYsC,GAEVN,CACT,EAEO,YAAA/B,MAAP,sBACEb,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzB,EAAKgC,kBAAkBhC,GAAMkB,OAEjC,GACF,EAWO,YAAAsC,SAAP,SAAgB7B,GACd,OAAOtB,KAAK6B,mBAAmBN,GAAGD,EACpC,EAEO,YAAA8B,0BAAP,SACE9B,GAEA,OAAOtB,KAAK8B,8BAA8BP,GAAGD,EAC/C,EACF,EA9JA,E,sSCOM+B,EAAqB,SACzBC,GAEA,OAAQA,GACN,IAAK,KACL,IAAK,QACL,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,EAAqBxC,GACnC,GAAe,MAAXA,EAAK8B,IAAcW,MAAMC,SAAS1C,EAAK8B,KACzC,MAAM,IAAIa,UAAU,eAEtB,GAAiB,MAAb3C,EAAK4B,MAAgBa,MAAMC,SAAS1C,EAAK4B,OAC3C,MAAM,IAAIe,UAAU,iBAGtB,OAAO,EAAP,GACEb,GAAIY,SAAS1C,EAAK8B,IAClBF,KAAMc,SAAS1C,EAAK4B,MACpBgB,OAAO,QAAiB5C,EAAK4C,MAAO,MACpCL,cAAeD,EAAmBtC,EAAKuC,eACvCM,eAAe,QAAa7C,EAAK6C,eACjCC,MAAM,QAAiB9C,EAAK8C,KAAM,MAClCC,SAAS,QAAa/C,EAAK+C,SAC3BC,UAAU,QAAWhD,EAAKgD,SAAU,MACpCC,YAAY,QAAWjD,EAAKiD,WAAY,MACxCC,iBAAiB,QAAWlD,EAAKkD,gBAAiB,MAClDC,aAAa,QAAiBnD,EAAKmD,YAAa,QAChDC,QAAQ,QAAWpD,EAAKoD,OAAQ,MAChCC,cAAc,QAAarD,EAAKqD,gBAC7B,QAAiBrD,KACjB,QAAqBA,GAE5B,CAyFA,iBAwOE,WACEsD,EACAC,EACAC,QAAA,IAAAA,IAAAA,GAAA,GAHF,WAlOO,KAAAC,WAA0BnE,SAASC,cAAc,OACjD,KAAAmE,gBAA+BpE,SAASC,cAAc,OAEnD,KAAAoE,gBAA+BrE,SAASC,cAAc,OAE/C,KAAAqE,kBAAoB,IAAI,IAExB,KAAAC,qBAAuB,IAAI,IAE3B,KAAAC,kBAAoB,IAAI,IAExB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,oBAAsB,IAAI,IAE1B,KAAAC,2BAA6B,IAAI,IAIjC,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,YAA4B,GAIrC,KAAAC,uBAAwB,QAC9B,KACA,SAACC,EAAkBC,GAGjB,EAAKC,UAAUC,cAAe,EAE9B,IAAMC,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAClBL,EAAGA,EACHC,EAAGA,GAGA,EAAKK,gBAAgBF,EAAcC,KAGxC,EAAKE,KAAKP,EAAGC,GAEb,EAAKR,6BAA6B1D,KAAK,CACrCyE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAEjB,IAIM,KAAAI,eAAkC,KA2DlC,KAAAC,yBAA0B,QAChC,KACA,SAACC,EAAsBC,GAGrB,EAAKV,UAAUW,gBAAiB,EAEhC,IAAMC,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKE,OAAON,EAAOC,GAGnB,EAAKjB,2BAA2B5D,KAAK,CACnCyE,KAAM,EACNM,SAAUA,EACVC,QAASA,IAEb,IAIM,KAAAG,iBAAoC,KAmF1CvG,KAAKwG,UAAYnC,EACjBrE,KAAKuF,UAAYjB,EAEZC,GAAWvE,KAAKyG,MACvB,CAszBF,OA99BU,YAAAC,qBAAR,SAA6BtG,GAA7B,WAGuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAKb3C,KAAK8F,gBAAiB,QACpB1F,GACA,SAACiF,EAAkBC,GACjB,IAAMG,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAAEL,EAAC,EAAEC,EAAC,GAE1B,EAAKqB,KAAO,EAAH,KACJ,EAAKA,MAAI,CACZC,YAAY,IAGT,EAAKjB,gBAAgBF,EAAcC,KAIxC,EAAKH,UAAUC,cAAe,EAE9B,EAAKqB,YAAYxB,EAAGC,GAEpB,EAAKT,kBAAkBzD,KAAK,CAC1ByE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAGf,EAAKN,sBAAsBC,EAAGC,GAChC,IAEJ,EAIQ,YAAAwB,qBAAR,WACM9G,KAAK8F,iBACP9F,KAAK8F,iBACL9F,KAAK8F,eAAiB,KAE1B,EAsCU,YAAAiB,uBAAV,SAAiC3G,GAAjC,WAEuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAIb3C,KAAKuG,kBAAmB,QACtBnG,GACA,SAAC4F,EAAsBC,GAQrB,GALA,EAAKV,UAAUW,gBAAiB,EAK5B,EAAK7B,MAAMV,OAAS,EAAKU,MAAMV,MAAM1D,OAAS,EAAG,CAC7C,MAGF,EAAKwE,gBAAgBuC,wBAFhBC,EAAU,QACTC,EAAW,SAGrB,OAAQ,EAAK7C,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2C,GAAUiB,EACV,MACF,IAAK,OACL,IAAK,QACHlB,GAASiB,E,CAKf,IAAMd,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKe,cAAcnB,EAAOC,GAE1B,EAAKlB,oBAAoB3D,KAAK,CAC5ByE,KAAM,EACNM,SAAQ,EACRC,QAAO,IAGT,EAAKL,wBAAwBC,EAAOC,GACtC,IAEJ,EAIQ,YAAAmB,uBAAR,WACMpH,KAAKuG,mBACPvG,KAAKuG,mBACLvG,KAAKuG,iBAAmB,KAE5B,EAsBU,YAAAE,KAAV,WAOEzG,KAAKwE,WAAaxE,KAAKqH,4BACvBrH,KAAKyE,gBAAkBzE,KAAKsH,wBAO5BtH,KAAK0E,gBAAkB1E,KAAKuH,mBAG5BvH,KAAKwE,WAAW5D,YAAYZ,KAAK0E,iBACjC1E,KAAKwE,WAAW5D,YAAYZ,KAAKyE,iBAGjCzE,KAAKmH,cAAcnH,KAAKwG,UAAUR,MAAOhG,KAAKwG,UAAUP,QAExDjG,KAAKwH,oBAAoBxH,KAAKwG,UAAUlD,cAC1C,EAMQ,YAAA+D,0BAAR,eACMI,EADN,OAmGE,OAjGIzH,KAAKqE,MAAMT,eACb6D,EAAMpH,SAASC,cAAc,KAEzBN,KAAKqE,MAAMR,KACb4D,EAAIC,KAAO1H,KAAKqE,MAAMR,KAEtB4D,EAAIlH,UAAY,uBAGlBkH,EAAMpH,SAASC,cAAc,QACzBC,UAAY,qBAGlBkH,EAAIE,UAAUC,IAAI,uBACd5H,KAAKqE,MAAMP,SACb2D,EAAIE,UAAUC,IAAI,aAEpBH,EAAII,MAAMC,KAAO,UAAG9H,KAAKqE,MAAMgB,EAAC,MAChCoC,EAAII,MAAME,IAAM,UAAG/H,KAAKqE,MAAMiB,EAAC,MAE3BtF,KAAKqE,MAAMD,cACbqD,EAAIE,UAAUC,IAAI,sBAIpBH,EAAI3E,iBAAiB,YAAY,SAAAC,GAC1B,EAAK4D,KAAKnB,cAAiB,EAAKmB,KAAKT,iBACxC,EAAK8B,eACL,EAAKC,aAEL,EAAKrD,qBAAqBxD,KAAK,CAC7ByE,KAAM,EACN5C,YAAaF,IAGnB,IACA0E,EAAI3E,iBAAiB,SAAS,SAAAC,GAC5B,GAAI,EAAK4D,KAAKuB,SACZnF,EAAEC,iBACFD,EAAEoF,uBAGF,GAAI,EAAK3B,UAAU5C,eAAwC,MAAvB,EAAK4C,UAAU3C,KAAc,CAC/D,IAAMuE,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GAGtB,IAFA,IAAIC,EAAOvF,EAAEwF,eACTC,EAAc,2BACTjG,EAAQ,EAAGA,EAAQ+F,EAAKrI,OAAQsC,IAAS,CAChD,IAAMnC,EAAUkI,EAAK/F,GACrB,GACgBkG,MAAdrI,EAAQyC,IACM,MAAdzC,EAAQyC,IACM,IAAdzC,EAAQyC,KAEiC,IAArCzC,EAAQyC,GAAG6F,SAASF,GAAuB,CAC7CA,EAAcpI,EAAQyC,GACtB,K,EAKN,IAAM8F,EAActI,SAASuI,eAAeJ,GACzB,MAAfG,IACFA,EAAYhB,UAAUC,IAAI,eAC1Be,EAAY/H,YAAYwH,G,CAKzB,EAAKzB,KAAKnB,cAAiB,EAAKmB,KAAKT,gBACxC,EAAKvB,kBAAkBvD,KAAK,CAC1ByE,KAAM,EACN5C,YAAaF,GAGnB,IAGI/C,KAAK2G,KAAKkC,iBACZpB,EAAIE,UAAUC,IAAI,kBAEhB5H,KAAK2G,KAAKuB,UACZT,EAAIE,UAAUC,IAAI,cAEhB5H,KAAK2G,KAAKmC,YACZrB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKoC,YACZtB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKC,YACZa,EAAIE,UAAUC,IAAI,eAGbH,CACT,EAMU,YAAAH,sBAAV,WACE,IAAMlH,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,4BAEpB,IAAMoD,EAAQ3D,KAAKgJ,6BACnB,GAAIrF,EAAM1D,OAAS,EAAG,CAEpB,IAAMgJ,EAAQ5I,SAASC,cAAc,SAC/B4I,EAAM7I,SAASC,cAAc,MAC7B6I,EAAY9I,SAASC,cAAc,MACnC8I,EAAY/I,SAASC,cAAc,MACnC+I,EAAOhJ,SAASC,cAAc,MAUpC,OARA+I,EAAKC,UAAY3F,EACjBuF,EAAItI,YAAYyI,GAChBJ,EAAMrI,YAAYuI,GAClBF,EAAMrI,YAAYsI,GAClBD,EAAMrI,YAAYwI,GAClBH,EAAMpB,MAAM0B,UAAY,SAGhBvJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAM/C7F,EAAQQ,YAAYqI,E,CAGtB,OAAO7I,CACT,EAKU,YAAA4I,2BAAV,WAEE,IAAM3E,EAAQrE,KAAKqE,MAEnB,OAAO,QACL,CACE,CACEmF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,UACPC,MAA2B,MAApBpF,EAAMsF,WAAqBtF,EAAMsF,WAAa,IAEvD,CACEH,MAAO,qBACPC,MAAiC,MAA1BpF,EAAMuF,iBAA2BvF,EAAMuF,iBAAmB,IAEnE,CACEJ,MAAO,YACPC,MAA6B,MAAtBpF,EAAMwF,aAAuBxF,EAAMwF,aAAe,IAE3D,CACEL,MAAO,WACPC,MAA2B,MAApBpF,EAAMyF,WAAqBzF,EAAMyF,WAAa,IAEvD,CACEN,MAAO,sBACPC,MAAkC,MAA3BpF,EAAM0F,kBAA4B1F,EAAM0F,kBAAoB,KAGvE/J,KAAKqE,MAAMV,OAAS,GAExB,EAMU,YAAAqG,iBAAV,SAA2B5J,GACzBA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,EAAP,GAAYtJ,KAAKwG,UACnB,E,IAQA,SAAiByD,GACfjK,KAAKkK,SAASD,EAChB,E,gCAOU,YAAAC,SAAV,SAAmBD,GACjB,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAKwG,UAAYyD,EAKbjK,KAAKoK,gBAAgBD,EAAWF,IAClCjK,KAAKqK,OAAOF,EAAWnK,KAAKuF,UAChC,EAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYvF,KAAKuF,UACnB,E,IAQA,SAAgB+E,GACdtK,KAAKuK,QAAQD,EACf,E,gCAOO,YAAAC,QAAP,SAAeD,GACb,IAAME,EAAexK,KAAKuF,UAE1BvF,KAAKuF,UAAY,EAAH,KACTiF,GACAF,QAI+B,IAA3BA,EAAY1D,YACnB4D,EAAa5D,aAAe0D,EAAY1D,YAExC5G,KAAKkF,6BAA6B9D,KAAK,CACrCqJ,SAAUH,EAAY1D,aAQ1B5G,KAAKqK,OAAOrK,KAAKwG,UAAWgE,EAC9B,EAcU,YAAAJ,gBAAV,SAA0BD,EAAkBF,GAC1C,OAAOE,IAAcF,CACvB,EAMO,YAAAI,OAAP,SACEF,EACAO,QADA,IAAAP,IAAAA,EAAA,WACA,IAAAO,IAAAA,EAAA,MAEIP,GACFnK,KAAKgK,iBAAiBhK,KAAK0E,iBAGxByF,IAAanK,KAAK2F,gBAAgBwE,EAAWnK,KAAKqE,SACrDrE,KAAK6G,YAAY7G,KAAKqE,MAAMgB,EAAGrF,KAAKqE,MAAMiB,GAExC6E,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI1ByF,IAAanK,KAAKqG,YAAY8D,EAAWnK,KAAKqE,SACjDrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAE9CkE,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI/B,IAAMiG,EAAe3K,KAAKyE,gBAAgB6E,UACpCsB,EAAe5K,KAAKsH,wBAAwBgC,UAiBlD,GAhBIqB,IAAiBC,IACnB5K,KAAKyE,gBAAgB6E,UAAYsB,GAG9BT,GAAaA,EAAU7G,gBAAkBtD,KAAKqE,MAAMf,eACvDtD,KAAKwH,oBAAoBxH,KAAKqE,MAAMf,eAGjC6G,GAAaA,EAAUrG,UAAY9D,KAAKqE,MAAMP,UAC7C9D,KAAKqE,MAAMP,QACb9D,KAAKwE,WAAWmD,UAAUC,IAAI,aAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,cAIjCV,GAAaA,EAAUvG,gBAAkB5D,KAAKqE,MAAMT,cAAe,CACrE,IAAMkH,EAAY9K,KAAKqH,4BAEvByD,EAAUxB,UAAYtJ,KAAKwE,WAAW8E,UAGtC,IADA,IAAMyB,EAAQ/K,KAAKwE,WAAWwG,WACrBC,EAAI,EAAGA,EAAIF,EAAM9K,OAAQgL,IAChC,GAA0B,OAAtBF,EAAME,GAAGC,SAAmB,CAC9B,IAAIC,EAAgBnL,KAAKwE,WAAW4G,iBAClCL,EAAME,GAAGC,UAEW,OAAlBC,GACFL,EAAUO,iBAAsBF,EAAcG,Y,CAKjB,OAA/BtL,KAAKwE,WAAW+G,YAClBvL,KAAKwE,WAAW+G,WAAWC,aAAaV,EAAW9K,KAAKwE,YAI1DxE,KAAKwE,WAAasG,C,CAuCpB,GAnCEX,GACAnK,KAAKqE,MAAMT,eACXuG,EAAUtG,OAAS7D,KAAKqE,MAAMR,MAEN,OAApB7D,KAAKqE,MAAMR,MACb7D,KAAKwE,WAAWiH,aAAa,OAAQzL,KAAKqE,MAAMR,MAMjD6G,GACDA,EAASxC,WAAalI,KAAK2G,KAAKuB,UAChCwC,EAAS7B,kBAAoB7I,KAAK2G,KAAKkC,kBAEnC7I,KAAK2G,KAAKuB,WAA0C,IAA9BlI,KAAK2G,KAAKkC,iBAClC7I,KAAKwE,WAAWmD,UAAUC,IAAI,cAC9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,wBAEjC7K,KAAKwE,WAAWmD,UAAUkD,OAAO,cAE7B7K,KAAKqE,MAAMD,cACbpE,KAAKwE,WAAWmD,UAAUC,IAAI,wBAK/B8C,GAAYA,EAAS5B,aAAe9I,KAAK2G,KAAKmC,aAC7C9I,KAAK2G,KAAKmC,WACZ9I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,iBAIhCH,GAAYA,EAAS3B,aAAe/I,KAAK2G,KAAKoC,WAAY,CAC7D,GAAI/I,KAAK2G,KAAKoC,WAAY,CACxB/I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B,IAAMQ,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GACtBrI,KAAKwE,WAAW5D,YAAYwH,E,KACvB,CACLpI,KAAKwE,WAAWmD,UAAUkD,OAAO,eAEjC,IAAMa,EAAM1L,KAAKwE,WAAWmH,cAC1B,+BAEF,GAAY,OAARD,EAAc,CAChB,IAAM,EAASA,EAAIE,cACJ,OAAX,GACF,EAAOC,YAAYH,E,EAKzB1L,KAAKgK,iBAAiBhK,KAAK0E,gB,CAExBgG,GAAYA,EAAS9D,aAAe5G,KAAK2G,KAAKC,aAC7C5G,KAAK2G,KAAKC,YACZ5G,KAAKwE,WAAWmD,UAAUC,IAAI,eAC9B5H,KAAKwE,WAAWiH,aAAa,KAAK,wBAElCzL,KAAKwE,WAAWmD,UAAUkD,OAAO,eACjC7K,KAAKwE,WAAWsH,gBAAgB,OAGtC,EAKO,YAAAjB,OAAP,WAEE7K,KAAKiF,mBAAmB7D,KAAK,CAAEyE,KAAM7F,OAErCA,KAAKmF,YAAYxE,SAAQ,SAAAoL,GACvB,IACEA,EAAWC,SACK,CAAhB,MAAOC,GAAS,CACpB,IAEAjM,KAAKwE,WAAWqG,QAClB,EASU,YAAAlF,gBAAV,SACEF,EACAC,GAEA,OAAOD,EAAaJ,IAAMK,EAAYL,GAAKI,EAAaH,IAAMI,EAAYJ,CAC5E,EAMU,YAAAkC,oBAAV,SAA8B0E,GAC5B,OAAQA,GACN,IAAK,KACHlM,KAAKwE,WAAWqD,MAAMsE,cAAgB,iBACtC,MACF,IAAK,OACHnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,cACtC,MACF,IAAK,QACHnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,MACtC,MAEF,QACEnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,SAK1C,IAAMC,EAASpM,KAAKyE,gBAAgB4H,qBAAqB,SACnDpD,EAAQmD,EAAOnM,OAAS,EAAImM,EAAOvG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAKnD,EAOU,YAAAY,YAAV,SAAsBxB,EAAWC,GAC/BtF,KAAKwE,WAAWqD,MAAMC,KAAO,UAAGzC,EAAC,MACjCrF,KAAKwE,WAAWqD,MAAME,IAAM,UAAGzC,EAAC,KAClC,EAOO,YAAAM,KAAP,SAAYP,EAAWC,GACrBtF,KAAK6G,YAAYxB,EAAGC,GACpBtF,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACbgB,EAAC,EACDC,EAAC,GAEL,EASU,YAAAe,YAAV,SAAsBF,EAAgBC,GACpC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOU,YAAAkB,cAAV,SAAwBnB,EAAeC,GAUrC,GAPqB,IAAnBjG,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAEX3C,KAAK0E,gBAAgBmD,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC9DhG,KAAK0E,gBAAgBmD,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,IAG/DjG,KAAKqE,MAAMV,OAAS3D,KAAKqE,MAAMV,MAAM1D,OAAS,EAAG,CAEnD,IAAMmM,EAASpM,KAAKyE,gBAAgB4H,qBAAqB,SACnDpD,EAAQmD,EAAOnM,OAAS,EAAImM,EAAOvG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2F,EAAMpB,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC/C,MACF,IAAK,OACL,IAAK,QACHiD,EAAMpB,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,G,CAK5D,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKmH,cAAcnB,EAAOC,GAC1BjG,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAMO,YAAAqG,QAAP,SAAehL,GAMb,IAAMyK,EAAa/L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAS,WAAP,SAAkBlL,GAMhB,IAAMyK,EAAa/L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAU,QAAP,SAAenL,GAMb,IAAMyK,EAAa/L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAW,mBAAP,SAA0BpL,GAMxB,IAAMyK,EAAa/L,KAAK8E,6BAA6BvD,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAY,UAAP,SAAiBrL,GAMf,IAAMyK,EAAa/L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAa,iBAAP,SAAwBtL,GAMtB,IAAMyK,EAAa/L,KAAKgF,2BAA2BzD,GAAGD,GAGtD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAc,SAAP,SAAgBvL,GAMd,IAAMyK,EAAa/L,KAAKiF,mBAAmB1D,GAAGD,GAG9C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAe,mBAAP,SACExL,GAOA,IAAMyK,EAAa/L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAOO,YAAA9D,WAAP,WACEjI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK0G,qBAAqB1G,KAAKwE,YAET,KAApBxE,KAAKqE,MAAM1B,MACS,KAApB3C,KAAKqE,MAAM1B,MAEX3C,KAAK+G,uBAAuB/G,KAAKwE,WAErC,EAMO,YAAAwD,aAAP,WACEhI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK8G,uBACmB,KAApB9G,KAAKqE,MAAM1B,MACb3C,KAAKoH,wBAET,EAGO,YAAA2F,iBAAP,WACE,OAAOC,EAAkBD,iBAAiB/M,KAAKqE,MACjD,EAGc,EAAA0I,iBAAd,SAA+B1I,GAC7B,IAAM7C,EAAgB6C,EAAM1B,KA1nCzB,SAAmBE,GACxB,IAAIrB,EAAQ,GACZ,OAAQqB,GACN,KAAK,EACHrB,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,EAYL,KAAK,EAGL,KAAK,EAGL,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,gBACV,MAjBF,KAAK,EAkBL,KAAK,EAkBL,KAAK,GAGL,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,mBACV,MAtCF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,QACV,MAaF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,WACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,OACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,QACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,uBACV,MAOF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,wBACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,cACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,eACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,YACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,eACV,MACF,QACEzL,GAAQ,IAAAyL,GAAE,QAId,OAAOzL,CACT,CAyiCuC0L,CAAU7I,EAAM1B,OAAQ,IAAAsK,GAAE,QAC7D,OAAO,IAAI,EAAAE,cAAc3L,EAAO,GAAI,GACtC,EACF,EAviCA,GAyiCA,M,ihCCvwCM4L,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,aACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,sBAAsBzM,GACpC,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETJ,gBAAiBD,oBAAoBrM,EAAKsM,iBAC1CE,UAAWD,eAAevM,EAAKwM,WAC/BI,WAAW,wCAAc5M,EAAK4M,WAAa,UAAY5M,EAAK4M,aACzD,wCAAmB5M,GAE1B,CAEA,oD,wDA6CA,QA7CuC,4BAC3B,oBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,cAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,oBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,UA7CA,CAAuC,uC,ijCCrChC,SAASC,uBACdrN,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETY,QAAQ,wCAAWtN,EAAKsN,OAAQ,MAChC5E,MAAO6E,WAAWvN,EAAK0I,OACvB8E,QAAQ,wCAAcxN,EAAKwN,QAAU,UAAYxN,EAAKwN,OACtDC,iBAAiB,wCAAczN,EAAKyN,iBAChC,UACAzN,EAAKyN,mBACN,wCAAmBzN,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAmKA,QAnKwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEjCmO,OAASpO,SAASC,cAAc,OACtCmO,OAAOlO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW4E,YAAc1O,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMmK,iBACvCC,OAAO7N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK4O,cAAc5O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMoF,YAAcxO,SAASC,cAAc,MAC3CuO,YAAYtO,UAAY,2BACxBsO,YAAYH,YAAc,UAAGjF,OAC7BoF,YAAYhH,MAAM8G,MAAQ3O,KAAKqE,MAAMkK,OACrCE,OAAO7N,YAAYiO,aAEnBzO,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,eAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMgB,QAAU1O,QAAQiM,qBAAqB,KACpCpB,EAAI,EAAGA,EAAI6D,QAAQ7O,OAAQgL,IAClC6D,QAAQ7D,GAAGpD,MAAMkH,OAAS,MAK5B,IADA,IAAMC,eAAiB5O,QAAQ6O,uBAAuB,kBAC7ChE,EAAI,EAAGA,EAAI+D,eAAe/O,OAAQgL,IACzC+D,eAAe/D,GAAGJ,SAKpB,IADA,IAAMkD,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAaT,OAHA7K,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQ8O,aAAaT,OAAQrO,QAAQ+O,YAE9B/O,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzB,IAAMqO,OAASpO,SAASC,cAAc,OACtCmO,OAAOlO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW4E,YAAc1O,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMmK,iBACvCC,OAAO7N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK4O,cAAc5O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMoF,YAAcxO,SAASC,cAAc,MAC3CuO,YAAYtO,UAAY,2BACxBsO,YAAYH,YAAc,UAAGjF,OAC7BoF,YAAYhH,MAAM8G,MAAQ3O,KAAKqE,MAAMkK,OACrCE,OAAO7N,YAAYiO,aAEnBzO,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQ8O,aAAaT,OAAQrO,QAAQ+O,YAIrC,IADA,IAAML,QAAU1O,QAAQiM,qBAAqB,KACpCpB,EAAI,EAAGA,EAAI6D,QAAQ7O,OAAQgL,IAClC6D,QAAQ7D,GAAGpD,MAAMkH,OAAS,MAK5B,IADA,IAAMC,eAAiB5O,QAAQ6O,uBAAuB,kBAC7ChE,EAAI,EAAGA,EAAI+D,eAAe/O,OAAQgL,IACzC+D,eAAe/D,GAAGJ,SAKpB,IADA,IAAMkD,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EAEU,qBAAAS,cAAV,SACEQ,EACAC,EACAC,EACAC,EACAC,GAUA,GARAA,OAA6B,IAAZA,EAA0BA,EAAU,IAIhDD,IACHA,EAAa,IAGXF,GACF,GAAII,KAAKC,MAAMN,IAAWA,EACxB,MAAO,OAEJ,CACLG,IACA,IAAMI,EAAe3P,KAAK4P,IAAI,IAAKL,EAAY,GAC/CH,EACEK,KAAKC,MAAMN,EAASS,OAAOpM,SAASkM,IACpCE,OAAOpM,SAASkM,E,CAMpB,IAHA,IACIG,EAAM,EAEHL,KAAKM,IAAIX,IAAWI,GAEzBM,IACAV,GAAkBI,EAapB,OATEJ,EADEI,EACOC,KAAKC,MA7BD,EA6BON,GA7BP,EA+BJK,KAAKC,MA/BD,EA+BON,GAGlB5L,MAAM4L,KACRA,EAAS,GAGJA,EAAS,IAnBH,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAmBxBU,GAAOR,CACtC,EAEU,qBAAAM,IAAV,SAAcI,EAAe/P,EAAgBgQ,GAC3C,IAAIC,EAAMF,EAAQ,GAClB,OAAO/P,GAAUiQ,EAAIjQ,OACjBiQ,EACAlQ,KAAK4P,IAAIM,EAAMD,EAAShQ,EAAQgQ,EACtC,EACF,WAnKA,CAAwC,uC,kjCC3BjC,SAASE,uBACdpP,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAET2C,uBAAuB,wCAAcrP,EAAKqP,uBACtC,UACArP,EAAKqP,yBACN,wCAAmBrP,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAgDA,QAhDwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,cACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM+L,uBAGZ,IAA7BpQ,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM+L,uBAGZ,IAA7BpQ,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,WAhDA,CAAwC,uC,qjCCzBjC,SAASkC,0BACdtP,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN2N,SAAS,wCAAWvP,EAAKuP,QAAS,MAClCC,YAAaxP,EAAKwP,YAClB9C,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,QAEN,wCAAmB1M,GAE1B,CAEA,4D,wDAmDA,QAnD2C,gCAC/B,wBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,iBACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,IAAIuF,SAAWpQ,QAAQ6O,uBACrB,cAIF,OAFAuB,SAAS,GAAG3I,MAAM8G,MAAQ3O,KAAKqE,MAAMkM,YAE9BnQ,OACT,EAEU,wBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAG/B,IAAMgD,IAAMpQ,SAASC,cAAc,OACnCmQ,IAAInH,UAAYtJ,KAAKqE,MAAMoJ,KAE3B,IADA,IAAMM,QAAU0C,IAAIpE,qBAAqB,UAChCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,QAI9B,IAAIqC,SAAWpQ,QAAQ6O,uBACrB,cAEFuB,SAAS,GAAG3I,MAAM8G,MAAQ3O,KAAKqE,MAAMkM,WACvC,EACF,cAnDA,CAA2C,uC,sjCCjBrCG,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,wBACd/P,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,EACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETkD,eAAgBD,oBAAoB3P,EAAK4P,gBACzCtC,QAAQ,wCAAWtN,EAAKsN,OAAQ,MAChCwC,UAAWD,eAAe7P,EAAK8P,WAC/BE,eAAe,wCAAWhQ,EAAKgQ,cAAe,SAC3C,wCAAmBhQ,KACnB,wCAAqBA,GAE5B,CAEA,wD,wDA8CA,QA9CyC,8BAC7B,sBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,gBAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,sBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,YA9CA,CAAyC,uC,qDCpFzC,IAAM6C,EAAQ,6BA6Cd,IApCwB,SACtBC,EACAzP,EACA,G,IAAA,aAA2C,CAAC,EAAC,EAA3C0P,EAAI,OAAEvC,EAAK,QAAEwC,EAAI,OAAEC,EAAK,QAEpBtG,EAAYzK,SAASC,cAAc,UACzCwK,EAAUtJ,MAAQA,EAClBsJ,EAAUvK,UAAY,gBAAS0Q,EAAeI,UAE1CH,GAAMpG,EAAUnD,UAAUC,IAAI,aAAMsJ,IAEpCC,EAAMrG,EAAUnD,UAAUC,IAAI,WACzBwJ,GAAOtG,EAAUnD,UAAUC,IAAI,YAExC,IAAM0J,EAAOjR,SAASkR,gBAAgBP,EAAO,OAE7CM,EAAK7F,aACH,UACA,cAAOwF,EAAeK,KAAK,GAAE,YAAIL,EAAeK,KAAK,KAEnD3C,GAAO2C,EAAK7F,aAAa,OAAQkD,GAGrC,IAAMrG,EAAOjI,SAASkR,gBAAgBP,EAAO,QACvCQ,EAC8B,iBAA3BP,EAAeK,KAAK,GACvBL,EAAeK,KAAK,GACpBL,EAAeK,KAAK,GAAG,GAM7B,OALAhJ,EAAKmD,aAAa,IAAK+F,GAEvBF,EAAK1Q,YAAY0H,GACjBwC,EAAUlK,YAAY0Q,GAEfxG,CACT,C,wBCrCA,sBACU,KAAA2G,UAA2B,GAC3B,KAAAC,eAAgC,GAEjC,KAAAnQ,GAAK,SAACD,GAEX,OADA,EAAKmQ,UAAUlF,KAAKjL,GACb,CACL0K,QAAS,WAAM,SAAK2F,IAAIrQ,EAAT,EAEnB,EAEO,KAAAsQ,KAAO,SAACtQ,GACb,EAAKoQ,eAAenF,KAAKjL,EAC3B,EAEO,KAAAqQ,IAAM,SAACrQ,GACZ,IAAMuQ,EAAgB,EAAKJ,UAAUK,QAAQxQ,GACzCuQ,GAAiB,GAAG,EAAKJ,UAAUM,OAAOF,EAAe,EAC/D,EAEO,KAAAzQ,KAAO,SAAC4Q,GAEb,EAAKP,UAAU9Q,SAAQ,SAAAW,GAAY,OAAAA,EAAS0Q,EAAT,IAGnC,EAAKN,eAAe/Q,SAAQ,SAAAW,GAAY,OAAAA,EAAS0Q,EAAT,IACxC,EAAKN,eAAiB,EACxB,EAEO,KAAAO,KAAO,SAACC,GAAkC,SAAK3Q,IAAG,SAAAwB,GAAK,OAAAmP,EAAG9Q,KAAK2B,EAAR,GAAb,CACnD,C,ktBChBO,SAASoP,EAAc1I,EAAgB2I,GAC5C,MAAqB,iBAAV3I,EAA2BA,EACjB,iBAAVA,GAAsBA,EAAMxJ,OAAS,IAAMuD,MAAMC,SAASgG,IAC5DhG,SAASgG,GACN2I,CACd,CAQO,SAASC,EAAgB5I,EAAgB2I,GAC9C,MAAqB,iBAAV3I,EAA2BA,EAEnB,iBAAVA,GACPA,EAAMxJ,OAAS,IACduD,MAAM8K,WAAW7E,IAEX6E,WAAW7E,GACR2I,CACd,CAOO,SAASE,EAAc7I,GAC5B,OAAgB,MAATA,GAAkC,IAAjBA,EAAMxJ,MAChC,CAQO,SAASsS,EACd9I,EACA2I,GAEA,MAAwB,iBAAV3I,GAAsBA,EAAMxJ,OAAS,EAAIwJ,EAAQ2I,CACjE,CAOO,SAASI,EAAa/I,GAC3B,MAAqB,kBAAVA,EAA4BA,EACb,iBAAVA,EAA2BA,EAAQ,EACzB,iBAAVA,IAAqC,MAAVA,GAA2B,SAAVA,EAE9D,CA4BO,SAASgJ,EACdhJ,EACAxJ,EACA2P,QAAA,IAAAA,IAAAA,EAAA,KAEqB,iBAAVnG,IAAoBA,EAAQ,UAAGA,IACvB,iBAARmG,IAAkBA,EAAM,UAAGA,IAEtC,IAAM8C,EAAazS,EAASwJ,EAAMxJ,OAClC,GAAmB,IAAfyS,EAAkB,OAAOjJ,EAC7B,GAAIiJ,EAAa,EAAG,OAAOjJ,EAAMkJ,OAAOlD,KAAKM,IAAI2C,IAEjD,GAAIA,IAAe9C,EAAI3P,OAAQ,MAAO,UAAG2P,GAAG,OAAGnG,GAC/C,GAAIiJ,EAAa9C,EAAI3P,OAAQ,MAAO,UAAG2P,EAAIgD,UAAU,EAAGF,IAAW,OAAGjJ,GAMtE,IAJA,IAAMoJ,EAAcpD,KAAKqD,MAAMJ,EAAa9C,EAAI3P,QAC1C8S,EAAaL,EAAa9C,EAAI3P,OAAS4S,EAEzCG,EAAS,GACJ/H,EAAI,EAAGA,EAAI4H,EAAa5H,IAAK+H,GAAUpD,EAEhD,OAAmB,IAAfmD,EAAyB,UAAGC,GAAM,OAAGvJ,GAClC,UAAGuJ,GAAM,OAAGpD,EAAIgD,UAAU,EAAGG,IAAW,OAAGtJ,EACpD,CASO,SAASwJ,EAAqBlS,GACnC,MAAO,CACLsE,EAAG8M,EAAWpR,EAAKsE,EAAG,GACtBC,EAAG6M,EAAWpR,EAAKuE,EAAG,GAE1B,CAQO,SAAS4N,EAAiBnS,GAC/B,GACgB,MAAdA,EAAKiF,OACLxC,MAAMC,SAAS1C,EAAKiF,SACL,MAAfjF,EAAKkF,QACLzC,MAAMC,SAAS1C,EAAKkF,SAEpB,MAAM,IAAIvC,UAAU,iBAGtB,MAAO,CACLsC,MAAOvC,SAAS1C,EAAKiF,OACrBC,OAAQxC,SAAS1C,EAAKkF,QAE1B,CA8BO,SAASkN,EAAmBpS,GACjC,OAAO,EAAP,CACEqS,SAAUjB,EAAWpR,EAAKqS,SAAU,MACpCtJ,WAAYyI,EAAiBxR,EAAK+I,WAAY,MAC9CC,kBAAmBwI,EAAiBxR,EAAKgJ,kBAAmB,MAC5D8D,eAAgB2E,EAAazR,EAAK8M,iBA5B/B,SAA2B9M,GAChC,IAAMsS,EAA6B,CACjCC,QAASnB,EAAWpR,EAAKuS,QAAS,MAClCC,UAAWhB,EAAiBxR,EAAKwS,UAAW,MAC5C5J,WAAY4I,EAAiBxR,EAAK4I,WAAY,MAC9CC,iBAAkB2I,EAAiBxR,EAAK6I,iBAAkB,MAC1DC,aAAc0I,EAAiBxR,EAAK8I,aAAc,MAClD+D,cAAe4E,EAAazR,EAAK6M,gBAGnC,OAA6B,MAAtB7M,EAAKyS,cACR,EAAD,CACGA,cAAezS,EAAKyS,eACjBH,GAELA,CACN,CAaOI,CAAkB1S,GAEzB,CAQO,SAAS2S,EACd3S,GAEA,IAAI4S,EAA0D,CAC5DC,uBAAwB,WAE1B,OAAQ7S,EAAK6S,wBACX,IAAK,SACH,IAAMC,EAAS1B,EAAWpR,EAAK+S,6BAA8B,MAC7D,GAAc,MAAVD,EACF,MAAM,IAAInQ,UAAU,0CAElB3C,EAAK+S,+BACPH,EAA0B,CACxBC,uBAAwB,SACxBE,6BAA8BD,IAElC,MAEF,IAAK,UACH,IAAME,EAAmB5B,EACvBpR,EAAKiT,uCACL,MAEIC,EAAoB9B,EACxBpR,EAAKmT,wCACL,MAEF,GAAwB,MAApBH,GAAiD,MAArBE,EAC9B,MAAM,IAAIvQ,UAAU,0CAGtBiQ,EAA0B,CACxBC,uBAAwB,UACxBI,uCAAwCD,EACxCG,wCAAyCD,GAM/C,OAAO,EAAP,CACEE,eAAgBhC,EAAWpR,EAAKoT,eAAgB,MAChDC,mBAAoBjC,EAAWpR,EAAKqT,mBAAoB,OACrDT,EAEP,CAOO,SAASU,EAAgBtT,GAC9B,IAnL6B0I,EAmLvB6K,GAA0C,MAnLnB7K,EAmLE1I,EAAKuT,sBAlLf5K,KAAaD,EACR,iBAAVA,EAA2B,IAAIC,KAAa,IAARD,GAEjC,iBAAVA,GACNoG,OAAOrM,MAAM,IAAIkG,KAAKD,GAAO8K,WA8KgB,KA5KvC,IAAI7K,KAAKD,IA6KlB,GAAmB,OAAf6K,EAAqB,MAAM,IAAI5Q,UAAU,0BAE7C,IAAI8Q,EAAQ,KAIZ,OAHIzT,EAAKyT,iBAAiBC,MAAOD,EAAQzT,EAAKyT,MACf,iBAAfzT,EAAKyT,QAAoBA,EAAQ,IAAIC,MAAM1T,EAAKyT,QAEzD,CACLF,WAAU,EACVE,MAAK,EACLtM,SAAUsK,EAAazR,EAAKmH,UAC5BW,gBAAiB2J,EAAazR,EAAK8H,iBACnC6L,YAAalC,EAAazR,EAAK2T,aAC/B5L,YAAY,EACZC,YAAY,EACZvD,cAAc,EACdU,gBAAgB,EAChBU,YAAY,EACZ+N,UAAU,EAEd,CAQO,SAASC,EACdC,EACAC,GAEA,IAAMC,EAAO,UAAGF,EAAQ,aAAKC,EAAS,KACtC,MAAO,CACL,kBAAWC,GACX,eAAQA,GACR,cAAOA,GACP,aAAMA,GACN,UAAGA,GAEP,CAOO,SAASC,EAAahF,GAC3B,OAAOiF,mBAAmBC,OAAOC,OAAOC,KAAKpF,IAC/C,CASO,SAASqF,EAAUC,EAAYC,GACpC,QADoC,IAAAA,IAAAA,EAAA,MAChCA,GAAUC,MAAQA,KAAKC,eAOzB,OAAOD,KAAKC,eAAeF,EALiB,CAC1CG,IAAK,UACLC,MAAO,UACPC,KAAM,YAEoCC,OAAOP,GAGnD,IAAMI,EAAMjD,EAAQ6C,EAAKQ,UAAW,EAAG,GAEjCH,EAAQlD,EAAQ6C,EAAKS,WAAa,EAAG,EAAG,GACxCH,EAAOnD,EAAQ6C,EAAKU,cAAe,EAAG,GAG5C,MAAO,UAAGN,EAAG,YAAIC,EAAK,YAAIC,EAE9B,CAQO,SAASK,EAAUX,GACxB,IAAMY,EAAQzD,EAAQ6C,EAAKa,WAAY,EAAG,GACpCC,EAAU3D,EAAQ6C,EAAKe,aAAc,EAAG,GACxCC,EAAU7D,EAAQ6C,EAAKiB,aAAc,EAAG,GAE9C,MAAO,UAAGL,EAAK,YAAIE,EAAO,YAAIE,EAChC,CAWO,SAASE,EAAcC,EAAiBC,GAC7C,OAAOD,EAAOzU,QACZ,SAAC2U,EAAK,G,IAAEnN,EAAK,QAAEC,EAAK,QAAO,OAAAkN,EAAIC,QAAQpN,EAAOC,EAAnB,GAC3BiN,EAEJ,CAQO,SAASG,EAAeC,EAAeC,GAC5C,IAAIC,EAAO,EACX,OAAO,W,IAAC,sDACN,IAAMC,EAAMvN,KAAKuN,MACjB,KAAIA,EAAMD,EAAOF,GAEjB,OADAE,EAAOC,EACAF,EAAE,aAAIG,EACf,CACF,CAQO,SAASC,EAAYL,EAAeC,GACzC,IAAIK,EAA0B,KAC9B,OAAO,W,IAAC,sDACW,OAAbA,GAAmBjC,OAAOkC,aAAaD,GAC3CA,EAAWjC,OAAOlH,YAAW,WAC3B8I,EAAE,aAAIG,GACNE,EAAW,IACb,GAAGN,EACL,CACF,CAMA,SAASQ,EAAUC,EAAwBC,GAGzC,IAFA,IAAInS,EAAI,EACJC,EAAI,EAENiS,IACC1H,OAAOrM,MAAM+T,EAAGE,cAChB5H,OAAOrM,MAAM+T,EAAGG,YACjBH,IAAOC,GAEPnS,GAAKkS,EAAGE,WAAaF,EAAGI,WACxBrS,GAAKiS,EAAGG,UAAYH,EAAGK,UACvBL,EAAKA,EAAGM,aAEV,MAAO,CAAE9P,IAAKzC,EAAGwC,KAAMzC,EACzB,CAWO,SAASyS,EACd1X,EACAqM,EACAsL,GAEA,IAAMjN,EAAYiN,GAAiB3X,EAAQwL,cAGrCoM,EAAc5X,EAAQ6X,UAExBC,EAAuB,EACvBC,EAAuB,EACvBC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EACrCC,EAAqC,EAErCC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjD8S,EAAgB1Y,EAAQ4G,wBACxB+R,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOpM,SAASsV,GAG1BG,EAAoB/B,EAAS,GAAI1K,GAEjC0M,EAAoBtC,EAAS,GAAIpK,GAEjC2M,EAAa,SAACrW,GAElB,IAAIsC,EAAI,EACJC,EAAI,EAEF+T,EAAStW,EAAEuW,MACXC,EAASxW,EAAEyW,MACXC,EAAcJ,EAASjB,EACvBsB,EAAcH,EAASlB,EAGvBsB,EAAOnB,EAAgBxS,MAAQ8S,EAAc9S,MAAQiT,EAErDW,EAAOpB,EAAgBvS,OAAS6S,EAAc7S,OAASgT,EAEvDY,EACJR,EAAST,GACE,IAAVV,GACCuB,EAAc,GACdJ,EAAST,EAAgBN,EACvBwB,EACJT,EAASR,GACTY,EAAcvB,EAAQY,EAAc9S,MAAQiT,EAC1CT,EAAgBxS,OACjBkS,IAAUyB,GACTF,EAAc,GACdJ,EAAST,EAAgBe,EAAOrB,EAC9ByB,EACJR,EAASb,GACE,IAAVP,GACCuB,EAAc,GACdH,EAASb,EAAeH,EACtByB,EACJT,EAASZ,GACTe,EAAcvB,EAAQW,EAAc7S,OAASgT,EAC3CT,EAAgBvS,QACjBkS,IAAUyB,GACTF,EAAc,GACdH,EAASb,EAAekB,EAAOrB,GAEdlT,EAAjBwU,EA9BS,EA+BJC,EAAsBH,EACtBF,EAAcvB,GAMf,IAAG7S,EAtCE,IAkCOC,EAAhByU,EAhCS,EAiCJC,EAAuBJ,EACvBF,EAAcvB,GAGf,IAAG7S,EArCE,GAwCb8S,EAAaiB,EACbhB,EAAakB,EAETlU,IAAM6S,GAAS5S,IAAM6S,IAGzBgB,EAAkB9T,EAAGC,GACrB4T,EAAkB7T,EAAGC,GAGrB4S,EAAQ7S,EACR8S,EAAQ7S,EACV,EACM2U,EAAY,WAEhB/B,EAAQ,EACRC,EAAQ,EACRC,EAAa,EACbC,EAAa,EAEbhY,SAAS6Z,oBAAoB,YAAad,GAE1C/Y,SAAS6Z,oBAAoB,UAAWD,GAExC7Z,EAAQ6X,UAAYD,EAEpB3X,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,EACMC,EAAc,SAACtX,GAEnB,GAAiB,IAAbA,EAAEuX,OAAN,CAEAvX,EAAEoF,kBAGF/H,EAAQ6X,WAAY,EAGpB7X,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAIlC,IAAM8O,EAAgBjD,EAAUlX,EAAS0K,GACzCoN,EAAQqC,EAAczS,KACtBqQ,EAAQoC,EAAcxS,IAGtBqQ,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MAEflB,EAAsBvV,EAAEyX,QACxBjC,EAAsBxV,EAAE0X,QAGxBjC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjD8S,EAAgB1Y,EAAQ4G,wBACxB+R,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOpM,SAASsV,GAG5B1Y,SAASyC,iBAAiB,YAAasW,GAEvC/Y,SAASyC,iBAAiB,UAAWmX,GAErC5Z,SAAS8Z,KAAKtS,MAAMuS,WAAa,MAxCP,CAyC5B,EAMA,OAHAha,EAAQ0C,iBAAiB,YAAauX,GAG/B,WACLja,EAAQ8Z,oBAAoB,YAAaG,GACzCJ,GACF,CACF,CAUO,SAASS,EACdta,EACAuM,GAEA,IAGMgO,EAAkBta,SAASC,cAAc,OAC/Cqa,EAAgBpa,UAAY,mBAC5BH,EAAQQ,YAAY+Z,GAGpB,IAAM7P,EAAY1K,EAAQwL,cAEpBoM,EAAc5X,EAAQ6X,UAExB2C,EAA2B,EAC3BC,EAA6B,EAC7BzC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EAGrCE,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjDuU,EAAgBjD,EAAUlX,GAC1B0a,EAAaP,EAAcxS,IAC3BgT,EAAcR,EAAczS,KAC5BiR,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAAYpJ,OAAOpM,SAASsV,GAG1BiC,EAAsB7D,EAAS,GAAIxK,GAEnCsO,EAAsBpE,EAAS,GAAIlK,GAEnCuO,EAAe,SAACnY,GAEpB,IAAIiD,EAAQ4U,GAAa7X,EAAEuW,MAAQlB,GAC/BnS,EAAS4U,GAAc9X,EAAEyW,MAAQnB,GAEjCrS,IAAU4U,GAAa3U,IAAW4U,GAGpC7U,EAAQ4U,GACR7X,EAAEuW,MAAQyB,GAAeH,EAAYtC,KAInCtS,EAjDW,GAmDbA,EAnDa,GAoDJA,EAAQ+U,EAAc9B,EAAY,GAAKJ,IAEhD7S,EAAQ6S,EAAiBkC,GAEvB9U,EAvDY,GAyDdA,EAzDc,GA0DLA,EAAS6U,EAAa7B,EAAY,GAAKN,IAEhD1S,EAAS0S,EAAkBmC,GAI7BG,EAAoBjV,EAAOC,GAC3B+U,EAAoBhV,EAAOC,GAG3B2U,EAAY5U,EACZ6U,EAAa5U,EAEbmS,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MACjB,EACMS,EAAY,WAEhBW,EAAY,EACZC,EAAa,EACbzC,EAAa,EACbC,EAAa,EACbC,EAAsB,EAGtBjY,SAAS6Z,oBAAoB,YAAagB,GAE1C7a,SAAS6Z,oBAAoB,UAAWD,GAExC7Z,EAAQ6X,UAAYD,EAEpB3X,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,EA0CA,OAHAO,EAAgB7X,iBAAiB,aAtCb,SAACC,GACnBA,EAAEoF,kBAGF/H,EAAQ6X,WAAY,EAId,MAAoB7X,EAAQ4G,wBAA1BhB,EAAK,QAAEC,EAAM,SACrB2U,EAAY5U,EACZ6U,EAAa5U,EAEbmS,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MAEflB,EAAsBvV,EAAEyX,QACFzX,EAAE0X,QAGxBjC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjDuU,EAAgBjD,EAAUlX,GAC1B0a,EAAaP,EAAcxS,IAC3BgT,EAAcR,EAAczS,KAG5BzH,SAASyC,iBAAiB,YAAaoY,GAEvC7a,SAASyC,iBAAiB,UAAWmX,GAErC5Z,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,IAMO,WACLO,EAAgB9P,SAChBoP,GACF,CACF,CAGO,SAAShN,EAAEyJ,GAChB,OAAOA,CACT,CAmNO,SAASyE,EACdjL,EACAkL,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAA,UACA,IAAAC,IAAAA,EAAA,KAEOnL,EAAI/B,OAAOlO,OAASmb,EAAMlL,EAAIyC,OAAO,EAAGyI,GAAKjN,OAASkN,EAAUnL,CACzE,C,GC98BIoL,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBnI,GAE5B,IAAIoI,EAAeF,yBAAyBlI,GAC5C,QAAqB3K,IAAjB+S,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASJ,yBAAyBlI,GAAY,CAGjDqI,QAAS,CAAC,GAOX,OAHAE,oBAAoBvI,GAAUsI,EAAQA,EAAOD,QAASF,qBAG/CG,EAAOD,OACf,CCrBAF,oBAAoBK,EAAI,SAASH,EAASI,GACzC,IAAI,IAAIC,KAAOD,EACXN,oBAAoBQ,EAAEF,EAAYC,KAASP,oBAAoBQ,EAAEN,EAASK,IAC5EE,OAAOC,eAAeR,EAASK,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAG3E,ECPAP,oBAAoBQ,EAAI,SAASK,EAAKC,GAAQ,OAAOL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,EAAO,ECCtGd,oBAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAeR,EAASiB,OAAOC,YAAa,CAAElT,MAAO,WAE7DuS,OAAOC,eAAeR,EAAS,aAAc,CAAEhS,OAAO,GACvD,E,svBCqBMmT,EAA4B,SAChCC,GAEA,OAAQA,GACN,IAAK,UACL,IAAK,UACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,UAEb,EAWO,SAASC,EACd/b,GAEA,GAA6B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,OAAO,EAAP,UACK,QAAqB3C,IAAK,CAC7B4B,KAAM,EACNoa,SAAUhc,EAAKgc,SACfF,qBAAsBD,EAA0B7b,EAAK8b,sBACrDG,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDC,WAAW,QAAiBlc,EAAKkc,UAAW,SACzC,QAAmBlc,KACnB,QAAqBA,GAE5B,CAEA,+B,8CAwCA,QAxCyC,OAC7B,YAAAwG,iBAAV,WACE,IAAM2V,EAASld,KAAKqE,MAAM2Y,gBAAkBhd,KAAKqE,MAAM0Y,SACjD3c,EAAUC,SAASC,cAAc,OA0BvC,OAzBAF,EAAQG,UAAY,eACpBH,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAClCrL,EAAQyH,MAAMsV,gBAAkB,cAAOD,EAAM,KAC7C9c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,UAGJ,IAA7Btd,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAKC,OAAzB9N,KAAKqE,MAAM4Y,WACyB,aAApCjd,KAAKqE,MAAMwY,uBAEXzc,EAAQG,UAAY,kCACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aAAa,aAAczL,KAAKqE,MAAM4Y,YAGzC7c,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzB,IAAM8c,EAASld,KAAKqE,MAAM2Y,gBAAkBhd,KAAKqE,MAAM0Y,SACvD3c,EAAQyH,MAAMsV,gBAAkB,cAAOD,EAAM,IAC/C,EACF,EAxCA,CAAyCK,EAAA,I,8qBChDlC,SAASC,EAAiBzc,GAC/B,GAA6B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,GAA0B,iBAAf3C,EAAK0c,OAA4C,IAAtB1c,EAAK0c,MAAMxd,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,EACN8a,MAAO1c,EAAK0c,MACZV,SAAUhc,EAAKgc,YACZ,QAAqBhc,GAE5B,CAEA,+B,8CAmBA,QAnBkC,OACtB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAOvC,OANAF,EAAQG,UAAY,QAAUP,KAAKqE,MAAMoZ,MACzCrd,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM0Y,SAAQ,KAC1D3c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SAE5Bld,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzBA,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM0Y,SAAQ,IAC5D,EACF,EAnBA,CAAkCQ,EAAA,I,0DCktG9BG,EAAe,CACjBC,OAAQ,MACRtM,SAAU,cACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,uRAurC3BsM,EAAa,CACfD,OAAQ,MACRtM,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4W,42BCj5IxB,SAASuM,EACd9c,GAGA,GAA0B,iBAAfA,EAAK4N,OAA4C,IAAtB5N,EAAK4N,MAAM1O,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,YACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACNgM,MAAO5N,EAAK4N,MACZmP,aAAc/c,EAAK+c,aACnBC,YAAahd,EAAKgd,eACf,QAAmBhd,KACnB,QAAqBA,GAE5B,CAOA,+B,8CA4BA,QA5B8B,OAClB,YAAAN,cAAV,sBACQud,EAAa3d,SAASC,cAAc,OAC1C0d,EAAWzd,UAAY,kBAEvB,IAAM0d,EAAa5d,SAASC,cAAc,SAC1C2d,EAAWvP,aAAc,IAAAzB,GAAE,iBAE3B+Q,EAAWpd,YAAYqd,GAEvB,IAAMC,EAAa7d,SAASC,cAAc,SAgB1C,OAfA4d,EAAWvb,KAAO,QAClBub,EAAWC,UAAW,EAEtBD,EAAWzU,MAAQ,UAAGzJ,KAAKF,YAAYge,cACrC9d,KAAKJ,YAAYke,cACjB,WAEFI,EAAWpb,iBAAiB,UAAU,SAAAC,GACpC,EAAKjC,WAAW,CACdgd,aAAe/a,EAAEqb,OAA4B3U,OAEjD,IAEAuU,EAAWpd,YAAYsd,GAEhBF,CACT,EACF,EA5BA,CAA8B,EAAAK,YAiC9B,2B,8CAiQA,QAjQ+B,OACnB,YAAA5d,cAAV,sBACQud,EAAa3d,SAASC,cAAc,OAC1C0d,EAAWzd,UAAY,yCAEvB,IAAM+d,EAActe,KAAKue,YAAY,UAErCP,EAAWpd,YAAY0d,GAEvB,IAAME,EAA0Bne,SAASC,cAAc,OACjDme,EAAyBpe,SAASC,cAAc,OAEtD0d,EAAWpd,YAAY6d,GACvBT,EAAWpd,YAAY4d,GAEvB,IAGIE,EAHEX,EACJ/d,KAAKF,YAAYie,aAAe/d,KAAKJ,YAAYme,aAAe,GAyDlE,OAnBAW,EAAc,SAAAC,GACZF,EAAuBnV,UAAY,GACnCqV,EAAOhe,SAAQ,SAACie,EAAYrc,GAC1B,OAAAkc,EAAuB7d,YACrB,EAAKie,eACHD,EAvCyB,SAACrc,GAAkB,gBAClDuc,GAEA,IAAMf,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAClE,EAAKjd,WAAW,CACdid,YAAa,EAAF,OACNA,EAAYvb,MAAM,EAAGD,IAAM,IAC9Buc,I,GACGf,EAAYvb,MAAMD,EAAQ,IAAE,IAGrC,CAZoD,CAwC5Cwc,CAAyBxc,GA1BZ,SAACA,GAAkB,kBACtC,IAAMwb,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAC5DiB,EAAY,EAAH,KACVjB,EAAYvb,MAAM,EAAGD,IAAM,GAC3Bwb,EAAYvb,MAAMD,EAAQ,IAAE,GAGjC,EAAKzB,WAAW,CAAEid,YAAaiB,IAC/BN,EAAYM,EACd,CAVwC,CA2BhCC,CAAa1c,IAJjB,GAQJ,EAEAmc,EAAYX,GAEZS,EAAwB5d,YACtBZ,KAAKkf,uBAxBc,SAACJ,GACpB,IAAMf,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAC5DiB,EAAY,EAAH,KAAOjB,GAAa,GAAF,CAAEe,IAAK,GACxC,EAAKhe,WAAW,CAAEid,YAAaiB,IAC/BN,EAAYM,EACd,KAqBOhB,CACT,EAEQ,YAAAkB,sBAAR,SAA8BC,GAE5B,IAAMC,EAAe,CAAEzQ,MAAO,WAE1B0Q,EAAK,KAA6BD,GAmBhCE,EAAkBjf,SAASC,cAAc,OAGzCif,EAA2Blf,SAASC,cAAc,OAClDkf,EAAuBxf,KAAKue,YAAY,cACxCkB,EAAuBzf,KAAK0f,kBAAkB,MAtB5B,SAACjW,GACvB4V,EAAMM,UAAYlW,CACpB,IAqBA8V,EAAyB3e,YAAY4e,GACrCD,EAAyB3e,YAAY6e,GACrCH,EAAgB1e,YAAY2e,GAG5B,IAAMK,EAA4Bvf,SAASC,cAAc,OACnDuf,EAAqB7f,KAAKue,YAAY,YACtCuB,EAAqB9f,KAAK0f,kBAAkB,MA3B5B,SAACjW,GACrB4V,EAAMU,QAAUtW,CAClB,IA0BA8V,EAAyB3e,YAAYif,GACrCN,EAAyB3e,YAAYkf,GACrCR,EAAgB1e,YAAYgf,GAG5B,IAAMI,EAA0B3f,SAASC,cAAc,OACjD2f,EAAmBjgB,KAAKue,YAAY,SACpC2B,EAAmBlgB,KAAKmgB,iBAC5Bf,EAAazQ,OAjCK,SAAClF,GACnB4V,EAAM1Q,MAAQlF,CAChB,IAkCA8V,EAAyB3e,YAAYqf,GACrCV,EAAyB3e,YAAYsf,GACrCZ,EAAgB1e,YAAYof,GAG5B,IAAMI,EAAY/f,SAASC,cAAc,KAoBzC,OAnBA8f,EAAUxf,aACR,OAAgB8c,GAAc,IAAAzQ,GAAE,sBAAuB,CACrDiE,KAAM,QACNvC,MAAO,aAYXyR,EAAUtd,iBAAiB,SARN,WA3CL,IAACgc,OACQ,KADRA,EA4CHO,GA3CC1Q,YACY,IAAlBmQ,EAAMiB,cACc,IAApBjB,EAAMa,WAyCOR,EAASE,GAC7BA,EAAQD,EACRK,EAAqBhW,MAAQ,UAAG4V,EAAMM,WAAa,IACnDG,EAAmBrW,MAAQ,UAAG4V,EAAMU,SAAW,IAC/CG,EAAiBzW,MAAQ,UAAG4V,EAAM1Q,MACpC,IAIA2Q,EAAgB1e,YAAYwf,GAErBd,CACT,EAEQ,YAAAT,eAAR,SACED,EACAyB,EACAC,GAGA,IAAMjB,EAAQ,KAAKT,GAebU,EAAkBjf,SAASC,cAAc,OAGzCif,EAA2Blf,SAASC,cAAc,OAClDkf,EAAuBxf,KAAKue,YAAY,cACxCkB,EAAuBzf,KAAK0f,kBAChCd,EAAWe,WAnBW,SAAClW,GACvB4V,EAAMM,UAAYlW,EAClB4W,EAAS,KAAKhB,GAChB,IAmBAE,EAAyB3e,YAAY4e,GACrCD,EAAyB3e,YAAY6e,GACrCH,EAAgB1e,YAAY2e,GAG5B,IAAMK,EAA4Bvf,SAASC,cAAc,OACnDuf,EAAqB7f,KAAKue,YAAY,YACtCuB,EAAqB9f,KAAK0f,kBAC9Bd,EAAWmB,SA1BS,SAACtW,GACrB4V,EAAMU,QAAUtW,EAChB4W,EAAS,KAAKhB,GAChB,IA0BAE,EAAyB3e,YAAYif,GACrCN,EAAyB3e,YAAYkf,GACrCR,EAAgB1e,YAAYgf,GAG5B,IAAMI,EAA0B3f,SAASC,cAAc,OACjD2f,EAAmBjgB,KAAKue,YAAY,SACpC2B,EAAmBlgB,KAAKmgB,iBAC5BvB,EAAWjQ,OAjCO,SAAClF,GACnB4V,EAAM1Q,MAAQlF,EACd4W,EAAS,KAAKhB,GAChB,IAiCAE,EAAyB3e,YAAYqf,GACrCV,EAAyB3e,YAAYsf,GACrCZ,EAAgB1e,YAAYof,GAG5B,IAAMO,EAAYlgB,SAASC,cAAc,KAWzC,OAVAigB,EAAU3f,aACR,OAAgBgd,GAAY,IAAA3Q,GAAE,sBAAuB,CACnDiE,KAAM,QACNvC,MAAO,aAGX4R,EAAUzd,iBAAiB,QAASwd,GAEpChB,EAAgB1e,YAAY2f,GAErBjB,CACT,EAEQ,YAAAf,YAAR,SAAoB7H,GAClB,IAAM/S,EAAQtD,SAASC,cAAc,SAErC,OADAqD,EAAM+K,aAAc,IAAAzB,GAAEyJ,GACf/S,CACT,EAEQ,YAAA+b,kBAAR,SACEjW,EACA4W,GAEA,IAAMrQ,EAAQ3P,SAASC,cAAc,SAQrC,OAPA0P,EAAMrN,KAAO,SACC,OAAV8G,IAAgBuG,EAAMvG,MAAQ,UAAGA,IACrCuG,EAAMlN,iBAAiB,UAAU,SAAAC,GAC/B,IAAM0G,EAAQhG,SAAUV,EAAEqb,OAA4B3U,OACjDjG,MAAMiG,IAAQ4W,EAAS5W,EAC9B,IAEOuG,CACT,EAEQ,YAAAmQ,iBAAR,SACE1W,EACA4W,GAEA,IAAMrQ,EAAQ3P,SAASC,cAAc,SAOrC,OANA0P,EAAMrN,KAAO,QACC,OAAV8G,IAAgBuG,EAAMvG,MAAQA,GAClCuG,EAAMlN,iBAAiB,UAAU,SAAAC,GAC/B,OAAAsd,EAAUtd,EAAEqb,OAA4B3U,MAAxC,IAGKuG,CACT,EACF,EAjQA,CAA+B,EAAAqO,YAmQzBrN,EAAQ,6BAEd,2B,8CAwFA,QAxFwC,OAC5B,YAAAzJ,iBAAV,WACE,IAAMuD,EAA4BzK,SAASC,cAAc,OAMzD,OALAwK,EAAUvK,UAAY,cAGtBuK,EAAU0V,OAAOxgB,KAAKygB,oBAEf3V,CACT,EAEU,YAAA3D,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAC7B,EAEO,YAAAya,iBAAP,WACE,IAAMC,EAAa,eAAQ1gB,KAAKqE,MAAMxB,IAEhC8d,EAAMtgB,SAASkR,gBAAgBP,EAAO,OAE5C2P,EAAIlV,aAAa,UAAW,eAG5B,IAAMmV,EAAOvgB,SAASkR,gBAAgBP,EAAO,QAEvC6P,EAAiBxgB,SAASkR,gBAAgBP,EAAO,kBACvD6P,EAAepV,aAAa,KAAMiV,GAClCG,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,IAAK,OACjCoV,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,KAAM,OAElC,IAAMqV,EAAQzgB,SAASkR,gBAAgBP,EAAO,QAC9C8P,EAAMrV,aAAa,SAAU,MAC7BqV,EAAMrV,aACJ,QACA,qBAAczL,KAAKqE,MAAMsK,MAAK,sBAEhC,IAAMoS,EAAU1gB,SAASkR,gBAAgBP,EAAO,QAChD+P,EAAQtV,aAAa,SAAU,QAC/BsV,EAAQtV,aACN,QACA,qBAAczL,KAAKqE,MAAMsK,MAAK,oBAGhC,IAAMqS,EAAS3gB,SAASkR,gBAAgBP,EAAO,UAkB/C,OAjBAgQ,EAAOvV,aAAa,OAAQ,eAAQiV,EAAU,MAC9CM,EAAOvV,aAAa,KAAM,OAC1BuV,EAAOvV,aAAa,KAAM,OAC1BuV,EAAOvV,aAAa,IAAK,OAGzBoV,EAAeL,OAAOM,EAAOC,GAC7BH,EAAKJ,OAAOK,GACZF,EAAIH,OAAOI,EAAMI,IAGc,IAA7BhhB,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,gBAEX8S,EAAIlV,aAAa,UAAW,OAGvBkV,CACT,EAQO,YAAA5T,iBAAP,WACE,OAAOkU,EAAWlU,iBAAiB/M,KAAKqE,MAC1C,EAEc,EAAA0I,iBAAd,SACE1I,GAEA,IAAM6c,EAAgB,EAAMnU,iBAAgB,UAAC1I,GAM7C,OALA6c,EAAcze,iBAAiB,SAE/Bye,EAAc5e,cAAc,IAAI6e,EAAgB,cAAe9c,GAAQ,GACvE6c,EAAc5e,cAAc,IAAI8e,EAAiB,eAAgB/c,GAAQ,GAElE6c,CACT,EACF,EAxFA,CAAwC3D,EAAA,I,ysBCvTjC,SAAS8D,EAAiBtgB,GAC/B,IAAMsD,EAAK,QACN,QAAqB,OAAKtD,GAAI,CAAEiF,MAAO,EAAGC,OAAQ,MAAI,CACzDtD,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZqB,EAAG,EACHC,EAAG,EACHU,MAAO,EACPC,OAAQ,EAERqb,cAAe,CACbjc,GAAG,QAAWtE,EAAKwgB,OAAQ,GAC3Bjc,GAAG,QAAWvE,EAAKygB,OAAQ,IAE7BC,YAAa,CACXpc,GAAG,QAAWtE,EAAK2gB,KAAM,GACzBpc,GAAG,QAAWvE,EAAK4gB,KAAM,IAE3BC,WAAW,QAAW7gB,EAAK6gB,WAAa7gB,EAAKgY,YAAa,GAC1DpK,OAAO,QAAiB5N,EAAK8gB,aAAe9gB,EAAK4N,MAAO,MACxDmT,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBjhB,EAAKihB,SAAU,IAC1CC,eAAe,QAAWlhB,EAAKkhB,cAAe,GAC9CC,UAAWnhB,EAAKmhB,UAChBC,YAAaphB,EAAKohB,YAClBC,gBAAgB,QAAWrhB,EAAKqhB,eAAgB,GAChDC,YAAY,QAAiBthB,EAAKshB,WAAY,IAC9CC,iBAAiB,QAAWvhB,EAAKuhB,gBAAiB,GAClDC,kBAAkB,QAAWxhB,EAAKwhB,iBAAkB,KAWtD,OAAO,OACFle,GAGAme,EAAKC,0BAA0Bpe,EAAMid,cAAejd,EAAMod,aAEjE,CAEA,IAAM,EAAQ,6BAQd,cAiIE,WAAmBpd,EAAkBsC,GAArC,MAKE,mBAEOtC,GACAme,EAAKC,0BACNpe,EAAMid,cACNjd,EAAMod,cACP,KAGE9a,IAEL,IACD,K,OAjJO,EAAA+b,aAAe,EAEf,EAAAC,UAAoB,EAEpB,EAAAC,UAAoB,EAGd,EAAAC,sBAAwB,IAAIC,EAAA,EAEzB,EAAAC,0BAA0C,GAInD,EAAAC,oCAAqC,QAC7C,KACA,SAAC3d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMtB,EAAgB,CAAEjc,EAAC,EAAEC,EAAC,GAE5B,EAAKud,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACNyb,cAAa,EACbG,YAAa,EAAKpd,MAAMod,aAE5B,IAIQ,EAAAwB,4BAA+C,KA2C/C,EAAAC,kCAAmC,QAC3C,KACA,SAAC7d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMnB,EAAc,CAAEpc,EAAC,EAAEC,EAAC,GAE1B,EAAKud,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACN4b,YAAW,EACXH,cAAe,EAAKjd,MAAMid,eAE9B,IAIQ,EAAA6B,0BAA6C,KA6DrD,EAAKR,SAAWhc,EAAKuB,SACrB,EAAKzB,OAEL,YAAMU,cAAa,OACjBsI,KAAK2L,IAAI/W,EAAM2B,MAAO3B,EAAMyd,iBAC5BrS,KAAK2L,IAAI/W,EAAM4B,OAAQ5B,EAAM0d,kB,CAEjC,CA2SF,OAtckC,OAmCtB,YAAAqB,kCAAV,SACEhjB,EACA0K,GAFF,WAIE9K,KAAKijB,6BAA8B,QACjC7iB,GACA,SAACiF,EAAkBC,GAKjB,IAAMgc,EAAgB,CAAEjc,EAHxBA,GAAK,EAAKqd,aAAe,EAAKre,MAAMyd,gBAAkB,EAG3Bxc,EAF3BA,GAAK,EAAKod,aAAe,EAAKre,MAAM0d,gBAAkB,GAItD,EAAKa,UAAW,EAChB,EAAKve,MAAQ,OACR,EAAKA,OAAK,CACbid,cAAa,IAIf,EAAK0B,mCAAmC3d,EAAGC,EAC7C,GACAwF,EAEJ,EAIQ,YAAAuY,kCAAR,WACMrjB,KAAKijB,8BACPjjB,KAAKijB,8BACLjjB,KAAKijB,4BAA8B,KAEvC,EAyBU,YAAAK,gCAAV,SACEljB,EACA0K,GAFF,WAIE9K,KAAKmjB,2BAA4B,QAC/B/iB,GACA,SAACiF,EAAkBC,GAEjBD,GAAK,EAAKqd,aAAe,EAAKre,MAAMyd,gBAAkB,EACtDxc,GAAK,EAAKod,aAAe,EAAKre,MAAM0d,gBAAkB,EAEtD,EAAKa,UAAW,EAChB,EAAKve,MAAQ,OACR,EAAKA,OAAK,CACbod,YAAa,CAAEpc,EAAC,EAAEC,EAAC,KAIrB,EAAK4d,iCAAiC7d,EAAGC,EAC3C,GACAwF,EAEJ,EAIQ,YAAAyY,gCAAR,WACMvjB,KAAKmjB,4BACPnjB,KAAKmjB,4BACLnjB,KAAKmjB,0BAA4B,KAErC,EAuCO,YAAAjZ,SAAP,SAAgBD,GACd,YAAMC,SAAQ,YAAC,KACVD,GACAuY,EAAKC,0BACNxY,EAASqX,cACTrX,EAASwX,cAGf,EAQO,YAAAlX,QAAP,SAAeD,GACbtK,KAAK2iB,SAAWrY,EAAYpC,SAC5B,YAAMqC,QAAO,YAAC,KACTD,GAAW,CACdqK,UAAU,IAEd,EAOU,YAAApN,iBAAV,WACE,IAAMnH,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,OAEhB,MAWAP,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN2b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP3I,GAAgB8b,EAChB7b,GAAkB8b,EAElB,IAAMyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAG3DpB,EAAMtgB,SAASkR,gBAAgB,EAAO,OAE5CoP,EAAIlV,aAAa,QAAS,UAAGzF,EAAQ4b,IACrCjB,EAAIlV,aAAa,SAAU,UAAGxF,EAAS2b,IAEvC,IAAMgC,EAAOvjB,SAASkR,gBAAgB,EAAO,QAW7C,OAVAqS,EAAKnY,aAAa,KAAM,UAAG+X,IAC3BI,EAAKnY,aAAa,KAAM,UAAGgY,IAC3BG,EAAKnY,aAAa,KAAM,UAAGiY,IAC3BE,EAAKnY,aAAa,KAAM,UAAGkY,IAC3BC,EAAKnY,aAAa,SAAUkD,GAAS,SACrCiV,EAAKnY,aAAa,eAAgB,UAAGmW,IAErCjB,EAAIH,OAAOoD,GACXxjB,EAAQogB,OAAOG,GAERvgB,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GACI,MAAzBA,EAAQwL,gBACVxL,EAAQwL,cAAc/D,MAAMgc,OAAS,WAGnC,MAWA7jB,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN2b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP3I,GAAgB8b,EAChB7b,GAAkB8b,EAElB,IAAMyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAE3D+B,EAAO1jB,EAAQiM,qBAAqB,OAE1C,GAAIyX,EAAK7jB,OAAS,EAAG,CACnB,IAAM0gB,EAAMmD,EAAKje,KAAK,GAEtB,GAAW,MAAP8a,EAAa,CAEfA,EAAIlV,aAAa,QAAS,UAAGzF,EAAQ4b,IACrCjB,EAAIlV,aAAa,SAAU,UAAGxF,EAAS2b,IAEvC,IAAMmC,EAAQpD,EAAIqD,uBAAuB,EAAO,QAEhD,GAAID,EAAM9jB,OAAS,EAAG,CACpB,IAAM2jB,EAAOG,EAAMle,KAAK,GAEZ,MAAR+d,IACFA,EAAKnY,aAAa,KAAM,UAAG+X,IAC3BI,EAAKnY,aAAa,KAAM,UAAGgY,IAC3BG,EAAKnY,aAAa,KAAM,UAAGiY,IAC3BE,EAAKnY,aAAa,KAAM,UAAGkY,IAC3BC,EAAKnY,aAAa,SAAUkD,GAAS,SACrCiV,EAAKnY,aAAa,eAAgB,UAAGmW,I,GAM7C,GAAI5hB,KAAK2iB,SAAU,CACjB,IAAIsB,EAA2B5jB,SAASC,cAAc,OAClD4jB,EAAyB7jB,SAASC,cAAc,OAEpD,GAAIN,KAAK4iB,SAAU,CACjB,IAAMuB,EAAe/jB,EAAQ6O,uBAC3B,yCAEEkV,EAAalkB,OAAS,IAClB+gB,EAASmD,EAAate,KAAK,MACrBoe,EAAcjD,GAE5B,IAAMoD,EAAahkB,EAAQ6O,uBACzB,uCAEEmV,EAAWnkB,OAAS,IAChB+gB,EAASoD,EAAWve,KAAK,MACnBqe,EAAYlD,E,CA8B5B,GA1BAiD,EAAYtc,UAAUC,IACpB,kCACA,yCAEFqc,EAAYpc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAK0iB,aAAgB,MAClDuB,EAAYpc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAK0iB,aAAgB,MACnDuB,EAAYpc,MAAMwc,aAAe,MACjCJ,EAAYpc,MAAMwF,gBAAkB,UAAGsB,GACvCsV,EAAYpc,MAAMqE,SAAW,WAC7B+X,EAAYpc,MAAMC,KAAO,UAAG0b,EAAKxjB,KAAK0iB,aAAY,MAClDuB,EAAYpc,MAAME,IAAM,UAAG0b,EAAKzjB,KAAK0iB,aAAY,MACjDuB,EAAYpc,MAAMgc,OAAS,OAE3BK,EAAUvc,UAAUC,IAClB,kCACA,uCAEFsc,EAAUrc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAK0iB,aAAgB,MAChDwB,EAAUrc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAK0iB,aAAgB,MACjDwB,EAAUrc,MAAMwc,aAAe,MAC/BH,EAAUrc,MAAMwF,gBAAkB,UAAGsB,GACrCuV,EAAUrc,MAAMqE,SAAW,WAC3BgY,EAAUrc,MAAMC,KAAO,UAAG4b,EAAK1jB,KAAK0iB,aAAY,MAChDwB,EAAUrc,MAAME,IAAM,UAAG4b,EAAK3jB,KAAK0iB,aAAY,MAC/CwB,EAAUrc,MAAMgc,OAAS,OAEK,OAA1BzjB,EAAQwL,cAAwB,CAIlC,IAHA,IAAM0Y,EAAUlkB,EAAQwL,cAAcqD,uBACpC,mCAEKqV,EAAQrkB,OAAS,IAChB+gB,EAASsD,EAAQze,KAAK,KAChBmb,EAAOnW,SAGrBzK,EAAQwL,cAAchL,YAAYqjB,GAClC7jB,EAAQwL,cAAchL,YAAYsjB,E,CAIpClkB,KAAKojB,kCACHa,EACAjkB,KAAKwE,WAAWoH,eAElB5L,KAAKsjB,gCACHY,EACAlkB,KAAKwE,WAAWoH,c,MAEb,GAAK5L,KAAK2iB,SAcf3iB,KAAKqjB,yCAXL,GAFArjB,KAAKqjB,oCAEyB,OAA1BjjB,EAAQwL,cAKV,IAJM0Y,EAAUlkB,EAAQwL,cAAcqD,uBACpC,mCAGKqV,EAAQrkB,OAAS,GAAG,CACzB,IAAM+gB,KAASsD,EAAQze,KAAK,KAChBmb,EAAOnW,Q,CAM3B,EAOc,EAAA4X,0BAAd,SACEnB,EACAG,GAEA,MAAO,CACLzb,MAAOyJ,KAAKM,IAAIuR,EAAcjc,EAAIoc,EAAYpc,GAC9CY,OAAQwJ,KAAKM,IAAIuR,EAAchc,EAAImc,EAAYnc,GAC/CD,EAAGoK,KAAK8U,IAAIjD,EAAcjc,EAAGoc,EAAYpc,GACzCC,EAAGmK,KAAK8U,IAAIjD,EAAchc,EAAGmc,EAAYnc,GAE7C,EAQO,YAAAM,KAAP,SAAYP,EAAWC,GACrB,YAAMuB,YAAW,UAACxB,EAAGC,GACrB,IAAMkf,EACJxkB,KAAKqE,MAAMid,cAAcjc,EAAIrF,KAAKqE,MAAMod,YAAYpc,GAAK,EACrDof,EACJzkB,KAAKqE,MAAMid,cAAchc,EAAItF,KAAKqE,MAAMod,YAAYnc,GAAK,EAErDof,EAAQ,CACZrf,EAAGmf,EAAcnf,EAAIrF,KAAKqE,MAAM2B,MAAQX,EACxCC,EAAGmf,EAAanf,EAAItF,KAAKqE,MAAM4B,OAASX,GAGpCqf,EAAM,CACVtf,EAAGmf,EAAcxkB,KAAKqE,MAAM2B,MAAQX,EAAIA,EACxCC,EAAGmf,EAAazkB,KAAKqE,MAAM4B,OAASX,EAAIA,GAG1CtF,KAAKqE,MAAQ,OACRrE,KAAKqE,OAAK,CACbid,cAAeoD,EACfjD,YAAakD,GAEjB,EAMO,YAAA9Z,OAAP,WAEE7K,KAAKqjB,oCAEL,YAAMxY,OAAM,UACd,EAQO,YAAA+Z,uBAAP,SACEtjB,GAOA,IAAMyK,EAAa/L,KAAK6iB,sBAAsBthB,GAAGD,GAGjD,OAFAtB,KAAK+iB,0BAA0BxW,KAAKR,GAE7BA,CACT,EACF,EAtcA,CAAkCwR,EAAA,I,8qBClG5B,EAAQ,6BAkBP,SAASsH,EACd9jB,GAEA,OAAO,OACFsgB,EAAiBtgB,IAAK,CACzB4B,KAAM,GACNmf,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBjhB,EAAKihB,SAAU,IAC1CC,eAAe,QAAWlhB,EAAKkhB,cAAe,GAC9CG,gBAAgB,QAAWrhB,EAAKqhB,eAAgB,GAChDC,YAAY,QAAiBthB,EAAKshB,WAAY,IAC9CC,iBAAiB,QAAWvhB,EAAKuhB,gBAAiB,GAClDC,kBAAkB,QAAWxhB,EAAKwhB,iBAAkB,IAExD,CAEA,kBAIE,WAAmBle,EAAyBsC,GAA5C,MAKE,iBAEOtC,GAAK,KAGLsC,KAEN,K,OAQO,EAAAqc,oCAAqC,QAC7C,IACA,SAAC3d,EAAkBC,GACjB,EAAKsd,UAAW,EAEhB,IAAMtB,EAAgB,CAAEjc,EAAC,EAAEC,EAAC,GAG5B,EAAK+E,SAGL,EAAKwY,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACNyb,cAAa,EACbG,YAAa,EAAKpd,MAAMod,aAE5B,IAGQ,EAAAyB,kCAAmC,QAC3C,IACA,SAAC7d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMnB,EAAc,CAAEpc,EAAC,EAAEC,EAAC,GAG1B,EAAK+E,SAGL,EAAKwY,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACN4b,YAAW,EACXH,cAAe,EAAKjd,MAAMid,eAE9B,IAxCA,EAAKjX,S,CACP,CA8PF,OAjRyC,OA6D7B,YAAAL,iBAAV,SAA2B5J,GACzB,YAAM4J,iBAAgB,UAAC5J,GAEnB,IAkBAwjB,EACAjD,EAnBA,EAeA3gB,KAAKqE,MAdPgB,EAAC,IACDC,EAAC,IACDsc,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QACLqT,EAAQ,WACRK,EAAU,aACVJ,EAAa,gBACbG,EAAc,iBACdE,EAAe,kBACfC,EAAgB,mBAGZuB,EAAO1jB,EAAQiM,qBAAqB,OAI1C,GAAIyX,EAAK7jB,OAAS,EAAlB,CAGE,GAAW,OAFX0gB,EAAMmD,EAAKje,KAAK,IAEC,CAIf,IAFA,IAAMke,EAAQpD,EAAIqD,uBAAuB,EAAO,QAC5Cc,EAASnE,EAAIqD,uBAAuB,EAAO,KACxCc,EAAO7kB,OAAS,GACrB6kB,EAAO,GAAGja,SAGRkZ,EAAM9jB,OAAS,IACjB2jB,EAAOG,EAAMle,KAAK,G,CAQxB,GAAW,MAAP8a,GAAuB,MAARiD,EAAnB,CAMA,IACMmB,EAAa,GAEbC,EAAS1D,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EACjEmD,EAAS3D,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EACjEmD,EAASzD,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC/DqD,EAAS1D,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAEjEyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAI3DqD,EAAW,IADL3V,KAAK4V,MAAMF,EAASF,EAAQC,EAASF,GACzBvV,KAAK6V,GA2D3B,GAvDIhD,GAAmB,IACjByB,EAAQ1B,EAAWkD,MAAM,QAC7BjD,EAAkB,EAClByB,EAAMpjB,SAAQ,SAAA6kB,GACRA,EAAEvlB,OAASqiB,IACbA,EAxBW,GAwBOkD,EAAEvlB,OAExB,IACIsiB,GAAoB,IACtBA,EAVe,GAUIwB,EAAM9jB,SAIzBgiB,GAAiB,IACf8B,EAAQ/B,EAASuD,MAAM,QAC3BtD,EAAgB,EAChB8B,EAAMpjB,SAAQ,SAAA6kB,GACRA,EAAEvlB,OAASgiB,IACbA,EArCW,GAqCKuD,EAAEvlB,OAEtB,IACImiB,GAAkB,IACpBA,EAvBe,GAuBE2B,EAAM9jB,SAIvBujB,EAAKE,IAEPF,GAAMuB,EACNrB,GAAMqB,EAAa9C,GAGjBuB,EAAKE,IAEPF,GAAMuB,EAAazC,EACnBoB,GAAMqB,GAGJtB,EAAKE,IAEPF,GAAMsB,EACNpB,GAAMoB,EAAa3C,GAGjBqB,EAAKE,IAEPF,GAAMsB,EAAaxC,EACnBoB,GAAMoB,QAGY,IAATpW,IACTA,EAAQ,QAIoB,OAA1BvO,EAAQwL,cAAwB,CAIlC,IAHA,IAAM6Z,EAASrlB,EAAQwL,cAAcqD,uBACnC,oBAEKwW,EAAOxlB,OAAS,GAAG,CACxB,IAAM0D,EAAQ8hB,EAAO5f,KAAK,GACtBlC,GAAOA,EAAMkH,Q,CAMnB,IAHA,IAAM6a,EAAStlB,EAAQwL,cAAcqD,uBACnC,oBAEKyW,EAAOzlB,OAAS,GAAG,CACxB,IAAM0lB,EAAQD,EAAO7f,KAAK,GACtB8f,GAAOA,EAAM9a,Q,EAIrB,IAAI+a,EAAwB,EAAZhE,EAEZiE,EAAYb,GAAUE,EAASF,GAAU,EAAIY,EAC7CE,EAAYb,GAAUE,EAASF,GAAU,EAAIW,EAE7CG,EAA0B1lB,SAASC,cAAc,OACrDylB,EAAWpe,UAAUC,IAAI,oBACzBme,EAAWle,MAAMqE,SAAW,WAC5B6Z,EAAWle,MAAMme,OAAS,UAAGJ,EAAS,wBACtCG,EAAWle,MAAMoe,aAAe,UAAGL,EAAS,oBAAYjX,GACxDoX,EAAWle,MAAMC,KAAO,UAAG+d,EAAS,MACpCE,EAAWle,MAAME,IAAM,UAAG+d,EAAS,MACnCC,EAAWle,MAAMqe,UAAY,iBAAU,GAAKd,EAAC,QAE7C,IAAIe,EAAwB9lB,SAASC,cAAc,OAcnD,GAbA6lB,EAASxe,UAAUC,IAAI,oBACvBue,EAASte,MAAMqE,SAAW,WAC1Bia,EAASte,MAAMme,OAAS,UAAGJ,EAAS,wBACpCO,EAASte,MAAMoe,aAAe,UAAGL,EAAS,oBAAYjX,GACtDwX,EAASte,MAAMC,KAAO,UAAG+d,EAAS,MAClCM,EAASte,MAAME,IAAM,UAAG+d,EAAS,MACjCK,EAASte,MAAMqe,UAAY,iBAAU,IAAMd,EAAC,QAEd,OAA1BhlB,EAAQwL,gBACVxL,EAAQwL,cAAchL,YAAYmlB,GAClC3lB,EAAQwL,cAAchL,YAAYulB,IAGlB,IAAd9D,EAAkB,CACpB,IAAI+D,EAA8B/lB,SAASC,cAAc,OAEzD,IACE8lB,EAAe9c,UAAY+Y,EAC3B+D,EAAeve,MAAMqE,SAAW,WAChCka,EAAeve,MAAMC,KAAO,UAAG0b,EAAE,MACjC4C,EAAeve,MAAME,IAAM,UAAG0b,EAAE,MAChC2C,EAAeve,MAAM7B,MAAQ,UAAGsc,EAAe,MAC/C8D,EAAeve,MAAMme,OAAS,oBAAarX,GAE3CyX,EAAeze,UAAUC,IAAI,mBAAoB,c,CACjD,MAAO4M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BpU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAYwlB,E,CAItC,GAAgB,IAAZpE,EAAgB,CAClB,IAAIsE,EAA4BjmB,SAASC,cAAc,OAEvD,IACEgmB,EAAahd,UAAY0Y,EACzBsE,EAAaze,MAAMqE,SAAW,WAC9Boa,EAAaze,MAAMC,KAAO,UAAG4b,EAAE,MAC/B4C,EAAaze,MAAME,IAAM,UAAG4b,EAAE,MAC9B2C,EAAaze,MAAM7B,MAAQ,UAAGic,EAAa,MAC3CqE,EAAaze,MAAMme,OAAS,oBAAarX,GAEzC2X,EAAa3e,UAAUC,IAAI,mBAAoB,Y,CAC/C,MAAO4M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BpU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAY0lB,E,GAGxC,EACF,EAjRA,CAAyC,G,8qBCHlC,SAASC,EAAkBxlB,GAChC,IAC4B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,SAC/B,OAArBc,EAAK2M,YAEL,MAAM,IAAIhK,UAAU,sBAEtB,GAAuC,QAAnC,QAAW3C,EAAKylB,QAAS,MAC3B,MAAM,IAAI9iB,UAAU,qBAGtB,IAAM+iB,GAAiB,QAAa1lB,EAAK0lB,gBACnChZ,EAAOgZ,EA3Bf,SAAqB1lB,GACnB,OAAK,QAAcA,EAAK0M,OACnB,QAAc1M,EAAK2M,aACjB,MADsC,QAAa3M,EAAK2M,aADzB3M,EAAK0M,IAG7C,CAuBgCiZ,CAAY3lB,GAAQ,KAElD,OAAO,UACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN6jB,QAAS/iB,SAAS1C,EAAKylB,SACvBzJ,UAAU,QAAiBhc,EAAKgc,SAAU,MAC1CC,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDyJ,eAAc,EACdhZ,KAAI,KACD,QAAqB1M,GAE5B,CACA,+B,8CAsCA,QAtCmC,OACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAevC,OAdAF,EAAQG,UAAY,QAEfP,KAAKqE,MAAMoiB,gBAAgD,OAA9BzmB,KAAKqE,MAAM2Y,eAMlChd,KAAKqE,MAAMoiB,gBAAqC,MAAnBzmB,KAAKqE,MAAMoJ,OAEjDrN,EAAQyH,MAAMsV,gBAAkB,OAChC/c,EAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,OAP/BrN,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM2Y,eAAc,KAChE5c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,UAO9Bld,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACpBJ,KAAKqE,MAAMoiB,gBAAgD,OAA9BzmB,KAAKqE,MAAM2Y,eAOlChd,KAAKqE,MAAMoiB,gBAAqC,MAAnBzmB,KAAKqE,MAAMoJ,OAEjDrN,EAAQyH,MAAMsV,gBAAkB,OAChC/c,EAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,OAR/BrN,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM2Y,eAAc,KAChE5c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACnCld,EAAQkJ,UAAY,GAMxB,EACF,EAtCA,CAAmCiU,EAAA,I,8qBC3B7BoJ,EAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,WACL,IAAK,UACH,OAAOA,EACT,QACE,MAAO,WAEb,EAMMC,EAAmB,SAACC,GACxB,OAAQA,GACN,IAAK,WACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,EAAkBhmB,GAChC,GACgC,iBAAvBA,EAAKimB,eACkB,IAA9BjmB,EAAKimB,cAAc/mB,OAEnB,MAAM,IAAIyD,UAAU,qBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACNikB,UAAWD,EAAe5lB,EAAK6lB,WAC/BE,YAAaD,EAAiB9lB,EAAK+lB,aACnCE,cAAejmB,EAAKimB,cACpBC,qBAAqB,QAAWlmB,EAAKkmB,oBAAqB,GAC1DC,mBAAmB,QAAanmB,EAAKmmB,mBACrCvY,OAAO,QAAiB5N,EAAK4N,MAAO,SACjC,QAAqB5N,GAE5B,CAEA,kBAIE,WAAmBsD,EAAmBsC,GAAtC,MAEE,YAAMtC,EAAOsC,IAAK,K,OAJZ,EAAAwgB,YAA6B,KAoBnC,EAAKC,WACH,WAEE,EAAK1iB,gBAAgB4E,UAAY,EAAK+d,cAAc/d,SACtD,GAKyB,aAAzB,EAAKjF,MAAMuiB,UAA2B,IAAQU,EAAMC,e,CAExD,CAqhBF,OAtjBmC,OAsCzB,YAAAC,SAAR,WAC2B,OAArBxnB,KAAKmnB,cACPhS,OAAOsS,cAAcznB,KAAKmnB,aAC1BnnB,KAAKmnB,YAAc,KAEvB,EAQQ,YAAAC,UAAR,SACEM,EACAC,QAAA,IAAAA,IAAAA,EAAmBL,EAAMC,eAEzBvnB,KAAKwnB,WACLxnB,KAAKmnB,YAAchS,OAAOyS,YAAYF,EAASC,EACjD,EAOU,YAAApgB,iBAAV,WACE,OAAOvH,KAAKqnB,aACd,EAMU,YAAArd,iBAAV,SAA2B5J,GAEnB,MAAyCJ,KAAK6nB,eAClD7nB,KAAKqE,MAAM2B,MACXhG,KAAKqE,MAAM4B,QAFE6hB,EAAQ,QAAUC,EAAS,SAKb,YAAzB/nB,KAAKqE,MAAMuiB,YACoB,IAA7B5mB,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAACnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEnD7F,EAAQuH,UAAUiP,QAAQ,iBAAkB,oBAEX,IAA7B5W,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAAC2gB,EAAUC,GAEhC3nB,EAAQuH,UAAUiP,QAAQ,gBAAiB,mBAE7CxW,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMO,YAAAuB,OAAP,WAEE7K,KAAKwnB,WAEL,YAAM3c,OAAM,UACd,EAQU,YAAA1D,cAAV,SAAwBnB,EAAeC,GAE/B,MAAyCjG,KAAK6nB,eAClD7hB,EACAC,GAFa6hB,EAAQ,QAAUC,EAAS,SAMb,YAAzB/nB,KAAKqE,MAAMuiB,UACb,YAAMzf,cAAa,UAACnB,EAAOC,GAI3B,YAAMkB,cAAa,UAAC2gB,EAAUC,EAElC,EAQQ,YAAAV,YAAR,WACE,OAAQrnB,KAAKqE,MAAMuiB,WACjB,IAAK,WACH,OAAO5mB,KAAKgoB,sBACd,IAAK,UACH,OAAOhoB,KAAKioB,qBACd,QACE,MAAM,IAAIxT,MAAM,uBAEtB,EAMQ,YAAAuT,oBAAR,WACE,IAAMhX,EAAQ,6BACRkX,EACO,UADPA,EAGE,UAHFA,EAIM,UAJNA,EAKO,UALPA,EAMQ,UAGR,EAAoBloB,KAAK6nB,iBAAvB7hB,EAAK,QAAEC,EAAM,SAKfkiB,EACHC,GAA4CpiB,EAAS,IAElD0F,EAAMrL,SAASC,cAAc,OACnCoL,EAAInL,UAAY,iBAChBmL,EAAI7D,MAAM7B,MAAQ,UAAGA,EAAK,MAC1B0F,EAAI7D,MAAM5B,OAAS,UAAGA,EAAM,MAG5B,IAAM0a,EAAMtgB,SAASkR,gBAAgBP,EAAO,OAE5C2P,EAAIlV,aAAa,UAAW,eAG5B,IAAM4c,EAAYhoB,SAASkR,gBAAgBP,EAAO,KAClDqX,EAAU5c,aAAa,QAAS,aAChC,IAAM6c,EAAsBjoB,SAASkR,gBAAgBP,EAAO,UAC5DsX,EAAoB7c,aAAa,KAAM,MACvC6c,EAAoB7c,aAAa,KAAM,MACvC6c,EAAoB7c,aAAa,IAAK,MACtC6c,EAAoB7c,aAAa,OAAQyc,GACzCI,EAAoB7c,aAAa,SAjCd,WAkCnB6c,EAAoB7c,aAAa,eAAgB,KACjD6c,EAAoB7c,aAAa,iBAAkB,SAEnD4c,EAAU7H,OAAO8H,GAGjB,IAAMC,EAAOvoB,KAAKwoB,mBAClB,GAAID,EAAKtoB,OAAS,EAAG,CACnB,IAAMwoB,EAAuBpoB,SAASkR,gBAAgBP,EAAO,QAC7DyX,EAAqBhd,aAAa,cAAe,UACjDgd,EAAqBhd,aAAa,YAAa,KAC/Cgd,EAAqBhd,aACnB,YACA,+BAEFgd,EAAqBhd,aAAa,OAAQyc,GAC1CO,EAAqB/Z,YAAc6Z,EACnCF,EAAU7H,OAAOiI,E,CAInB,IAAMC,EAAaroB,SAASkR,gBAAgBP,EAAO,KACnD0X,EAAWjd,aAAa,QAAS,SAEjC,IAAMkd,EAAgBtoB,SAASkR,gBAAgBP,EAAO,KACtD2X,EAAcld,aAAa,QAAS,QACpCkd,EAAcld,aAAa,YAAa,oBACxC,IAAMmd,EAASvoB,SAASkR,gBAAgBP,EAAO,QAC/C4X,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,SAAUyc,GAC9BU,EAAOnd,aAAa,eAAgB,KACpC,IAAMod,EAASxoB,SAASkR,gBAAgBP,EAAO,QAC/C6X,EAAOpd,aAAa,KAAM,MAC1Bod,EAAOpd,aAAa,KAAM,KAC1Bod,EAAOpd,aAAa,KAAM,MAC1Bod,EAAOpd,aAAa,KAAM,KAC1Bod,EAAOpd,aAAa,SAAUyc,GAC9BW,EAAOpd,aAAa,eAAgB,KAEpCkd,EAAcnI,OAAOoI,EAAQC,GAE7BH,EAAWlI,OAAOmI,GAElB,IAAK,IAAI1d,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAM6d,EAAOzoB,SAASkR,gBAAgBP,EAAO,QAC7C8X,EAAKrd,aAAa,KAAM,KACxBqd,EAAKrd,aAAa,KAAM,KACxBqd,EAAKrd,aAAa,SAAUyc,GAC5BY,EAAKrd,aAAa,YAAa,kCAA+B,EAAJR,EAAK,MAE3DA,EAAI,GAAM,GACZ6d,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,eAAgBR,EAAI,IAAO,EAAI,IAAM,OAEvD6d,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,eAAgB,QAIpCid,EAAWlI,OAAOsI,E,CAMpB,IAAMC,EAAW1oB,SAASkR,gBAAgBP,EAAO,KACjD+X,EAAStd,aAAa,QAAS,aAC/Bsd,EAAStd,aAAa,YAAa,oBAEnC,IAAMud,EAAY3oB,SAASkR,gBAAgBP,EAAO,QAClDgY,EAAUvd,aAAa,QAAS,eAChCud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,MAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,SAAUyc,GACjCc,EAAUvd,aAAa,eAAgB,KACvCud,EAAUvd,aAAa,iBAAkB,SAEzC,IAAMwd,EAAY5oB,SAASkR,gBAAgBP,EAAO,QAClDiY,EAAUxd,aAAa,QAAS,eAChCwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,KAAM,QAC7Bwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,SAAUyc,GACjCe,EAAUxd,aAAa,eAAgB,OACvCwd,EAAUxd,aAAa,iBAAkB,SAEzCsd,EAASvI,OAAOwI,EAAWC,GAG3B,IAAMC,EAAa7oB,SAASkR,gBAAgBP,EAAO,KACnDkY,EAAWzd,aAAa,QAAS,eACjCyd,EAAWzd,aAAa,YAAa,oBAErC,IAAM0d,EAAc9oB,SAASkR,gBAAgBP,EAAO,QACpDmY,EAAY1d,aAAa,QAAS,iBAClC0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,MAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,SAAUyc,GACnCiB,EAAY1d,aAAa,eAAgB,KACzC0d,EAAY1d,aAAa,iBAAkB,SAE3C,IAAM2d,EAAc/oB,SAASkR,gBAAgBP,EAAO,QACpDoY,EAAY3d,aAAa,QAAS,iBAClC2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,KAAM,QAC/B2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,SAAUyc,GACnCkB,EAAY3d,aAAa,eAAgB,OACzC2d,EAAY3d,aAAa,iBAAkB,SAC3C,IAAM4d,EAAgBhpB,SAASkR,gBAAgBP,EAAO,UACtDqY,EAAc5d,aAAa,IAAK,KAChC4d,EAAc5d,aAAa,OAAQyc,GAEnCgB,EAAW1I,OAAO2I,EAAaC,EAAaC,GAG5C,IAAMC,EAAajpB,SAASkR,gBAAgBP,EAAO,KACnDsY,EAAW7d,aAAa,QAAS,eACjC6d,EAAW7d,aAAa,YAAa,oBACrC,IAAM8d,EAAgBlpB,SAASkR,gBAAgBP,EAAO,QACtDuY,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,KAAM,MACjC8d,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,SAAUyc,GACrCqB,EAAc9d,aAAa,eAAgB,KAC3C8d,EAAc9d,aAAa,iBAAkB,SAC7C,IAAM+d,EAAgBnpB,SAASkR,gBAAgBP,EAAO,UACtDwY,EAAc/d,aAAa,IAAK,KAChC+d,EAAc/d,aAAa,OAAQyc,GAEnCoB,EAAW9I,OAAO+I,EAAeC,GAGjC,IAAMC,EAAMppB,SAASkR,gBAAgBP,EAAO,UAC5CyY,EAAIhe,aAAa,KAAM,MACvBge,EAAIhe,aAAa,KAAM,MACvBge,EAAIhe,aAAa,IAAK,OACtBge,EAAIhe,aAAa,OAAQyc,GAGzB,IAAM5S,EAAOtV,KAAK0pB,gBACZpT,EAAUhB,EAAKiB,aACfH,EAAUd,EAAKe,aAEfsT,EAAW,EAAarT,EACxBsT,EAAc,EAAaxT,EAAwBE,EAAU,GAAxB,EACrCuT,EAAY,GAHJvU,EAAKa,WAGkCC,EAAU,GAAxB,GA0EvC,GAxEA2S,EAAStd,aAAa,YAAa,kCAA2Boe,EAAS,MACvEX,EAAWzd,aACT,YACA,kCAA2Bme,EAAW,MAExCN,EAAW7d,aACT,YACA,kCAA2Bke,EAAQ,MAIrChJ,EAAIH,OAAO6H,EAAWK,EAAYK,EAAUG,EAAYI,EAAYG,GAEpE9I,EAAIlV,aAAa,YAAa,eAS9BC,EAAIpC,UAAY,4FAIN,QACA,YACA,uCAAgCugB,EAAS,SACzCC,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCD,EAAY,IAAG,SAC/CC,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCF,EAAW,SAC3CE,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCF,EAAc,IAAG,SACjDE,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCH,EAAQ,SACxCG,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCH,EAAW,IAAG,SAC9CG,KAAK,MAAK,kDAMpBpe,EAAI8U,OAAOG,GAGoB,aAA3B3gB,KAAKqE,MAAMyiB,YAA4B,CACzC,IAAMiD,EAA4B1pB,SAASC,cAAc,QACzDypB,EAASxpB,UAAY,OACrBwpB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASliB,MAAMmiB,SAAW,UAAG7B,EAAY,MACrCnoB,KAAKqE,MAAMsK,QAAOob,EAASliB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDjD,EAAI8U,OAAOuJ,E,CAGb,OAAOre,CACT,EAMQ,YAAAuc,mBAAR,WACE,IAAM7nB,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,gBAEd,MAAoBP,KAAK6nB,iBAAvB7hB,EAAK,QAAEC,EAAM,SACjBgkB,EAAWjkB,EACXC,EAASD,IACXikB,EAAWhkB,GAIb,IAEMikB,EAAuB,EAAIlqB,KAAKqE,MAAM2iB,cAAc/mB,OACpDkqB,EAHmB,GAGgBF,EAAY,IAC/C9B,EACHC,KAA4C6B,EAAY,IACrDG,EAAa3a,KAAK8U,IANC,GAOH2F,EAAuBD,EAAY,IACtDjkB,EAAQ,IAAO,IAIZsP,EAAOtV,KAAK0pB,gBAGlB,GAA+B,aAA3B1pB,KAAKqE,MAAMyiB,YAA4B,CACzC,IAAMiD,EAA4B1pB,SAASC,cAAc,QACzDypB,EAASxpB,UAAY,OACrBwpB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASliB,MAAMmiB,SAAW,UAAG7B,EAAY,MACrCnoB,KAAKqE,MAAMsK,QAAOob,EAASliB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDvO,EAAQogB,OAAOuJ,E,CAIjB,IAAMM,EAA4BhqB,SAASC,cAAc,QACzD+pB,EAAS9pB,UAAY,OACrB8pB,EAAS3b,aAAc,QAAU4G,GACjC+U,EAASxiB,MAAMmiB,SAAW,UAAGG,EAAY,MACrCnqB,KAAKqE,MAAMsK,QAAO0b,EAASxiB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDvO,EAAQogB,OAAO6J,GAGf,IAAM9B,EAAOvoB,KAAKwoB,mBAClB,GAAID,EAAKtoB,OAAS,EAAG,CACnB,IAAMqqB,EAA0BjqB,SAASC,cAAc,QACvDgqB,EAAO/pB,UAAY,WACnB+pB,EAAO5b,YAAc6Z,EACrB+B,EAAOziB,MAAMmiB,SAAW,UAAGI,EAAU,MACjCpqB,KAAKqE,MAAMsK,QAAO2b,EAAOziB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACtDvO,EAAQogB,OAAO8J,E,CAGjB,OAAOlqB,CACT,EAMQ,YAAAspB,cAAR,SAAsBa,QAAA,IAAAA,IAAAA,EAAA,MACpB,IAAM3O,EAAI2O,GAA4B,IAAI7gB,KACpC8gB,EAAkD,IAAjCxqB,KAAKqE,MAAM4iB,oBAC5BwD,EAAwC,GAAxB7O,EAAE8O,oBAA2B,IAC7CC,EAAa/O,EAAErH,UAAYiW,EAAiBC,EAElD,OAAO,IAAI/gB,KAAKihB,EAClB,EAMO,YAAAnC,iBAAP,SAAwBoC,QAAA,IAAAA,IAAAA,EAAmB5qB,KAAKqE,MAAM2iB,eAC9C,IAAG,EAAa4D,EAASrF,MAAM,KAA5B,GACT,YADa,IAAG,KAAE,GACN3O,QAAQ,IAAK,IAC3B,EAMQ,YAAAiR,eAAR,SACE7hB,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAgBhG,KAAKqE,MAAM2B,YAC3B,IAAAC,IAAAA,EAAiBjG,KAAKqE,MAAM4B,QAEpBjG,KAAKqE,MAAMuiB,WACjB,IAAK,WACH,IAAIiE,EAAW,IAEX7kB,EAAQ,GAAKC,EAAS,EACxB4kB,EAAWpb,KAAK8U,IAAIve,EAAOC,GAClBD,EAAQ,EACjB6kB,EAAW7kB,EACFC,EAAS,IAClB4kB,EAAW5kB,GAGb,IAAI6kB,EAAc,EAKlB,MAJ+B,aAA3B9qB,KAAKqE,MAAMyiB,cACbgE,EAAc7kB,EAAS,GAGlB,CACLD,MAAO6kB,EACP5kB,OAAQ4kB,EAAWC,GAGvB,IAAK,UAcH,OAbI9kB,EAAQ,GAAKC,EAAS,EAExBA,EAASD,EAAQ,EAAIC,EAASD,EAAQ,EAAIC,EACjCD,EAAQ,EACjBC,EAASD,EAAQ,EACRC,EAAS,EAElBD,EAAiB,EAATC,GAERD,EAAQ,IACRC,EAAS,IAGJ,CACLD,MAAK,EACLC,OAAM,GAGV,QACE,MAAM,IAAIwO,MAAM,uBAEtB,EApjBuB,EAAA8S,cAAgB,IAqjBzC,C,CAtjBA,CAAmChK,EAAA,I,8qBC9D5B,SAASwN,GAAgBhqB,GAC9B,OAAO,QACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZ+U,aAAa,QAAWhY,EAAKgY,YAAa,GAC1C8I,aAAa,QAAiB9gB,EAAK8gB,YAAa,MAChDmJ,WAAW,QAAiBjqB,EAAKiqB,UAAW,MAC5CC,gBAAiBlqB,EAAKkqB,iBAE1B,CAEA,gC,8CAyDA,QAzDiC,OACrB,YAAA1jB,iBAAV,WACE,IAAME,EAAsBpH,SAASC,cAAc,OAcnD,GAbAmH,EAAIlH,UAAY,MAEhBkH,EAAII,MAAMqjB,UAAY,aAElBlrB,KAAKqE,MAAM4mB,gBACbxjB,EAAII,MAAMwF,gBAAkB,cAExBrN,KAAKqE,MAAM2mB,YACbvjB,EAAII,MAAMwF,gBAAkBrN,KAAKqE,MAAM2mB,WAKvChrB,KAAKqE,MAAM0U,YAAc,EAAG,CAC9BtR,EAAII,MAAMsjB,YAAc,QAExB,IAAMC,EAAiB3b,KAAK8U,IAAIvkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE8S,EAActJ,KAAK8U,IAAIvkB,KAAKqE,MAAM0U,YAAaqS,GACrD3jB,EAAII,MAAMkR,YAAc,UAAGA,EAAW,MAElC/Y,KAAKqE,MAAMwd,cACbpa,EAAII,MAAMga,YAAc7hB,KAAKqE,MAAMwd,Y,CAIvC,OAAOpa,CACT,EAMU,YAAAuC,iBAAV,SAA2B5J,GAUzB,GATIJ,KAAKqE,MAAM4mB,gBACb7qB,EAAQyH,MAAMwF,gBAAkB,cAE5BrN,KAAKqE,MAAM2mB,YACb5qB,EAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM2mB,WAK3ChrB,KAAKqE,MAAM0U,YAAc,EAAG,CAC9B3Y,EAAQyH,MAAMsjB,YAAc,QAE5B,IAAMC,EAAiB3b,KAAK8U,IAAIvkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE8S,EAActJ,KAAK8U,IAAIvkB,KAAKqE,MAAM0U,YAAaqS,GACrDhrB,EAAQyH,MAAMkR,YAAc,UAAGA,EAAW,MAEtC/Y,KAAKqE,MAAMwd,cACbzhB,EAAQyH,MAAMga,YAAc7hB,KAAKqE,MAAMwd,Y,CAG7C,EACF,EAzDA,CAAiCtE,EAAA,I,orBCzB1B,SAAS8N,GAAkBtqB,GAChC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,KACH,QAAqB5B,GAE5B,CAEA,gC,8CAoBA,QApBmC,QACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAIvC,OAHAF,EAAQG,UAAY,QACpBH,EAAQkJ,UAAYtJ,KAAKgJ,6BAElB5I,CACT,EAOO,YAAAkH,sBAAP,WACE,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EApBA,CAAmCmd,EAAA,I,orBCQ7B+N,GAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,SACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,SAEb,EA6BO,SAASC,GACdzqB,GAEA,GAA0B,iBAAfA,EAAK0I,OAA4C,IAAtB1I,EAAK0I,MAAMxJ,OAC/C,MAAM,IAAIyD,UAAU,iBAGtB,IAAM+nB,EA9BkB,SACxBA,GAEA,OAAQA,GACN,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACH,OAAOA,EACT,QACE,MAAO,OAEb,CAkBuBC,CAAkB3qB,EAAK0qB,cAE5C,OAAO,mBACF,QAAqB1qB,IAAK,CAC7B4B,KAAM,EACN4oB,UAAWD,GAAevqB,EAAKwqB,WAC/B9hB,MAAO1I,EAAK0I,QACS,SAAjBgiB,EACA,CAAEA,aAAY,GACd,CAAEA,aAAY,EAAEpd,QAAQ,QAAWtN,EAAKsN,OAAQ,MACjD,QAAmBtN,KACnB,QAAqBA,GAE5B,CAEA,gC,8CAwCA,QAxCyC,QAC7B,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAUvC,GATAF,EAAQG,UAAY,gBAGW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAGG,UAAzB9N,KAAKqE,MAAMknB,UAAuB,CACpC,IAAMI,EAAMtrB,SAASC,cAAc,OACnCqrB,EAAI3d,IAAMhO,KAAKqE,MAAMoF,MACrBrJ,EAAQogB,OAAOmL,E,KACV,CAEL,IAAIjV,EAAO1W,KAAKqE,MAAMoF,MAClB9F,EAAQ3D,KAAKgJ,6BACbrF,EAAM1D,OAAS,IACjByW,GAAO,QAAc,CAAC,CAAElN,MAAO,iBAAkBC,MAAOiN,IAAS/S,IAGnEvD,EAAQkJ,UAAYoN,C,CAGtB,OAAOtW,CACT,EAMc,YAAAkH,sBAAV,WACF,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EAxCA,CAAyCmd,EAAA,I,kCC7FrCqO,GAAKnc,KAAK6V,GACVuG,GAAM,EAAID,GACVE,GAAU,KACVC,GAAaF,GAAMC,GAEvB,SAASE,KACPhsB,KAAKisB,IAAMjsB,KAAKksB,IAChBlsB,KAAKmsB,IAAMnsB,KAAKosB,IAAM,KACtBpsB,KAAKqsB,EAAI,EACX,CAEA,SAAS/jB,KACP,OAAO,IAAI0jB,EACb,CAEAA,GAAK1P,UAAYhU,GAAKgU,UAAY,CAChCgQ,YAAaN,GACbO,OAAQ,SAASlnB,EAAGC,GAClBtF,KAAKqsB,GAAK,KAAOrsB,KAAKisB,IAAMjsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKksB,IAAMlsB,KAAKosB,KAAO9mB,EAC7E,EACAknB,UAAW,WACQ,OAAbxsB,KAAKmsB,MACPnsB,KAAKmsB,IAAMnsB,KAAKisB,IAAKjsB,KAAKosB,IAAMpsB,KAAKksB,IACrClsB,KAAKqsB,GAAK,IAEd,EACAI,OAAQ,SAASpnB,EAAGC,GAClBtF,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EACvD,EACAonB,iBAAkB,SAASlJ,EAAIC,EAAIpe,EAAGC,GACpCtF,KAAKqsB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,KAAOzjB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EACnF,EACAqnB,cAAe,SAASnJ,EAAIC,EAAIC,EAAIC,EAAIte,EAAGC,GACzCtF,KAAKqsB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,MAAQC,EAAM,MAAQC,EAAM,KAAO3jB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EAC/G,EACAsnB,MAAO,SAASpJ,EAAIC,EAAIC,EAAIC,EAAIlH,GAC9B+G,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIlH,GAAKA,EAC7C,IAAIoQ,EAAK7sB,KAAKmsB,IACVW,EAAK9sB,KAAKosB,IACVW,EAAMrJ,EAAKF,EACXwJ,EAAMrJ,EAAKF,EACXwJ,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0J,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAIzQ,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGjD,GAAiB,OAAbzc,KAAKmsB,IACPnsB,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,IAAM3I,GAAM,KAAOxjB,KAAKosB,IAAM3I,QAIjD,GAAM0J,EAAQrB,GAKd,GAAMrc,KAAKM,IAAImd,EAAMH,EAAMC,EAAMC,GAAOnB,IAAarP,EAKrD,CACH,IAAI2Q,EAAM1J,EAAKmJ,EACXQ,EAAM1J,EAAKmJ,EACXQ,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAM/d,KAAKge,KAAKH,GAChBI,EAAMje,KAAKge,KAAKN,GAChB3H,EAAI/I,EAAIhN,KAAKke,KAAK/B,GAAKnc,KAAKme,MAAMN,EAAQH,EAAQI,IAAU,EAAIC,EAAME,KAAS,GAC/EG,EAAMrI,EAAIkI,EACVI,EAAMtI,EAAIgI,EAGV/d,KAAKM,IAAI8d,EAAM,GAAK/B,KACtB9rB,KAAKqsB,GAAK,KAAO7I,EAAKqK,EAAMZ,GAAO,KAAOxJ,EAAKoK,EAAMX,IAGvDltB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,WAAayQ,EAAME,EAAMH,EAAMI,GAAQ,KAAOrtB,KAAKmsB,IAAM3I,EAAKsK,EAAMf,GAAO,KAAO/sB,KAAKosB,IAAM3I,EAAKqK,EAAMd,EACxI,MArBEhtB,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,IAAM3I,GAAM,KAAOxjB,KAAKosB,IAAM3I,EAsBxD,EACAsK,IAAK,SAAS1oB,EAAGC,EAAGmX,EAAGuR,EAAIC,EAAIC,GAC7B7oB,GAAKA,EAAGC,GAAKA,EAAW4oB,IAAQA,EAChC,IAAIC,GADY1R,GAAKA,GACRhN,KAAK2e,IAAIJ,GAClBK,EAAK5R,EAAIhN,KAAK6e,IAAIN,GAClBnB,EAAKxnB,EAAI8oB,EACTrB,EAAKxnB,EAAI+oB,EACTE,EAAK,EAAIL,EACTM,EAAKN,EAAMF,EAAKC,EAAKA,EAAKD,EAG9B,GAAIvR,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGhC,OAAbzc,KAAKmsB,IACPnsB,KAAKqsB,GAAK,IAAMQ,EAAK,IAAMC,GAIpBrd,KAAKM,IAAI/P,KAAKmsB,IAAMU,GAAMf,IAAWrc,KAAKM,IAAI/P,KAAKosB,IAAMU,GAAMhB,MACtE9rB,KAAKqsB,GAAK,IAAMQ,EAAK,IAAMC,GAIxBrQ,IAGD+R,EAAK,IAAGA,EAAKA,EAAK3C,GAAMA,IAGxB2C,EAAKzC,GACP/rB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOlpB,EAAI8oB,GAAM,KAAO7oB,EAAI+oB,GAAM,IAAM5R,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOvuB,KAAKmsB,IAAMU,GAAM,KAAO7sB,KAAKosB,IAAMU,GAIrJ0B,EAAK1C,KACZ9rB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,SAAW+R,GAAM5C,IAAO,IAAM2C,EAAK,KAAOvuB,KAAKmsB,IAAM9mB,EAAIoX,EAAIhN,KAAK2e,IAAIH,IAAO,KAAOjuB,KAAKosB,IAAM9mB,EAAImX,EAAIhN,KAAK6e,IAAIL,KAElJ,EACAQ,KAAM,SAASppB,EAAGC,EAAGopB,EAAGC,GACtB3uB,KAAKqsB,GAAK,KAAOrsB,KAAKisB,IAAMjsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKksB,IAAMlsB,KAAKosB,KAAO9mB,GAAK,MAAQopB,EAAK,MAAQC,EAAK,KAAQD,EAAK,GACzH,EACAE,SAAU,WACR,OAAO5uB,KAAKqsB,CACd,GAGF,UCjIe,YAAShnB,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJO,IAAI0K,GAAMN,KAAKM,IACXsV,GAAQ5V,KAAK4V,MACb+I,GAAM3e,KAAK2e,IACXhT,GAAM3L,KAAK2L,IACXmJ,GAAM9U,KAAK8U,IACX+J,GAAM7e,KAAK6e,IACXb,GAAOhe,KAAKge,KAEZ,GAAU,MACV,GAAKhe,KAAK6V,GACVuJ,GAAS,GAAK,EACd,GAAM,EAAI,GAEd,SAASjB,GAAKvoB,GACnB,OAAOA,EAAI,EAAI,EAAIA,GAAK,EAAI,GAAKoK,KAAKme,KAAKvoB,EAC7C,CAEO,SAASypB,GAAKzpB,GACnB,OAAOA,GAAK,EAAIwpB,GAASxpB,IAAM,GAAKwpB,GAASpf,KAAKqf,KAAKzpB,EACzD,CCfA,SAAS0pB,GAAenT,GACtB,OAAOA,EAAEoT,WACX,CAEA,SAASC,GAAerT,GACtB,OAAOA,EAAEsT,WACX,CAEA,SAASC,GAAcvT,GACrB,OAAOA,EAAEwT,UACX,CAEA,SAASC,GAAYzT,GACnB,OAAOA,EAAE0T,QACX,CAEA,SAASC,GAAY3T,GACnB,OAAOA,GAAKA,EAAE4T,QAChB,CAEA,SAASC,GAAU5C,EAAIC,EAAItJ,EAAIC,EAAIC,EAAIC,EAAI+L,EAAIC,GAC7C,IAAIC,EAAMpM,EAAKqJ,EAAIgD,EAAMpM,EAAKqJ,EAC1BgD,EAAMJ,EAAKhM,EAAIqM,EAAMJ,EAAKhM,EAC1B1W,EAAI8iB,EAAMH,EAAME,EAAMD,EAC1B,KAAI5iB,EAAIA,EAAI,IAEZ,MAAO,CAAC4f,GADR5f,GAAK6iB,GAAOhD,EAAKnJ,GAAMoM,GAAOlD,EAAKnJ,IAAOzW,GACzB2iB,EAAK9C,EAAK7f,EAAI4iB,EACjC,CAIA,SAASG,GAAenD,EAAIC,EAAItJ,EAAIC,EAAIwM,EAAIC,EAAI3B,GAC9C,IAAItB,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0M,GAAM5B,EAAK2B,GAAMA,GAAMzC,GAAKR,EAAMA,EAAMC,EAAMA,GAC9CkD,EAAKD,EAAKjD,EACVmD,GAAMF,EAAKlD,EACXqD,EAAMzD,EAAKuD,EACXG,EAAMzD,EAAKuD,EACXT,EAAMpM,EAAK4M,EACXP,EAAMpM,EAAK4M,EACXG,GAAOF,EAAMV,GAAO,EACpBa,GAAOF,EAAMV,GAAO,EACpB1B,EAAKyB,EAAMU,EACXjC,EAAKwB,EAAMU,EACXG,EAAKvC,EAAKA,EAAKE,EAAKA,EACpB5R,EAAIwT,EAAKC,EACTS,EAAIL,EAAMT,EAAMD,EAAMW,EACtB3U,GAAKyS,EAAK,GAAK,EAAI,GAAKZ,GAAKrS,GAAI,EAAGqB,EAAIA,EAAIiU,EAAKC,EAAIA,IACrDC,GAAOD,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BG,IAAQF,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BI,GAAOH,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BK,IAAQJ,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BM,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMN,EACZW,EAAMJ,EAAMN,EAMhB,OAFIO,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKP,EAAME,EAAKD,EAAME,GAE7D,CACLK,GAAIR,EACJS,GAAIR,EACJ5D,KAAMmD,EACNlD,KAAMmD,EACNC,IAAKM,GAAOX,EAAKxT,EAAI,GACrB8T,IAAKM,GAAOZ,EAAKxT,EAAI,GAEzB,C,krBCpCA,SAAS6U,GACP3uB,GAEA,OAAQA,GACN,IAAK,eACL,IAAK,SACL,IAAK,wBACL,IAAK,4BACH,OAAOA,EACT,QACA,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,SACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,4BAEb,CAMA,SAAS4uB,GAAiBhG,GACxB,OAAQA,GACN,IAAK,UACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,UAEb,CAWO,SAASiG,GACdzwB,GAEA,OAAO,gBACF,QAAqBA,IAAK,CAC7B4B,KAAM,EACN8uB,eAAgBH,GAAsBvwB,EAAK0wB,gBAAkB1wB,EAAK4B,MAClE4oB,UAAWgG,GAAiBxwB,EAAKwqB,WACjCmG,UAAU,QAAW3wB,EAAK2wB,SAAU,MACpCC,UAAU,QAAW5wB,EAAK4wB,SAAU,MACpChjB,OAAO,QAAiB5N,EAAK4N,MAAO,MACpCijB,YAAY,QAAiB7wB,EAAK6wB,WAAY,MAC9CnoB,OAAO,QAAa1I,EAAK0I,MAAO,MAChC6F,MAAM,QAAiBvO,EAAKuO,KAAM,SAC/B,QAAmBvO,KACnB,QAAqBA,GAE5B,CAEA,IAAM,GAAQ,6BAEd,4B,8CA6NA,QA7NwC,QAC5B,YAAAwG,iBAAV,WACE,IAUIsqB,EAVE3J,EAAS,CACb4J,WAAY,UACZC,SAAU/xB,KAAKqE,MAAMsK,OAAS,UAC9B+H,KAAM1W,KAAKqE,MAAMutB,YAAc,WAG3BG,EAAW/xB,KAAKgyB,cAEhB5xB,EAAUC,SAASC,cAAc,OAGf,MAApBN,KAAKqE,MAAMoF,QAEXooB,EADErc,KACYA,KAAKyc,aAAa,SAASpc,OAAO7V,KAAKqE,MAAMoF,OAE7CzJ,KAAKqE,MAAMoF,OAK7B,IAAMkX,EAAMtgB,SAASkR,gBAAgB,GAAO,OAE5C,OAAQvR,KAAKqE,MAAMotB,gBACjB,IAAK,eAED,IAAMS,EAAiB7xB,SAASkR,gBAAgB,GAAO,QACvD2gB,EAAezmB,aAAa,OAAQyc,EAAO4J,YAC3CI,EAAezmB,aAAa,eAAgB,OAC5CymB,EAAezmB,aAAa,QAAS,QACrCymB,EAAezmB,aAAa,SAAU,QACtCymB,EAAezmB,aAAa,KAAM,KAClCymB,EAAezmB,aAAa,KAAM,KAClC,IAAM0mB,EAAe9xB,SAASkR,gBAAgB,GAAO,QACrD4gB,EAAa1mB,aAAa,OAAQyc,EAAO6J,UACzCI,EAAa1mB,aAAa,eAAgB,KAC1C0mB,EAAa1mB,aAAa,QAAS,UAAGsmB,EAAQ,MAC9CI,EAAa1mB,aAAa,SAAU,QACpC0mB,EAAa1mB,aAAa,KAAM,KAChC0mB,EAAa1mB,aAAa,KAAM,MAC1BiL,EAAOrW,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,cAAe,UACjCiL,EAAKjL,aAAa,qBAAsB,UACxCiL,EAAKjL,aAAa,YAAa,MAC/BiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aACH,YACA,oBAAazL,KAAKqE,MAAM2B,MAAQ,EAAC,YAEnC0Q,EAAKjL,aAAa,OAAQyc,EAAOxR,MAEJ,UAAzB1W,KAAKqE,MAAMknB,WACb7U,EAAK7O,MAAMmiB,SAAW,MAEtBtT,EAAKhI,YAAc1O,KAAKqE,MAAMiL,KAC1B,UAAGuiB,EAAW,YAAI7xB,KAAKqE,MAAMiL,MAC7B,UAAGuiB,IAEPnb,EAAKhI,YAAc,UAAGqjB,EAAQ,KAGhCpR,EAAIlV,aAAa,QAAS,QAC1BkV,EAAIlV,aAAa,SAAU,QAC3BkV,EAAIH,OAAO0R,EAAgBC,EAAczb,GAE3C,MACF,IAAK,SACL,IAAK,wBACL,IAAK,4BAKD,GAFAiK,EAAIlV,aAAa,UAAW,eAEM,WAA9BzL,KAAKqE,MAAMotB,gBAEPW,EAAmB/xB,SAASkR,gBAAgB,GAAO,WACxC9F,aAAa,YAAa,oBAC3C2mB,EAAiB3mB,aAAa,OAAQyc,EAAO4J,YAC7CM,EAAiB3mB,aAAa,eAAgB,OAC9C2mB,EAAiB3mB,aAAa,IAAK,OAC7B4mB,EAAiBhyB,SAASkR,gBAAgB,GAAO,WACxC9F,aAAa,YAAa,oBACzC4mB,EAAe5mB,aAAa,OAAQyc,EAAO6J,UAC3CM,EAAe5mB,aAAa,eAAgB,KAC5C4mB,EAAe5mB,aAAa,IAAK,UAAGsmB,EAAW,IAE/CpR,EAAIH,OAAO4R,EAAkBC,OACxB,CAEL,IASMD,EAKAC,EAdAC,EAAW,CACftD,YACgC,0BAA9BhvB,KAAKqE,MAAMotB,eAA6C,GAAK,EAC/DvC,YAAa,GACbE,WAAY,EACZE,SAAoB,EAAV7f,KAAK6V,IAEXyI,ED7HH,WACb,IAAIiB,EAAcD,GACdG,EAAcD,GACdsD,EAAeC,GAAS,GACxBC,EAAY,KACZrD,EAAaD,GACbG,EAAWD,GACXG,EAAWD,GACXmD,EAAU,KAEd,SAAS3E,IACP,IAAI4E,EACAlW,EACAmW,GAAM5D,EAAY6D,MAAM7yB,KAAM8yB,WAC9B7C,GAAMf,EAAY2D,MAAM7yB,KAAM8yB,WAC9B9E,EAAKoB,EAAWyD,MAAM7yB,KAAM8yB,WAAajE,GACzCZ,EAAKqB,EAASuD,MAAM7yB,KAAM8yB,WAAajE,GACvCL,EAAKze,GAAIke,EAAKD,GACdO,EAAKN,EAAKD,EAQd,GANK0E,IAASA,EAAUC,EAAS,MAG7B1C,EAAK2C,IAAInW,EAAIwT,EAAIA,EAAK2C,EAAIA,EAAKnW,GAG7BwT,EAAK,GAGN,GAAIzB,EAAK,GAAM,GAClBkE,EAAQnG,OAAO0D,EAAK7B,GAAIJ,GAAKiC,EAAK3B,GAAIN,IACtC0E,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIjC,EAAIC,GAAKM,GAC3BqE,EAAK,KACPF,EAAQnG,OAAOqG,EAAKxE,GAAIH,GAAK2E,EAAKtE,GAAIL,IACtCyE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAI3E,EAAID,EAAIO,QAK7B,CACH,IAWIwE,EACAC,EAZAC,EAAMjF,EACNkF,EAAMjF,EACNkF,EAAMnF,EACNoF,EAAMnF,EACNoF,EAAM7E,EACN8E,EAAM9E,EACN+E,EAAK/D,EAASqD,MAAM7yB,KAAM8yB,WAAa,EACvCU,EAAMD,EAAK,KAAad,GAAaA,EAAUI,MAAM7yB,KAAM8yB,WAAarF,GAAKmF,EAAKA,EAAK3C,EAAKA,IAC5FC,EAAK3L,GAAIxU,GAAIkgB,EAAK2C,GAAM,GAAIL,EAAaM,MAAM7yB,KAAM8yB,YACrDW,EAAMvD,EACNwD,EAAMxD,EAKV,GAAIsD,EAAK,GAAS,CAChB,IAAIG,EAAK7E,GAAK0E,EAAKZ,EAAKtE,GAAIiF,IACxBK,EAAK9E,GAAK0E,EAAKvD,EAAK3B,GAAIiF,KACvBF,GAAY,EAALM,GAAU,IAA8BR,GAArBQ,GAAOpF,EAAK,GAAK,EAAe6E,GAAOO,IACjEN,EAAM,EAAGF,EAAMC,GAAOpF,EAAKC,GAAM,IACjCqF,GAAY,EAALM,GAAU,IAA8BX,GAArBW,GAAOrF,EAAK,GAAK,EAAe2E,GAAOU,IACjEN,EAAM,EAAGL,EAAMC,GAAOlF,EAAKC,GAAM,EACxC,CAEA,IAAIhB,EAAMgD,EAAK7B,GAAI6E,GACf/F,EAAM+C,EAAK3B,GAAI2E,GACfrD,EAAMgD,EAAKxE,GAAIgF,GACfvD,EAAM+C,EAAKtE,GAAI8E,GAGnB,GAAIlD,EAAK,GAAS,CAChB,IAII2D,EAJAvD,EAAML,EAAK7B,GAAI8E,GACf3C,EAAMN,EAAK3B,GAAI4E,GACf1C,EAAMoC,EAAKxE,GAAI+E,GACf1C,EAAMmC,EAAKtE,GAAI6E,GAInB,GAAI3E,EAAK,KAAOqF,EAAKpE,GAAUxC,EAAKC,EAAKsD,EAAKC,EAAKH,EAAKC,EAAKX,EAAKC,IAAO,CACvE,IAAIiE,EAAK7G,EAAM4G,EAAG,GACdE,EAAK7G,EAAM2G,EAAG,GACdG,EAAK1D,EAAMuD,EAAG,GACdI,EAAK1D,EAAMsD,EAAG,GACdK,EAAK,EAAI5F,GAAIV,IAAMkG,EAAKE,EAAKD,EAAKE,IAAOxG,GAAKqG,EAAKA,EAAKC,EAAKA,GAAMtG,GAAKuG,EAAKA,EAAKC,EAAKA,KAAQ,GAC/FE,EAAK1G,GAAKoG,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IACzCJ,EAAMlP,GAAI2L,GAAK0C,EAAKuB,IAAOD,EAAK,IAChCR,EAAMnP,GAAI2L,GAAKD,EAAKkE,IAAOD,EAAK,GAClC,CACF,CAGMZ,EAAM,GAGHI,EAAM,IACbX,EAAK/C,GAAeQ,EAAKC,EAAKxD,EAAKC,EAAK+C,EAAIyD,EAAKnF,GACjDyE,EAAKhD,GAAeM,EAAKC,EAAKX,EAAKC,EAAKI,EAAIyD,EAAKnF,GAEjDmE,EAAQnG,OAAOwG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCwG,EAAMxD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAGkC,EAAI5K,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,MAAO/B,GACrGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIqC,EAAKrO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,MAK7EmE,EAAQnG,OAAOU,EAAKC,GAAMwF,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIgD,EAAKC,GAAM3E,IArB1CmE,EAAQnG,OAAOU,EAAKC,GAyBpC0F,EAAK,IAAcS,EAAM,GAGtBI,EAAM,IACbV,EAAK/C,GAAeJ,EAAKC,EAAKS,EAAKC,EAAKqC,GAAKa,EAAKlF,GAClDyE,EAAKhD,GAAe/C,EAAKC,EAAKsD,EAAKC,EAAKmC,GAAKa,EAAKlF,GAElDmE,EAAQjG,OAAOsG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCuG,EAAMvD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIvN,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,KAAM/B,GACpGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIoC,EAAKpO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,KAK7EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIQ,EAAKD,EAAK5E,GArBImE,EAAQjG,OAAOmD,EAAKC,EAsB/D,MAhHqB6C,EAAQnG,OAAO,EAAG,GAoHvC,GAFAmG,EAAQlG,YAEJmG,EAAQ,OAAOD,EAAU,KAAMC,EAAS,IAAM,IACpD,CAwCA,OAtCA5E,EAAIqG,SAAW,WACb,IAAI3X,IAAMuS,EAAY6D,MAAM7yB,KAAM8yB,aAAc5D,EAAY2D,MAAM7yB,KAAM8yB,YAAc,EAClFuB,IAAMjF,EAAWyD,MAAM7yB,KAAM8yB,aAAcxD,EAASuD,MAAM7yB,KAAM8yB,YAAc,EAAI,GAAK,EAC3F,MAAO,CAAC1E,GAAIiG,GAAK5X,EAAG6R,GAAI+F,GAAK5X,EAC/B,EAEAsR,EAAIiB,YAAc,SAAS3C,GACzB,OAAOyG,UAAU7yB,QAAU+uB,EAA2B,mBAAN3C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOiB,CAC9F,EAEAjB,EAAImB,YAAc,SAAS7C,GACzB,OAAOyG,UAAU7yB,QAAUivB,EAA2B,mBAAN7C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOmB,CAC9F,EAEAnB,EAAIwE,aAAe,SAASlG,GAC1B,OAAOyG,UAAU7yB,QAAUsyB,EAA4B,mBAANlG,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOwE,CAC/F,EAEAxE,EAAI0E,UAAY,SAASpG,GACvB,OAAOyG,UAAU7yB,QAAUwyB,EAAiB,MAALpG,EAAY,KAAoB,mBAANA,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAO0E,CAC/G,EAEA1E,EAAIqB,WAAa,SAAS/C,GACxB,OAAOyG,UAAU7yB,QAAUmvB,EAA0B,mBAAN/C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOqB,CAC7F,EAEArB,EAAIuB,SAAW,SAASjD,GACtB,OAAOyG,UAAU7yB,QAAUqvB,EAAwB,mBAANjD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOuB,CAC3F,EAEAvB,EAAIyB,SAAW,SAASnD,GACtB,OAAOyG,UAAU7yB,QAAUuvB,EAAwB,mBAANnD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOyB,CAC3F,EAEAzB,EAAI2E,QAAU,SAASrG,GACrB,OAAOyG,UAAU7yB,QAAWyyB,EAAe,MAALrG,EAAY,KAAOA,EAAI0B,GAAO2E,CACtE,EAEO3E,CACT,CC3DwB,IAENqE,EAAmB/xB,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,YAAa,oBAC3C2mB,EAAiB3mB,aAAa,OAAQyc,EAAO4J,YAC7CM,EAAiB3mB,aAAa,eAAgB,OAC9C2mB,EAAiB3mB,aAAa,IAAK,UAAGsiB,EAAIuE,MACpCD,EAAiBhyB,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,YAAa,oBACzC4mB,EAAe5mB,aAAa,OAAQyc,EAAO6J,UAC3CM,EAAe5mB,aAAa,eAAgB,KAC5C4mB,EAAe5mB,aACb,IACA,UAAGsiB,EAAI,SACFuE,GAAQ,CACXhD,SAAUgD,EAAShD,UAAYyC,EAAW,UAI9CpR,EAAIH,OAAO4R,EAAkBC,E,CAI/B,IAAM3b,EAQN,IARMA,EAAOrW,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,cAAe,UACjCiL,EAAKjL,aAAa,qBAAsB,UACxCiL,EAAKjL,aAAa,YAAa,MAC/BiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,OAAQyc,EAAOxR,MAEJ,UAAzB1W,KAAKqE,MAAMknB,WAA6C,MAApBvrB,KAAKqE,MAAMoF,MAEjD,GAAIzJ,KAAKqE,MAAMiL,MAAQtP,KAAKqE,MAAMiL,KAAKrP,OAAS,EAAG,CACjD,IAAMwJ,EAAQpJ,SAASkR,gBAAgB,GAAO,SAC9C9H,EAAMgC,aAAa,IAAK,KACxBhC,EAAMgC,aAAa,KAAM,OACzBhC,EAAMiF,YAAc,UAAGmjB,GACvBpoB,EAAM5B,MAAMmiB,SAAW,MACvB,IAAM1a,EAAOjP,SAASkR,gBAAgB,GAAO,SAC7CjC,EAAK7D,aAAa,IAAK,KACvB6D,EAAK7D,aAAa,KAAM,OACxB6D,EAAKZ,YAAc,UAAG1O,KAAKqE,MAAMiL,MACjCA,EAAKzH,MAAMmiB,SAAW,MACtBtT,EAAK8J,OAAO/W,EAAO6F,GACnBoH,EAAKjL,aAAa,YAAa,mB,MAE/BiL,EAAKhI,YAAc,UAAGmjB,GACtBnb,EAAK7O,MAAMmiB,SAAW,MACtBtT,EAAKjL,aAAa,YAAa,yBAIjCiL,EAAKhI,YAAc,UAAGqjB,EAAQ,KAC9Brb,EAAKjL,aAAa,YAAa,oBAGjCkV,EAAIH,OAAO9J,GAcjB,OAR+B,IAA7B1W,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,gBAEX8S,EAAIlV,aAAa,UAAW,OAGlB,OAARkV,GAAcvgB,EAAQogB,OAAOG,GAE1BvgB,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,IACQ,IAA7BJ,KAAK2G,KAAKT,gBACZlG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAElD7F,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMU,YAAAnC,cAAV,SAAwBnB,EAAeC,GACH,iBAA9BjG,KAAKqE,MAAMotB,eACb,YAAMtqB,cAAa,UAACnB,EAAO,IAE3B,YAAMmB,cAAa,UAACnB,EAAOA,EAE/B,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnB,EAAOA,GAC1B,IAAIC,EAASjG,KAAKqE,MAAMstB,UAAY,EACF,iBAA9B3xB,KAAKqE,MAAMotB,iBACbxrB,EAAS,IAEX,YAAMiE,SAAQ,aAAC,MACVlK,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,IAEV,EAEQ,YAAA+rB,YAAR,WACE,IAAMN,EAAW1xB,KAAKqE,MAAMqtB,UAAY,EAClCC,EAAW3xB,KAAKqE,MAAMstB,UAAY,IAClCloB,EAA4B,MAApBzJ,KAAKqE,MAAMoF,MAAgB,EAAIzJ,KAAKqE,MAAMoF,MAExD,OAAIA,GAASioB,EAAiB,EACrBjoB,GAASkoB,EAAiB,IACvBliB,KAAK6kB,OAAQ7qB,EAAQioB,IAAaC,EAAWD,GAAa,IACxE,EACF,EA7NA,CAAwCnU,EAAA,I,wwBCtEjC,SAASgX,GAAoBxzB,GAClC,GAAsB,OAAlBA,EAAKgc,UACP,GACiC,iBAAxBhc,EAAKic,gBACqB,IAAjCjc,EAAKgc,SAASC,eAEd,MAAM,IAAItZ,UAAU,kCAGtB,IAAI,QAAc3C,EAAKyzB,cACrB,MAAM,IAAI9wB,UAAU,kCAIxB,GAAyC,QAArC,QAAW3C,EAAK0zB,UAAW,MAC7B,MAAM,IAAI/wB,UAAU,uBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACN8xB,UAAW1zB,EAAK0zB,UAChB1X,UAAU,QAAiBhc,EAAKgc,SAAU,MAC1CC,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDwX,cAAc,QAAiBzzB,EAAKyzB,aAAc,OAEtD,CAEA,gC,8CA8CA,QA9CqC,QAC5B,YAAAjtB,iBAAP,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAmBvC,OAlBAF,EAAQG,UAAY,UAEc,OAA9BP,KAAKqE,MAAM2Y,gBACb5c,EAAQyH,MAAMiqB,WAAa,cAAO9xB,KAAKqE,MAAM2Y,eAAc,eAC3D5c,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACH,OAA5Btd,KAAKqE,MAAMmwB,eACbp0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMmwB,iBAGS,OAA5Bx0B,KAAKqE,MAAMmwB,eACpBp0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMmwB,eAGvCp0B,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACS,OAA9BJ,KAAKqE,MAAM2Y,gBACb5c,EAAQyH,MAAMiqB,WAAa,cAAO9xB,KAAKqE,MAAM2Y,eAAc,eAC3D5c,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACH,OAA5Btd,KAAKqE,MAAMmwB,eACbp0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMmwB,gBAG5Bp0B,EAAQkJ,UAAY,IACiB,OAA5BtJ,KAAKqE,MAAMmwB,eACpBp0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMmwB,cAEhD,EACF,EA9CA,CAAqCjX,EAAA,I,orBClC9B,SAASmX,GAAqB3zB,GACnC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN8G,OAAO,QAAW1I,EAAK0I,MAAO,GAC9B8E,QAAQ,QAAcxN,EAAKwN,QAAU,UAAYxN,EAAKwN,OACtDomB,YAAY,QAAc5zB,EAAK4zB,YAAc,UAAY5zB,EAAK4zB,WAC9DnzB,OAAO,QAAcT,EAAKS,OAAS,GAAKT,EAAKS,MAC7CozB,aAAa,QAAc7zB,EAAK6zB,aAAe,GAAK7zB,EAAK6zB,YACzDC,YAAY,QAAc9zB,EAAK8zB,YAAc,GAAK9zB,EAAK8zB,WACvDC,aAAa,QAAc/zB,EAAK+zB,aAAe,GAAK/zB,EAAK+zB,YACzDC,cAAc,QAAch0B,EAAKg0B,cAC7B,UACAh0B,EAAKg0B,gBACN,QAAmBh0B,GAE1B,CAEA,I,GAAA,4B,8CAoTA,QApTsC,QAC1B,YAAAwG,iBAAV,WACE,IAAIytB,EAAc,GACdC,EAAe,GACfC,EAAe,GACfC,EAAgB,GAEpB,GAA8B,KAA1Bn1B,KAAKqE,MAAMwwB,WAAmB,CAChC,IAAMA,EAAaO,KAAKC,MAAMr1B,KAAKqE,MAAMwwB,YAEtB,OAAfA,IAC4B,GAA1BA,EAAWS,aAA8C,GAA1BT,EAAWU,cAC5CP,EAAch1B,KAAKw1B,UACjBX,EAAWS,YACXt1B,KAAKqE,MAAM2B,MAAQ,GAGnBivB,EAD4B,GAA1BJ,EAAWU,YACEv1B,KAAKw1B,UAAU,IAAKx1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKw1B,UAClBX,EAAWU,YACXv1B,KAAKqE,MAAM2B,MAAQ,IAKM,GAA3B6uB,EAAWY,cAAgD,GAA3BZ,EAAWa,eAC7CR,EAAel1B,KAAKw1B,UAClBX,EAAWY,aACXz1B,KAAKqE,MAAM2B,MAAQ,GAGnBmvB,EAD6B,GAA3BN,EAAWa,aACG11B,KAAKw1B,UAAU,IAAKx1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKw1B,UACnBX,EAAWa,aACX11B,KAAKqE,MAAM2B,MAAQ,I,CAO7B,IACIoJ,EADAumB,EAAU,GAIZ9lB,OAAO7P,KAAKqE,MAAMoF,SAAWzJ,KAAKqE,MAAMoF,OACxCzJ,KAAKqE,MAAMoF,MAAQ,GAAM,EAEzB2F,EAASpP,KAAKqE,MAAMoF,MAAMmsB,QAAQ,IAGhCD,EAD6B,KAA3B31B,KAAKqE,MAAMywB,YACH,KAEA90B,KAAK61B,UAAU71B,KAAKqE,MAAMoF,OAEtC2F,EAAS,IAAIoG,KAAKyc,aAAa,KAAM,CACnC6D,yBAA0B,EAC1BC,sBAAuB,IACtBlgB,OAAO7V,KAAKqE,MAAMoF,QAGvB,IAAIusB,EAAO5mB,EAAO6mB,MAAM,WACX,OAATD,IACF5mB,EAAS4mB,EAAK,IAGhB,IAAME,EAASl2B,KAAKm2B,UAAUn2B,KAAKqE,MAAMoF,OAErC4D,EAAkBhN,SAASuI,eAC7B,4BAGsB,OAApByE,IACFA,EAAkBhN,SAASuI,eACzB,mCAA4B5I,KAAKqE,MAAMF,UAIE,IAAzCkJ,EAAgBxF,MAAMwF,kBACxBA,EAAgBxF,MAAMwF,gBAAkB,QAG1C,IAAM+oB,EAA4B,GAAnBp2B,KAAKqE,MAAM2B,MAEpB5F,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,YAGW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAI1B,IAAMuoB,EAAoBh2B,SAASC,cAAc,OACjD+1B,EAAkB91B,UAAY,qBAG9B,IAAM+1B,EAAYj2B,SAASC,cAAc,OACzCg2B,EAAU/1B,UAAY,aACtB+1B,EAAUzuB,MAAMwF,gBAAkB,UAAGA,EAAgBxF,MAAMwF,iBAG3D,IAAMkpB,EAAYl2B,SAASC,cAAc,OACzCi2B,EAAUh2B,UAAY,aACtBg2B,EAAU1zB,GAAK,oBAAa7C,KAAKqE,MAAMxB,IACvC0zB,EAAU1uB,MAAMwF,gBAAkB,UAAGrN,KAAKqE,MAAMkK,QAGhD,IAAMioB,EAAYn2B,SAASC,cAAc,OACzCk2B,EAAUj2B,UAAY,aAGtB,IAAMk2B,EAASp2B,SAASC,cAAc,OACtCm2B,EAAOl2B,UAAY,aAEnB,IAAMm2B,EAAS,6BAEf,GAAmB,IAAf1B,EAAmB,CACrB,IAAM2B,EAAat2B,SAASkR,gBAAgBmlB,EAAQ,OACpDC,EAAWC,eAAe,KAAM,QAAS,QACzCD,EAAWC,eAAe,KAAM,SAAU,QAC1CD,EAAWC,eAAe,KAAM,QAAS,+BACzC,IAAMC,EAAcx2B,SAASkR,gBAAgBmlB,EAAQ,QACrDG,EAAYD,eAAe,KAAM,KAAM,qBAAc52B,KAAKqE,MAAMxB,KAChEg0B,EAAYD,eACV,KACA,IACA,WAAI52B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIgvB,EAAW,YAAIh1B,KAChEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUivB,EAAY,MAElE4B,EAAYD,eAAe,KAAM,QAAS,eAC1CD,EAAW/1B,YAAYi2B,GACvBR,EAAkBz1B,YAAY+1B,E,CAIhC,GAAoB,IAAhBzB,EAAoB,CACtB,IAAM4B,EAAcz2B,SAASkR,gBAAgBmlB,EAAQ,OACrDI,EAAYF,eAAe,KAAM,QAAS,QAC1CE,EAAYF,eAAe,KAAM,SAAU,QAC3CE,EAAYF,eAAe,KAAM,QAAS,+BAC1C,IAAMG,EAAe12B,SAASkR,gBAAgBmlB,EAAQ,QACtDK,EAAaH,eAAe,KAAM,KAAM,sBAAe52B,KAAKqE,MAAMxB,KAClEk0B,EAAaH,eACX,KACA,IACA,WAAI52B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIkvB,EAAY,YAAIl1B,KACjEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUmvB,EAAa,MAEnE4B,EAAaH,eAAe,KAAM,OAAQ,WAC1CE,EAAYl2B,YAAYm2B,GACxBV,EAAkBz1B,YAAYk2B,E,CAIhC,IAAME,EAAK32B,SAASC,cAAc,MAClC02B,EAAGC,UAAY7nB,EAASumB,EACxBqB,EAAGnvB,MAAMmiB,SAAW,UAAY,IAAToM,EAAa,MACpCY,EAAGnvB,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMkK,QAC/ByoB,EAAGnvB,MAAMqvB,WAAa,IAEtB,IAAMC,EAAK92B,SAASC,cAAc,MACV,IAApBN,KAAKqE,MAAM7C,MACb21B,EAAGzoB,YAAc1O,KAAKo3B,cAAcp3B,KAAKqE,MAAMyF,YAE/CqtB,EAAGzoB,YAAc1O,KAAKo3B,cAAcp3B,KAAKqE,MAAM7C,OAEjD21B,EAAG31B,MAAQxB,KAAKqE,MAAMuwB,YACtBuC,EAAG1rB,aAAa,QAASzL,KAAKqE,MAAMuwB,aAEpCuC,EAAGtvB,MAAMmiB,SAAW,UAAY,IAAToM,EAAa,MACpCe,EAAGtvB,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMswB,YAC/BwC,EAAGtvB,MAAMqvB,WAAa,IAEtB,IAAIG,EAASh3B,SAASC,cAAc,UACpC+2B,EAAO10B,KAAO,kBACd00B,EAAOC,OAAS,WACdf,EAAU1uB,MAAMqe,UAAY,iBAAUgQ,EAAM,QAC9C,EACA,IAAIqB,EAAcpiB,OAAOqiB,SAASC,SAASlS,MAAM,KAAK,GAWtD,OAVA8R,EAAOrpB,IAAM,UAAG3N,SAASq3B,IAAG,YAAIH,EAAW,yCAC3CjB,EAAU11B,YAAYo2B,GACtBV,EAAU11B,YAAYu2B,GACtBd,EAAkBz1B,YAAY21B,GAC9BF,EAAkBz1B,YAAY41B,GAC9BH,EAAkBz1B,YAAY61B,GAC9BJ,EAAkBz1B,YAAY01B,GAC9BD,EAAkBz1B,YAAYy2B,GAC9Bj3B,EAAQQ,YAAYy1B,GAEbj2B,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GAA3B,WACEA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,UAE5C,IAAI4sB,EAASl2B,KAAKm2B,UAAUn2B,KAAKqE,MAAMoF,OAEjCktB,EAAat2B,SAASuI,eAAe,qBAAc5I,KAAKqE,MAAMxB,KAClD,MAAd8zB,IACFA,EAAW9uB,MAAM8vB,QAAU,QAG7B,IAAMb,EAAcz2B,SAASuI,eAAe,sBAAe5I,KAAKqE,MAAMxB,KACnD,MAAfi0B,IACFA,EAAYjvB,MAAM8vB,QAAU,QAG9B1pB,YAAW,WACS,MAAd0oB,IACFA,EAAW9uB,MAAM8vB,QAAU,SAGV,MAAfb,IACFA,EAAYjvB,MAAM8vB,QAAU,SAG9B,IAAIpB,EAAYl2B,SAASuI,eAAe,oBAAa,EAAKvE,MAAMxB,KAC5D0zB,IACFA,EAAU1uB,MAAMqe,UAAY,iBAAUgQ,EAAM,SAEhD,GAAG,IACL,EAEU,YAAA/uB,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAAQ,EACrC,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAChC,EAEQ,YAAAmwB,UAAR,SAAkB1sB,GAChB,IAAIysB,EAAS,EACb,GAA+B,KAA3Bl2B,KAAKqE,MAAMywB,YACboB,EAASzsB,EAAQ,EAAI,QAChB,CACL,IAAMmuB,EAASxC,KAAKC,MAAMr1B,KAAKqE,MAAMywB,aACrC,GAAI8C,EAAY,MAAMnuB,EACpBysB,EAAS,OACJ,GAAI0B,EAAY,MAAMnuB,EAC3BysB,EAAS,OACJ,CACL,IAAM2B,EAAQD,EAAY,IAAIA,EAAY,IAE1C1B,GAAU,IAAkB,KADX0B,EAAY,IAAInuB,GACEouB,GAAS,IAAM,C,EAItD,OAAO3B,CACT,EAEQ,YAAAL,UAAR,SAAkBpsB,GAChB,IAAIquB,EAAS,GACP73B,GAAUwJ,EAAQ,IAAIxJ,OAW5B,OAVIA,EAAS,GAAKA,GAAU,EAC1B63B,EAAS,KACA73B,EAAS,GAAKA,GAAU,EACjC63B,EAAS,KACA73B,EAAS,GAAKA,GAAU,GACjC63B,EAAS,KACA73B,EAAS,IAAMA,GAAU,KAClC63B,EAAS,MAGJA,CACT,EAEQ,YAAAtC,UAAR,SAAkBG,EAAiBoC,GACjC,GAA+B,KAA3B/3B,KAAKqE,MAAMywB,YAAoB,CACjC,IAAM8C,EAASxC,KAAKC,MAAMr1B,KAAKqE,MAAMywB,aACrC,GAAI8C,EAAY,MAAMjC,EACpBA,EAAU,OACL,GAAIiC,EAAY,MAAMjC,GAAuB,MAAZA,EACtCA,EAAU,QACL,CACL,IAAMkC,EAAQD,EAAY,IAAIA,EAAY,IAE1CjC,EAAU,IAAkB,KADbiC,EAAY,IAAIjC,GACIkC,C,EAIvClC,EAAU,IAAgB,IAAVA,EAChB,IAAMtwB,EAAI0yB,EAAQtoB,KAAK2e,IAAKuH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EAClDzyB,EAAIyyB,EAAQtoB,KAAK6e,IAAKqH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EACxD,MAAO,UAAG1yB,EAAC,YAAIC,EACjB,EAEQ,YAAA8xB,cAAR,SAAsB51B,GACpB,GAAa,MAATA,GAAiBA,EAAMvB,OAAS,GAAI,CACtC,IAAM+3B,EAAax2B,EAAMvB,OAAS,EAC5Bg4B,EAAOD,EAAa,EACpBE,EAAe12B,EAAMmR,OAAO,EAAGqlB,EAAaC,GAC5CE,EAAc32B,EAAMmR,OAAOqlB,EAAaC,GAE9C,MAAO,UAAGC,EAAY,cAAMC,E,CAE5B,OAAO32B,CAEX,EACF,EApTA,CAAsC+b,EAAA,I,qPCuDtC,SAAS6a,GAAYr3B,GACnB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,OAAQf,GACN,KAAK,EACH,OAAOma,EAAwB/b,GACjC,KAAK,EACH,OAAO,QAAwBA,GACjC,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAOyqB,GAAwBzqB,GACjC,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAOywB,GAAuBzwB,GAChC,KAAK,EACH,OAAOsqB,GAAkBtqB,GAC3B,KAAK,EACH,OAAOyc,EAAiBzc,GAC1B,KAAK,GACH,OAAOwzB,GAAoBxzB,GAC7B,KAAK,GACH,OAAOwlB,EAAkBxlB,GAC3B,KAAK,GACH,OAAOgqB,GAAgBhqB,GACzB,KAAK,GACH,OAAOsgB,EAAiBtgB,GAC1B,KAAK,GACH,OAAO,QAA0BA,GACnC,KAAK,GACH,OAAO,QAAuBA,GAChC,KAAK,GACH,OAAO,QAAsBA,GAC/B,KAAK,GACH,OAAOgmB,EAAkBhmB,GAC3B,KAAK,GACH,OAAO8c,EAAuB9c,GAChC,KAAK,GACH,OAAO8jB,EAAwB9jB,GACjC,KAAK,GACH,OAAO2zB,GAAqB3zB,GAC9B,KAAK,GACH,OAAO,QAAuBA,GAChC,QACE,MAAM,IAAI2C,UAAU,qBAE1B,CAwEA,I,GAAA,WA8cE,WACEoH,EACAzG,EACAg0B,GAHF,WAxcQ,KAAAC,aAEJ,CAAC,EAEG,KAAAC,WAAgC,GAEhC,KAAAC,UAEJ,CAAC,EAGG,KAAAC,UAEJ,CAAC,EAEG,KAAA1U,MAEJ,CAAC,EAGY,KAAApf,kBAAoB,IAAIme,EAAA,EAExB,KAAAle,qBAAuB,IAAIke,EAAA,EAE3B,KAAAje,kBAAoB,IAAIie,EAAA,EAExB,KAAAD,sBAAwB,IAAIC,EAAA,EAE5B,KAAA/d,oBAAsB,IAAI+d,EAAA,EAE1B,KAAA5d,6BAA+B,IAAI4d,EAAA,EAInC,KAAA3d,YAA4B,GAMrC,KAAAuzB,mBAAkD,SAAA31B,GACxD,EAAK4B,kBAAkBvD,KAAK2B,EAE9B,EAMQ,KAAA41B,sBAAqD,SAAA51B,GAC3D,EAAK6B,qBAAqBxD,KAAK2B,EAEjC,EAMQ,KAAA61B,sBAAqD,SAAA71B,GAC3D,IAAIJ,EAAOI,EAAE8C,KAAKW,UAAU7D,KAC5B,GAAa,KAATA,GAAwB,KAATA,IAA2C,IAA5B,EAAK0B,MAAMw0B,aAAuB,CAClE,IAAIC,EAAW,EAAKz0B,MAAMy0B,SACtBC,EAAYh2B,EAAE2C,YAAYL,EAC1B2zB,EAAYj2B,EAAE2C,YAAYJ,EAC9B,GAAIyzB,EAAYD,GAAa,GAAKE,EAAYF,GAAa,EAAG,CAC5D,IAAIzzB,EAAIoK,KAAKqD,MAAMimB,EAAYD,GAAYA,EACvCxzB,EAAImK,KAAKqD,MAAMkmB,EAAYF,GAAYA,EAQ3C,YAPqBz4B,SAASuI,eAC5B,sBAEa6C,aACb,QACA,OAASnG,EAAI,uBAAyBD,EAAI,gB,EAMhD,IAAM4zB,EAASl2B,EAAE8C,KAAKxB,MAAMxB,GACV,EAAKq2B,iBAAiBD,GAE9Bt4B,SAAQ,SAAAw4B,GACZA,EAASp1B,WAAak1B,EAExBE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBid,cAAe,EAAK8X,gBAAgBr2B,EAAE2C,YAAa3C,EAAE8C,QAE9CszB,EAASE,UAAYJ,IAE9BE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBod,YAAa,EAAK2X,gBAAgBr2B,EAAE2C,YAAa3C,EAAE8C,QAGzD,IAGA,EAAKyzB,qBAAqBv2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAGzD,EAMQ,KAAA6zB,8BAA6D,SAAAx2B,GACnE,EAAK8B,kBAAkBzD,KAAK2B,GAE5B,EAAKu2B,qBAAqBv2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAEzD,EA+BQ,KAAA8zB,kCAEI,SAAAz2B,GAEV,EAAK02B,YAAY12B,EAAE8C,MAGnB,EAAKgd,sBAAsBzhB,KAAK2B,EAGlC,EAMQ,KAAA22B,wBAAyD,SAAA32B,GAE/D,IAAM8C,EAAO9C,EAAE8C,KACTxB,EAAQwB,EAAKxB,MACb40B,EAAS50B,EAAMxB,GACf21B,EAAY,EAAKU,iBAAiBD,GAElC/sB,EAAW,CACf7G,EAAGhB,EAAMgB,EACTC,EAAGjB,EAAMiB,GAGLqB,EAAO,EAAK2xB,aAAaW,GAAQtyB,KAEvC,EAAK2xB,aAAaW,GAAQtyB,KAAO,SAC5BA,GAAI,CACPoC,YAAY,IAGdyvB,EAAU73B,SAAQ,SAAAw4B,GACZA,EAASp1B,WAAak1B,EAExBE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBid,cAAe,EAAK8X,gBAAgBltB,EAAUrG,KAEvCszB,EAASE,UAAYJ,IAE9BE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBod,YAAa,EAAK2X,gBAAgBltB,EAAUrG,KAGlD,GAGF,EAMQ,KAAA8zB,gCAEI,SAAA52B,GACV,EAAKgC,oBAAoB3D,KAAK2B,EAEhC,EAMQ,KAAA62B,oBAAoD,SAAA72B,GAE1D,EAAKw1B,WAAa,EAAKA,WAAWp2B,QAAO,SAAAU,GAAM,OAAAA,IAAOE,EAAE8C,KAAKxB,MAAMxB,EAApB,WACxC,EAAKy1B,aAAav1B,EAAE8C,KAAKxB,MAAMxB,IACtC,EAAKg3B,eAAe92B,EAAE8C,KAAKxB,MAAMxB,GACnC,EAMQ,KAAAi3B,8BAEI,SAAA/2B,GACN,EAAKg3B,SAAS53B,QAAO,SAAA0D,GAAQ,OAAwB,GAAxBA,EAAKc,KAAKC,UAAV,IAA8B3G,OAAS,EACtE8C,EAAE0H,UAAW,EAEb1H,EAAE0H,UAAW,EAEf,EAAKvF,6BAA6B9D,KAAK2B,EACzC,EAGQ,KAAAi3B,qBAAgD,WACtD,EAAKC,eACP,EAgOEj6B,KAAKk6B,aAAepvB,EACpB9K,KAAKm6B,OA9fF,SACLp5B,GAIE,IAAA8B,EAUE9B,EAAI,GATNpB,EASEoB,EAAI,KARNylB,EAQEzlB,EAAI,QAPNq5B,EAOEr5B,EAAI,cANNsM,EAMEtM,EAAI,gBALNs5B,EAKEt5B,EAAI,WAJNu5B,EAIEv5B,EAAI,kBAHN8H,EAGE9H,EAAI,gBAFN+3B,EAEE/3B,EAAI,SAER,GAFIA,EAAI,aAEE,MAAN8B,GAAcW,MAAMC,SAASZ,IAC/B,MAAM,IAAIa,UAAU,eAEtB,GAAoB,iBAAT/D,GAAqC,IAAhBA,EAAKM,OACnC,MAAM,IAAIyD,UAAU,iBAEtB,GAAe,MAAX8iB,GAAmBhjB,MAAMC,SAAS+iB,IACpC,MAAM,IAAI9iB,UAAU,qBAGtB,OAAO,IACLb,GAAIY,SAASZ,GACblD,KAAI,EACJ6mB,QAAS/iB,SAAS+iB,GAClB4T,eAAe,QAAiBA,EAAe,MAC/C/sB,iBAAiB,QAAiBA,EAAiB,MACnDgtB,YAAY,QAAaA,GACzBC,mBAAmB,QAAWA,EAAmB,GACjDzxB,gBAAiBA,EACjBiwB,UAAU,QAAWA,EAAU,IAC/BD,cAAc,IACX,QAAiB93B,GAExB,CAsdkBw5B,CAA0Bl2B,GAGxCrE,KAAKqK,UAGLguB,EAAQA,EAAMmC,MAAK,SAASnG,EAAGoG,GAC7B,OAAY,MAARpG,EAAExxB,IAAsB,MAAR43B,EAAE53B,GAAmB,EAChCwxB,EAAExxB,GAAK43B,EAAE53B,GAAW,GAChB,CACf,KAGMlC,SAAQ,SAAAkF,GAAQ,SAAK60B,WAAW70B,EAAM,EAAtB,IAGtB7F,KAAK26B,iBAGL36B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GAChBA,aAAgB,GAClB,EAAK4zB,YAAY5zB,EAErB,IAEA7F,KAAKk6B,aAAap3B,iBAAiB,QAAS9C,KAAKg6B,qBACnD,CAyuBF,OAzlCU,YAAAY,kBAAR,SAA0Bv1B,EAAWC,EAAWjB,GAC9C,OACgB,IAAdA,EAAM1B,MACQ,IAAd0B,EAAM1B,MAMN0C,EAAIhB,EAAMgB,GACVA,EAAIhB,EAAMgB,EAAIhB,EAAM2B,OACpBV,EAAIjB,EAAMiB,GACVA,EAAIjB,EAAMiB,EAAIjB,EAAM4B,MAKxB,EA2GU,YAAAwzB,YAAV,SAAsBjU,GACpB,IAAI5B,EAAe4B,EAAEnhB,MAAMxB,GACvBg4B,EAAc,EACdC,EAAY,EAEhB,IACE,IAAK,IAAI7vB,KAAKjL,KAAKs4B,aAEft4B,KAAK46B,kBACHpV,EAAEnhB,MAAMid,cAAcjc,EACtBmgB,EAAEnhB,MAAMid,cAAchc,EACtBtF,KAAKs4B,aAAartB,GAAG5G,SAIvBw2B,EAAcp3B,SAASwH,IAIvBjL,KAAK46B,kBACHpV,EAAEnhB,MAAMod,YAAYpc,EACpBmgB,EAAEnhB,MAAMod,YAAYnc,EACpBtF,KAAKs4B,aAAartB,GAAG5G,SAIvBy2B,EAAYr3B,SAASwH,IAyEzB,IAAK,IAAIA,KArEa,MAAlBjL,KAAKy4B,YACPz4B,KAAKy4B,UAAY,CAAC,GAGF,MAAdz4B,KAAK+jB,QACP/jB,KAAK+jB,MAAQ,CAAC,GAGZ8W,GAAejX,IACjBiX,EAAc,GAGZC,GAAalX,IACfkX,EAAY,GAIU,MAApB96B,KAAK+jB,MAAMH,KACb5jB,KAAK+jB,MAAMH,GAAQ,CACjBc,MAAOmW,EACPlW,IAAKmW,IAKLD,EAAc,GAEmB,MAA/B76B,KAAKy4B,UAAUoC,KACjB76B,KAAKy4B,UAAUoC,GAAe,CAAC,GAIjC76B,KAAKy4B,UAAUoC,GAAajX,GAAQ,CAClCc,MAAOmW,EACPlW,IAAKmW,IAMH96B,KAAK+jB,MAAMH,GAAa,MAAI,IAC9B5jB,KAAKy4B,UAAUz4B,KAAK+jB,MAAMH,GAAa,OAAGA,GAAa,MAAI,EAC3D5jB,KAAK+jB,MAAMH,GAAa,MAAI,GAI5BkX,EAAY,GACmB,MAA7B96B,KAAKy4B,UAAUqC,KACjB96B,KAAKy4B,UAAUqC,GAAa,CAAC,GAG/B96B,KAAKy4B,UAAUqC,GAAWlX,GAAQ,CAChCc,MAAOmW,EACPlW,IAAKmW,IAIH96B,KAAK+jB,MAAMH,GAAW,IAAI,IAC5B5jB,KAAKy4B,UAAUz4B,KAAK+jB,MAAMH,GAAW,KAAGA,GAAW,IAAI,EACvD5jB,KAAK+jB,MAAMH,GAAW,IAAI,GAI9B5jB,KAAK+jB,MAAMH,GAAQ,CACjBc,MAAOmW,EACPlW,IAAKmW,GAIO96B,KAAKy4B,UACbz4B,KAAKy4B,UAAUxtB,GAAG2Y,KAEe,GAAjC5jB,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OACO,GAA/B1kB,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,aAGjB3kB,KAAKy4B,UAAUxtB,GAAG2Y,GAEqB,IAA1C5H,OAAO+e,KAAK/6B,KAAKy4B,UAAUxtB,IAAIhL,eAC1BD,KAAKy4B,UAAUxtB,KAKvBjL,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OAASmW,GAChC76B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,KAAOmW,GAChC96B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OAASmW,GAChC76B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,KAAOmW,YAG1B96B,KAAKy4B,UAAUxtB,GAAG2Y,GAEqB,IAA1C5H,OAAO+e,KAAK/6B,KAAKy4B,UAAUxtB,IAAIhL,eAC1BD,KAAKy4B,UAAUxtB,I,CAK9B,MAAOuJ,GACP6R,QAAQ7R,MAAMA,E,CAElB,EAUU,YAAA8kB,qBAAV,SAA+BzzB,EAAiBm1B,EAAcC,GAA9D,WACiC,MAA3Bj7B,KAAKy4B,UAAU5yB,EAAKhD,MAIxBmZ,OAAO+e,KAAK/6B,KAAKy4B,UAAU5yB,EAAKhD,KAAKlC,SAAQ,SAAAsK,GAC3C,IAAIiwB,EAASz3B,SAASwH,GAEtB,IAAe,IADD,EAAKstB,WAAWzmB,QAAQopB,GACtC,CAGA,IAAItX,EAAO,EAAK0U,aAAa4C,GAC7B,GAAItX,EAAKvf,MAAO,CACd,IAAIkd,EAASqC,EAAKvf,MAAMid,cAAcjc,EAClCmc,EAASoC,EAAKvf,MAAMid,cAAchc,EAClCoc,EAAOkC,EAAKvf,MAAMod,YAAYpc,EAC9Bsc,EAAOiC,EAAKvf,MAAMod,YAAYnc,EAE9BO,EAAKhD,IAAM,EAAK41B,UAAU5yB,EAAKhD,IAAIq4B,GAAe,QACpD3Z,EAASyZ,EAAG31B,EAAIQ,EAAKG,MAAQ,EAC7Bwb,EAASwZ,EAAG11B,EAAIO,EAAKI,OAAS,GAG5BJ,EAAKhD,IAAM,EAAK41B,UAAU5yB,EAAKhD,IAAIq4B,GAAa,MAClDxZ,EAAOsZ,EAAG31B,EAAIQ,EAAKG,MAAQ,EAC3B2b,EAAOqZ,EAAG11B,EAAIO,EAAKI,OAAS,GAI9B,EAAKk1B,cAAc,SACdvX,EAAKvf,OAAK,CACbkd,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,KAGJsZ,IAC8B,QAC9B,KACA,SAACG,GACC,EAAKvY,sBAAsBzhB,KAAK,CAC9ByE,KAAMu1B,EAAQxX,KACdtC,cAAe,CACbjc,EAAG+1B,EAAQ7Z,OACXjc,EAAG81B,EAAQ5Z,QAEbC,YAAa,CACXpc,EAAG+1B,EAAQ1Z,KACXpc,EAAG81B,EAAQzZ,OAGjB,GAIF0Z,CAA0B,CACxBzX,KAAMA,EACNrC,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,G,EAId,IAGA3hB,KAAK26B,eAAe90B,EAAKhD,GAAIm4B,EAAG31B,EAAIQ,EAAKG,MAAQ,EAAGg1B,EAAG11B,EAAIO,EAAKI,OAAS,GAC3E,EAwCA,sBAAW,uBAAQ,C,IAAnB,sBAEE,OAAOjG,KAAKu4B,WACT+C,KAAI,SAAAz4B,GAAM,SAAKy1B,aAAaz1B,EAAlB,IACVV,QAAO,SAAAkqB,GAAK,OAAK,MAALA,CAAA,GACjB,E,gCAMO,YAAAqO,WAAP,SAAkB70B,EAAiB6sB,QAAA,IAAAA,IAAAA,EAAA,MACjC,IACE,IAAM6I,EAnrBZ,SAA0Bx6B,GACxB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,IAAMiD,GAAO,QAAgB5F,GAE7B,OAAQ4B,GACN,KAAK,EACH,OAAO,IAAI,EAAYma,EAAwB/b,GAAO4F,GACxD,KAAK,EACH,OAAO,IAAI60B,GAAA,GAAY,QAAwBz6B,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAO,IAAI,GAAY6kB,GAAwBzqB,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAO,IAAI,GAAW6qB,GAAuBzwB,GAAO4F,GACtD,KAAK,EACH,OAAO,IAAI,GAAM0kB,GAAkBtqB,GAAO4F,GAC5C,KAAK,EACH,OAAO,IAAI,EAAK6W,EAAiBzc,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAI,GAAQ4tB,GAAoBxzB,GAAO4F,GAChD,KAAK,GACH,OAAO,IAAI,EAAM4f,EAAkBxlB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,GAAIokB,GAAgBhqB,GAAO4F,GACxC,KAAK,GACH,OAAO,IAAI,EAAK0a,EAAiBtgB,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAI80B,GAAA,GAAc,QAA0B16B,GAAO4F,GAC5D,KAAK,GACH,OAAO,IAAI+0B,GAAA,GAAW,QAAuB36B,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAIg1B,GAAA,GAAU,QAAsB56B,GAAO4F,GACpD,KAAK,GACH,OAAO,IAAI,EAAMogB,EAAkBhmB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,EAAWkX,EAAuB9c,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAI,EAAYke,EAAwB9jB,GAAO4F,GACxD,KAAK,GACH,OAAO,IAAI,GAAS+tB,GAAqB3zB,GAAO4F,GAClD,KAAK,GACH,OAAO,IAAIi1B,GAAA,GAAW,QAAuB76B,GAAO4F,GACtD,QACE,MAAM,IAAIjD,UAAU,kBAE1B,CA+nB2Bm4B,CAAiBh2B,GAyBtC,OAvBA6sB,EAAQ4F,aAAaiD,EAAal3B,MAAMxB,IAAM04B,EAC9C7I,EAAQ6F,WAAWhsB,KAAKgvB,EAAal3B,MAAMxB,IAE3C04B,EAAa1uB,SAAS6lB,EAAQkH,qBAC9B2B,EAAazuB,mBAAmB4lB,EAAQoH,+BACxCyB,EAAajvB,QAAQomB,EAAQgG,oBAC7B6C,EAAa/uB,WAAWkmB,EAAQiG,uBAG5B4C,aAAwB,GAC1BA,EAAa3W,uBACX8N,EAAQ8G,mCAEVx5B,KAAKy5B,YAAY8B,KAEjBA,EAAa9uB,QAAQimB,EAAQkG,uBAC7B2C,EAAa7uB,mBAAmBgmB,EAAQ6G,+BACxCgC,EAAa5uB,UAAU+lB,EAAQgH,yBAC/B6B,EAAa3uB,iBAAiB8lB,EAAQiH,kCAIxCjH,EAAQwH,aAAa1Z,OAAO+a,EAAa/2B,YAClC+2B,C,CACP,MAAO/mB,GACP6R,QAAQ7R,MAAM,gCAAkCA,EAAgBsnB,Q,CAGpE,EAMO,YAAAC,eAAP,SAAsB1D,GAAtB,WAEQ2D,EAAU3D,EACbiD,KAAI,SAAAz1B,GAAQ,OAAAA,EAAKhD,IAAM,IAAX,IACZV,QAAO,SAAAU,GAAM,OAAM,MAANA,CAAA,IAEG7C,KAAKu4B,WAAWp2B,QAAO,SAAAU,GAAM,OAAAm5B,EAAQlqB,QAAQjP,GAAM,CAAtB,IAErClC,SAAQ,SAAAkC,GACY,MAAzB,EAAKy1B,aAAaz1B,KACpB,EAAKy1B,aAAaz1B,GAAIgI,gBACf,EAAKytB,aAAaz1B,GAE7B,IAEA7C,KAAKu4B,WAAayD,EAGlB3D,EAAM13B,SAAQ,SAAAkF,GACZ,GAAIA,EAAKhD,GACP,GAAkC,MAA9B,EAAKy1B,aAAazyB,EAAKhD,IAEzB,EAAK63B,WAAW70B,QAGhB,IACE,EAAKyyB,aAAazyB,EAAKhD,IAAIwB,MAAQ+zB,GAAYvyB,E,CAC/C,MAAO2O,GACP6R,QAAQ7R,MACN,6BACCA,EAAgBsnB,Q,CAK3B,IAGA97B,KAAK26B,gBACP,EAMO,YAAAQ,cAAP,SAAqBt1B,GAEnB,IACE7F,KAAKs4B,aAAazyB,EAAKhD,IAAIwB,MAAQ,MAC9B+zB,GAAYvyB,G,CAEjB,MAAO2O,GACP6R,QAAQ7R,MAAM,0BAA4BA,EAAgBsnB,Q,CAI5D97B,KAAK26B,gBACP,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,MAAK36B,KAAKm6B,OACnB,E,IAQA,SAAiBlwB,GACf,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAKm6B,OAASlwB,EAKdjK,KAAKqK,OAAOF,EACd,E,gCAMO,YAAAE,OAAP,SAAcF,QAAA,IAAAA,IAAAA,EAAA,MACRA,GACEA,EAAUiwB,gBAAkBp6B,KAAKqE,MAAM+1B,gBACzCp6B,KAAKk6B,aAAaryB,MAAMsV,gBACO,OAA7Bnd,KAAKqE,MAAM+1B,cACP,cAAOp6B,KAAKqE,MAAM+1B,cAAa,KAC/B,IAE0B,MAA9Bp6B,KAAKqE,MAAMgJ,iBACTlD,EAAUkD,kBAAoBrN,KAAKqE,MAAMgJ,kBAC3CrN,KAAKk6B,aAAaryB,MAAMwF,gBAAkBrN,KAAKqE,MAAMgJ,iBAErDrN,KAAKqG,YAAY8D,EAAWnK,KAAKqE,QACnCrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,UAG9CjG,KAAKqE,MAAM+1B,gBACbp6B,KAAKk6B,aAAaryB,MAAMsV,gBACO,OAA7Bnd,KAAKqE,MAAM+1B,cACP,cAAOp6B,KAAKqE,MAAM+1B,cAAa,KAC/B,IAEJp6B,KAAKqE,MAAMgJ,kBACbrN,KAAKk6B,aAAaryB,MAAMwF,gBAAkBrN,KAAKqE,MAAMgJ,iBACvDrN,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEpD,EASO,YAAAI,YAAP,SAAmBF,EAAgBC,GACjC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOO,YAAAkB,cAAP,SAAqBnB,EAAeC,GAClCjG,KAAKk6B,aAAaryB,MAAM7B,MAAQ,UAAGA,EAAK,MACxChG,KAAKk6B,aAAaryB,MAAM5B,OAAS,UAAGA,EAAM,KAC5C,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKqE,MAAQ,SACRrE,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAKO,YAAA4E,OAAP,WACE7K,KAAKmF,YAAYxE,SAAQ,SAAAib,GAAK,OAAAA,EAAE5P,SAAF,IAC9BhM,KAAK+5B,SAASp5B,SAAQ,SAAAoC,GAAK,OAAAA,EAAE8H,QAAF,IAC3B7K,KAAKs4B,aAAe,CAAC,EACrBt4B,KAAKu4B,WAAa,GAElBv4B,KAAK65B,iBAEL75B,KAAKk6B,aAAahgB,oBAAoB,QAASla,KAAKg6B,sBAEpDh6B,KAAKk6B,aAAa5wB,UAAY,EAChC,EAQO,YAAAqxB,eAAP,SAAsB1B,EAAiB5zB,EAAYC,GAAnD,WAEEtF,KAAK65B,iBAEL75B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpB,GAA4B,OAAxBA,EAAKxB,MAAMN,SAAmB,CAChC,IAAM,EAAS,EAAKu0B,aAAazyB,EAAKxB,MAAMN,UACtCk4B,EAAQ,EAAK3D,aAAazyB,EAAKxB,MAAMxB,IAEvC,GAAUo5B,IACExzB,MAAVwwB,EACEpzB,EAAKxB,MAAMN,UAAYk1B,EAEzB,EAAKiD,gBAAgB,EAAQD,EAAO52B,EAAGC,GAC9BO,EAAKxB,MAAMxB,IAAMo2B,EAE1B,EAAKiD,gBAAgB,EAAQD,OAAOxzB,OAAWA,EAAWpD,EAAGC,GAE7D,EAAK42B,gBAAgB,EAAQD,GAI/B,EAAKC,gBAAgB,EAAQD,G,CAIrC,GACF,EAMQ,YAAApC,eAAR,SAAuBZ,GACrB,GAAc,MAAVA,EACF,IAAK,IAAInd,KAAO9b,KAAKw4B,UAAW,CAC9B,IAAM2D,EAAMrgB,EAAIyJ,MAAM,KAChBxhB,EAAW8L,OAAOpM,SAAS04B,EAAI,IAC/B9C,EAAUxpB,OAAOpM,SAAS04B,EAAI,IAEhClD,IAAWl1B,GAAYk1B,IAAWI,IACpCr5B,KAAKw4B,UAAU1c,GAAKjR,gBACb7K,KAAKw4B,UAAU1c,G,MAI1B,IAAK,IAAIA,KAAO9b,KAAKw4B,UACnBx4B,KAAKw4B,UAAU1c,GAAKjR,gBACb7K,KAAKw4B,UAAU1c,EAG5B,EAQQ,YAAAsgB,gBAAR,SAAwBr4B,EAAkBs1B,GACxC,IAAMp4B,EAAa,UAAG8C,EAAQ,YAAIs1B,GAClC,OAAOr5B,KAAKw4B,UAAUv3B,IAAe,IACvC,EAGQ,YAAAi4B,iBAAR,SACED,GAMA,IAAMoD,EAAgB,GAEtB,IAAK,IAAIvgB,KAAO9b,KAAKw4B,UAAW,CAC9B,IAAM2D,EAAMrgB,EAAIyJ,MAAM,KAChBxhB,EAAW8L,OAAOpM,SAAS04B,EAAI,IAC/B9C,EAAUxpB,OAAOpM,SAAS04B,EAAI,IAEhClD,IAAWl1B,GAAYk1B,IAAWI,GACpCgD,EAAc9vB,KAAK,CACjBxI,SAAQ,EACRs1B,QAAO,EACPzV,KAAM5jB,KAAKw4B,UAAU1c,I,CAK3B,OAAOugB,CACT,EAQQ,YAAAjD,gBAAR,SACEltB,EACA9L,GAEA,IAAIiF,EAAI6G,EAAS7G,EAAIjF,EAAQoE,WAAW83B,YAAc,EAClDh3B,EAAI4G,EAAS5G,EAAIlF,EAAQoE,WAAW+3B,aAAe,EACvD,QACiC,IAAxBn8B,EAAQiE,MAAMV,OACG,KAAxBvD,EAAQiE,MAAMV,OACU,OAAxBvD,EAAQiE,MAAMV,MAEd,OAAQvD,EAAQiE,MAAMf,eACpB,IAAK,KACHgC,EACE4G,EAAS5G,GACRlF,EAAQoE,WAAW+3B,aAClBn8B,EAAQqE,gBAAgB83B,cACxB,EACJ,MACF,IAAK,OACHj3B,EACE4G,EAAS5G,GACRlF,EAAQoE,WAAW+3B,aAClBn8B,EAAQqE,gBAAgB83B,cACxB,EACJ,MACF,IAAK,QACHl3B,EACE6G,EAAS7G,GACRjF,EAAQoE,WAAW83B,YAClBl8B,EAAQqE,gBAAgB63B,aACxB,EACJ,MACF,IAAK,OACHj3B,EACE6G,EAAS7G,GACRjF,EAAQoE,WAAW83B,YAClBl8B,EAAQqE,gBAAgB63B,aACxB,EAIV,MAAO,CAAEj3B,EAAC,EAAEC,EAAC,EACf,EAQQ,YAAA42B,gBAAR,SACE1kB,EACAykB,EACAO,EACAC,EACAC,EACAC,GAEA,IAAM17B,EAAa,UAAGuW,EAAOnT,MAAMxB,GAAE,YAAIo5B,EAAM53B,MAAMxB,IACnB,MAA9B7C,KAAKw4B,UAAUv3B,IACjBjB,KAAKw4B,UAAUv3B,GAAY4J,SAIzB,MAA2B7K,KAAKo5B,gBAAgB5hB,EAAOnT,MAAOmT,GAAzD+J,EAAM,IAAKC,EAAM,IACtB,EAAuBxhB,KAAKo5B,gBAAgB6C,EAAM53B,MAAO43B,GAApDva,EAAI,IAAKC,EAAI,IAGP,MAAX6a,IACFjb,EAASib,GAGI,MAAXC,IACFjb,EAASib,GAGG,MAAVC,IACFhb,EAAOgb,GAGK,MAAVC,IACFhb,EAAOgb,GAIT,IAAM/Y,EAAO,IAAI,EACfvC,EAAiB,CACfxe,GAAI,EACJF,KAAM,GACN4e,OAAM,EACNC,OAAM,EACNE,KAAI,EACJC,KAAI,EACJ3b,MAAO,EACPC,OAAQ,EACR2b,UAAW5hB,KAAKqE,MAAMi2B,kBACtB3rB,OAAO,QAAiBstB,EAAM53B,MAAMH,YAAa,WAEnD,QAAgB,CACdoQ,WAAY,IAAI5K,QAUpB,OANA1J,KAAKw4B,UAAUv3B,GAAc2iB,EAG7BA,EAAKpf,WAAWqD,MAAM+0B,OAAS,IAC/B58B,KAAKk6B,aAAa1Z,OAAOoD,EAAKpf,YAEvBof,CACT,EAMO,YAAAiZ,YAAP,SAAmBv7B,GAMjB,IAAMyK,EAAa/L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAA+wB,eAAP,SAAsBx7B,GAMpB,IAAMyK,EAAa/L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAgxB,YAAP,SAAmBz7B,GAMjB,IAAMyK,EAAa/L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAixB,YAAP,SAAmB17B,GAMjB,IAAMyK,EAAa/L,KAAK6iB,sBAAsBthB,GAAGD,GAGjD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAkxB,cAAP,SAAqB37B,GAMnB,IAAMyK,EAAa/L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAmxB,uBAAP,SACE57B,GAOA,IAAMyK,EAAa/L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAKO,YAAAoxB,eAAP,WACEn9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAKk6B,aAAavyB,UAAUC,IAAI,aAClC,EAKO,YAAAw1B,gBAAP,WACEp9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAKk6B,aAAavyB,UAAUkD,OAAO,aACrC,EAKO,YAAAwyB,sBAAP,WACEr9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAKk6B,aAAavyB,UAAUC,IAAI,kBAChC5H,KAAKk6B,aAAavyB,UAAUkD,OAAO,aACrC,EAKO,YAAAyyB,uBAAP,WACEt9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAKk6B,aAAavyB,UAAUkD,OAAO,kBACnC7K,KAAKk6B,aAAavyB,UAAUC,IAAI,aAClC,EAKO,YAAA21B,eAAP,SAAsBzE,GACpB94B,KAAKm6B,OAAOrB,SAAWr1B,SAASq1B,GAChC94B,KAAKqE,MAAMy0B,SAAWr1B,SAASq1B,EACjC,EAKO,YAAA0E,mBAAP,SAA0B3E,GACxB74B,KAAKm6B,OAAOtB,aAAeA,EAC3B74B,KAAKqE,MAAMw0B,aAAeA,CAC5B,EAOO,YAAA5wB,WAAP,SAAkBgxB,EAAgBwE,GAAlC,gBAAkC,IAAAA,IAAAA,GAAA,GAC5BA,EACFz9B,KAAKu4B,WAAW53B,SAAQ,SAAA+8B,GACtB,IAAM/2B,EAAO,EAAK2xB,aAAaoF,GAAe/2B,KAE1C+2B,IAAkBzE,GAAUtyB,EAAKC,WACnC,EAAK0xB,aAAaoF,GAAe11B,eACxB01B,IAAkBzE,GAAWtyB,EAAKC,YAC3C,EAAK0xB,aAAaoF,GAAez1B,YAErC,IACSjI,KAAKs4B,aAAaW,IAC3Bj5B,KAAKs4B,aAAaW,GAAQhxB,YAE9B,EAMO,YAAAD,aAAP,SAAoBixB,GACdj5B,KAAKs4B,aAAaW,IACPj5B,KAAKs4B,aAAaW,GAAQtyB,KAE9BC,YACP5G,KAAKs4B,aAAaW,GAAQjxB,cAGhC,EAKO,YAAAiyB,cAAP,sBACEj6B,KAAKu4B,WAAW53B,SAAQ,SAAAs4B,GAClB,EAAKX,aAAaW,IACpB,EAAKX,aAAaW,GAAQjxB,cAE9B,GACF,EAsCc,EAAA21B,oBAAd,SAAkC93B,GAChC,IAAI6Q,EACJ,OAAQ7Q,EAAKxB,MAAM1B,MACjB,KAAK,EACH+T,EAAO,WAAG,IAAAzJ,GAAE,gBAAe,cAAOpH,EAAqBxB,MAAM0Y,UAC7D,MACF,KAAK,EACHrG,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,uBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,kBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,yBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,oCACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,eACT,MACF,KAAK,EACHyJ,EAAO,WAAG,IAAAzJ,GAAE,QAAO,cAAOpH,EAAcxB,MAAM0Y,UAC9C,MACF,KAAK,GACHrG,GAAO,IAAAzJ,GAAE,YACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,QACEyJ,GAAO,IAAAzJ,GAAE,QAIb,IAAM2wB,EAA4B/3B,EAAKxB,MAavC,OAX0C,MAAxCu5B,EAA0Bj0B,YACc,MAAxCi0B,EAA0B9zB,WAE1B4M,GAAQ,aAAK,QACXknB,EAA0Bj0B,WAC1B,IACD,eAAM,QAAUi0B,EAA0B9zB,WAAY,IAAG,KACT,MAAxC8zB,EAA0Bj0B,aACnC+M,GAAQ,aAAK,QAAUknB,EAA0Bj0B,WAAY,IAAG,MAG3D+M,CACT,EAtGc,EAAA2hB,QAAK,OACjB,GAAyB,EACzB,MAAyBmD,GAAA,EACzB,MAAyB,GACzB,MAA6B,GAC7B,MAA6B,GAC7B,MAA6B,GAC7B,MAA2B,GAC3B,MAA8B,GAC9B,OAAkC,GAClC,OAA2C,GAC3C,MAAkB,GAClB,MAAiB,EACjB,OAAoB,GACpB,OAAuB,EACvB,OAAqB,GACrB,OAAsB,EACtB,OAA2BC,GAAA,EAC3B,OAAwBC,GAAA,EACxB,OAAuBC,GAAA,EACvB,OAAkB,EAClB,OAAwB,EACxB,OAAyB,EACzB,OAAqB,GACrB,OAAwBC,GAAA,E,IA+E5B,C,CAvtCA,GCjNA,cAUE,WAAmBiC,GARX,KAAAC,YAA2B,CAAEC,OAAQ,WAAO,GAC5C,KAAAC,QAA2B,UAGlB,KAAAC,yBAA2B,IAAInb,EAAA,EAE/B,KAAA3d,YAA4B,GAG3CnF,KAAK69B,cAAgBA,CACvB,CAoDF,OA9CE,sBAAW,qBAAM,C,IASjB,WACE,OAAO79B,KAAKg+B,OACd,E,IAXA,SAAkBzvB,GAChBvO,KAAKg+B,QAAUzvB,EACfvO,KAAKi+B,yBAAyB78B,KAAKmN,EACrC,E,gCAaO,YAAA9H,KAAP,sBACEzG,KAAK89B,YAAc99B,KAAK69B,eAAc,WACpC,EAAKtvB,OAAS,UAChB,IACAvO,KAAKuO,OAAS,SAChB,EAKO,YAAAwvB,OAAP,WACE/9B,KAAK89B,YAAYC,SACjB/9B,KAAKuO,OAAS,WAChB,EAMO,YAAA2vB,eAAP,SAAsB58B,GAMpB,IAAMyK,EAAa/L,KAAKi+B,yBAAyB18B,GAAGD,GAGpD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EACF,EAhEA,G,GAsGA,wBACU,KAAAoyB,MAA6C,CAAC,CAuDxD,QA7CS,YAAAv2B,IAAP,SACE3G,EACA48B,EACAxvB,QAAA,IAAAA,IAAAA,EAAA,GAEIrO,KAAKm+B,MAAMl9B,IAAiD,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACnDvO,KAAKm+B,MAAMl9B,GAAY88B,SAGzB,IAAMK,EACJ/vB,EAAS,EA/Cf,SAAuBgwB,EAAiBhwB,GACtC,OAAO,IAAIiwB,IAAU,WACnB,IAAIC,EAAqB,KAYzB,OAVAF,EAAKH,gBAAe,SAAA3vB,GACH,aAAXA,IACFgwB,EAAMppB,OAAOlH,YAAW,WACtBowB,EAAK53B,MACP,GAAG4H,GAEP,IAEAgwB,EAAK53B,OAEE,CACLs3B,OAAQ,WACFQ,GAAKlnB,aAAaknB,GACtBF,EAAKN,QACP,EAEJ,GACF,CA2BUS,CAAc,IAAIF,GAAUT,GAAgBxvB,GAC5C,IAAIiwB,GAAUT,GAIpB,OAFA79B,KAAKm+B,MAAMl9B,GAAcm9B,EAElBp+B,KAAKm+B,MAAMl9B,EACpB,EAOO,YAAAwF,KAAP,SAAYxF,IAERjB,KAAKm+B,MAAMl9B,IACwB,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACY,cAAlCvO,KAAKm+B,MAAMl9B,GAAYsN,QACW,aAAlCvO,KAAKm+B,MAAMl9B,GAAYsN,QAEzBvO,KAAKm+B,MAAMl9B,GAAYwF,MAE3B,EAOO,YAAAs3B,OAAP,SAAc98B,GACRjB,KAAKm+B,MAAMl9B,IAAiD,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACnDvO,KAAKm+B,MAAMl9B,GAAY88B,QAE3B,EACF,EAxDA,GCrGC5oB,OAAespB,cAAgB,GAI/BtpB,OAAespB,cAAcC,KAAOA,EAIpCvpB,OAAewpB,iBAAmB,E","sources":["webpack://pandora-fms-visual-console/./src/Form.ts","webpack://pandora-fms-visual-console/./src/Item.ts","webpack://pandora-fms-visual-console/./src/items/BarsGraph.ts","webpack://pandora-fms-visual-console/./src/items/BasicChart.ts","webpack://pandora-fms-visual-console/./src/items/DonutGraph.ts","webpack://pandora-fms-visual-console/./src/items/EventsHistory.ts","webpack://pandora-fms-visual-console/./src/items/ModuleGraph.ts","webpack://pandora-fms-visual-console/./src/lib/FontAwesomeIcon.ts","webpack://pandora-fms-visual-console/./src/lib/TypedEvent.ts","webpack://pandora-fms-visual-console/./src/lib/index.ts","webpack://pandora-fms-visual-console/webpack/bootstrap","webpack://pandora-fms-visual-console/webpack/runtime/define property getters","webpack://pandora-fms-visual-console/webpack/runtime/hasOwnProperty shorthand","webpack://pandora-fms-visual-console/webpack/runtime/make namespace object","webpack://pandora-fms-visual-console/./src/items/StaticGraph.ts","webpack://pandora-fms-visual-console/./src/items/Icon.ts","webpack://pandora-fms-visual-console/./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack://pandora-fms-visual-console/./src/items/ColorCloud.ts","webpack://pandora-fms-visual-console/./src/items/Line.ts","webpack://pandora-fms-visual-console/./src/items/NetworkLink.ts","webpack://pandora-fms-visual-console/./src/items/Group.ts","webpack://pandora-fms-visual-console/./src/items/Clock/index.ts","webpack://pandora-fms-visual-console/./src/items/Box.ts","webpack://pandora-fms-visual-console/./src/items/Label.ts","webpack://pandora-fms-visual-console/./src/items/SimpleValue.ts","webpack://pandora-fms-visual-console/./node_modules/d3-path/src/path.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/constant.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/math.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/arc.js","webpack://pandora-fms-visual-console/./src/items/Percentile.ts","webpack://pandora-fms-visual-console/./src/items/Service.ts","webpack://pandora-fms-visual-console/./src/items/Odometer.ts","webpack://pandora-fms-visual-console/./src/VisualConsole.ts","webpack://pandora-fms-visual-console/./src/lib/AsyncTaskManager.ts","webpack://pandora-fms-visual-console/./src/index.ts"],"sourcesContent":["import TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { AnyObject, UnknownObject } from \"./lib/types\";\nimport { t } from \"./lib\";\n\ninterface InputGroupDataRequestedEvent {\n identifier: string;\n params: UnknownObject;\n done: (error: Error | null, data?: unknown) => void;\n}\n\n// TODO: Document\nexport abstract class InputGroup {\n private _name: string = \"\";\n private _element?: HTMLElement;\n public readonly initialData: Data;\n protected currentData: Partial = {};\n // Event manager for data requests.\n private readonly dataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n\n public constructor(name: string, initialData: Data) {\n this.name = name;\n this.initialData = initialData;\n }\n\n public set name(name: string) {\n if (name.length === 0) throw new RangeError(\"empty name\");\n this._name = name;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get data(): Partial {\n return { ...this.currentData };\n }\n\n public get element(): HTMLElement {\n if (this._element == null) {\n const element = document.createElement(\"div\");\n element.className = `input-group input-group-${this.name}`;\n\n const content = this.createContent();\n\n if (content instanceof Array) {\n content.forEach(element.appendChild);\n } else {\n element.appendChild(content);\n }\n\n this._element = element;\n }\n\n return this._element;\n }\n\n public reset(): void {\n this.currentData = {};\n }\n\n protected updateData(data: Partial): void {\n this.currentData = {\n ...this.currentData,\n ...data\n };\n // TODO: Update item.\n }\n\n protected requestData(\n identifier: string,\n params: UnknownObject,\n done: (error: Error | null, data?: unknown) => void\n ): void {\n this.dataRequestedEventManager.emit({ identifier, params, done });\n }\n\n public onDataRequested(\n listener: Listener\n ): Disposable {\n return this.dataRequestedEventManager.on(listener);\n }\n\n protected abstract createContent(): HTMLElement | HTMLElement[];\n\n // public abstract get isValid(): boolean;\n}\n\nexport interface SubmitFormEvent {\n nativeEvent: Event;\n data: AnyObject;\n}\n\n// TODO: Document\nexport class FormContainer {\n public readonly title: string;\n private inputGroupsByName: { [name: string]: InputGroup } = {};\n private enabledInputGroupNames: string[] = [];\n // Event manager for submit events.\n private readonly submitEventManager = new TypedEvent();\n // Event manager for item data requests.\n private readonly itemDataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n private handleItemDataRequested = this.itemDataRequestedEventManager.emit;\n\n public constructor(\n title: string,\n inputGroups: InputGroup[] = [],\n enabledInputGroups: string[] = []\n ) {\n this.title = title;\n\n if (inputGroups.length > 0) {\n this.inputGroupsByName = inputGroups.reduce((prevVal, inputGroup) => {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n prevVal[inputGroup.name] = inputGroup;\n return prevVal;\n }, this.inputGroupsByName);\n }\n\n if (enabledInputGroups.length > 0) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n ...enabledInputGroups.filter(\n name => this.inputGroupsByName[name] != null\n )\n ];\n }\n }\n\n public getInputGroup(inputGroupName: string): InputGroup | null {\n return this.inputGroupsByName[inputGroupName] || null;\n }\n\n public addInputGroup(\n inputGroup: InputGroup,\n index: number | null = null\n ): FormContainer {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n this.inputGroupsByName[inputGroup.name] = inputGroup;\n\n // Remove the current stored name if exist.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroup.name\n );\n\n if (index !== null) {\n if (index <= 0) {\n this.enabledInputGroupNames = [\n inputGroup.name,\n ...this.enabledInputGroupNames\n ];\n } else if (index >= this.enabledInputGroupNames.length) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n } else {\n this.enabledInputGroupNames = [\n // part of the array before the specified index\n ...this.enabledInputGroupNames.slice(0, index),\n // inserted item\n inputGroup.name,\n // part of the array after the specified index\n ...this.enabledInputGroupNames.slice(index)\n ];\n }\n } else {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n }\n\n return this;\n }\n\n public removeInputGroup(inputGroupName: string): FormContainer {\n delete this.inputGroupsByName[inputGroupName];\n // Remove the current stored name.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroupName\n );\n\n return this;\n }\n\n public getFormElement(\n type: \"creation\" | \"update\" = \"update\"\n ): HTMLFormElement {\n const form = document.createElement(\"form\");\n form.id = \"visual-console-item-edition\";\n form.className = \"visual-console-item-edition\";\n form.addEventListener(\"submit\", e => {\n e.preventDefault();\n this.submitEventManager.emit({\n nativeEvent: e,\n data: this.enabledInputGroupNames.reduce((data, name) => {\n if (this.inputGroupsByName[name]) {\n data = {\n ...data,\n ...this.inputGroupsByName[name].data\n };\n }\n return data;\n }, {})\n });\n });\n\n const formContent = document.createElement(\"div\");\n formContent.className = \"input-groups\";\n\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n formContent.appendChild(this.inputGroupsByName[name].element);\n }\n });\n\n form.appendChild(formContent);\n\n return form;\n }\n\n public reset(): void {\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n this.inputGroupsByName[name].reset();\n }\n });\n }\n\n // public get isValid(): boolean {\n // for (let i = 0; i < this.enabledInputGroupNames.length; i++) {\n // const inputGroup = this.inputGroupsByName[this.enabledInputGroupNames[i]];\n // if (inputGroup && !inputGroup.isValid) return false;\n // }\n\n // return true;\n // }\n\n public onSubmit(listener: Listener): Disposable {\n return this.submitEventManager.on(listener);\n }\n\n public onInputGroupDataRequested(\n listener: Listener\n ): Disposable {\n return this.itemDataRequestedEventManager.on(listener);\n }\n}\n","import {\n Position,\n Size,\n AnyObject,\n WithModuleProps,\n ItemMeta,\n LinkedVisualConsoleProps,\n WithAgentProps\n} from \"./lib/types\";\nimport {\n sizePropsDecoder,\n positionPropsDecoder,\n parseIntOr,\n parseBoolean,\n notEmptyStringOr,\n replaceMacros,\n humanDate,\n humanTime,\n addMovementListener,\n debounce,\n addResizementListener,\n t\n} from \"./lib\";\nimport TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { FormContainer, InputGroup } from \"./Form\";\n\n// Enum: https://www.typescriptlang.org/docs/handbook/enums.html.\nexport const enum ItemType {\n STATIC_GRAPH = 0,\n MODULE_GRAPH = 1,\n SIMPLE_VALUE = 2,\n PERCENTILE_BAR = 3,\n LABEL = 4,\n ICON = 5,\n SIMPLE_VALUE_MAX = 6,\n SIMPLE_VALUE_MIN = 7,\n SIMPLE_VALUE_AVG = 8,\n PERCENTILE_BUBBLE = 9,\n SERVICE = 10,\n GROUP_ITEM = 11,\n BOX_ITEM = 12,\n LINE_ITEM = 13,\n AUTO_SLA_GRAPH = 14,\n CIRCULAR_PROGRESS_BAR = 15,\n CIRCULAR_INTERIOR_PROGRESS_BAR = 16,\n DONUT_GRAPH = 17,\n BARS_GRAPH = 18,\n CLOCK = 19,\n COLOR_CLOUD = 20,\n NETWORK_LINK = 21,\n ODOMETER = 22,\n BASIC_CHART = 23\n}\n\n// Base item properties. This interface should be extended by the item implementations.\nexport interface ItemProps extends Position, Size {\n readonly id: number;\n readonly type: ItemType;\n label: string | null;\n labelPosition: \"up\" | \"right\" | \"down\" | \"left\";\n isLinkEnabled: boolean;\n link: string | null;\n isOnTop: boolean;\n parentId: number | null;\n aclGroupId: number | null;\n cacheExpiration: number | null;\n colorStatus: string;\n cellId: number | null;\n alertOutline: boolean;\n}\n\nexport interface ItemClickEvent {\n item: VisualConsoleItem;\n nativeEvent: Event;\n}\n\n// FIXME: Fix type compatibility.\nexport interface ItemRemoveEvent {\n // data: Props;\n item: VisualConsoleItem;\n}\n\nexport interface ItemMovedEvent {\n item: VisualConsoleItem;\n prevPosition: Position;\n newPosition: Position;\n}\n\nexport interface ItemResizedEvent {\n item: VisualConsoleItem;\n prevSize: Size;\n newSize: Size;\n}\n\nexport interface ItemSelectionChangedEvent {\n selected: boolean;\n}\n\n/**\n * Extract a valid enum value from a raw label position value.\n * @param labelPosition Raw value.\n */\nconst parseLabelPosition = (\n labelPosition: unknown\n): ItemProps[\"labelPosition\"] => {\n switch (labelPosition) {\n case \"up\":\n case \"right\":\n case \"down\":\n case \"left\":\n return labelPosition;\n default:\n return \"down\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function itemBasePropsDecoder(data: AnyObject): ItemProps | never {\n if (data.id == null || isNaN(parseInt(data.id))) {\n throw new TypeError(\"invalid id.\");\n }\n if (data.type == null || isNaN(parseInt(data.type))) {\n throw new TypeError(\"invalid type.\");\n }\n\n return {\n id: parseInt(data.id),\n type: parseInt(data.type),\n label: notEmptyStringOr(data.label, null),\n labelPosition: parseLabelPosition(data.labelPosition),\n isLinkEnabled: parseBoolean(data.isLinkEnabled),\n link: notEmptyStringOr(data.link, null),\n isOnTop: parseBoolean(data.isOnTop),\n parentId: parseIntOr(data.parentId, null),\n aclGroupId: parseIntOr(data.aclGroupId, null),\n cacheExpiration: parseIntOr(data.cacheExpiration, null),\n colorStatus: notEmptyStringOr(data.colorStatus, \"#CCC\"),\n cellId: parseIntOr(data.cellId, null),\n alertOutline: parseBoolean(data.alertOutline),\n ...sizePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...positionPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n//TODO: Document\nexport function titleItem(id: number): string {\n let title = \"\";\n switch (id) {\n case ItemType.STATIC_GRAPH:\n title = t(\"Static image\");\n break;\n case ItemType.MODULE_GRAPH:\n title = t(\"Module graph\");\n break;\n case ItemType.SIMPLE_VALUE:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.LABEL:\n title = t(\"Label\");\n break;\n case ItemType.ICON:\n title = t(\"Icon\");\n break;\n case ItemType.SIMPLE_VALUE_MAX:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_MIN:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_AVG:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BUBBLE:\n title = t(\"Percentile item\");\n break;\n case ItemType.SERVICE:\n title = t(\"Service\");\n break;\n case ItemType.GROUP_ITEM:\n title = t(\"Group\");\n break;\n case ItemType.BOX_ITEM:\n title = t(\"Box\");\n break;\n case ItemType.LINE_ITEM:\n title = t(\"Line\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n title = t(\"Event history graph\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.DONUT_GRAPH:\n title = t(\"Serialized pie graph\");\n break;\n case ItemType.BARS_GRAPH:\n title = t(\"Bars graph\");\n break;\n case ItemType.CLOCK:\n title = t(\"Clock\");\n break;\n case ItemType.COLOR_CLOUD:\n title = t(\"Color cloud\");\n break;\n case ItemType.NETWORK_LINK:\n title = t(\"Network link\");\n break;\n case ItemType.ODOMETER:\n title = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n title = t(\"Basic chart\");\n break;\n default:\n title = t(\"Item\");\n break;\n }\n\n return title;\n}\n\n/**\n * Base class of the visual console items. Should be extended to use its capabilities.\n */\nabstract class VisualConsoleItem {\n // Properties of the item.\n public itemProps: Props;\n // Metadata of the item.\n private _metadata: ItemMeta;\n // Reference to the DOM element which will contain the item.\n public elementRef: HTMLElement = document.createElement(\"div\");\n public labelElementRef: HTMLElement = document.createElement(\"div\");\n // Reference to the DOM element which will contain the view of the item which extends this class.\n protected childElementRef: HTMLElement = document.createElement(\"div\");\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for moved events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for stopped movement events.\n private readonly movementFinishedEventManager = new TypedEvent<\n ItemMovedEvent\n >();\n // Event manager for resized events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for resize finished events.\n private readonly resizeFinishedEventManager = new TypedEvent<\n ItemResizedEvent\n >();\n // Event manager for remove events.\n private readonly removeEventManager = new TypedEvent();\n // Event manager for selection change events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = false;\n\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = {\n x: x,\n y: y\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Save the new position to the props.\n this.move(x, y);\n // Emit the movement event.\n this.movementFinishedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n private removeMovement: Function | null = null;\n\n /**\n * Start the movement funtionality.\n * @param element Element to move inside its container.\n */\n private initMovementListener(element: HTMLElement): void {\n // Avoid line movement as 'block' force using circles.\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n\n this.removeMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = { x, y };\n\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = true;\n // Move the DOM element.\n this.moveElement(x, y);\n // Emit the movement event.\n this.movedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n // Run the save function.\n this.debouncedMovementSave(x, y);\n }\n );\n }\n /**\n * Stop the movement fun\n */\n private stopMovementListener(): void {\n if (this.removeMovement) {\n this.removeMovement();\n this.removeMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedResizementSave = debounce(\n 500, // ms.\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = false;\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Save the new position to the props.\n this.resize(width, height);\n\n // Emit the resize finished event.\n this.resizeFinishedEventManager.emit({\n item: this,\n prevSize: prevSize,\n newSize: newSize\n });\n }\n );\n // This property will store the function\n // to clean the resizement listener.\n private removeResizement: Function | null = null;\n\n /**\n * Start the resizement funtionality.\n * @param element Element to move inside its container.\n */\n protected initResizementListener(element: HTMLElement): void {\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n this.removeResizement = addResizementListener(\n element,\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = true;\n\n // The label it's outside the item's size, so we need\n // to get rid of its size to get the real size of the\n // item's content.\n if (this.props.label && this.props.label.length > 0) {\n const {\n width: labelWidth,\n height: labelHeight\n } = this.labelElementRef.getBoundingClientRect();\n\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n height -= labelHeight;\n break;\n case \"left\":\n case \"right\":\n width -= labelWidth;\n break;\n }\n }\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Move the DOM element.\n this.resizeElement(width, height);\n // Emit the resizement event.\n this.resizedEventManager.emit({\n item: this,\n prevSize,\n newSize\n });\n // Run the save function.\n this.debouncedResizementSave(width, height);\n }\n );\n }\n /**\n * Stop the resizement functionality.\n */\n private stopResizementListener(): void {\n if (this.removeResizement) {\n this.removeResizement();\n this.removeResizement = null;\n }\n }\n\n /**\n * To create a new element which will be inside the item box.\n * @return Item.\n */\n protected abstract createDomElement(): HTMLElement;\n\n public constructor(\n props: Props,\n metadata: ItemMeta,\n deferInit: boolean = false\n ) {\n this.itemProps = props;\n this._metadata = metadata;\n\n if (!deferInit) this.init();\n }\n\n /**\n * To create and append the DOM elements.\n */\n protected init(): void {\n /*\n * Get a HTMLElement which represents the container box\n * of the Visual Console item. This element will manage\n * all the common things like click events, show a border\n * when hovered, etc.\n */\n this.elementRef = this.createContainerDomElement();\n this.labelElementRef = this.createLabelDomElement();\n\n /*\n * Get a HTMLElement which represents the custom view\n * of the Visual Console item. This element will be\n * different depending on the item implementation.\n */\n this.childElementRef = this.createDomElement();\n\n // Insert the elements into the container.\n this.elementRef.appendChild(this.childElementRef);\n this.elementRef.appendChild(this.labelElementRef);\n\n // Resize element.\n this.resizeElement(this.itemProps.width, this.itemProps.height);\n // Set label position.\n this.changeLabelPosition(this.itemProps.labelPosition);\n }\n\n /**\n * To create a new box for the visual console item.\n * @return Item box.\n */\n private createContainerDomElement(): HTMLElement {\n let box;\n if (this.props.isLinkEnabled) {\n box = document.createElement(\"a\") as HTMLAnchorElement;\n\n if (this.props.link) {\n box.href = this.props.link;\n } else {\n box.className = \"textDecorationNone\";\n }\n } else {\n box = document.createElement(\"div\") as HTMLDivElement;\n box.className = \"textDecorationNone\";\n }\n\n box.classList.add(\"visual-console-item\");\n if (this.props.isOnTop) {\n box.classList.add(\"is-on-top\");\n }\n box.style.left = `${this.props.x}px`;\n box.style.top = `${this.props.y}px`;\n\n if (this.props.alertOutline) {\n box.classList.add(\"is-alert-triggered\");\n }\n\n // Init the click listeners.\n box.addEventListener(\"dblclick\", e => {\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.unSelectItem();\n this.selectItem();\n\n this.dblClickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n box.addEventListener(\"click\", e => {\n if (this.meta.editMode) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n // Add loading click item.\n if (this.itemProps.isLinkEnabled && this.itemProps.link != null) {\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n let path = e.composedPath();\n let containerId = \"visual-console-container\";\n for (let index = 0; index < path.length; index++) {\n const element = path[index] as HTMLInputElement;\n if (\n element.id != undefined &&\n element.id != null &&\n element.id != \"\"\n ) {\n if (element.id.includes(containerId) === true) {\n containerId = element.id;\n break;\n }\n }\n }\n\n const containerVC = document.getElementById(containerId);\n if (containerVC != null) {\n containerVC.classList.add(\"is-updating\");\n containerVC.appendChild(divParent);\n }\n }\n }\n\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.clickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n\n // Metadata state.\n if (this.meta.maintenanceMode) {\n box.classList.add(\"is-maintenance\");\n }\n if (this.meta.editMode) {\n box.classList.add(\"is-editing\");\n }\n if (this.meta.isFetching) {\n box.classList.add(\"is-fetching\");\n }\n if (this.meta.isUpdating) {\n box.classList.add(\"is-updating\");\n }\n if (this.meta.isSelected) {\n box.classList.add(\"is-selected\");\n }\n\n return box;\n }\n\n /**\n * To create a new label for the visual console item.\n * @return Item label.\n */\n protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Add the label if it exists.\n const label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n // Ugly table we need to use to replicate the legacy style.\n const table = document.createElement(\"table\");\n const row = document.createElement(\"tr\");\n const emptyRow1 = document.createElement(\"tr\");\n const emptyRow2 = document.createElement(\"tr\");\n const cell = document.createElement(\"td\");\n\n cell.innerHTML = label;\n row.appendChild(cell);\n table.appendChild(emptyRow1);\n table.appendChild(row);\n table.appendChild(emptyRow2);\n table.style.textAlign = \"center\";\n\n // Change the table size depending on its position.\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n\n // element.innerHTML = this.props.label;\n element.appendChild(table);\n }\n\n return element;\n }\n\n /**\n * Return the label stored into the props with some macros replaced.\n */\n protected getLabelWithMacrosReplaced(): string {\n // We assert that the props may have some needed properties.\n const props = this.props as Partial;\n\n return replaceMacros(\n [\n {\n macro: \"_date_\",\n value: humanDate(new Date())\n },\n {\n macro: \"_time_\",\n value: humanTime(new Date())\n },\n {\n macro: \"_agent_\",\n value: props.agentAlias != null ? props.agentAlias : \"\"\n },\n {\n macro: \"_agentdescription_\",\n value: props.agentDescription != null ? props.agentDescription : \"\"\n },\n {\n macro: \"_address_\",\n value: props.agentAddress != null ? props.agentAddress : \"\"\n },\n {\n macro: \"_module_\",\n value: props.moduleName != null ? props.moduleName : \"\"\n },\n {\n macro: \"_moduledescription_\",\n value: props.moduleDescription != null ? props.moduleDescription : \"\"\n }\n ],\n this.props.label || \"\"\n );\n }\n\n /**\n * To update the content element.\n * @return Item.\n */\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): Props {\n return { ...this.itemProps }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: Props) {\n this.setProps(newProps);\n }\n\n /**\n * Clasic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n protected setProps(newProps: Props) {\n const prevProps = this.props;\n // Update the internal props.\n this.itemProps = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n if (this.shouldBeUpdated(prevProps, newProps))\n this.render(prevProps, this._metadata);\n }\n\n /**\n * Public accessor of the `meta` property.\n * @return Properties.\n */\n public get meta(): ItemMeta {\n return { ...this._metadata }; // Return a copy.\n }\n\n /**\n * Public setter of the `meta` property.\n * If the new meta are different enough than the\n * stored meta, a render would be fired.\n * @param newProps\n */\n public set meta(newMetadata: ItemMeta) {\n this.setMeta(newMetadata);\n }\n\n /**\n * Classic version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n public setMeta(newMetadata: Partial): void {\n const prevMetadata = this._metadata;\n // Update the internal meta.\n this._metadata = {\n ...prevMetadata,\n ...newMetadata\n };\n\n if (\n typeof newMetadata.isSelected !== \"undefined\" &&\n prevMetadata.isSelected !== newMetadata.isSelected\n ) {\n this.selectionChangedEventManager.emit({\n selected: newMetadata.isSelected\n });\n }\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n // if (this.shouldBeUpdated(prevMetadata, newMetadata))\n this.render(this.itemProps, prevMetadata);\n }\n\n /**\n * To compare the previous and the new props and returns a boolean value\n * in case the difference is meaningfull enough to perform DOM changes.\n *\n * Here, the only comparision is done by reference.\n *\n * Override this function to perform a different comparision depending on the item needs.\n *\n * @param prevProps\n * @param newProps\n * @return Whether the difference is meaningful enough to perform DOM changes or not.\n */\n protected shouldBeUpdated(prevProps: Props, newProps: Props): boolean {\n return prevProps !== newProps;\n }\n\n /**\n * To recreate or update the HTMLElement which represents the item into the DOM.\n * @param prevProps If exists it will be used to only perform DOM updates instead of a full replace.\n */\n public render(\n prevProps: Props | null = null,\n prevMeta: ItemMeta | null = null\n ): void {\n if (prevProps) {\n this.updateDomElement(this.childElementRef);\n }\n // Move box.\n if (!prevProps || this.positionChanged(prevProps, this.props)) {\n this.moveElement(this.props.x, this.props.y);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Resize box.\n if (!prevProps || this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Change label.\n const oldLabelHtml = this.labelElementRef.innerHTML;\n const newLabelHtml = this.createLabelDomElement().innerHTML;\n if (oldLabelHtml !== newLabelHtml) {\n this.labelElementRef.innerHTML = newLabelHtml;\n }\n // Change label position.\n if (!prevProps || prevProps.labelPosition !== this.props.labelPosition) {\n this.changeLabelPosition(this.props.labelPosition);\n }\n //Change z-index class is-on-top\n if (!prevProps || prevProps.isOnTop !== this.props.isOnTop) {\n if (this.props.isOnTop) {\n this.elementRef.classList.add(\"is-on-top\");\n } else {\n this.elementRef.classList.remove(\"is-on-top\");\n }\n }\n // Change link.\n if (prevProps && prevProps.isLinkEnabled !== this.props.isLinkEnabled) {\n const container = this.createContainerDomElement();\n // Add the children of the old element.\n container.innerHTML = this.elementRef.innerHTML;\n // Copy the attributes.\n const attrs = this.elementRef.attributes;\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].nodeName !== \"id\") {\n let cloneIsNeeded = this.elementRef.getAttributeNode(\n attrs[i].nodeName\n );\n if (cloneIsNeeded !== null) {\n container.setAttributeNode(cloneIsNeeded.cloneNode());\n }\n }\n }\n // Replace the reference.\n if (this.elementRef.parentNode !== null) {\n this.elementRef.parentNode.replaceChild(container, this.elementRef);\n }\n\n // Changed the reference to the main element. It's ugly, but needed.\n this.elementRef = container;\n }\n\n if (\n prevProps &&\n this.props.isLinkEnabled &&\n prevProps.link !== this.props.link\n ) {\n if (this.props.link !== null) {\n this.elementRef.setAttribute(\"href\", this.props.link);\n }\n }\n\n // Change metadata related things.\n if (\n !prevMeta ||\n prevMeta.editMode !== this.meta.editMode ||\n prevMeta.maintenanceMode !== this.meta.maintenanceMode\n ) {\n if (this.meta.editMode && this.meta.maintenanceMode === false) {\n this.elementRef.classList.add(\"is-editing\");\n this.elementRef.classList.remove(\"is-alert-triggered\");\n } else {\n this.elementRef.classList.remove(\"is-editing\");\n\n if (this.props.alertOutline) {\n this.elementRef.classList.add(\"is-alert-triggered\");\n }\n }\n }\n\n if (!prevMeta || prevMeta.isFetching !== this.meta.isFetching) {\n if (this.meta.isFetching) {\n this.elementRef.classList.add(\"is-fetching\");\n } else {\n this.elementRef.classList.remove(\"is-fetching\");\n }\n }\n\n if (!prevMeta || prevMeta.isUpdating !== this.meta.isUpdating) {\n if (this.meta.isUpdating) {\n this.elementRef.classList.add(\"is-updating\");\n\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n this.elementRef.appendChild(divParent);\n } else {\n this.elementRef.classList.remove(\"is-updating\");\n\n const div = this.elementRef.querySelector(\n \".div-visual-console-spinner\"\n );\n if (div !== null) {\n const parent = div.parentElement;\n if (parent !== null) {\n parent.removeChild(div);\n }\n }\n }\n\n this.updateDomElement(this.childElementRef);\n }\n if (!prevMeta || prevMeta.isSelected !== this.meta.isSelected) {\n if (this.meta.isSelected) {\n this.elementRef.classList.add(\"is-selected\");\n this.elementRef.setAttribute('id','item-selected-move');\n } else {\n this.elementRef.classList.remove(\"is-selected\");\n this.elementRef.removeAttribute('id');\n }\n }\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n // Call the remove event.\n this.removeEventManager.emit({ item: this });\n // Event listeners.\n this.disposables.forEach(disposable => {\n try {\n disposable.dispose();\n } catch (ignored) {} // eslint-disable-line no-empty\n });\n // VisualConsoleItem DOM element.\n this.elementRef.remove();\n }\n\n /**\n * Compare the previous and the new position and return\n * a boolean value in case the position changed.\n * @param prevPosition\n * @param newPosition\n * @return Whether the position changed or not.\n */\n protected positionChanged(\n prevPosition: Position,\n newPosition: Position\n ): boolean {\n return prevPosition.x !== newPosition.x || prevPosition.y !== newPosition.y;\n }\n\n /**\n * Move the label around the item content.\n * @param position Label position.\n */\n protected changeLabelPosition(position: Props[\"labelPosition\"]): void {\n switch (position) {\n case \"up\":\n this.elementRef.style.flexDirection = \"column-reverse\";\n break;\n case \"left\":\n this.elementRef.style.flexDirection = \"row-reverse\";\n break;\n case \"right\":\n this.elementRef.style.flexDirection = \"row\";\n break;\n case \"down\":\n default:\n this.elementRef.style.flexDirection = \"column\";\n break;\n }\n\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n // Change the table size depending on its position.\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n }\n }\n\n /**\n * Move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n protected moveElement(x: number, y: number): void {\n this.elementRef.style.left = `${x}px`;\n this.elementRef.style.top = `${y}px`;\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n public move(x: number, y: number): void {\n this.moveElement(x, y);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n x,\n y\n };\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n protected sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // The most valuable size is the content size.\n if (\n this.props.type != ItemType.LINE_ITEM &&\n this.props.type != ItemType.NETWORK_LINK\n ) {\n this.childElementRef.style.width = width > 0 ? `${width}px` : \"\";\n this.childElementRef.style.height = height > 0 ? `${height}px` : \"\";\n }\n\n if (this.props.label && this.props.label.length > 0) {\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n table.style.width = width > 0 ? `${width}px` : \"\";\n break;\n case \"left\":\n case \"right\":\n table.style.height = height > 0 ? `${height}px` : \"\";\n break;\n }\n }\n }\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.resizeElement(width, height);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement stopped of visual console elements.\n * @param listener Function which is going to be executed when a linked console's movement is finished.\n */\n public onMovementFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movementFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement finish of visual console elements.\n * @param listener Function which is going to be executed when a linked console is finished resizing.\n */\n public onResizeFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizeFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the removal of the item.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onRemove(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.removeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to item selection.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n this.initMovementListener(this.elementRef);\n if (\n this.props.type !== ItemType.LINE_ITEM &&\n this.props.type !== ItemType.NETWORK_LINK\n ) {\n this.initResizementListener(this.elementRef);\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: false\n };\n\n this.stopMovementListener();\n if (this.props.type !== ItemType.LINE_ITEM) {\n this.stopResizementListener();\n }\n }\n\n // TODO: Document\n public getFormContainer(): FormContainer {\n return VisualConsoleItem.getFormContainer(this.props);\n }\n\n // TODO: Document\n public static getFormContainer(props: Partial): FormContainer {\n const title: string = props.type ? titleItem(props.type) : t(\"Item\");\n return new FormContainer(title, [], []);\n }\n}\n\nexport default VisualConsoleItem;\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport { modulePropsDecoder, decodeBase64, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BarsGraphProps = {\n type: ItemType.BARS_GRAPH;\n html: string;\n backgroundColor: \"white\" | \"black\" | \"transparent\";\n typeGraph: \"horizontal\" | \"vertical\";\n gridColor: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param BarsGraphProps Raw value.\n */\nconst parseBarsGraphProps = (\n backgroundColor: unknown\n): BarsGraphProps[\"backgroundColor\"] => {\n switch (backgroundColor) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundColor;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param typeGraph Raw value.\n */\nconst parseTypeGraph = (typeGraph: unknown): BarsGraphProps[\"typeGraph\"] => {\n switch (typeGraph) {\n case \"horizontal\":\n case \"vertical\":\n return typeGraph;\n default:\n return \"vertical\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the bars graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function barsGraphPropsDecoder(data: AnyObject): BarsGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BARS_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundColor: parseBarsGraphProps(data.backgroundColor),\n typeGraph: parseTypeGraph(data.typeGraph),\n gridColor: stringIsEmpty(data.gridColor) ? \"#000000\" : data.gridColor,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BarsGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.innerHTML = this.props.html;\n element.className = \"bars-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BasicChartProps = {\n type: ItemType.BASIC_CHART;\n html: string;\n period: number | null;\n value: number | null;\n status: string;\n moduleNameColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the basic chart props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function basicChartPropsDecoder(\n data: AnyObject\n): BasicChartProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BASIC_CHART,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n period: parseIntOr(data.period, null),\n value: parseFloat(data.value),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n moduleNameColor: stringIsEmpty(data.moduleNameColor)\n ? \"#3f3f3f\"\n : data.moduleNameColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BasicChart extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.className = \"basic-chart\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n\n protected number_format(\n number: number,\n force_integer: boolean,\n unit: string,\n short_data: number,\n divisor: number\n ) {\n divisor = typeof divisor !== \"undefined\" ? divisor : 1000;\n var decimals = 2;\n\n // Set maximum decimal precision to 99 in case short_data is not set.\n if (!short_data) {\n short_data = 99;\n }\n\n if (force_integer) {\n if (Math.round(number) != number) {\n return \"\";\n }\n } else {\n short_data++;\n const aux_decimals = this.pad(\"1\", short_data, 0);\n number =\n Math.round(number * Number.parseInt(aux_decimals)) /\n Number.parseInt(aux_decimals);\n }\n\n var shorts = [\"\", \"K\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n var pos = 0;\n\n while (Math.abs(number) >= divisor) {\n // As long as the number can be divided by 1000 or 1024.\n pos++;\n number = number / divisor;\n }\n\n if (divisor) {\n number = Math.round(number * decimals) / decimals;\n } else {\n number = Math.round(number * decimals);\n }\n\n if (isNaN(number)) {\n number = 0;\n }\n\n return number + \" \" + shorts[pos] + unit;\n }\n\n protected pad(input: string, length: number, padding: number): string {\n var str = input + \"\";\n return length <= str.length\n ? str\n : this.pad(str + padding, length, padding);\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type DonutGraphProps = {\n type: ItemType.DONUT_GRAPH;\n html: string;\n legendBackgroundColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the donut graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function donutGraphPropsDecoder(\n data: AnyObject\n): DonutGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.DONUT_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n legendBackgroundColor: stringIsEmpty(data.legendBackgroundColor)\n ? \"#ffffff\"\n : data.legendBackgroundColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class DonutGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"donut-graph\";\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport {\n modulePropsDecoder,\n parseIntOr,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type EventsHistoryProps = {\n type: ItemType.AUTO_SLA_GRAPH;\n maxTime: number | null;\n legendColor: string;\n html: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function eventsHistoryPropsDecoder(\n data: AnyObject\n): EventsHistoryProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.AUTO_SLA_GRAPH,\n maxTime: parseIntOr(data.maxTime, null),\n legendColor: data.legendColor,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class EventsHistory extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"events-history\";\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const aux = document.createElement(\"div\");\n aux.innerHTML = this.props.html;\n const scripts = aux.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type ModuleGraphProps = {\n type: ItemType.MODULE_GRAPH;\n html: string;\n backgroundType: \"white\" | \"black\" | \"transparent\";\n graphType: \"line\" | \"area\";\n period: number | null;\n customGraphId: number | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param backgroundType Raw value.\n */\nconst parseBackgroundType = (\n backgroundType: unknown\n): ModuleGraphProps[\"backgroundType\"] => {\n switch (backgroundType) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundType;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param graphType Raw value.\n */\nconst parseGraphType = (graphType: unknown): ModuleGraphProps[\"graphType\"] => {\n switch (graphType) {\n case \"line\":\n case \"area\":\n return graphType;\n default:\n return \"line\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the module graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function moduleGraphPropsDecoder(\n data: AnyObject\n): ModuleGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.MODULE_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundType: parseBackgroundType(data.backgroundType),\n period: parseIntOr(data.period, null),\n graphType: parseGraphType(data.graphType),\n customGraphId: parseIntOr(data.customGraphId, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class ModuleGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n element.innerHTML = this.props.html;\n element.className = \"module-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./FontAwesomeIcon.styles.css\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\ninterface ExtraProps {\n size?: \"small\" | \"medium\" | \"large\";\n color?: string;\n spin?: boolean;\n pulse?: boolean;\n}\n\nconst fontAwesomeIcon = (\n iconDefinition: IconDefinition,\n title: string,\n { size, color, spin, pulse }: ExtraProps = {}\n): HTMLElement => {\n const container = document.createElement(\"figure\");\n container.title = title;\n container.className = `fa fa-${iconDefinition.iconName}`;\n\n if (size) container.classList.add(`fa-${size}`);\n\n if (spin) container.classList.add(\"fa-spin\");\n else if (pulse) container.classList.add(\"fa-pulse\");\n\n const icon = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n icon.setAttribute(\n \"viewBox\",\n `0 0 ${iconDefinition.icon[0]} ${iconDefinition.icon[1]}`\n );\n if (color) icon.setAttribute(\"fill\", color);\n\n // Path\n const path = document.createElementNS(svgNS, \"path\");\n const pathData =\n typeof iconDefinition.icon[4] === \"string\"\n ? iconDefinition.icon[4]\n : iconDefinition.icon[4][0];\n path.setAttribute(\"d\", pathData);\n\n icon.appendChild(path);\n container.appendChild(icon);\n\n return container;\n};\n\nexport default fontAwesomeIcon;\n","export interface Listener {\n (event: T): void;\n}\n\nexport interface Disposable {\n dispose: () => void;\n}\n\n/** passes through events as they happen. You will not get events from before you start listening */\nexport default class TypedEvent {\n private listeners: Listener[] = [];\n private listenersOncer: Listener[] = [];\n\n public on = (listener: Listener): Disposable => {\n this.listeners.push(listener);\n return {\n dispose: () => this.off(listener)\n };\n };\n\n public once = (listener: Listener): void => {\n this.listenersOncer.push(listener);\n };\n\n public off = (listener: Listener): void => {\n const callbackIndex = this.listeners.indexOf(listener);\n if (callbackIndex > -1) this.listeners.splice(callbackIndex, 1);\n };\n\n public emit = (event: T): void => {\n /** Update any general listeners */\n this.listeners.forEach(listener => listener(event));\n\n /** Clear the `once` queue */\n this.listenersOncer.forEach(listener => listener(event));\n this.listenersOncer = [];\n };\n\n public pipe = (te: TypedEvent): Disposable => this.on(e => te.emit(e));\n}\n","import {\n AnyObject,\n Position,\n Size,\n WithAgentProps,\n WithModuleProps,\n LinkedVisualConsoleProps,\n LinkedVisualConsolePropsStatus,\n UnknownObject,\n ItemMeta\n} from \"./types\";\n\nimport helpTipIcon from \"./help-tip.png\";\nimport fontAwesomeIcon from \"./FontAwesomeIcon\";\nimport { faPencilAlt, faListAlt } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./autocomplete.css\";\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseIntOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\" && value.length > 0 && !isNaN(parseInt(value)))\n return parseInt(value);\n else return defaultValue;\n}\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseFloatOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (\n typeof value === \"string\" &&\n value.length > 0 &&\n !isNaN(parseFloat(value))\n )\n return parseFloat(value);\n else return defaultValue;\n}\n\n/**\n * Check if a string exists and it's not empty.\n * @param value Value to check.\n * @return The check result.\n */\nexport function stringIsEmpty(value?: string | null): boolean {\n return value == null || value.length === 0;\n}\n\n/**\n * Return a not empty string or a default value from a raw value.\n * @param value Raw value from which we will try to extract a non empty string.\n * @param defaultValue Default value to use if we cannot extract a non empty string.\n * @return A non empty string or the default value.\n */\nexport function notEmptyStringOr(\n value: unknown,\n defaultValue: T\n): string | T {\n return typeof value === \"string\" && value.length > 0 ? value : defaultValue;\n}\n\n/**\n * Return a boolean from a raw value.\n * @param value Raw value from which we will try to extract the boolean.\n * @return A valid boolean value. false by default.\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === \"boolean\") return value;\n else if (typeof value === \"number\") return value > 0;\n else if (typeof value === \"string\") return value === \"1\" || value === \"true\";\n else return false;\n}\n\n/**\n * Return a valid date or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid date.\n * @param defaultValue Default value to use if we cannot extract a valid date.\n * @return A valid date or the default value.\n */\nexport function parseDateOr(value: unknown, defaultValue: T): Date | T {\n if (value instanceof Date) return value;\n else if (typeof value === \"number\") return new Date(value * 1000);\n else if (\n typeof value === \"string\" &&\n !Number.isNaN(new Date(value).getTime())\n )\n return new Date(value);\n else return defaultValue;\n}\n\n/**\n * Pad the current string with another string (multiple times, if needed)\n * until the resulting string reaches the given length.\n * The padding is applied from the start (left) of the current string.\n * @param value Text that needs to be padded.\n * @param length Length of the returned text.\n * @param pad Text to add.\n * @return Padded text.\n */\nexport function leftPad(\n value: string | number,\n length: number,\n pad: string | number = \" \"\n): string {\n if (typeof value === \"number\") value = `${value}`;\n if (typeof pad === \"number\") pad = `${pad}`;\n\n const diffLength = length - value.length;\n if (diffLength === 0) return value;\n if (diffLength < 0) return value.substr(Math.abs(diffLength));\n\n if (diffLength === pad.length) return `${pad}${value}`;\n if (diffLength < pad.length) return `${pad.substring(0, diffLength)}${value}`;\n\n const repeatTimes = Math.floor(diffLength / pad.length);\n const restLength = diffLength - pad.length * repeatTimes;\n\n let newPad = \"\";\n for (let i = 0; i < repeatTimes; i++) newPad += pad;\n\n if (restLength === 0) return `${newPad}${value}`;\n return `${newPad}${pad.substring(0, restLength)}${value}`;\n}\n\n/* Decoders */\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the position.\n */\nexport function positionPropsDecoder(data: AnyObject): Position {\n return {\n x: parseIntOr(data.x, 0),\n y: parseIntOr(data.y, 0)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the size.\n * @throws Will throw a TypeError if the width and height are not valid numbers.\n */\nexport function sizePropsDecoder(data: AnyObject): Size | never {\n if (\n data.width == null ||\n isNaN(parseInt(data.width)) ||\n data.height == null ||\n isNaN(parseInt(data.height))\n ) {\n throw new TypeError(\"invalid size.\");\n }\n\n return {\n width: parseInt(data.width),\n height: parseInt(data.height)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the agent properties.\n */\nexport function agentPropsDecoder(data: AnyObject): WithAgentProps {\n const agentProps: WithAgentProps = {\n agentId: parseIntOr(data.agentId, null),\n agentName: notEmptyStringOr(data.agentName, null),\n agentAlias: notEmptyStringOr(data.agentAlias, null),\n agentDescription: notEmptyStringOr(data.agentDescription, null),\n agentAddress: notEmptyStringOr(data.agentAddress, null),\n agentDisabled: parseBoolean(data.agentDisabled)\n };\n\n return data.metaconsoleId != null\n ? {\n metaconsoleId: data.metaconsoleId,\n ...agentProps // Object spread: http://es6-features.org/#SpreadOperator\n }\n : agentProps;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the module and agent properties.\n */\nexport function modulePropsDecoder(data: AnyObject): WithModuleProps {\n return {\n moduleId: parseIntOr(data.moduleId, null),\n moduleName: notEmptyStringOr(data.moduleName, null),\n moduleDescription: notEmptyStringOr(data.moduleDescription, null),\n moduleDisabled: parseBoolean(data.moduleDisabled),\n ...agentPropsDecoder(data) // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the linked visual console properties.\n * @throws Will throw a TypeError if the status calculation properties are invalid.\n */\nexport function linkedVCPropsDecoder(\n data: AnyObject\n): LinkedVisualConsoleProps | never {\n let linkedLayoutStatusProps: LinkedVisualConsolePropsStatus = {\n linkedLayoutStatusType: \"default\"\n };\n switch (data.linkedLayoutStatusType) {\n case \"weight\": {\n const weight = parseIntOr(data.linkedLayoutStatusTypeWeight, null);\n if (weight == null)\n throw new TypeError(\"invalid status calculation properties.\");\n\n if (data.linkedLayoutStatusTypeWeight)\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"weight\",\n linkedLayoutStatusTypeWeight: weight\n };\n break;\n }\n case \"service\": {\n const warningThreshold = parseIntOr(\n data.linkedLayoutStatusTypeWarningThreshold,\n null\n );\n const criticalThreshold = parseIntOr(\n data.linkedLayoutStatusTypeCriticalThreshold,\n null\n );\n if (warningThreshold == null || criticalThreshold == null) {\n throw new TypeError(\"invalid status calculation properties.\");\n }\n\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"service\",\n linkedLayoutStatusTypeWarningThreshold: warningThreshold,\n linkedLayoutStatusTypeCriticalThreshold: criticalThreshold\n };\n break;\n }\n }\n\n return {\n linkedLayoutId: parseIntOr(data.linkedLayoutId, null),\n linkedLayoutNodeId: parseIntOr(data.linkedLayoutNodeId, null),\n ...linkedLayoutStatusProps // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the item's meta properties.\n */\nexport function itemMetaDecoder(data: UnknownObject): ItemMeta | never {\n const receivedAt = parseDateOr(data.receivedAt, null);\n if (receivedAt === null) throw new TypeError(\"invalid meta structure\");\n\n let error = null;\n if (data.error instanceof Error) error = data.error;\n else if (typeof data.error === \"string\") error = new Error(data.error);\n\n return {\n receivedAt,\n error,\n editMode: parseBoolean(data.editMode),\n maintenanceMode: parseBoolean(data.maintenanceMode),\n isFromCache: parseBoolean(data.isFromCache),\n isFetching: false,\n isUpdating: false,\n isBeingMoved: false,\n isBeingResized: false,\n isSelected: false,\n lineMode: false\n };\n}\n\n/**\n * To get a CSS rule with the most used prefixes.\n * @param ruleName Name of the CSS rule.\n * @param ruleValue Value of the CSS rule.\n * @return An array of rules with the prefixes applied.\n */\nexport function prefixedCssRules(\n ruleName: string,\n ruleValue: string\n): string[] {\n const rule = `${ruleName}: ${ruleValue};`;\n return [\n `-webkit-${rule}`,\n `-moz-${rule}`,\n `-ms-${rule}`,\n `-o-${rule}`,\n `${rule}`\n ];\n}\n\n/**\n * Decode a base64 string.\n * @param input Data encoded using base64.\n * @return Decoded data.\n */\nexport function decodeBase64(input: string): string {\n return decodeURIComponent(escape(window.atob(input)));\n}\n\n/**\n * Generate a date representation with the format 'd/m/Y'.\n * @param initialDate Date to be used instead of a generated one.\n * @param locale Locale to use if localization is required and available.\n * @example 24/02/2020.\n * @return Date representation.\n */\nexport function humanDate(date: Date, locale: string | null = null): string {\n if (locale && Intl && Intl.DateTimeFormat) {\n // Format using the user locale.\n const options: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\"\n };\n return Intl.DateTimeFormat(locale, options).format(date);\n } else {\n // Use getDate, getDay returns the week day.\n const day = leftPad(date.getDate(), 2, 0);\n // The getMonth function returns the month starting by 0.\n const month = leftPad(date.getMonth() + 1, 2, 0);\n const year = leftPad(date.getFullYear(), 4, 0);\n\n // Format: 'd/m/Y'.\n return `${day}/${month}/${year}`;\n }\n}\n\n/**\n * Generate a time representation with the format 'hh:mm:ss'.\n * @param initialDate Date to be used instead of a generated one.\n * @example 01:34:09.\n * @return Time representation.\n */\nexport function humanTime(date: Date): string {\n const hours = leftPad(date.getHours(), 2, 0);\n const minutes = leftPad(date.getMinutes(), 2, 0);\n const seconds = leftPad(date.getSeconds(), 2, 0);\n\n return `${hours}:${minutes}:${seconds}`;\n}\n\ninterface Macro {\n macro: string | RegExp;\n value: string;\n}\n/**\n * Replace the macros of a text.\n * @param macros List of macros and their replacements.\n * @param text Text in which we need to replace the macros.\n */\nexport function replaceMacros(macros: Macro[], text: string): string {\n return macros.reduce(\n (acc, { macro, value }) => acc.replace(macro, value),\n text\n );\n}\n\n/**\n * Create a function which will limit the rate of execution of\n * the selected function to one time for the selected interval.\n * @param delay Interval.\n * @param fn Function to be executed at a limited rate.\n */\nexport function throttle(delay: number, fn: (...args: T[]) => R) {\n let last = 0;\n return (...args: T[]) => {\n const now = Date.now();\n if (now - last < delay) return;\n last = now;\n return fn(...args);\n };\n}\n\n/**\n * Create a function which will call the selected function only\n * after the interval time has passed after its last execution.\n * @param delay Interval.\n * @param fn Function to be executed after the last call.\n */\nexport function debounce(delay: number, fn: (...args: T[]) => void) {\n let timerRef: number | null = null;\n return (...args: T[]) => {\n if (timerRef !== null) window.clearTimeout(timerRef);\n timerRef = window.setTimeout(() => {\n fn(...args);\n timerRef = null;\n }, delay);\n };\n}\n\n/**\n * Retrieve the offset of an element relative to the page.\n * @param el Node used to calculate the offset.\n */\nfunction getOffset(el: HTMLElement | null, parent?: HTMLElement) {\n let x = 0;\n let y = 0;\n while (\n el &&\n !Number.isNaN(el.offsetLeft) &&\n !Number.isNaN(el.offsetTop) &&\n el !== parent\n ) {\n x += el.offsetLeft - el.scrollLeft;\n y += el.offsetTop - el.scrollTop;\n el = el.offsetParent as HTMLElement | null;\n }\n return { top: y, left: x };\n}\n\n/**\n * Add the grab & move functionality to a certain element inside it's container.\n *\n * @param element Element to move.\n * @param onMoved Function to execute when the element moves.\n * @param altContainer Alternative element to contain the moved element.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addMovementListener(\n element: HTMLElement,\n onMoved: (x: Position[\"x\"], y: Position[\"y\"]) => void,\n altContainer?: HTMLElement\n): Function {\n const container = altContainer || (element.parentElement as HTMLElement);\n\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastX: Position[\"x\"] = 0;\n let lastY: Position[\"y\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementBounds = element.getBoundingClientRect();\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth) * 2;\n\n // Will run onMoved 32ms after its last execution.\n const debouncedMovement = debounce(32, onMoved);\n // Will run onMoved one time max every 16ms.\n const throttledMovement = throttle(16, onMoved);\n\n const handleMove = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let x = 0;\n let y = 0;\n\n const mouseX = e.pageX;\n const mouseY = e.pageY;\n const mouseDeltaX = mouseX - lastMouseX;\n const mouseDeltaY = mouseY - lastMouseY;\n\n const minX = 0;\n const maxX = containerBounds.width - elementBounds.width + borderFix;\n const minY = 0;\n const maxY = containerBounds.height - elementBounds.height + borderFix;\n\n const outOfBoundsLeft =\n mouseX < containerLeft ||\n (lastX === 0 &&\n mouseDeltaX > 0 &&\n mouseX < containerLeft + mouseElementOffsetX);\n const outOfBoundsRight =\n mouseX > containerRight ||\n mouseDeltaX + lastX + elementBounds.width - borderFix >\n containerBounds.width ||\n (lastX === maxX &&\n mouseDeltaX < 0 &&\n mouseX > containerLeft + maxX + mouseElementOffsetX);\n const outOfBoundsTop =\n mouseY < containerTop ||\n (lastY === 0 &&\n mouseDeltaY > 0 &&\n mouseY < containerTop + mouseElementOffsetY);\n const outOfBoundsBottom =\n mouseY > containerBottom ||\n mouseDeltaY + lastY + elementBounds.height - borderFix >\n containerBounds.height ||\n (lastY === maxY &&\n mouseDeltaY < 0 &&\n mouseY > containerTop + maxY + mouseElementOffsetY);\n\n if (outOfBoundsLeft) x = minX;\n else if (outOfBoundsRight) x = maxX;\n else x = mouseDeltaX + lastX;\n\n if (outOfBoundsTop) y = minY;\n else if (outOfBoundsBottom) y = maxY;\n else y = mouseDeltaY + lastY;\n\n if (x < 0) x = minX;\n if (y < 0) y = minY;\n\n // Store the last mouse coordinates.\n lastMouseX = mouseX;\n lastMouseY = mouseY;\n\n if (x === lastX && y === lastY) return;\n\n // Run the movement events.\n throttledMovement(x, y);\n debouncedMovement(x, y);\n\n // Store the coordinates of the element.\n lastX = x;\n lastY = y;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastX = 0;\n lastY = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleMove);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n // Avoid starting the movement on right click.\n if (e.button === 2) return;\n\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Fix for Firefox browser.\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const elementOffset = getOffset(element, container);\n lastX = elementOffset.left;\n lastY = elementOffset.top;\n\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementBounds = element.getBoundingClientRect();\n borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n borderFix = Number.parseInt(borderWidth) * 2;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleMove);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n element.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n element.removeEventListener(\"mousedown\", handleStart);\n handleEnd();\n };\n}\n\n/**\n * Add the grab & resize functionality to a certain element.\n *\n * @param element Element to move.\n * @param onResized Function to execute when the element is resized.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addResizementListener(\n element: HTMLElement,\n onResized: (x: Position[\"x\"], y: Position[\"y\"]) => void\n): Function {\n const minWidth = 15;\n const minHeight = 15;\n\n const resizeDraggable = document.createElement(\"div\");\n resizeDraggable.className = \"resize-draggable\";\n element.appendChild(resizeDraggable);\n\n // Container of the resizable element.\n const container = element.parentElement as HTMLElement;\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastWidth: Size[\"width\"] = 0;\n let lastHeight: Size[\"height\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Init the bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementOffset = getOffset(element);\n let elementTop = elementOffset.top;\n let elementLeft = elementOffset.left;\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth);\n\n // Will run onResized 32ms after its last execution.\n const debouncedResizement = debounce(32, onResized);\n // Will run onResized one time max every 16ms.\n const throttledResizement = throttle(16, onResized);\n\n const handleResize = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let width = lastWidth + (e.pageX - lastMouseX);\n let height = lastHeight + (e.pageY - lastMouseY);\n\n if (width === lastWidth && height === lastHeight) return;\n\n if (\n width < lastWidth &&\n e.pageX > elementLeft + (lastWidth - mouseElementOffsetX)\n )\n return;\n\n if (width < minWidth) {\n // Minimum value.\n width = minWidth;\n } else if (width + elementLeft - borderFix / 2 >= containerRight) {\n // Limit the size to the container.\n width = containerRight - elementLeft;\n }\n if (height < minHeight) {\n // Minimum value.\n height = minHeight;\n } else if (height + elementTop - borderFix / 2 >= containerBottom) {\n // Limit the size to the container.\n height = containerBottom - elementTop;\n }\n\n // Run the movement events.\n throttledResizement(width, height);\n debouncedResizement(width, height);\n\n // Store the coordinates of the element.\n lastWidth = width;\n lastHeight = height;\n // Store the last mouse coordinates.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastWidth = 0;\n lastHeight = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n mouseElementOffsetX = 0;\n mouseElementOffsetY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleResize);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const { width, height } = element.getBoundingClientRect();\n lastWidth = width;\n lastHeight = height;\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementOffset = getOffset(element);\n elementTop = elementOffset.top;\n elementLeft = elementOffset.left;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleResize);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n resizeDraggable.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n resizeDraggable.remove();\n handleEnd();\n };\n}\n\n// TODO: Document and code\nexport function t(text: string): string {\n return text;\n}\n\nexport function helpTip(text: string): HTMLElement {\n const container = document.createElement(\"a\");\n container.className = \"tip\";\n const icon = document.createElement(\"img\");\n icon.src = helpTipIcon;\n icon.className = \"forced_title\";\n icon.setAttribute(\"alt\", text);\n icon.setAttribute(\"data-title\", text);\n icon.setAttribute(\"data-use_title_for_force_title\", \"1\");\n\n container.appendChild(icon);\n\n return container;\n}\n\ninterface PeriodSelectorOption {\n value: number;\n text: string;\n}\nexport function periodSelector(\n selectedValue: PeriodSelectorOption[\"value\"] | null,\n emptyOption: PeriodSelectorOption | null,\n options: PeriodSelectorOption[],\n onChange: (value: PeriodSelectorOption[\"value\"]) => void\n): HTMLElement {\n if (selectedValue === null) selectedValue = 0;\n const initialValue = emptyOption ? emptyOption.value : 0;\n let currentValue: number =\n selectedValue != null ? selectedValue : initialValue;\n // Main container.\n const container = document.createElement(\"div\");\n // Container for the period selector.\n const periodsContainer = document.createElement(\"div\");\n const selectPeriods = document.createElement(\"select\");\n const useManualPeriodsBtn = document.createElement(\"a\");\n // Container for the custom period input.\n const manualPeriodsContainer = document.createElement(\"div\");\n const inputTimeValue = document.createElement(\"input\");\n const unitsSelect = document.createElement(\"select\");\n const usePeriodsBtn = document.createElement(\"a\");\n // Units to multiply the custom period input.\n const unitOptions: { value: string; text: string }[] = [\n { value: \"1\", text: t(\"Seconds\").toLowerCase() },\n { value: \"60\", text: t(\"Minutes\").toLowerCase() },\n { value: \"3600\", text: t(\"Hours\").toLowerCase() },\n { value: \"86400\", text: t(\"Days\").toLowerCase() },\n { value: \"604800\", text: t(\"Weeks\").toLowerCase() },\n { value: `${86400 * 30}`, text: t(\"Months\").toLowerCase() },\n { value: `${86400 * 30 * 12}`, text: t(\"Years\").toLowerCase() }\n ];\n\n // Will be executed every time the value changes.\n const handleChange = (value: number) => {\n currentValue = value;\n onChange(currentValue);\n };\n // Will return the first period option smaller than the value.\n const findPeriodsOption = (value: number) =>\n options\n .sort((a, b) => (a.value < b.value ? 1 : -1))\n .find(optionVal => value >= optionVal.value);\n // Will return the first multiple of the value using the custom input multipliers.\n const findManualPeriodsOptionValue = (value: number) =>\n unitOptions\n .map(unitOption => Number.parseInt(unitOption.value))\n .sort((a, b) => (a < b ? 1 : -1))\n .find(optionVal => value % optionVal === 0);\n // Will find and set a valid option for the period selector.\n const setPeriodsValue = (value: number) => {\n let option = findPeriodsOption(value);\n selectPeriods.value = `${option ? option.value : initialValue}`;\n };\n // Will transform the value to show the perfect fit for the custom input period.\n const setManualPeriodsValue = (value: number) => {\n const optionVal = findManualPeriodsOptionValue(value);\n if (optionVal) {\n inputTimeValue.value = `${value / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${value}`;\n unitsSelect.value = \"1\";\n }\n };\n\n // Will modify the value to show the perfect fit for this element and show its container.\n const showPeriods = () => {\n let option = findPeriodsOption(currentValue);\n const newValue = option ? option.value : initialValue;\n selectPeriods.value = `${newValue}`;\n\n if (newValue !== currentValue) handleChange(newValue);\n\n container.replaceChild(periodsContainer, manualPeriodsContainer);\n };\n // Will modify the value to show the perfect fit for this element and show its container.\n const showManualPeriods = () => {\n const optionVal = findManualPeriodsOptionValue(currentValue);\n\n if (optionVal) {\n inputTimeValue.value = `${currentValue / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${currentValue}`;\n unitsSelect.value = \"1\";\n }\n\n container.replaceChild(manualPeriodsContainer, periodsContainer);\n };\n\n // Append the elements\n\n periodsContainer.appendChild(selectPeriods);\n periodsContainer.appendChild(useManualPeriodsBtn);\n\n manualPeriodsContainer.appendChild(inputTimeValue);\n manualPeriodsContainer.appendChild(unitsSelect);\n manualPeriodsContainer.appendChild(usePeriodsBtn);\n\n if (\n options.find(option => option.value === selectedValue) ||\n (emptyOption && emptyOption.value === selectedValue)\n ) {\n // Start with the custom periods select.\n container.appendChild(periodsContainer);\n } else {\n // Start with the manual time input\n container.appendChild(manualPeriodsContainer);\n }\n\n // Set and fill the elements.\n\n // Periods selector.\n\n selectPeriods.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, initialValue)\n )\n );\n if (emptyOption) {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${emptyOption.value}`;\n optionElem.text = emptyOption.text;\n selectPeriods.appendChild(optionElem);\n }\n options.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n selectPeriods.appendChild(optionElem);\n });\n\n setPeriodsValue(selectedValue);\n\n useManualPeriodsBtn.appendChild(\n fontAwesomeIcon(faPencilAlt, t(\"Show manual period input\"), {\n size: \"small\"\n })\n );\n useManualPeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showManualPeriods();\n });\n\n // Manual periods input.\n\n inputTimeValue.type = \"number\";\n inputTimeValue.min = \"0\";\n inputTimeValue.required = true;\n inputTimeValue.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, 0) *\n parseIntOr(unitsSelect.value, 1)\n )\n );\n // Select for time units.\n unitsSelect.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr(inputTimeValue.value, 0) *\n parseIntOr((e.target as HTMLSelectElement).value, 1)\n )\n );\n unitOptions.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n unitsSelect.appendChild(optionElem);\n });\n\n setManualPeriodsValue(selectedValue);\n\n usePeriodsBtn.appendChild(\n fontAwesomeIcon(faListAlt, t(\"Show periods selector\"), { size: \"small\" })\n );\n usePeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showPeriods();\n });\n\n return container;\n}\n\n/**\n * Cuts the text if their length is greater than the selected max length\n * and applies the selected ellipse to the result text.\n * @param str Text to cut\n * @param max Maximum length after cutting the text\n * @param ellipse String to be added to the cutted text\n * @returns Full text or text cutted with the ellipse\n */\nexport function ellipsize(\n str: string,\n max: number = 140,\n ellipse: string = \"…\"\n): string {\n return str.trim().length > max ? str.substr(0, max).trim() + ellipse : str;\n}\n\n// TODO: Document\nexport function autocompleteInput(\n initialValue: string | null,\n onDataRequested: (value: string, done: (data: T[]) => void) => void,\n renderListElement: (data: T) => HTMLElement,\n onSelected: (data: T) => string\n): HTMLElement {\n const container = document.createElement(\"div\");\n container.classList.add(\"autocomplete\");\n\n const input = document.createElement(\"input\");\n input.type = \"text\";\n input.required = true;\n if (initialValue !== null) input.value = initialValue;\n\n const list = document.createElement(\"div\");\n list.classList.add(\"autocomplete-items\");\n\n const cleanList = () => {\n list.innerHTML = \"\";\n };\n\n input.addEventListener(\"keyup\", e => {\n const value = (e.target as HTMLInputElement).value;\n if (value) {\n onDataRequested(value, data => {\n cleanList();\n if (data instanceof Array) {\n data.forEach(item => {\n const listElement = renderListElement(item);\n listElement.addEventListener(\"click\", () => {\n input.value = onSelected(item);\n cleanList();\n });\n list.appendChild(listElement);\n });\n }\n });\n } else {\n cleanList();\n }\n });\n\n container.appendChild(input);\n container.appendChild(list);\n\n return container;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject\n} from \"../lib/types\";\n\nimport {\n modulePropsDecoder,\n linkedVCPropsDecoder,\n notEmptyStringOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type StaticGraphProps = {\n type: ItemType.STATIC_GRAPH;\n imageSrc: string; // URL?\n showLastValueTooltip: \"default\" | \"enabled\" | \"disabled\";\n statusImageSrc: string | null; // URL?\n lastValue: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param showLastValueTooltip Raw value.\n */\nconst parseShowLastValueTooltip = (\n showLastValueTooltip: unknown\n): StaticGraphProps[\"showLastValueTooltip\"] => {\n switch (showLastValueTooltip) {\n case \"default\":\n case \"enabled\":\n case \"disabled\":\n return showLastValueTooltip;\n default:\n return \"default\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function staticGraphPropsDecoder(\n data: AnyObject\n): StaticGraphProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.STATIC_GRAPH,\n imageSrc: data.imageSrc,\n showLastValueTooltip: parseShowLastValueTooltip(data.showLastValueTooltip),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n lastValue: notEmptyStringOr(data.lastValue, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class StaticGraph extends Item {\n protected createDomElement(): HTMLElement {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n const element = document.createElement(\"div\");\n element.className = \"static-graph\";\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n element.style.backgroundImage = `url(${imgSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Show last value in a tooltip.\n if (\n this.props.lastValue !== null &&\n this.props.showLastValueTooltip !== \"disabled\"\n ) {\n element.className = \"static-graph image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\"data-title\", this.props.lastValue);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n element.style.backgroundImage = `url(${imgSrc})`;\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type IconProps = {\n type: ItemType.ICON;\n image: string;\n imageSrc: string; // URL?\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the icon props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function iconPropsDecoder(data: AnyObject): IconProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n if (typeof data.image !== \"string\" || data.image.length === 0) {\n throw new TypeError(\"invalid image.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ICON,\n image: data.image,\n imageSrc: data.imageSrc,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Icon extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"icon \" + this.props.image;\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n }\n}\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\n","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject,\n WithAgentProps\n} from \"../lib/types\";\nimport { modulePropsDecoder, linkedVCPropsDecoder, t } from \"../lib\";\nimport Item, { itemBasePropsDecoder, ItemType, ItemProps } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport { faTrashAlt, faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ColorCloudProps = {\n type: ItemType.COLOR_CLOUD;\n color: string;\n defaultColor: string;\n colorRanges: {\n color: string;\n fromValue: number;\n toValue: number;\n }[];\n // TODO: Add the rest of the color cloud values?\n} & ItemProps &\n WithAgentProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function colorCloudPropsDecoder(\n data: AnyObject\n): ColorCloudProps | never {\n // TODO: Validate the color.\n if (typeof data.color !== \"string\" || data.color.length === 0) {\n throw new TypeError(\"invalid color.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.COLOR_CLOUD,\n color: data.color,\n defaultColor: data.defaultColor,\n colorRanges: data.colorRanges,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n/**\n * Class to add item to the Color cloud item form\n * This item consists of a label and a color type input color.\n * Element default color is stored in the color property\n */\nclass ColorInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group\";\n\n const colorLabel = document.createElement(\"label\");\n colorLabel.textContent = t(\"Default color\");\n\n generalDiv.appendChild(colorLabel);\n\n const ColorInput = document.createElement(\"input\");\n ColorInput.type = \"color\";\n ColorInput.required = true;\n\n ColorInput.value = `${this.currentData.defaultColor ||\n this.initialData.defaultColor ||\n \"#000000\"}`;\n\n ColorInput.addEventListener(\"change\", e => {\n this.updateData({\n defaultColor: (e.target as HTMLInputElement).value\n });\n });\n\n generalDiv.appendChild(ColorInput);\n\n return generalDiv;\n }\n}\n\ntype ColorRanges = ColorCloudProps[\"colorRanges\"];\ntype ColorRange = ColorRanges[0];\n\nclass RangesInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group div-ranges-input-group\";\n\n const rangesLabel = this.createLabel(\"Ranges\");\n\n generalDiv.appendChild(rangesLabel);\n\n const rangesControlsContainer = document.createElement(\"div\");\n const createdRangesContainer = document.createElement(\"div\");\n\n generalDiv.appendChild(createdRangesContainer);\n generalDiv.appendChild(rangesControlsContainer);\n\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n\n let buildRanges: (ranges: ColorRanges) => void;\n\n const handleRangeUpdatePartial = (index: number) => (\n range: ColorRange\n ): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n this.updateData({\n colorRanges: [\n ...colorRanges.slice(0, index),\n range,\n ...colorRanges.slice(index + 1)\n ]\n });\n };\n\n const handleDelete = (index: number) => () => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [\n ...colorRanges.slice(0, index),\n ...colorRanges.slice(index + 1)\n ];\n\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n const handleCreate = (range: ColorRange): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [...colorRanges, range];\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n buildRanges = ranges => {\n createdRangesContainer.innerHTML = \"\";\n ranges.forEach((colorRange, index) =>\n createdRangesContainer.appendChild(\n this.rangeContainer(\n colorRange,\n handleRangeUpdatePartial(index),\n handleDelete(index)\n )\n )\n );\n };\n\n buildRanges(colorRanges);\n\n rangesControlsContainer.appendChild(\n this.initialRangeContainer(handleCreate)\n );\n\n return generalDiv;\n }\n\n private initialRangeContainer(onCreate: (range: ColorRange) => void) {\n // TODO: Document\n const initialState = { color: \"#ffffff\" };\n\n let state: Partial = { ...initialState };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n };\n\n // User defined type guard.\n // Docs: https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards\n const isValid = (range: Partial): range is ColorRange =>\n typeof range.color !== \"undefined\" &&\n typeof range.toValue !== \"undefined\" &&\n typeof range.fromValue !== \"undefined\";\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(null, handleFromValue);\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(null, handleToValue);\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n initialState.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const createBtn = document.createElement(\"a\");\n createBtn.appendChild(\n fontAwesomeIcon(faPlusCircle, t(\"Create color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n\n const handleCreate = () => {\n if (isValid(state)) onCreate(state);\n state = initialState;\n rangesInputFromValue.value = `${state.fromValue || \"\"}`;\n rangesInputToValue.value = `${state.toValue || \"\"}`;\n rangesInputColor.value = `${state.color}`;\n };\n\n createBtn.addEventListener(\"click\", handleCreate);\n\n rangesContainer.appendChild(createBtn);\n\n return rangesContainer;\n }\n\n private rangeContainer(\n colorRange: ColorRange,\n onUpdate: (range: ColorRange) => void,\n onDelete: () => void\n ): HTMLDivElement {\n // TODO: Document\n const state = { ...colorRange };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n onUpdate({ ...state });\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n onUpdate({ ...state });\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n onUpdate({ ...state });\n };\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(\n colorRange.fromValue,\n handleFromValue\n );\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(\n colorRange.toValue,\n handleToValue\n );\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n colorRange.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const deleteBtn = document.createElement(\"a\");\n deleteBtn.appendChild(\n fontAwesomeIcon(faTrashAlt, t(\"Delete color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n deleteBtn.addEventListener(\"click\", onDelete);\n\n rangesContainer.appendChild(deleteBtn);\n\n return rangesContainer;\n }\n\n private createLabel(text: string): HTMLLabelElement {\n const label = document.createElement(\"label\");\n label.textContent = t(text);\n return label;\n }\n\n private createInputNumber(\n value: number | null,\n onUpdate: (value: number) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"number\";\n if (value !== null) input.value = `${value}`;\n input.addEventListener(\"change\", e => {\n const value = parseInt((e.target as HTMLInputElement).value);\n if (!isNaN(value)) onUpdate(value);\n });\n\n return input;\n }\n\n private createInputColor(\n value: string | null,\n onUpdate: (value: string) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"color\";\n if (value !== null) input.value = value;\n input.addEventListener(\"change\", e =>\n onUpdate((e.target as HTMLInputElement).value)\n );\n\n return input;\n }\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class ColorCloud extends Item {\n protected createDomElement(): HTMLElement {\n const container: HTMLDivElement = document.createElement(\"div\");\n container.className = \"color-cloud\";\n\n // Add the SVG.\n container.append(this.createSvgElement());\n\n return container;\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width);\n }\n\n public createSvgElement(): SVGSVGElement {\n const gradientId = `grad_${this.props.id}`;\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Defs.\n const defs = document.createElementNS(svgNS, \"defs\");\n // Radial gradient.\n const radialGradient = document.createElementNS(svgNS, \"radialGradient\");\n radialGradient.setAttribute(\"id\", gradientId);\n radialGradient.setAttribute(\"cx\", \"50%\");\n radialGradient.setAttribute(\"cy\", \"50%\");\n radialGradient.setAttribute(\"r\", \"50%\");\n radialGradient.setAttribute(\"fx\", \"50%\");\n radialGradient.setAttribute(\"fy\", \"50%\");\n // Stops.\n const stop0 = document.createElementNS(svgNS, \"stop\");\n stop0.setAttribute(\"offset\", \"0%\");\n stop0.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0.9`\n );\n const stop100 = document.createElementNS(svgNS, \"stop\");\n stop100.setAttribute(\"offset\", \"100%\");\n stop100.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0`\n );\n // Circle.\n const circle = document.createElementNS(svgNS, \"circle\");\n circle.setAttribute(\"fill\", `url(#${gradientId})`);\n circle.setAttribute(\"cx\", \"50%\");\n circle.setAttribute(\"cy\", \"50%\");\n circle.setAttribute(\"r\", \"50%\");\n\n // Append elements.\n radialGradient.append(stop0, stop100);\n defs.append(radialGradient);\n svg.append(defs, circle);\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n return svg;\n }\n\n /**\n * @override function to add or remove inputsGroups those that are not necessary.\n * Add to:\n * ColorInputGroup\n * RangesInputGroup\n */\n public getFormContainer(): FormContainer {\n return ColorCloud.getFormContainer(this.props);\n }\n\n public static getFormContainer(\n props: Partial\n ): FormContainer {\n const formContainer = super.getFormContainer(props);\n formContainer.removeInputGroup(\"label\");\n\n formContainer.addInputGroup(new ColorInputGroup(\"color-cloud\", props), 3);\n formContainer.addInputGroup(new RangesInputGroup(\"ranges-cloud\", props), 4);\n\n return formContainer;\n }\n}\n","import { AnyObject, Position, Size, ItemMeta } from \"../lib/types\";\nimport {\n parseIntOr,\n notEmptyStringOr,\n debounce,\n addMovementListener\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport TypedEvent, { Listener, Disposable } from \"../lib/TypedEvent\";\n\nexport interface LineProps extends ItemProps {\n // Overrided properties.\n type: number;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n startPosition: Position;\n endPosition: Position;\n lineWidth: number;\n color: string | null;\n viewportOffsetX: number;\n viewportOffsetY: number;\n labelEnd: string;\n labelStart: string;\n linkedEnd: number | null;\n linkedStart: number | null;\n labelEndWidth: number;\n labelEndHeight: number;\n labelStartWidth: number;\n labelStartHeight: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function linePropsDecoder(data: AnyObject): LineProps | never {\n const props: LineProps = {\n ...itemBasePropsDecoder({ ...data, width: 1, height: 1 }), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LINE_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Initialize Position & Size.\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // Custom properties.\n startPosition: {\n x: parseIntOr(data.startX, 0),\n y: parseIntOr(data.startY, 0)\n },\n endPosition: {\n x: parseIntOr(data.endX, 0),\n y: parseIntOr(data.endY, 0)\n },\n lineWidth: parseIntOr(data.lineWidth || data.borderWidth, 1),\n color: notEmptyStringOr(data.borderColor || data.color, null),\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n linkedEnd: data.linkedEnd,\n linkedStart: data.linkedStart,\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n\n /*\n * We need to enhance the props with the extracted size and position\n * of the box cause there are missing at the props update. A better\n * solution would be overriding the props setter to do it there, but\n * the language doesn't allow it while targetting ES5.\n * TODO: We need to figure out a more consistent solution.\n */\n\n return {\n ...props,\n // Enhance the props extracting the box size and position.\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...Line.extractBoxSizeAndPosition(props.startPosition, props.endPosition)\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface LineMovedEvent {\n item: Line;\n startPosition: LineProps[\"startPosition\"];\n endPosition: LineProps[\"endPosition\"];\n}\n\nexport default class Line extends Item {\n protected circleRadius = 8;\n // To control if the line movement is enabled.\n protected moveMode: boolean = false;\n // To control if the line is moving.\n protected isMoving: boolean = false;\n\n // Event manager for moved events.\n public readonly lineMovedEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n protected readonly lineMovedEventDisposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedStartPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const startPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeStartPositionMovement: Function | null = null;\n\n /**\n * Start the movement funtionality for the start position.\n * @param element Element to move inside its container.\n */\n protected initStartPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeStartPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n const startPosition = { x, y };\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n startPosition\n };\n\n // Run the end function.\n this.debouncedStartPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement fun\n */\n private stopStartPositionMovementListener(): void {\n if (this.removeStartPositionMovement) {\n this.removeStartPositionMovement();\n this.removeStartPositionMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedEndPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeEndPositionMovement: Function | null = null;\n\n /**\n * End the movement funtionality for the end position.\n * @param element Element to move inside its container.\n */\n protected initEndPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeEndPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n endPosition: { x, y }\n };\n\n // Run the end function.\n this.debouncedEndPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement function.\n */\n private stopEndPositionMovementListener(): void {\n if (this.removeEndPositionMovement) {\n this.removeEndPositionMovement();\n this.removeEndPositionMovement = null;\n }\n }\n\n /**\n * @override\n */\n public constructor(props: LineProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props,\n ...Line.extractBoxSizeAndPosition(\n props.startPosition,\n props.endPosition\n )\n },\n {\n ...meta\n },\n true\n );\n\n this.moveMode = meta.editMode;\n this.init();\n\n super.resizeElement(\n Math.max(props.width, props.viewportOffsetX),\n Math.max(props.height, props.viewportOffsetY)\n );\n }\n\n /**\n * Classic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n * @override Item.setProps\n */\n public setProps(newProps: LineProps) {\n super.setProps({\n ...newProps,\n ...Line.extractBoxSizeAndPosition(\n newProps.startPosition,\n newProps.endPosition\n )\n });\n }\n\n /**\n * Classic and protected version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newMetadata\n * @override Item.setMeta\n */\n public setMeta(newMetadata: ItemMeta) {\n this.moveMode = newMetadata.editMode;\n super.setMeta({\n ...newMetadata,\n lineMode: true\n });\n }\n\n /**\n * @override\n * To create the item's DOM representation.\n * @return Item.\n */\n protected createDomElement(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"line\";\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness,\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const line = document.createElementNS(svgNS, \"line\");\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n\n svg.append(line);\n element.append(svg);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n if (element.parentElement != null) {\n element.parentElement.style.cursor = \"default\";\n }\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n const svgs = element.getElementsByTagName(\"svg\");\n\n if (svgs.length > 0) {\n const svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n\n if (lines.length > 0) {\n const line = lines.item(0);\n\n if (line != null) {\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n }\n }\n }\n }\n\n if (this.moveMode) {\n let startCircle: HTMLElement = document.createElement(\"div\");\n let endCircle: HTMLElement = document.createElement(\"div\");\n\n if (this.isMoving) {\n const circlesStart = element.getElementsByClassName(\n \"visual-console-item-line-circle-start\"\n );\n if (circlesStart.length > 0) {\n const circle = circlesStart.item(0) as HTMLElement;\n if (circle) startCircle = circle;\n }\n const circlesEnd = element.getElementsByClassName(\n \"visual-console-item-line-circle-end\"\n );\n if (circlesEnd.length > 0) {\n const circle = circlesEnd.item(0) as HTMLElement;\n if (circle) endCircle = circle;\n }\n }\n\n startCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-start\"\n );\n startCircle.style.width = `${this.circleRadius * 2}px`;\n startCircle.style.height = `${this.circleRadius * 2}px`;\n startCircle.style.borderRadius = \"50%\";\n startCircle.style.backgroundColor = `${color}`;\n startCircle.style.position = \"absolute\";\n startCircle.style.left = `${x1 - this.circleRadius}px`;\n startCircle.style.top = `${y1 - this.circleRadius}px`;\n startCircle.style.cursor = `move`;\n\n endCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-end\"\n );\n endCircle.style.width = `${this.circleRadius * 2}px`;\n endCircle.style.height = `${this.circleRadius * 2}px`;\n endCircle.style.borderRadius = \"50%\";\n endCircle.style.backgroundColor = `${color}`;\n endCircle.style.position = \"absolute\";\n endCircle.style.left = `${x2 - this.circleRadius}px`;\n endCircle.style.top = `${y2 - this.circleRadius}px`;\n endCircle.style.cursor = `move`;\n\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n\n element.parentElement.appendChild(startCircle);\n element.parentElement.appendChild(endCircle);\n }\n\n // Init the movement listeners.\n this.initStartPositionMovementListener(\n startCircle,\n this.elementRef.parentElement as HTMLElement\n );\n this.initEndPositionMovementListener(\n endCircle,\n this.elementRef.parentElement as HTMLElement\n );\n } else if (!this.moveMode) {\n this.stopStartPositionMovementListener();\n // Remove circles.\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n }\n } else {\n this.stopStartPositionMovementListener();\n }\n }\n\n /**\n * Extract the size and position of the box from\n * the start and the finish of the line.\n * @param props Item properties.\n */\n public static extractBoxSizeAndPosition(\n startPosition: Position,\n endPosition: Position\n ): Size & Position {\n return {\n width: Math.abs(startPosition.x - endPosition.x),\n height: Math.abs(startPosition.y - endPosition.y),\n x: Math.min(startPosition.x, endPosition.x),\n y: Math.min(startPosition.y, endPosition.y)\n };\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n * @override item function\n */\n public move(x: number, y: number): void {\n super.moveElement(x, y);\n const startIsLeft =\n this.props.startPosition.x - this.props.endPosition.x <= 0;\n const startIsTop =\n this.props.startPosition.y - this.props.endPosition.y <= 0;\n\n const start = {\n x: startIsLeft ? x : this.props.width + x,\n y: startIsTop ? y : this.props.height + y\n };\n\n const end = {\n x: startIsLeft ? this.props.width + x : x,\n y: startIsTop ? this.props.height + y : y\n };\n\n this.props = {\n ...this.props,\n startPosition: start,\n endPosition: end\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override Item.remove\n */\n public remove(): void {\n // Clear the item's event listeners.\n this.stopStartPositionMovementListener();\n // Call the parent's .remove()\n super.remove();\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n *\n * @override Item.onMoved\n */\n public onLineMovementFinished(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.lineMovedEventDisposables.push(disposable);\n\n return disposable;\n }\n}\n","import { AnyObject, Position, ItemMeta } from \"../lib/types\";\nimport { debounce, notEmptyStringOr, parseIntOr } from \"../lib\";\nimport { ItemType } from \"../Item\";\nimport Line, { LineProps, linePropsDecoder } from \"./Line\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface NetworkLinkProps extends LineProps {\n // Overrided properties.\n type: number;\n labelStart: string;\n labelEnd: string;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function networkLinkPropsDecoder(\n data: AnyObject\n): NetworkLinkProps | never {\n return {\n ...linePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.NETWORK_LINK,\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n}\n\nexport default class NetworkLink extends Line {\n /**\n * @override\n */\n public constructor(props: NetworkLinkProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props\n },\n {\n ...meta\n }\n );\n\n this.render();\n }\n\n /**\n * @override\n */\n protected debouncedStartPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n\n const startPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n\n protected debouncedEndPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n\n protected updateDomElement(element: HTMLElement): void {\n super.updateDomElement(element);\n\n let {\n x, // Box x\n y, // Box y\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color, // Line color\n labelEnd,\n labelStart,\n labelEndWidth,\n labelEndHeight,\n labelStartWidth,\n labelStartHeight\n } = this.props;\n\n const svgs = element.getElementsByTagName(\"svg\");\n let line;\n let svg;\n\n if (svgs.length > 0) {\n svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n let groups = svg.getElementsByTagNameNS(svgNS, \"g\");\n while (groups.length > 0) {\n groups[0].remove();\n }\n\n if (lines.length > 0) {\n line = lines.item(0);\n }\n }\n } else {\n // No line or svg, no more actions are required.\n return;\n }\n\n if (svg == null || line == null) {\n // No more actionas are required.\n return;\n }\n\n // Font size and text adjustments.\n const fontsize = 10;\n const adjustment = 25;\n\n const lineX1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const lineX2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n let x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n let x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // Calculate angle (rotation).\n let rad = Math.atan2(lineY2 - lineY1, lineX2 - lineX1);\n let g = (rad * 180) / Math.PI;\n\n // Calculate effective 'text' box sizes.\n const fontheight = 25;\n if (labelStartWidth <= 0) {\n let lines = labelStart.split(\"
\");\n labelStartWidth = 0;\n lines.forEach(l => {\n if (l.length > labelStartWidth) {\n labelStartWidth = l.length * fontsize;\n }\n });\n if (labelStartHeight <= 0) {\n labelStartHeight = lines.length * fontheight;\n }\n }\n\n if (labelEndWidth <= 0) {\n let lines = labelEnd.split(\"
\");\n labelEndWidth = 0;\n lines.forEach(l => {\n if (l.length > labelEndWidth) {\n labelEndWidth = l.length * fontsize;\n }\n });\n if (labelEndHeight <= 0) {\n labelEndHeight = lines.length * fontheight;\n }\n }\n\n if (x1 < x2) {\n // x1 on left of x2.\n x1 += adjustment;\n x2 -= adjustment + labelEndWidth;\n }\n\n if (x1 > x2) {\n // x1 on right of x2.\n x1 -= adjustment + labelStartWidth;\n x2 += adjustment;\n }\n\n if (y1 < y2) {\n // y1 on y2.\n y1 += adjustment;\n y2 -= adjustment + labelEndHeight;\n }\n\n if (y1 > y2) {\n // y1 under y2.\n y1 -= adjustment + labelStartHeight;\n y2 += adjustment;\n }\n\n if (typeof color == \"undefined\") {\n color = \"#000\";\n }\n\n // Clean.\n if (element.parentElement !== null) {\n const labels = element.parentElement.getElementsByClassName(\n \"vc-item-nl-label\"\n );\n while (labels.length > 0) {\n const label = labels.item(0);\n if (label) label.remove();\n }\n\n const arrows = element.parentElement.getElementsByClassName(\n \"vc-item-nl-arrow\"\n );\n while (arrows.length > 0) {\n const arrow = arrows.item(0);\n if (arrow) arrow.remove();\n }\n }\n\n let arrowSize = lineWidth * 2;\n\n let arrowPosX = lineX1 + (lineX2 - lineX1) / 2 - arrowSize;\n let arrowPosY = lineY1 + (lineY2 - lineY1) / 2 - arrowSize;\n\n let arrowStart: HTMLElement = document.createElement(\"div\");\n arrowStart.classList.add(\"vc-item-nl-arrow\");\n arrowStart.style.position = \"absolute\";\n arrowStart.style.border = `${arrowSize}px solid transparent`;\n arrowStart.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowStart.style.left = `${arrowPosX}px`;\n arrowStart.style.top = `${arrowPosY}px`;\n arrowStart.style.transform = `rotate(${90 + g}deg)`;\n\n let arrowEnd: HTMLElement = document.createElement(\"div\");\n arrowEnd.classList.add(\"vc-item-nl-arrow\");\n arrowEnd.style.position = \"absolute\";\n arrowEnd.style.border = `${arrowSize}px solid transparent`;\n arrowEnd.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowEnd.style.left = `${arrowPosX}px`;\n arrowEnd.style.top = `${arrowPosY}px`;\n arrowEnd.style.transform = `rotate(${270 + g}deg)`;\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(arrowStart);\n element.parentElement.appendChild(arrowEnd);\n }\n\n if (labelStart != \"\") {\n let htmlLabelStart: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelStart.innerHTML = labelStart;\n htmlLabelStart.style.position = \"absolute\";\n htmlLabelStart.style.left = `${x1}px`;\n htmlLabelStart.style.top = `${y1}px`;\n htmlLabelStart.style.width = `${labelStartWidth}px`;\n htmlLabelStart.style.border = `2px solid ${color}`;\n\n htmlLabelStart.classList.add(\"vc-item-nl-label\", \"label-start\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelStart);\n }\n }\n\n if (labelEnd != \"\") {\n let htmlLabelEnd: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelEnd.innerHTML = labelEnd;\n htmlLabelEnd.style.position = \"absolute\";\n htmlLabelEnd.style.left = `${x2}px`;\n htmlLabelEnd.style.top = `${y2}px`;\n htmlLabelEnd.style.width = `${labelEndWidth}px`;\n htmlLabelEnd.style.border = `2px solid ${color}`;\n\n htmlLabelEnd.classList.add(\"vc-item-nl-label\", \"label-end\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelEnd);\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n stringIsEmpty,\n decodeBase64,\n parseBoolean,\n t\n} from \"../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../Item\";\n\nexport type GroupProps = {\n type: ItemType.GROUP_ITEM;\n groupId: number;\n imageSrc: string | null; // URL?\n statusImageSrc: string | null;\n showStatistics: boolean;\n html?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\nfunction extractHtml(data: AnyObject): string | null {\n if (!stringIsEmpty(data.html)) return data.html;\n if (!stringIsEmpty(data.encodedHtml)) return decodeBase64(data.encodedHtml);\n return null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the group props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function groupPropsDecoder(data: AnyObject): GroupProps | never {\n if (\n (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) &&\n data.encodedHtml === null\n ) {\n throw new TypeError(\"invalid image src.\");\n }\n if (parseIntOr(data.groupId, null) === null) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n const showStatistics = parseBoolean(data.showStatistics);\n const html = showStatistics ? extractHtml(data) : null;\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.GROUP_ITEM,\n groupId: parseInt(data.groupId),\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n showStatistics,\n html,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\nexport default class Group extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"group\";\n\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n element.innerHTML = \"\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n }\n}\n","import \"./styles.css\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n Size,\n ItemMeta\n} from \"../../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n parseBoolean,\n prefixedCssRules,\n notEmptyStringOr,\n humanDate,\n humanTime,\n t\n} from \"../../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../../Item\";\n\nexport type ClockProps = {\n type: ItemType.CLOCK;\n clockType: \"analogic\" | \"digital\";\n clockFormat: \"datetime\" | \"time\";\n clockTimezone: string;\n clockTimezoneOffset: number; // Offset of the timezone to UTC in seconds.\n showClockTimezone: boolean;\n color?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockType Raw value.\n */\nconst parseClockType = (clockType: unknown): ClockProps[\"clockType\"] => {\n switch (clockType) {\n case \"analogic\":\n case \"digital\":\n return clockType;\n default:\n return \"analogic\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockFormat Raw value.\n */\nconst parseClockFormat = (clockFormat: unknown): ClockProps[\"clockFormat\"] => {\n switch (clockFormat) {\n case \"datetime\":\n case \"time\":\n return clockFormat;\n default:\n return \"datetime\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the clock props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function clockPropsDecoder(data: AnyObject): ClockProps | never {\n if (\n typeof data.clockTimezone !== \"string\" ||\n data.clockTimezone.length === 0\n ) {\n throw new TypeError(\"invalid timezone.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.CLOCK,\n clockType: parseClockType(data.clockType),\n clockFormat: parseClockFormat(data.clockFormat),\n clockTimezone: data.clockTimezone,\n clockTimezoneOffset: parseIntOr(data.clockTimezoneOffset, 0),\n showClockTimezone: parseBoolean(data.showClockTimezone),\n color: notEmptyStringOr(data.color, null),\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Clock extends Item {\n public static readonly TICK_INTERVAL = 1000; // In ms.\n private intervalRef: number | null = null;\n\n public constructor(props: ClockProps, meta: ItemMeta) {\n // Call the superclass constructor.\n super(props, meta);\n\n /* The item is already loaded and inserted into the DOM.\n * The class properties are now initialized.\n * Now you can modify the item, add event handlers, timers, etc.\n */\n\n /* The use of the arrow function is important here. startTick will\n * use the function passed as an argument to call the global setInterval\n * function. The interval, timeout or event functions, among other, are\n * called into another execution loop and using a different context.\n * The arrow functions, unlike the classic functions, doesn't create\n * their own context (this), so their context at execution time will be\n * use the current context at the declaration time.\n * http://es6-features.org/#Lexicalthis\n */\n this.startTick(\n () => {\n // Replace the old element with the updated date.\n this.childElementRef.innerHTML = this.createClock().innerHTML;\n },\n /* The analogic clock doesn't need to tick,\n * but it will be refreshed every 20 seconds\n * to avoid a desync caused by page freezes.\n */\n this.props.clockType === \"analogic\" ? 20000 : Clock.TICK_INTERVAL\n );\n }\n\n /**\n * Wrap a window.clearInterval call.\n */\n private stopTick(): void {\n if (this.intervalRef !== null) {\n window.clearInterval(this.intervalRef);\n this.intervalRef = null;\n }\n }\n\n /**\n * Wrap a window.setInterval call.\n * @param handler Function to be called every time the interval\n * timer is reached.\n * @param interval Number in milliseconds for the interval timer.\n */\n private startTick(\n handler: TimerHandler,\n interval: number = Clock.TICK_INTERVAL\n ): void {\n this.stopTick();\n this.intervalRef = window.setInterval(handler, interval);\n }\n\n /**\n * Create a element which contains the DOM representation of the item.\n * @return DOM Element.\n * @override\n */\n protected createDomElement(): HTMLElement | never {\n return this.createClock();\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n this.props.width,\n this.props.height\n );\n\n if (this.props.clockType === \"digital\") {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(this.props.width, this.props.height);\n }\n element.classList.replace(\"analogic-clock\", \"digital-clock\");\n } else {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(newWidth, newHeight);\n }\n element.classList.replace(\"digital-clock\", \"analogic-clock\");\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override\n */\n public remove(): void {\n // Clear the interval.\n this.stopTick();\n // Call to the parent clean function.\n super.remove();\n }\n\n /**\n * @override Item.resizeElement\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n width,\n height\n );\n\n // Re-render the item to force it calculate a new font size.\n if (this.props.clockType === \"digital\") {\n super.resizeElement(width, height);\n // Replace the old element with the updated date.\n //this.childElementRef.innerHTML = this.createClock().innerHTML;\n } else {\n super.resizeElement(newWidth, newHeight);\n }\n }\n\n /**\n * Create a element which contains a representation of a clock.\n * It choose between the clock types.\n * @return DOM Element.\n * @throws Error.\n */\n private createClock(): HTMLElement | never {\n switch (this.props.clockType) {\n case \"analogic\":\n return this.createAnalogicClock();\n case \"digital\":\n return this.createDigitalClock();\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n\n /**\n * Create a element which contains a representation of an analogic clock.\n * @return DOM Element.\n */\n private createAnalogicClock(): HTMLElement {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const colors = {\n watchFace: \"#FFFFF0\",\n watchFaceBorder: \"#242124\",\n mark: \"#242124\",\n handDark: \"#242124\",\n handLight: \"#525252\",\n secondHand: \"#DC143C\"\n };\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 20; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * width) / 100;\n\n const div = document.createElement(\"div\");\n div.className = \"analogic-clock\";\n div.style.width = `${width}px`;\n div.style.height = `${height}px`;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Clock face.\n const clockFace = document.createElementNS(svgNS, \"g\");\n clockFace.setAttribute(\"class\", \"clockface\");\n const clockFaceBackground = document.createElementNS(svgNS, \"circle\");\n clockFaceBackground.setAttribute(\"cx\", \"50\");\n clockFaceBackground.setAttribute(\"cy\", \"50\");\n clockFaceBackground.setAttribute(\"r\", \"48\");\n clockFaceBackground.setAttribute(\"fill\", colors.watchFace);\n clockFaceBackground.setAttribute(\"stroke\", colors.watchFaceBorder);\n clockFaceBackground.setAttribute(\"stroke-width\", \"2\");\n clockFaceBackground.setAttribute(\"stroke-linecap\", \"round\");\n // Insert the clockface background into the clockface group.\n clockFace.append(clockFaceBackground);\n\n // Timezone complication.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const timezoneComplication = document.createElementNS(svgNS, \"text\");\n timezoneComplication.setAttribute(\"text-anchor\", \"middle\");\n timezoneComplication.setAttribute(\"font-size\", \"8\");\n timezoneComplication.setAttribute(\n \"transform\",\n \"translate(30 50) rotate(90)\" // Rotate to counter the clock rotation.\n );\n timezoneComplication.setAttribute(\"fill\", colors.mark);\n timezoneComplication.textContent = city;\n clockFace.append(timezoneComplication);\n }\n\n // Marks group.\n const marksGroup = document.createElementNS(svgNS, \"g\");\n marksGroup.setAttribute(\"class\", \"marks\");\n // Build the 12 hours mark.\n const mainMarkGroup = document.createElementNS(svgNS, \"g\");\n mainMarkGroup.setAttribute(\"class\", \"mark\");\n mainMarkGroup.setAttribute(\"transform\", \"translate(50 50)\");\n const mark1a = document.createElementNS(svgNS, \"line\");\n mark1a.setAttribute(\"x1\", \"36\");\n mark1a.setAttribute(\"y1\", \"0\");\n mark1a.setAttribute(\"x2\", \"46\");\n mark1a.setAttribute(\"y2\", \"0\");\n mark1a.setAttribute(\"stroke\", colors.mark);\n mark1a.setAttribute(\"stroke-width\", \"5\");\n const mark1b = document.createElementNS(svgNS, \"line\");\n mark1b.setAttribute(\"x1\", \"36\");\n mark1b.setAttribute(\"y1\", \"0\");\n mark1b.setAttribute(\"x2\", \"46\");\n mark1b.setAttribute(\"y2\", \"0\");\n mark1b.setAttribute(\"stroke\", colors.watchFace);\n mark1b.setAttribute(\"stroke-width\", \"1\");\n // Insert the 12 mark lines into their group.\n mainMarkGroup.append(mark1a, mark1b);\n // Insert the main mark into the marks group.\n marksGroup.append(mainMarkGroup);\n // Build the rest of the marks.\n for (let i = 1; i < 60; i++) {\n const mark = document.createElementNS(svgNS, \"line\");\n mark.setAttribute(\"y1\", \"0\");\n mark.setAttribute(\"y2\", \"0\");\n mark.setAttribute(\"stroke\", colors.mark);\n mark.setAttribute(\"transform\", `translate(50 50) rotate(${i * 6})`);\n\n if (i % 5 === 0) {\n mark.setAttribute(\"x1\", \"38\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", i % 15 === 0 ? \"2\" : \"1\");\n } else {\n mark.setAttribute(\"x1\", \"42\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", \"0.5\");\n }\n\n // Insert the mark into the marks group.\n marksGroup.append(mark);\n }\n\n /* Clock hands */\n\n // Hour hand.\n const hourHand = document.createElementNS(svgNS, \"g\");\n hourHand.setAttribute(\"class\", \"hour-hand\");\n hourHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const hourHandA = document.createElementNS(svgNS, \"line\");\n hourHandA.setAttribute(\"class\", \"hour-hand-a\");\n hourHandA.setAttribute(\"x1\", \"0\");\n hourHandA.setAttribute(\"y1\", \"0\");\n hourHandA.setAttribute(\"x2\", \"30\");\n hourHandA.setAttribute(\"y2\", \"0\");\n hourHandA.setAttribute(\"stroke\", colors.handLight);\n hourHandA.setAttribute(\"stroke-width\", \"4\");\n hourHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const hourHandB = document.createElementNS(svgNS, \"line\");\n hourHandB.setAttribute(\"class\", \"hour-hand-b\");\n hourHandB.setAttribute(\"x1\", \"0\");\n hourHandB.setAttribute(\"y1\", \"0\");\n hourHandB.setAttribute(\"x2\", \"29.9\");\n hourHandB.setAttribute(\"y2\", \"0\");\n hourHandB.setAttribute(\"stroke\", colors.handDark);\n hourHandB.setAttribute(\"stroke-width\", \"3.1\");\n hourHandB.setAttribute(\"stroke-linecap\", \"round\");\n // Append the elements to finish the hour hand.\n hourHand.append(hourHandA, hourHandB);\n\n // Minute hand.\n const minuteHand = document.createElementNS(svgNS, \"g\");\n minuteHand.setAttribute(\"class\", \"minute-hand\");\n minuteHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const minuteHandA = document.createElementNS(svgNS, \"line\");\n minuteHandA.setAttribute(\"class\", \"minute-hand-a\");\n minuteHandA.setAttribute(\"x1\", \"0\");\n minuteHandA.setAttribute(\"y1\", \"0\");\n minuteHandA.setAttribute(\"x2\", \"40\");\n minuteHandA.setAttribute(\"y2\", \"0\");\n minuteHandA.setAttribute(\"stroke\", colors.handLight);\n minuteHandA.setAttribute(\"stroke-width\", \"2\");\n minuteHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const minuteHandB = document.createElementNS(svgNS, \"line\");\n minuteHandB.setAttribute(\"class\", \"minute-hand-b\");\n minuteHandB.setAttribute(\"x1\", \"0\");\n minuteHandB.setAttribute(\"y1\", \"0\");\n minuteHandB.setAttribute(\"x2\", \"39.9\");\n minuteHandB.setAttribute(\"y2\", \"0\");\n minuteHandB.setAttribute(\"stroke\", colors.handDark);\n minuteHandB.setAttribute(\"stroke-width\", \"1.5\");\n minuteHandB.setAttribute(\"stroke-linecap\", \"round\");\n const minuteHandPin = document.createElementNS(svgNS, \"circle\");\n minuteHandPin.setAttribute(\"r\", \"3\");\n minuteHandPin.setAttribute(\"fill\", colors.handDark);\n // Append the elements to finish the minute hand.\n minuteHand.append(minuteHandA, minuteHandB, minuteHandPin);\n\n // Second hand.\n const secondHand = document.createElementNS(svgNS, \"g\");\n secondHand.setAttribute(\"class\", \"second-hand\");\n secondHand.setAttribute(\"transform\", \"translate(50 50)\");\n const secondHandBar = document.createElementNS(svgNS, \"line\");\n secondHandBar.setAttribute(\"x1\", \"0\");\n secondHandBar.setAttribute(\"y1\", \"0\");\n secondHandBar.setAttribute(\"x2\", \"46\");\n secondHandBar.setAttribute(\"y2\", \"0\");\n secondHandBar.setAttribute(\"stroke\", colors.secondHand);\n secondHandBar.setAttribute(\"stroke-width\", \"1\");\n secondHandBar.setAttribute(\"stroke-linecap\", \"round\");\n const secondHandPin = document.createElementNS(svgNS, \"circle\");\n secondHandPin.setAttribute(\"r\", \"2\");\n secondHandPin.setAttribute(\"fill\", colors.secondHand);\n // Append the elements to finish the second hand.\n secondHand.append(secondHandBar, secondHandPin);\n\n // Pin.\n const pin = document.createElementNS(svgNS, \"circle\");\n pin.setAttribute(\"cx\", \"50\");\n pin.setAttribute(\"cy\", \"50\");\n pin.setAttribute(\"r\", \"0.3\");\n pin.setAttribute(\"fill\", colors.handDark);\n\n // Get the hand angles.\n const date = this.getOriginDate();\n const seconds = date.getSeconds();\n const minutes = date.getMinutes();\n const hours = date.getHours();\n const secAngle = (360 / 60) * seconds;\n const minuteAngle = (360 / 60) * minutes + (360 / 60) * (seconds / 60);\n const hourAngle = (360 / 12) * hours + (360 / 12) * (minutes / 60);\n // Set the clock time by moving the hands.\n hourHand.setAttribute(\"transform\", `translate(50 50) rotate(${hourAngle})`);\n minuteHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${minuteAngle})`\n );\n secondHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${secAngle})`\n );\n\n // Build the clock\n svg.append(clockFace, marksGroup, hourHand, minuteHand, secondHand, pin);\n // Rotate the clock to its normal position.\n svg.setAttribute(\"transform\", \"rotate(-90)\");\n\n /* Add the animation declaration to the container.\n * Since the animation keyframes need to know the\n * start angle, this angle is dynamic (current time),\n * and we can't edit keyframes through javascript\n * safely and with backwards compatibility, we need\n * to inject it.\n */\n div.innerHTML = `\n \n `;\n // Add the clock to the container\n div.append(svg);\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n div.append(dateElem);\n }\n\n return div;\n }\n\n /**\n * Create a element which contains a representation of a digital clock.\n * @return DOM Element.\n */\n private createDigitalClock(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"digital-clock\";\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n let modified = width;\n if (height < width) {\n modified = height;\n }\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 35; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const tzFontSizeMultiplier = 6 / this.props.clockTimezone.length;\n const timeFontSize = (baseTimeFontSize * modified) / 100;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * modified) / 100;\n const tzFontSize = Math.min(\n (baseTimeFontSize * tzFontSizeMultiplier * modified) / 100,\n (width / 100) * 10\n );\n\n // Date calculated using the original timezone.\n const date = this.getOriginDate();\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n element.append(dateElem);\n }\n\n // Time.\n const timeElem: HTMLSpanElement = document.createElement(\"span\");\n timeElem.className = \"time\";\n timeElem.textContent = humanTime(date);\n timeElem.style.fontSize = `${timeFontSize}px`;\n if (this.props.color) timeElem.style.color = this.props.color;\n element.append(timeElem);\n\n // City name.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const tzElem: HTMLSpanElement = document.createElement(\"span\");\n tzElem.className = \"timezone\";\n tzElem.textContent = city;\n tzElem.style.fontSize = `${tzFontSize}px`;\n if (this.props.color) tzElem.style.color = this.props.color;\n element.append(tzElem);\n }\n\n return element;\n }\n\n /**\n * Generate the current date using the timezone offset stored into the properties.\n * @return The current date.\n */\n private getOriginDate(initialDate: Date | null = null): Date {\n const d = initialDate ? initialDate : new Date();\n const targetTZOffset = this.props.clockTimezoneOffset * 1000; // In ms.\n const localTZOffset = d.getTimezoneOffset() * 60 * 1000; // In ms.\n const utimestamp = d.getTime() + targetTZOffset + localTZOffset;\n\n return new Date(utimestamp);\n }\n\n /**\n * Extract a human readable city name from the timezone text.\n * @param timezone Timezone text.\n */\n public getHumanTimezone(timezone: string = this.props.clockTimezone): string {\n const [, city = \"\"] = timezone.split(\"/\");\n return city.replace(\"_\", \" \");\n }\n\n /**\n * Generate a element size using the current size and the default values.\n * @return The size.\n */\n private getElementSize(\n width: number = this.props.width,\n height: number = this.props.height\n ): Size {\n switch (this.props.clockType) {\n case \"analogic\": {\n let diameter = 100; // Default value.\n\n if (width > 0 && height > 0) {\n diameter = Math.min(width, height);\n } else if (width > 0) {\n diameter = width;\n } else if (height > 0) {\n diameter = height;\n }\n\n let extraHeigth = 0;\n if (this.props.clockFormat === \"datetime\") {\n extraHeigth = height / 8;\n }\n\n return {\n width: diameter,\n height: diameter + extraHeigth\n };\n }\n case \"digital\": {\n if (width > 0 && height > 0) {\n // The proportion of the clock should be (width = height / 2) aproximately.\n height = width / 2 < height ? width / 2 : height;\n } else if (width > 0) {\n height = width / 2;\n } else if (height > 0) {\n // The proportion of the clock should be (height * 2 = width) aproximately.\n width = height * 2;\n } else {\n width = 100; // Default value.\n height = 50; // Default value.\n }\n\n return {\n width,\n height\n };\n }\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport { parseIntOr, notEmptyStringOr, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\ninterface BoxProps extends ItemProps {\n // Overrided properties.\n readonly type: ItemType.BOX_ITEM;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n borderWidth: number;\n borderColor: string | null;\n fillColor: string | null;\n fillTransparent: boolean | null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function boxPropsDecoder(data: AnyObject): BoxProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BOX_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Custom properties.\n borderWidth: parseIntOr(data.borderWidth, 0),\n borderColor: notEmptyStringOr(data.borderColor, null),\n fillColor: notEmptyStringOr(data.fillColor, null),\n fillTransparent: data.fillTransparent\n };\n}\n\nexport default class Box extends Item {\n protected createDomElement(): HTMLElement {\n const box: HTMLDivElement = document.createElement(\"div\");\n box.className = \"box\";\n // To prevent this item to expand beyond its parent.\n box.style.boxSizing = \"border-box\";\n\n if (this.props.fillTransparent) {\n box.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n box.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n box.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n box.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n box.style.borderColor = this.props.borderColor;\n }\n }\n\n return box;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.fillTransparent) {\n element.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n element.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n element.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n element.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n element.style.borderColor = this.props.borderColor;\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type LabelProps = {\n type: ItemType.LABEL;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the label props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function labelPropsDecoder(data: AnyObject): LabelProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LABEL,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Label extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"label\";\n element.innerHTML = this.getLabelWithMacrosReplaced();\n\n return element;\n }\n\n /**\n * @override Item.createLabelDomElement\n * Create a new label for the visual console item.\n * @return Item label.\n */\n public createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n modulePropsDecoder,\n replaceMacros\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type SimpleValueProps = {\n type: ItemType.SIMPLE_VALUE;\n valueType: \"string\" | \"image\";\n value: string;\n} & (\n | {\n processValue: \"none\";\n }\n | {\n processValue: \"avg\" | \"max\" | \"min\";\n period: number;\n }\n) &\n ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw value type.\n * @param valueType Raw value.\n */\nconst parseValueType = (valueType: unknown): SimpleValueProps[\"valueType\"] => {\n switch (valueType) {\n case \"string\":\n case \"image\":\n return valueType;\n default:\n return \"string\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw process value.\n * @param processValue Raw value.\n */\nconst parseProcessValue = (\n processValue: unknown\n): SimpleValueProps[\"processValue\"] => {\n switch (processValue) {\n case \"none\":\n case \"avg\":\n case \"max\":\n case \"min\":\n return processValue;\n default:\n return \"none\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the simple value props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function simpleValuePropsDecoder(\n data: AnyObject\n): SimpleValueProps | never {\n if (typeof data.value !== \"string\" || data.value.length === 0) {\n throw new TypeError(\"invalid value\");\n }\n\n const processValue = parseProcessValue(data.processValue);\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SIMPLE_VALUE,\n valueType: parseValueType(data.valueType),\n value: data.value,\n ...(processValue === \"none\"\n ? { processValue }\n : { processValue, period: parseIntOr(data.period, 0) }), // Object spread. It will merge the properties of the two objects.\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class SimpleValue extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"simple-value\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n if (this.props.valueType === \"image\") {\n const img = document.createElement(\"img\");\n img.src = this.props.value;\n element.append(img);\n } else {\n // Add the value to the label and show it.\n let text = this.props.value;\n let label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n text = replaceMacros([{ macro: /\\(?_VALUE_\\)?/i, value: text }], label);\n }\n\n element.innerHTML = text;\n }\n\n return element;\n }\n\n /**\n * Generate a element size\n * using the current size and the default values.\n * @return The size.\n */ protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { arc as arcFactory } from \"d3-shape\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n notEmptyStringOr,\n parseIntOr,\n parseFloatOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type PercentileProps = {\n type: ItemType.PERCENTILE_BAR;\n percentileType:\n | \"progress-bar\"\n | \"bubble\"\n | \"circular-progress-bar\"\n | \"circular-progress-bar-alt\";\n valueType: \"percent\" | \"value\";\n minValue: number | null;\n maxValue: number | null;\n color: string | null;\n labelColor: string | null;\n value: number | null;\n unit: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw type value.\n * @param type Raw value.\n */\nfunction extractPercentileType(\n type: unknown\n): PercentileProps[\"percentileType\"] {\n switch (type) {\n case \"progress-bar\":\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n return type;\n default:\n case ItemType.PERCENTILE_BAR:\n return \"progress-bar\";\n case ItemType.PERCENTILE_BUBBLE:\n return \"bubble\";\n case ItemType.CIRCULAR_PROGRESS_BAR:\n return \"circular-progress-bar\";\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return \"circular-progress-bar-alt\";\n }\n}\n\n/**\n * Extract a valid enum value from a raw value type value.\n * @param type Raw value.\n */\nfunction extractValueType(valueType: unknown): PercentileProps[\"valueType\"] {\n switch (valueType) {\n case \"percent\":\n case \"value\":\n return valueType;\n default:\n return \"percent\";\n }\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the percentile props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function percentilePropsDecoder(\n data: AnyObject\n): PercentileProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.PERCENTILE_BAR,\n percentileType: extractPercentileType(data.percentileType || data.type),\n valueType: extractValueType(data.valueType),\n minValue: parseIntOr(data.minValue, null),\n maxValue: parseIntOr(data.maxValue, null),\n color: notEmptyStringOr(data.color, null),\n labelColor: notEmptyStringOr(data.labelColor, null),\n value: parseFloatOr(data.value, null),\n unit: notEmptyStringOr(data.unit, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class Percentile extends Item {\n protected createDomElement(): HTMLElement {\n const colors = {\n background: \"#000000\",\n progress: this.props.color || \"#F0F0F0\",\n text: this.props.labelColor || \"#444444\"\n };\n // Progress.\n const progress = this.getProgress();\n // Main element.\n const element = document.createElement(\"div\");\n\n var formatValue;\n if (this.props.value != null) {\n if (Intl) {\n formatValue = Intl.NumberFormat(\"en-EN\").format(this.props.value);\n } else {\n formatValue = this.props.value;\n }\n }\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n\n switch (this.props.percentileType) {\n case \"progress-bar\":\n {\n const backgroundRect = document.createElementNS(svgNS, \"rect\");\n backgroundRect.setAttribute(\"fill\", colors.background);\n backgroundRect.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundRect.setAttribute(\"width\", \"100%\");\n backgroundRect.setAttribute(\"height\", \"100%\");\n backgroundRect.setAttribute(\"rx\", \"5\");\n backgroundRect.setAttribute(\"ry\", \"5\");\n const progressRect = document.createElementNS(svgNS, \"rect\");\n progressRect.setAttribute(\"fill\", colors.progress);\n progressRect.setAttribute(\"fill-opacity\", \"1\");\n progressRect.setAttribute(\"width\", `${progress}%`);\n progressRect.setAttribute(\"height\", \"100%\");\n progressRect.setAttribute(\"rx\", \"5\");\n progressRect.setAttribute(\"ry\", \"5\");\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"15\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\n \"transform\",\n `translate(${this.props.width / 2}, 17.5)`\n );\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\") {\n text.style.fontSize = \"6pt\";\n\n text.textContent = this.props.unit\n ? `${formatValue} ${this.props.unit}`\n : `${formatValue}`;\n } else {\n text.textContent = `${progress}%`;\n }\n\n svg.setAttribute(\"width\", \"100%\");\n svg.setAttribute(\"height\", \"100%\");\n svg.append(backgroundRect, progressRect, text);\n }\n break;\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n {\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n if (this.props.percentileType === \"bubble\") {\n // Create and append the circles.\n const backgroundCircle = document.createElementNS(svgNS, \"circle\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"r\", \"50\");\n const progressCircle = document.createElementNS(svgNS, \"circle\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\"r\", `${progress / 2}`);\n\n svg.append(backgroundCircle, progressCircle);\n } else {\n // Create and append the circles.\n const arcProps = {\n innerRadius:\n this.props.percentileType === \"circular-progress-bar\" ? 30 : 0,\n outerRadius: 50,\n startAngle: 0,\n endAngle: Math.PI * 2\n };\n const arc = arcFactory();\n\n const backgroundCircle = document.createElementNS(svgNS, \"path\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"d\", `${arc(arcProps)}`);\n const progressCircle = document.createElementNS(svgNS, \"path\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\n \"d\",\n `${arc({\n ...arcProps,\n endAngle: arcProps.endAngle * (progress / 100)\n })}`\n );\n\n svg.append(backgroundCircle, progressCircle);\n }\n\n // Create and append the text.\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"16\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\" && this.props.value != null) {\n // Show value and unit in 1 (no unit) or 2 lines.\n if (this.props.unit && this.props.unit.length > 0) {\n const value = document.createElementNS(svgNS, \"tspan\");\n value.setAttribute(\"x\", \"0\");\n value.setAttribute(\"dy\", \"1em\");\n value.textContent = `${formatValue}`;\n value.style.fontSize = \"8pt\";\n const unit = document.createElementNS(svgNS, \"tspan\");\n unit.setAttribute(\"x\", \"0\");\n unit.setAttribute(\"dy\", \"1em\");\n unit.textContent = `${this.props.unit}`;\n unit.style.fontSize = \"8pt\";\n text.append(value, unit);\n text.setAttribute(\"transform\", \"translate(50 33)\");\n } else {\n text.textContent = `${formatValue}`;\n text.style.fontSize = \"8pt\";\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n } else {\n // Percentage.\n text.textContent = `${progress}%`;\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n\n svg.append(text);\n }\n break;\n }\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n if (svg !== null) element.append(svg);\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.meta.isBeingResized === false) {\n this.resizeElement(this.props.width, this.props.height);\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected resizeElement(width: number, height: number): void {\n if (this.props.percentileType === \"progress-bar\") {\n super.resizeElement(width, 35);\n } else {\n super.resizeElement(width, width);\n }\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(width, width);\n let height = this.props.maxValue || 0;\n if (this.props.percentileType === \"progress-bar\") {\n height = 35;\n }\n super.setProps({\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n });\n }\n\n private getProgress(): number {\n const minValue = this.props.minValue || 0;\n const maxValue = this.props.maxValue || 100;\n const value = this.props.value == null ? 0 : this.props.value;\n\n if (value <= minValue) return 0;\n else if (value >= maxValue) return 100;\n else return Math.trunc(((value - minValue) / (maxValue - minValue)) * 100);\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport {\n stringIsEmpty,\n notEmptyStringOr,\n decodeBase64,\n parseIntOr,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport {\n faCircleNotch,\n faExclamationCircle\n} from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ServiceProps = {\n type: ItemType.SERVICE;\n serviceId: number;\n imageSrc: string | null;\n statusImageSrc: string | null;\n encodedTitle: string | null;\n} & ItemProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the service props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function servicePropsDecoder(data: AnyObject): ServiceProps | never {\n if (data.imageSrc !== null) {\n if (\n typeof data.statusImageSrc !== \"string\" ||\n data.imageSrc.statusImageSrc === 0\n ) {\n throw new TypeError(\"invalid status image src.\");\n }\n } else {\n if (stringIsEmpty(data.encodedTitle)) {\n throw new TypeError(\"missing encode tittle content.\");\n }\n }\n\n if (parseIntOr(data.serviceId, null) === null) {\n throw new TypeError(\"invalid service id.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SERVICE,\n serviceId: data.serviceId,\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n encodedTitle: notEmptyStringOr(data.encodedTitle, null)\n };\n}\n\nexport default class Service extends Item {\n public createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"service\";\n\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n element.innerHTML = \"\";\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\n\nimport { modulePropsDecoder, parseIntOr, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type OdometerProps = {\n type: ItemType.ODOMETER;\n value: number;\n status: string;\n title: string | null;\n titleModule: string;\n titleColor: string;\n odometerType: string;\n thresholds: string | any;\n minMaxValue: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function odometerPropsDecoder(data: AnyObject): OdometerProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ODOMETER,\n value: parseIntOr(data.value, 0),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n titleColor: stringIsEmpty(data.titleColor) ? \"#3f3f3f\" : data.titleColor,\n title: stringIsEmpty(data.title) ? \"\" : data.title,\n titleModule: stringIsEmpty(data.titleModule) ? \"\" : data.titleModule,\n thresholds: stringIsEmpty(data.thresholds) ? \"\" : data.thresholds,\n minMaxValue: stringIsEmpty(data.minMaxValue) ? \"\" : data.minMaxValue,\n odometerType: stringIsEmpty(data.odometerType)\n ? \"percent\"\n : data.odometerType,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Odometer extends Item {\n protected createDomElement(): HTMLElement {\n let lineWarning = \"\";\n let lineWarning2 = \"\";\n let lineCritical = \"\";\n let lineCritical2 = \"\";\n\n if (this.props.thresholds !== \"\") {\n const thresholds = JSON.parse(this.props.thresholds);\n\n if (thresholds !== null) {\n if (thresholds.min_warning != 0 || thresholds.max_warning != 0) {\n lineWarning = this.getCoords(\n thresholds.min_warning,\n this.props.width / 2\n );\n if (thresholds.max_warning == 0) {\n lineWarning2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineWarning2 = this.getCoords(\n thresholds.max_warning,\n this.props.width / 2\n );\n }\n }\n\n if (thresholds.min_critical != 0 || thresholds.max_critical != 0) {\n lineCritical = this.getCoords(\n thresholds.min_critical,\n this.props.width / 2\n );\n if (thresholds.max_critical == 0) {\n lineCritical2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineCritical2 = this.getCoords(\n thresholds.max_critical,\n this.props.width / 2\n );\n }\n }\n }\n }\n\n let percent = \"\";\n let number;\n // Float\n if (\n Number(this.props.value) === this.props.value &&\n this.props.value % 1 !== 0\n ) {\n number = this.props.value.toFixed(1);\n } else {\n if (this.props.minMaxValue === \"\") {\n percent = \" %\";\n } else {\n percent = this.getSubfix(this.props.value);\n }\n number = new Intl.NumberFormat(\"es\", {\n maximumSignificantDigits: 4,\n maximumFractionDigits: 3\n }).format(this.props.value);\n }\n\n var numb = number.match(/\\d*\\.\\d/);\n if (numb !== null) {\n number = numb[0];\n }\n\n const rotate = this.getRotate(this.props.value);\n\n let backgroundColor = document.getElementById(\n \"visual-console-container\"\n ) as HTMLElement;\n\n if (backgroundColor === null) {\n backgroundColor = document.getElementById(\n `visual-console-container-${this.props.cellId}`\n ) as HTMLElement;\n }\n\n if (backgroundColor.style.backgroundColor == \"\") {\n backgroundColor.style.backgroundColor = \"#fff\";\n }\n\n const anchoB = this.props.width * 0.7;\n\n const element = document.createElement(\"div\");\n element.className = \"odometer\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Odometer container.\n const odometerContainer = document.createElement(\"div\");\n odometerContainer.className = \"odometer-container\";\n\n // Central semicircle.\n const odometerA = document.createElement(\"div\");\n odometerA.className = \"odometer-a\";\n odometerA.style.backgroundColor = `${backgroundColor.style.backgroundColor}`;\n\n // Semicircle rotating with the value.\n const odometerB = document.createElement(\"div\");\n odometerB.className = \"odometer-b\";\n odometerB.id = `odometerB-${this.props.id}`;\n odometerB.style.backgroundColor = `${this.props.status}`;\n\n // Dark semicircle.\n const odometerC = document.createElement(\"div\");\n odometerC.className = \"odometer-c\";\n\n // Green outer semicircle.\n const gaugeE = document.createElement(\"div\");\n gaugeE.className = \"odometer-d\";\n\n const SVG_NS = \"http://www.w3.org/2000/svg\";\n // Portion of threshold warning\n if (lineWarning != \"\") {\n const svgWarning = document.createElementNS(SVG_NS, \"svg\");\n svgWarning.setAttributeNS(null, \"width\", \"100%\");\n svgWarning.setAttributeNS(null, \"height\", \"100%\");\n svgWarning.setAttributeNS(null, \"style\", \"position:absolute;z-index:1\");\n const pathWarning = document.createElementNS(SVG_NS, \"path\");\n pathWarning.setAttributeNS(null, \"id\", `svgWarning-${this.props.id}`);\n pathWarning.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineWarning}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineWarning2}Z`\n );\n pathWarning.setAttributeNS(null, \"class\", \"svg_warning\");\n svgWarning.appendChild(pathWarning);\n odometerContainer.appendChild(svgWarning);\n }\n\n // Portion of threshold critical\n if (lineCritical != \"\") {\n const svgCritical = document.createElementNS(SVG_NS, \"svg\");\n svgCritical.setAttributeNS(null, \"width\", \"100%\");\n svgCritical.setAttributeNS(null, \"height\", \"100%\");\n svgCritical.setAttributeNS(null, \"style\", \"position:absolute;z-index:2\");\n const pathCritical = document.createElementNS(SVG_NS, \"path\");\n pathCritical.setAttributeNS(null, \"id\", `svgCritical-${this.props.id}`);\n pathCritical.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineCritical}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineCritical2}Z`\n );\n pathCritical.setAttributeNS(null, \"fill\", \"#E63C52\");\n svgCritical.appendChild(pathCritical);\n odometerContainer.appendChild(svgCritical);\n }\n\n // Text.\n const h1 = document.createElement(\"h1\");\n h1.innerText = number + percent;\n h1.style.fontSize = `${anchoB * 0.17}px`;\n h1.style.color = `${this.props.status}`;\n h1.style.lineHeight = \"0\";\n\n const h2 = document.createElement(\"h2\");\n if (this.props.title == \"\") {\n h2.textContent = this.truncateTitle(this.props.moduleName);\n } else {\n h2.textContent = this.truncateTitle(this.props.title);\n }\n h2.title = this.props.titleModule;\n h2.setAttribute(\"title\", this.props.titleModule);\n\n h2.style.fontSize = `${anchoB * 0.06}px`;\n h2.style.color = `${this.props.titleColor}`;\n h2.style.lineHeight = \"0\";\n\n let script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.onload = () => {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n };\n var url_pandora = window.location.pathname.split(\"/\")[1];\n script.src = `${document.dir}/${url_pandora}/include/javascript/pandora_alerts.js`;\n odometerA.appendChild(h1);\n odometerA.appendChild(h2);\n odometerContainer.appendChild(odometerB);\n odometerContainer.appendChild(odometerC);\n odometerContainer.appendChild(gaugeE);\n odometerContainer.appendChild(odometerA);\n odometerContainer.appendChild(script);\n element.appendChild(odometerContainer);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n\n let rotate = this.getRotate(this.props.value);\n\n const svgWarning = document.getElementById(`svgWarning-${this.props.id}`);\n if (svgWarning != null) {\n svgWarning.style.display = \"none\";\n }\n\n const svgCritical = document.getElementById(`svgCritical-${this.props.id}`);\n if (svgCritical != null) {\n svgCritical.style.display = \"none\";\n }\n\n setTimeout(() => {\n if (svgWarning != null) {\n svgWarning.style.display = \"block\";\n }\n\n if (svgCritical != null) {\n svgCritical.style.display = \"block\";\n }\n\n var odometerB = document.getElementById(`odometerB-${this.props.id}`);\n if (odometerB) {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n }\n }, 500);\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width / 2);\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(this.props.width);\n }\n\n private getRotate(value: number): number {\n let rotate = 0;\n if (this.props.minMaxValue === \"\") {\n rotate = value / 2 / 100;\n } else {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === value) {\n rotate = 0;\n } else if (minMax[\"max\"] === value) {\n rotate = 0.5;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n const valueMax = minMax[\"max\"] - value;\n rotate = (100 - (valueMax * 100) / limit) / 100 / 2;\n }\n }\n\n return rotate;\n }\n\n private getSubfix(value: number): string {\n let subfix = \"\";\n const length = (value + \"\").length;\n if (length > 3 && length <= 6) {\n subfix = \" K\";\n } else if (length > 6 && length <= 9) {\n subfix = \" M\";\n } else if (length > 9 && length <= 12) {\n subfix = \" G\";\n } else if (length > 12 && length <= 15) {\n subfix = \" T\";\n }\n\n return subfix;\n }\n\n private getCoords(percent: number, radio: number): string {\n if (this.props.minMaxValue !== \"\") {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === percent) {\n percent = 0;\n } else if (minMax[\"max\"] === percent || percent === 100) {\n percent = 100;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n let valueMax = minMax[\"max\"] - percent;\n percent = 100 - (valueMax * 100) / limit;\n }\n }\n\n percent = 180 - percent * 1.8;\n const x = radio + Math.cos((percent * Math.PI) / 180) * radio;\n const y = radio - Math.sin((percent * Math.PI) / 180) * radio;\n return `${x},${y}`;\n }\n\n private truncateTitle(title: any): string {\n if (title != null && title.length > 22) {\n const halfLength = title.length / 2;\n const diff = halfLength - 9;\n const stringBefore = title.substr(0, halfLength - diff);\n const stringAfter = title.substr(halfLength + diff);\n\n return `${stringBefore}...${stringAfter}`;\n } else {\n return title;\n }\n }\n}\n","import { AnyObject, Size, Position, WithModuleProps } from \"./lib/types\";\nimport {\n parseBoolean,\n sizePropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n itemMetaDecoder,\n t,\n ellipsize,\n debounce\n} from \"./lib\";\nimport Item, {\n ItemType,\n ItemProps,\n ItemClickEvent,\n ItemRemoveEvent,\n ItemMovedEvent,\n ItemResizedEvent,\n ItemSelectionChangedEvent\n} from \"./Item\";\nimport StaticGraph, { staticGraphPropsDecoder } from \"./items/StaticGraph\";\nimport Icon, { iconPropsDecoder } from \"./items/Icon\";\nimport ColorCloud, { colorCloudPropsDecoder } from \"./items/ColorCloud\";\nimport NetworkLink, { networkLinkPropsDecoder } from \"./items/NetworkLink\";\nimport Group, { groupPropsDecoder } from \"./items/Group\";\nimport Clock, { clockPropsDecoder } from \"./items/Clock\";\nimport Box, { boxPropsDecoder } from \"./items/Box\";\nimport Line, { linePropsDecoder, LineMovedEvent } from \"./items/Line\";\nimport Label, { labelPropsDecoder } from \"./items/Label\";\nimport SimpleValue, { simpleValuePropsDecoder } from \"./items/SimpleValue\";\nimport EventsHistory, {\n eventsHistoryPropsDecoder\n} from \"./items/EventsHistory\";\nimport Percentile, { percentilePropsDecoder } from \"./items/Percentile\";\nimport TypedEvent, { Disposable, Listener } from \"./lib/TypedEvent\";\nimport DonutGraph, { donutGraphPropsDecoder } from \"./items/DonutGraph\";\nimport BarsGraph, { barsGraphPropsDecoder } from \"./items/BarsGraph\";\nimport ModuleGraph, { moduleGraphPropsDecoder } from \"./items/ModuleGraph\";\nimport Service, { servicePropsDecoder } from \"./items/Service\";\nimport Odometer, { odometerPropsDecoder } from \"./items/Odometer\";\nimport BasicChart, { basicChartPropsDecoder } from \"./items/BasicChart\";\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction itemInstanceFrom(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n const meta = itemMetaDecoder(data);\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return new StaticGraph(staticGraphPropsDecoder(data), meta);\n case ItemType.MODULE_GRAPH:\n return new ModuleGraph(moduleGraphPropsDecoder(data), meta);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return new SimpleValue(simpleValuePropsDecoder(data), meta);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return new Percentile(percentilePropsDecoder(data), meta);\n case ItemType.LABEL:\n return new Label(labelPropsDecoder(data), meta);\n case ItemType.ICON:\n return new Icon(iconPropsDecoder(data), meta);\n case ItemType.SERVICE:\n return new Service(servicePropsDecoder(data), meta);\n case ItemType.GROUP_ITEM:\n return new Group(groupPropsDecoder(data), meta);\n case ItemType.BOX_ITEM:\n return new Box(boxPropsDecoder(data), meta);\n case ItemType.LINE_ITEM:\n return new Line(linePropsDecoder(data), meta);\n case ItemType.AUTO_SLA_GRAPH:\n return new EventsHistory(eventsHistoryPropsDecoder(data), meta);\n case ItemType.DONUT_GRAPH:\n return new DonutGraph(donutGraphPropsDecoder(data), meta);\n case ItemType.BARS_GRAPH:\n return new BarsGraph(barsGraphPropsDecoder(data), meta);\n case ItemType.CLOCK:\n return new Clock(clockPropsDecoder(data), meta);\n case ItemType.COLOR_CLOUD:\n return new ColorCloud(colorCloudPropsDecoder(data), meta);\n case ItemType.NETWORK_LINK:\n return new NetworkLink(networkLinkPropsDecoder(data), meta);\n case ItemType.ODOMETER:\n return new Odometer(odometerPropsDecoder(data), meta);\n case ItemType.BASIC_CHART:\n return new BasicChart(basicChartPropsDecoder(data), meta);\n default:\n throw new TypeError(\"item not found\");\n }\n}\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction decodeProps(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return staticGraphPropsDecoder(data);\n case ItemType.MODULE_GRAPH:\n return moduleGraphPropsDecoder(data);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return simpleValuePropsDecoder(data);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return percentilePropsDecoder(data);\n case ItemType.LABEL:\n return labelPropsDecoder(data);\n case ItemType.ICON:\n return iconPropsDecoder(data);\n case ItemType.SERVICE:\n return servicePropsDecoder(data);\n case ItemType.GROUP_ITEM:\n return groupPropsDecoder(data);\n case ItemType.BOX_ITEM:\n return boxPropsDecoder(data);\n case ItemType.LINE_ITEM:\n return linePropsDecoder(data);\n case ItemType.AUTO_SLA_GRAPH:\n return eventsHistoryPropsDecoder(data);\n case ItemType.DONUT_GRAPH:\n return donutGraphPropsDecoder(data);\n case ItemType.BARS_GRAPH:\n return barsGraphPropsDecoder(data);\n case ItemType.CLOCK:\n return clockPropsDecoder(data);\n case ItemType.COLOR_CLOUD:\n return colorCloudPropsDecoder(data);\n case ItemType.NETWORK_LINK:\n return networkLinkPropsDecoder(data);\n case ItemType.ODOMETER:\n return odometerPropsDecoder(data);\n case ItemType.BASIC_CHART:\n return basicChartPropsDecoder(data);\n default:\n throw new TypeError(\"decoder not found\");\n }\n}\n\n// Base properties.\nexport interface VisualConsoleProps extends Size {\n readonly id: number;\n name: string;\n groupId: number;\n backgroundURL: string | null; // URL?\n backgroundColor: string | null;\n isFavorite: boolean;\n relationLineWidth: number;\n maintenanceMode: MaintenanceModeInterface | null;\n gridSize: number | 10;\n gridSelected: boolean | false | false;\n}\n\nexport interface MaintenanceModeInterface {\n user: string;\n timestamp: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the Visual Console props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function visualConsolePropsDecoder(\n data: AnyObject\n): VisualConsoleProps | never {\n // Object destructuring: http://es6-features.org/#ObjectMatchingShorthandNotation\n const {\n id,\n name,\n groupId,\n backgroundURL,\n backgroundColor,\n isFavorite,\n relationLineWidth,\n maintenanceMode,\n gridSize,\n gridSelected\n } = data;\n\n if (id == null || isNaN(parseInt(id))) {\n throw new TypeError(\"invalid Id.\");\n }\n if (typeof name !== \"string\" || name.length === 0) {\n throw new TypeError(\"invalid name.\");\n }\n if (groupId == null || isNaN(parseInt(groupId))) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n return {\n id: parseInt(id),\n name,\n groupId: parseInt(groupId),\n backgroundURL: notEmptyStringOr(backgroundURL, null),\n backgroundColor: notEmptyStringOr(backgroundColor, null),\n isFavorite: parseBoolean(isFavorite),\n relationLineWidth: parseIntOr(relationLineWidth, 0),\n maintenanceMode: maintenanceMode,\n gridSize: parseIntOr(gridSize, 10),\n gridSelected: false,\n ...sizePropsDecoder(data)\n };\n}\n\nexport default class VisualConsole {\n // Reference to the DOM element which will contain the items.\n private readonly containerRef: HTMLElement;\n // Properties.\n private _props: VisualConsoleProps;\n // Visual Console Item instances by their Id.\n private elementsById: {\n [key: number]: Item;\n } = {};\n // Visual Console Item Ids.\n private elementIds: ItemProps[\"id\"][] = [];\n // Dictionary which store the created lines.\n private relations: {\n [key: string]: Line;\n } = {};\n\n // Dictionary which store the related items (by ID).\n private lineLinks: {\n [key: number]: { [key: number]: { [key: string]: number } };\n } = {};\n\n private lines: {\n [key: number]: { [key: string]: number };\n } = {};\n\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for move events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for line move events.\n private readonly lineMovedEventManager = new TypedEvent();\n // Event manager for resize events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for remove events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n /**\n * React to a click on an element.\n * @param e Event object.\n */\n private handleElementClick: (e: ItemClickEvent) => void = e => {\n this.clickEventManager.emit(e);\n // console.log(`Clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a double click on an element.\n * @param e Event object.\n */\n private handleElementDblClick: (e: ItemClickEvent) => void = e => {\n this.dblClickEventManager.emit(e);\n // console.log(`Double clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a movement on an element.\n * @param e Event object.\n */\n private handleElementMovement: (e: ItemMovedEvent) => void = e => {\n var type = e.item.itemProps.type;\n if (type !== 13 && type !== 21 && this.props.gridSelected === true) {\n var gridSize = this.props.gridSize;\n var positionX = e.newPosition.x;\n var positionY = e.newPosition.y;\n if (positionX % gridSize !== 0 || positionY % gridSize !== 0) {\n var x = Math.floor(positionX / gridSize) * gridSize;\n var y = Math.floor(positionY / gridSize) * gridSize;\n let elemntSelected = document.getElementById(\n \"item-selected-move\"\n ) as HTMLElement;\n elemntSelected.setAttribute(\n \"style\",\n \"top:\" + y + \"px !important; left:\" + x + \"px !important\"\n );\n return;\n }\n }\n // Move their relation lines.\n const itemId = e.item.props.id;\n const relations = this.getItemRelations(itemId);\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n }\n });\n\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, false);\n\n // console.log(`Moved element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a movement finished on an element.\n * @param e Event object.\n */\n private handleElementMovementFinished: (e: ItemMovedEvent) => void = e => {\n this.movedEventManager.emit(e);\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, true);\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Verifies if x,y are inside item coordinates.\n * @param x Coordinate X\n * @param y Coordinate Y\n * @param item ItemProps instance.\n */\n private coordinatesInItem(x: number, y: number, props: ItemProps) {\n if (\n props.type == ItemType.LINE_ITEM ||\n props.type == ItemType.NETWORK_LINK\n ) {\n return false;\n }\n\n if (\n x > props.x &&\n x < props.x + props.width &&\n y > props.y &&\n y < props.y + props.height\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * React to a line movement.\n * @param e Event object.\n */\n private handleLineElementMovementFinished: (\n e: LineMovedEvent\n ) => void = e => {\n // Update links.\n this.refreshLink(e.item);\n\n // Build line relationships between items and lines.\n this.lineMovedEventManager.emit(e);\n\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a resizement on an element.\n * @param e Event object.\n */\n private handleElementResizement: (e: ItemResizedEvent) => void = e => {\n // Move their relation lines.\n const item = e.item;\n const props = item.props;\n const itemId = props.id;\n const relations = this.getItemRelations(itemId);\n\n const position = {\n x: props.x,\n y: props.y\n };\n\n const meta = this.elementsById[itemId].meta;\n\n this.elementsById[itemId].meta = {\n ...meta,\n isUpdating: true\n };\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(position, item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(position, item)\n };\n }\n });\n\n // console.log(`Resized element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a finished resizement on an element.\n * @param e Event object.\n */\n private handleElementResizementFinished: (\n e: ItemResizedEvent\n ) => void = e => {\n this.resizedEventManager.emit(e);\n // console.log(`Resize fonished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Clear some element references.\n * @param e Event object.\n */\n private handleElementRemove: (e: ItemRemoveEvent) => void = e => {\n // Remove the element from the list and its relations.\n this.elementIds = this.elementIds.filter(id => id !== e.item.props.id);\n delete this.elementsById[e.item.props.id];\n this.clearRelations(e.item.props.id);\n };\n\n /**\n * React to element selection change\n * @param e Event object.\n */\n private handleElementSelectionChanged: (\n e: ItemSelectionChangedEvent\n ) => void = e => {\n if (this.elements.filter(item => item.meta.isSelected == true).length > 0) {\n e.selected = true;\n } else {\n e.selected = false;\n }\n this.selectionChangedEventManager.emit(e);\n };\n\n // TODO: Document\n private handleContainerClick: (e: MouseEvent) => void = () => {\n this.unSelectItems();\n };\n\n /**\n * Refresh link for given line.\n *\n * @param line Line.\n */\n protected refreshLink(l: Line) {\n let line: number = l.props.id;\n let itemAtStart = 0;\n let itemAtEnd = 0;\n\n try {\n for (let i in this.elementsById) {\n if (\n this.coordinatesInItem(\n l.props.startPosition.x,\n l.props.startPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtStart = parseInt(i);\n }\n\n if (\n this.coordinatesInItem(\n l.props.endPosition.x,\n l.props.endPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtEnd = parseInt(i);\n }\n }\n\n if (this.lineLinks == null) {\n this.lineLinks = {};\n }\n\n if (this.lines == null) {\n this.lines = {};\n }\n\n if (itemAtStart == line) {\n itemAtStart = 0;\n }\n\n if (itemAtEnd == line) {\n itemAtEnd = 0;\n }\n\n // Initialize line if not registered.\n if (this.lines[line] == null) {\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n }\n\n // Register 'start' side of the line.\n if (itemAtStart > 0) {\n // Initialize.\n if (this.lineLinks[itemAtStart] == null) {\n this.lineLinks[itemAtStart] = {};\n }\n\n // Assign.\n this.lineLinks[itemAtStart][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Register line if not exists prviously.\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"start\"] > 0) {\n this.lineLinks[this.lines[line][\"start\"]][line][\"start\"] = 0;\n this.lines[line][\"start\"] = 0;\n }\n }\n\n if (itemAtEnd > 0) {\n if (this.lineLinks[itemAtEnd] == null) {\n this.lineLinks[itemAtEnd] = {};\n }\n\n this.lineLinks[itemAtEnd][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"end\"] > 0) {\n this.lineLinks[this.lines[line][\"end\"]][line][\"end\"] = 0;\n this.lines[line][\"end\"] = 0;\n }\n }\n\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Cleanup.\n for (let i in this.lineLinks) {\n if (this.lineLinks[i][line]) {\n if (\n this.lineLinks[i][line].start == 0 &&\n this.lineLinks[i][line].end == 0\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n\n if (\n (this.lineLinks[i][line].start != itemAtStart &&\n this.lineLinks[i][line].end == itemAtEnd) ||\n (this.lineLinks[i][line].start == itemAtStart &&\n this.lineLinks[i][line].end != itemAtEnd)\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n /**\n * Updates lines connected to this item.\n *\n * @param item Item moved.\n * @param newPosition New location for item.\n * @param oldPosition Old location for item.\n * @param save Save to ajax or not.\n */\n protected updateLinesConnected(item: ItemProps, to: Position, save: boolean) {\n if (this.lineLinks[item.id] == null) {\n return;\n }\n\n Object.keys(this.lineLinks[item.id]).forEach(i => {\n let lineId = parseInt(i);\n const found = this.elementIds.indexOf(lineId);\n if (found === -1) {\n return;\n }\n let line = this.elementsById[lineId] as Line;\n if (line.props) {\n let startX = line.props.startPosition.x;\n let startY = line.props.startPosition.y;\n let endX = line.props.endPosition.x;\n let endY = line.props.endPosition.y;\n\n if (item.id == this.lineLinks[item.id][lineId][\"start\"]) {\n startX = to.x + item.width / 2;\n startY = to.y + item.height / 2;\n }\n\n if (item.id == this.lineLinks[item.id][lineId][\"end\"]) {\n endX = to.x + item.width / 2;\n endY = to.y + item.height / 2;\n }\n\n // Update line movement.\n this.updateElement({\n ...line.props,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n\n if (save) {\n let debouncedLinePositionSave = debounce(\n 500,\n (options: AnyObject) => {\n this.lineMovedEventManager.emit({\n item: options.line,\n startPosition: {\n x: options.startX,\n y: options.startY\n },\n endPosition: {\n x: options.endX,\n y: options.endY\n }\n });\n }\n );\n\n // Save line positon.\n debouncedLinePositionSave({\n line: line,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n }\n }\n });\n\n // Update parents...\n this.buildRelations(item.id, to.x + item.width / 2, to.y + item.height / 2);\n }\n\n public constructor(\n container: HTMLElement,\n props: AnyObject,\n items: AnyObject[]\n ) {\n this.containerRef = container;\n this._props = visualConsolePropsDecoder(props);\n\n // Force the first render.\n this.render();\n\n // Sort by id ASC\n items = items.sort(function(a, b) {\n if (a.id == null || b.id == null) return 0;\n else if (a.id > b.id) return 1;\n else return -1;\n });\n\n // Initialize the items.\n items.forEach(item => this.addElement(item, this));\n\n // Create lines.\n this.buildRelations();\n\n // Re-attach all connected lines if any.\n this.elements.forEach(item => {\n if (item instanceof Line) {\n this.refreshLink(item);\n }\n });\n\n this.containerRef.addEventListener(\"click\", this.handleContainerClick);\n }\n\n /**\n * Public accessor of the `elements` property.\n * @return Properties.\n */\n public get elements(): Item[] {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n return this.elementIds\n .map(id => this.elementsById[id])\n .filter(_ => _ != null) as Item[];\n }\n\n /**\n * To create a new element add it to the DOM.\n * @param item. Raw representation of the item's data.\n */\n public addElement(item: AnyObject, context: this = this) {\n try {\n const itemInstance = itemInstanceFrom(item);\n // Add the item to the list.\n context.elementsById[itemInstance.props.id] = itemInstance;\n context.elementIds.push(itemInstance.props.id);\n // Item event handlers.\n itemInstance.onRemove(context.handleElementRemove);\n itemInstance.onSelectionChanged(context.handleElementSelectionChanged);\n itemInstance.onClick(context.handleElementClick);\n itemInstance.onDblClick(context.handleElementDblClick);\n\n // TODO:Continue\n if (itemInstance instanceof Line) {\n itemInstance.onLineMovementFinished(\n context.handleLineElementMovementFinished\n );\n this.refreshLink(itemInstance);\n } else {\n itemInstance.onMoved(context.handleElementMovement);\n itemInstance.onMovementFinished(context.handleElementMovementFinished);\n itemInstance.onResized(context.handleElementResizement);\n itemInstance.onResizeFinished(context.handleElementResizementFinished);\n }\n\n // Add the item to the DOM.\n context.containerRef.append(itemInstance.elementRef);\n return itemInstance;\n } catch (error) {\n console.error(\"Error creating a new element:\", (error as Error).message);\n }\n return;\n }\n\n /**\n * Public setter of the `elements` property.\n * @param items.\n */\n public updateElements(items: AnyObject[]): void {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n const itemIds = items\n .map(item => item.id || null)\n .filter(id => id != null) as number[];\n // Get the elements we should delete.\n const deletedIds = this.elementIds.filter(id => itemIds.indexOf(id) < 0);\n // Delete the elements.\n deletedIds.forEach(id => {\n if (this.elementsById[id] != null) {\n this.elementsById[id].remove();\n delete this.elementsById[id];\n }\n });\n // Replace the element ids.\n this.elementIds = itemIds;\n\n // Initialize the items.\n items.forEach(item => {\n if (item.id) {\n if (this.elementsById[item.id] == null) {\n // New item.\n this.addElement(item);\n } else {\n // Update item.\n try {\n this.elementsById[item.id].props = decodeProps(item);\n } catch (error) {\n console.error(\n \"Error updating an element:\",\n (error as Error).message\n );\n }\n }\n }\n });\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public setter of the `element` property.\n * @param item.\n */\n public updateElement(item: AnyObject): void {\n // Update item.\n try {\n this.elementsById[item.id].props = {\n ...decodeProps(item)\n };\n } catch (error) {\n console.error(\"Error updating element:\", (error as Error).message);\n }\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): VisualConsoleProps {\n return { ...this._props }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: VisualConsoleProps) {\n const prevProps = this.props;\n // Update the internal props.\n this._props = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Re-render.\n this.render(prevProps);\n }\n\n /**\n * Recreate or update the HTMLElement which represents the Visual Console into the DOM.\n * @param prevProps If exists it will be used to only DOM updates instead of a full replace.\n */\n public render(prevProps: VisualConsoleProps | null = null): void {\n if (prevProps) {\n if (prevProps.backgroundURL !== this.props.backgroundURL) {\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n }\n if (this.props.backgroundColor != null)\n if (prevProps.backgroundColor !== this.props.backgroundColor) {\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n }\n if (this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n }\n } else {\n if (this.props.backgroundURL)\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n\n if (this.props.backgroundColor)\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n this.resizeElement(this.props.width, this.props.height);\n }\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n public sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM container.\n * @param width\n * @param height\n */\n public resizeElement(width: number, height: number): void {\n this.containerRef.style.width = `${width}px`;\n this.containerRef.style.height = `${height}px`;\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.props = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n this.disposables.forEach(d => d.dispose()); // Arrow function.\n this.elements.forEach(e => e.remove()); // Arrow function.\n this.elementsById = {};\n this.elementIds = [];\n // Clear relations.\n this.clearRelations();\n // Remove the click event listener.\n this.containerRef.removeEventListener(\"click\", this.handleContainerClick);\n // Clean container.\n this.containerRef.innerHTML = \"\";\n }\n\n /**\n * Create line elements which connect the elements with their parents.\n *\n * When itemId is being moved, overwrite position of the 'parent' or 'child'\n * endpoints of the line, using X and Y values.\n */\n public buildRelations(itemId?: number, x?: number, y?: number): void {\n // Clear relations.\n this.clearRelations();\n // Add relations.\n this.elements.forEach(item => {\n if (item.props.parentId !== null) {\n const parent = this.elementsById[item.props.parentId];\n const child = this.elementsById[item.props.id];\n\n if (parent && child) {\n if (itemId != undefined) {\n if (item.props.parentId == itemId) {\n // Update parent line position.\n this.addRelationLine(parent, child, x, y);\n } else if (item.props.id == itemId) {\n // Update child line position.\n this.addRelationLine(parent, child, undefined, undefined, x, y);\n } else {\n this.addRelationLine(parent, child);\n }\n } else {\n // No movements default behaviour.\n this.addRelationLine(parent, child);\n }\n }\n }\n });\n }\n\n /**\n * @param itemId Optional identifier of a parent or child item.\n * Remove the line elements which connect the elements with their parents.\n */\n private clearRelations(itemId?: number): void {\n if (itemId != null) {\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n } else {\n for (let key in this.relations) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n }\n\n /**\n * Retrieve the line element which represent the relation between items.\n * @param parentId Identifier of the parent item.\n * @param childId Itentifier of the child item.\n * @return The line element or nothing.\n */\n private getRelationLine(parentId: number, childId: number): Line | null {\n const identifier = `${parentId}|${childId}`;\n return this.relations[identifier] || null;\n }\n\n // TODO: Document.\n private getItemRelations(\n itemId: number\n ): {\n parentId: number;\n childId: number;\n line: Line;\n }[] {\n const itemRelations = [];\n\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n itemRelations.push({\n parentId,\n childId,\n line: this.relations[key]\n });\n }\n }\n\n return itemRelations;\n }\n\n /**\n * Retrieve the visual center of the item. It's ussually the center of the\n * content, like the label doesn't exist.\n * @param position Initial position.\n * @param element Element we want to use.\n */\n private getVisualCenter(\n position: Position,\n element: Item\n ): Position {\n let x = position.x + element.elementRef.clientWidth / 2;\n let y = position.y + element.elementRef.clientHeight / 2;\n if (\n typeof element.props.label !== \"undefined\" ||\n element.props.label !== \"\" ||\n element.props.label !== null\n ) {\n switch (element.props.labelPosition) {\n case \"up\":\n y =\n position.y +\n (element.elementRef.clientHeight +\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"down\":\n y =\n position.y +\n (element.elementRef.clientHeight -\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"right\":\n x =\n position.x +\n (element.elementRef.clientWidth -\n element.labelElementRef.clientWidth) /\n 2;\n break;\n case \"left\":\n x =\n position.x +\n (element.elementRef.clientWidth +\n element.labelElementRef.clientWidth) /\n 2;\n break;\n }\n }\n return { x, y };\n }\n\n /**\n * Add a new line item to represent a relation between the items.\n * @param parent Parent item.\n * @param child Child item.\n * @return Whether the line was added or not.\n */\n private addRelationLine(\n parent: Item,\n child: Item,\n parentX?: number,\n parentY?: number,\n childX?: number,\n childY?: number\n ): Line {\n const identifier = `${parent.props.id}|${child.props.id}`;\n if (this.relations[identifier] != null) {\n this.relations[identifier].remove();\n }\n\n // Get the items center.\n let { x: startX, y: startY } = this.getVisualCenter(parent.props, parent);\n let { x: endX, y: endY } = this.getVisualCenter(child.props, child);\n\n // Overwrite positions if needed (while moving it!).\n if (parentX != null) {\n startX = parentX;\n }\n\n if (parentY != null) {\n startY = parentY;\n }\n\n if (childX != null) {\n endX = childX;\n }\n\n if (childY != null) {\n endY = childY;\n }\n\n // Line inherits child element status.\n const line = new Line(\n linePropsDecoder({\n id: 0,\n type: ItemType.LINE_ITEM,\n startX,\n startY,\n endX,\n endY,\n width: 0,\n height: 0,\n lineWidth: this.props.relationLineWidth,\n color: notEmptyStringOr(child.props.colorStatus, \"#CCC\")\n }),\n itemMetaDecoder({\n receivedAt: new Date()\n })\n );\n // Save a reference to the line item.\n this.relations[identifier] = line;\n\n // Add the line to the DOM.\n line.elementRef.style.zIndex = \"0\";\n this.containerRef.append(line.elementRef);\n\n return line;\n }\n\n /**\n * Add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onItemClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onItemDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console line elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onLineMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the resizement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the elements selection change of the visual console .\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Enable the edition mode.\n */\n public enableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: true };\n });\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Disable the edition mode.\n */\n public disableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: false };\n });\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Enable the maintenance mode.\n */\n public enableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: true };\n });\n this.containerRef.classList.add(\"is-maintenance\");\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Disable the maintenance mode.\n */\n public disableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: false };\n });\n this.containerRef.classList.remove(\"is-maintenance\");\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Update the gridSize.\n */\n public updateGridSize(gridSize: string): void {\n this._props.gridSize = parseInt(gridSize);\n this.props.gridSize = parseInt(gridSize);\n }\n\n /**\n * Update the gridSize.\n */\n public updateGridSelected(gridSelected: boolean): void {\n this._props.gridSelected = gridSelected;\n this.props.gridSelected = gridSelected;\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(itemId: number, unique: boolean = false): void {\n if (unique) {\n this.elementIds.forEach(currentItemId => {\n const meta = this.elementsById[currentItemId].meta;\n\n if (currentItemId !== itemId && meta.isSelected) {\n this.elementsById[currentItemId].unSelectItem();\n } else if (currentItemId === itemId && !meta.isSelected) {\n this.elementsById[currentItemId].selectItem();\n }\n });\n } else if (this.elementsById[itemId]) {\n this.elementsById[itemId].selectItem();\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(itemId: number): void {\n if (this.elementsById[itemId]) {\n const meta = this.elementsById[itemId].meta;\n\n if (meta.isSelected) {\n this.elementsById[itemId].unSelectItem();\n }\n }\n }\n\n /**\n * Unselect all items.\n */\n public unSelectItems(): void {\n this.elementIds.forEach(itemId => {\n if (this.elementsById[itemId]) {\n this.elementsById[itemId].unSelectItem();\n }\n });\n }\n\n // TODO: Document.\n public static items = {\n [ItemType.STATIC_GRAPH]: StaticGraph,\n [ItemType.MODULE_GRAPH]: ModuleGraph,\n [ItemType.SIMPLE_VALUE]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MAX]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MIN]: SimpleValue,\n [ItemType.SIMPLE_VALUE_AVG]: SimpleValue,\n [ItemType.PERCENTILE_BAR]: Percentile,\n [ItemType.PERCENTILE_BUBBLE]: Percentile,\n [ItemType.CIRCULAR_PROGRESS_BAR]: Percentile,\n [ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR]: Percentile,\n [ItemType.LABEL]: Label,\n [ItemType.ICON]: Icon,\n [ItemType.SERVICE]: Service,\n [ItemType.GROUP_ITEM]: Group,\n [ItemType.BOX_ITEM]: Box,\n [ItemType.LINE_ITEM]: Line,\n [ItemType.AUTO_SLA_GRAPH]: EventsHistory,\n [ItemType.DONUT_GRAPH]: DonutGraph,\n [ItemType.BARS_GRAPH]: BarsGraph,\n [ItemType.CLOCK]: Clock,\n [ItemType.COLOR_CLOUD]: ColorCloud,\n [ItemType.NETWORK_LINK]: NetworkLink,\n [ItemType.ODOMETER]: Odometer,\n [ItemType.BASIC_CHART]: BasicChart\n };\n\n /**\n * Relying type item and srcimg and agent and module\n * name convert name item representative.\n *\n * @param item Instance item from extract name.\n *\n * @return Name item.\n */\n public static itemDescriptiveName(item: Item): string {\n let text: string;\n switch (item.props.type) {\n case ItemType.STATIC_GRAPH:\n text = `${t(\"Static graph\")} - ${(item as StaticGraph).props.imageSrc}`;\n break;\n case ItemType.MODULE_GRAPH:\n text = t(\"Module graph\");\n break;\n case ItemType.CLOCK:\n text = t(\"Clock\");\n break;\n case ItemType.BARS_GRAPH:\n text = t(\"Bars graph\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n text = t(\"Event history graph\");\n break;\n case ItemType.PERCENTILE_BAR:\n text = t(\"Percentile bar\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n text = t(\"Circular progress bar\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n text = t(\"Circular progress bar (interior)\");\n break;\n case ItemType.SIMPLE_VALUE:\n text = t(\"Simple Value\");\n break;\n case ItemType.LABEL:\n text = t(\"Label\");\n break;\n case ItemType.GROUP_ITEM:\n text = t(\"Group\");\n break;\n case ItemType.COLOR_CLOUD:\n text = t(\"Color cloud\");\n break;\n case ItemType.ICON:\n text = `${t(\"Icon\")} - ${(item as Icon).props.imageSrc}`;\n break;\n case ItemType.ODOMETER:\n text = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n text = t(\"BasicChart\");\n break;\n default:\n text = t(\"Item\");\n break;\n }\n\n const linkedAgentAndModuleProps = item.props as Partial;\n if (\n linkedAgentAndModuleProps.agentAlias != null &&\n linkedAgentAndModuleProps.moduleName != null\n ) {\n text += ` (${ellipsize(\n linkedAgentAndModuleProps.agentAlias,\n 18\n )} - ${ellipsize(linkedAgentAndModuleProps.moduleName, 25)})`;\n } else if (linkedAgentAndModuleProps.agentAlias != null) {\n text += ` (${ellipsize(linkedAgentAndModuleProps.agentAlias, 25)})`;\n }\n\n return text;\n }\n}\n","import TypedEvent, { Disposable, Listener } from \"./TypedEvent\";\n\ninterface Cancellable {\n cancel(): void;\n}\n\ntype AsyncTaskStatus = \"waiting\" | \"started\" | \"cancelled\" | \"finished\";\ntype AsyncTaskInitiator = (done: () => void) => Cancellable;\n\n/**\n * Defines an async task which can be started and cancelled.\n * It's possible to observe the status changes of the task.\n */\nclass AsyncTask {\n private readonly taskInitiator: AsyncTaskInitiator;\n private cancellable: Cancellable = { cancel: () => {} };\n private _status: AsyncTaskStatus = \"waiting\";\n\n // Event manager for status change events.\n private readonly statusChangeEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n public constructor(taskInitiator: AsyncTaskInitiator) {\n this.taskInitiator = taskInitiator;\n }\n\n /**\n * Public setter of the `status` property.\n * @param status.\n */\n public set status(status: AsyncTaskStatus) {\n this._status = status;\n this.statusChangeEventManager.emit(status);\n }\n\n /**\n * Public accessor of the `status` property.\n * @return status.\n */\n public get status() {\n return this._status;\n }\n\n /**\n * Start the async task.\n */\n public init(): void {\n this.cancellable = this.taskInitiator(() => {\n this.status = \"finished\";\n });\n this.status = \"started\";\n }\n\n /**\n * Cancel the async task.\n */\n public cancel(): void {\n this.cancellable.cancel();\n this.status = \"cancelled\";\n }\n\n /**\n * Add an event handler to the status change.\n * @param listener Function which is going to be executed when the status changes.\n */\n public onStatusChange(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.statusChangeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n}\n\n/**\n * Wrap an async task into another which will execute that task indefinitely\n * every time the tash finnish and the chosen period ends.\n * Will last until cancellation.\n *\n * @param task Async task to execute.\n * @param period Time in milliseconds to wait until the next async esecution.\n *\n * @return A new async task.\n */\nfunction asyncPeriodic(task: AsyncTask, period: number): AsyncTask {\n return new AsyncTask(() => {\n let ref: number | null = null;\n\n task.onStatusChange(status => {\n if (status === \"finished\") {\n ref = window.setTimeout(() => {\n task.init();\n }, period);\n }\n });\n\n task.init();\n\n return {\n cancel: () => {\n if (ref) clearTimeout(ref);\n task.cancel();\n }\n };\n });\n}\n\n/**\n * Manages a list of async tasks.\n */\nexport default class AsyncTaskManager {\n private tasks: { [identifier: string]: AsyncTask } = {};\n\n /**\n * Adds an async task to the manager.\n *\n * @param identifier Unique identifier.\n * @param taskInitiator Function to initialize the async task.\n * Should return a structure to cancel the task.\n * @param period Optional period to repeat the task indefinitely.\n */\n public add(\n identifier: string,\n taskInitiator: AsyncTaskInitiator,\n period: number = 0\n ): AsyncTask {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n\n const asyncTask =\n period > 0\n ? asyncPeriodic(new AsyncTask(taskInitiator), period)\n : new AsyncTask(taskInitiator);\n\n this.tasks[identifier] = asyncTask;\n\n return this.tasks[identifier];\n }\n\n /**\n * Starts an async task.\n *\n * @param identifier Unique identifier.\n */\n public init(identifier: string) {\n if (\n this.tasks[identifier] &&\n (this.tasks[identifier].status === \"waiting\" ||\n this.tasks[identifier].status === \"cancelled\" ||\n this.tasks[identifier].status === \"finished\")\n ) {\n this.tasks[identifier].init();\n }\n }\n\n /**\n * Cancel a running async task.\n *\n * @param identifier Unique identifier.\n */\n public cancel(identifier: string) {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n }\n}\n","/*\n * Useful resources.\n * http://es6-features.org/\n * http://exploringjs.com/es6\n * https://www.typescriptlang.org/\n */\n\nimport \"./main.css\"; // CSS import.\nimport VisualConsole from \"./VisualConsole\";\nimport * as Form from \"./Form\";\nimport AsyncTaskManager from \"./lib/AsyncTaskManager\";\n\n// Export the VisualConsole class to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole = VisualConsole;\n\n// Export the VisualConsole's Form classes to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole.Form = Form;\n\n// Export the AsyncTaskManager class to the global object.\n// eslint-disable-next-line\n(window as any).AsyncTaskManager = AsyncTaskManager;\n"],"names":["name","initialData","_name","currentData","dataRequestedEventManager","this","length","RangeError","_element","element","document","createElement","className","content","createContent","Array","forEach","appendChild","reset","updateData","data","requestData","identifier","params","done","emit","onDataRequested","listener","on","title","inputGroups","enabledInputGroups","inputGroupsByName","enabledInputGroupNames","submitEventManager","itemDataRequestedEventManager","handleItemDataRequested","reduce","prevVal","inputGroup","filter","getInputGroup","inputGroupName","addInputGroup","index","slice","removeInputGroup","getFormElement","type","form","id","addEventListener","e","preventDefault","nativeEvent","formContent","onSubmit","onInputGroupDataRequested","parseLabelPosition","labelPosition","itemBasePropsDecoder","isNaN","parseInt","TypeError","label","isLinkEnabled","link","isOnTop","parentId","aclGroupId","cacheExpiration","colorStatus","cellId","alertOutline","props","metadata","deferInit","elementRef","labelElementRef","childElementRef","clickEventManager","dblClickEventManager","movedEventManager","movementFinishedEventManager","resizedEventManager","resizeFinishedEventManager","removeEventManager","selectionChangedEventManager","disposables","debouncedMovementSave","x","y","_metadata","isBeingMoved","prevPosition","newPosition","positionChanged","move","item","removeMovement","debouncedResizementSave","width","height","isBeingResized","prevSize","newSize","sizeChanged","resize","removeResizement","itemProps","init","initMovementListener","meta","isSelected","moveElement","stopMovementListener","initResizementListener","getBoundingClientRect","labelWidth","labelHeight","resizeElement","stopResizementListener","createContainerDomElement","createLabelDomElement","createDomElement","changeLabelPosition","box","href","classList","add","style","left","top","unSelectItem","selectItem","editMode","stopPropagation","divParent","divSpinner","path","composedPath","containerId","undefined","includes","containerVC","getElementById","maintenanceMode","isFetching","isUpdating","getLabelWithMacrosReplaced","table","row","emptyRow1","emptyRow2","cell","innerHTML","textAlign","macro","value","Date","agentAlias","agentDescription","agentAddress","moduleName","moduleDescription","updateDomElement","newProps","setProps","prevProps","shouldBeUpdated","render","newMetadata","setMeta","prevMetadata","selected","prevMeta","oldLabelHtml","newLabelHtml","remove","container","attrs","attributes","i","nodeName","cloneIsNeeded","getAttributeNode","setAttributeNode","cloneNode","parentNode","replaceChild","setAttribute","div","querySelector","parentElement","removeChild","removeAttribute","disposable","dispose","ignored","position","flexDirection","tables","getElementsByTagName","onClick","push","onDblClick","onMoved","onMovementFinished","onResized","onResizeFinished","onRemove","onSelectionChanged","getFormContainer","VisualConsoleItem","t","titleItem","FormContainer","parseBarsGraphProps","backgroundColor","parseTypeGraph","typeGraph","barsGraphPropsDecoder","html","encodedHtml","gridColor","agentDisabled","moduleDisabled","opacity","scripts","src","setTimeout","eval","trim","basicChartPropsDecoder","period","parseFloat","status","moduleNameColor","header","textContent","color","number_format","moduleValue","legendP","margin","overviewGraphs","getElementsByClassName","insertBefore","firstChild","number","force_integer","unit","short_data","divisor","Math","round","aux_decimals","pad","Number","pos","abs","input","padding","str","donutGraphPropsDecoder","legendBackgroundColor","eventsHistoryPropsDecoder","maxTime","legendColor","flotText","aux","parseBackgroundType","backgroundType","parseGraphType","graphType","moduleGraphPropsDecoder","customGraphId","svgNS","iconDefinition","size","spin","pulse","iconName","icon","createElementNS","pathData","listeners","listenersOncer","off","once","callbackIndex","indexOf","splice","event","pipe","te","parseIntOr","defaultValue","parseFloatOr","stringIsEmpty","notEmptyStringOr","parseBoolean","leftPad","diffLength","substr","substring","repeatTimes","floor","restLength","newPad","positionPropsDecoder","sizePropsDecoder","modulePropsDecoder","moduleId","agentProps","agentId","agentName","metaconsoleId","agentPropsDecoder","linkedVCPropsDecoder","linkedLayoutStatusProps","linkedLayoutStatusType","weight","linkedLayoutStatusTypeWeight","warningThreshold","linkedLayoutStatusTypeWarningThreshold","criticalThreshold","linkedLayoutStatusTypeCriticalThreshold","linkedLayoutId","linkedLayoutNodeId","itemMetaDecoder","receivedAt","getTime","error","Error","isFromCache","lineMode","prefixedCssRules","ruleName","ruleValue","rule","decodeBase64","decodeURIComponent","escape","window","atob","humanDate","date","locale","Intl","DateTimeFormat","day","month","year","format","getDate","getMonth","getFullYear","humanTime","hours","getHours","minutes","getMinutes","seconds","getSeconds","replaceMacros","macros","text","acc","replace","throttle","delay","fn","last","now","args","debounce","timerRef","clearTimeout","getOffset","el","parent","offsetLeft","offsetTop","scrollLeft","scrollTop","offsetParent","addMovementListener","altContainer","isDraggable","draggable","lastX","lastY","lastMouseX","lastMouseY","mouseElementOffsetX","mouseElementOffsetY","containerBounds","containerOffset","containerTop","containerBottom","containerLeft","containerRight","elementBounds","borderWidth","getComputedStyle","borderFix","debouncedMovement","throttledMovement","handleMove","mouseX","pageX","mouseY","pageY","mouseDeltaX","mouseDeltaY","maxX","maxY","outOfBoundsLeft","outOfBoundsRight","outOfBoundsTop","outOfBoundsBottom","handleEnd","removeEventListener","body","userSelect","handleStart","button","elementOffset","offsetX","offsetY","addResizementListener","resizeDraggable","lastWidth","lastHeight","elementTop","elementLeft","debouncedResizement","throttledResizement","handleResize","ellipsize","max","ellipse","__webpack_module_cache__","__webpack_require__","cachedModule","exports","module","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","parseShowLastValueTooltip","showLastValueTooltip","staticGraphPropsDecoder","imageSrc","statusImageSrc","lastValue","imgSrc","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","Item","iconPropsDecoder","image","faPlusCircle","prefix","faTrashAlt","colorCloudPropsDecoder","defaultColor","colorRanges","generalDiv","colorLabel","ColorInput","required","target","InputGroup","rangesLabel","createLabel","rangesControlsContainer","createdRangesContainer","buildRanges","ranges","colorRange","rangeContainer","range","handleRangeUpdatePartial","newRanges","handleDelete","initialRangeContainer","onCreate","initialState","state","rangesContainer","rangesContainerFromValue","rangesLabelFromValue","rangesInputFromValue","createInputNumber","fromValue","rangesDivContainerToValue","rangesLabelToValue","rangesInputToValue","toValue","rangesDivContainerColor","rangesLabelColor","rangesInputColor","createInputColor","createBtn","onUpdate","onDelete","deleteBtn","append","createSvgElement","gradientId","svg","defs","radialGradient","stop0","stop100","circle","ColorCloud","formContainer","ColorInputGroup","RangesInputGroup","linePropsDecoder","startPosition","startX","startY","endPosition","endX","endY","lineWidth","borderColor","viewportOffsetX","viewportOffsetY","labelEnd","labelEndWidth","linkedEnd","linkedStart","labelEndHeight","labelStart","labelStartWidth","labelStartHeight","Line","extractBoxSizeAndPosition","circleRadius","moveMode","isMoving","lineMovedEventManager","TypedEvent","lineMovedEventDisposables","debouncedStartPositionMovementSave","removeStartPositionMovement","debouncedEndPositionMovementSave","removeEndPositionMovement","initStartPositionMovementListener","stopStartPositionMovementListener","initEndPositionMovementListener","stopEndPositionMovementListener","x1","y1","x2","y2","line","cursor","svgs","lines","getElementsByTagNameNS","startCircle","endCircle","circlesStart","circlesEnd","borderRadius","circles","min","startIsLeft","startIsTop","start","end","onLineMovementFinished","networkLinkPropsDecoder","groups","adjustment","lineX1","lineY1","lineX2","lineY2","g","atan2","PI","split","l","labels","arrows","arrow","arrowSize","arrowPosX","arrowPosY","arrowStart","border","borderBottom","transform","arrowEnd","htmlLabelStart","console","htmlLabelEnd","groupPropsDecoder","groupId","showStatistics","extractHtml","parseClockType","clockType","parseClockFormat","clockFormat","clockPropsDecoder","clockTimezone","clockTimezoneOffset","showClockTimezone","intervalRef","startTick","createClock","Clock","TICK_INTERVAL","stopTick","clearInterval","handler","interval","setInterval","getElementSize","newWidth","newHeight","createAnalogicClock","createDigitalClock","colors","dateFontSize","baseTimeFontSize","clockFace","clockFaceBackground","city","getHumanTimezone","timezoneComplication","marksGroup","mainMarkGroup","mark1a","mark1b","mark","hourHand","hourHandA","hourHandB","minuteHand","minuteHandA","minuteHandB","minuteHandPin","secondHand","secondHandBar","secondHandPin","pin","getOriginDate","secAngle","minuteAngle","hourAngle","join","dateElem","fontSize","modified","tzFontSizeMultiplier","timeFontSize","tzFontSize","timeElem","tzElem","initialDate","targetTZOffset","localTZOffset","getTimezoneOffset","utimestamp","timezone","diameter","extraHeigth","boxPropsDecoder","fillColor","fillTransparent","boxSizing","borderStyle","maxBorderWidth","labelPropsDecoder","parseValueType","valueType","simpleValuePropsDecoder","processValue","parseProcessValue","img","pi","tau","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_","constructor","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","sqrt","l01","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","toString","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","extractPercentileType","extractValueType","percentilePropsDecoder","percentileType","minValue","maxValue","labelColor","formatValue","background","progress","getProgress","NumberFormat","backgroundRect","progressRect","backgroundCircle","progressCircle","arcProps","cornerRadius","constant","padRadius","context","buffer","r0","apply","arguments","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","a","trunc","servicePropsDecoder","encodedTitle","serviceId","odometerPropsDecoder","titleColor","titleModule","thresholds","minMaxValue","odometerType","lineWarning","lineWarning2","lineCritical","lineCritical2","JSON","parse","min_warning","max_warning","getCoords","min_critical","max_critical","percent","toFixed","getSubfix","maximumSignificantDigits","maximumFractionDigits","numb","match","rotate","getRotate","anchoB","odometerContainer","odometerA","odometerB","odometerC","gaugeE","SVG_NS","svgWarning","setAttributeNS","pathWarning","svgCritical","pathCritical","h1","innerText","lineHeight","h2","truncateTitle","script","onload","url_pandora","location","pathname","dir","display","minMax","limit","subfix","radio","halfLength","diff","stringBefore","stringAfter","decodeProps","items","elementsById","elementIds","relations","lineLinks","handleElementClick","handleElementDblClick","handleElementMovement","gridSelected","gridSize","positionX","positionY","itemId","getItemRelations","relation","getVisualCenter","childId","updateLinesConnected","handleElementMovementFinished","handleLineElementMovementFinished","refreshLink","handleElementResizement","handleElementResizementFinished","handleElementRemove","clearRelations","handleElementSelectionChanged","elements","handleContainerClick","unSelectItems","containerRef","_props","backgroundURL","isFavorite","relationLineWidth","visualConsolePropsDecoder","sort","b","addElement","buildRelations","coordinatesInItem","itemAtStart","itemAtEnd","keys","to","save","lineId","updateElement","options","debouncedLinePositionSave","map","itemInstance","ModuleGraph","EventsHistory","DonutGraph","BarsGraph","BasicChart","itemInstanceFrom","message","updateElements","itemIds","child","addRelationLine","ids","getRelationLine","itemRelations","clientWidth","clientHeight","parentX","parentY","childX","childY","zIndex","onItemClick","onItemDblClick","onItemMoved","onLineMoved","onItemResized","onItemSelectionChanged","enableEditMode","disableEditMode","enableMaintenanceMode","disableMaintenanceMode","updateGridSize","updateGridSelected","unique","currentItemId","itemDescriptiveName","linkedAgentAndModuleProps","taskInitiator","cancellable","cancel","_status","statusChangeEventManager","onStatusChange","tasks","asyncTask","task","AsyncTask","ref","asyncPeriodic","VisualConsole","Form","AsyncTaskManager"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"vc.main.min.js","mappings":"wjBAWA,aAUE,WAAmBA,EAAcC,GATzB,KAAAC,MAAgB,GAGd,KAAAC,YAA6B,CAAC,EAEvB,KAAAC,0BAA4B,IAAI,IAK/CC,KAAKL,KAAOA,EACZK,KAAKJ,YAAcA,CACrB,CA+DF,OA7DE,sBAAW,mBAAI,C,IAKf,WACE,OAAOI,KAAKH,KACd,E,IAPA,SAAgBF,GACd,GAAoB,IAAhBA,EAAKM,OAAc,MAAM,IAAIC,WAAW,cAC5CF,KAAKH,MAAQF,CACf,E,gCAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYK,KAAKF,YACnB,E,gCAEA,sBAAW,sBAAO,C,IAAlB,WACE,GAAqB,MAAjBE,KAAKG,SAAkB,CACzB,IAAMC,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,kCAA2BP,KAAKL,MAEpD,IAAMa,EAAUR,KAAKS,gBAEjBD,aAAmBE,MACrBF,EAAQG,QAAQP,EAAQQ,aAExBR,EAAQQ,YAAYJ,GAGtBR,KAAKG,SAAWC,C,CAGlB,OAAOJ,KAAKG,QACd,E,gCAEO,YAAAU,MAAP,WACEb,KAAKF,YAAc,CAAC,CACtB,EAEU,YAAAgB,WAAV,SAAqBC,GACnBf,KAAKF,YAAc,EAAH,KACXE,KAAKF,aACLiB,EAGP,EAEU,YAAAC,YAAV,SACEC,EACAC,EACAC,GAEAnB,KAAKD,0BAA0BqB,KAAK,CAAEH,WAAU,EAAEC,OAAM,EAAEC,KAAI,GAChE,EAEO,YAAAE,gBAAP,SACEC,GAEA,OAAOtB,KAAKD,0BAA0BwB,GAAGD,EAC3C,EAKF,EA5EA,GAoFA,aAYE,WACEE,EACAC,EACAC,QADA,IAAAD,IAAAA,EAAA,SACA,IAAAC,IAAAA,EAAA,IAHF,WAVQ,KAAAC,kBAAoD,CAAC,EACrD,KAAAC,uBAAmC,GAE1B,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,8BAAgC,IAAI,IAG7C,KAAAC,wBAA0B/B,KAAK8B,8BAA8BV,KAOnEpB,KAAKwB,MAAQA,EAETC,EAAYxB,OAAS,IACvBD,KAAK2B,kBAAoBF,EAAYO,QAAO,SAACC,EAASC,GAIpD,OAFAA,EAAWb,gBAAgB,EAAKU,yBAChCE,EAAQC,EAAWvC,MAAQuC,EACpBD,CACT,GAAGjC,KAAK2B,oBAGND,EAAmBzB,OAAS,IAC9BD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,GAC3BF,EAAmBS,QACpB,SAAAxC,GAAQ,OAAgC,MAAhC,EAAKgC,kBAAkBhC,EAAvB,KACT,GAGP,CA0HF,OAxHS,YAAAyC,cAAP,SAAqBC,GACnB,OAAOrC,KAAK2B,kBAAkBU,IAAmB,IACnD,EAEO,YAAAC,cAAP,SACEJ,EACAK,GAuCA,YAvCA,IAAAA,IAAAA,EAAA,MAGAL,EAAWb,gBAAgBrB,KAAK+B,yBAChC/B,KAAK2B,kBAAkBO,EAAWvC,MAAQuC,EAG1ClC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAASuC,EAAWvC,IAApB,IAGI,OAAV4C,EACEA,GAAS,EACXvC,KAAK4B,uBAAyB,EAAH,CACzBM,EAAWvC,MACRK,KAAK4B,wBAAsB,GAEvBW,GAASvC,KAAK4B,uBAAuB3B,OAC9CD,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAGbK,KAAK4B,uBAAyB,EAAH,OAEtB5B,KAAK4B,uBAAuBY,MAAM,EAAGD,IAAM,IAE9CL,EAAWvC,O,GAERK,KAAK4B,uBAAuBY,MAAMD,IAAM,GAI/CvC,KAAK4B,uBAAyB,EAAH,KACtB5B,KAAK4B,wBAAsB,IAC9BM,EAAWvC,O,GAIRK,IACT,EAEO,YAAAyC,iBAAP,SAAwBJ,GAOtB,cANOrC,KAAK2B,kBAAkBU,GAE9BrC,KAAK4B,uBAAyB5B,KAAK4B,uBAAuBO,QACxD,SAAAxC,GAAQ,OAAAA,IAAS0C,CAAT,IAGHrC,IACT,EAEO,YAAA0C,eAAP,SACEC,GADF,gBACE,IAAAA,IAAAA,EAAA,UAEA,IAAMC,EAAOvC,SAASC,cAAc,QACpCsC,EAAKC,GAAK,8BACVD,EAAKrC,UAAY,8BACjBqC,EAAKE,iBAAiB,UAAU,SAAAC,GAC9BA,EAAEC,iBACF,EAAKnB,mBAAmBT,KAAK,CAC3B6B,YAAaF,EACbhC,KAAM,EAAKa,uBAAuBI,QAAO,SAACjB,EAAMpB,GAO9C,OANI,EAAKgC,kBAAkBhC,KACzBoB,EAAO,EAAH,KACCA,GACA,EAAKY,kBAAkBhC,GAAMoB,OAG7BA,CACT,GAAG,CAAC,IAER,IAEA,IAAMmC,EAAc7C,SAASC,cAAc,OAW3C,OAVA4C,EAAY3C,UAAY,eAExBP,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzBuD,EAAYtC,YAAY,EAAKe,kBAAkBhC,GAAMS,QAEzD,IAEAwC,EAAKhC,YAAYsC,GAEVN,CACT,EAEO,YAAA/B,MAAP,sBACEb,KAAK4B,uBAAuBjB,SAAQ,SAAAhB,GAC9B,EAAKgC,kBAAkBhC,IACzB,EAAKgC,kBAAkBhC,GAAMkB,OAEjC,GACF,EAWO,YAAAsC,SAAP,SAAgB7B,GACd,OAAOtB,KAAK6B,mBAAmBN,GAAGD,EACpC,EAEO,YAAA8B,0BAAP,SACE9B,GAEA,OAAOtB,KAAK8B,8BAA8BP,GAAGD,EAC/C,EACF,EA9JA,E,sSCOM+B,EAAqB,SACzBC,GAEA,OAAQA,GACN,IAAK,KACL,IAAK,QACL,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,EAAqBxC,GACnC,GAAe,MAAXA,EAAK8B,IAAcW,MAAMC,SAAS1C,EAAK8B,KACzC,MAAM,IAAIa,UAAU,eAEtB,GAAiB,MAAb3C,EAAK4B,MAAgBa,MAAMC,SAAS1C,EAAK4B,OAC3C,MAAM,IAAIe,UAAU,iBAGtB,OAAO,EAAP,GACEb,GAAIY,SAAS1C,EAAK8B,IAClBF,KAAMc,SAAS1C,EAAK4B,MACpBgB,OAAO,QAAiB5C,EAAK4C,MAAO,MACpCL,cAAeD,EAAmBtC,EAAKuC,eACvCM,eAAe,QAAa7C,EAAK6C,eACjCC,MAAM,QAAiB9C,EAAK8C,KAAM,MAClCC,SAAS,QAAa/C,EAAK+C,SAC3BC,UAAU,QAAWhD,EAAKgD,SAAU,MACpCC,YAAY,QAAWjD,EAAKiD,WAAY,MACxCC,iBAAiB,QAAWlD,EAAKkD,gBAAiB,MAClDC,aAAa,QAAiBnD,EAAKmD,YAAa,QAChDC,QAAQ,QAAWpD,EAAKoD,OAAQ,MAChCC,cAAc,QAAarD,EAAKqD,gBAC7B,QAAiBrD,KACjB,QAAqBA,GAE5B,CAyFA,iBAwOE,WACEsD,EACAC,EACAC,QAAA,IAAAA,IAAAA,GAAA,GAHF,WAlOO,KAAAC,WAA0BnE,SAASC,cAAc,OACjD,KAAAmE,gBAA+BpE,SAASC,cAAc,OAEnD,KAAAoE,gBAA+BrE,SAASC,cAAc,OAE/C,KAAAqE,kBAAoB,IAAI,IAExB,KAAAC,qBAAuB,IAAI,IAE3B,KAAAC,kBAAoB,IAAI,IAExB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,oBAAsB,IAAI,IAE1B,KAAAC,2BAA6B,IAAI,IAIjC,KAAAC,mBAAqB,IAAI,IAEzB,KAAAC,6BAA+B,IAAI,IAInC,KAAAC,YAA4B,GAIrC,KAAAC,uBAAwB,QAC9B,KACA,SAACC,EAAkBC,GAGjB,EAAKC,UAAUC,cAAe,EAE9B,IAAMC,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAClBL,EAAGA,EACHC,EAAGA,GAGA,EAAKK,gBAAgBF,EAAcC,KAGxC,EAAKE,KAAKP,EAAGC,GAEb,EAAKR,6BAA6B1D,KAAK,CACrCyE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAEjB,IAIM,KAAAI,eAAkC,KA2DlC,KAAAC,yBAA0B,QAChC,KACA,SAACC,EAAsBC,GAGrB,EAAKV,UAAUW,gBAAiB,EAEhC,IAAMC,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKE,OAAON,EAAOC,GAGnB,EAAKjB,2BAA2B5D,KAAK,CACnCyE,KAAM,EACNM,SAAUA,EACVC,QAASA,IAEb,IAIM,KAAAG,iBAAoC,KAmF1CvG,KAAKwG,UAAYnC,EACjBrE,KAAKuF,UAAYjB,EAEZC,GAAWvE,KAAKyG,MACvB,CAszBF,OA99BU,YAAAC,qBAAR,SAA6BtG,GAA7B,WAGuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAKb3C,KAAK8F,gBAAiB,QACpB1F,GACA,SAACiF,EAAkBC,GACjB,IAAMG,EAAe,CACnBJ,EAAG,EAAKhB,MAAMgB,EACdC,EAAG,EAAKjB,MAAMiB,GAEVI,EAAc,CAAEL,EAAC,EAAEC,EAAC,GAE1B,EAAKqB,KAAO,EAAH,KACJ,EAAKA,MAAI,CACZC,YAAY,IAGT,EAAKjB,gBAAgBF,EAAcC,KAIxC,EAAKH,UAAUC,cAAe,EAE9B,EAAKqB,YAAYxB,EAAGC,GAEpB,EAAKT,kBAAkBzD,KAAK,CAC1ByE,KAAM,EACNJ,aAAcA,EACdC,YAAaA,IAGf,EAAKN,sBAAsBC,EAAGC,GAChC,IAEJ,EAIQ,YAAAwB,qBAAR,WACM9G,KAAK8F,iBACP9F,KAAK8F,iBACL9F,KAAK8F,eAAiB,KAE1B,EAsCU,YAAAiB,uBAAV,SAAiC3G,GAAjC,WAEuB,IAAnBJ,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAIb3C,KAAKuG,kBAAmB,QACtBnG,GACA,SAAC4F,EAAsBC,GAQrB,GALA,EAAKV,UAAUW,gBAAiB,EAK5B,EAAK7B,MAAMV,OAAS,EAAKU,MAAMV,MAAM1D,OAAS,EAAG,CAC7C,MAGF,EAAKwE,gBAAgBuC,wBAFhBC,EAAU,QACTC,EAAW,SAGrB,OAAQ,EAAK7C,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2C,GAAUiB,EACV,MACF,IAAK,OACL,IAAK,QACHlB,GAASiB,E,CAKf,IAAMd,EAAW,CACfH,MAAO,EAAK3B,MAAM2B,MAClBC,OAAQ,EAAK5B,MAAM4B,QAEfG,EAAU,CAAEJ,MAAK,EAAEC,OAAM,GAE1B,EAAKI,YAAYF,EAAUC,KAGhC,EAAKe,cAAcnB,EAAOC,GAE1B,EAAKlB,oBAAoB3D,KAAK,CAC5ByE,KAAM,EACNM,SAAQ,EACRC,QAAO,IAGT,EAAKL,wBAAwBC,EAAOC,GACtC,IAEJ,EAIQ,YAAAmB,uBAAR,WACMpH,KAAKuG,mBACPvG,KAAKuG,mBACLvG,KAAKuG,iBAAmB,KAE5B,EAsBU,YAAAE,KAAV,WAOEzG,KAAKwE,WAAaxE,KAAKqH,4BACvBrH,KAAKyE,gBAAkBzE,KAAKsH,wBAO5BtH,KAAK0E,gBAAkB1E,KAAKuH,mBAG5BvH,KAAKwE,WAAW5D,YAAYZ,KAAK0E,iBACjC1E,KAAKwE,WAAW5D,YAAYZ,KAAKyE,iBAGjCzE,KAAKmH,cAAcnH,KAAKwG,UAAUR,MAAOhG,KAAKwG,UAAUP,QAExDjG,KAAKwH,oBAAoBxH,KAAKwG,UAAUlD,cAC1C,EAMQ,YAAA+D,0BAAR,eACMI,EADN,OAmGE,OAjGIzH,KAAKqE,MAAMT,eACb6D,EAAMpH,SAASC,cAAc,KAEzBN,KAAKqE,MAAMR,KACb4D,EAAIC,KAAO1H,KAAKqE,MAAMR,KAEtB4D,EAAIlH,UAAY,uBAGlBkH,EAAMpH,SAASC,cAAc,QACzBC,UAAY,qBAGlBkH,EAAIE,UAAUC,IAAI,uBACd5H,KAAKqE,MAAMP,SACb2D,EAAIE,UAAUC,IAAI,aAEpBH,EAAII,MAAMC,KAAO,UAAG9H,KAAKqE,MAAMgB,EAAC,MAChCoC,EAAII,MAAME,IAAM,UAAG/H,KAAKqE,MAAMiB,EAAC,MAE3BtF,KAAKqE,MAAMD,cACbqD,EAAIE,UAAUC,IAAI,sBAIpBH,EAAI3E,iBAAiB,YAAY,SAAAC,GAC1B,EAAK4D,KAAKnB,cAAiB,EAAKmB,KAAKT,iBACxC,EAAK8B,eACL,EAAKC,aAEL,EAAKrD,qBAAqBxD,KAAK,CAC7ByE,KAAM,EACN5C,YAAaF,IAGnB,IACA0E,EAAI3E,iBAAiB,SAAS,SAAAC,GAC5B,GAAI,EAAK4D,KAAKuB,SACZnF,EAAEC,iBACFD,EAAEoF,uBAGF,GAAI,EAAK3B,UAAU5C,eAAwC,MAAvB,EAAK4C,UAAU3C,KAAc,CAC/D,IAAMuE,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GAGtB,IAFA,IAAIC,EAAOvF,EAAEwF,eACTC,EAAc,2BACTjG,EAAQ,EAAGA,EAAQ+F,EAAKrI,OAAQsC,IAAS,CAChD,IAAMnC,EAAUkI,EAAK/F,GACrB,GACgBkG,MAAdrI,EAAQyC,IACM,MAAdzC,EAAQyC,IACM,IAAdzC,EAAQyC,KAEiC,IAArCzC,EAAQyC,GAAG6F,SAASF,GAAuB,CAC7CA,EAAcpI,EAAQyC,GACtB,K,EAKN,IAAM8F,EAActI,SAASuI,eAAeJ,GACzB,MAAfG,IACFA,EAAYhB,UAAUC,IAAI,eAC1Be,EAAY/H,YAAYwH,G,CAKzB,EAAKzB,KAAKnB,cAAiB,EAAKmB,KAAKT,gBACxC,EAAKvB,kBAAkBvD,KAAK,CAC1ByE,KAAM,EACN5C,YAAaF,GAGnB,IAGI/C,KAAK2G,KAAKkC,iBACZpB,EAAIE,UAAUC,IAAI,kBAEhB5H,KAAK2G,KAAKuB,UACZT,EAAIE,UAAUC,IAAI,cAEhB5H,KAAK2G,KAAKmC,YACZrB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKoC,YACZtB,EAAIE,UAAUC,IAAI,eAEhB5H,KAAK2G,KAAKC,YACZa,EAAIE,UAAUC,IAAI,eAGbH,CACT,EAMU,YAAAH,sBAAV,WACE,IAAMlH,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,4BAEpB,IAAMoD,EAAQ3D,KAAKgJ,6BACnB,GAAIrF,EAAM1D,OAAS,EAAG,CAEpB,IAAMgJ,EAAQ5I,SAASC,cAAc,SAC/B4I,EAAM7I,SAASC,cAAc,MAC7B6I,EAAY9I,SAASC,cAAc,MACnC8I,EAAY/I,SAASC,cAAc,MACnC+I,EAAOhJ,SAASC,cAAc,MAUpC,OARA+I,EAAKC,UAAY3F,EACjBuF,EAAItI,YAAYyI,GAChBJ,EAAMrI,YAAYuI,GAClBF,EAAMrI,YAAYsI,GAClBD,EAAMrI,YAAYwI,GAClBH,EAAMpB,MAAM0B,UAAY,SAGhBvJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAM/C7F,EAAQQ,YAAYqI,E,CAGtB,OAAO7I,CACT,EAKU,YAAA4I,2BAAV,WAEE,IAAM3E,EAAQrE,KAAKqE,MAEnB,OAAO,QACL,CACE,CACEmF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,SACPC,OAAO,QAAU,IAAIC,OAEvB,CACEF,MAAO,UACPC,MAA2B,MAApBpF,EAAMsF,WAAqBtF,EAAMsF,WAAa,IAEvD,CACEH,MAAO,qBACPC,MAAiC,MAA1BpF,EAAMuF,iBAA2BvF,EAAMuF,iBAAmB,IAEnE,CACEJ,MAAO,YACPC,MAA6B,MAAtBpF,EAAMwF,aAAuBxF,EAAMwF,aAAe,IAE3D,CACEL,MAAO,WACPC,MAA2B,MAApBpF,EAAMyF,WAAqBzF,EAAMyF,WAAa,IAEvD,CACEN,MAAO,sBACPC,MAAkC,MAA3BpF,EAAM0F,kBAA4B1F,EAAM0F,kBAAoB,KAGvE/J,KAAKqE,MAAMV,OAAS,GAExB,EAMU,YAAAqG,iBAAV,SAA2B5J,GACzBA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,EAAP,GAAYtJ,KAAKwG,UACnB,E,IAQA,SAAiByD,GACfjK,KAAKkK,SAASD,EAChB,E,gCAOU,YAAAC,SAAV,SAAmBD,GACjB,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAKwG,UAAYyD,EAKbjK,KAAKoK,gBAAgBD,EAAWF,IAClCjK,KAAKqK,OAAOF,EAAWnK,KAAKuF,UAChC,EAMA,sBAAW,mBAAI,C,IAAf,WACE,OAAO,EAAP,GAAYvF,KAAKuF,UACnB,E,IAQA,SAAgB+E,GACdtK,KAAKuK,QAAQD,EACf,E,gCAOO,YAAAC,QAAP,SAAeD,GACb,IAAME,EAAexK,KAAKuF,UAE1BvF,KAAKuF,UAAY,EAAH,KACTiF,GACAF,QAI+B,IAA3BA,EAAY1D,YACnB4D,EAAa5D,aAAe0D,EAAY1D,YAExC5G,KAAKkF,6BAA6B9D,KAAK,CACrCqJ,SAAUH,EAAY1D,aAQ1B5G,KAAKqK,OAAOrK,KAAKwG,UAAWgE,EAC9B,EAcU,YAAAJ,gBAAV,SAA0BD,EAAkBF,GAC1C,OAAOE,IAAcF,CACvB,EAMO,YAAAI,OAAP,SACEF,EACAO,QADA,IAAAP,IAAAA,EAAA,WACA,IAAAO,IAAAA,EAAA,MAEIP,GACFnK,KAAKgK,iBAAiBhK,KAAK0E,iBAGxByF,IAAanK,KAAK2F,gBAAgBwE,EAAWnK,KAAKqE,SACrDrE,KAAK6G,YAAY7G,KAAKqE,MAAMgB,EAAGrF,KAAKqE,MAAMiB,GAExC6E,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI1ByF,IAAanK,KAAKqG,YAAY8D,EAAWnK,KAAKqE,SACjDrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAE9CkE,GACkB,IAAlBA,EAAUxH,MACQ,IAAlBwH,EAAUxH,MAEV3C,KAAKgK,iBAAiBhK,KAAK0E,kBAI/B,IAAMiG,EAAe3K,KAAKyE,gBAAgB6E,UACpCsB,EAAe5K,KAAKsH,wBAAwBgC,UAiBlD,GAhBIqB,IAAiBC,IACnB5K,KAAKyE,gBAAgB6E,UAAYsB,GAG9BT,GAAaA,EAAU7G,gBAAkBtD,KAAKqE,MAAMf,eACvDtD,KAAKwH,oBAAoBxH,KAAKqE,MAAMf,eAGjC6G,GAAaA,EAAUrG,UAAY9D,KAAKqE,MAAMP,UAC7C9D,KAAKqE,MAAMP,QACb9D,KAAKwE,WAAWmD,UAAUC,IAAI,aAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,cAIjCV,GAAaA,EAAUvG,gBAAkB5D,KAAKqE,MAAMT,cAAe,CACrE,IAAMkH,EAAY9K,KAAKqH,4BAEvByD,EAAUxB,UAAYtJ,KAAKwE,WAAW8E,UAGtC,IADA,IAAMyB,EAAQ/K,KAAKwE,WAAWwG,WACrBC,EAAI,EAAGA,EAAIF,EAAM9K,OAAQgL,IAChC,GAA0B,OAAtBF,EAAME,GAAGC,SAAmB,CAC9B,IAAIC,EAAgBnL,KAAKwE,WAAW4G,iBAClCL,EAAME,GAAGC,UAEW,OAAlBC,GACFL,EAAUO,iBAAsBF,EAAcG,Y,CAKjB,OAA/BtL,KAAKwE,WAAW+G,YAClBvL,KAAKwE,WAAW+G,WAAWC,aAAaV,EAAW9K,KAAKwE,YAI1DxE,KAAKwE,WAAasG,C,CAuCpB,GAnCEX,GACAnK,KAAKqE,MAAMT,eACXuG,EAAUtG,OAAS7D,KAAKqE,MAAMR,MAEN,OAApB7D,KAAKqE,MAAMR,MACb7D,KAAKwE,WAAWiH,aAAa,OAAQzL,KAAKqE,MAAMR,MAMjD6G,GACDA,EAASxC,WAAalI,KAAK2G,KAAKuB,UAChCwC,EAAS7B,kBAAoB7I,KAAK2G,KAAKkC,kBAEnC7I,KAAK2G,KAAKuB,WAA0C,IAA9BlI,KAAK2G,KAAKkC,iBAClC7I,KAAKwE,WAAWmD,UAAUC,IAAI,cAC9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,wBAEjC7K,KAAKwE,WAAWmD,UAAUkD,OAAO,cAE7B7K,KAAKqE,MAAMD,cACbpE,KAAKwE,WAAWmD,UAAUC,IAAI,wBAK/B8C,GAAYA,EAAS5B,aAAe9I,KAAK2G,KAAKmC,aAC7C9I,KAAK2G,KAAKmC,WACZ9I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B5H,KAAKwE,WAAWmD,UAAUkD,OAAO,iBAIhCH,GAAYA,EAAS3B,aAAe/I,KAAK2G,KAAKoC,WAAY,CAC7D,GAAI/I,KAAK2G,KAAKoC,WAAY,CACxB/I,KAAKwE,WAAWmD,UAAUC,IAAI,eAE9B,IAAMQ,EAAY/H,SAASC,cAAc,OACzC8H,EAAU7H,UAAY,6BACtB,IAAM8H,EAAahI,SAASC,cAAc,OAC1C+H,EAAW9H,UAAY,yBACvB6H,EAAUxH,YAAYyH,GACtBrI,KAAKwE,WAAW5D,YAAYwH,E,KACvB,CACLpI,KAAKwE,WAAWmD,UAAUkD,OAAO,eAEjC,IAAMa,EAAM1L,KAAKwE,WAAWmH,cAC1B,+BAEF,GAAY,OAARD,EAAc,CAChB,IAAM,EAASA,EAAIE,cACJ,OAAX,GACF,EAAOC,YAAYH,E,EAKzB1L,KAAKgK,iBAAiBhK,KAAK0E,gB,CAExBgG,GAAYA,EAAS9D,aAAe5G,KAAK2G,KAAKC,aAC7C5G,KAAK2G,KAAKC,YACZ5G,KAAKwE,WAAWmD,UAAUC,IAAI,eAC9B5H,KAAKwE,WAAWiH,aAAa,KAAM,wBAEnCzL,KAAKwE,WAAWmD,UAAUkD,OAAO,eACjC7K,KAAKwE,WAAWsH,gBAAgB,OAGtC,EAKO,YAAAjB,OAAP,WAEE7K,KAAKiF,mBAAmB7D,KAAK,CAAEyE,KAAM7F,OAErCA,KAAKmF,YAAYxE,SAAQ,SAAAoL,GACvB,IACEA,EAAWC,SACK,CAAhB,MAAOC,GAAS,CACpB,IAEAjM,KAAKwE,WAAWqG,QAClB,EASU,YAAAlF,gBAAV,SACEF,EACAC,GAEA,OAAOD,EAAaJ,IAAMK,EAAYL,GAAKI,EAAaH,IAAMI,EAAYJ,CAC5E,EAMU,YAAAkC,oBAAV,SAA8B0E,GAC5B,OAAQA,GACN,IAAK,KACHlM,KAAKwE,WAAWqD,MAAMsE,cAAgB,iBACtC,MACF,IAAK,OACHnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,cACtC,MACF,IAAK,QACHnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,MACtC,MAEF,QACEnM,KAAKwE,WAAWqD,MAAMsE,cAAgB,SAK1C,IAAMC,EAASpM,KAAKyE,gBAAgB4H,qBAAqB,SACnDpD,EAAQmD,EAAOnM,OAAS,EAAImM,EAAOvG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACCtD,KAAKqE,MAAM2B,MAAQ,IACrBiD,EAAMpB,MAAM7B,MAAQ,UAAGhG,KAAKqE,MAAM2B,MAAK,MACvCiD,EAAMpB,MAAM5B,OAAS,IAEvB,MACF,IAAK,OACL,IAAK,QACCjG,KAAKqE,MAAM4B,OAAS,IACtBgD,EAAMpB,MAAM7B,MAAQ,GACpBiD,EAAMpB,MAAM5B,OAAS,UAAGjG,KAAKqE,MAAM4B,OAAM,OAKnD,EAOU,YAAAY,YAAV,SAAsBxB,EAAWC,GAC/BtF,KAAKwE,WAAWqD,MAAMC,KAAO,UAAGzC,EAAC,MACjCrF,KAAKwE,WAAWqD,MAAME,IAAM,UAAGzC,EAAC,KAClC,EAOO,YAAAM,KAAP,SAAYP,EAAWC,GACrBtF,KAAK6G,YAAYxB,EAAGC,GACpBtF,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACbgB,EAAC,EACDC,EAAC,GAEL,EASU,YAAAe,YAAV,SAAsBF,EAAgBC,GACpC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOU,YAAAkB,cAAV,SAAwBnB,EAAeC,GAUrC,GAPqB,IAAnBjG,KAAKqE,MAAM1B,MACQ,IAAnB3C,KAAKqE,MAAM1B,OAEX3C,KAAK0E,gBAAgBmD,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC9DhG,KAAK0E,gBAAgBmD,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,IAG/DjG,KAAKqE,MAAMV,OAAS3D,KAAKqE,MAAMV,MAAM1D,OAAS,EAAG,CAEnD,IAAMmM,EAASpM,KAAKyE,gBAAgB4H,qBAAqB,SACnDpD,EAAQmD,EAAOnM,OAAS,EAAImM,EAAOvG,KAAK,GAAK,KAEnD,GAAIoD,EACF,OAAQjJ,KAAKqE,MAAMf,eACjB,IAAK,KACL,IAAK,OACH2F,EAAMpB,MAAM7B,MAAQA,EAAQ,EAAI,UAAGA,EAAK,MAAO,GAC/C,MACF,IAAK,OACL,IAAK,QACHiD,EAAMpB,MAAM5B,OAASA,EAAS,EAAI,UAAGA,EAAM,MAAO,G,CAK5D,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKmH,cAAcnB,EAAOC,GAC1BjG,KAAKwG,UAAY,EAAH,KACTxG,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAMO,YAAAqG,QAAP,SAAehL,GAMb,IAAMyK,EAAa/L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAS,WAAP,SAAkBlL,GAMhB,IAAMyK,EAAa/L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAU,QAAP,SAAenL,GAMb,IAAMyK,EAAa/L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAW,mBAAP,SAA0BpL,GAMxB,IAAMyK,EAAa/L,KAAK8E,6BAA6BvD,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAY,UAAP,SAAiBrL,GAMf,IAAMyK,EAAa/L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAa,iBAAP,SAAwBtL,GAMtB,IAAMyK,EAAa/L,KAAKgF,2BAA2BzD,GAAGD,GAGtD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAc,SAAP,SAAgBvL,GAMd,IAAMyK,EAAa/L,KAAKiF,mBAAmB1D,GAAGD,GAG9C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAe,mBAAP,SACExL,GAOA,IAAMyK,EAAa/L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAOO,YAAA9D,WAAP,WACEjI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK0G,qBAAqB1G,KAAKwE,YAET,KAApBxE,KAAKqE,MAAM1B,MACS,KAApB3C,KAAKqE,MAAM1B,MAEX3C,KAAK+G,uBAAuB/G,KAAKwE,WAErC,EAMO,YAAAwD,aAAP,WACEhI,KAAK2G,KAAO,EAAH,KACJ3G,KAAK2G,MAAI,CACZC,YAAY,IAGd5G,KAAK8G,uBACmB,KAApB9G,KAAKqE,MAAM1B,MACb3C,KAAKoH,wBAET,EAGO,YAAA2F,iBAAP,WACE,OAAOC,EAAkBD,iBAAiB/M,KAAKqE,MACjD,EAGc,EAAA0I,iBAAd,SAA+B1I,GAC7B,IAAM7C,EAAgB6C,EAAM1B,KA1nCzB,SAAmBE,GACxB,IAAIrB,EAAQ,GACZ,OAAQqB,GACN,KAAK,EACHrB,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,EAYL,KAAK,EAGL,KAAK,EAGL,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,gBACV,MAjBF,KAAK,EAkBL,KAAK,EAkBL,KAAK,GAGL,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,mBACV,MAtCF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,EACHzL,GAAQ,IAAAyL,GAAE,QACV,MAaF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,WACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,OACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,QACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,uBACV,MAOF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,wBACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,cACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,SACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,eACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,gBACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,YACV,MACF,KAAK,GACHzL,GAAQ,IAAAyL,GAAE,eACV,MACF,QACEzL,GAAQ,IAAAyL,GAAE,QAId,OAAOzL,CACT,CAyiCuC0L,CAAU7I,EAAM1B,OAAQ,IAAAsK,GAAE,QAC7D,OAAO,IAAI,EAAAE,cAAc3L,EAAO,GAAI,GACtC,EACF,EAviCA,GAyiCA,M,ihCCvwCM4L,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,aACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,sBAAsBzM,GACpC,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETJ,gBAAiBD,oBAAoBrM,EAAKsM,iBAC1CE,UAAWD,eAAevM,EAAKwM,WAC/BI,WAAW,wCAAc5M,EAAK4M,WAAa,UAAY5M,EAAK4M,aACzD,wCAAmB5M,GAE1B,CAEA,oD,wDA6CA,QA7CuC,4BAC3B,oBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,cAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,oBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,UA7CA,CAAuC,uC,ijCCrChC,SAASC,uBACdrN,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETY,QAAQ,wCAAWtN,EAAKsN,OAAQ,MAChC5E,MAAO6E,WAAWvN,EAAK0I,OACvB8E,QAAQ,wCAAcxN,EAAKwN,QAAU,UAAYxN,EAAKwN,OACtDC,iBAAiB,wCAAczN,EAAKyN,iBAChC,UACAzN,EAAKyN,mBACN,wCAAmBzN,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAmKA,QAnKwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEjCmO,OAASpO,SAASC,cAAc,OACtCmO,OAAOlO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW4E,YAAc1O,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMmK,iBACvCC,OAAO7N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK4O,cAAc5O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMoF,YAAcxO,SAASC,cAAc,MAC3CuO,YAAYtO,UAAY,2BACxBsO,YAAYH,YAAc,UAAGjF,OAC7BoF,YAAYhH,MAAM8G,MAAQ3O,KAAKqE,MAAMkK,OACrCE,OAAO7N,YAAYiO,aAEnBzO,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,eAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMgB,QAAU1O,QAAQiM,qBAAqB,KACpCpB,EAAI,EAAGA,EAAI6D,QAAQ7O,OAAQgL,IAClC6D,QAAQ7D,GAAGpD,MAAMkH,OAAS,MAK5B,IADA,IAAMC,eAAiB5O,QAAQ6O,uBAAuB,kBAC7ChE,EAAI,EAAGA,EAAI+D,eAAe/O,OAAQgL,IACzC+D,eAAe/D,GAAGJ,SAKpB,IADA,IAAMkD,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAaT,OAHA7K,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQ8O,aAAaT,OAAQrO,QAAQ+O,YAE9B/O,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzB,IAAMqO,OAASpO,SAASC,cAAc,OACtCmO,OAAOlO,UAAY,qBAEnB,IAAMuJ,WAAazJ,SAASC,cAAc,MAC1CwJ,WAAWvJ,UAAY,0BACvBuJ,WAAW4E,YAAc1O,KAAKqE,MAAMyF,WACpCA,WAAWjC,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMmK,iBACvCC,OAAO7N,YAAYkJ,YAEnB,IAAIL,MAAQ,GACa,OAArBzJ,KAAKqE,MAAMoF,QACbA,MAAQzJ,KAAK4O,cAAc5O,KAAKqE,MAAMoF,OAAO,EAAO,GAAI,EAAG,MAG7D,IAAMoF,YAAcxO,SAASC,cAAc,MAC3CuO,YAAYtO,UAAY,2BACxBsO,YAAYH,YAAc,UAAGjF,OAC7BoF,YAAYhH,MAAM8G,MAAQ3O,KAAKqE,MAAMkK,OACrCE,OAAO7N,YAAYiO,aAEnBzO,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQ8O,aAAaT,OAAQrO,QAAQ+O,YAIrC,IADA,IAAML,QAAU1O,QAAQiM,qBAAqB,KACpCpB,EAAI,EAAGA,EAAI6D,QAAQ7O,OAAQgL,IAClC6D,QAAQ7D,GAAGpD,MAAMkH,OAAS,MAK5B,IADA,IAAMC,eAAiB5O,QAAQ6O,uBAAuB,kBAC7ChE,EAAI,EAAGA,EAAI+D,eAAe/O,OAAQgL,IACzC+D,eAAe/D,GAAGJ,SAKpB,IADA,IAAMkD,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EAEU,qBAAAS,cAAV,SACEQ,EACAC,EACAC,EACAC,EACAC,GAUA,GARAA,OAA6B,IAAZA,EAA0BA,EAAU,IAIhDD,IACHA,EAAa,IAGXF,GACF,GAAII,KAAKC,MAAMN,IAAWA,EACxB,MAAO,OAEJ,CACLG,IACA,IAAMI,EAAe3P,KAAK4P,IAAI,IAAKL,EAAY,GAC/CH,EACEK,KAAKC,MAAMN,EAASS,OAAOpM,SAASkM,IACpCE,OAAOpM,SAASkM,E,CAMpB,IAHA,IACIG,EAAM,EAEHL,KAAKM,IAAIX,IAAWI,GAEzBM,IACAV,GAAkBI,EAapB,OATEJ,EADEI,EACOC,KAAKC,MA7BD,EA6BON,GA7BP,EA+BJK,KAAKC,MA/BD,EA+BON,GAGlB5L,MAAM4L,KACRA,EAAS,GAGJA,EAAS,IAnBH,CAAC,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAmBxBU,GAAOR,CACtC,EAEU,qBAAAM,IAAV,SAAcI,EAAe/P,EAAgBgQ,GAC3C,IAAIC,EAAMF,EAAQ,GAClB,OAAO/P,GAAUiQ,EAAIjQ,OACjBiQ,EACAlQ,KAAK4P,IAAIM,EAAMD,EAAShQ,EAAQgQ,EACtC,EACF,WAnKA,CAAwC,uC,kjCC3BjC,SAASE,uBACdpP,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAET2C,uBAAuB,wCAAcrP,EAAKqP,uBACtC,UACArP,EAAKqP,yBACN,wCAAmBrP,KACnB,wCAAqBA,GAE5B,CAEA,sD,wDAgDA,QAhDwC,6BAC5B,qBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,cACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM+L,uBAGZ,IAA7BpQ,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,qBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM+L,uBAGZ,IAA7BpQ,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,WAhDA,CAAwC,uC,qjCCzBjC,SAASkC,0BACdtP,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,sBACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,GACN2N,SAAS,wCAAWvP,EAAKuP,QAAS,MAClCC,YAAaxP,EAAKwP,YAClB9C,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,QAEN,wCAAmB1M,GAE1B,CAEA,4D,wDAmDA,QAnD2C,gCAC/B,wBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OACvCF,QAAQG,UAAY,iBACpBH,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,IAAIuF,SAAWpQ,QAAQ6O,uBACrB,cAIF,OAFAuB,SAAS,GAAG3I,MAAM8G,MAAQ3O,KAAKqE,MAAMkM,YAE9BnQ,OACT,EAEU,wBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAG/B,IAAMgD,IAAMpQ,SAASC,cAAc,OACnCmQ,IAAInH,UAAYtJ,KAAKqE,MAAMoJ,KAE3B,IADA,IAAMM,QAAU0C,IAAIpE,qBAAqB,UAChCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,QAI9B,IAAIqC,SAAWpQ,QAAQ6O,uBACrB,cAEFuB,SAAS,GAAG3I,MAAM8G,MAAQ3O,KAAKqE,MAAMkM,WACvC,EACF,cAnDA,CAA2C,uC,sjCCjBrCG,oBAAsB,SAC1BC,GAEA,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,cACH,OAAOA,EACT,QACE,MAAO,cAEb,EAMMC,eAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,OACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,OAEb,EAWO,SAASC,wBACd/P,GAEA,IAAI,wCAAcA,EAAK0M,QAAS,wCAAc1M,EAAK2M,aACjD,MAAM,IAAIhK,UAAU,yBAGtB,OAAO,SAAP,+BACK,yCAAqB3C,IAAK,CAC7B4B,KAAM,EACN8K,MAAO,wCAAc1M,EAAK0M,OAEtB,wCAAa1M,EAAK2M,aADlB3M,EAAK0M,KAETkD,eAAgBD,oBAAoB3P,EAAK4P,gBACzCtC,QAAQ,wCAAWtN,EAAKsN,OAAQ,MAChCwC,UAAWD,eAAe7P,EAAK8P,WAC/BE,eAAe,wCAAWhQ,EAAKgQ,cAAe,SAC3C,wCAAmBhQ,KACnB,wCAAqBA,GAE5B,CAEA,wD,wDA8CA,QA9CyC,8BAC7B,sBAAAwG,iBAAV,WACE,IAAMnH,QAAUC,SAASC,cAAc,OAEvCF,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,KAC/BrN,QAAQG,UAAY,gBAEW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,U,iBACpCpB,GACuB,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBgO,YAAW,WACT,IACEC,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OACV,CAAhB,MAAOlC,GAAS,CACpB,GAAG,E,EANEhB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,I,QAA3BA,GAUT,OAAO7K,OACT,EAEU,sBAAA4J,iBAAV,SAA2B5J,SACzBA,QAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,MAGA,IAA7BzN,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,QAAQyH,MAAMiG,QAAU,OAK1B,IADA,IAAMC,QAAU3N,QAAQiM,qBAAqB,UACpCpB,EAAI,EAAGA,EAAI8C,QAAQ9N,OAAQgL,IACJ,IAA1B8C,QAAQ9C,GAAG+C,IAAI/N,QACjBiO,KAAKH,QAAQ9C,GAAG3B,UAAU6E,OAGhC,EACF,YA9CA,CAAyC,uC,qDCpFzC,IAAM6C,EAAQ,6BA6Cd,IApCwB,SACtBC,EACAzP,EACA,G,IAAA,aAA2C,CAAC,EAAC,EAA3C0P,EAAI,OAAEvC,EAAK,QAAEwC,EAAI,OAAEC,EAAK,QAEpBtG,EAAYzK,SAASC,cAAc,UACzCwK,EAAUtJ,MAAQA,EAClBsJ,EAAUvK,UAAY,gBAAS0Q,EAAeI,UAE1CH,GAAMpG,EAAUnD,UAAUC,IAAI,aAAMsJ,IAEpCC,EAAMrG,EAAUnD,UAAUC,IAAI,WACzBwJ,GAAOtG,EAAUnD,UAAUC,IAAI,YAExC,IAAM0J,EAAOjR,SAASkR,gBAAgBP,EAAO,OAE7CM,EAAK7F,aACH,UACA,cAAOwF,EAAeK,KAAK,GAAE,YAAIL,EAAeK,KAAK,KAEnD3C,GAAO2C,EAAK7F,aAAa,OAAQkD,GAGrC,IAAMrG,EAAOjI,SAASkR,gBAAgBP,EAAO,QACvCQ,EAC8B,iBAA3BP,EAAeK,KAAK,GACvBL,EAAeK,KAAK,GACpBL,EAAeK,KAAK,GAAG,GAM7B,OALAhJ,EAAKmD,aAAa,IAAK+F,GAEvBF,EAAK1Q,YAAY0H,GACjBwC,EAAUlK,YAAY0Q,GAEfxG,CACT,C,wBCrCA,sBACU,KAAA2G,UAA2B,GAC3B,KAAAC,eAAgC,GAEjC,KAAAnQ,GAAK,SAACD,GAEX,OADA,EAAKmQ,UAAUlF,KAAKjL,GACb,CACL0K,QAAS,WAAM,SAAK2F,IAAIrQ,EAAT,EAEnB,EAEO,KAAAsQ,KAAO,SAACtQ,GACb,EAAKoQ,eAAenF,KAAKjL,EAC3B,EAEO,KAAAqQ,IAAM,SAACrQ,GACZ,IAAMuQ,EAAgB,EAAKJ,UAAUK,QAAQxQ,GACzCuQ,GAAiB,GAAG,EAAKJ,UAAUM,OAAOF,EAAe,EAC/D,EAEO,KAAAzQ,KAAO,SAAC4Q,GAEb,EAAKP,UAAU9Q,SAAQ,SAAAW,GAAY,OAAAA,EAAS0Q,EAAT,IAGnC,EAAKN,eAAe/Q,SAAQ,SAAAW,GAAY,OAAAA,EAAS0Q,EAAT,IACxC,EAAKN,eAAiB,EACxB,EAEO,KAAAO,KAAO,SAACC,GAAkC,SAAK3Q,IAAG,SAAAwB,GAAK,OAAAmP,EAAG9Q,KAAK2B,EAAR,GAAb,CACnD,C,ktBChBO,SAASoP,EAAc1I,EAAgB2I,GAC5C,MAAqB,iBAAV3I,EAA2BA,EACjB,iBAAVA,GAAsBA,EAAMxJ,OAAS,IAAMuD,MAAMC,SAASgG,IAC5DhG,SAASgG,GACN2I,CACd,CAQO,SAASC,EAAgB5I,EAAgB2I,GAC9C,MAAqB,iBAAV3I,EAA2BA,EAEnB,iBAAVA,GACPA,EAAMxJ,OAAS,IACduD,MAAM8K,WAAW7E,IAEX6E,WAAW7E,GACR2I,CACd,CAOO,SAASE,EAAc7I,GAC5B,OAAgB,MAATA,GAAkC,IAAjBA,EAAMxJ,MAChC,CAQO,SAASsS,EACd9I,EACA2I,GAEA,MAAwB,iBAAV3I,GAAsBA,EAAMxJ,OAAS,EAAIwJ,EAAQ2I,CACjE,CAOO,SAASI,EAAa/I,GAC3B,MAAqB,kBAAVA,EAA4BA,EACb,iBAAVA,EAA2BA,EAAQ,EACzB,iBAAVA,IAAqC,MAAVA,GAA2B,SAAVA,EAE9D,CA4BO,SAASgJ,EACdhJ,EACAxJ,EACA2P,QAAA,IAAAA,IAAAA,EAAA,KAEqB,iBAAVnG,IAAoBA,EAAQ,UAAGA,IACvB,iBAARmG,IAAkBA,EAAM,UAAGA,IAEtC,IAAM8C,EAAazS,EAASwJ,EAAMxJ,OAClC,GAAmB,IAAfyS,EAAkB,OAAOjJ,EAC7B,GAAIiJ,EAAa,EAAG,OAAOjJ,EAAMkJ,OAAOlD,KAAKM,IAAI2C,IAEjD,GAAIA,IAAe9C,EAAI3P,OAAQ,MAAO,UAAG2P,GAAG,OAAGnG,GAC/C,GAAIiJ,EAAa9C,EAAI3P,OAAQ,MAAO,UAAG2P,EAAIgD,UAAU,EAAGF,IAAW,OAAGjJ,GAMtE,IAJA,IAAMoJ,EAAcpD,KAAKqD,MAAMJ,EAAa9C,EAAI3P,QAC1C8S,EAAaL,EAAa9C,EAAI3P,OAAS4S,EAEzCG,EAAS,GACJ/H,EAAI,EAAGA,EAAI4H,EAAa5H,IAAK+H,GAAUpD,EAEhD,OAAmB,IAAfmD,EAAyB,UAAGC,GAAM,OAAGvJ,GAClC,UAAGuJ,GAAM,OAAGpD,EAAIgD,UAAU,EAAGG,IAAW,OAAGtJ,EACpD,CASO,SAASwJ,EAAqBlS,GACnC,MAAO,CACLsE,EAAG8M,EAAWpR,EAAKsE,EAAG,GACtBC,EAAG6M,EAAWpR,EAAKuE,EAAG,GAE1B,CAQO,SAAS4N,EAAiBnS,GAC/B,GACgB,MAAdA,EAAKiF,OACLxC,MAAMC,SAAS1C,EAAKiF,SACL,MAAfjF,EAAKkF,QACLzC,MAAMC,SAAS1C,EAAKkF,SAEpB,MAAM,IAAIvC,UAAU,iBAGtB,MAAO,CACLsC,MAAOvC,SAAS1C,EAAKiF,OACrBC,OAAQxC,SAAS1C,EAAKkF,QAE1B,CA8BO,SAASkN,EAAmBpS,GACjC,OAAO,EAAP,CACEqS,SAAUjB,EAAWpR,EAAKqS,SAAU,MACpCtJ,WAAYyI,EAAiBxR,EAAK+I,WAAY,MAC9CC,kBAAmBwI,EAAiBxR,EAAKgJ,kBAAmB,MAC5D8D,eAAgB2E,EAAazR,EAAK8M,iBA5B/B,SAA2B9M,GAChC,IAAMsS,EAA6B,CACjCC,QAASnB,EAAWpR,EAAKuS,QAAS,MAClCC,UAAWhB,EAAiBxR,EAAKwS,UAAW,MAC5C5J,WAAY4I,EAAiBxR,EAAK4I,WAAY,MAC9CC,iBAAkB2I,EAAiBxR,EAAK6I,iBAAkB,MAC1DC,aAAc0I,EAAiBxR,EAAK8I,aAAc,MAClD+D,cAAe4E,EAAazR,EAAK6M,gBAGnC,OAA6B,MAAtB7M,EAAKyS,cACR,EAAD,CACGA,cAAezS,EAAKyS,eACjBH,GAELA,CACN,CAaOI,CAAkB1S,GAEzB,CAQO,SAAS2S,EACd3S,GAEA,IAAI4S,EAA0D,CAC5DC,uBAAwB,WAE1B,OAAQ7S,EAAK6S,wBACX,IAAK,SACH,IAAMC,EAAS1B,EAAWpR,EAAK+S,6BAA8B,MAC7D,GAAc,MAAVD,EACF,MAAM,IAAInQ,UAAU,0CAElB3C,EAAK+S,+BACPH,EAA0B,CACxBC,uBAAwB,SACxBE,6BAA8BD,IAElC,MAEF,IAAK,UACH,IAAME,EAAmB5B,EACvBpR,EAAKiT,uCACL,MAEIC,EAAoB9B,EACxBpR,EAAKmT,wCACL,MAEF,GAAwB,MAApBH,GAAiD,MAArBE,EAC9B,MAAM,IAAIvQ,UAAU,0CAGtBiQ,EAA0B,CACxBC,uBAAwB,UACxBI,uCAAwCD,EACxCG,wCAAyCD,GAM/C,OAAO,EAAP,CACEE,eAAgBhC,EAAWpR,EAAKoT,eAAgB,MAChDC,mBAAoBjC,EAAWpR,EAAKqT,mBAAoB,OACrDT,EAEP,CAOO,SAASU,EAAgBtT,GAC9B,IAnL6B0I,EAmLvB6K,GAA0C,MAnLnB7K,EAmLE1I,EAAKuT,sBAlLf5K,KAAaD,EACR,iBAAVA,EAA2B,IAAIC,KAAa,IAARD,GAEjC,iBAAVA,GACNoG,OAAOrM,MAAM,IAAIkG,KAAKD,GAAO8K,WA8KgB,KA5KvC,IAAI7K,KAAKD,IA6KlB,GAAmB,OAAf6K,EAAqB,MAAM,IAAI5Q,UAAU,0BAE7C,IAAI8Q,EAAQ,KAIZ,OAHIzT,EAAKyT,iBAAiBC,MAAOD,EAAQzT,EAAKyT,MACf,iBAAfzT,EAAKyT,QAAoBA,EAAQ,IAAIC,MAAM1T,EAAKyT,QAEzD,CACLF,WAAU,EACVE,MAAK,EACLtM,SAAUsK,EAAazR,EAAKmH,UAC5BW,gBAAiB2J,EAAazR,EAAK8H,iBACnC6L,YAAalC,EAAazR,EAAK2T,aAC/B5L,YAAY,EACZC,YAAY,EACZvD,cAAc,EACdU,gBAAgB,EAChBU,YAAY,EACZ+N,UAAU,EAEd,CAQO,SAASC,EACdC,EACAC,GAEA,IAAMC,EAAO,UAAGF,EAAQ,aAAKC,EAAS,KACtC,MAAO,CACL,kBAAWC,GACX,eAAQA,GACR,cAAOA,GACP,aAAMA,GACN,UAAGA,GAEP,CAOO,SAASC,EAAahF,GAC3B,OAAOiF,mBAAmBC,OAAOC,OAAOC,KAAKpF,IAC/C,CASO,SAASqF,EAAUC,EAAYC,GACpC,QADoC,IAAAA,IAAAA,EAAA,MAChCA,GAAUC,MAAQA,KAAKC,eAOzB,OAAOD,KAAKC,eAAeF,EALiB,CAC1CG,IAAK,UACLC,MAAO,UACPC,KAAM,YAEoCC,OAAOP,GAGnD,IAAMI,EAAMjD,EAAQ6C,EAAKQ,UAAW,EAAG,GAEjCH,EAAQlD,EAAQ6C,EAAKS,WAAa,EAAG,EAAG,GACxCH,EAAOnD,EAAQ6C,EAAKU,cAAe,EAAG,GAG5C,MAAO,UAAGN,EAAG,YAAIC,EAAK,YAAIC,EAE9B,CAQO,SAASK,EAAUX,GACxB,IAAMY,EAAQzD,EAAQ6C,EAAKa,WAAY,EAAG,GACpCC,EAAU3D,EAAQ6C,EAAKe,aAAc,EAAG,GACxCC,EAAU7D,EAAQ6C,EAAKiB,aAAc,EAAG,GAE9C,MAAO,UAAGL,EAAK,YAAIE,EAAO,YAAIE,EAChC,CAWO,SAASE,EAAcC,EAAiBC,GAC7C,OAAOD,EAAOzU,QACZ,SAAC2U,EAAK,G,IAAEnN,EAAK,QAAEC,EAAK,QAAO,OAAAkN,EAAIC,QAAQpN,EAAOC,EAAnB,GAC3BiN,EAEJ,CAQO,SAASG,EAAeC,EAAeC,GAC5C,IAAIC,EAAO,EACX,OAAO,W,IAAC,sDACN,IAAMC,EAAMvN,KAAKuN,MACjB,KAAIA,EAAMD,EAAOF,GAEjB,OADAE,EAAOC,EACAF,EAAE,aAAIG,EACf,CACF,CAQO,SAASC,EAAYL,EAAeC,GACzC,IAAIK,EAA0B,KAC9B,OAAO,W,IAAC,sDACW,OAAbA,GAAmBjC,OAAOkC,aAAaD,GAC3CA,EAAWjC,OAAOlH,YAAW,WAC3B8I,EAAE,aAAIG,GACNE,EAAW,IACb,GAAGN,EACL,CACF,CAMA,SAASQ,EAAUC,EAAwBC,GAGzC,IAFA,IAAInS,EAAI,EACJC,EAAI,EAENiS,IACC1H,OAAOrM,MAAM+T,EAAGE,cAChB5H,OAAOrM,MAAM+T,EAAGG,YACjBH,IAAOC,GAEPnS,GAAKkS,EAAGE,WAAaF,EAAGI,WACxBrS,GAAKiS,EAAGG,UAAYH,EAAGK,UACvBL,EAAKA,EAAGM,aAEV,MAAO,CAAE9P,IAAKzC,EAAGwC,KAAMzC,EACzB,CAWO,SAASyS,EACd1X,EACAqM,EACAsL,GAEA,IAAMjN,EAAYiN,GAAiB3X,EAAQwL,cAGrCoM,EAAc5X,EAAQ6X,UAExBC,EAAuB,EACvBC,EAAuB,EACvBC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EACrCC,EAAqC,EAErCC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjD8S,EAAgB1Y,EAAQ4G,wBACxB+R,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOpM,SAASsV,GAG1BG,EAAoB/B,EAAS,GAAI1K,GAEjC0M,EAAoBtC,EAAS,GAAIpK,GAEjC2M,EAAa,SAACrW,GAElB,IAAIsC,EAAI,EACJC,EAAI,EAEF+T,EAAStW,EAAEuW,MACXC,EAASxW,EAAEyW,MACXC,EAAcJ,EAASjB,EACvBsB,EAAcH,EAASlB,EAGvBsB,EAAOnB,EAAgBxS,MAAQ8S,EAAc9S,MAAQiT,EAErDW,EAAOpB,EAAgBvS,OAAS6S,EAAc7S,OAASgT,EAEvDY,EACJR,EAAST,GACE,IAAVV,GACCuB,EAAc,GACdJ,EAAST,EAAgBN,EACvBwB,EACJT,EAASR,GACTY,EAAcvB,EAAQY,EAAc9S,MAAQiT,EAC1CT,EAAgBxS,OACjBkS,IAAUyB,GACTF,EAAc,GACdJ,EAAST,EAAgBe,EAAOrB,EAC9ByB,EACJR,EAASb,GACE,IAAVP,GACCuB,EAAc,GACdH,EAASb,EAAeH,EACtByB,EACJT,EAASZ,GACTe,EAAcvB,EAAQW,EAAc7S,OAASgT,EAC3CT,EAAgBvS,QACjBkS,IAAUyB,GACTF,EAAc,GACdH,EAASb,EAAekB,EAAOrB,GAEdlT,EAAjBwU,EA9BS,EA+BJC,EAAsBH,EACtBF,EAAcvB,GAMf,IAAG7S,EAtCE,IAkCOC,EAAhByU,EAhCS,EAiCJC,EAAuBJ,EACvBF,EAAcvB,GAGf,IAAG7S,EArCE,GAwCb8S,EAAaiB,EACbhB,EAAakB,EAETlU,IAAM6S,GAAS5S,IAAM6S,IAGzBgB,EAAkB9T,EAAGC,GACrB4T,EAAkB7T,EAAGC,GAGrB4S,EAAQ7S,EACR8S,EAAQ7S,EACV,EACM2U,EAAY,WAEhB/B,EAAQ,EACRC,EAAQ,EACRC,EAAa,EACbC,EAAa,EAEbhY,SAAS6Z,oBAAoB,YAAad,GAE1C/Y,SAAS6Z,oBAAoB,UAAWD,GAExC7Z,EAAQ6X,UAAYD,EAEpB3X,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,EACMC,EAAc,SAACtX,GAEnB,GAAiB,IAAbA,EAAEuX,OAAN,CAEAvX,EAAEoF,kBAGF/H,EAAQ6X,WAAY,EAGpB7X,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAIlC,IAAM8O,EAAgBjD,EAAUlX,EAAS0K,GACzCoN,EAAQqC,EAAczS,KACtBqQ,EAAQoC,EAAcxS,IAGtBqQ,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MAEflB,EAAsBvV,EAAEyX,QACxBjC,EAAsBxV,EAAE0X,QAGxBjC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjD8S,EAAgB1Y,EAAQ4G,wBACxB+R,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAA2C,EAA/BpJ,OAAOpM,SAASsV,GAG5B1Y,SAASyC,iBAAiB,YAAasW,GAEvC/Y,SAASyC,iBAAiB,UAAWmX,GAErC5Z,SAAS8Z,KAAKtS,MAAMuS,WAAa,MAxCP,CAyC5B,EAMA,OAHAha,EAAQ0C,iBAAiB,YAAauX,GAG/B,WACLja,EAAQ8Z,oBAAoB,YAAaG,GACzCJ,GACF,CACF,CAUO,SAASS,EACdta,EACAuM,GAEA,IAGMgO,EAAkBta,SAASC,cAAc,OAC/Cqa,EAAgBpa,UAAY,mBAC5BH,EAAQQ,YAAY+Z,GAGpB,IAAM7P,EAAY1K,EAAQwL,cAEpBoM,EAAc5X,EAAQ6X,UAExB2C,EAA2B,EAC3BC,EAA6B,EAC7BzC,EAA4B,EAC5BC,EAA4B,EAC5BC,EAAqC,EAGrCE,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjDuU,EAAgBjD,EAAUlX,GAC1B0a,EAAaP,EAAcxS,IAC3BgT,EAAcR,EAAczS,KAC5BiR,EAAc5D,OAAO6D,iBAAiB5Y,GAAS2Y,aAAe,IAC9DE,EAAYpJ,OAAOpM,SAASsV,GAG1BiC,EAAsB7D,EAAS,GAAIxK,GAEnCsO,EAAsBpE,EAAS,GAAIlK,GAEnCuO,EAAe,SAACnY,GAEpB,IAAIiD,EAAQ4U,GAAa7X,EAAEuW,MAAQlB,GAC/BnS,EAAS4U,GAAc9X,EAAEyW,MAAQnB,GAEjCrS,IAAU4U,GAAa3U,IAAW4U,GAGpC7U,EAAQ4U,GACR7X,EAAEuW,MAAQyB,GAAeH,EAAYtC,KAInCtS,EAjDW,GAmDbA,EAnDa,GAoDJA,EAAQ+U,EAAc9B,EAAY,GAAKJ,IAEhD7S,EAAQ6S,EAAiBkC,GAEvB9U,EAvDY,GAyDdA,EAzDc,GA0DLA,EAAS6U,EAAa7B,EAAY,GAAKN,IAEhD1S,EAAS0S,EAAkBmC,GAI7BG,EAAoBjV,EAAOC,GAC3B+U,EAAoBhV,EAAOC,GAG3B2U,EAAY5U,EACZ6U,EAAa5U,EAEbmS,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MACjB,EACMS,EAAY,WAEhBW,EAAY,EACZC,EAAa,EACbzC,EAAa,EACbC,EAAa,EACbC,EAAsB,EAGtBjY,SAAS6Z,oBAAoB,YAAagB,GAE1C7a,SAAS6Z,oBAAoB,UAAWD,GAExC7Z,EAAQ6X,UAAYD,EAEpB3X,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,EA0CA,OAHAO,EAAgB7X,iBAAiB,aAtCb,SAACC,GACnBA,EAAEoF,kBAGF/H,EAAQ6X,WAAY,EAId,MAAoB7X,EAAQ4G,wBAA1BhB,EAAK,QAAEC,EAAM,SACrB2U,EAAY5U,EACZ6U,EAAa5U,EAEbmS,EAAarV,EAAEuW,MACfjB,EAAatV,EAAEyW,MAEflB,EAAsBvV,EAAEyX,QACFzX,EAAE0X,QAGxBjC,EAAkB1N,EAAU9D,wBAC5ByR,EAAkBnB,EAAUxM,GAC5B4N,EAAeD,EAAgB1Q,IAC/B4Q,EAAkBD,EAAeF,EAAgBvS,OACjD2S,EAAgBH,EAAgB3Q,KAChC+Q,EAAiBD,EAAgBJ,EAAgBxS,MACjDuU,EAAgBjD,EAAUlX,GAC1B0a,EAAaP,EAAcxS,IAC3BgT,EAAcR,EAAczS,KAG5BzH,SAASyC,iBAAiB,YAAaoY,GAEvC7a,SAASyC,iBAAiB,UAAWmX,GAErC5Z,SAAS8Z,KAAKtS,MAAMuS,WAAa,MACnC,IAMO,WACLO,EAAgB9P,SAChBoP,GACF,CACF,CAGO,SAAShN,EAAEyJ,GAChB,OAAOA,CACT,CAmNO,SAASyE,EACdjL,EACAkL,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAA,UACA,IAAAC,IAAAA,EAAA,KAEOnL,EAAI/B,OAAOlO,OAASmb,EAAMlL,EAAIyC,OAAO,EAAGyI,GAAKjN,OAASkN,EAAUnL,CACzE,C,GC98BIoL,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBnI,GAE5B,IAAIoI,EAAeF,yBAAyBlI,GAC5C,QAAqB3K,IAAjB+S,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASJ,yBAAyBlI,GAAY,CAGjDqI,QAAS,CAAC,GAOX,OAHAE,oBAAoBvI,GAAUsI,EAAQA,EAAOD,QAASF,qBAG/CG,EAAOD,OACf,CCrBAF,oBAAoBK,EAAI,SAASH,EAASI,GACzC,IAAI,IAAIC,KAAOD,EACXN,oBAAoBQ,EAAEF,EAAYC,KAASP,oBAAoBQ,EAAEN,EAASK,IAC5EE,OAAOC,eAAeR,EAASK,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAG3E,ECPAP,oBAAoBQ,EAAI,SAASK,EAAKC,GAAQ,OAAOL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,EAAO,ECCtGd,oBAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAeR,EAASiB,OAAOC,YAAa,CAAElT,MAAO,WAE7DuS,OAAOC,eAAeR,EAAS,aAAc,CAAEhS,OAAO,GACvD,E,svBCqBMmT,EAA4B,SAChCC,GAEA,OAAQA,GACN,IAAK,UACL,IAAK,UACL,IAAK,WACH,OAAOA,EACT,QACE,MAAO,UAEb,EAWO,SAASC,EACd/b,GAEA,GAA6B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,OAAO,EAAP,UACK,QAAqB3C,IAAK,CAC7B4B,KAAM,EACNoa,SAAUhc,EAAKgc,SACfF,qBAAsBD,EAA0B7b,EAAK8b,sBACrDG,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDC,WAAW,QAAiBlc,EAAKkc,UAAW,SACzC,QAAmBlc,KACnB,QAAqBA,GAE5B,CAEA,+B,8CAwCA,QAxCyC,OAC7B,YAAAwG,iBAAV,WACE,IAAM2V,EAASld,KAAKqE,MAAM2Y,gBAAkBhd,KAAKqE,MAAM0Y,SACjD3c,EAAUC,SAASC,cAAc,OA0BvC,OAzBAF,EAAQG,UAAY,eACpBH,EAAQqL,aAAa,cAAe,iBACpCrL,EAAQqL,aAAa,YAAa,SAClCrL,EAAQyH,MAAMsV,gBAAkB,cAAOD,EAAM,KAC7C9c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,UAGJ,IAA7Btd,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAKC,OAAzB9N,KAAKqE,MAAM4Y,WACyB,aAApCjd,KAAKqE,MAAMwY,uBAEXzc,EAAQG,UAAY,kCACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aAAa,aAAczL,KAAKqE,MAAM4Y,YAGzC7c,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzB,IAAM8c,EAASld,KAAKqE,MAAM2Y,gBAAkBhd,KAAKqE,MAAM0Y,SACvD3c,EAAQyH,MAAMsV,gBAAkB,cAAOD,EAAM,IAC/C,EACF,EAxCA,CAAyCK,EAAA,I,8qBChDlC,SAASC,EAAiBzc,GAC/B,GAA6B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,OACrD,MAAM,IAAIyD,UAAU,sBAGtB,GAA0B,iBAAf3C,EAAK0c,OAA4C,IAAtB1c,EAAK0c,MAAMxd,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,EACN8a,MAAO1c,EAAK0c,MACZV,SAAUhc,EAAKgc,YACZ,QAAqBhc,GAE5B,CAEA,+B,8CAmBA,QAnBkC,OACtB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAOvC,OANAF,EAAQG,UAAY,QAAUP,KAAKqE,MAAMoZ,MACzCrd,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM0Y,SAAQ,KAC1D3c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SAE5Bld,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACzBA,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM0Y,SAAQ,IAC5D,EACF,EAnBA,CAAkCQ,EAAA,I,0DCktG9BG,EAAe,CACjBC,OAAQ,MACRtM,SAAU,cACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,uRAurC3BsM,EAAa,CACfD,OAAQ,MACRtM,SAAU,YACVC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4W,42BCj5IxB,SAASuM,EACd9c,GAGA,GAA0B,iBAAfA,EAAK4N,OAA4C,IAAtB5N,EAAK4N,MAAM1O,OAC/C,MAAM,IAAIyD,UAAU,kBAGtB,OAAO,YACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACNgM,MAAO5N,EAAK4N,MACZmP,aAAc/c,EAAK+c,aACnBC,YAAahd,EAAKgd,eACf,QAAmBhd,KACnB,QAAqBA,GAE5B,CAOA,+B,8CA4BA,QA5B8B,OAClB,YAAAN,cAAV,sBACQud,EAAa3d,SAASC,cAAc,OAC1C0d,EAAWzd,UAAY,kBAEvB,IAAM0d,EAAa5d,SAASC,cAAc,SAC1C2d,EAAWvP,aAAc,IAAAzB,GAAE,iBAE3B+Q,EAAWpd,YAAYqd,GAEvB,IAAMC,EAAa7d,SAASC,cAAc,SAgB1C,OAfA4d,EAAWvb,KAAO,QAClBub,EAAWC,UAAW,EAEtBD,EAAWzU,MAAQ,UAAGzJ,KAAKF,YAAYge,cACrC9d,KAAKJ,YAAYke,cACjB,WAEFI,EAAWpb,iBAAiB,UAAU,SAAAC,GACpC,EAAKjC,WAAW,CACdgd,aAAe/a,EAAEqb,OAA4B3U,OAEjD,IAEAuU,EAAWpd,YAAYsd,GAEhBF,CACT,EACF,EA5BA,CAA8B,EAAAK,YAiC9B,2B,8CAiQA,QAjQ+B,OACnB,YAAA5d,cAAV,sBACQud,EAAa3d,SAASC,cAAc,OAC1C0d,EAAWzd,UAAY,yCAEvB,IAAM+d,EAActe,KAAKue,YAAY,UAErCP,EAAWpd,YAAY0d,GAEvB,IAAME,EAA0Bne,SAASC,cAAc,OACjDme,EAAyBpe,SAASC,cAAc,OAEtD0d,EAAWpd,YAAY6d,GACvBT,EAAWpd,YAAY4d,GAEvB,IAGIE,EAHEX,EACJ/d,KAAKF,YAAYie,aAAe/d,KAAKJ,YAAYme,aAAe,GAyDlE,OAnBAW,EAAc,SAAAC,GACZF,EAAuBnV,UAAY,GACnCqV,EAAOhe,SAAQ,SAACie,EAAYrc,GAC1B,OAAAkc,EAAuB7d,YACrB,EAAKie,eACHD,EAvCyB,SAACrc,GAAkB,gBAClDuc,GAEA,IAAMf,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAClE,EAAKjd,WAAW,CACdid,YAAa,EAAF,OACNA,EAAYvb,MAAM,EAAGD,IAAM,IAC9Buc,I,GACGf,EAAYvb,MAAMD,EAAQ,IAAE,IAGrC,CAZoD,CAwC5Cwc,CAAyBxc,GA1BZ,SAACA,GAAkB,kBACtC,IAAMwb,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAC5DiB,EAAY,EAAH,KACVjB,EAAYvb,MAAM,EAAGD,IAAM,GAC3Bwb,EAAYvb,MAAMD,EAAQ,IAAE,GAGjC,EAAKzB,WAAW,CAAEid,YAAaiB,IAC/BN,EAAYM,EACd,CAVwC,CA2BhCC,CAAa1c,IAJjB,GAQJ,EAEAmc,EAAYX,GAEZS,EAAwB5d,YACtBZ,KAAKkf,uBAxBc,SAACJ,GACpB,IAAMf,EACJ,EAAKje,YAAYie,aAAe,EAAKne,YAAYme,aAAe,GAC5DiB,EAAY,EAAH,KAAOjB,GAAa,GAAF,CAAEe,IAAK,GACxC,EAAKhe,WAAW,CAAEid,YAAaiB,IAC/BN,EAAYM,EACd,KAqBOhB,CACT,EAEQ,YAAAkB,sBAAR,SAA8BC,GAE5B,IAAMC,EAAe,CAAEzQ,MAAO,WAE1B0Q,EAAK,KAA6BD,GAmBhCE,EAAkBjf,SAASC,cAAc,OAGzCif,EAA2Blf,SAASC,cAAc,OAClDkf,EAAuBxf,KAAKue,YAAY,cACxCkB,EAAuBzf,KAAK0f,kBAAkB,MAtB5B,SAACjW,GACvB4V,EAAMM,UAAYlW,CACpB,IAqBA8V,EAAyB3e,YAAY4e,GACrCD,EAAyB3e,YAAY6e,GACrCH,EAAgB1e,YAAY2e,GAG5B,IAAMK,EAA4Bvf,SAASC,cAAc,OACnDuf,EAAqB7f,KAAKue,YAAY,YACtCuB,EAAqB9f,KAAK0f,kBAAkB,MA3B5B,SAACjW,GACrB4V,EAAMU,QAAUtW,CAClB,IA0BA8V,EAAyB3e,YAAYif,GACrCN,EAAyB3e,YAAYkf,GACrCR,EAAgB1e,YAAYgf,GAG5B,IAAMI,EAA0B3f,SAASC,cAAc,OACjD2f,EAAmBjgB,KAAKue,YAAY,SACpC2B,EAAmBlgB,KAAKmgB,iBAC5Bf,EAAazQ,OAjCK,SAAClF,GACnB4V,EAAM1Q,MAAQlF,CAChB,IAkCA8V,EAAyB3e,YAAYqf,GACrCV,EAAyB3e,YAAYsf,GACrCZ,EAAgB1e,YAAYof,GAG5B,IAAMI,EAAY/f,SAASC,cAAc,KAoBzC,OAnBA8f,EAAUxf,aACR,OAAgB8c,GAAc,IAAAzQ,GAAE,sBAAuB,CACrDiE,KAAM,QACNvC,MAAO,aAYXyR,EAAUtd,iBAAiB,SARN,WA3CL,IAACgc,OACQ,KADRA,EA4CHO,GA3CC1Q,YACY,IAAlBmQ,EAAMiB,cACc,IAApBjB,EAAMa,WAyCOR,EAASE,GAC7BA,EAAQD,EACRK,EAAqBhW,MAAQ,UAAG4V,EAAMM,WAAa,IACnDG,EAAmBrW,MAAQ,UAAG4V,EAAMU,SAAW,IAC/CG,EAAiBzW,MAAQ,UAAG4V,EAAM1Q,MACpC,IAIA2Q,EAAgB1e,YAAYwf,GAErBd,CACT,EAEQ,YAAAT,eAAR,SACED,EACAyB,EACAC,GAGA,IAAMjB,EAAQ,KAAKT,GAebU,EAAkBjf,SAASC,cAAc,OAGzCif,EAA2Blf,SAASC,cAAc,OAClDkf,EAAuBxf,KAAKue,YAAY,cACxCkB,EAAuBzf,KAAK0f,kBAChCd,EAAWe,WAnBW,SAAClW,GACvB4V,EAAMM,UAAYlW,EAClB4W,EAAS,KAAKhB,GAChB,IAmBAE,EAAyB3e,YAAY4e,GACrCD,EAAyB3e,YAAY6e,GACrCH,EAAgB1e,YAAY2e,GAG5B,IAAMK,EAA4Bvf,SAASC,cAAc,OACnDuf,EAAqB7f,KAAKue,YAAY,YACtCuB,EAAqB9f,KAAK0f,kBAC9Bd,EAAWmB,SA1BS,SAACtW,GACrB4V,EAAMU,QAAUtW,EAChB4W,EAAS,KAAKhB,GAChB,IA0BAE,EAAyB3e,YAAYif,GACrCN,EAAyB3e,YAAYkf,GACrCR,EAAgB1e,YAAYgf,GAG5B,IAAMI,EAA0B3f,SAASC,cAAc,OACjD2f,EAAmBjgB,KAAKue,YAAY,SACpC2B,EAAmBlgB,KAAKmgB,iBAC5BvB,EAAWjQ,OAjCO,SAAClF,GACnB4V,EAAM1Q,MAAQlF,EACd4W,EAAS,KAAKhB,GAChB,IAiCAE,EAAyB3e,YAAYqf,GACrCV,EAAyB3e,YAAYsf,GACrCZ,EAAgB1e,YAAYof,GAG5B,IAAMO,EAAYlgB,SAASC,cAAc,KAWzC,OAVAigB,EAAU3f,aACR,OAAgBgd,GAAY,IAAA3Q,GAAE,sBAAuB,CACnDiE,KAAM,QACNvC,MAAO,aAGX4R,EAAUzd,iBAAiB,QAASwd,GAEpChB,EAAgB1e,YAAY2f,GAErBjB,CACT,EAEQ,YAAAf,YAAR,SAAoB7H,GAClB,IAAM/S,EAAQtD,SAASC,cAAc,SAErC,OADAqD,EAAM+K,aAAc,IAAAzB,GAAEyJ,GACf/S,CACT,EAEQ,YAAA+b,kBAAR,SACEjW,EACA4W,GAEA,IAAMrQ,EAAQ3P,SAASC,cAAc,SAQrC,OAPA0P,EAAMrN,KAAO,SACC,OAAV8G,IAAgBuG,EAAMvG,MAAQ,UAAGA,IACrCuG,EAAMlN,iBAAiB,UAAU,SAAAC,GAC/B,IAAM0G,EAAQhG,SAAUV,EAAEqb,OAA4B3U,OACjDjG,MAAMiG,IAAQ4W,EAAS5W,EAC9B,IAEOuG,CACT,EAEQ,YAAAmQ,iBAAR,SACE1W,EACA4W,GAEA,IAAMrQ,EAAQ3P,SAASC,cAAc,SAOrC,OANA0P,EAAMrN,KAAO,QACC,OAAV8G,IAAgBuG,EAAMvG,MAAQA,GAClCuG,EAAMlN,iBAAiB,UAAU,SAAAC,GAC/B,OAAAsd,EAAUtd,EAAEqb,OAA4B3U,MAAxC,IAGKuG,CACT,EACF,EAjQA,CAA+B,EAAAqO,YAmQzBrN,EAAQ,6BAEd,2B,8CAwFA,QAxFwC,OAC5B,YAAAzJ,iBAAV,WACE,IAAMuD,EAA4BzK,SAASC,cAAc,OAMzD,OALAwK,EAAUvK,UAAY,cAGtBuK,EAAU0V,OAAOxgB,KAAKygB,oBAEf3V,CACT,EAEU,YAAA3D,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAC7B,EAEO,YAAAya,iBAAP,WACE,IAAMC,EAAa,eAAQ1gB,KAAKqE,MAAMxB,IAEhC8d,EAAMtgB,SAASkR,gBAAgBP,EAAO,OAE5C2P,EAAIlV,aAAa,UAAW,eAG5B,IAAMmV,EAAOvgB,SAASkR,gBAAgBP,EAAO,QAEvC6P,EAAiBxgB,SAASkR,gBAAgBP,EAAO,kBACvD6P,EAAepV,aAAa,KAAMiV,GAClCG,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,IAAK,OACjCoV,EAAepV,aAAa,KAAM,OAClCoV,EAAepV,aAAa,KAAM,OAElC,IAAMqV,EAAQzgB,SAASkR,gBAAgBP,EAAO,QAC9C8P,EAAMrV,aAAa,SAAU,MAC7BqV,EAAMrV,aACJ,QACA,qBAAczL,KAAKqE,MAAMsK,MAAK,sBAEhC,IAAMoS,EAAU1gB,SAASkR,gBAAgBP,EAAO,QAChD+P,EAAQtV,aAAa,SAAU,QAC/BsV,EAAQtV,aACN,QACA,qBAAczL,KAAKqE,MAAMsK,MAAK,oBAGhC,IAAMqS,EAAS3gB,SAASkR,gBAAgBP,EAAO,UAkB/C,OAjBAgQ,EAAOvV,aAAa,OAAQ,eAAQiV,EAAU,MAC9CM,EAAOvV,aAAa,KAAM,OAC1BuV,EAAOvV,aAAa,KAAM,OAC1BuV,EAAOvV,aAAa,IAAK,OAGzBoV,EAAeL,OAAOM,EAAOC,GAC7BH,EAAKJ,OAAOK,GACZF,EAAIH,OAAOI,EAAMI,IAGc,IAA7BhhB,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,gBAEX8S,EAAIlV,aAAa,UAAW,OAGvBkV,CACT,EAQO,YAAA5T,iBAAP,WACE,OAAOkU,EAAWlU,iBAAiB/M,KAAKqE,MAC1C,EAEc,EAAA0I,iBAAd,SACE1I,GAEA,IAAM6c,EAAgB,EAAMnU,iBAAgB,UAAC1I,GAM7C,OALA6c,EAAcze,iBAAiB,SAE/Bye,EAAc5e,cAAc,IAAI6e,EAAgB,cAAe9c,GAAQ,GACvE6c,EAAc5e,cAAc,IAAI8e,EAAiB,eAAgB/c,GAAQ,GAElE6c,CACT,EACF,EAxFA,CAAwC3D,EAAA,I,ysBCvTjC,SAAS8D,EAAiBtgB,GAC/B,IAAMsD,EAAK,QACN,QAAqB,OAAKtD,GAAI,CAAEiF,MAAO,EAAGC,OAAQ,MAAI,CACzDtD,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZqB,EAAG,EACHC,EAAG,EACHU,MAAO,EACPC,OAAQ,EAERqb,cAAe,CACbjc,GAAG,QAAWtE,EAAKwgB,OAAQ,GAC3Bjc,GAAG,QAAWvE,EAAKygB,OAAQ,IAE7BC,YAAa,CACXpc,GAAG,QAAWtE,EAAK2gB,KAAM,GACzBpc,GAAG,QAAWvE,EAAK4gB,KAAM,IAE3BC,WAAW,QAAW7gB,EAAK6gB,WAAa7gB,EAAKgY,YAAa,GAC1DpK,OAAO,QAAiB5N,EAAK8gB,aAAe9gB,EAAK4N,MAAO,MACxDmT,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBjhB,EAAKihB,SAAU,IAC1CC,eAAe,QAAWlhB,EAAKkhB,cAAe,GAC9CC,UAAWnhB,EAAKmhB,UAChBC,YAAaphB,EAAKohB,YAClBC,gBAAgB,QAAWrhB,EAAKqhB,eAAgB,GAChDC,YAAY,QAAiBthB,EAAKshB,WAAY,IAC9CC,iBAAiB,QAAWvhB,EAAKuhB,gBAAiB,GAClDC,kBAAkB,QAAWxhB,EAAKwhB,iBAAkB,KAWtD,OAAO,OACFle,GAGAme,EAAKC,0BAA0Bpe,EAAMid,cAAejd,EAAMod,aAEjE,CAEA,IAAM,EAAQ,6BAQd,cAiIE,WAAmBpd,EAAkBsC,GAArC,MAKE,mBAEOtC,GACAme,EAAKC,0BACNpe,EAAMid,cACNjd,EAAMod,cACP,KAGE9a,IAEL,IACD,K,OAjJO,EAAA+b,aAAe,EAEf,EAAAC,UAAoB,EAEpB,EAAAC,UAAoB,EAGd,EAAAC,sBAAwB,IAAIC,EAAA,EAEzB,EAAAC,0BAA0C,GAInD,EAAAC,oCAAqC,QAC7C,KACA,SAAC3d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMtB,EAAgB,CAAEjc,EAAC,EAAEC,EAAC,GAE5B,EAAKud,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACNyb,cAAa,EACbG,YAAa,EAAKpd,MAAMod,aAE5B,IAIQ,EAAAwB,4BAA+C,KA2C/C,EAAAC,kCAAmC,QAC3C,KACA,SAAC7d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMnB,EAAc,CAAEpc,EAAC,EAAEC,EAAC,GAE1B,EAAKud,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACN4b,YAAW,EACXH,cAAe,EAAKjd,MAAMid,eAE9B,IAIQ,EAAA6B,0BAA6C,KA6DrD,EAAKR,SAAWhc,EAAKuB,SACrB,EAAKzB,OAEL,YAAMU,cAAa,OACjBsI,KAAK2L,IAAI/W,EAAM2B,MAAO3B,EAAMyd,iBAC5BrS,KAAK2L,IAAI/W,EAAM4B,OAAQ5B,EAAM0d,kB,CAEjC,CA2SF,OAtckC,OAmCtB,YAAAqB,kCAAV,SACEhjB,EACA0K,GAFF,WAIE9K,KAAKijB,6BAA8B,QACjC7iB,GACA,SAACiF,EAAkBC,GAKjB,IAAMgc,EAAgB,CAAEjc,EAHxBA,GAAK,EAAKqd,aAAe,EAAKre,MAAMyd,gBAAkB,EAG3Bxc,EAF3BA,GAAK,EAAKod,aAAe,EAAKre,MAAM0d,gBAAkB,GAItD,EAAKa,UAAW,EAChB,EAAKve,MAAQ,OACR,EAAKA,OAAK,CACbid,cAAa,IAIf,EAAK0B,mCAAmC3d,EAAGC,EAC7C,GACAwF,EAEJ,EAIQ,YAAAuY,kCAAR,WACMrjB,KAAKijB,8BACPjjB,KAAKijB,8BACLjjB,KAAKijB,4BAA8B,KAEvC,EAyBU,YAAAK,gCAAV,SACEljB,EACA0K,GAFF,WAIE9K,KAAKmjB,2BAA4B,QAC/B/iB,GACA,SAACiF,EAAkBC,GAEjBD,GAAK,EAAKqd,aAAe,EAAKre,MAAMyd,gBAAkB,EACtDxc,GAAK,EAAKod,aAAe,EAAKre,MAAM0d,gBAAkB,EAEtD,EAAKa,UAAW,EAChB,EAAKve,MAAQ,OACR,EAAKA,OAAK,CACbod,YAAa,CAAEpc,EAAC,EAAEC,EAAC,KAIrB,EAAK4d,iCAAiC7d,EAAGC,EAC3C,GACAwF,EAEJ,EAIQ,YAAAyY,gCAAR,WACMvjB,KAAKmjB,4BACPnjB,KAAKmjB,4BACLnjB,KAAKmjB,0BAA4B,KAErC,EAuCO,YAAAjZ,SAAP,SAAgBD,GACd,YAAMC,SAAQ,YAAC,KACVD,GACAuY,EAAKC,0BACNxY,EAASqX,cACTrX,EAASwX,cAGf,EAQO,YAAAlX,QAAP,SAAeD,GACbtK,KAAK2iB,SAAWrY,EAAYpC,SAC5B,YAAMqC,QAAO,YAAC,KACTD,GAAW,CACdqK,UAAU,IAEd,EAOU,YAAApN,iBAAV,WACE,IAAMnH,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,OAEhB,MAWAP,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN2b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP3I,GAAgB8b,EAChB7b,GAAkB8b,EAElB,IAAMyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAG3DpB,EAAMtgB,SAASkR,gBAAgB,EAAO,OAE5CoP,EAAIlV,aAAa,QAAS,UAAGzF,EAAQ4b,IACrCjB,EAAIlV,aAAa,SAAU,UAAGxF,EAAS2b,IAEvC,IAAMgC,EAAOvjB,SAASkR,gBAAgB,EAAO,QAW7C,OAVAqS,EAAKnY,aAAa,KAAM,UAAG+X,IAC3BI,EAAKnY,aAAa,KAAM,UAAGgY,IAC3BG,EAAKnY,aAAa,KAAM,UAAGiY,IAC3BE,EAAKnY,aAAa,KAAM,UAAGkY,IAC3BC,EAAKnY,aAAa,SAAUkD,GAAS,SACrCiV,EAAKnY,aAAa,eAAgB,UAAGmW,IAErCjB,EAAIH,OAAOoD,GACXxjB,EAAQogB,OAAOG,GAERvgB,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GACI,MAAzBA,EAAQwL,gBACVxL,EAAQwL,cAAc/D,MAAMgc,OAAS,WAGnC,MAWA7jB,KAAKqE,MAVPgB,EAAC,IACDC,EAAC,IACDU,EAAK,QACLC,EAAM,SACN2b,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QAGP3I,GAAgB8b,EAChB7b,GAAkB8b,EAElB,IAAMyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAE3D+B,EAAO1jB,EAAQiM,qBAAqB,OAE1C,GAAIyX,EAAK7jB,OAAS,EAAG,CACnB,IAAM0gB,EAAMmD,EAAKje,KAAK,GAEtB,GAAW,MAAP8a,EAAa,CAEfA,EAAIlV,aAAa,QAAS,UAAGzF,EAAQ4b,IACrCjB,EAAIlV,aAAa,SAAU,UAAGxF,EAAS2b,IAEvC,IAAMmC,EAAQpD,EAAIqD,uBAAuB,EAAO,QAEhD,GAAID,EAAM9jB,OAAS,EAAG,CACpB,IAAM2jB,EAAOG,EAAMle,KAAK,GAEZ,MAAR+d,IACFA,EAAKnY,aAAa,KAAM,UAAG+X,IAC3BI,EAAKnY,aAAa,KAAM,UAAGgY,IAC3BG,EAAKnY,aAAa,KAAM,UAAGiY,IAC3BE,EAAKnY,aAAa,KAAM,UAAGkY,IAC3BC,EAAKnY,aAAa,SAAUkD,GAAS,SACrCiV,EAAKnY,aAAa,eAAgB,UAAGmW,I,GAM7C,GAAI5hB,KAAK2iB,SAAU,CACjB,IAAIsB,EAA2B5jB,SAASC,cAAc,OAClD4jB,EAAyB7jB,SAASC,cAAc,OAEpD,GAAIN,KAAK4iB,SAAU,CACjB,IAAMuB,EAAe/jB,EAAQ6O,uBAC3B,yCAEEkV,EAAalkB,OAAS,IAClB+gB,EAASmD,EAAate,KAAK,MACrBoe,EAAcjD,GAE5B,IAAMoD,EAAahkB,EAAQ6O,uBACzB,uCAEEmV,EAAWnkB,OAAS,IAChB+gB,EAASoD,EAAWve,KAAK,MACnBqe,EAAYlD,E,CA8B5B,GA1BAiD,EAAYtc,UAAUC,IACpB,kCACA,yCAEFqc,EAAYpc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAK0iB,aAAgB,MAClDuB,EAAYpc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAK0iB,aAAgB,MACnDuB,EAAYpc,MAAMwc,aAAe,MACjCJ,EAAYpc,MAAMwF,gBAAkB,UAAGsB,GACvCsV,EAAYpc,MAAMqE,SAAW,WAC7B+X,EAAYpc,MAAMC,KAAO,UAAG0b,EAAKxjB,KAAK0iB,aAAY,MAClDuB,EAAYpc,MAAME,IAAM,UAAG0b,EAAKzjB,KAAK0iB,aAAY,MACjDuB,EAAYpc,MAAMgc,OAAS,OAE3BK,EAAUvc,UAAUC,IAClB,kCACA,uCAEFsc,EAAUrc,MAAM7B,MAAQ,UAAuB,EAApBhG,KAAK0iB,aAAgB,MAChDwB,EAAUrc,MAAM5B,OAAS,UAAuB,EAApBjG,KAAK0iB,aAAgB,MACjDwB,EAAUrc,MAAMwc,aAAe,MAC/BH,EAAUrc,MAAMwF,gBAAkB,UAAGsB,GACrCuV,EAAUrc,MAAMqE,SAAW,WAC3BgY,EAAUrc,MAAMC,KAAO,UAAG4b,EAAK1jB,KAAK0iB,aAAY,MAChDwB,EAAUrc,MAAME,IAAM,UAAG4b,EAAK3jB,KAAK0iB,aAAY,MAC/CwB,EAAUrc,MAAMgc,OAAS,OAEK,OAA1BzjB,EAAQwL,cAAwB,CAIlC,IAHA,IAAM0Y,EAAUlkB,EAAQwL,cAAcqD,uBACpC,mCAEKqV,EAAQrkB,OAAS,IAChB+gB,EAASsD,EAAQze,KAAK,KAChBmb,EAAOnW,SAGrBzK,EAAQwL,cAAchL,YAAYqjB,GAClC7jB,EAAQwL,cAAchL,YAAYsjB,E,CAIpClkB,KAAKojB,kCACHa,EACAjkB,KAAKwE,WAAWoH,eAElB5L,KAAKsjB,gCACHY,EACAlkB,KAAKwE,WAAWoH,c,MAEb,GAAK5L,KAAK2iB,SAcf3iB,KAAKqjB,yCAXL,GAFArjB,KAAKqjB,oCAEyB,OAA1BjjB,EAAQwL,cAKV,IAJM0Y,EAAUlkB,EAAQwL,cAAcqD,uBACpC,mCAGKqV,EAAQrkB,OAAS,GAAG,CACzB,IAAM+gB,KAASsD,EAAQze,KAAK,KAChBmb,EAAOnW,Q,CAM3B,EAOc,EAAA4X,0BAAd,SACEnB,EACAG,GAEA,MAAO,CACLzb,MAAOyJ,KAAKM,IAAIuR,EAAcjc,EAAIoc,EAAYpc,GAC9CY,OAAQwJ,KAAKM,IAAIuR,EAAchc,EAAImc,EAAYnc,GAC/CD,EAAGoK,KAAK8U,IAAIjD,EAAcjc,EAAGoc,EAAYpc,GACzCC,EAAGmK,KAAK8U,IAAIjD,EAAchc,EAAGmc,EAAYnc,GAE7C,EAQO,YAAAM,KAAP,SAAYP,EAAWC,GACrB,YAAMuB,YAAW,UAACxB,EAAGC,GACrB,IAAMkf,EACJxkB,KAAKqE,MAAMid,cAAcjc,EAAIrF,KAAKqE,MAAMod,YAAYpc,GAAK,EACrDof,EACJzkB,KAAKqE,MAAMid,cAAchc,EAAItF,KAAKqE,MAAMod,YAAYnc,GAAK,EAErDof,EAAQ,CACZrf,EAAGmf,EAAcnf,EAAIrF,KAAKqE,MAAM2B,MAAQX,EACxCC,EAAGmf,EAAanf,EAAItF,KAAKqE,MAAM4B,OAASX,GAGpCqf,EAAM,CACVtf,EAAGmf,EAAcxkB,KAAKqE,MAAM2B,MAAQX,EAAIA,EACxCC,EAAGmf,EAAazkB,KAAKqE,MAAM4B,OAASX,EAAIA,GAG1CtF,KAAKqE,MAAQ,OACRrE,KAAKqE,OAAK,CACbid,cAAeoD,EACfjD,YAAakD,GAEjB,EAMO,YAAA9Z,OAAP,WAEE7K,KAAKqjB,oCAEL,YAAMxY,OAAM,UACd,EAQO,YAAA+Z,uBAAP,SACEtjB,GAOA,IAAMyK,EAAa/L,KAAK6iB,sBAAsBthB,GAAGD,GAGjD,OAFAtB,KAAK+iB,0BAA0BxW,KAAKR,GAE7BA,CACT,EACF,EAtcA,CAAkCwR,EAAA,I,8qBClG5B,EAAQ,6BAkBP,SAASsH,EACd9jB,GAEA,OAAO,OACFsgB,EAAiBtgB,IAAK,CACzB4B,KAAM,GACNmf,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAU,QAAiBjhB,EAAKihB,SAAU,IAC1CC,eAAe,QAAWlhB,EAAKkhB,cAAe,GAC9CG,gBAAgB,QAAWrhB,EAAKqhB,eAAgB,GAChDC,YAAY,QAAiBthB,EAAKshB,WAAY,IAC9CC,iBAAiB,QAAWvhB,EAAKuhB,gBAAiB,GAClDC,kBAAkB,QAAWxhB,EAAKwhB,iBAAkB,IAExD,CAEA,kBAIE,WAAmBle,EAAyBsC,GAA5C,MAKE,iBAEOtC,GAAK,KAGLsC,KAEN,K,OAQO,EAAAqc,oCAAqC,QAC7C,IACA,SAAC3d,EAAkBC,GACjB,EAAKsd,UAAW,EAEhB,IAAMtB,EAAgB,CAAEjc,EAAC,EAAEC,EAAC,GAG5B,EAAK+E,SAGL,EAAKwY,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACNyb,cAAa,EACbG,YAAa,EAAKpd,MAAMod,aAE5B,IAGQ,EAAAyB,kCAAmC,QAC3C,IACA,SAAC7d,EAAkBC,GACjB,EAAKsd,UAAW,EAChB,IAAMnB,EAAc,CAAEpc,EAAC,EAAEC,EAAC,GAG1B,EAAK+E,SAGL,EAAKwY,sBAAsBzhB,KAAK,CAC9ByE,KAAM,EACN4b,YAAW,EACXH,cAAe,EAAKjd,MAAMid,eAE9B,IAxCA,EAAKjX,S,CACP,CA8PF,OAjRyC,OA6D7B,YAAAL,iBAAV,SAA2B5J,GACzB,YAAM4J,iBAAgB,UAAC5J,GAEnB,IAkBAwjB,EACAjD,EAnBA,EAeA3gB,KAAKqE,MAdPgB,EAAC,IACDC,EAAC,IACDsc,EAAS,YACTE,EAAe,kBACfC,EAAe,kBACfT,EAAa,gBACbG,EAAW,cACX9S,EAAK,QACLqT,EAAQ,WACRK,EAAU,aACVJ,EAAa,gBACbG,EAAc,iBACdE,EAAe,kBACfC,EAAgB,mBAGZuB,EAAO1jB,EAAQiM,qBAAqB,OAI1C,GAAIyX,EAAK7jB,OAAS,EAAlB,CAGE,GAAW,OAFX0gB,EAAMmD,EAAKje,KAAK,IAEC,CAIf,IAFA,IAAMke,EAAQpD,EAAIqD,uBAAuB,EAAO,QAC5Cc,EAASnE,EAAIqD,uBAAuB,EAAO,KACxCc,EAAO7kB,OAAS,GACrB6kB,EAAO,GAAGja,SAGRkZ,EAAM9jB,OAAS,IACjB2jB,EAAOG,EAAMle,KAAK,G,CAQxB,GAAW,MAAP8a,GAAuB,MAARiD,EAAnB,CAMA,IACMmB,EAAa,GAEbC,EAAS1D,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EACjEmD,EAAS3D,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EACjEmD,EAASzD,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC/DqD,EAAS1D,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAEjEyB,EAAKlC,EAAcjc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC7D2B,EAAKnC,EAAchc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAC7D2B,EAAKjC,EAAYpc,EAAIA,EAAIuc,EAAY,EAAIE,EAAkB,EAC3D6B,EAAKlC,EAAYnc,EAAIA,EAAIsc,EAAY,EAAIG,EAAkB,EAI3DqD,EAAW,IADL3V,KAAK4V,MAAMF,EAASF,EAAQC,EAASF,GACzBvV,KAAK6V,GA2D3B,GAvDIhD,GAAmB,IACjByB,EAAQ1B,EAAWkD,MAAM,QAC7BjD,EAAkB,EAClByB,EAAMpjB,SAAQ,SAAA6kB,GACRA,EAAEvlB,OAASqiB,IACbA,EAxBW,GAwBOkD,EAAEvlB,OAExB,IACIsiB,GAAoB,IACtBA,EAVe,GAUIwB,EAAM9jB,SAIzBgiB,GAAiB,IACf8B,EAAQ/B,EAASuD,MAAM,QAC3BtD,EAAgB,EAChB8B,EAAMpjB,SAAQ,SAAA6kB,GACRA,EAAEvlB,OAASgiB,IACbA,EArCW,GAqCKuD,EAAEvlB,OAEtB,IACImiB,GAAkB,IACpBA,EAvBe,GAuBE2B,EAAM9jB,SAIvBujB,EAAKE,IAEPF,GAAMuB,EACNrB,GAAMqB,EAAa9C,GAGjBuB,EAAKE,IAEPF,GAAMuB,EAAazC,EACnBoB,GAAMqB,GAGJtB,EAAKE,IAEPF,GAAMsB,EACNpB,GAAMoB,EAAa3C,GAGjBqB,EAAKE,IAEPF,GAAMsB,EAAaxC,EACnBoB,GAAMoB,QAGY,IAATpW,IACTA,EAAQ,QAIoB,OAA1BvO,EAAQwL,cAAwB,CAIlC,IAHA,IAAM6Z,EAASrlB,EAAQwL,cAAcqD,uBACnC,oBAEKwW,EAAOxlB,OAAS,GAAG,CACxB,IAAM0D,EAAQ8hB,EAAO5f,KAAK,GACtBlC,GAAOA,EAAMkH,Q,CAMnB,IAHA,IAAM6a,EAAStlB,EAAQwL,cAAcqD,uBACnC,oBAEKyW,EAAOzlB,OAAS,GAAG,CACxB,IAAM0lB,EAAQD,EAAO7f,KAAK,GACtB8f,GAAOA,EAAM9a,Q,EAIrB,IAAI+a,EAAwB,EAAZhE,EAEZiE,EAAYb,GAAUE,EAASF,GAAU,EAAIY,EAC7CE,EAAYb,GAAUE,EAASF,GAAU,EAAIW,EAE7CG,EAA0B1lB,SAASC,cAAc,OACrDylB,EAAWpe,UAAUC,IAAI,oBACzBme,EAAWle,MAAMqE,SAAW,WAC5B6Z,EAAWle,MAAMme,OAAS,UAAGJ,EAAS,wBACtCG,EAAWle,MAAMoe,aAAe,UAAGL,EAAS,oBAAYjX,GACxDoX,EAAWle,MAAMC,KAAO,UAAG+d,EAAS,MACpCE,EAAWle,MAAME,IAAM,UAAG+d,EAAS,MACnCC,EAAWle,MAAMqe,UAAY,iBAAU,GAAKd,EAAC,QAE7C,IAAIe,EAAwB9lB,SAASC,cAAc,OAcnD,GAbA6lB,EAASxe,UAAUC,IAAI,oBACvBue,EAASte,MAAMqE,SAAW,WAC1Bia,EAASte,MAAMme,OAAS,UAAGJ,EAAS,wBACpCO,EAASte,MAAMoe,aAAe,UAAGL,EAAS,oBAAYjX,GACtDwX,EAASte,MAAMC,KAAO,UAAG+d,EAAS,MAClCM,EAASte,MAAME,IAAM,UAAG+d,EAAS,MACjCK,EAASte,MAAMqe,UAAY,iBAAU,IAAMd,EAAC,QAEd,OAA1BhlB,EAAQwL,gBACVxL,EAAQwL,cAAchL,YAAYmlB,GAClC3lB,EAAQwL,cAAchL,YAAYulB,IAGlB,IAAd9D,EAAkB,CACpB,IAAI+D,EAA8B/lB,SAASC,cAAc,OAEzD,IACE8lB,EAAe9c,UAAY+Y,EAC3B+D,EAAeve,MAAMqE,SAAW,WAChCka,EAAeve,MAAMC,KAAO,UAAG0b,EAAE,MACjC4C,EAAeve,MAAME,IAAM,UAAG0b,EAAE,MAChC2C,EAAeve,MAAM7B,MAAQ,UAAGsc,EAAe,MAC/C8D,EAAeve,MAAMme,OAAS,oBAAarX,GAE3CyX,EAAeze,UAAUC,IAAI,mBAAoB,c,CACjD,MAAO4M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BpU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAYwlB,E,CAItC,GAAgB,IAAZpE,EAAgB,CAClB,IAAIsE,EAA4BjmB,SAASC,cAAc,OAEvD,IACEgmB,EAAahd,UAAY0Y,EACzBsE,EAAaze,MAAMqE,SAAW,WAC9Boa,EAAaze,MAAMC,KAAO,UAAG4b,EAAE,MAC/B4C,EAAaze,MAAME,IAAM,UAAG4b,EAAE,MAC9B2C,EAAaze,MAAM7B,MAAQ,UAAGic,EAAa,MAC3CqE,EAAaze,MAAMme,OAAS,oBAAarX,GAEzC2X,EAAa3e,UAAUC,IAAI,mBAAoB,Y,CAC/C,MAAO4M,GACP6R,QAAQ7R,MAAMA,E,CAGc,OAA1BpU,EAAQwL,eACVxL,EAAQwL,cAAchL,YAAY0lB,E,GAGxC,EACF,EAjRA,CAAyC,G,8qBCHlC,SAASC,EAAkBxlB,GAChC,IAC4B,iBAAlBA,EAAKgc,UAAkD,IAAzBhc,EAAKgc,SAAS9c,SAC/B,OAArBc,EAAK2M,YAEL,MAAM,IAAIhK,UAAU,sBAEtB,GAAuC,QAAnC,QAAW3C,EAAKylB,QAAS,MAC3B,MAAM,IAAI9iB,UAAU,qBAGtB,IAAM+iB,GAAiB,QAAa1lB,EAAK0lB,gBACnChZ,EAAOgZ,EA3Bf,SAAqB1lB,GACnB,OAAK,QAAcA,EAAK0M,OACnB,QAAc1M,EAAK2M,aACjB,MADsC,QAAa3M,EAAK2M,aADzB3M,EAAK0M,IAG7C,CAuBgCiZ,CAAY3lB,GAAQ,KAElD,OAAO,UACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN6jB,QAAS/iB,SAAS1C,EAAKylB,SACvBzJ,UAAU,QAAiBhc,EAAKgc,SAAU,MAC1CC,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDyJ,eAAc,EACdhZ,KAAI,KACD,QAAqB1M,GAE5B,CACA,+B,8CAsCA,QAtCmC,OACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAevC,OAdAF,EAAQG,UAAY,QAEfP,KAAKqE,MAAMoiB,gBAAgD,OAA9BzmB,KAAKqE,MAAM2Y,eAMlChd,KAAKqE,MAAMoiB,gBAAqC,MAAnBzmB,KAAKqE,MAAMoJ,OAEjDrN,EAAQyH,MAAMsV,gBAAkB,OAChC/c,EAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,OAP/BrN,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM2Y,eAAc,KAChE5c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,UAO9Bld,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACpBJ,KAAKqE,MAAMoiB,gBAAgD,OAA9BzmB,KAAKqE,MAAM2Y,eAOlChd,KAAKqE,MAAMoiB,gBAAqC,MAAnBzmB,KAAKqE,MAAMoJ,OAEjDrN,EAAQyH,MAAMsV,gBAAkB,OAChC/c,EAAQkJ,UAAYtJ,KAAKqE,MAAMoJ,OAR/BrN,EAAQyH,MAAMsV,gBAAkB,cAAOnd,KAAKqE,MAAM2Y,eAAc,KAChE5c,EAAQyH,MAAMuV,iBAAmB,YACjChd,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACnCld,EAAQkJ,UAAY,GAMxB,EACF,EAtCA,CAAmCiU,EAAA,I,8qBC3B7BoJ,EAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,WACL,IAAK,UACH,OAAOA,EACT,QACE,MAAO,WAEb,EAMMC,EAAmB,SAACC,GACxB,OAAQA,GACN,IAAK,WACL,IAAK,OACH,OAAOA,EACT,QACE,MAAO,WAEb,EAWO,SAASC,EAAkBhmB,GAChC,GACgC,iBAAvBA,EAAKimB,eACkB,IAA9BjmB,EAAKimB,cAAc/mB,OAEnB,MAAM,IAAIyD,UAAU,qBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACNikB,UAAWD,EAAe5lB,EAAK6lB,WAC/BE,YAAaD,EAAiB9lB,EAAK+lB,aACnCE,cAAejmB,EAAKimB,cACpBC,qBAAqB,QAAWlmB,EAAKkmB,oBAAqB,GAC1DC,mBAAmB,QAAanmB,EAAKmmB,mBACrCvY,OAAO,QAAiB5N,EAAK4N,MAAO,SACjC,QAAqB5N,GAE5B,CAEA,kBAIE,WAAmBsD,EAAmBsC,GAAtC,MAEE,YAAMtC,EAAOsC,IAAK,K,OAJZ,EAAAwgB,YAA6B,KAoBnC,EAAKC,WACH,WAEE,EAAK1iB,gBAAgB4E,UAAY,EAAK+d,cAAc/d,SACtD,GAKyB,aAAzB,EAAKjF,MAAMuiB,UAA2B,IAAQU,EAAMC,e,CAExD,CAqhBF,OAtjBmC,OAsCzB,YAAAC,SAAR,WAC2B,OAArBxnB,KAAKmnB,cACPhS,OAAOsS,cAAcznB,KAAKmnB,aAC1BnnB,KAAKmnB,YAAc,KAEvB,EAQQ,YAAAC,UAAR,SACEM,EACAC,QAAA,IAAAA,IAAAA,EAAmBL,EAAMC,eAEzBvnB,KAAKwnB,WACLxnB,KAAKmnB,YAAchS,OAAOyS,YAAYF,EAASC,EACjD,EAOU,YAAApgB,iBAAV,WACE,OAAOvH,KAAKqnB,aACd,EAMU,YAAArd,iBAAV,SAA2B5J,GAEnB,MAAyCJ,KAAK6nB,eAClD7nB,KAAKqE,MAAM2B,MACXhG,KAAKqE,MAAM4B,QAFE6hB,EAAQ,QAAUC,EAAS,SAKb,YAAzB/nB,KAAKqE,MAAMuiB,YACoB,IAA7B5mB,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAACnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEnD7F,EAAQuH,UAAUiP,QAAQ,iBAAkB,oBAEX,IAA7B5W,KAAK2G,KAAKT,gBACZ,YAAMiB,cAAa,UAAC2gB,EAAUC,GAEhC3nB,EAAQuH,UAAUiP,QAAQ,gBAAiB,mBAE7CxW,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMO,YAAAuB,OAAP,WAEE7K,KAAKwnB,WAEL,YAAM3c,OAAM,UACd,EAQU,YAAA1D,cAAV,SAAwBnB,EAAeC,GAE/B,MAAyCjG,KAAK6nB,eAClD7hB,EACAC,GAFa6hB,EAAQ,QAAUC,EAAS,SAMb,YAAzB/nB,KAAKqE,MAAMuiB,UACb,YAAMzf,cAAa,UAACnB,EAAOC,GAI3B,YAAMkB,cAAa,UAAC2gB,EAAUC,EAElC,EAQQ,YAAAV,YAAR,WACE,OAAQrnB,KAAKqE,MAAMuiB,WACjB,IAAK,WACH,OAAO5mB,KAAKgoB,sBACd,IAAK,UACH,OAAOhoB,KAAKioB,qBACd,QACE,MAAM,IAAIxT,MAAM,uBAEtB,EAMQ,YAAAuT,oBAAR,WACE,IAAMhX,EAAQ,6BACRkX,EACO,UADPA,EAGE,UAHFA,EAIM,UAJNA,EAKO,UALPA,EAMQ,UAGR,EAAoBloB,KAAK6nB,iBAAvB7hB,EAAK,QAAEC,EAAM,SAKfkiB,EACHC,GAA4CpiB,EAAS,IAElD0F,EAAMrL,SAASC,cAAc,OACnCoL,EAAInL,UAAY,iBAChBmL,EAAI7D,MAAM7B,MAAQ,UAAGA,EAAK,MAC1B0F,EAAI7D,MAAM5B,OAAS,UAAGA,EAAM,MAG5B,IAAM0a,EAAMtgB,SAASkR,gBAAgBP,EAAO,OAE5C2P,EAAIlV,aAAa,UAAW,eAG5B,IAAM4c,EAAYhoB,SAASkR,gBAAgBP,EAAO,KAClDqX,EAAU5c,aAAa,QAAS,aAChC,IAAM6c,EAAsBjoB,SAASkR,gBAAgBP,EAAO,UAC5DsX,EAAoB7c,aAAa,KAAM,MACvC6c,EAAoB7c,aAAa,KAAM,MACvC6c,EAAoB7c,aAAa,IAAK,MACtC6c,EAAoB7c,aAAa,OAAQyc,GACzCI,EAAoB7c,aAAa,SAjCd,WAkCnB6c,EAAoB7c,aAAa,eAAgB,KACjD6c,EAAoB7c,aAAa,iBAAkB,SAEnD4c,EAAU7H,OAAO8H,GAGjB,IAAMC,EAAOvoB,KAAKwoB,mBAClB,GAAID,EAAKtoB,OAAS,EAAG,CACnB,IAAMwoB,EAAuBpoB,SAASkR,gBAAgBP,EAAO,QAC7DyX,EAAqBhd,aAAa,cAAe,UACjDgd,EAAqBhd,aAAa,YAAa,KAC/Cgd,EAAqBhd,aACnB,YACA,+BAEFgd,EAAqBhd,aAAa,OAAQyc,GAC1CO,EAAqB/Z,YAAc6Z,EACnCF,EAAU7H,OAAOiI,E,CAInB,IAAMC,EAAaroB,SAASkR,gBAAgBP,EAAO,KACnD0X,EAAWjd,aAAa,QAAS,SAEjC,IAAMkd,EAAgBtoB,SAASkR,gBAAgBP,EAAO,KACtD2X,EAAcld,aAAa,QAAS,QACpCkd,EAAcld,aAAa,YAAa,oBACxC,IAAMmd,EAASvoB,SAASkR,gBAAgBP,EAAO,QAC/C4X,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,KAAM,MAC1Bmd,EAAOnd,aAAa,KAAM,KAC1Bmd,EAAOnd,aAAa,SAAUyc,GAC9BU,EAAOnd,aAAa,eAAgB,KACpC,IAAMod,EAASxoB,SAASkR,gBAAgBP,EAAO,QAC/C6X,EAAOpd,aAAa,KAAM,MAC1Bod,EAAOpd,aAAa,KAAM,KAC1Bod,EAAOpd,aAAa,KAAM,MAC1Bod,EAAOpd,aAAa,KAAM,KAC1Bod,EAAOpd,aAAa,SAAUyc,GAC9BW,EAAOpd,aAAa,eAAgB,KAEpCkd,EAAcnI,OAAOoI,EAAQC,GAE7BH,EAAWlI,OAAOmI,GAElB,IAAK,IAAI1d,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAM6d,EAAOzoB,SAASkR,gBAAgBP,EAAO,QAC7C8X,EAAKrd,aAAa,KAAM,KACxBqd,EAAKrd,aAAa,KAAM,KACxBqd,EAAKrd,aAAa,SAAUyc,GAC5BY,EAAKrd,aAAa,YAAa,kCAA+B,EAAJR,EAAK,MAE3DA,EAAI,GAAM,GACZ6d,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,eAAgBR,EAAI,IAAO,EAAI,IAAM,OAEvD6d,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,KAAM,MACxBqd,EAAKrd,aAAa,eAAgB,QAIpCid,EAAWlI,OAAOsI,E,CAMpB,IAAMC,EAAW1oB,SAASkR,gBAAgBP,EAAO,KACjD+X,EAAStd,aAAa,QAAS,aAC/Bsd,EAAStd,aAAa,YAAa,oBAEnC,IAAMud,EAAY3oB,SAASkR,gBAAgBP,EAAO,QAClDgY,EAAUvd,aAAa,QAAS,eAChCud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,KAAM,MAC7Bud,EAAUvd,aAAa,KAAM,KAC7Bud,EAAUvd,aAAa,SAAUyc,GACjCc,EAAUvd,aAAa,eAAgB,KACvCud,EAAUvd,aAAa,iBAAkB,SAEzC,IAAMwd,EAAY5oB,SAASkR,gBAAgBP,EAAO,QAClDiY,EAAUxd,aAAa,QAAS,eAChCwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,KAAM,QAC7Bwd,EAAUxd,aAAa,KAAM,KAC7Bwd,EAAUxd,aAAa,SAAUyc,GACjCe,EAAUxd,aAAa,eAAgB,OACvCwd,EAAUxd,aAAa,iBAAkB,SAEzCsd,EAASvI,OAAOwI,EAAWC,GAG3B,IAAMC,EAAa7oB,SAASkR,gBAAgBP,EAAO,KACnDkY,EAAWzd,aAAa,QAAS,eACjCyd,EAAWzd,aAAa,YAAa,oBAErC,IAAM0d,EAAc9oB,SAASkR,gBAAgBP,EAAO,QACpDmY,EAAY1d,aAAa,QAAS,iBAClC0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,KAAM,MAC/B0d,EAAY1d,aAAa,KAAM,KAC/B0d,EAAY1d,aAAa,SAAUyc,GACnCiB,EAAY1d,aAAa,eAAgB,KACzC0d,EAAY1d,aAAa,iBAAkB,SAE3C,IAAM2d,EAAc/oB,SAASkR,gBAAgBP,EAAO,QACpDoY,EAAY3d,aAAa,QAAS,iBAClC2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,KAAM,QAC/B2d,EAAY3d,aAAa,KAAM,KAC/B2d,EAAY3d,aAAa,SAAUyc,GACnCkB,EAAY3d,aAAa,eAAgB,OACzC2d,EAAY3d,aAAa,iBAAkB,SAC3C,IAAM4d,EAAgBhpB,SAASkR,gBAAgBP,EAAO,UACtDqY,EAAc5d,aAAa,IAAK,KAChC4d,EAAc5d,aAAa,OAAQyc,GAEnCgB,EAAW1I,OAAO2I,EAAaC,EAAaC,GAG5C,IAAMC,EAAajpB,SAASkR,gBAAgBP,EAAO,KACnDsY,EAAW7d,aAAa,QAAS,eACjC6d,EAAW7d,aAAa,YAAa,oBACrC,IAAM8d,EAAgBlpB,SAASkR,gBAAgBP,EAAO,QACtDuY,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,KAAM,MACjC8d,EAAc9d,aAAa,KAAM,KACjC8d,EAAc9d,aAAa,SAAUyc,GACrCqB,EAAc9d,aAAa,eAAgB,KAC3C8d,EAAc9d,aAAa,iBAAkB,SAC7C,IAAM+d,EAAgBnpB,SAASkR,gBAAgBP,EAAO,UACtDwY,EAAc/d,aAAa,IAAK,KAChC+d,EAAc/d,aAAa,OAAQyc,GAEnCoB,EAAW9I,OAAO+I,EAAeC,GAGjC,IAAMC,EAAMppB,SAASkR,gBAAgBP,EAAO,UAC5CyY,EAAIhe,aAAa,KAAM,MACvBge,EAAIhe,aAAa,KAAM,MACvBge,EAAIhe,aAAa,IAAK,OACtBge,EAAIhe,aAAa,OAAQyc,GAGzB,IAAM5S,EAAOtV,KAAK0pB,gBACZpT,EAAUhB,EAAKiB,aACfH,EAAUd,EAAKe,aAEfsT,EAAW,EAAarT,EACxBsT,EAAc,EAAaxT,EAAwBE,EAAU,GAAxB,EACrCuT,EAAY,GAHJvU,EAAKa,WAGkCC,EAAU,GAAxB,GA0EvC,GAxEA2S,EAAStd,aAAa,YAAa,kCAA2Boe,EAAS,MACvEX,EAAWzd,aACT,YACA,kCAA2Bme,EAAW,MAExCN,EAAW7d,aACT,YACA,kCAA2Bke,EAAQ,MAIrChJ,EAAIH,OAAO6H,EAAWK,EAAYK,EAAUG,EAAYI,EAAYG,GAEpE9I,EAAIlV,aAAa,YAAa,eAS9BC,EAAIpC,UAAY,4FAIN,QACA,YACA,uCAAgCugB,EAAS,SACzCC,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCD,EAAY,IAAG,SAC/CC,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCF,EAAW,SAC3CE,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCF,EAAc,IAAG,SACjDE,KAAK,MAAK,wGAKV,QACA,YACA,uCAAgCH,EAAQ,SACxCG,KAAK,MAAK,uDAGV,QACA,YACA,uCAAgCH,EAAW,IAAG,SAC9CG,KAAK,MAAK,kDAMpBpe,EAAI8U,OAAOG,GAGoB,aAA3B3gB,KAAKqE,MAAMyiB,YAA4B,CACzC,IAAMiD,EAA4B1pB,SAASC,cAAc,QACzDypB,EAASxpB,UAAY,OACrBwpB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASliB,MAAMmiB,SAAW,UAAG7B,EAAY,MACrCnoB,KAAKqE,MAAMsK,QAAOob,EAASliB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDjD,EAAI8U,OAAOuJ,E,CAGb,OAAOre,CACT,EAMQ,YAAAuc,mBAAR,WACE,IAAM7nB,EAA0BC,SAASC,cAAc,OACvDF,EAAQG,UAAY,gBAEd,MAAoBP,KAAK6nB,iBAAvB7hB,EAAK,QAAEC,EAAM,SACjBgkB,EAAWjkB,EACXC,EAASD,IACXikB,EAAWhkB,GAIb,IAEMikB,EAAuB,EAAIlqB,KAAKqE,MAAM2iB,cAAc/mB,OACpDkqB,EAHmB,GAGgBF,EAAY,IAC/C9B,EACHC,KAA4C6B,EAAY,IACrDG,EAAa3a,KAAK8U,IANC,GAOH2F,EAAuBD,EAAY,IACtDjkB,EAAQ,IAAO,IAIZsP,EAAOtV,KAAK0pB,gBAGlB,GAA+B,aAA3B1pB,KAAKqE,MAAMyiB,YAA4B,CACzC,IAAMiD,EAA4B1pB,SAASC,cAAc,QACzDypB,EAASxpB,UAAY,OACrBwpB,EAASrb,aAAc,QAAU4G,EAAM,WACvCyU,EAASliB,MAAMmiB,SAAW,UAAG7B,EAAY,MACrCnoB,KAAKqE,MAAMsK,QAAOob,EAASliB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDvO,EAAQogB,OAAOuJ,E,CAIjB,IAAMM,EAA4BhqB,SAASC,cAAc,QACzD+pB,EAAS9pB,UAAY,OACrB8pB,EAAS3b,aAAc,QAAU4G,GACjC+U,EAASxiB,MAAMmiB,SAAW,UAAGG,EAAY,MACrCnqB,KAAKqE,MAAMsK,QAAO0b,EAASxiB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACxDvO,EAAQogB,OAAO6J,GAGf,IAAM9B,EAAOvoB,KAAKwoB,mBAClB,GAAID,EAAKtoB,OAAS,EAAG,CACnB,IAAMqqB,EAA0BjqB,SAASC,cAAc,QACvDgqB,EAAO/pB,UAAY,WACnB+pB,EAAO5b,YAAc6Z,EACrB+B,EAAOziB,MAAMmiB,SAAW,UAAGI,EAAU,MACjCpqB,KAAKqE,MAAMsK,QAAO2b,EAAOziB,MAAM8G,MAAQ3O,KAAKqE,MAAMsK,OACtDvO,EAAQogB,OAAO8J,E,CAGjB,OAAOlqB,CACT,EAMQ,YAAAspB,cAAR,SAAsBa,QAAA,IAAAA,IAAAA,EAAA,MACpB,IAAM3O,EAAI2O,GAA4B,IAAI7gB,KACpC8gB,EAAkD,IAAjCxqB,KAAKqE,MAAM4iB,oBAC5BwD,EAAwC,GAAxB7O,EAAE8O,oBAA2B,IAC7CC,EAAa/O,EAAErH,UAAYiW,EAAiBC,EAElD,OAAO,IAAI/gB,KAAKihB,EAClB,EAMO,YAAAnC,iBAAP,SAAwBoC,QAAA,IAAAA,IAAAA,EAAmB5qB,KAAKqE,MAAM2iB,eAC9C,IAAG,EAAa4D,EAASrF,MAAM,KAA5B,GACT,YADa,IAAG,KAAE,GACN3O,QAAQ,IAAK,IAC3B,EAMQ,YAAAiR,eAAR,SACE7hB,EACAC,GAEA,YAHA,IAAAD,IAAAA,EAAgBhG,KAAKqE,MAAM2B,YAC3B,IAAAC,IAAAA,EAAiBjG,KAAKqE,MAAM4B,QAEpBjG,KAAKqE,MAAMuiB,WACjB,IAAK,WACH,IAAIiE,EAAW,IAEX7kB,EAAQ,GAAKC,EAAS,EACxB4kB,EAAWpb,KAAK8U,IAAIve,EAAOC,GAClBD,EAAQ,EACjB6kB,EAAW7kB,EACFC,EAAS,IAClB4kB,EAAW5kB,GAGb,IAAI6kB,EAAc,EAKlB,MAJ+B,aAA3B9qB,KAAKqE,MAAMyiB,cACbgE,EAAc7kB,EAAS,GAGlB,CACLD,MAAO6kB,EACP5kB,OAAQ4kB,EAAWC,GAGvB,IAAK,UAcH,OAbI9kB,EAAQ,GAAKC,EAAS,EAExBA,EAASD,EAAQ,EAAIC,EAASD,EAAQ,EAAIC,EACjCD,EAAQ,EACjBC,EAASD,EAAQ,EACRC,EAAS,EAElBD,EAAiB,EAATC,GAERD,EAAQ,IACRC,EAAS,IAGJ,CACLD,MAAK,EACLC,OAAM,GAGV,QACE,MAAM,IAAIwO,MAAM,uBAEtB,EApjBuB,EAAA8S,cAAgB,IAqjBzC,C,CAtjBA,CAAmChK,EAAA,I,8qBC9D5B,SAASwN,GAAgBhqB,GAC9B,OAAO,QACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACNgB,MAAO,KACPC,eAAe,EACfG,SAAU,KACVC,WAAY,KAEZ+U,aAAa,QAAWhY,EAAKgY,YAAa,GAC1C8I,aAAa,QAAiB9gB,EAAK8gB,YAAa,MAChDmJ,WAAW,QAAiBjqB,EAAKiqB,UAAW,MAC5CC,gBAAiBlqB,EAAKkqB,iBAE1B,CAEA,gC,8CAyDA,QAzDiC,OACrB,YAAA1jB,iBAAV,WACE,IAAME,EAAsBpH,SAASC,cAAc,OAcnD,GAbAmH,EAAIlH,UAAY,MAEhBkH,EAAII,MAAMqjB,UAAY,aAElBlrB,KAAKqE,MAAM4mB,gBACbxjB,EAAII,MAAMwF,gBAAkB,cAExBrN,KAAKqE,MAAM2mB,YACbvjB,EAAII,MAAMwF,gBAAkBrN,KAAKqE,MAAM2mB,WAKvChrB,KAAKqE,MAAM0U,YAAc,EAAG,CAC9BtR,EAAII,MAAMsjB,YAAc,QAExB,IAAMC,EAAiB3b,KAAK8U,IAAIvkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE8S,EAActJ,KAAK8U,IAAIvkB,KAAKqE,MAAM0U,YAAaqS,GACrD3jB,EAAII,MAAMkR,YAAc,UAAGA,EAAW,MAElC/Y,KAAKqE,MAAMwd,cACbpa,EAAII,MAAMga,YAAc7hB,KAAKqE,MAAMwd,Y,CAIvC,OAAOpa,CACT,EAMU,YAAAuC,iBAAV,SAA2B5J,GAUzB,GATIJ,KAAKqE,MAAM4mB,gBACb7qB,EAAQyH,MAAMwF,gBAAkB,cAE5BrN,KAAKqE,MAAM2mB,YACb5qB,EAAQyH,MAAMwF,gBAAkBrN,KAAKqE,MAAM2mB,WAK3ChrB,KAAKqE,MAAM0U,YAAc,EAAG,CAC9B3Y,EAAQyH,MAAMsjB,YAAc,QAE5B,IAAMC,EAAiB3b,KAAK8U,IAAIvkB,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAAU,EACjE8S,EAActJ,KAAK8U,IAAIvkB,KAAKqE,MAAM0U,YAAaqS,GACrDhrB,EAAQyH,MAAMkR,YAAc,UAAGA,EAAW,MAEtC/Y,KAAKqE,MAAMwd,cACbzhB,EAAQyH,MAAMga,YAAc7hB,KAAKqE,MAAMwd,Y,CAG7C,EACF,EAzDA,CAAiCtE,EAAA,I,orBCzB1B,SAAS8N,GAAkBtqB,GAChC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,KACH,QAAqB5B,GAE5B,CAEA,gC,8CAoBA,QApBmC,QACvB,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAIvC,OAHAF,EAAQG,UAAY,QACpBH,EAAQkJ,UAAYtJ,KAAKgJ,6BAElB5I,CACT,EAOO,YAAAkH,sBAAP,WACE,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EApBA,CAAmCmd,EAAA,I,orBCQ7B+N,GAAiB,SAACC,GACtB,OAAQA,GACN,IAAK,SACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,SAEb,EA6BO,SAASC,GACdzqB,GAEA,GAA0B,iBAAfA,EAAK0I,OAA4C,IAAtB1I,EAAK0I,MAAMxJ,OAC/C,MAAM,IAAIyD,UAAU,iBAGtB,IAAM+nB,EA9BkB,SACxBA,GAEA,OAAQA,GACN,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACH,OAAOA,EACT,QACE,MAAO,OAEb,CAkBuBC,CAAkB3qB,EAAK0qB,cAE5C,OAAO,mBACF,QAAqB1qB,IAAK,CAC7B4B,KAAM,EACN4oB,UAAWD,GAAevqB,EAAKwqB,WAC/B9hB,MAAO1I,EAAK0I,QACS,SAAjBgiB,EACA,CAAEA,aAAY,GACd,CAAEA,aAAY,EAAEpd,QAAQ,QAAWtN,EAAKsN,OAAQ,MACjD,QAAmBtN,KACnB,QAAqBA,GAE5B,CAEA,gC,8CAwCA,QAxCyC,QAC7B,YAAAwG,iBAAV,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAUvC,GATAF,EAAQG,UAAY,gBAGW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAGG,UAAzB9N,KAAKqE,MAAMknB,UAAuB,CACpC,IAAMI,EAAMtrB,SAASC,cAAc,OACnCqrB,EAAI3d,IAAMhO,KAAKqE,MAAMoF,MACrBrJ,EAAQogB,OAAOmL,E,KACV,CAEL,IAAIjV,EAAO1W,KAAKqE,MAAMoF,MAClB9F,EAAQ3D,KAAKgJ,6BACbrF,EAAM1D,OAAS,IACjByW,GAAO,QAAc,CAAC,CAAElN,MAAO,iBAAkBC,MAAOiN,IAAS/S,IAGnEvD,EAAQkJ,UAAYoN,C,CAGtB,OAAOtW,CACT,EAMc,YAAAkH,sBAAV,WACF,IAAMlH,EAAUC,SAASC,cAAc,OAGvC,OAFAF,EAAQG,UAAY,4BAEbH,CACT,EACF,EAxCA,CAAyCmd,EAAA,I,kCC7FrCqO,GAAKnc,KAAK6V,GACVuG,GAAM,EAAID,GACVE,GAAU,KACVC,GAAaF,GAAMC,GAEvB,SAASE,KACPhsB,KAAKisB,IAAMjsB,KAAKksB,IAChBlsB,KAAKmsB,IAAMnsB,KAAKosB,IAAM,KACtBpsB,KAAKqsB,EAAI,EACX,CAEA,SAAS/jB,KACP,OAAO,IAAI0jB,EACb,CAEAA,GAAK1P,UAAYhU,GAAKgU,UAAY,CAChCgQ,YAAaN,GACbO,OAAQ,SAASlnB,EAAGC,GAClBtF,KAAKqsB,GAAK,KAAOrsB,KAAKisB,IAAMjsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKksB,IAAMlsB,KAAKosB,KAAO9mB,EAC7E,EACAknB,UAAW,WACQ,OAAbxsB,KAAKmsB,MACPnsB,KAAKmsB,IAAMnsB,KAAKisB,IAAKjsB,KAAKosB,IAAMpsB,KAAKksB,IACrClsB,KAAKqsB,GAAK,IAEd,EACAI,OAAQ,SAASpnB,EAAGC,GAClBtF,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EACvD,EACAonB,iBAAkB,SAASlJ,EAAIC,EAAIpe,EAAGC,GACpCtF,KAAKqsB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,KAAOzjB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EACnF,EACAqnB,cAAe,SAASnJ,EAAIC,EAAIC,EAAIC,EAAIte,EAAGC,GACzCtF,KAAKqsB,GAAK,MAAQ7I,EAAM,MAAQC,EAAM,MAAQC,EAAM,MAAQC,EAAM,KAAO3jB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKosB,KAAO9mB,EAC/G,EACAsnB,MAAO,SAASpJ,EAAIC,EAAIC,EAAIC,EAAIlH,GAC9B+G,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIlH,GAAKA,EAC7C,IAAIoQ,EAAK7sB,KAAKmsB,IACVW,EAAK9sB,KAAKosB,IACVW,EAAMrJ,EAAKF,EACXwJ,EAAMrJ,EAAKF,EACXwJ,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0J,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAIzQ,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGjD,GAAiB,OAAbzc,KAAKmsB,IACPnsB,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,IAAM3I,GAAM,KAAOxjB,KAAKosB,IAAM3I,QAIjD,GAAM0J,EAAQrB,GAKd,GAAMrc,KAAKM,IAAImd,EAAMH,EAAMC,EAAMC,GAAOnB,IAAarP,EAKrD,CACH,IAAI2Q,EAAM1J,EAAKmJ,EACXQ,EAAM1J,EAAKmJ,EACXQ,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAM/d,KAAKge,KAAKH,GAChBI,EAAMje,KAAKge,KAAKN,GAChB3H,EAAI/I,EAAIhN,KAAKke,KAAK/B,GAAKnc,KAAKme,MAAMN,EAAQH,EAAQI,IAAU,EAAIC,EAAME,KAAS,GAC/EG,EAAMrI,EAAIkI,EACVI,EAAMtI,EAAIgI,EAGV/d,KAAKM,IAAI8d,EAAM,GAAK/B,KACtB9rB,KAAKqsB,GAAK,KAAO7I,EAAKqK,EAAMZ,GAAO,KAAOxJ,EAAKoK,EAAMX,IAGvDltB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,WAAayQ,EAAME,EAAMH,EAAMI,GAAQ,KAAOrtB,KAAKmsB,IAAM3I,EAAKsK,EAAMf,GAAO,KAAO/sB,KAAKosB,IAAM3I,EAAKqK,EAAMd,EACxI,MArBEhtB,KAAKqsB,GAAK,KAAOrsB,KAAKmsB,IAAM3I,GAAM,KAAOxjB,KAAKosB,IAAM3I,EAsBxD,EACAsK,IAAK,SAAS1oB,EAAGC,EAAGmX,EAAGuR,EAAIC,EAAIC,GAC7B7oB,GAAKA,EAAGC,GAAKA,EAAW4oB,IAAQA,EAChC,IAAIC,GADY1R,GAAKA,GACRhN,KAAK2e,IAAIJ,GAClBK,EAAK5R,EAAIhN,KAAK6e,IAAIN,GAClBnB,EAAKxnB,EAAI8oB,EACTrB,EAAKxnB,EAAI+oB,EACTE,EAAK,EAAIL,EACTM,EAAKN,EAAMF,EAAKC,EAAKA,EAAKD,EAG9B,GAAIvR,EAAI,EAAG,MAAM,IAAIhI,MAAM,oBAAsBgI,GAGhC,OAAbzc,KAAKmsB,IACPnsB,KAAKqsB,GAAK,IAAMQ,EAAK,IAAMC,GAIpBrd,KAAKM,IAAI/P,KAAKmsB,IAAMU,GAAMf,IAAWrc,KAAKM,IAAI/P,KAAKosB,IAAMU,GAAMhB,MACtE9rB,KAAKqsB,GAAK,IAAMQ,EAAK,IAAMC,GAIxBrQ,IAGD+R,EAAK,IAAGA,EAAKA,EAAK3C,GAAMA,IAGxB2C,EAAKzC,GACP/rB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOlpB,EAAI8oB,GAAM,KAAO7oB,EAAI+oB,GAAM,IAAM5R,EAAI,IAAMA,EAAI,QAAU8R,EAAK,KAAOvuB,KAAKmsB,IAAMU,GAAM,KAAO7sB,KAAKosB,IAAMU,GAIrJ0B,EAAK1C,KACZ9rB,KAAKqsB,GAAK,IAAM5P,EAAI,IAAMA,EAAI,SAAW+R,GAAM5C,IAAO,IAAM2C,EAAK,KAAOvuB,KAAKmsB,IAAM9mB,EAAIoX,EAAIhN,KAAK2e,IAAIH,IAAO,KAAOjuB,KAAKosB,IAAM9mB,EAAImX,EAAIhN,KAAK6e,IAAIL,KAElJ,EACAQ,KAAM,SAASppB,EAAGC,EAAGopB,EAAGC,GACtB3uB,KAAKqsB,GAAK,KAAOrsB,KAAKisB,IAAMjsB,KAAKmsB,KAAO9mB,GAAK,KAAOrF,KAAKksB,IAAMlsB,KAAKosB,KAAO9mB,GAAK,MAAQopB,EAAK,MAAQC,EAAK,KAAQD,EAAK,GACzH,EACAE,SAAU,WACR,OAAO5uB,KAAKqsB,CACd,GAGF,UCjIe,YAAShnB,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJO,IAAI0K,GAAMN,KAAKM,IACXsV,GAAQ5V,KAAK4V,MACb+I,GAAM3e,KAAK2e,IACXhT,GAAM3L,KAAK2L,IACXmJ,GAAM9U,KAAK8U,IACX+J,GAAM7e,KAAK6e,IACXb,GAAOhe,KAAKge,KAEZ,GAAU,MACV,GAAKhe,KAAK6V,GACVuJ,GAAS,GAAK,EACd,GAAM,EAAI,GAEd,SAASjB,GAAKvoB,GACnB,OAAOA,EAAI,EAAI,EAAIA,GAAK,EAAI,GAAKoK,KAAKme,KAAKvoB,EAC7C,CAEO,SAASypB,GAAKzpB,GACnB,OAAOA,GAAK,EAAIwpB,GAASxpB,IAAM,GAAKwpB,GAASpf,KAAKqf,KAAKzpB,EACzD,CCfA,SAAS0pB,GAAenT,GACtB,OAAOA,EAAEoT,WACX,CAEA,SAASC,GAAerT,GACtB,OAAOA,EAAEsT,WACX,CAEA,SAASC,GAAcvT,GACrB,OAAOA,EAAEwT,UACX,CAEA,SAASC,GAAYzT,GACnB,OAAOA,EAAE0T,QACX,CAEA,SAASC,GAAY3T,GACnB,OAAOA,GAAKA,EAAE4T,QAChB,CAEA,SAASC,GAAU5C,EAAIC,EAAItJ,EAAIC,EAAIC,EAAIC,EAAI+L,EAAIC,GAC7C,IAAIC,EAAMpM,EAAKqJ,EAAIgD,EAAMpM,EAAKqJ,EAC1BgD,EAAMJ,EAAKhM,EAAIqM,EAAMJ,EAAKhM,EAC1B1W,EAAI8iB,EAAMH,EAAME,EAAMD,EAC1B,KAAI5iB,EAAIA,EAAI,IAEZ,MAAO,CAAC4f,GADR5f,GAAK6iB,GAAOhD,EAAKnJ,GAAMoM,GAAOlD,EAAKnJ,IAAOzW,GACzB2iB,EAAK9C,EAAK7f,EAAI4iB,EACjC,CAIA,SAASG,GAAenD,EAAIC,EAAItJ,EAAIC,EAAIwM,EAAIC,EAAI3B,GAC9C,IAAItB,EAAMJ,EAAKrJ,EACX0J,EAAMJ,EAAKrJ,EACX0M,GAAM5B,EAAK2B,GAAMA,GAAMzC,GAAKR,EAAMA,EAAMC,EAAMA,GAC9CkD,EAAKD,EAAKjD,EACVmD,GAAMF,EAAKlD,EACXqD,EAAMzD,EAAKuD,EACXG,EAAMzD,EAAKuD,EACXT,EAAMpM,EAAK4M,EACXP,EAAMpM,EAAK4M,EACXG,GAAOF,EAAMV,GAAO,EACpBa,GAAOF,EAAMV,GAAO,EACpB1B,EAAKyB,EAAMU,EACXjC,EAAKwB,EAAMU,EACXG,EAAKvC,EAAKA,EAAKE,EAAKA,EACpB5R,EAAIwT,EAAKC,EACTS,EAAIL,EAAMT,EAAMD,EAAMW,EACtB3U,GAAKyS,EAAK,GAAK,EAAI,GAAKZ,GAAKrS,GAAI,EAAGqB,EAAIA,EAAIiU,EAAKC,EAAIA,IACrDC,GAAOD,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BG,IAAQF,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BI,GAAOH,EAAItC,EAAKF,EAAKvS,GAAK8U,EAC1BK,IAAQJ,EAAIxC,EAAKE,EAAKzS,GAAK8U,EAC3BM,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMN,EACZW,EAAMJ,EAAMN,EAMhB,OAFIO,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKP,EAAME,EAAKD,EAAME,GAE7D,CACLK,GAAIR,EACJS,GAAIR,EACJ5D,KAAMmD,EACNlD,KAAMmD,EACNC,IAAKM,GAAOX,EAAKxT,EAAI,GACrB8T,IAAKM,GAAOZ,EAAKxT,EAAI,GAEzB,C,krBCpCA,SAAS6U,GACP3uB,GAEA,OAAQA,GACN,IAAK,eACL,IAAK,SACL,IAAK,wBACL,IAAK,4BACH,OAAOA,EACT,QACA,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,SACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,4BAEb,CAMA,SAAS4uB,GAAiBhG,GACxB,OAAQA,GACN,IAAK,UACL,IAAK,QACH,OAAOA,EACT,QACE,MAAO,UAEb,CAWO,SAASiG,GACdzwB,GAEA,OAAO,gBACF,QAAqBA,IAAK,CAC7B4B,KAAM,EACN8uB,eAAgBH,GAAsBvwB,EAAK0wB,gBAAkB1wB,EAAK4B,MAClE4oB,UAAWgG,GAAiBxwB,EAAKwqB,WACjCmG,UAAU,QAAW3wB,EAAK2wB,SAAU,MACpCC,UAAU,QAAW5wB,EAAK4wB,SAAU,MACpChjB,OAAO,QAAiB5N,EAAK4N,MAAO,MACpCijB,YAAY,QAAiB7wB,EAAK6wB,WAAY,MAC9CnoB,OAAO,QAAa1I,EAAK0I,MAAO,MAChC6F,MAAM,QAAiBvO,EAAKuO,KAAM,SAC/B,QAAmBvO,KACnB,QAAqBA,GAE5B,CAEA,IAAM,GAAQ,6BAEd,4B,8CA6NA,QA7NwC,QAC5B,YAAAwG,iBAAV,WACE,IAUIsqB,EAVE3J,EAAS,CACb4J,WAAY,UACZC,SAAU/xB,KAAKqE,MAAMsK,OAAS,UAC9B+H,KAAM1W,KAAKqE,MAAMutB,YAAc,WAG3BG,EAAW/xB,KAAKgyB,cAEhB5xB,EAAUC,SAASC,cAAc,OAGf,MAApBN,KAAKqE,MAAMoF,QAEXooB,EADErc,KACYA,KAAKyc,aAAa,SAASpc,OAAO7V,KAAKqE,MAAMoF,OAE7CzJ,KAAKqE,MAAMoF,OAK7B,IAAMkX,EAAMtgB,SAASkR,gBAAgB,GAAO,OAE5C,OAAQvR,KAAKqE,MAAMotB,gBACjB,IAAK,eAED,IAAMS,EAAiB7xB,SAASkR,gBAAgB,GAAO,QACvD2gB,EAAezmB,aAAa,OAAQyc,EAAO4J,YAC3CI,EAAezmB,aAAa,eAAgB,OAC5CymB,EAAezmB,aAAa,QAAS,QACrCymB,EAAezmB,aAAa,SAAU,QACtCymB,EAAezmB,aAAa,KAAM,KAClCymB,EAAezmB,aAAa,KAAM,KAClC,IAAM0mB,EAAe9xB,SAASkR,gBAAgB,GAAO,QACrD4gB,EAAa1mB,aAAa,OAAQyc,EAAO6J,UACzCI,EAAa1mB,aAAa,eAAgB,KAC1C0mB,EAAa1mB,aAAa,QAAS,UAAGsmB,EAAQ,MAC9CI,EAAa1mB,aAAa,SAAU,QACpC0mB,EAAa1mB,aAAa,KAAM,KAChC0mB,EAAa1mB,aAAa,KAAM,MAC1BiL,EAAOrW,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,cAAe,UACjCiL,EAAKjL,aAAa,qBAAsB,UACxCiL,EAAKjL,aAAa,YAAa,MAC/BiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aACH,YACA,oBAAazL,KAAKqE,MAAM2B,MAAQ,EAAC,YAEnC0Q,EAAKjL,aAAa,OAAQyc,EAAOxR,MAEJ,UAAzB1W,KAAKqE,MAAMknB,WACb7U,EAAK7O,MAAMmiB,SAAW,MAEtBtT,EAAKhI,YAAc1O,KAAKqE,MAAMiL,KAC1B,UAAGuiB,EAAW,YAAI7xB,KAAKqE,MAAMiL,MAC7B,UAAGuiB,IAEPnb,EAAKhI,YAAc,UAAGqjB,EAAQ,KAGhCpR,EAAIlV,aAAa,QAAS,QAC1BkV,EAAIlV,aAAa,SAAU,QAC3BkV,EAAIH,OAAO0R,EAAgBC,EAAczb,GAE3C,MACF,IAAK,SACL,IAAK,wBACL,IAAK,4BAKD,GAFAiK,EAAIlV,aAAa,UAAW,eAEM,WAA9BzL,KAAKqE,MAAMotB,gBAEPW,EAAmB/xB,SAASkR,gBAAgB,GAAO,WACxC9F,aAAa,YAAa,oBAC3C2mB,EAAiB3mB,aAAa,OAAQyc,EAAO4J,YAC7CM,EAAiB3mB,aAAa,eAAgB,OAC9C2mB,EAAiB3mB,aAAa,IAAK,OAC7B4mB,EAAiBhyB,SAASkR,gBAAgB,GAAO,WACxC9F,aAAa,YAAa,oBACzC4mB,EAAe5mB,aAAa,OAAQyc,EAAO6J,UAC3CM,EAAe5mB,aAAa,eAAgB,KAC5C4mB,EAAe5mB,aAAa,IAAK,UAAGsmB,EAAW,IAE/CpR,EAAIH,OAAO4R,EAAkBC,OACxB,CAEL,IASMD,EAKAC,EAdAC,EAAW,CACftD,YACgC,0BAA9BhvB,KAAKqE,MAAMotB,eAA6C,GAAK,EAC/DvC,YAAa,GACbE,WAAY,EACZE,SAAoB,EAAV7f,KAAK6V,IAEXyI,ED7HH,WACb,IAAIiB,EAAcD,GACdG,EAAcD,GACdsD,EAAeC,GAAS,GACxBC,EAAY,KACZrD,EAAaD,GACbG,EAAWD,GACXG,EAAWD,GACXmD,EAAU,KAEd,SAAS3E,IACP,IAAI4E,EACAlW,EACAmW,GAAM5D,EAAY6D,MAAM7yB,KAAM8yB,WAC9B7C,GAAMf,EAAY2D,MAAM7yB,KAAM8yB,WAC9B9E,EAAKoB,EAAWyD,MAAM7yB,KAAM8yB,WAAajE,GACzCZ,EAAKqB,EAASuD,MAAM7yB,KAAM8yB,WAAajE,GACvCL,EAAKze,GAAIke,EAAKD,GACdO,EAAKN,EAAKD,EAQd,GANK0E,IAASA,EAAUC,EAAS,MAG7B1C,EAAK2C,IAAInW,EAAIwT,EAAIA,EAAK2C,EAAIA,EAAKnW,GAG7BwT,EAAK,GAGN,GAAIzB,EAAK,GAAM,GAClBkE,EAAQnG,OAAO0D,EAAK7B,GAAIJ,GAAKiC,EAAK3B,GAAIN,IACtC0E,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIjC,EAAIC,GAAKM,GAC3BqE,EAAK,KACPF,EAAQnG,OAAOqG,EAAKxE,GAAIH,GAAK2E,EAAKtE,GAAIL,IACtCyE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAI3E,EAAID,EAAIO,QAK7B,CACH,IAWIwE,EACAC,EAZAC,EAAMjF,EACNkF,EAAMjF,EACNkF,EAAMnF,EACNoF,EAAMnF,EACNoF,EAAM7E,EACN8E,EAAM9E,EACN+E,EAAK/D,EAASqD,MAAM7yB,KAAM8yB,WAAa,EACvCU,EAAMD,EAAK,KAAad,GAAaA,EAAUI,MAAM7yB,KAAM8yB,WAAarF,GAAKmF,EAAKA,EAAK3C,EAAKA,IAC5FC,EAAK3L,GAAIxU,GAAIkgB,EAAK2C,GAAM,GAAIL,EAAaM,MAAM7yB,KAAM8yB,YACrDW,EAAMvD,EACNwD,EAAMxD,EAKV,GAAIsD,EAAK,GAAS,CAChB,IAAIG,EAAK7E,GAAK0E,EAAKZ,EAAKtE,GAAIiF,IACxBK,EAAK9E,GAAK0E,EAAKvD,EAAK3B,GAAIiF,KACvBF,GAAY,EAALM,GAAU,IAA8BR,GAArBQ,GAAOpF,EAAK,GAAK,EAAe6E,GAAOO,IACjEN,EAAM,EAAGF,EAAMC,GAAOpF,EAAKC,GAAM,IACjCqF,GAAY,EAALM,GAAU,IAA8BX,GAArBW,GAAOrF,EAAK,GAAK,EAAe2E,GAAOU,IACjEN,EAAM,EAAGL,EAAMC,GAAOlF,EAAKC,GAAM,EACxC,CAEA,IAAIhB,EAAMgD,EAAK7B,GAAI6E,GACf/F,EAAM+C,EAAK3B,GAAI2E,GACfrD,EAAMgD,EAAKxE,GAAIgF,GACfvD,EAAM+C,EAAKtE,GAAI8E,GAGnB,GAAIlD,EAAK,GAAS,CAChB,IAII2D,EAJAvD,EAAML,EAAK7B,GAAI8E,GACf3C,EAAMN,EAAK3B,GAAI4E,GACf1C,EAAMoC,EAAKxE,GAAI+E,GACf1C,EAAMmC,EAAKtE,GAAI6E,GAInB,GAAI3E,EAAK,KAAOqF,EAAKpE,GAAUxC,EAAKC,EAAKsD,EAAKC,EAAKH,EAAKC,EAAKX,EAAKC,IAAO,CACvE,IAAIiE,EAAK7G,EAAM4G,EAAG,GACdE,EAAK7G,EAAM2G,EAAG,GACdG,EAAK1D,EAAMuD,EAAG,GACdI,EAAK1D,EAAMsD,EAAG,GACdK,EAAK,EAAI5F,GAAIV,IAAMkG,EAAKE,EAAKD,EAAKE,IAAOxG,GAAKqG,EAAKA,EAAKC,EAAKA,GAAMtG,GAAKuG,EAAKA,EAAKC,EAAKA,KAAQ,GAC/FE,EAAK1G,GAAKoG,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IACzCJ,EAAMlP,GAAI2L,GAAK0C,EAAKuB,IAAOD,EAAK,IAChCR,EAAMnP,GAAI2L,GAAKD,EAAKkE,IAAOD,EAAK,GAClC,CACF,CAGMZ,EAAM,GAGHI,EAAM,IACbX,EAAK/C,GAAeQ,EAAKC,EAAKxD,EAAKC,EAAK+C,EAAIyD,EAAKnF,GACjDyE,EAAKhD,GAAeM,EAAKC,EAAKX,EAAKC,EAAKI,EAAIyD,EAAKnF,GAEjDmE,EAAQnG,OAAOwG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCwG,EAAMxD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIqC,EAAKrO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAGkC,EAAI5K,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,MAAO/B,GACrGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIqC,EAAKrO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,MAK7EmE,EAAQnG,OAAOU,EAAKC,GAAMwF,EAAQ3E,IAAI,EAAG,EAAGkC,EAAIgD,EAAKC,GAAM3E,IArB1CmE,EAAQnG,OAAOU,EAAKC,GAyBpC0F,EAAK,IAAcS,EAAM,GAGtBI,EAAM,IACbV,EAAK/C,GAAeJ,EAAKC,EAAKS,EAAKC,EAAKqC,GAAKa,EAAKlF,GAClDyE,EAAKhD,GAAe/C,EAAKC,EAAKsD,EAAKC,EAAKmC,GAAKa,EAAKlF,GAElDmE,EAAQjG,OAAOsG,EAAG3B,GAAK2B,EAAG9F,IAAK8F,EAAG1B,GAAK0B,EAAG7F,KAGtCuG,EAAMvD,EAAIwC,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,IAI1FmE,EAAQ3E,IAAIgF,EAAG3B,GAAI2B,EAAG1B,GAAIoC,EAAKpO,GAAM0N,EAAG7F,IAAK6F,EAAG9F,KAAM5H,GAAM0N,EAAGxC,IAAKwC,EAAGzC,MAAO/B,GAC9EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIvN,GAAM0N,EAAG1B,GAAK0B,EAAGxC,IAAKwC,EAAG3B,GAAK2B,EAAGzC,KAAMjL,GAAM2N,EAAG3B,GAAK2B,EAAGzC,IAAKyC,EAAG5B,GAAK4B,EAAG1C,KAAM/B,GACpGmE,EAAQ3E,IAAIiF,EAAG5B,GAAI4B,EAAG3B,GAAIoC,EAAKpO,GAAM2N,EAAGzC,IAAKyC,EAAG1C,KAAMjL,GAAM2N,EAAG9F,IAAK8F,EAAG/F,MAAOsB,KAK7EmE,EAAQ3E,IAAI,EAAG,EAAG6E,EAAIQ,EAAKD,EAAK5E,GArBImE,EAAQjG,OAAOmD,EAAKC,EAsB/D,MAhHqB6C,EAAQnG,OAAO,EAAG,GAoHvC,GAFAmG,EAAQlG,YAEJmG,EAAQ,OAAOD,EAAU,KAAMC,EAAS,IAAM,IACpD,CAwCA,OAtCA5E,EAAIqG,SAAW,WACb,IAAI3X,IAAMuS,EAAY6D,MAAM7yB,KAAM8yB,aAAc5D,EAAY2D,MAAM7yB,KAAM8yB,YAAc,EAClFuB,IAAMjF,EAAWyD,MAAM7yB,KAAM8yB,aAAcxD,EAASuD,MAAM7yB,KAAM8yB,YAAc,EAAI,GAAK,EAC3F,MAAO,CAAC1E,GAAIiG,GAAK5X,EAAG6R,GAAI+F,GAAK5X,EAC/B,EAEAsR,EAAIiB,YAAc,SAAS3C,GACzB,OAAOyG,UAAU7yB,QAAU+uB,EAA2B,mBAAN3C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOiB,CAC9F,EAEAjB,EAAImB,YAAc,SAAS7C,GACzB,OAAOyG,UAAU7yB,QAAUivB,EAA2B,mBAAN7C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOmB,CAC9F,EAEAnB,EAAIwE,aAAe,SAASlG,GAC1B,OAAOyG,UAAU7yB,QAAUsyB,EAA4B,mBAANlG,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOwE,CAC/F,EAEAxE,EAAI0E,UAAY,SAASpG,GACvB,OAAOyG,UAAU7yB,QAAUwyB,EAAiB,MAALpG,EAAY,KAAoB,mBAANA,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAO0E,CAC/G,EAEA1E,EAAIqB,WAAa,SAAS/C,GACxB,OAAOyG,UAAU7yB,QAAUmvB,EAA0B,mBAAN/C,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOqB,CAC7F,EAEArB,EAAIuB,SAAW,SAASjD,GACtB,OAAOyG,UAAU7yB,QAAUqvB,EAAwB,mBAANjD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOuB,CAC3F,EAEAvB,EAAIyB,SAAW,SAASnD,GACtB,OAAOyG,UAAU7yB,QAAUuvB,EAAwB,mBAANnD,EAAmBA,EAAImG,IAAUnG,GAAI0B,GAAOyB,CAC3F,EAEAzB,EAAI2E,QAAU,SAASrG,GACrB,OAAOyG,UAAU7yB,QAAWyyB,EAAe,MAALrG,EAAY,KAAOA,EAAI0B,GAAO2E,CACtE,EAEO3E,CACT,CC3DwB,IAENqE,EAAmB/xB,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,YAAa,oBAC3C2mB,EAAiB3mB,aAAa,OAAQyc,EAAO4J,YAC7CM,EAAiB3mB,aAAa,eAAgB,OAC9C2mB,EAAiB3mB,aAAa,IAAK,UAAGsiB,EAAIuE,MACpCD,EAAiBhyB,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,YAAa,oBACzC4mB,EAAe5mB,aAAa,OAAQyc,EAAO6J,UAC3CM,EAAe5mB,aAAa,eAAgB,KAC5C4mB,EAAe5mB,aACb,IACA,UAAGsiB,EAAI,SACFuE,GAAQ,CACXhD,SAAUgD,EAAShD,UAAYyC,EAAW,UAI9CpR,EAAIH,OAAO4R,EAAkBC,E,CAI/B,IAAM3b,EAQN,IARMA,EAAOrW,SAASkR,gBAAgB,GAAO,SACxC9F,aAAa,cAAe,UACjCiL,EAAKjL,aAAa,qBAAsB,UACxCiL,EAAKjL,aAAa,YAAa,MAC/BiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,cAAe,QACjCiL,EAAKjL,aAAa,OAAQyc,EAAOxR,MAEJ,UAAzB1W,KAAKqE,MAAMknB,WAA6C,MAApBvrB,KAAKqE,MAAMoF,MAEjD,GAAIzJ,KAAKqE,MAAMiL,MAAQtP,KAAKqE,MAAMiL,KAAKrP,OAAS,EAAG,CACjD,IAAMwJ,EAAQpJ,SAASkR,gBAAgB,GAAO,SAC9C9H,EAAMgC,aAAa,IAAK,KACxBhC,EAAMgC,aAAa,KAAM,OACzBhC,EAAMiF,YAAc,UAAGmjB,GACvBpoB,EAAM5B,MAAMmiB,SAAW,MACvB,IAAM1a,EAAOjP,SAASkR,gBAAgB,GAAO,SAC7CjC,EAAK7D,aAAa,IAAK,KACvB6D,EAAK7D,aAAa,KAAM,OACxB6D,EAAKZ,YAAc,UAAG1O,KAAKqE,MAAMiL,MACjCA,EAAKzH,MAAMmiB,SAAW,MACtBtT,EAAK8J,OAAO/W,EAAO6F,GACnBoH,EAAKjL,aAAa,YAAa,mB,MAE/BiL,EAAKhI,YAAc,UAAGmjB,GACtBnb,EAAK7O,MAAMmiB,SAAW,MACtBtT,EAAKjL,aAAa,YAAa,yBAIjCiL,EAAKhI,YAAc,UAAGqjB,EAAQ,KAC9Brb,EAAKjL,aAAa,YAAa,oBAGjCkV,EAAIH,OAAO9J,GAcjB,OAR+B,IAA7B1W,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,gBAEX8S,EAAIlV,aAAa,UAAW,OAGlB,OAARkV,GAAcvgB,EAAQogB,OAAOG,GAE1BvgB,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,IACQ,IAA7BJ,KAAK2G,KAAKT,gBACZlG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAElD7F,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,SAC9C,EAMU,YAAAnC,cAAV,SAAwBnB,EAAeC,GACH,iBAA9BjG,KAAKqE,MAAMotB,eACb,YAAMtqB,cAAa,UAACnB,EAAO,IAE3B,YAAMmB,cAAa,UAACnB,EAAOA,EAE/B,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnB,EAAOA,GAC1B,IAAIC,EAASjG,KAAKqE,MAAMstB,UAAY,EACF,iBAA9B3xB,KAAKqE,MAAMotB,iBACbxrB,EAAS,IAEX,YAAMiE,SAAQ,aAAC,MACVlK,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,IAEV,EAEQ,YAAA+rB,YAAR,WACE,IAAMN,EAAW1xB,KAAKqE,MAAMqtB,UAAY,EAClCC,EAAW3xB,KAAKqE,MAAMstB,UAAY,IAClCloB,EAA4B,MAApBzJ,KAAKqE,MAAMoF,MAAgB,EAAIzJ,KAAKqE,MAAMoF,MAExD,OAAIA,GAASioB,EAAiB,EACrBjoB,GAASkoB,EAAiB,IACvBliB,KAAK6kB,OAAQ7qB,EAAQioB,IAAaC,EAAWD,GAAa,IACxE,EACF,EA7NA,CAAwCnU,EAAA,I,wwBCtEjC,SAASgX,GAAoBxzB,GAClC,GAAsB,OAAlBA,EAAKgc,UACP,GACiC,iBAAxBhc,EAAKic,gBACqB,IAAjCjc,EAAKgc,SAASC,eAEd,MAAM,IAAItZ,UAAU,kCAGtB,IAAI,QAAc3C,EAAKyzB,cACrB,MAAM,IAAI9wB,UAAU,kCAIxB,GAAyC,QAArC,QAAW3C,EAAK0zB,UAAW,MAC7B,MAAM,IAAI/wB,UAAU,uBAGtB,OAAO,UACF,QAAqB3C,IAAK,CAC7B4B,KAAM,GACN8xB,UAAW1zB,EAAK0zB,UAChB1X,UAAU,QAAiBhc,EAAKgc,SAAU,MAC1CC,gBAAgB,QAAiBjc,EAAKic,eAAgB,MACtDwX,cAAc,QAAiBzzB,EAAKyzB,aAAc,OAEtD,CAEA,gC,8CA8CA,QA9CqC,QAC5B,YAAAjtB,iBAAP,WACE,IAAMnH,EAAUC,SAASC,cAAc,OAmBvC,OAlBAF,EAAQG,UAAY,UAEc,OAA9BP,KAAKqE,MAAM2Y,gBACb5c,EAAQyH,MAAMiqB,WAAa,cAAO9xB,KAAKqE,MAAM2Y,eAAc,eAC3D5c,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACH,OAA5Btd,KAAKqE,MAAMmwB,eACbp0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMmwB,iBAGS,OAA5Bx0B,KAAKqE,MAAMmwB,eACpBp0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMmwB,eAGvCp0B,CACT,EAMU,YAAA4J,iBAAV,SAA2B5J,GACS,OAA9BJ,KAAKqE,MAAM2Y,gBACb5c,EAAQyH,MAAMiqB,WAAa,cAAO9xB,KAAKqE,MAAM2Y,eAAc,eAC3D5c,EAAQyH,MAAMwV,eAAiB,UAC/Bjd,EAAQyH,MAAMyV,mBAAqB,SACH,OAA5Btd,KAAKqE,MAAMmwB,eACbp0B,EAAQG,UAAY,6BACpBH,EAAQqL,aAAa,iCAAkC,KACvDrL,EAAQqL,aACN,cACA,QAAazL,KAAKqE,MAAMmwB,gBAG5Bp0B,EAAQkJ,UAAY,IACiB,OAA5BtJ,KAAKqE,MAAMmwB,eACpBp0B,EAAQkJ,WAAY,QAAatJ,KAAKqE,MAAMmwB,cAEhD,EACF,EA9CA,CAAqCjX,EAAA,I,orBClC9B,SAASmX,GAAqB3zB,GACnC,OAAO,aACF,QAAqBA,IAAK,CAC7B4B,KAAM,GACN8G,OAAO,QAAW1I,EAAK0I,MAAO,GAC9B8E,QAAQ,QAAcxN,EAAKwN,QAAU,UAAYxN,EAAKwN,OACtDomB,YAAY,QAAc5zB,EAAK4zB,YAAc,UAAY5zB,EAAK4zB,WAC9DnzB,OAAO,QAAcT,EAAKS,OAAS,GAAKT,EAAKS,MAC7CozB,aAAa,QAAc7zB,EAAK6zB,aAAe,GAAK7zB,EAAK6zB,YACzDC,YAAY,QAAc9zB,EAAK8zB,YAAc,GAAK9zB,EAAK8zB,WACvDC,aAAa,QAAc/zB,EAAK+zB,aAAe,GAAK/zB,EAAK+zB,YACzDC,cAAc,QAAch0B,EAAKg0B,cAC7B,UACAh0B,EAAKg0B,gBACN,QAAmBh0B,GAE1B,CAEA,I,GAAA,4B,8CAoTA,QApTsC,QAC1B,YAAAwG,iBAAV,WACE,IAAIytB,EAAc,GACdC,EAAe,GACfC,EAAe,GACfC,EAAgB,GAEpB,GAA8B,KAA1Bn1B,KAAKqE,MAAMwwB,WAAmB,CAChC,IAAMA,EAAaO,KAAKC,MAAMr1B,KAAKqE,MAAMwwB,YAEtB,OAAfA,IAC4B,GAA1BA,EAAWS,aAA8C,GAA1BT,EAAWU,cAC5CP,EAAch1B,KAAKw1B,UACjBX,EAAWS,YACXt1B,KAAKqE,MAAM2B,MAAQ,GAGnBivB,EAD4B,GAA1BJ,EAAWU,YACEv1B,KAAKw1B,UAAU,IAAKx1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKw1B,UAClBX,EAAWU,YACXv1B,KAAKqE,MAAM2B,MAAQ,IAKM,GAA3B6uB,EAAWY,cAAgD,GAA3BZ,EAAWa,eAC7CR,EAAel1B,KAAKw1B,UAClBX,EAAWY,aACXz1B,KAAKqE,MAAM2B,MAAQ,GAGnBmvB,EAD6B,GAA3BN,EAAWa,aACG11B,KAAKw1B,UAAU,IAAKx1B,KAAKqE,MAAM2B,MAAQ,GAEvChG,KAAKw1B,UACnBX,EAAWa,aACX11B,KAAKqE,MAAM2B,MAAQ,I,CAO7B,IACIoJ,EADAumB,EAAU,GAIZ9lB,OAAO7P,KAAKqE,MAAMoF,SAAWzJ,KAAKqE,MAAMoF,OACxCzJ,KAAKqE,MAAMoF,MAAQ,GAAM,EAEzB2F,EAASpP,KAAKqE,MAAMoF,MAAMmsB,QAAQ,IAGhCD,EAD6B,KAA3B31B,KAAKqE,MAAMywB,YACH,KAEA90B,KAAK61B,UAAU71B,KAAKqE,MAAMoF,OAEtC2F,EAAS,IAAIoG,KAAKyc,aAAa,KAAM,CACnC6D,yBAA0B,EAC1BC,sBAAuB,IACtBlgB,OAAO7V,KAAKqE,MAAMoF,QAGvB,IAAIusB,EAAO5mB,EAAO6mB,MAAM,WACX,OAATD,IACF5mB,EAAS4mB,EAAK,IAGhB,IAAME,EAASl2B,KAAKm2B,UAAUn2B,KAAKqE,MAAMoF,OAErC4D,EAAkBhN,SAASuI,eAC7B,4BAGsB,OAApByE,IACFA,EAAkBhN,SAASuI,eACzB,mCAA4B5I,KAAKqE,MAAMF,UAIE,IAAzCkJ,EAAgBxF,MAAMwF,kBACxBA,EAAgBxF,MAAMwF,gBAAkB,QAG1C,IAAM+oB,EAA4B,GAAnBp2B,KAAKqE,MAAM2B,MAEpB5F,EAAUC,SAASC,cAAc,OACvCF,EAAQG,UAAY,YAGW,IAA7BP,KAAKqE,MAAMuJ,gBACmB,IAA9B5N,KAAKqE,MAAMwJ,iBAEXzN,EAAQyH,MAAMiG,QAAU,OAI1B,IAAMuoB,EAAoBh2B,SAASC,cAAc,OACjD+1B,EAAkB91B,UAAY,qBAG9B,IAAM+1B,EAAYj2B,SAASC,cAAc,OACzCg2B,EAAU/1B,UAAY,aACtB+1B,EAAUzuB,MAAMwF,gBAAkB,UAAGA,EAAgBxF,MAAMwF,iBAG3D,IAAMkpB,EAAYl2B,SAASC,cAAc,OACzCi2B,EAAUh2B,UAAY,aACtBg2B,EAAU1zB,GAAK,oBAAa7C,KAAKqE,MAAMxB,IACvC0zB,EAAU1uB,MAAMwF,gBAAkB,UAAGrN,KAAKqE,MAAMkK,QAGhD,IAAMioB,EAAYn2B,SAASC,cAAc,OACzCk2B,EAAUj2B,UAAY,aAGtB,IAAMk2B,EAASp2B,SAASC,cAAc,OACtCm2B,EAAOl2B,UAAY,aAEnB,IAAMm2B,EAAS,6BAEf,GAAmB,IAAf1B,EAAmB,CACrB,IAAM2B,EAAat2B,SAASkR,gBAAgBmlB,EAAQ,OACpDC,EAAWC,eAAe,KAAM,QAAS,QACzCD,EAAWC,eAAe,KAAM,SAAU,QAC1CD,EAAWC,eAAe,KAAM,QAAS,+BACzC,IAAMC,EAAcx2B,SAASkR,gBAAgBmlB,EAAQ,QACrDG,EAAYD,eAAe,KAAM,KAAM,qBAAc52B,KAAKqE,MAAMxB,KAChEg0B,EAAYD,eACV,KACA,IACA,WAAI52B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIgvB,EAAW,YAAIh1B,KAChEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUivB,EAAY,MAElE4B,EAAYD,eAAe,KAAM,QAAS,eAC1CD,EAAW/1B,YAAYi2B,GACvBR,EAAkBz1B,YAAY+1B,E,CAIhC,GAAoB,IAAhBzB,EAAoB,CACtB,IAAM4B,EAAcz2B,SAASkR,gBAAgBmlB,EAAQ,OACrDI,EAAYF,eAAe,KAAM,QAAS,QAC1CE,EAAYF,eAAe,KAAM,SAAU,QAC3CE,EAAYF,eAAe,KAAM,QAAS,+BAC1C,IAAMG,EAAe12B,SAASkR,gBAAgBmlB,EAAQ,QACtDK,EAAaH,eAAe,KAAM,KAAM,sBAAe52B,KAAKqE,MAAMxB,KAClEk0B,EAAaH,eACX,KACA,IACA,WAAI52B,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,YAAIkvB,EAAY,YAAIl1B,KACjEqE,MAAM2B,MAAQ,EAAC,YAAIhG,KAAKqE,MAAM2B,MAAQ,EAAC,kBAAUmvB,EAAa,MAEnE4B,EAAaH,eAAe,KAAM,OAAQ,WAC1CE,EAAYl2B,YAAYm2B,GACxBV,EAAkBz1B,YAAYk2B,E,CAIhC,IAAME,EAAK32B,SAASC,cAAc,MAClC02B,EAAGC,UAAY7nB,EAASumB,EACxBqB,EAAGnvB,MAAMmiB,SAAW,UAAY,IAAToM,EAAa,MACpCY,EAAGnvB,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMkK,QAC/ByoB,EAAGnvB,MAAMqvB,WAAa,IAEtB,IAAMC,EAAK92B,SAASC,cAAc,MACV,IAApBN,KAAKqE,MAAM7C,MACb21B,EAAGzoB,YAAc1O,KAAKo3B,cAAcp3B,KAAKqE,MAAMyF,YAE/CqtB,EAAGzoB,YAAc1O,KAAKo3B,cAAcp3B,KAAKqE,MAAM7C,OAEjD21B,EAAG31B,MAAQxB,KAAKqE,MAAMuwB,YACtBuC,EAAG1rB,aAAa,QAASzL,KAAKqE,MAAMuwB,aAEpCuC,EAAGtvB,MAAMmiB,SAAW,UAAY,IAAToM,EAAa,MACpCe,EAAGtvB,MAAM8G,MAAQ,UAAG3O,KAAKqE,MAAMswB,YAC/BwC,EAAGtvB,MAAMqvB,WAAa,IAEtB,IAAIG,EAASh3B,SAASC,cAAc,UACpC+2B,EAAO10B,KAAO,kBACd00B,EAAOC,OAAS,WACdf,EAAU1uB,MAAMqe,UAAY,iBAAUgQ,EAAM,QAC9C,EACA,IAAIqB,EAAcpiB,OAAOqiB,SAASC,SAASlS,MAAM,KAAK,GAWtD,OAVA8R,EAAOrpB,IAAM,UAAG3N,SAASq3B,IAAG,YAAIH,EAAW,yCAC3CjB,EAAU11B,YAAYo2B,GACtBV,EAAU11B,YAAYu2B,GACtBd,EAAkBz1B,YAAY21B,GAC9BF,EAAkBz1B,YAAY41B,GAC9BH,EAAkBz1B,YAAY61B,GAC9BJ,EAAkBz1B,YAAY01B,GAC9BD,EAAkBz1B,YAAYy2B,GAC9Bj3B,EAAQQ,YAAYy1B,GAEbj2B,CACT,EAEU,YAAA4J,iBAAV,SAA2B5J,GAA3B,WACEA,EAAQkJ,UAAYtJ,KAAKuH,mBAAmB+B,UAE5C,IAAI4sB,EAASl2B,KAAKm2B,UAAUn2B,KAAKqE,MAAMoF,OAEjCktB,EAAat2B,SAASuI,eAAe,qBAAc5I,KAAKqE,MAAMxB,KAClD,MAAd8zB,IACFA,EAAW9uB,MAAM8vB,QAAU,QAG7B,IAAMb,EAAcz2B,SAASuI,eAAe,sBAAe5I,KAAKqE,MAAMxB,KACnD,MAAfi0B,IACFA,EAAYjvB,MAAM8vB,QAAU,QAG9B1pB,YAAW,WACS,MAAd0oB,IACFA,EAAW9uB,MAAM8vB,QAAU,SAGV,MAAfb,IACFA,EAAYjvB,MAAM8vB,QAAU,SAG9B,IAAIpB,EAAYl2B,SAASuI,eAAe,oBAAa,EAAKvE,MAAMxB,KAC5D0zB,IACFA,EAAU1uB,MAAMqe,UAAY,iBAAUgQ,EAAM,SAEhD,GAAG,IACL,EAEU,YAAA/uB,cAAV,SAAwBnB,GACtB,YAAMmB,cAAa,UAACnB,EAAOA,EAAQ,EACrC,EAMO,YAAAM,OAAP,SAAcN,GACZhG,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAChC,EAEQ,YAAAmwB,UAAR,SAAkB1sB,GAChB,IAAIysB,EAAS,EACb,GAA+B,KAA3Bl2B,KAAKqE,MAAMywB,YACboB,EAASzsB,EAAQ,EAAI,QAChB,CACL,IAAMmuB,EAASxC,KAAKC,MAAMr1B,KAAKqE,MAAMywB,aACrC,GAAI8C,EAAY,MAAMnuB,EACpBysB,EAAS,OACJ,GAAI0B,EAAY,MAAMnuB,EAC3BysB,EAAS,OACJ,CACL,IAAM2B,EAAQD,EAAY,IAAIA,EAAY,IAE1C1B,GAAU,IAAkB,KADX0B,EAAY,IAAInuB,GACEouB,GAAS,IAAM,C,EAItD,OAAO3B,CACT,EAEQ,YAAAL,UAAR,SAAkBpsB,GAChB,IAAIquB,EAAS,GACP73B,GAAUwJ,EAAQ,IAAIxJ,OAW5B,OAVIA,EAAS,GAAKA,GAAU,EAC1B63B,EAAS,KACA73B,EAAS,GAAKA,GAAU,EACjC63B,EAAS,KACA73B,EAAS,GAAKA,GAAU,GACjC63B,EAAS,KACA73B,EAAS,IAAMA,GAAU,KAClC63B,EAAS,MAGJA,CACT,EAEQ,YAAAtC,UAAR,SAAkBG,EAAiBoC,GACjC,GAA+B,KAA3B/3B,KAAKqE,MAAMywB,YAAoB,CACjC,IAAM8C,EAASxC,KAAKC,MAAMr1B,KAAKqE,MAAMywB,aACrC,GAAI8C,EAAY,MAAMjC,EACpBA,EAAU,OACL,GAAIiC,EAAY,MAAMjC,GAAuB,MAAZA,EACtCA,EAAU,QACL,CACL,IAAMkC,EAAQD,EAAY,IAAIA,EAAY,IAE1CjC,EAAU,IAAkB,KADbiC,EAAY,IAAIjC,GACIkC,C,EAIvClC,EAAU,IAAgB,IAAVA,EAChB,IAAMtwB,EAAI0yB,EAAQtoB,KAAK2e,IAAKuH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EAClDzyB,EAAIyyB,EAAQtoB,KAAK6e,IAAKqH,EAAUlmB,KAAK6V,GAAM,KAAOyS,EACxD,MAAO,UAAG1yB,EAAC,YAAIC,EACjB,EAEQ,YAAA8xB,cAAR,SAAsB51B,GACpB,GAAa,MAATA,GAAiBA,EAAMvB,OAAS,GAAI,CACtC,IAAM+3B,EAAax2B,EAAMvB,OAAS,EAC5Bg4B,EAAOD,EAAa,EACpBE,EAAe12B,EAAMmR,OAAO,EAAGqlB,EAAaC,GAC5CE,EAAc32B,EAAMmR,OAAOqlB,EAAaC,GAE9C,MAAO,UAAGC,EAAY,cAAMC,E,CAE5B,OAAO32B,CAEX,EACF,EApTA,CAAsC+b,EAAA,I,qPCuDtC,SAAS6a,GAAYr3B,GACnB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,OAAQf,GACN,KAAK,EACH,OAAOma,EAAwB/b,GACjC,KAAK,EACH,OAAO,QAAwBA,GACjC,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAOyqB,GAAwBzqB,GACjC,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAOywB,GAAuBzwB,GAChC,KAAK,EACH,OAAOsqB,GAAkBtqB,GAC3B,KAAK,EACH,OAAOyc,EAAiBzc,GAC1B,KAAK,GACH,OAAOwzB,GAAoBxzB,GAC7B,KAAK,GACH,OAAOwlB,EAAkBxlB,GAC3B,KAAK,GACH,OAAOgqB,GAAgBhqB,GACzB,KAAK,GACH,OAAOsgB,EAAiBtgB,GAC1B,KAAK,GACH,OAAO,QAA0BA,GACnC,KAAK,GACH,OAAO,QAAuBA,GAChC,KAAK,GACH,OAAO,QAAsBA,GAC/B,KAAK,GACH,OAAOgmB,EAAkBhmB,GAC3B,KAAK,GACH,OAAO8c,EAAuB9c,GAChC,KAAK,GACH,OAAO8jB,EAAwB9jB,GACjC,KAAK,GACH,OAAO2zB,GAAqB3zB,GAC9B,KAAK,GACH,OAAO,QAAuBA,GAChC,QACE,MAAM,IAAI2C,UAAU,qBAE1B,CAwEA,I,GAAA,WA8cE,WACEoH,EACAzG,EACAg0B,GAHF,WAxcQ,KAAAC,aAEJ,CAAC,EAEG,KAAAC,WAAgC,GAEhC,KAAAC,UAEJ,CAAC,EAGG,KAAAC,UAEJ,CAAC,EAEG,KAAA1U,MAEJ,CAAC,EAGY,KAAApf,kBAAoB,IAAIme,EAAA,EAExB,KAAAle,qBAAuB,IAAIke,EAAA,EAE3B,KAAAje,kBAAoB,IAAIie,EAAA,EAExB,KAAAD,sBAAwB,IAAIC,EAAA,EAE5B,KAAA/d,oBAAsB,IAAI+d,EAAA,EAE1B,KAAA5d,6BAA+B,IAAI4d,EAAA,EAInC,KAAA3d,YAA4B,GAMrC,KAAAuzB,mBAAkD,SAAA31B,GACxD,EAAK4B,kBAAkBvD,KAAK2B,EAE9B,EAMQ,KAAA41B,sBAAqD,SAAA51B,GAC3D,EAAK6B,qBAAqBxD,KAAK2B,EAEjC,EAMQ,KAAA61B,sBAAqD,SAAA71B,GAC3D,IAAIJ,EAAOI,EAAE8C,KAAKW,UAAU7D,KAC5B,GAAa,KAATA,GAAwB,KAATA,IAA2C,IAA5B,EAAK0B,MAAMw0B,aAAuB,CAClE,IAAIC,EAAW,EAAKz0B,MAAMy0B,SACtBC,EAAYh2B,EAAE2C,YAAYL,EAC1B2zB,EAAYj2B,EAAE2C,YAAYJ,EAC9B,GAAIyzB,EAAYD,GAAa,GAAKE,EAAYF,GAAa,EAAG,CAC5D,IAAIzzB,EAAIoK,KAAKqD,MAAMimB,EAAYD,GAAYA,EACvCxzB,EAAImK,KAAKqD,MAAMkmB,EAAYF,GAAYA,EAQ3C,YAPqBz4B,SAASuI,eAC5B,sBAEa6C,aACb,QACA,OAASnG,EAAI,uBAAyBD,EAAI,gB,EAMhD,IAAM4zB,EAASl2B,EAAE8C,KAAKxB,MAAMxB,GACV,EAAKq2B,iBAAiBD,GAE9Bt4B,SAAQ,SAAAw4B,GACZA,EAASp1B,WAAak1B,EAExBE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBid,cAAe,EAAK8X,gBAAgBr2B,EAAE2C,YAAa3C,EAAE8C,QAE9CszB,EAASE,UAAYJ,IAE9BE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBod,YAAa,EAAK2X,gBAAgBr2B,EAAE2C,YAAa3C,EAAE8C,QAGzD,IAGA,EAAKyzB,qBAAqBv2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAGzD,EAMQ,KAAA6zB,8BAA6D,SAAAx2B,GACnE,EAAK8B,kBAAkBzD,KAAK2B,GAE5B,EAAKu2B,qBAAqBv2B,EAAE8C,KAAKxB,MAAOtB,EAAE2C,aAAa,EAEzD,EA+BQ,KAAA8zB,kCAEI,SAAAz2B,GAEV,EAAK02B,YAAY12B,EAAE8C,MAGnB,EAAKgd,sBAAsBzhB,KAAK2B,EAGlC,EAMQ,KAAA22B,wBAAyD,SAAA32B,GAE/D,IAAM8C,EAAO9C,EAAE8C,KACTxB,EAAQwB,EAAKxB,MACb40B,EAAS50B,EAAMxB,GACf21B,EAAY,EAAKU,iBAAiBD,GAElC/sB,EAAW,CACf7G,EAAGhB,EAAMgB,EACTC,EAAGjB,EAAMiB,GAGLqB,EAAO,EAAK2xB,aAAaW,GAAQtyB,KAEvC,EAAK2xB,aAAaW,GAAQtyB,KAAO,SAC5BA,GAAI,CACPoC,YAAY,IAGdyvB,EAAU73B,SAAQ,SAAAw4B,GACZA,EAASp1B,WAAak1B,EAExBE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBid,cAAe,EAAK8X,gBAAgBltB,EAAUrG,KAEvCszB,EAASE,UAAYJ,IAE9BE,EAASvV,KAAKvf,MAAQ,SACjB80B,EAASvV,KAAKvf,OAAK,CACtBod,YAAa,EAAK2X,gBAAgBltB,EAAUrG,KAGlD,GAGF,EAMQ,KAAA8zB,gCAEI,SAAA52B,GACV,EAAKgC,oBAAoB3D,KAAK2B,EAEhC,EAMQ,KAAA62B,oBAAoD,SAAA72B,GAE1D,EAAKw1B,WAAa,EAAKA,WAAWp2B,QAAO,SAAAU,GAAM,OAAAA,IAAOE,EAAE8C,KAAKxB,MAAMxB,EAApB,WACxC,EAAKy1B,aAAav1B,EAAE8C,KAAKxB,MAAMxB,IACtC,EAAKg3B,eAAe92B,EAAE8C,KAAKxB,MAAMxB,GACnC,EAMQ,KAAAi3B,8BAEI,SAAA/2B,GACN,EAAKg3B,SAAS53B,QAAO,SAAA0D,GAAQ,OAAwB,GAAxBA,EAAKc,KAAKC,UAAV,IAA8B3G,OAAS,EACtE8C,EAAE0H,UAAW,EAEb1H,EAAE0H,UAAW,EAEf,EAAKvF,6BAA6B9D,KAAK2B,EACzC,EAGQ,KAAAi3B,qBAAgD,WACtD,EAAKC,eACP,EAgOEj6B,KAAKk6B,aAAepvB,EACpB9K,KAAKm6B,OA9fF,SACLp5B,GAIE,IAAA8B,EAUE9B,EAAI,GATNpB,EASEoB,EAAI,KARNylB,EAQEzlB,EAAI,QAPNq5B,EAOEr5B,EAAI,cANNsM,EAMEtM,EAAI,gBALNs5B,EAKEt5B,EAAI,WAJNu5B,EAIEv5B,EAAI,kBAHN8H,EAGE9H,EAAI,gBAFN+3B,EAEE/3B,EAAI,SAER,GAFIA,EAAI,aAEE,MAAN8B,GAAcW,MAAMC,SAASZ,IAC/B,MAAM,IAAIa,UAAU,eAEtB,GAAoB,iBAAT/D,GAAqC,IAAhBA,EAAKM,OACnC,MAAM,IAAIyD,UAAU,iBAEtB,GAAe,MAAX8iB,GAAmBhjB,MAAMC,SAAS+iB,IACpC,MAAM,IAAI9iB,UAAU,qBAGtB,OAAO,IACLb,GAAIY,SAASZ,GACblD,KAAI,EACJ6mB,QAAS/iB,SAAS+iB,GAClB4T,eAAe,QAAiBA,EAAe,MAC/C/sB,iBAAiB,QAAiBA,EAAiB,MACnDgtB,YAAY,QAAaA,GACzBC,mBAAmB,QAAWA,EAAmB,GACjDzxB,gBAAiBA,EACjBiwB,UAAU,QAAWA,EAAU,IAC/BD,cAAc,IACX,QAAiB93B,GAExB,CAsdkBw5B,CAA0Bl2B,GAGxCrE,KAAKqK,UAGLguB,EAAQA,EAAMmC,MAAK,SAASnG,EAAGoG,GAC7B,OAAY,MAARpG,EAAExxB,IAAsB,MAAR43B,EAAE53B,GAAmB,EAChCwxB,EAAExxB,GAAK43B,EAAE53B,GAAW,GAChB,CACf,KAGMlC,SAAQ,SAAAkF,GAAQ,SAAK60B,WAAW70B,EAAM,EAAtB,IAGtB7F,KAAK26B,iBAGL36B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GAChBA,aAAgB,GAClB,EAAK4zB,YAAY5zB,EAErB,IAEA7F,KAAKk6B,aAAap3B,iBAAiB,QAAS9C,KAAKg6B,qBACnD,CAyuBF,OAzlCU,YAAAY,kBAAR,SAA0Bv1B,EAAWC,EAAWjB,GAC9C,OACgB,IAAdA,EAAM1B,MACQ,IAAd0B,EAAM1B,MAMN0C,EAAIhB,EAAMgB,GACVA,EAAIhB,EAAMgB,EAAIhB,EAAM2B,OACpBV,EAAIjB,EAAMiB,GACVA,EAAIjB,EAAMiB,EAAIjB,EAAM4B,MAKxB,EA2GU,YAAAwzB,YAAV,SAAsBjU,GACpB,IAAI5B,EAAe4B,EAAEnhB,MAAMxB,GACvBg4B,EAAc,EACdC,EAAY,EAEhB,IACE,IAAK,IAAI7vB,KAAKjL,KAAKs4B,aAEft4B,KAAK46B,kBACHpV,EAAEnhB,MAAMid,cAAcjc,EACtBmgB,EAAEnhB,MAAMid,cAAchc,EACtBtF,KAAKs4B,aAAartB,GAAG5G,SAIvBw2B,EAAcp3B,SAASwH,IAIvBjL,KAAK46B,kBACHpV,EAAEnhB,MAAMod,YAAYpc,EACpBmgB,EAAEnhB,MAAMod,YAAYnc,EACpBtF,KAAKs4B,aAAartB,GAAG5G,SAIvBy2B,EAAYr3B,SAASwH,IAyEzB,IAAK,IAAIA,KArEa,MAAlBjL,KAAKy4B,YACPz4B,KAAKy4B,UAAY,CAAC,GAGF,MAAdz4B,KAAK+jB,QACP/jB,KAAK+jB,MAAQ,CAAC,GAGZ8W,GAAejX,IACjBiX,EAAc,GAGZC,GAAalX,IACfkX,EAAY,GAIU,MAApB96B,KAAK+jB,MAAMH,KACb5jB,KAAK+jB,MAAMH,GAAQ,CACjBc,MAAOmW,EACPlW,IAAKmW,IAKLD,EAAc,GAEmB,MAA/B76B,KAAKy4B,UAAUoC,KACjB76B,KAAKy4B,UAAUoC,GAAe,CAAC,GAIjC76B,KAAKy4B,UAAUoC,GAAajX,GAAQ,CAClCc,MAAOmW,EACPlW,IAAKmW,IAMH96B,KAAK+jB,MAAMH,GAAa,MAAI,IAC9B5jB,KAAKy4B,UAAUz4B,KAAK+jB,MAAMH,GAAa,OAAGA,GAAa,MAAI,EAC3D5jB,KAAK+jB,MAAMH,GAAa,MAAI,GAI5BkX,EAAY,GACmB,MAA7B96B,KAAKy4B,UAAUqC,KACjB96B,KAAKy4B,UAAUqC,GAAa,CAAC,GAG/B96B,KAAKy4B,UAAUqC,GAAWlX,GAAQ,CAChCc,MAAOmW,EACPlW,IAAKmW,IAIH96B,KAAK+jB,MAAMH,GAAW,IAAI,IAC5B5jB,KAAKy4B,UAAUz4B,KAAK+jB,MAAMH,GAAW,KAAGA,GAAW,IAAI,EACvD5jB,KAAK+jB,MAAMH,GAAW,IAAI,GAI9B5jB,KAAK+jB,MAAMH,GAAQ,CACjBc,MAAOmW,EACPlW,IAAKmW,GAIO96B,KAAKy4B,UACbz4B,KAAKy4B,UAAUxtB,GAAG2Y,KAEe,GAAjC5jB,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OACO,GAA/B1kB,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,aAGjB3kB,KAAKy4B,UAAUxtB,GAAG2Y,GAEqB,IAA1C5H,OAAO+e,KAAK/6B,KAAKy4B,UAAUxtB,IAAIhL,eAC1BD,KAAKy4B,UAAUxtB,KAKvBjL,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OAASmW,GAChC76B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,KAAOmW,GAChC96B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMc,OAASmW,GAChC76B,KAAKy4B,UAAUxtB,GAAG2Y,GAAMe,KAAOmW,YAG1B96B,KAAKy4B,UAAUxtB,GAAG2Y,GAEqB,IAA1C5H,OAAO+e,KAAK/6B,KAAKy4B,UAAUxtB,IAAIhL,eAC1BD,KAAKy4B,UAAUxtB,I,CAK9B,MAAOuJ,GACP6R,QAAQ7R,MAAMA,E,CAElB,EAUU,YAAA8kB,qBAAV,SAA+BzzB,EAAiBm1B,EAAcC,GAA9D,WACiC,MAA3Bj7B,KAAKy4B,UAAU5yB,EAAKhD,MAIxBmZ,OAAO+e,KAAK/6B,KAAKy4B,UAAU5yB,EAAKhD,KAAKlC,SAAQ,SAAAsK,GAC3C,IAAIiwB,EAASz3B,SAASwH,GAEtB,IAAe,IADD,EAAKstB,WAAWzmB,QAAQopB,GACtC,CAGA,IAAItX,EAAO,EAAK0U,aAAa4C,GAC7B,GAAItX,EAAKvf,MAAO,CACd,IAAIkd,EAASqC,EAAKvf,MAAMid,cAAcjc,EAClCmc,EAASoC,EAAKvf,MAAMid,cAAchc,EAClCoc,EAAOkC,EAAKvf,MAAMod,YAAYpc,EAC9Bsc,EAAOiC,EAAKvf,MAAMod,YAAYnc,EAE9BO,EAAKhD,IAAM,EAAK41B,UAAU5yB,EAAKhD,IAAIq4B,GAAe,QACpD3Z,EAASyZ,EAAG31B,EAAIQ,EAAKG,MAAQ,EAC7Bwb,EAASwZ,EAAG11B,EAAIO,EAAKI,OAAS,GAG5BJ,EAAKhD,IAAM,EAAK41B,UAAU5yB,EAAKhD,IAAIq4B,GAAa,MAClDxZ,EAAOsZ,EAAG31B,EAAIQ,EAAKG,MAAQ,EAC3B2b,EAAOqZ,EAAG11B,EAAIO,EAAKI,OAAS,GAI9B,EAAKk1B,cAAc,SACdvX,EAAKvf,OAAK,CACbkd,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,KAGJsZ,IAC8B,QAC9B,KACA,SAACG,GACC,EAAKvY,sBAAsBzhB,KAAK,CAC9ByE,KAAMu1B,EAAQxX,KACdtC,cAAe,CACbjc,EAAG+1B,EAAQ7Z,OACXjc,EAAG81B,EAAQ5Z,QAEbC,YAAa,CACXpc,EAAG+1B,EAAQ1Z,KACXpc,EAAG81B,EAAQzZ,OAGjB,GAIF0Z,CAA0B,CACxBzX,KAAMA,EACNrC,OAAQA,EACRC,OAAQA,EACRE,KAAMA,EACNC,KAAMA,G,EAId,IAGA3hB,KAAK26B,eAAe90B,EAAKhD,GAAIm4B,EAAG31B,EAAIQ,EAAKG,MAAQ,EAAGg1B,EAAG11B,EAAIO,EAAKI,OAAS,GAC3E,EAwCA,sBAAW,uBAAQ,C,IAAnB,sBAEE,OAAOjG,KAAKu4B,WACT+C,KAAI,SAAAz4B,GAAM,SAAKy1B,aAAaz1B,EAAlB,IACVV,QAAO,SAAAkqB,GAAK,OAAK,MAALA,CAAA,GACjB,E,gCAMO,YAAAqO,WAAP,SAAkB70B,EAAiB6sB,QAAA,IAAAA,IAAAA,EAAA,MACjC,IACE,IAAM6I,EAnrBZ,SAA0Bx6B,GACxB,IAAM4B,GAAO,QAAW5B,EAAK4B,KAAM,MACnC,GAAY,MAARA,EAAc,MAAM,IAAIe,UAAU,sBAEtC,IAAMiD,GAAO,QAAgB5F,GAE7B,OAAQ4B,GACN,KAAK,EACH,OAAO,IAAI,EAAYma,EAAwB/b,GAAO4F,GACxD,KAAK,EACH,OAAO,IAAI60B,GAAA,GAAY,QAAwBz6B,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAO,IAAI,GAAY6kB,GAAwBzqB,GAAO4F,GACxD,KAAK,EACL,KAAK,EACL,KAAK,GACL,KAAK,GACH,OAAO,IAAI,GAAW6qB,GAAuBzwB,GAAO4F,GACtD,KAAK,EACH,OAAO,IAAI,GAAM0kB,GAAkBtqB,GAAO4F,GAC5C,KAAK,EACH,OAAO,IAAI,EAAK6W,EAAiBzc,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAI,GAAQ4tB,GAAoBxzB,GAAO4F,GAChD,KAAK,GACH,OAAO,IAAI,EAAM4f,EAAkBxlB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,GAAIokB,GAAgBhqB,GAAO4F,GACxC,KAAK,GACH,OAAO,IAAI,EAAK0a,EAAiBtgB,GAAO4F,GAC1C,KAAK,GACH,OAAO,IAAI80B,GAAA,GAAc,QAA0B16B,GAAO4F,GAC5D,KAAK,GACH,OAAO,IAAI+0B,GAAA,GAAW,QAAuB36B,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAIg1B,GAAA,GAAU,QAAsB56B,GAAO4F,GACpD,KAAK,GACH,OAAO,IAAI,EAAMogB,EAAkBhmB,GAAO4F,GAC5C,KAAK,GACH,OAAO,IAAI,EAAWkX,EAAuB9c,GAAO4F,GACtD,KAAK,GACH,OAAO,IAAI,EAAYke,EAAwB9jB,GAAO4F,GACxD,KAAK,GACH,OAAO,IAAI,GAAS+tB,GAAqB3zB,GAAO4F,GAClD,KAAK,GACH,OAAO,IAAIi1B,GAAA,GAAW,QAAuB76B,GAAO4F,GACtD,QACE,MAAM,IAAIjD,UAAU,kBAE1B,CA+nB2Bm4B,CAAiBh2B,GAyBtC,OAvBA6sB,EAAQ4F,aAAaiD,EAAal3B,MAAMxB,IAAM04B,EAC9C7I,EAAQ6F,WAAWhsB,KAAKgvB,EAAal3B,MAAMxB,IAE3C04B,EAAa1uB,SAAS6lB,EAAQkH,qBAC9B2B,EAAazuB,mBAAmB4lB,EAAQoH,+BACxCyB,EAAajvB,QAAQomB,EAAQgG,oBAC7B6C,EAAa/uB,WAAWkmB,EAAQiG,uBAG5B4C,aAAwB,GAC1BA,EAAa3W,uBACX8N,EAAQ8G,mCAEVx5B,KAAKy5B,YAAY8B,KAEjBA,EAAa9uB,QAAQimB,EAAQkG,uBAC7B2C,EAAa7uB,mBAAmBgmB,EAAQ6G,+BACxCgC,EAAa5uB,UAAU+lB,EAAQgH,yBAC/B6B,EAAa3uB,iBAAiB8lB,EAAQiH,kCAIxCjH,EAAQwH,aAAa1Z,OAAO+a,EAAa/2B,YAClC+2B,C,CACP,MAAO/mB,GACP6R,QAAQ7R,MAAM,gCAAkCA,EAAgBsnB,Q,CAGpE,EAMO,YAAAC,eAAP,SAAsB1D,GAAtB,WAEQ2D,EAAU3D,EACbiD,KAAI,SAAAz1B,GAAQ,OAAAA,EAAKhD,IAAM,IAAX,IACZV,QAAO,SAAAU,GAAM,OAAM,MAANA,CAAA,IAEG7C,KAAKu4B,WAAWp2B,QAAO,SAAAU,GAAM,OAAAm5B,EAAQlqB,QAAQjP,GAAM,CAAtB,IAErClC,SAAQ,SAAAkC,GACY,MAAzB,EAAKy1B,aAAaz1B,KACpB,EAAKy1B,aAAaz1B,GAAIgI,gBACf,EAAKytB,aAAaz1B,GAE7B,IAEA7C,KAAKu4B,WAAayD,EAGlB3D,EAAM13B,SAAQ,SAAAkF,GACZ,GAAIA,EAAKhD,GACP,GAAkC,MAA9B,EAAKy1B,aAAazyB,EAAKhD,IAEzB,EAAK63B,WAAW70B,QAGhB,IACE,EAAKyyB,aAAazyB,EAAKhD,IAAIwB,MAAQ+zB,GAAYvyB,E,CAC/C,MAAO2O,GACP6R,QAAQ7R,MACN,6BACCA,EAAgBsnB,Q,CAK3B,IAGA97B,KAAK26B,gBACP,EAMO,YAAAQ,cAAP,SAAqBt1B,GAEnB,IACE7F,KAAKs4B,aAAazyB,EAAKhD,IAAIwB,MAAQ,MAC9B+zB,GAAYvyB,G,CAEjB,MAAO2O,GACP6R,QAAQ7R,MAAM,0BAA4BA,EAAgBsnB,Q,CAI5D97B,KAAK26B,gBACP,EAMA,sBAAW,oBAAK,C,IAAhB,WACE,OAAO,MAAK36B,KAAKm6B,OACnB,E,IAQA,SAAiBlwB,GACf,IAAME,EAAYnK,KAAKqE,MAEvBrE,KAAKm6B,OAASlwB,EAKdjK,KAAKqK,OAAOF,EACd,E,gCAMO,YAAAE,OAAP,SAAcF,QAAA,IAAAA,IAAAA,EAAA,MACRA,GACEA,EAAUiwB,gBAAkBp6B,KAAKqE,MAAM+1B,gBACzCp6B,KAAKk6B,aAAaryB,MAAMsV,gBACO,OAA7Bnd,KAAKqE,MAAM+1B,cACP,cAAOp6B,KAAKqE,MAAM+1B,cAAa,KAC/B,IAE0B,MAA9Bp6B,KAAKqE,MAAMgJ,iBACTlD,EAAUkD,kBAAoBrN,KAAKqE,MAAMgJ,kBAC3CrN,KAAKk6B,aAAaryB,MAAMwF,gBAAkBrN,KAAKqE,MAAMgJ,iBAErDrN,KAAKqG,YAAY8D,EAAWnK,KAAKqE,QACnCrE,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,UAG9CjG,KAAKqE,MAAM+1B,gBACbp6B,KAAKk6B,aAAaryB,MAAMsV,gBACO,OAA7Bnd,KAAKqE,MAAM+1B,cACP,cAAOp6B,KAAKqE,MAAM+1B,cAAa,KAC/B,IAEJp6B,KAAKqE,MAAMgJ,kBACbrN,KAAKk6B,aAAaryB,MAAMwF,gBAAkBrN,KAAKqE,MAAMgJ,iBACvDrN,KAAKmH,cAAcnH,KAAKqE,MAAM2B,MAAOhG,KAAKqE,MAAM4B,QAEpD,EASO,YAAAI,YAAP,SAAmBF,EAAgBC,GACjC,OACED,EAASH,QAAUI,EAAQJ,OAASG,EAASF,SAAWG,EAAQH,MAEpE,EAOO,YAAAkB,cAAP,SAAqBnB,EAAeC,GAClCjG,KAAKk6B,aAAaryB,MAAM7B,MAAQ,UAAGA,EAAK,MACxChG,KAAKk6B,aAAaryB,MAAM5B,OAAS,UAAGA,EAAM,KAC5C,EAOO,YAAAK,OAAP,SAAcN,EAAeC,GAC3BjG,KAAKqE,MAAQ,SACRrE,KAAKqE,OAAK,CACb2B,MAAK,EACLC,OAAM,GAEV,EAKO,YAAA4E,OAAP,WACE7K,KAAKmF,YAAYxE,SAAQ,SAAAib,GAAK,OAAAA,EAAE5P,SAAF,IAC9BhM,KAAK+5B,SAASp5B,SAAQ,SAAAoC,GAAK,OAAAA,EAAE8H,QAAF,IAC3B7K,KAAKs4B,aAAe,CAAC,EACrBt4B,KAAKu4B,WAAa,GAElBv4B,KAAK65B,iBAEL75B,KAAKk6B,aAAahgB,oBAAoB,QAASla,KAAKg6B,sBAEpDh6B,KAAKk6B,aAAa5wB,UAAY,EAChC,EAQO,YAAAqxB,eAAP,SAAsB1B,EAAiB5zB,EAAYC,GAAnD,WAEEtF,KAAK65B,iBAEL75B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpB,GAA4B,OAAxBA,EAAKxB,MAAMN,SAAmB,CAChC,IAAM,EAAS,EAAKu0B,aAAazyB,EAAKxB,MAAMN,UACtCk4B,EAAQ,EAAK3D,aAAazyB,EAAKxB,MAAMxB,IAEvC,GAAUo5B,IACExzB,MAAVwwB,EACEpzB,EAAKxB,MAAMN,UAAYk1B,EAEzB,EAAKiD,gBAAgB,EAAQD,EAAO52B,EAAGC,GAC9BO,EAAKxB,MAAMxB,IAAMo2B,EAE1B,EAAKiD,gBAAgB,EAAQD,OAAOxzB,OAAWA,EAAWpD,EAAGC,GAE7D,EAAK42B,gBAAgB,EAAQD,GAI/B,EAAKC,gBAAgB,EAAQD,G,CAIrC,GACF,EAMQ,YAAApC,eAAR,SAAuBZ,GACrB,GAAc,MAAVA,EACF,IAAK,IAAInd,KAAO9b,KAAKw4B,UAAW,CAC9B,IAAM2D,EAAMrgB,EAAIyJ,MAAM,KAChBxhB,EAAW8L,OAAOpM,SAAS04B,EAAI,IAC/B9C,EAAUxpB,OAAOpM,SAAS04B,EAAI,IAEhClD,IAAWl1B,GAAYk1B,IAAWI,IACpCr5B,KAAKw4B,UAAU1c,GAAKjR,gBACb7K,KAAKw4B,UAAU1c,G,MAI1B,IAAK,IAAIA,KAAO9b,KAAKw4B,UACnBx4B,KAAKw4B,UAAU1c,GAAKjR,gBACb7K,KAAKw4B,UAAU1c,EAG5B,EAQQ,YAAAsgB,gBAAR,SAAwBr4B,EAAkBs1B,GACxC,IAAMp4B,EAAa,UAAG8C,EAAQ,YAAIs1B,GAClC,OAAOr5B,KAAKw4B,UAAUv3B,IAAe,IACvC,EAGQ,YAAAi4B,iBAAR,SACED,GAMA,IAAMoD,EAAgB,GAEtB,IAAK,IAAIvgB,KAAO9b,KAAKw4B,UAAW,CAC9B,IAAM2D,EAAMrgB,EAAIyJ,MAAM,KAChBxhB,EAAW8L,OAAOpM,SAAS04B,EAAI,IAC/B9C,EAAUxpB,OAAOpM,SAAS04B,EAAI,IAEhClD,IAAWl1B,GAAYk1B,IAAWI,GACpCgD,EAAc9vB,KAAK,CACjBxI,SAAQ,EACRs1B,QAAO,EACPzV,KAAM5jB,KAAKw4B,UAAU1c,I,CAK3B,OAAOugB,CACT,EAQQ,YAAAjD,gBAAR,SACEltB,EACA9L,GAEA,IAAIiF,EAAI6G,EAAS7G,EAAIjF,EAAQoE,WAAW83B,YAAc,EAClDh3B,EAAI4G,EAAS5G,EAAIlF,EAAQoE,WAAW+3B,aAAe,EACvD,QACiC,IAAxBn8B,EAAQiE,MAAMV,OACG,KAAxBvD,EAAQiE,MAAMV,OACU,OAAxBvD,EAAQiE,MAAMV,MAEd,OAAQvD,EAAQiE,MAAMf,eACpB,IAAK,KACHgC,EACE4G,EAAS5G,GACRlF,EAAQoE,WAAW+3B,aAClBn8B,EAAQqE,gBAAgB83B,cACxB,EACJ,MACF,IAAK,OACHj3B,EACE4G,EAAS5G,GACRlF,EAAQoE,WAAW+3B,aAClBn8B,EAAQqE,gBAAgB83B,cACxB,EACJ,MACF,IAAK,QACHl3B,EACE6G,EAAS7G,GACRjF,EAAQoE,WAAW83B,YAClBl8B,EAAQqE,gBAAgB63B,aACxB,EACJ,MACF,IAAK,OACHj3B,EACE6G,EAAS7G,GACRjF,EAAQoE,WAAW83B,YAClBl8B,EAAQqE,gBAAgB63B,aACxB,EAIV,MAAO,CAAEj3B,EAAC,EAAEC,EAAC,EACf,EAQQ,YAAA42B,gBAAR,SACE1kB,EACAykB,EACAO,EACAC,EACAC,EACAC,GAEA,IAAM17B,EAAa,UAAGuW,EAAOnT,MAAMxB,GAAE,YAAIo5B,EAAM53B,MAAMxB,IACnB,MAA9B7C,KAAKw4B,UAAUv3B,IACjBjB,KAAKw4B,UAAUv3B,GAAY4J,SAIzB,MAA2B7K,KAAKo5B,gBAAgB5hB,EAAOnT,MAAOmT,GAAzD+J,EAAM,IAAKC,EAAM,IACtB,EAAuBxhB,KAAKo5B,gBAAgB6C,EAAM53B,MAAO43B,GAApDva,EAAI,IAAKC,EAAI,IAGP,MAAX6a,IACFjb,EAASib,GAGI,MAAXC,IACFjb,EAASib,GAGG,MAAVC,IACFhb,EAAOgb,GAGK,MAAVC,IACFhb,EAAOgb,GAIT,IAAM/Y,EAAO,IAAI,EACfvC,EAAiB,CACfxe,GAAI,EACJF,KAAM,GACN4e,OAAM,EACNC,OAAM,EACNE,KAAI,EACJC,KAAI,EACJ3b,MAAO,EACPC,OAAQ,EACR2b,UAAW5hB,KAAKqE,MAAMi2B,kBACtB3rB,OAAO,QAAiBstB,EAAM53B,MAAMH,YAAa,WAEnD,QAAgB,CACdoQ,WAAY,IAAI5K,QAUpB,OANA1J,KAAKw4B,UAAUv3B,GAAc2iB,EAG7BA,EAAKpf,WAAWqD,MAAM+0B,OAAS,IAC/B58B,KAAKk6B,aAAa1Z,OAAOoD,EAAKpf,YAEvBof,CACT,EAMO,YAAAiZ,YAAP,SAAmBv7B,GAMjB,IAAMyK,EAAa/L,KAAK2E,kBAAkBpD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAA+wB,eAAP,SAAsBx7B,GAMpB,IAAMyK,EAAa/L,KAAK4E,qBAAqBrD,GAAGD,GAGhD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAgxB,YAAP,SAAmBz7B,GAMjB,IAAMyK,EAAa/L,KAAK6E,kBAAkBtD,GAAGD,GAG7C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAixB,YAAP,SAAmB17B,GAMjB,IAAMyK,EAAa/L,KAAK6iB,sBAAsBthB,GAAGD,GAGjD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAkxB,cAAP,SAAqB37B,GAMnB,IAAMyK,EAAa/L,KAAK+E,oBAAoBxD,GAAGD,GAG/C,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAMO,YAAAmxB,uBAAP,SACE57B,GAOA,IAAMyK,EAAa/L,KAAKkF,6BAA6B3D,GAAGD,GAGxD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EAKO,YAAAoxB,eAAP,WACEn9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAKk6B,aAAavyB,UAAUC,IAAI,aAClC,EAKO,YAAAw1B,gBAAP,WACEp9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEuB,UAAU,GACxC,IACAlI,KAAKk6B,aAAavyB,UAAUkD,OAAO,aACrC,EAKO,YAAAwyB,sBAAP,WACEr9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAKk6B,aAAavyB,UAAUC,IAAI,kBAChC5H,KAAKk6B,aAAavyB,UAAUkD,OAAO,aACrC,EAKO,YAAAyyB,uBAAP,WACEt9B,KAAK+5B,SAASp5B,SAAQ,SAAAkF,GACpBA,EAAKc,KAAO,SAAKd,EAAKc,MAAI,CAAEkC,iBAAiB,GAC/C,IACA7I,KAAKk6B,aAAavyB,UAAUkD,OAAO,kBACnC7K,KAAKk6B,aAAavyB,UAAUC,IAAI,aAClC,EAKO,YAAA21B,eAAP,SAAsBzE,GACpB94B,KAAKm6B,OAAOrB,SAAWr1B,SAASq1B,GAChC94B,KAAKqE,MAAMy0B,SAAWr1B,SAASq1B,EACjC,EAKO,YAAA0E,mBAAP,SAA0B3E,GACxB74B,KAAKm6B,OAAOtB,aAAeA,EAC3B74B,KAAKqE,MAAMw0B,aAAeA,CAC5B,EAOO,YAAA5wB,WAAP,SAAkBgxB,EAAgBwE,GAAlC,gBAAkC,IAAAA,IAAAA,GAAA,GAC5BA,EACFz9B,KAAKu4B,WAAW53B,SAAQ,SAAA+8B,GACtB,IAAM/2B,EAAO,EAAK2xB,aAAaoF,GAAe/2B,KAE1C+2B,IAAkBzE,GAAUtyB,EAAKC,WACnC,EAAK0xB,aAAaoF,GAAe11B,eACxB01B,IAAkBzE,GAAWtyB,EAAKC,YAC3C,EAAK0xB,aAAaoF,GAAez1B,YAErC,IACSjI,KAAKs4B,aAAaW,IAC3Bj5B,KAAKs4B,aAAaW,GAAQhxB,YAE9B,EAMO,YAAAD,aAAP,SAAoBixB,GACdj5B,KAAKs4B,aAAaW,IACPj5B,KAAKs4B,aAAaW,GAAQtyB,KAE9BC,YACP5G,KAAKs4B,aAAaW,GAAQjxB,cAGhC,EAKO,YAAAiyB,cAAP,sBACEj6B,KAAKu4B,WAAW53B,SAAQ,SAAAs4B,GAClB,EAAKX,aAAaW,IACpB,EAAKX,aAAaW,GAAQjxB,cAE9B,GACF,EAsCc,EAAA21B,oBAAd,SAAkC93B,GAChC,IAAI6Q,EACJ,OAAQ7Q,EAAKxB,MAAM1B,MACjB,KAAK,EACH+T,EAAO,WAAG,IAAAzJ,GAAE,gBAAe,cAAOpH,EAAqBxB,MAAM0Y,UAC7D,MACF,KAAK,EACHrG,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,uBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,kBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,yBACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,oCACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,gBACT,MACF,KAAK,EACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,SACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,eACT,MACF,KAAK,EACHyJ,EAAO,WAAG,IAAAzJ,GAAE,QAAO,cAAOpH,EAAcxB,MAAM0Y,UAC9C,MACF,KAAK,GACHrG,GAAO,IAAAzJ,GAAE,YACT,MACF,KAAK,GACHyJ,GAAO,IAAAzJ,GAAE,cACT,MACF,QACEyJ,GAAO,IAAAzJ,GAAE,QAIb,IAAM2wB,EAA4B/3B,EAAKxB,MAavC,OAX0C,MAAxCu5B,EAA0Bj0B,YACc,MAAxCi0B,EAA0B9zB,WAE1B4M,GAAQ,aAAK,QACXknB,EAA0Bj0B,WAC1B,IACD,eAAM,QAAUi0B,EAA0B9zB,WAAY,IAAG,KACT,MAAxC8zB,EAA0Bj0B,aACnC+M,GAAQ,aAAK,QAAUknB,EAA0Bj0B,WAAY,IAAG,MAG3D+M,CACT,EAtGc,EAAA2hB,QAAK,OACjB,GAAyB,EACzB,MAAyBmD,GAAA,EACzB,MAAyB,GACzB,MAA6B,GAC7B,MAA6B,GAC7B,MAA6B,GAC7B,MAA2B,GAC3B,MAA8B,GAC9B,OAAkC,GAClC,OAA2C,GAC3C,MAAkB,GAClB,MAAiB,EACjB,OAAoB,GACpB,OAAuB,EACvB,OAAqB,GACrB,OAAsB,EACtB,OAA2BC,GAAA,EAC3B,OAAwBC,GAAA,EACxB,OAAuBC,GAAA,EACvB,OAAkB,EAClB,OAAwB,EACxB,OAAyB,EACzB,OAAqB,GACrB,OAAwBC,GAAA,E,IA+E5B,C,CAvtCA,GCjNA,cAUE,WAAmBiC,GARX,KAAAC,YAA2B,CAAEC,OAAQ,WAAO,GAC5C,KAAAC,QAA2B,UAGlB,KAAAC,yBAA2B,IAAInb,EAAA,EAE/B,KAAA3d,YAA4B,GAG3CnF,KAAK69B,cAAgBA,CACvB,CAoDF,OA9CE,sBAAW,qBAAM,C,IASjB,WACE,OAAO79B,KAAKg+B,OACd,E,IAXA,SAAkBzvB,GAChBvO,KAAKg+B,QAAUzvB,EACfvO,KAAKi+B,yBAAyB78B,KAAKmN,EACrC,E,gCAaO,YAAA9H,KAAP,sBACEzG,KAAK89B,YAAc99B,KAAK69B,eAAc,WACpC,EAAKtvB,OAAS,UAChB,IACAvO,KAAKuO,OAAS,SAChB,EAKO,YAAAwvB,OAAP,WACE/9B,KAAK89B,YAAYC,SACjB/9B,KAAKuO,OAAS,WAChB,EAMO,YAAA2vB,eAAP,SAAsB58B,GAMpB,IAAMyK,EAAa/L,KAAKi+B,yBAAyB18B,GAAGD,GAGpD,OAFAtB,KAAKmF,YAAYoH,KAAKR,GAEfA,CACT,EACF,EAhEA,G,GAsGA,wBACU,KAAAoyB,MAA6C,CAAC,CAuDxD,QA7CS,YAAAv2B,IAAP,SACE3G,EACA48B,EACAxvB,QAAA,IAAAA,IAAAA,EAAA,GAEIrO,KAAKm+B,MAAMl9B,IAAiD,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACnDvO,KAAKm+B,MAAMl9B,GAAY88B,SAGzB,IAAMK,EACJ/vB,EAAS,EA/Cf,SAAuBgwB,EAAiBhwB,GACtC,OAAO,IAAIiwB,IAAU,WACnB,IAAIC,EAAqB,KAYzB,OAVAF,EAAKH,gBAAe,SAAA3vB,GACH,aAAXA,IACFgwB,EAAMppB,OAAOlH,YAAW,WACtBowB,EAAK53B,MACP,GAAG4H,GAEP,IAEAgwB,EAAK53B,OAEE,CACLs3B,OAAQ,WACFQ,GAAKlnB,aAAaknB,GACtBF,EAAKN,QACP,EAEJ,GACF,CA2BUS,CAAc,IAAIF,GAAUT,GAAgBxvB,GAC5C,IAAIiwB,GAAUT,GAIpB,OAFA79B,KAAKm+B,MAAMl9B,GAAcm9B,EAElBp+B,KAAKm+B,MAAMl9B,EACpB,EAOO,YAAAwF,KAAP,SAAYxF,IAERjB,KAAKm+B,MAAMl9B,IACwB,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACY,cAAlCvO,KAAKm+B,MAAMl9B,GAAYsN,QACW,aAAlCvO,KAAKm+B,MAAMl9B,GAAYsN,QAEzBvO,KAAKm+B,MAAMl9B,GAAYwF,MAE3B,EAOO,YAAAs3B,OAAP,SAAc98B,GACRjB,KAAKm+B,MAAMl9B,IAAiD,YAAlCjB,KAAKm+B,MAAMl9B,GAAYsN,QACnDvO,KAAKm+B,MAAMl9B,GAAY88B,QAE3B,EACF,EAxDA,GCrGC5oB,OAAespB,cAAgB,GAI/BtpB,OAAespB,cAAcC,KAAOA,EAIpCvpB,OAAewpB,iBAAmB,E","sources":["webpack://pandora-fms-visual-console/./src/Form.ts","webpack://pandora-fms-visual-console/./src/Item.ts","webpack://pandora-fms-visual-console/./src/items/BarsGraph.ts","webpack://pandora-fms-visual-console/./src/items/BasicChart.ts","webpack://pandora-fms-visual-console/./src/items/DonutGraph.ts","webpack://pandora-fms-visual-console/./src/items/EventsHistory.ts","webpack://pandora-fms-visual-console/./src/items/ModuleGraph.ts","webpack://pandora-fms-visual-console/./src/lib/FontAwesomeIcon.ts","webpack://pandora-fms-visual-console/./src/lib/TypedEvent.ts","webpack://pandora-fms-visual-console/./src/lib/index.ts","webpack://pandora-fms-visual-console/webpack/bootstrap","webpack://pandora-fms-visual-console/webpack/runtime/define property getters","webpack://pandora-fms-visual-console/webpack/runtime/hasOwnProperty shorthand","webpack://pandora-fms-visual-console/webpack/runtime/make namespace object","webpack://pandora-fms-visual-console/./src/items/StaticGraph.ts","webpack://pandora-fms-visual-console/./src/items/Icon.ts","webpack://pandora-fms-visual-console/./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack://pandora-fms-visual-console/./src/items/ColorCloud.ts","webpack://pandora-fms-visual-console/./src/items/Line.ts","webpack://pandora-fms-visual-console/./src/items/NetworkLink.ts","webpack://pandora-fms-visual-console/./src/items/Group.ts","webpack://pandora-fms-visual-console/./src/items/Clock/index.ts","webpack://pandora-fms-visual-console/./src/items/Box.ts","webpack://pandora-fms-visual-console/./src/items/Label.ts","webpack://pandora-fms-visual-console/./src/items/SimpleValue.ts","webpack://pandora-fms-visual-console/./node_modules/d3-path/src/path.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/constant.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/math.js","webpack://pandora-fms-visual-console/./node_modules/d3-shape/src/arc.js","webpack://pandora-fms-visual-console/./src/items/Percentile.ts","webpack://pandora-fms-visual-console/./src/items/Service.ts","webpack://pandora-fms-visual-console/./src/items/Odometer.ts","webpack://pandora-fms-visual-console/./src/VisualConsole.ts","webpack://pandora-fms-visual-console/./src/lib/AsyncTaskManager.ts","webpack://pandora-fms-visual-console/./src/index.ts"],"sourcesContent":["import TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { AnyObject, UnknownObject } from \"./lib/types\";\nimport { t } from \"./lib\";\n\ninterface InputGroupDataRequestedEvent {\n identifier: string;\n params: UnknownObject;\n done: (error: Error | null, data?: unknown) => void;\n}\n\n// TODO: Document\nexport abstract class InputGroup {\n private _name: string = \"\";\n private _element?: HTMLElement;\n public readonly initialData: Data;\n protected currentData: Partial = {};\n // Event manager for data requests.\n private readonly dataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n\n public constructor(name: string, initialData: Data) {\n this.name = name;\n this.initialData = initialData;\n }\n\n public set name(name: string) {\n if (name.length === 0) throw new RangeError(\"empty name\");\n this._name = name;\n }\n\n public get name(): string {\n return this._name;\n }\n\n public get data(): Partial {\n return { ...this.currentData };\n }\n\n public get element(): HTMLElement {\n if (this._element == null) {\n const element = document.createElement(\"div\");\n element.className = `input-group input-group-${this.name}`;\n\n const content = this.createContent();\n\n if (content instanceof Array) {\n content.forEach(element.appendChild);\n } else {\n element.appendChild(content);\n }\n\n this._element = element;\n }\n\n return this._element;\n }\n\n public reset(): void {\n this.currentData = {};\n }\n\n protected updateData(data: Partial): void {\n this.currentData = {\n ...this.currentData,\n ...data\n };\n // TODO: Update item.\n }\n\n protected requestData(\n identifier: string,\n params: UnknownObject,\n done: (error: Error | null, data?: unknown) => void\n ): void {\n this.dataRequestedEventManager.emit({ identifier, params, done });\n }\n\n public onDataRequested(\n listener: Listener\n ): Disposable {\n return this.dataRequestedEventManager.on(listener);\n }\n\n protected abstract createContent(): HTMLElement | HTMLElement[];\n\n // public abstract get isValid(): boolean;\n}\n\nexport interface SubmitFormEvent {\n nativeEvent: Event;\n data: AnyObject;\n}\n\n// TODO: Document\nexport class FormContainer {\n public readonly title: string;\n private inputGroupsByName: { [name: string]: InputGroup } = {};\n private enabledInputGroupNames: string[] = [];\n // Event manager for submit events.\n private readonly submitEventManager = new TypedEvent();\n // Event manager for item data requests.\n private readonly itemDataRequestedEventManager = new TypedEvent<\n InputGroupDataRequestedEvent\n >();\n private handleItemDataRequested = this.itemDataRequestedEventManager.emit;\n\n public constructor(\n title: string,\n inputGroups: InputGroup[] = [],\n enabledInputGroups: string[] = []\n ) {\n this.title = title;\n\n if (inputGroups.length > 0) {\n this.inputGroupsByName = inputGroups.reduce((prevVal, inputGroup) => {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n prevVal[inputGroup.name] = inputGroup;\n return prevVal;\n }, this.inputGroupsByName);\n }\n\n if (enabledInputGroups.length > 0) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n ...enabledInputGroups.filter(\n name => this.inputGroupsByName[name] != null\n )\n ];\n }\n }\n\n public getInputGroup(inputGroupName: string): InputGroup | null {\n return this.inputGroupsByName[inputGroupName] || null;\n }\n\n public addInputGroup(\n inputGroup: InputGroup,\n index: number | null = null\n ): FormContainer {\n // Add event handlers.\n inputGroup.onDataRequested(this.handleItemDataRequested);\n this.inputGroupsByName[inputGroup.name] = inputGroup;\n\n // Remove the current stored name if exist.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroup.name\n );\n\n if (index !== null) {\n if (index <= 0) {\n this.enabledInputGroupNames = [\n inputGroup.name,\n ...this.enabledInputGroupNames\n ];\n } else if (index >= this.enabledInputGroupNames.length) {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n } else {\n this.enabledInputGroupNames = [\n // part of the array before the specified index\n ...this.enabledInputGroupNames.slice(0, index),\n // inserted item\n inputGroup.name,\n // part of the array after the specified index\n ...this.enabledInputGroupNames.slice(index)\n ];\n }\n } else {\n this.enabledInputGroupNames = [\n ...this.enabledInputGroupNames,\n inputGroup.name\n ];\n }\n\n return this;\n }\n\n public removeInputGroup(inputGroupName: string): FormContainer {\n delete this.inputGroupsByName[inputGroupName];\n // Remove the current stored name.\n this.enabledInputGroupNames = this.enabledInputGroupNames.filter(\n name => name !== inputGroupName\n );\n\n return this;\n }\n\n public getFormElement(\n type: \"creation\" | \"update\" = \"update\"\n ): HTMLFormElement {\n const form = document.createElement(\"form\");\n form.id = \"visual-console-item-edition\";\n form.className = \"visual-console-item-edition\";\n form.addEventListener(\"submit\", e => {\n e.preventDefault();\n this.submitEventManager.emit({\n nativeEvent: e,\n data: this.enabledInputGroupNames.reduce((data, name) => {\n if (this.inputGroupsByName[name]) {\n data = {\n ...data,\n ...this.inputGroupsByName[name].data\n };\n }\n return data;\n }, {})\n });\n });\n\n const formContent = document.createElement(\"div\");\n formContent.className = \"input-groups\";\n\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n formContent.appendChild(this.inputGroupsByName[name].element);\n }\n });\n\n form.appendChild(formContent);\n\n return form;\n }\n\n public reset(): void {\n this.enabledInputGroupNames.forEach(name => {\n if (this.inputGroupsByName[name]) {\n this.inputGroupsByName[name].reset();\n }\n });\n }\n\n // public get isValid(): boolean {\n // for (let i = 0; i < this.enabledInputGroupNames.length; i++) {\n // const inputGroup = this.inputGroupsByName[this.enabledInputGroupNames[i]];\n // if (inputGroup && !inputGroup.isValid) return false;\n // }\n\n // return true;\n // }\n\n public onSubmit(listener: Listener): Disposable {\n return this.submitEventManager.on(listener);\n }\n\n public onInputGroupDataRequested(\n listener: Listener\n ): Disposable {\n return this.itemDataRequestedEventManager.on(listener);\n }\n}\n","import {\n Position,\n Size,\n AnyObject,\n WithModuleProps,\n ItemMeta,\n LinkedVisualConsoleProps,\n WithAgentProps\n} from \"./lib/types\";\nimport {\n sizePropsDecoder,\n positionPropsDecoder,\n parseIntOr,\n parseBoolean,\n notEmptyStringOr,\n replaceMacros,\n humanDate,\n humanTime,\n addMovementListener,\n debounce,\n addResizementListener,\n t\n} from \"./lib\";\nimport TypedEvent, { Listener, Disposable } from \"./lib/TypedEvent\";\nimport { FormContainer, InputGroup } from \"./Form\";\n\n// Enum: https://www.typescriptlang.org/docs/handbook/enums.html.\nexport const enum ItemType {\n STATIC_GRAPH = 0,\n MODULE_GRAPH = 1,\n SIMPLE_VALUE = 2,\n PERCENTILE_BAR = 3,\n LABEL = 4,\n ICON = 5,\n SIMPLE_VALUE_MAX = 6,\n SIMPLE_VALUE_MIN = 7,\n SIMPLE_VALUE_AVG = 8,\n PERCENTILE_BUBBLE = 9,\n SERVICE = 10,\n GROUP_ITEM = 11,\n BOX_ITEM = 12,\n LINE_ITEM = 13,\n AUTO_SLA_GRAPH = 14,\n CIRCULAR_PROGRESS_BAR = 15,\n CIRCULAR_INTERIOR_PROGRESS_BAR = 16,\n DONUT_GRAPH = 17,\n BARS_GRAPH = 18,\n CLOCK = 19,\n COLOR_CLOUD = 20,\n NETWORK_LINK = 21,\n ODOMETER = 22,\n BASIC_CHART = 23\n}\n\n// Base item properties. This interface should be extended by the item implementations.\nexport interface ItemProps extends Position, Size {\n readonly id: number;\n readonly type: ItemType;\n label: string | null;\n labelPosition: \"up\" | \"right\" | \"down\" | \"left\";\n isLinkEnabled: boolean;\n link: string | null;\n isOnTop: boolean;\n parentId: number | null;\n aclGroupId: number | null;\n cacheExpiration: number | null;\n colorStatus: string;\n cellId: number | null;\n alertOutline: boolean;\n}\n\nexport interface ItemClickEvent {\n item: VisualConsoleItem;\n nativeEvent: Event;\n}\n\n// FIXME: Fix type compatibility.\nexport interface ItemRemoveEvent {\n // data: Props;\n item: VisualConsoleItem;\n}\n\nexport interface ItemMovedEvent {\n item: VisualConsoleItem;\n prevPosition: Position;\n newPosition: Position;\n}\n\nexport interface ItemResizedEvent {\n item: VisualConsoleItem;\n prevSize: Size;\n newSize: Size;\n}\n\nexport interface ItemSelectionChangedEvent {\n selected: boolean;\n}\n\n/**\n * Extract a valid enum value from a raw label position value.\n * @param labelPosition Raw value.\n */\nconst parseLabelPosition = (\n labelPosition: unknown\n): ItemProps[\"labelPosition\"] => {\n switch (labelPosition) {\n case \"up\":\n case \"right\":\n case \"down\":\n case \"left\":\n return labelPosition;\n default:\n return \"down\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function itemBasePropsDecoder(data: AnyObject): ItemProps | never {\n if (data.id == null || isNaN(parseInt(data.id))) {\n throw new TypeError(\"invalid id.\");\n }\n if (data.type == null || isNaN(parseInt(data.type))) {\n throw new TypeError(\"invalid type.\");\n }\n\n return {\n id: parseInt(data.id),\n type: parseInt(data.type),\n label: notEmptyStringOr(data.label, null),\n labelPosition: parseLabelPosition(data.labelPosition),\n isLinkEnabled: parseBoolean(data.isLinkEnabled),\n link: notEmptyStringOr(data.link, null),\n isOnTop: parseBoolean(data.isOnTop),\n parentId: parseIntOr(data.parentId, null),\n aclGroupId: parseIntOr(data.aclGroupId, null),\n cacheExpiration: parseIntOr(data.cacheExpiration, null),\n colorStatus: notEmptyStringOr(data.colorStatus, \"#CCC\"),\n cellId: parseIntOr(data.cellId, null),\n alertOutline: parseBoolean(data.alertOutline),\n ...sizePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...positionPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n//TODO: Document\nexport function titleItem(id: number): string {\n let title = \"\";\n switch (id) {\n case ItemType.STATIC_GRAPH:\n title = t(\"Static image\");\n break;\n case ItemType.MODULE_GRAPH:\n title = t(\"Module graph\");\n break;\n case ItemType.SIMPLE_VALUE:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.LABEL:\n title = t(\"Label\");\n break;\n case ItemType.ICON:\n title = t(\"Icon\");\n break;\n case ItemType.SIMPLE_VALUE_MAX:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_MIN:\n title = t(\"Simple value\");\n break;\n case ItemType.SIMPLE_VALUE_AVG:\n title = t(\"Simple value\");\n break;\n case ItemType.PERCENTILE_BUBBLE:\n title = t(\"Percentile item\");\n break;\n case ItemType.SERVICE:\n title = t(\"Service\");\n break;\n case ItemType.GROUP_ITEM:\n title = t(\"Group\");\n break;\n case ItemType.BOX_ITEM:\n title = t(\"Box\");\n break;\n case ItemType.LINE_ITEM:\n title = t(\"Line\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n title = t(\"Event history graph\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n title = t(\"Percentile item\");\n break;\n case ItemType.DONUT_GRAPH:\n title = t(\"Serialized pie graph\");\n break;\n case ItemType.BARS_GRAPH:\n title = t(\"Bars graph\");\n break;\n case ItemType.CLOCK:\n title = t(\"Clock\");\n break;\n case ItemType.COLOR_CLOUD:\n title = t(\"Color cloud\");\n break;\n case ItemType.NETWORK_LINK:\n title = t(\"Network link\");\n break;\n case ItemType.ODOMETER:\n title = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n title = t(\"Basic chart\");\n break;\n default:\n title = t(\"Item\");\n break;\n }\n\n return title;\n}\n\n/**\n * Base class of the visual console items. Should be extended to use its capabilities.\n */\nabstract class VisualConsoleItem {\n // Properties of the item.\n public itemProps: Props;\n // Metadata of the item.\n private _metadata: ItemMeta;\n // Reference to the DOM element which will contain the item.\n public elementRef: HTMLElement = document.createElement(\"div\");\n public labelElementRef: HTMLElement = document.createElement(\"div\");\n // Reference to the DOM element which will contain the view of the item which extends this class.\n protected childElementRef: HTMLElement = document.createElement(\"div\");\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for moved events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for stopped movement events.\n private readonly movementFinishedEventManager = new TypedEvent<\n ItemMovedEvent\n >();\n // Event manager for resized events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for resize finished events.\n private readonly resizeFinishedEventManager = new TypedEvent<\n ItemResizedEvent\n >();\n // Event manager for remove events.\n private readonly removeEventManager = new TypedEvent();\n // Event manager for selection change events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = false;\n\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = {\n x: x,\n y: y\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Save the new position to the props.\n this.move(x, y);\n // Emit the movement event.\n this.movementFinishedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n private removeMovement: Function | null = null;\n\n /**\n * Start the movement funtionality.\n * @param element Element to move inside its container.\n */\n private initMovementListener(element: HTMLElement): void {\n // Avoid line movement as 'block' force using circles.\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n\n this.removeMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n const prevPosition = {\n x: this.props.x,\n y: this.props.y\n };\n const newPosition = { x, y };\n\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n if (!this.positionChanged(prevPosition, newPosition)) return;\n\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingMoved = true;\n // Move the DOM element.\n this.moveElement(x, y);\n // Emit the movement event.\n this.movedEventManager.emit({\n item: this,\n prevPosition: prevPosition,\n newPosition: newPosition\n });\n // Run the save function.\n this.debouncedMovementSave(x, y);\n }\n );\n }\n /**\n * Stop the movement fun\n */\n private stopMovementListener(): void {\n if (this.removeMovement) {\n this.removeMovement();\n this.removeMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n private debouncedResizementSave = debounce(\n 500, // ms.\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = false;\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Save the new position to the props.\n this.resize(width, height);\n\n // Emit the resize finished event.\n this.resizeFinishedEventManager.emit({\n item: this,\n prevSize: prevSize,\n newSize: newSize\n });\n }\n );\n // This property will store the function\n // to clean the resizement listener.\n private removeResizement: Function | null = null;\n\n /**\n * Start the resizement funtionality.\n * @param element Element to move inside its container.\n */\n protected initResizementListener(element: HTMLElement): void {\n if (\n this.props.type == ItemType.LINE_ITEM ||\n this.props.type == ItemType.NETWORK_LINK\n ) {\n return;\n }\n this.removeResizement = addResizementListener(\n element,\n (width: Size[\"width\"], height: Size[\"height\"]) => {\n // Update the metadata information.\n // Don't use the .meta property cause we don't need DOM updates.\n this._metadata.isBeingResized = true;\n\n // The label it's outside the item's size, so we need\n // to get rid of its size to get the real size of the\n // item's content.\n if (this.props.label && this.props.label.length > 0) {\n const {\n width: labelWidth,\n height: labelHeight\n } = this.labelElementRef.getBoundingClientRect();\n\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n height -= labelHeight;\n break;\n case \"left\":\n case \"right\":\n width -= labelWidth;\n break;\n }\n }\n\n const prevSize = {\n width: this.props.width,\n height: this.props.height\n };\n const newSize = { width, height };\n\n if (!this.sizeChanged(prevSize, newSize)) return;\n\n // Move the DOM element.\n this.resizeElement(width, height);\n // Emit the resizement event.\n this.resizedEventManager.emit({\n item: this,\n prevSize,\n newSize\n });\n // Run the save function.\n this.debouncedResizementSave(width, height);\n }\n );\n }\n /**\n * Stop the resizement functionality.\n */\n private stopResizementListener(): void {\n if (this.removeResizement) {\n this.removeResizement();\n this.removeResizement = null;\n }\n }\n\n /**\n * To create a new element which will be inside the item box.\n * @return Item.\n */\n protected abstract createDomElement(): HTMLElement;\n\n public constructor(\n props: Props,\n metadata: ItemMeta,\n deferInit: boolean = false\n ) {\n this.itemProps = props;\n this._metadata = metadata;\n\n if (!deferInit) this.init();\n }\n\n /**\n * To create and append the DOM elements.\n */\n protected init(): void {\n /*\n * Get a HTMLElement which represents the container box\n * of the Visual Console item. This element will manage\n * all the common things like click events, show a border\n * when hovered, etc.\n */\n this.elementRef = this.createContainerDomElement();\n this.labelElementRef = this.createLabelDomElement();\n\n /*\n * Get a HTMLElement which represents the custom view\n * of the Visual Console item. This element will be\n * different depending on the item implementation.\n */\n this.childElementRef = this.createDomElement();\n\n // Insert the elements into the container.\n this.elementRef.appendChild(this.childElementRef);\n this.elementRef.appendChild(this.labelElementRef);\n\n // Resize element.\n this.resizeElement(this.itemProps.width, this.itemProps.height);\n // Set label position.\n this.changeLabelPosition(this.itemProps.labelPosition);\n }\n\n /**\n * To create a new box for the visual console item.\n * @return Item box.\n */\n private createContainerDomElement(): HTMLElement {\n let box;\n if (this.props.isLinkEnabled) {\n box = document.createElement(\"a\") as HTMLAnchorElement;\n\n if (this.props.link) {\n box.href = this.props.link;\n } else {\n box.className = \"textDecorationNone\";\n }\n } else {\n box = document.createElement(\"div\") as HTMLDivElement;\n box.className = \"textDecorationNone\";\n }\n\n box.classList.add(\"visual-console-item\");\n if (this.props.isOnTop) {\n box.classList.add(\"is-on-top\");\n }\n box.style.left = `${this.props.x}px`;\n box.style.top = `${this.props.y}px`;\n\n if (this.props.alertOutline) {\n box.classList.add(\"is-alert-triggered\");\n }\n\n // Init the click listeners.\n box.addEventListener(\"dblclick\", e => {\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.unSelectItem();\n this.selectItem();\n\n this.dblClickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n box.addEventListener(\"click\", e => {\n if (this.meta.editMode) {\n e.preventDefault();\n e.stopPropagation();\n } else {\n // Add loading click item.\n if (this.itemProps.isLinkEnabled && this.itemProps.link != null) {\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n let path = e.composedPath();\n let containerId = \"visual-console-container\";\n for (let index = 0; index < path.length; index++) {\n const element = path[index] as HTMLInputElement;\n if (\n element.id != undefined &&\n element.id != null &&\n element.id != \"\"\n ) {\n if (element.id.includes(containerId) === true) {\n containerId = element.id;\n break;\n }\n }\n }\n\n const containerVC = document.getElementById(containerId);\n if (containerVC != null) {\n containerVC.classList.add(\"is-updating\");\n containerVC.appendChild(divParent);\n }\n }\n }\n\n if (!this.meta.isBeingMoved && !this.meta.isBeingResized) {\n this.clickEventManager.emit({\n item: this,\n nativeEvent: e\n });\n }\n });\n\n // Metadata state.\n if (this.meta.maintenanceMode) {\n box.classList.add(\"is-maintenance\");\n }\n if (this.meta.editMode) {\n box.classList.add(\"is-editing\");\n }\n if (this.meta.isFetching) {\n box.classList.add(\"is-fetching\");\n }\n if (this.meta.isUpdating) {\n box.classList.add(\"is-updating\");\n }\n if (this.meta.isSelected) {\n box.classList.add(\"is-selected\");\n }\n\n return box;\n }\n\n /**\n * To create a new label for the visual console item.\n * @return Item label.\n */\n protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Add the label if it exists.\n const label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n // Ugly table we need to use to replicate the legacy style.\n const table = document.createElement(\"table\");\n const row = document.createElement(\"tr\");\n const emptyRow1 = document.createElement(\"tr\");\n const emptyRow2 = document.createElement(\"tr\");\n const cell = document.createElement(\"td\");\n\n cell.innerHTML = label;\n row.appendChild(cell);\n table.appendChild(emptyRow1);\n table.appendChild(row);\n table.appendChild(emptyRow2);\n table.style.textAlign = \"center\";\n\n // Change the table size depending on its position.\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n\n // element.innerHTML = this.props.label;\n element.appendChild(table);\n }\n\n return element;\n }\n\n /**\n * Return the label stored into the props with some macros replaced.\n */\n protected getLabelWithMacrosReplaced(): string {\n // We assert that the props may have some needed properties.\n const props = this.props as Partial;\n\n return replaceMacros(\n [\n {\n macro: \"_date_\",\n value: humanDate(new Date())\n },\n {\n macro: \"_time_\",\n value: humanTime(new Date())\n },\n {\n macro: \"_agent_\",\n value: props.agentAlias != null ? props.agentAlias : \"\"\n },\n {\n macro: \"_agentdescription_\",\n value: props.agentDescription != null ? props.agentDescription : \"\"\n },\n {\n macro: \"_address_\",\n value: props.agentAddress != null ? props.agentAddress : \"\"\n },\n {\n macro: \"_module_\",\n value: props.moduleName != null ? props.moduleName : \"\"\n },\n {\n macro: \"_moduledescription_\",\n value: props.moduleDescription != null ? props.moduleDescription : \"\"\n }\n ],\n this.props.label || \"\"\n );\n }\n\n /**\n * To update the content element.\n * @return Item.\n */\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): Props {\n return { ...this.itemProps }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: Props) {\n this.setProps(newProps);\n }\n\n /**\n * Clasic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n protected setProps(newProps: Props) {\n const prevProps = this.props;\n // Update the internal props.\n this.itemProps = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n if (this.shouldBeUpdated(prevProps, newProps))\n this.render(prevProps, this._metadata);\n }\n\n /**\n * Public accessor of the `meta` property.\n * @return Properties.\n */\n public get meta(): ItemMeta {\n return { ...this._metadata }; // Return a copy.\n }\n\n /**\n * Public setter of the `meta` property.\n * If the new meta are different enough than the\n * stored meta, a render would be fired.\n * @param newProps\n */\n public set meta(newMetadata: ItemMeta) {\n this.setMeta(newMetadata);\n }\n\n /**\n * Classic version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newProps\n */\n public setMeta(newMetadata: Partial): void {\n const prevMetadata = this._metadata;\n // Update the internal meta.\n this._metadata = {\n ...prevMetadata,\n ...newMetadata\n };\n\n if (\n typeof newMetadata.isSelected !== \"undefined\" &&\n prevMetadata.isSelected !== newMetadata.isSelected\n ) {\n this.selectionChangedEventManager.emit({\n selected: newMetadata.isSelected\n });\n }\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Check if we should re-render.\n // if (this.shouldBeUpdated(prevMetadata, newMetadata))\n this.render(this.itemProps, prevMetadata);\n }\n\n /**\n * To compare the previous and the new props and returns a boolean value\n * in case the difference is meaningfull enough to perform DOM changes.\n *\n * Here, the only comparision is done by reference.\n *\n * Override this function to perform a different comparision depending on the item needs.\n *\n * @param prevProps\n * @param newProps\n * @return Whether the difference is meaningful enough to perform DOM changes or not.\n */\n protected shouldBeUpdated(prevProps: Props, newProps: Props): boolean {\n return prevProps !== newProps;\n }\n\n /**\n * To recreate or update the HTMLElement which represents the item into the DOM.\n * @param prevProps If exists it will be used to only perform DOM updates instead of a full replace.\n */\n public render(\n prevProps: Props | null = null,\n prevMeta: ItemMeta | null = null\n ): void {\n if (prevProps) {\n this.updateDomElement(this.childElementRef);\n }\n // Move box.\n if (!prevProps || this.positionChanged(prevProps, this.props)) {\n this.moveElement(this.props.x, this.props.y);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Resize box.\n if (!prevProps || this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n if (\n prevProps &&\n prevProps.type != ItemType.LINE_ITEM &&\n prevProps.type != ItemType.NETWORK_LINK\n ) {\n this.updateDomElement(this.childElementRef);\n }\n }\n // Change label.\n const oldLabelHtml = this.labelElementRef.innerHTML;\n const newLabelHtml = this.createLabelDomElement().innerHTML;\n if (oldLabelHtml !== newLabelHtml) {\n this.labelElementRef.innerHTML = newLabelHtml;\n }\n // Change label position.\n if (!prevProps || prevProps.labelPosition !== this.props.labelPosition) {\n this.changeLabelPosition(this.props.labelPosition);\n }\n //Change z-index class is-on-top\n if (!prevProps || prevProps.isOnTop !== this.props.isOnTop) {\n if (this.props.isOnTop) {\n this.elementRef.classList.add(\"is-on-top\");\n } else {\n this.elementRef.classList.remove(\"is-on-top\");\n }\n }\n // Change link.\n if (prevProps && prevProps.isLinkEnabled !== this.props.isLinkEnabled) {\n const container = this.createContainerDomElement();\n // Add the children of the old element.\n container.innerHTML = this.elementRef.innerHTML;\n // Copy the attributes.\n const attrs = this.elementRef.attributes;\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].nodeName !== \"id\") {\n let cloneIsNeeded = this.elementRef.getAttributeNode(\n attrs[i].nodeName\n );\n if (cloneIsNeeded !== null) {\n container.setAttributeNode(cloneIsNeeded.cloneNode());\n }\n }\n }\n // Replace the reference.\n if (this.elementRef.parentNode !== null) {\n this.elementRef.parentNode.replaceChild(container, this.elementRef);\n }\n\n // Changed the reference to the main element. It's ugly, but needed.\n this.elementRef = container;\n }\n\n if (\n prevProps &&\n this.props.isLinkEnabled &&\n prevProps.link !== this.props.link\n ) {\n if (this.props.link !== null) {\n this.elementRef.setAttribute(\"href\", this.props.link);\n }\n }\n\n // Change metadata related things.\n if (\n !prevMeta ||\n prevMeta.editMode !== this.meta.editMode ||\n prevMeta.maintenanceMode !== this.meta.maintenanceMode\n ) {\n if (this.meta.editMode && this.meta.maintenanceMode === false) {\n this.elementRef.classList.add(\"is-editing\");\n this.elementRef.classList.remove(\"is-alert-triggered\");\n } else {\n this.elementRef.classList.remove(\"is-editing\");\n\n if (this.props.alertOutline) {\n this.elementRef.classList.add(\"is-alert-triggered\");\n }\n }\n }\n\n if (!prevMeta || prevMeta.isFetching !== this.meta.isFetching) {\n if (this.meta.isFetching) {\n this.elementRef.classList.add(\"is-fetching\");\n } else {\n this.elementRef.classList.remove(\"is-fetching\");\n }\n }\n\n if (!prevMeta || prevMeta.isUpdating !== this.meta.isUpdating) {\n if (this.meta.isUpdating) {\n this.elementRef.classList.add(\"is-updating\");\n\n const divParent = document.createElement(\"div\");\n divParent.className = \"div-visual-console-spinner\";\n const divSpinner = document.createElement(\"div\");\n divSpinner.className = \"visual-console-spinner\";\n divParent.appendChild(divSpinner);\n this.elementRef.appendChild(divParent);\n } else {\n this.elementRef.classList.remove(\"is-updating\");\n\n const div = this.elementRef.querySelector(\n \".div-visual-console-spinner\"\n );\n if (div !== null) {\n const parent = div.parentElement;\n if (parent !== null) {\n parent.removeChild(div);\n }\n }\n }\n\n this.updateDomElement(this.childElementRef);\n }\n if (!prevMeta || prevMeta.isSelected !== this.meta.isSelected) {\n if (this.meta.isSelected) {\n this.elementRef.classList.add(\"is-selected\");\n this.elementRef.setAttribute(\"id\", \"item-selected-move\");\n } else {\n this.elementRef.classList.remove(\"is-selected\");\n this.elementRef.removeAttribute(\"id\");\n }\n }\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n // Call the remove event.\n this.removeEventManager.emit({ item: this });\n // Event listeners.\n this.disposables.forEach(disposable => {\n try {\n disposable.dispose();\n } catch (ignored) {} // eslint-disable-line no-empty\n });\n // VisualConsoleItem DOM element.\n this.elementRef.remove();\n }\n\n /**\n * Compare the previous and the new position and return\n * a boolean value in case the position changed.\n * @param prevPosition\n * @param newPosition\n * @return Whether the position changed or not.\n */\n protected positionChanged(\n prevPosition: Position,\n newPosition: Position\n ): boolean {\n return prevPosition.x !== newPosition.x || prevPosition.y !== newPosition.y;\n }\n\n /**\n * Move the label around the item content.\n * @param position Label position.\n */\n protected changeLabelPosition(position: Props[\"labelPosition\"]): void {\n switch (position) {\n case \"up\":\n this.elementRef.style.flexDirection = \"column-reverse\";\n break;\n case \"left\":\n this.elementRef.style.flexDirection = \"row-reverse\";\n break;\n case \"right\":\n this.elementRef.style.flexDirection = \"row\";\n break;\n case \"down\":\n default:\n this.elementRef.style.flexDirection = \"column\";\n break;\n }\n\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n // Change the table size depending on its position.\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n if (this.props.width > 0) {\n table.style.width = `${this.props.width}px`;\n table.style.height = \"\";\n }\n break;\n case \"left\":\n case \"right\":\n if (this.props.height > 0) {\n table.style.width = \"\";\n table.style.height = `${this.props.height}px`;\n }\n break;\n }\n }\n }\n\n /**\n * Move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n protected moveElement(x: number, y: number): void {\n this.elementRef.style.left = `${x}px`;\n this.elementRef.style.top = `${y}px`;\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n */\n public move(x: number, y: number): void {\n this.moveElement(x, y);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n x,\n y\n };\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n protected sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // The most valuable size is the content size.\n if (\n this.props.type != ItemType.LINE_ITEM &&\n this.props.type != ItemType.NETWORK_LINK\n ) {\n this.childElementRef.style.width = width > 0 ? `${width}px` : \"\";\n this.childElementRef.style.height = height > 0 ? `${height}px` : \"\";\n }\n\n if (this.props.label && this.props.label.length > 0) {\n // Ugly table to show the label as its legacy counterpart.\n const tables = this.labelElementRef.getElementsByTagName(\"table\");\n const table = tables.length > 0 ? tables.item(0) : null;\n\n if (table) {\n switch (this.props.labelPosition) {\n case \"up\":\n case \"down\":\n table.style.width = width > 0 ? `${width}px` : \"\";\n break;\n case \"left\":\n case \"right\":\n table.style.height = height > 0 ? `${height}px` : \"\";\n break;\n }\n }\n }\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.resizeElement(width, height);\n this.itemProps = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the movement stopped of visual console elements.\n * @param listener Function which is going to be executed when a linked console's movement is finished.\n */\n public onMovementFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movementFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the resizement finish of visual console elements.\n * @param listener Function which is going to be executed when a linked console is finished resizing.\n */\n public onResizeFinished(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizeFinishedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to the removal of the item.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onRemove(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.removeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * To add an event handler to item selection.\n * @param listener Function which is going to be executed when a item is removed.\n */\n public onSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: true\n };\n\n this.initMovementListener(this.elementRef);\n if (\n this.props.type !== ItemType.LINE_ITEM &&\n this.props.type !== ItemType.NETWORK_LINK\n ) {\n this.initResizementListener(this.elementRef);\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(): void {\n this.meta = {\n ...this.meta,\n isSelected: false\n };\n\n this.stopMovementListener();\n if (this.props.type !== ItemType.LINE_ITEM) {\n this.stopResizementListener();\n }\n }\n\n // TODO: Document\n public getFormContainer(): FormContainer {\n return VisualConsoleItem.getFormContainer(this.props);\n }\n\n // TODO: Document\n public static getFormContainer(props: Partial): FormContainer {\n const title: string = props.type ? titleItem(props.type) : t(\"Item\");\n return new FormContainer(title, [], []);\n }\n}\n\nexport default VisualConsoleItem;\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport { modulePropsDecoder, decodeBase64, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BarsGraphProps = {\n type: ItemType.BARS_GRAPH;\n html: string;\n backgroundColor: \"white\" | \"black\" | \"transparent\";\n typeGraph: \"horizontal\" | \"vertical\";\n gridColor: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param BarsGraphProps Raw value.\n */\nconst parseBarsGraphProps = (\n backgroundColor: unknown\n): BarsGraphProps[\"backgroundColor\"] => {\n switch (backgroundColor) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundColor;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param typeGraph Raw value.\n */\nconst parseTypeGraph = (typeGraph: unknown): BarsGraphProps[\"typeGraph\"] => {\n switch (typeGraph) {\n case \"horizontal\":\n case \"vertical\":\n return typeGraph;\n default:\n return \"vertical\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the bars graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function barsGraphPropsDecoder(data: AnyObject): BarsGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BARS_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundColor: parseBarsGraphProps(data.backgroundColor),\n typeGraph: parseTypeGraph(data.typeGraph),\n gridColor: stringIsEmpty(data.gridColor) ? \"#000000\" : data.gridColor,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BarsGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.innerHTML = this.props.html;\n element.className = \"bars-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type BasicChartProps = {\n type: ItemType.BASIC_CHART;\n html: string;\n period: number | null;\n value: number | null;\n status: string;\n moduleNameColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the basic chart props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function basicChartPropsDecoder(\n data: AnyObject\n): BasicChartProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BASIC_CHART,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n period: parseIntOr(data.period, null),\n value: parseFloat(data.value),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n moduleNameColor: stringIsEmpty(data.moduleNameColor)\n ? \"#3f3f3f\"\n : data.moduleNameColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class BasicChart extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.className = \"basic-chart\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n const header = document.createElement(\"div\");\n header.className = \"basic-chart-header\";\n\n const moduleName = document.createElement(\"h2\");\n moduleName.className = \"basic-chart-header-name\";\n moduleName.textContent = this.props.moduleName;\n moduleName.style.color = `${this.props.moduleNameColor}`;\n header.appendChild(moduleName);\n\n let value = \"\";\n if (this.props.value !== null) {\n value = this.number_format(this.props.value, false, \"\", 2, 1000);\n }\n\n const moduleValue = document.createElement(\"h2\");\n moduleValue.className = \"basic-chart-header-value\";\n moduleValue.textContent = `${value}`;\n moduleValue.style.color = this.props.status;\n header.appendChild(moduleValue);\n\n element.innerHTML = this.props.html;\n element.insertBefore(header, element.firstChild);\n\n // Remove the overview graph.\n const legendP = element.getElementsByTagName(\"p\");\n for (let i = 0; i < legendP.length; i++) {\n legendP[i].style.margin = \"0px\";\n }\n\n // Remove the overview graph.\n const overviewGraphs = element.getElementsByClassName(\"overview_graph\");\n for (let i = 0; i < overviewGraphs.length; i++) {\n overviewGraphs[i].remove();\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n\n protected number_format(\n number: number,\n force_integer: boolean,\n unit: string,\n short_data: number,\n divisor: number\n ) {\n divisor = typeof divisor !== \"undefined\" ? divisor : 1000;\n var decimals = 2;\n\n // Set maximum decimal precision to 99 in case short_data is not set.\n if (!short_data) {\n short_data = 99;\n }\n\n if (force_integer) {\n if (Math.round(number) != number) {\n return \"\";\n }\n } else {\n short_data++;\n const aux_decimals = this.pad(\"1\", short_data, 0);\n number =\n Math.round(number * Number.parseInt(aux_decimals)) /\n Number.parseInt(aux_decimals);\n }\n\n var shorts = [\"\", \"K\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n var pos = 0;\n\n while (Math.abs(number) >= divisor) {\n // As long as the number can be divided by 1000 or 1024.\n pos++;\n number = number / divisor;\n }\n\n if (divisor) {\n number = Math.round(number * decimals) / decimals;\n } else {\n number = Math.round(number * decimals);\n }\n\n if (isNaN(number)) {\n number = 0;\n }\n\n return number + \" \" + shorts[pos] + unit;\n }\n\n protected pad(input: string, length: number, padding: number): string {\n var str = input + \"\";\n return length <= str.length\n ? str\n : this.pad(str + padding, length, padding);\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type DonutGraphProps = {\n type: ItemType.DONUT_GRAPH;\n html: string;\n legendBackgroundColor: string;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the donut graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function donutGraphPropsDecoder(\n data: AnyObject\n): DonutGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.DONUT_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n legendBackgroundColor: stringIsEmpty(data.legendBackgroundColor)\n ? \"#ffffff\"\n : data.legendBackgroundColor,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class DonutGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"donut-graph\";\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n element.style.backgroundColor = this.props.legendBackgroundColor;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\nimport {\n modulePropsDecoder,\n parseIntOr,\n decodeBase64,\n stringIsEmpty,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type EventsHistoryProps = {\n type: ItemType.AUTO_SLA_GRAPH;\n maxTime: number | null;\n legendColor: string;\n html: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function eventsHistoryPropsDecoder(\n data: AnyObject\n): EventsHistoryProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.AUTO_SLA_GRAPH,\n maxTime: parseIntOr(data.maxTime, null),\n legendColor: data.legendColor,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class EventsHistory extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"events-history\";\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const aux = document.createElement(\"div\");\n aux.innerHTML = this.props.html;\n const scripts = aux.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n\n var flotText = element.getElementsByClassName(\n \"noresizevc\"\n ) as HTMLCollectionOf;\n flotText[0].style.color = this.props.legendColor;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n decodeBase64,\n stringIsEmpty,\n parseIntOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type ModuleGraphProps = {\n type: ItemType.MODULE_GRAPH;\n html: string;\n backgroundType: \"white\" | \"black\" | \"transparent\";\n graphType: \"line\" | \"area\";\n period: number | null;\n customGraphId: number | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param backgroundType Raw value.\n */\nconst parseBackgroundType = (\n backgroundType: unknown\n): ModuleGraphProps[\"backgroundType\"] => {\n switch (backgroundType) {\n case \"white\":\n case \"black\":\n case \"transparent\":\n return backgroundType;\n default:\n return \"transparent\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param graphType Raw value.\n */\nconst parseGraphType = (graphType: unknown): ModuleGraphProps[\"graphType\"] => {\n switch (graphType) {\n case \"line\":\n case \"area\":\n return graphType;\n default:\n return \"line\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the module graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function moduleGraphPropsDecoder(\n data: AnyObject\n): ModuleGraphProps | never {\n if (stringIsEmpty(data.html) && stringIsEmpty(data.encodedHtml)) {\n throw new TypeError(\"missing html content.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.MODULE_GRAPH,\n html: !stringIsEmpty(data.html)\n ? data.html\n : decodeBase64(data.encodedHtml),\n backgroundType: parseBackgroundType(data.backgroundType),\n period: parseIntOr(data.period, null),\n graphType: parseGraphType(data.graphType),\n customGraphId: parseIntOr(data.customGraphId, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class ModuleGraph extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n\n element.innerHTML = this.props.html;\n element.className = \"module-graph\";\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n setTimeout(() => {\n try {\n eval(scripts[i].innerHTML.trim());\n } catch (ignored) {} // eslint-disable-line no-empty\n }, 0);\n }\n }\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.props.html;\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Hack to execute the JS after the HTML is added to the DOM.\n const scripts = element.getElementsByTagName(\"script\");\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i].src.length === 0) {\n eval(scripts[i].innerHTML.trim());\n }\n }\n }\n}\n","import { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./FontAwesomeIcon.styles.css\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\ninterface ExtraProps {\n size?: \"small\" | \"medium\" | \"large\";\n color?: string;\n spin?: boolean;\n pulse?: boolean;\n}\n\nconst fontAwesomeIcon = (\n iconDefinition: IconDefinition,\n title: string,\n { size, color, spin, pulse }: ExtraProps = {}\n): HTMLElement => {\n const container = document.createElement(\"figure\");\n container.title = title;\n container.className = `fa fa-${iconDefinition.iconName}`;\n\n if (size) container.classList.add(`fa-${size}`);\n\n if (spin) container.classList.add(\"fa-spin\");\n else if (pulse) container.classList.add(\"fa-pulse\");\n\n const icon = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n icon.setAttribute(\n \"viewBox\",\n `0 0 ${iconDefinition.icon[0]} ${iconDefinition.icon[1]}`\n );\n if (color) icon.setAttribute(\"fill\", color);\n\n // Path\n const path = document.createElementNS(svgNS, \"path\");\n const pathData =\n typeof iconDefinition.icon[4] === \"string\"\n ? iconDefinition.icon[4]\n : iconDefinition.icon[4][0];\n path.setAttribute(\"d\", pathData);\n\n icon.appendChild(path);\n container.appendChild(icon);\n\n return container;\n};\n\nexport default fontAwesomeIcon;\n","export interface Listener {\n (event: T): void;\n}\n\nexport interface Disposable {\n dispose: () => void;\n}\n\n/** passes through events as they happen. You will not get events from before you start listening */\nexport default class TypedEvent {\n private listeners: Listener[] = [];\n private listenersOncer: Listener[] = [];\n\n public on = (listener: Listener): Disposable => {\n this.listeners.push(listener);\n return {\n dispose: () => this.off(listener)\n };\n };\n\n public once = (listener: Listener): void => {\n this.listenersOncer.push(listener);\n };\n\n public off = (listener: Listener): void => {\n const callbackIndex = this.listeners.indexOf(listener);\n if (callbackIndex > -1) this.listeners.splice(callbackIndex, 1);\n };\n\n public emit = (event: T): void => {\n /** Update any general listeners */\n this.listeners.forEach(listener => listener(event));\n\n /** Clear the `once` queue */\n this.listenersOncer.forEach(listener => listener(event));\n this.listenersOncer = [];\n };\n\n public pipe = (te: TypedEvent): Disposable => this.on(e => te.emit(e));\n}\n","import {\n AnyObject,\n Position,\n Size,\n WithAgentProps,\n WithModuleProps,\n LinkedVisualConsoleProps,\n LinkedVisualConsolePropsStatus,\n UnknownObject,\n ItemMeta\n} from \"./types\";\n\nimport helpTipIcon from \"./help-tip.png\";\nimport fontAwesomeIcon from \"./FontAwesomeIcon\";\nimport { faPencilAlt, faListAlt } from \"@fortawesome/free-solid-svg-icons\";\nimport \"./autocomplete.css\";\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseIntOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\" && value.length > 0 && !isNaN(parseInt(value)))\n return parseInt(value);\n else return defaultValue;\n}\n\n/**\n * Return a number or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid number.\n * @param defaultValue Default value to use if we cannot extract a valid number.\n * @return A valid number or the default value.\n */\nexport function parseFloatOr(value: unknown, defaultValue: T): number | T {\n if (typeof value === \"number\") return value;\n if (\n typeof value === \"string\" &&\n value.length > 0 &&\n !isNaN(parseFloat(value))\n )\n return parseFloat(value);\n else return defaultValue;\n}\n\n/**\n * Check if a string exists and it's not empty.\n * @param value Value to check.\n * @return The check result.\n */\nexport function stringIsEmpty(value?: string | null): boolean {\n return value == null || value.length === 0;\n}\n\n/**\n * Return a not empty string or a default value from a raw value.\n * @param value Raw value from which we will try to extract a non empty string.\n * @param defaultValue Default value to use if we cannot extract a non empty string.\n * @return A non empty string or the default value.\n */\nexport function notEmptyStringOr(\n value: unknown,\n defaultValue: T\n): string | T {\n return typeof value === \"string\" && value.length > 0 ? value : defaultValue;\n}\n\n/**\n * Return a boolean from a raw value.\n * @param value Raw value from which we will try to extract the boolean.\n * @return A valid boolean value. false by default.\n */\nexport function parseBoolean(value: unknown): boolean {\n if (typeof value === \"boolean\") return value;\n else if (typeof value === \"number\") return value > 0;\n else if (typeof value === \"string\") return value === \"1\" || value === \"true\";\n else return false;\n}\n\n/**\n * Return a valid date or a default value from a raw value.\n * @param value Raw value from which we will try to extract a valid date.\n * @param defaultValue Default value to use if we cannot extract a valid date.\n * @return A valid date or the default value.\n */\nexport function parseDateOr(value: unknown, defaultValue: T): Date | T {\n if (value instanceof Date) return value;\n else if (typeof value === \"number\") return new Date(value * 1000);\n else if (\n typeof value === \"string\" &&\n !Number.isNaN(new Date(value).getTime())\n )\n return new Date(value);\n else return defaultValue;\n}\n\n/**\n * Pad the current string with another string (multiple times, if needed)\n * until the resulting string reaches the given length.\n * The padding is applied from the start (left) of the current string.\n * @param value Text that needs to be padded.\n * @param length Length of the returned text.\n * @param pad Text to add.\n * @return Padded text.\n */\nexport function leftPad(\n value: string | number,\n length: number,\n pad: string | number = \" \"\n): string {\n if (typeof value === \"number\") value = `${value}`;\n if (typeof pad === \"number\") pad = `${pad}`;\n\n const diffLength = length - value.length;\n if (diffLength === 0) return value;\n if (diffLength < 0) return value.substr(Math.abs(diffLength));\n\n if (diffLength === pad.length) return `${pad}${value}`;\n if (diffLength < pad.length) return `${pad.substring(0, diffLength)}${value}`;\n\n const repeatTimes = Math.floor(diffLength / pad.length);\n const restLength = diffLength - pad.length * repeatTimes;\n\n let newPad = \"\";\n for (let i = 0; i < repeatTimes; i++) newPad += pad;\n\n if (restLength === 0) return `${newPad}${value}`;\n return `${newPad}${pad.substring(0, restLength)}${value}`;\n}\n\n/* Decoders */\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the position.\n */\nexport function positionPropsDecoder(data: AnyObject): Position {\n return {\n x: parseIntOr(data.x, 0),\n y: parseIntOr(data.y, 0)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the size.\n * @throws Will throw a TypeError if the width and height are not valid numbers.\n */\nexport function sizePropsDecoder(data: AnyObject): Size | never {\n if (\n data.width == null ||\n isNaN(parseInt(data.width)) ||\n data.height == null ||\n isNaN(parseInt(data.height))\n ) {\n throw new TypeError(\"invalid size.\");\n }\n\n return {\n width: parseInt(data.width),\n height: parseInt(data.height)\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the agent properties.\n */\nexport function agentPropsDecoder(data: AnyObject): WithAgentProps {\n const agentProps: WithAgentProps = {\n agentId: parseIntOr(data.agentId, null),\n agentName: notEmptyStringOr(data.agentName, null),\n agentAlias: notEmptyStringOr(data.agentAlias, null),\n agentDescription: notEmptyStringOr(data.agentDescription, null),\n agentAddress: notEmptyStringOr(data.agentAddress, null),\n agentDisabled: parseBoolean(data.agentDisabled)\n };\n\n return data.metaconsoleId != null\n ? {\n metaconsoleId: data.metaconsoleId,\n ...agentProps // Object spread: http://es6-features.org/#SpreadOperator\n }\n : agentProps;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the module and agent properties.\n */\nexport function modulePropsDecoder(data: AnyObject): WithModuleProps {\n return {\n moduleId: parseIntOr(data.moduleId, null),\n moduleName: notEmptyStringOr(data.moduleName, null),\n moduleDescription: notEmptyStringOr(data.moduleDescription, null),\n moduleDisabled: parseBoolean(data.moduleDisabled),\n ...agentPropsDecoder(data) // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the linked visual console properties.\n * @throws Will throw a TypeError if the status calculation properties are invalid.\n */\nexport function linkedVCPropsDecoder(\n data: AnyObject\n): LinkedVisualConsoleProps | never {\n let linkedLayoutStatusProps: LinkedVisualConsolePropsStatus = {\n linkedLayoutStatusType: \"default\"\n };\n switch (data.linkedLayoutStatusType) {\n case \"weight\": {\n const weight = parseIntOr(data.linkedLayoutStatusTypeWeight, null);\n if (weight == null)\n throw new TypeError(\"invalid status calculation properties.\");\n\n if (data.linkedLayoutStatusTypeWeight)\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"weight\",\n linkedLayoutStatusTypeWeight: weight\n };\n break;\n }\n case \"service\": {\n const warningThreshold = parseIntOr(\n data.linkedLayoutStatusTypeWarningThreshold,\n null\n );\n const criticalThreshold = parseIntOr(\n data.linkedLayoutStatusTypeCriticalThreshold,\n null\n );\n if (warningThreshold == null || criticalThreshold == null) {\n throw new TypeError(\"invalid status calculation properties.\");\n }\n\n linkedLayoutStatusProps = {\n linkedLayoutStatusType: \"service\",\n linkedLayoutStatusTypeWarningThreshold: warningThreshold,\n linkedLayoutStatusTypeCriticalThreshold: criticalThreshold\n };\n break;\n }\n }\n\n return {\n linkedLayoutId: parseIntOr(data.linkedLayoutId, null),\n linkedLayoutNodeId: parseIntOr(data.linkedLayoutNodeId, null),\n ...linkedLayoutStatusProps // Object spread: http://es6-features.org/#SpreadOperator\n };\n}\n\n/**\n * Build a valid typed object from a raw object.\n * @param data Raw object.\n * @return An object representing the item's meta properties.\n */\nexport function itemMetaDecoder(data: UnknownObject): ItemMeta | never {\n const receivedAt = parseDateOr(data.receivedAt, null);\n if (receivedAt === null) throw new TypeError(\"invalid meta structure\");\n\n let error = null;\n if (data.error instanceof Error) error = data.error;\n else if (typeof data.error === \"string\") error = new Error(data.error);\n\n return {\n receivedAt,\n error,\n editMode: parseBoolean(data.editMode),\n maintenanceMode: parseBoolean(data.maintenanceMode),\n isFromCache: parseBoolean(data.isFromCache),\n isFetching: false,\n isUpdating: false,\n isBeingMoved: false,\n isBeingResized: false,\n isSelected: false,\n lineMode: false\n };\n}\n\n/**\n * To get a CSS rule with the most used prefixes.\n * @param ruleName Name of the CSS rule.\n * @param ruleValue Value of the CSS rule.\n * @return An array of rules with the prefixes applied.\n */\nexport function prefixedCssRules(\n ruleName: string,\n ruleValue: string\n): string[] {\n const rule = `${ruleName}: ${ruleValue};`;\n return [\n `-webkit-${rule}`,\n `-moz-${rule}`,\n `-ms-${rule}`,\n `-o-${rule}`,\n `${rule}`\n ];\n}\n\n/**\n * Decode a base64 string.\n * @param input Data encoded using base64.\n * @return Decoded data.\n */\nexport function decodeBase64(input: string): string {\n return decodeURIComponent(escape(window.atob(input)));\n}\n\n/**\n * Generate a date representation with the format 'd/m/Y'.\n * @param initialDate Date to be used instead of a generated one.\n * @param locale Locale to use if localization is required and available.\n * @example 24/02/2020.\n * @return Date representation.\n */\nexport function humanDate(date: Date, locale: string | null = null): string {\n if (locale && Intl && Intl.DateTimeFormat) {\n // Format using the user locale.\n const options: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\"\n };\n return Intl.DateTimeFormat(locale, options).format(date);\n } else {\n // Use getDate, getDay returns the week day.\n const day = leftPad(date.getDate(), 2, 0);\n // The getMonth function returns the month starting by 0.\n const month = leftPad(date.getMonth() + 1, 2, 0);\n const year = leftPad(date.getFullYear(), 4, 0);\n\n // Format: 'd/m/Y'.\n return `${day}/${month}/${year}`;\n }\n}\n\n/**\n * Generate a time representation with the format 'hh:mm:ss'.\n * @param initialDate Date to be used instead of a generated one.\n * @example 01:34:09.\n * @return Time representation.\n */\nexport function humanTime(date: Date): string {\n const hours = leftPad(date.getHours(), 2, 0);\n const minutes = leftPad(date.getMinutes(), 2, 0);\n const seconds = leftPad(date.getSeconds(), 2, 0);\n\n return `${hours}:${minutes}:${seconds}`;\n}\n\ninterface Macro {\n macro: string | RegExp;\n value: string;\n}\n/**\n * Replace the macros of a text.\n * @param macros List of macros and their replacements.\n * @param text Text in which we need to replace the macros.\n */\nexport function replaceMacros(macros: Macro[], text: string): string {\n return macros.reduce(\n (acc, { macro, value }) => acc.replace(macro, value),\n text\n );\n}\n\n/**\n * Create a function which will limit the rate of execution of\n * the selected function to one time for the selected interval.\n * @param delay Interval.\n * @param fn Function to be executed at a limited rate.\n */\nexport function throttle(delay: number, fn: (...args: T[]) => R) {\n let last = 0;\n return (...args: T[]) => {\n const now = Date.now();\n if (now - last < delay) return;\n last = now;\n return fn(...args);\n };\n}\n\n/**\n * Create a function which will call the selected function only\n * after the interval time has passed after its last execution.\n * @param delay Interval.\n * @param fn Function to be executed after the last call.\n */\nexport function debounce(delay: number, fn: (...args: T[]) => void) {\n let timerRef: number | null = null;\n return (...args: T[]) => {\n if (timerRef !== null) window.clearTimeout(timerRef);\n timerRef = window.setTimeout(() => {\n fn(...args);\n timerRef = null;\n }, delay);\n };\n}\n\n/**\n * Retrieve the offset of an element relative to the page.\n * @param el Node used to calculate the offset.\n */\nfunction getOffset(el: HTMLElement | null, parent?: HTMLElement) {\n let x = 0;\n let y = 0;\n while (\n el &&\n !Number.isNaN(el.offsetLeft) &&\n !Number.isNaN(el.offsetTop) &&\n el !== parent\n ) {\n x += el.offsetLeft - el.scrollLeft;\n y += el.offsetTop - el.scrollTop;\n el = el.offsetParent as HTMLElement | null;\n }\n return { top: y, left: x };\n}\n\n/**\n * Add the grab & move functionality to a certain element inside it's container.\n *\n * @param element Element to move.\n * @param onMoved Function to execute when the element moves.\n * @param altContainer Alternative element to contain the moved element.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addMovementListener(\n element: HTMLElement,\n onMoved: (x: Position[\"x\"], y: Position[\"y\"]) => void,\n altContainer?: HTMLElement\n): Function {\n const container = altContainer || (element.parentElement as HTMLElement);\n\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastX: Position[\"x\"] = 0;\n let lastY: Position[\"y\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementBounds = element.getBoundingClientRect();\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth) * 2;\n\n // Will run onMoved 32ms after its last execution.\n const debouncedMovement = debounce(32, onMoved);\n // Will run onMoved one time max every 16ms.\n const throttledMovement = throttle(16, onMoved);\n\n const handleMove = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let x = 0;\n let y = 0;\n\n const mouseX = e.pageX;\n const mouseY = e.pageY;\n const mouseDeltaX = mouseX - lastMouseX;\n const mouseDeltaY = mouseY - lastMouseY;\n\n const minX = 0;\n const maxX = containerBounds.width - elementBounds.width + borderFix;\n const minY = 0;\n const maxY = containerBounds.height - elementBounds.height + borderFix;\n\n const outOfBoundsLeft =\n mouseX < containerLeft ||\n (lastX === 0 &&\n mouseDeltaX > 0 &&\n mouseX < containerLeft + mouseElementOffsetX);\n const outOfBoundsRight =\n mouseX > containerRight ||\n mouseDeltaX + lastX + elementBounds.width - borderFix >\n containerBounds.width ||\n (lastX === maxX &&\n mouseDeltaX < 0 &&\n mouseX > containerLeft + maxX + mouseElementOffsetX);\n const outOfBoundsTop =\n mouseY < containerTop ||\n (lastY === 0 &&\n mouseDeltaY > 0 &&\n mouseY < containerTop + mouseElementOffsetY);\n const outOfBoundsBottom =\n mouseY > containerBottom ||\n mouseDeltaY + lastY + elementBounds.height - borderFix >\n containerBounds.height ||\n (lastY === maxY &&\n mouseDeltaY < 0 &&\n mouseY > containerTop + maxY + mouseElementOffsetY);\n\n if (outOfBoundsLeft) x = minX;\n else if (outOfBoundsRight) x = maxX;\n else x = mouseDeltaX + lastX;\n\n if (outOfBoundsTop) y = minY;\n else if (outOfBoundsBottom) y = maxY;\n else y = mouseDeltaY + lastY;\n\n if (x < 0) x = minX;\n if (y < 0) y = minY;\n\n // Store the last mouse coordinates.\n lastMouseX = mouseX;\n lastMouseY = mouseY;\n\n if (x === lastX && y === lastY) return;\n\n // Run the movement events.\n throttledMovement(x, y);\n debouncedMovement(x, y);\n\n // Store the coordinates of the element.\n lastX = x;\n lastY = y;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastX = 0;\n lastY = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleMove);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n // Avoid starting the movement on right click.\n if (e.button === 2) return;\n\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Fix for Firefox browser.\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const elementOffset = getOffset(element, container);\n lastX = elementOffset.left;\n lastY = elementOffset.top;\n\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementBounds = element.getBoundingClientRect();\n borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n borderFix = Number.parseInt(borderWidth) * 2;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleMove);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n element.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n element.removeEventListener(\"mousedown\", handleStart);\n handleEnd();\n };\n}\n\n/**\n * Add the grab & resize functionality to a certain element.\n *\n * @param element Element to move.\n * @param onResized Function to execute when the element is resized.\n *\n * @return A function which will clean the event handlers when executed.\n */\nexport function addResizementListener(\n element: HTMLElement,\n onResized: (x: Position[\"x\"], y: Position[\"y\"]) => void\n): Function {\n const minWidth = 15;\n const minHeight = 15;\n\n const resizeDraggable = document.createElement(\"div\");\n resizeDraggable.className = \"resize-draggable\";\n element.appendChild(resizeDraggable);\n\n // Container of the resizable element.\n const container = element.parentElement as HTMLElement;\n // Store the initial draggable state.\n const isDraggable = element.draggable;\n // Init the coordinates.\n let lastWidth: Size[\"width\"] = 0;\n let lastHeight: Size[\"height\"] = 0;\n let lastMouseX: Position[\"x\"] = 0;\n let lastMouseY: Position[\"y\"] = 0;\n let mouseElementOffsetX: Position[\"x\"] = 0;\n let mouseElementOffsetY: Position[\"y\"] = 0;\n // Init the bounds.\n let containerBounds = container.getBoundingClientRect();\n let containerOffset = getOffset(container);\n let containerTop = containerOffset.top;\n let containerBottom = containerTop + containerBounds.height;\n let containerLeft = containerOffset.left;\n let containerRight = containerLeft + containerBounds.width;\n let elementOffset = getOffset(element);\n let elementTop = elementOffset.top;\n let elementLeft = elementOffset.left;\n let borderWidth = window.getComputedStyle(element).borderWidth || \"0\";\n let borderFix = Number.parseInt(borderWidth);\n\n // Will run onResized 32ms after its last execution.\n const debouncedResizement = debounce(32, onResized);\n // Will run onResized one time max every 16ms.\n const throttledResizement = throttle(16, onResized);\n\n const handleResize = (e: MouseEvent) => {\n // Calculate the new element coordinates.\n let width = lastWidth + (e.pageX - lastMouseX);\n let height = lastHeight + (e.pageY - lastMouseY);\n\n if (width === lastWidth && height === lastHeight) return;\n\n if (\n width < lastWidth &&\n e.pageX > elementLeft + (lastWidth - mouseElementOffsetX)\n )\n return;\n\n if (width < minWidth) {\n // Minimum value.\n width = minWidth;\n } else if (width + elementLeft - borderFix / 2 >= containerRight) {\n // Limit the size to the container.\n width = containerRight - elementLeft;\n }\n if (height < minHeight) {\n // Minimum value.\n height = minHeight;\n } else if (height + elementTop - borderFix / 2 >= containerBottom) {\n // Limit the size to the container.\n height = containerBottom - elementTop;\n }\n\n // Run the movement events.\n throttledResizement(width, height);\n debouncedResizement(width, height);\n\n // Store the coordinates of the element.\n lastWidth = width;\n lastHeight = height;\n // Store the last mouse coordinates.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n };\n const handleEnd = () => {\n // Reset the positions.\n lastWidth = 0;\n lastHeight = 0;\n lastMouseX = 0;\n lastMouseY = 0;\n mouseElementOffsetX = 0;\n mouseElementOffsetY = 0;\n // Remove the move event.\n document.removeEventListener(\"mousemove\", handleResize);\n // Clean itself.\n document.removeEventListener(\"mouseup\", handleEnd);\n // Reset the draggable property to its initial state.\n element.draggable = isDraggable;\n // Reset the body selection property to a default state.\n document.body.style.userSelect = \"auto\";\n };\n const handleStart = (e: MouseEvent) => {\n e.stopPropagation();\n\n // Disable the drag temporarily.\n element.draggable = false;\n\n // Store the difference between the cursor and\n // the initial coordinates of the element.\n const { width, height } = element.getBoundingClientRect();\n lastWidth = width;\n lastHeight = height;\n // Store the mouse position.\n lastMouseX = e.pageX;\n lastMouseY = e.pageY;\n // Store the relative position between the mouse and the element.\n mouseElementOffsetX = e.offsetX;\n mouseElementOffsetY = e.offsetY;\n\n // Initialize the bounds.\n containerBounds = container.getBoundingClientRect();\n containerOffset = getOffset(container);\n containerTop = containerOffset.top;\n containerBottom = containerTop + containerBounds.height;\n containerLeft = containerOffset.left;\n containerRight = containerLeft + containerBounds.width;\n elementOffset = getOffset(element);\n elementTop = elementOffset.top;\n elementLeft = elementOffset.left;\n\n // Listen to the mouse movement.\n document.addEventListener(\"mousemove\", handleResize);\n // Listen to the moment when the mouse click is not pressed anymore.\n document.addEventListener(\"mouseup\", handleEnd);\n // Limit the mouse selection of the body.\n document.body.style.userSelect = \"none\";\n };\n\n // Event to listen the init of the movement.\n resizeDraggable.addEventListener(\"mousedown\", handleStart);\n\n // Returns a function to clean the event listeners.\n return () => {\n resizeDraggable.remove();\n handleEnd();\n };\n}\n\n// TODO: Document and code\nexport function t(text: string): string {\n return text;\n}\n\nexport function helpTip(text: string): HTMLElement {\n const container = document.createElement(\"a\");\n container.className = \"tip\";\n const icon = document.createElement(\"img\");\n icon.src = helpTipIcon;\n icon.className = \"forced_title\";\n icon.setAttribute(\"alt\", text);\n icon.setAttribute(\"data-title\", text);\n icon.setAttribute(\"data-use_title_for_force_title\", \"1\");\n\n container.appendChild(icon);\n\n return container;\n}\n\ninterface PeriodSelectorOption {\n value: number;\n text: string;\n}\nexport function periodSelector(\n selectedValue: PeriodSelectorOption[\"value\"] | null,\n emptyOption: PeriodSelectorOption | null,\n options: PeriodSelectorOption[],\n onChange: (value: PeriodSelectorOption[\"value\"]) => void\n): HTMLElement {\n if (selectedValue === null) selectedValue = 0;\n const initialValue = emptyOption ? emptyOption.value : 0;\n let currentValue: number =\n selectedValue != null ? selectedValue : initialValue;\n // Main container.\n const container = document.createElement(\"div\");\n // Container for the period selector.\n const periodsContainer = document.createElement(\"div\");\n const selectPeriods = document.createElement(\"select\");\n const useManualPeriodsBtn = document.createElement(\"a\");\n // Container for the custom period input.\n const manualPeriodsContainer = document.createElement(\"div\");\n const inputTimeValue = document.createElement(\"input\");\n const unitsSelect = document.createElement(\"select\");\n const usePeriodsBtn = document.createElement(\"a\");\n // Units to multiply the custom period input.\n const unitOptions: { value: string; text: string }[] = [\n { value: \"1\", text: t(\"Seconds\").toLowerCase() },\n { value: \"60\", text: t(\"Minutes\").toLowerCase() },\n { value: \"3600\", text: t(\"Hours\").toLowerCase() },\n { value: \"86400\", text: t(\"Days\").toLowerCase() },\n { value: \"604800\", text: t(\"Weeks\").toLowerCase() },\n { value: `${86400 * 30}`, text: t(\"Months\").toLowerCase() },\n { value: `${86400 * 30 * 12}`, text: t(\"Years\").toLowerCase() }\n ];\n\n // Will be executed every time the value changes.\n const handleChange = (value: number) => {\n currentValue = value;\n onChange(currentValue);\n };\n // Will return the first period option smaller than the value.\n const findPeriodsOption = (value: number) =>\n options\n .sort((a, b) => (a.value < b.value ? 1 : -1))\n .find(optionVal => value >= optionVal.value);\n // Will return the first multiple of the value using the custom input multipliers.\n const findManualPeriodsOptionValue = (value: number) =>\n unitOptions\n .map(unitOption => Number.parseInt(unitOption.value))\n .sort((a, b) => (a < b ? 1 : -1))\n .find(optionVal => value % optionVal === 0);\n // Will find and set a valid option for the period selector.\n const setPeriodsValue = (value: number) => {\n let option = findPeriodsOption(value);\n selectPeriods.value = `${option ? option.value : initialValue}`;\n };\n // Will transform the value to show the perfect fit for the custom input period.\n const setManualPeriodsValue = (value: number) => {\n const optionVal = findManualPeriodsOptionValue(value);\n if (optionVal) {\n inputTimeValue.value = `${value / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${value}`;\n unitsSelect.value = \"1\";\n }\n };\n\n // Will modify the value to show the perfect fit for this element and show its container.\n const showPeriods = () => {\n let option = findPeriodsOption(currentValue);\n const newValue = option ? option.value : initialValue;\n selectPeriods.value = `${newValue}`;\n\n if (newValue !== currentValue) handleChange(newValue);\n\n container.replaceChild(periodsContainer, manualPeriodsContainer);\n };\n // Will modify the value to show the perfect fit for this element and show its container.\n const showManualPeriods = () => {\n const optionVal = findManualPeriodsOptionValue(currentValue);\n\n if (optionVal) {\n inputTimeValue.value = `${currentValue / optionVal}`;\n unitsSelect.value = `${optionVal}`;\n } else {\n inputTimeValue.value = `${currentValue}`;\n unitsSelect.value = \"1\";\n }\n\n container.replaceChild(manualPeriodsContainer, periodsContainer);\n };\n\n // Append the elements\n\n periodsContainer.appendChild(selectPeriods);\n periodsContainer.appendChild(useManualPeriodsBtn);\n\n manualPeriodsContainer.appendChild(inputTimeValue);\n manualPeriodsContainer.appendChild(unitsSelect);\n manualPeriodsContainer.appendChild(usePeriodsBtn);\n\n if (\n options.find(option => option.value === selectedValue) ||\n (emptyOption && emptyOption.value === selectedValue)\n ) {\n // Start with the custom periods select.\n container.appendChild(periodsContainer);\n } else {\n // Start with the manual time input\n container.appendChild(manualPeriodsContainer);\n }\n\n // Set and fill the elements.\n\n // Periods selector.\n\n selectPeriods.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, initialValue)\n )\n );\n if (emptyOption) {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${emptyOption.value}`;\n optionElem.text = emptyOption.text;\n selectPeriods.appendChild(optionElem);\n }\n options.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n selectPeriods.appendChild(optionElem);\n });\n\n setPeriodsValue(selectedValue);\n\n useManualPeriodsBtn.appendChild(\n fontAwesomeIcon(faPencilAlt, t(\"Show manual period input\"), {\n size: \"small\"\n })\n );\n useManualPeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showManualPeriods();\n });\n\n // Manual periods input.\n\n inputTimeValue.type = \"number\";\n inputTimeValue.min = \"0\";\n inputTimeValue.required = true;\n inputTimeValue.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr((e.target as HTMLSelectElement).value, 0) *\n parseIntOr(unitsSelect.value, 1)\n )\n );\n // Select for time units.\n unitsSelect.addEventListener(\"change\", (e: Event) =>\n handleChange(\n parseIntOr(inputTimeValue.value, 0) *\n parseIntOr((e.target as HTMLSelectElement).value, 1)\n )\n );\n unitOptions.forEach(option => {\n const optionElem = document.createElement(\"option\");\n optionElem.value = `${option.value}`;\n optionElem.text = option.text;\n unitsSelect.appendChild(optionElem);\n });\n\n setManualPeriodsValue(selectedValue);\n\n usePeriodsBtn.appendChild(\n fontAwesomeIcon(faListAlt, t(\"Show periods selector\"), { size: \"small\" })\n );\n usePeriodsBtn.addEventListener(\"click\", e => {\n e.preventDefault();\n showPeriods();\n });\n\n return container;\n}\n\n/**\n * Cuts the text if their length is greater than the selected max length\n * and applies the selected ellipse to the result text.\n * @param str Text to cut\n * @param max Maximum length after cutting the text\n * @param ellipse String to be added to the cutted text\n * @returns Full text or text cutted with the ellipse\n */\nexport function ellipsize(\n str: string,\n max: number = 140,\n ellipse: string = \"…\"\n): string {\n return str.trim().length > max ? str.substr(0, max).trim() + ellipse : str;\n}\n\n// TODO: Document\nexport function autocompleteInput(\n initialValue: string | null,\n onDataRequested: (value: string, done: (data: T[]) => void) => void,\n renderListElement: (data: T) => HTMLElement,\n onSelected: (data: T) => string\n): HTMLElement {\n const container = document.createElement(\"div\");\n container.classList.add(\"autocomplete\");\n\n const input = document.createElement(\"input\");\n input.type = \"text\";\n input.required = true;\n if (initialValue !== null) input.value = initialValue;\n\n const list = document.createElement(\"div\");\n list.classList.add(\"autocomplete-items\");\n\n const cleanList = () => {\n list.innerHTML = \"\";\n };\n\n input.addEventListener(\"keyup\", e => {\n const value = (e.target as HTMLInputElement).value;\n if (value) {\n onDataRequested(value, data => {\n cleanList();\n if (data instanceof Array) {\n data.forEach(item => {\n const listElement = renderListElement(item);\n listElement.addEventListener(\"click\", () => {\n input.value = onSelected(item);\n cleanList();\n });\n list.appendChild(listElement);\n });\n }\n });\n } else {\n cleanList();\n }\n });\n\n container.appendChild(input);\n container.appendChild(list);\n\n return container;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject\n} from \"../lib/types\";\n\nimport {\n modulePropsDecoder,\n linkedVCPropsDecoder,\n notEmptyStringOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type StaticGraphProps = {\n type: ItemType.STATIC_GRAPH;\n imageSrc: string; // URL?\n showLastValueTooltip: \"default\" | \"enabled\" | \"disabled\";\n statusImageSrc: string | null; // URL?\n lastValue: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param showLastValueTooltip Raw value.\n */\nconst parseShowLastValueTooltip = (\n showLastValueTooltip: unknown\n): StaticGraphProps[\"showLastValueTooltip\"] => {\n switch (showLastValueTooltip) {\n case \"default\":\n case \"enabled\":\n case \"disabled\":\n return showLastValueTooltip;\n default:\n return \"default\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function staticGraphPropsDecoder(\n data: AnyObject\n): StaticGraphProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.STATIC_GRAPH,\n imageSrc: data.imageSrc,\n showLastValueTooltip: parseShowLastValueTooltip(data.showLastValueTooltip),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n lastValue: notEmptyStringOr(data.lastValue, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class StaticGraph extends Item {\n protected createDomElement(): HTMLElement {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n const element = document.createElement(\"div\");\n element.className = \"static-graph\";\n element.setAttribute(\"ondragstart\", \"return false;\");\n element.setAttribute(\"draggable\", \"false\");\n element.style.backgroundImage = `url(${imgSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Show last value in a tooltip.\n if (\n this.props.lastValue !== null &&\n this.props.showLastValueTooltip !== \"disabled\"\n ) {\n element.className = \"static-graph image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\"data-title\", this.props.lastValue);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n const imgSrc = this.props.statusImageSrc || this.props.imageSrc;\n element.style.backgroundImage = `url(${imgSrc})`;\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type IconProps = {\n type: ItemType.ICON;\n image: string;\n imageSrc: string; // URL?\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the icon props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function iconPropsDecoder(data: AnyObject): IconProps | never {\n if (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) {\n throw new TypeError(\"invalid image src.\");\n }\n\n if (typeof data.image !== \"string\" || data.image.length === 0) {\n throw new TypeError(\"invalid image.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ICON,\n image: data.image,\n imageSrc: data.imageSrc,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Icon extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"icon \" + this.props.image;\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n element.style.backgroundImage = `url(${this.props.imageSrc})`;\n }\n}\n","/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar prefix = \"fas\";\nvar faAd = {\n prefix: 'fas',\n iconName: 'ad',\n icon: [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"]\n};\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faAdjust = {\n prefix: 'fas',\n iconName: 'adjust',\n icon: [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"]\n};\nvar faAirFreshener = {\n prefix: 'fas',\n iconName: 'air-freshener',\n icon: [512, 512, [], \"f5d0\", \"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"]\n};\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"]\n};\nvar faAllergies = {\n prefix: 'fas',\n iconName: 'allergies',\n icon: [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faAmbulance = {\n prefix: 'fas',\n iconName: 'ambulance',\n icon: [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faAmericanSignLanguageInterpreting = {\n prefix: 'fas',\n iconName: 'american-sign-language-interpreting',\n icon: [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"]\n};\nvar faAngleDoubleDown = {\n prefix: 'fas',\n iconName: 'angle-double-down',\n icon: [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"]\n};\nvar faAngleDoubleLeft = {\n prefix: 'fas',\n iconName: 'angle-double-left',\n icon: [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"]\n};\nvar faAngleDoubleRight = {\n prefix: 'fas',\n iconName: 'angle-double-right',\n icon: [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"]\n};\nvar faAngleDoubleUp = {\n prefix: 'fas',\n iconName: 'angle-double-up',\n icon: [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"]\n};\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"]\n};\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"]\n};\nvar faAngry = {\n prefix: 'fas',\n iconName: 'angry',\n icon: [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"]\n};\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"]\n};\nvar faAppleAlt = {\n prefix: 'fas',\n iconName: 'apple-alt',\n icon: [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"]\n};\nvar faArchive = {\n prefix: 'fas',\n iconName: 'archive',\n icon: [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"]\n};\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faArrowAltCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-down',\n icon: [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"]\n};\nvar faArrowAltCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-left',\n icon: [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"]\n};\nvar faArrowAltCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-right',\n icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"]\n};\nvar faArrowAltCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-alt-circle-up',\n icon: [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"]\n};\nvar faArrowCircleDown = {\n prefix: 'fas',\n iconName: 'arrow-circle-down',\n icon: [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"]\n};\nvar faArrowCircleLeft = {\n prefix: 'fas',\n iconName: 'arrow-circle-left',\n icon: [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"]\n};\nvar faArrowCircleRight = {\n prefix: 'fas',\n iconName: 'arrow-circle-right',\n icon: [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"]\n};\nvar faArrowCircleUp = {\n prefix: 'fas',\n iconName: 'arrow-circle-up',\n icon: [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"]\n};\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"]\n};\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"]\n};\nvar faArrowsAlt = {\n prefix: 'fas',\n iconName: 'arrows-alt',\n icon: [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"]\n};\nvar faArrowsAltH = {\n prefix: 'fas',\n iconName: 'arrows-alt-h',\n icon: [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"]\n};\nvar faArrowsAltV = {\n prefix: 'fas',\n iconName: 'arrows-alt-v',\n icon: [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"]\n};\nvar faAssistiveListeningSystems = {\n prefix: 'fas',\n iconName: 'assistive-listening-systems',\n icon: [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"]\n};\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"]\n};\nvar faAtlas = {\n prefix: 'fas',\n iconName: 'atlas',\n icon: [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [], \"f5d2\", \"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"]\n};\nvar faBackspace = {\n prefix: 'fas',\n iconName: 'backspace',\n icon: [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"]\n};\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [512, 512, [], \"e05a\", \"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"]\n};\nvar faBalanceScale = {\n prefix: 'fas',\n iconName: 'balance-scale',\n icon: [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faBalanceScaleLeft = {\n prefix: 'fas',\n iconName: 'balance-scale-left',\n icon: [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"]\n};\nvar faBalanceScaleRight = {\n prefix: 'fas',\n iconName: 'balance-scale-right',\n icon: [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"]\n};\nvar faBandAid = {\n prefix: 'fas',\n iconName: 'band-aid',\n icon: [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"]\n};\nvar faBaseballBall = {\n prefix: 'fas',\n iconName: 'baseball-ball',\n icon: [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"]\n};\nvar faBasketballBall = {\n prefix: 'fas',\n iconName: 'basketball-ball',\n icon: [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"]\n};\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [], \"f2cd\", \"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"]\n};\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"]\n};\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"]\n};\nvar faBeer = {\n prefix: 'fas',\n iconName: 'beer',\n icon: [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faBible = {\n prefix: 'fas',\n iconName: 'bible',\n icon: [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"]\n};\nvar faBiking = {\n prefix: 'fas',\n iconName: 'biking',\n icon: [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faBirthdayCake = {\n prefix: 'fas',\n iconName: 'birthday-cake',\n icon: [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBlind = {\n prefix: 'fas',\n iconName: 'blind',\n icon: [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"]\n};\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"]\n};\nvar faBookDead = {\n prefix: 'fas',\n iconName: 'book-dead',\n icon: [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"]\n};\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"]\n};\nvar faBookReader = {\n prefix: 'fas',\n iconName: 'book-reader',\n icon: [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"]\n};\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"]\n};\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBorderStyle = {\n prefix: 'fas',\n iconName: 'border-style',\n icon: [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"]\n};\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"]\n};\nvar faBoxes = {\n prefix: 'fas',\n iconName: 'boxes',\n icon: [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"]\n};\nvar faBroadcastTower = {\n prefix: 'fas',\n iconName: 'broadcast-tower',\n icon: [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"]\n};\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"]\n};\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"]\n};\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"]\n};\nvar faBurn = {\n prefix: 'fas',\n iconName: 'burn',\n icon: [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"]\n};\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusAlt = {\n prefix: 'fas',\n iconName: 'bus-alt',\n icon: [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"]\n};\nvar faCalendarAlt = {\n prefix: 'fas',\n iconName: 'calendar-alt',\n icon: [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"]\n};\nvar faCalendarTimes = {\n prefix: 'fas',\n iconName: 'calendar-times',\n icon: [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"]\n};\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"]\n};\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarAlt = {\n prefix: 'fas',\n iconName: 'car-alt',\n icon: [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"]\n};\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faCarCrash = {\n prefix: 'fas',\n iconName: 'car-crash',\n icon: [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"]\n};\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"]\n};\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"]\n};\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"]\n};\nvar faCaretSquareDown = {\n prefix: 'fas',\n iconName: 'caret-square-down',\n icon: [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"]\n};\nvar faCaretSquareLeft = {\n prefix: 'fas',\n iconName: 'caret-square-left',\n icon: [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"]\n};\nvar faCaretSquareRight = {\n prefix: 'fas',\n iconName: 'caret-square-right',\n icon: [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"]\n};\nvar faCaretSquareUp = {\n prefix: 'fas',\n iconName: 'caret-square-up',\n icon: [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"]\n};\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"]\n};\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"]\n};\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"]\n};\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"]\n};\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChalkboardTeacher = {\n prefix: 'fas',\n iconName: 'chalkboard-teacher',\n icon: [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"]\n};\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"]\n};\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"]\n};\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"]\n};\nvar faCheckCircle = {\n prefix: 'fas',\n iconName: 'check-circle',\n icon: [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"]\n};\nvar faCheckSquare = {\n prefix: 'fas',\n iconName: 'check-square',\n icon: [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"]\n};\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"]\n};\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"]\n};\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"]\n};\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faChevronCircleDown = {\n prefix: 'fas',\n iconName: 'chevron-circle-down',\n icon: [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"]\n};\nvar faChevronCircleLeft = {\n prefix: 'fas',\n iconName: 'chevron-circle-left',\n icon: [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"]\n};\nvar faChevronCircleRight = {\n prefix: 'fas',\n iconName: 'chevron-circle-right',\n icon: [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"]\n};\nvar faChevronCircleUp = {\n prefix: 'fas',\n iconName: 'chevron-circle-up',\n icon: [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"]\n};\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"]\n};\nvar faClinicMedical = {\n prefix: 'fas',\n iconName: 'clinic-medical',\n icon: [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"]\n};\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [], \"f017\", \"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"]\n};\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"]\n};\nvar faCloudDownloadAlt = {\n prefix: 'fas',\n iconName: 'cloud-download-alt',\n icon: [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"]\n};\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"]\n};\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"]\n};\nvar faCloudUploadAlt = {\n prefix: 'fas',\n iconName: 'cloud-upload-alt',\n icon: [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"]\n};\nvar faCocktail = {\n prefix: 'fas',\n iconName: 'cocktail',\n icon: [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"]\n};\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"]\n};\nvar faCoffee = {\n prefix: 'fas',\n iconName: 'coffee',\n icon: [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"]\n};\nvar faCog = {\n prefix: 'fas',\n iconName: 'cog',\n icon: [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faCogs = {\n prefix: 'fas',\n iconName: 'cogs',\n icon: [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"]\n};\nvar faColumns = {\n prefix: 'fas',\n iconName: 'columns',\n icon: [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"]\n};\nvar faCommentAlt = {\n prefix: 'fas',\n iconName: 'comment-alt',\n icon: [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"]\n};\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"]\n};\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"]\n};\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"]\n};\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"]\n};\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faCompressAlt = {\n prefix: 'fas',\n iconName: 'compress-alt',\n icon: [448, 512, [], \"f422\", \"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"]\n};\nvar faCompressArrowsAlt = {\n prefix: 'fas',\n iconName: 'compress-arrows-alt',\n icon: [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"]\n};\nvar faConciergeBell = {\n prefix: 'fas',\n iconName: 'concierge-bell',\n icon: [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"]\n};\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"]\n};\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faCropAlt = {\n prefix: 'fas',\n iconName: 'crop-alt',\n icon: [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"]\n};\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"]\n};\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"]\n};\nvar faCut = {\n prefix: 'fas',\n iconName: 'cut',\n icon: [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"]\n};\nvar faDeaf = {\n prefix: 'fas',\n iconName: 'deaf',\n icon: [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"]\n};\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"]\n};\nvar faDiagnoses = {\n prefix: 'fas',\n iconName: 'diagnoses',\n icon: [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faDigitalTachograph = {\n prefix: 'fas',\n iconName: 'digital-tachograph',\n icon: [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"]\n};\nvar faDirections = {\n prefix: 'fas',\n iconName: 'directions',\n icon: [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faDizzy = {\n prefix: 'fas',\n iconName: 'dizzy',\n icon: [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"]\n};\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [], \"f6d3\", \"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faDollyFlatbed = {\n prefix: 'fas',\n iconName: 'dolly-flatbed',\n icon: [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDonate = {\n prefix: 'fas',\n iconName: 'donate',\n icon: [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"]\n};\nvar faDotCircle = {\n prefix: 'fas',\n iconName: 'dot-circle',\n icon: [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"]\n};\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faDraftingCompass = {\n prefix: 'fas',\n iconName: 'drafting-compass',\n icon: [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"]\n};\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [], \"f569\", \"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"]\n};\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"]\n};\nvar faEdit = {\n prefix: 'fas',\n iconName: 'edit',\n icon: [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"]\n};\nvar faEllipsisH = {\n prefix: 'fas',\n iconName: 'ellipsis-h',\n icon: [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"]\n};\nvar faEllipsisV = {\n prefix: 'fas',\n iconName: 'ellipsis-v',\n icon: [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"]\n};\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"]\n};\nvar faEnvelopeSquare = {\n prefix: 'fas',\n iconName: 'envelope-square',\n icon: [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"]\n};\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"]\n};\nvar faExchangeAlt = {\n prefix: 'fas',\n iconName: 'exchange-alt',\n icon: [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"]\n};\nvar faExclamationCircle = {\n prefix: 'fas',\n iconName: 'exclamation-circle',\n icon: [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExclamationTriangle = {\n prefix: 'fas',\n iconName: 'exclamation-triangle',\n icon: [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"]\n};\nvar faExpandAlt = {\n prefix: 'fas',\n iconName: 'expand-alt',\n icon: [448, 512, [], \"f424\", \"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"]\n};\nvar faExpandArrowsAlt = {\n prefix: 'fas',\n iconName: 'expand-arrows-alt',\n icon: [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"]\n};\nvar faExternalLinkAlt = {\n prefix: 'fas',\n iconName: 'external-link-alt',\n icon: [512, 512, [], \"f35d\", \"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"]\n};\nvar faExternalLinkSquareAlt = {\n prefix: 'fas',\n iconName: 'external-link-square-alt',\n icon: [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"]\n};\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"]\n};\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"]\n};\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faFastBackward = {\n prefix: 'fas',\n iconName: 'fast-backward',\n icon: [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"]\n};\nvar faFastForward = {\n prefix: 'fas',\n iconName: 'fast-forward',\n icon: [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"]\n};\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"]\n};\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [], \"f1ac\", \"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"]\n};\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"]\n};\nvar faFeatherAlt = {\n prefix: 'fas',\n iconName: 'feather-alt',\n icon: [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"]\n};\nvar faFemale = {\n prefix: 'fas',\n iconName: 'female',\n icon: [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"]\n};\nvar faFighterJet = {\n prefix: 'fas',\n iconName: 'fighter-jet',\n icon: [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"]\n};\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileAlt = {\n prefix: 'fas',\n iconName: 'file-alt',\n icon: [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileArchive = {\n prefix: 'fas',\n iconName: 'file-archive',\n icon: [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"]\n};\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"]\n};\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileDownload = {\n prefix: 'fas',\n iconName: 'file-download',\n icon: [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"]\n};\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"]\n};\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"]\n};\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"]\n};\nvar faFileMedicalAlt = {\n prefix: 'fas',\n iconName: 'file-medical-alt',\n icon: [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"]\n};\nvar faFileUpload = {\n prefix: 'fas',\n iconName: 'file-upload',\n icon: [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"]\n};\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"]\n};\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"]\n};\nvar faFireAlt = {\n prefix: 'fas',\n iconName: 'fire-alt',\n icon: [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"]\n};\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"]\n};\nvar faFirstAid = {\n prefix: 'fas',\n iconName: 'first-aid',\n icon: [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFistRaised = {\n prefix: 'fas',\n iconName: 'fist-raised',\n icon: [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"]\n};\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"]\n};\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"]\n};\nvar faFlushed = {\n prefix: 'fas',\n iconName: 'flushed',\n icon: [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"]\n};\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"]\n};\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"]\n};\nvar faFontAwesomeLogoFull = {\n prefix: 'fas',\n iconName: 'font-awesome-logo-full',\n icon: [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"]\n};\nvar faFootballBall = {\n prefix: 'fas',\n iconName: 'football-ball',\n icon: [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"]\n};\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"]\n};\nvar faFrown = {\n prefix: 'fas',\n iconName: 'frown',\n icon: [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"]\n};\nvar faFrownOpen = {\n prefix: 'fas',\n iconName: 'frown-open',\n icon: [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faFunnelDollar = {\n prefix: 'fas',\n iconName: 'funnel-dollar',\n icon: [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"]\n};\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"]\n};\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"]\n};\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"]\n};\nvar faGlassCheers = {\n prefix: 'fas',\n iconName: 'glass-cheers',\n icon: [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"]\n};\nvar faGlassMartini = {\n prefix: 'fas',\n iconName: 'glass-martini',\n icon: [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"]\n};\nvar faGlassMartiniAlt = {\n prefix: 'fas',\n iconName: 'glass-martini-alt',\n icon: [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"]\n};\nvar faGlassWhiskey = {\n prefix: 'fas',\n iconName: 'glass-whiskey',\n icon: [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"]\n};\nvar faGlobeAfrica = {\n prefix: 'fas',\n iconName: 'globe-africa',\n icon: [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"]\n};\nvar faGlobeAmericas = {\n prefix: 'fas',\n iconName: 'globe-americas',\n icon: [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"]\n};\nvar faGlobeAsia = {\n prefix: 'fas',\n iconName: 'globe-asia',\n icon: [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"]\n};\nvar faGlobeEurope = {\n prefix: 'fas',\n iconName: 'globe-europe',\n icon: [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"]\n};\nvar faGolfBall = {\n prefix: 'fas',\n iconName: 'golf-ball',\n icon: [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faGrimace = {\n prefix: 'fas',\n iconName: 'grimace',\n icon: [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"]\n};\nvar faGrin = {\n prefix: 'fas',\n iconName: 'grin',\n icon: [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinAlt = {\n prefix: 'fas',\n iconName: 'grin-alt',\n icon: [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeam = {\n prefix: 'fas',\n iconName: 'grin-beam',\n icon: [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'grin-beam-sweat',\n icon: [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinHearts = {\n prefix: 'fas',\n iconName: 'grin-hearts',\n icon: [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"]\n};\nvar faGrinSquint = {\n prefix: 'fas',\n iconName: 'grin-squint',\n icon: [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinSquintTears = {\n prefix: 'fas',\n iconName: 'grin-squint-tears',\n icon: [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"]\n};\nvar faGrinStars = {\n prefix: 'fas',\n iconName: 'grin-stars',\n icon: [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"]\n};\nvar faGrinTears = {\n prefix: 'fas',\n iconName: 'grin-tears',\n icon: [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"]\n};\nvar faGrinTongue = {\n prefix: 'fas',\n iconName: 'grin-tongue',\n icon: [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'grin-tongue-squint',\n icon: [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"]\n};\nvar faGrinTongueWink = {\n prefix: 'fas',\n iconName: 'grin-tongue-wink',\n icon: [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"]\n};\nvar faGrinWink = {\n prefix: 'fas',\n iconName: 'grin-wink',\n icon: [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"]\n};\nvar faGripHorizontal = {\n prefix: 'fas',\n iconName: 'grip-horizontal',\n icon: [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"]\n};\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"]\n};\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"]\n};\nvar faHSquare = {\n prefix: 'fas',\n iconName: 'h-square',\n icon: [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"]\n};\nvar faHamburger = {\n prefix: 'fas',\n iconName: 'hamburger',\n icon: [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"]\n};\nvar faHandHoldingUsd = {\n prefix: 'fas',\n iconName: 'hand-holding-usd',\n icon: [576, 512, [], \"f4c0\", \"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"]\n};\nvar faHandHoldingWater = {\n prefix: 'fas',\n iconName: 'hand-holding-water',\n icon: [576, 512, [], \"f4c1\", \"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"]\n};\nvar faHandPaper = {\n prefix: 'fas',\n iconName: 'hand-paper',\n icon: [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"]\n};\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"]\n};\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"]\n};\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"]\n};\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"]\n};\nvar faHandRock = {\n prefix: 'fas',\n iconName: 'hand-rock',\n icon: [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"]\n};\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [], \"f259\", \"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"]\n};\nvar faHandsHelping = {\n prefix: 'fas',\n iconName: 'hands-helping',\n icon: [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"]\n};\nvar faHandsWash = {\n prefix: 'fas',\n iconName: 'hands-wash',\n icon: [576, 512, [], \"e05e\", \"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"]\n};\nvar faHandshakeAltSlash = {\n prefix: 'fas',\n iconName: 'handshake-alt-slash',\n icon: [640, 512, [], \"e05f\", \"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [640, 512, [], \"e060\", \"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"]\n};\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"]\n};\nvar faHardHat = {\n prefix: 'fas',\n iconName: 'hard-hat',\n icon: [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"]\n};\nvar faHdd = {\n prefix: 'fas',\n iconName: 'hdd',\n icon: [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [640, 512, [], \"e061\", \"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [640, 512, [], \"e062\", \"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"]\n};\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"]\n};\nvar faHeadphonesAlt = {\n prefix: 'fas',\n iconName: 'headphones-alt',\n icon: [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"]\n};\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"]\n};\nvar faHeartBroken = {\n prefix: 'fas',\n iconName: 'heart-broken',\n icon: [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHeartbeat = {\n prefix: 'fas',\n iconName: 'heartbeat',\n icon: [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"]\n};\nvar faHiking = {\n prefix: 'fas',\n iconName: 'hiking',\n icon: [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHistory = {\n prefix: 'fas',\n iconName: 'history',\n icon: [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"]\n};\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"]\n};\nvar faHome = {\n prefix: 'fas',\n iconName: 'home',\n icon: [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"]\n};\nvar faHospitalAlt = {\n prefix: 'fas',\n iconName: 'hospital-alt',\n icon: [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"]\n};\nvar faHospitalSymbol = {\n prefix: 'fas',\n iconName: 'hospital-symbol',\n icon: [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"]\n};\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"]\n};\nvar faHotTub = {\n prefix: 'fas',\n iconName: 'hot-tub',\n icon: [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"]\n};\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"]\n};\nvar faHouseDamage = {\n prefix: 'fas',\n iconName: 'house-damage',\n icon: [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"]\n};\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [576, 512, [], \"e065\", \"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"]\n};\nvar faHryvnia = {\n prefix: 'fas',\n iconName: 'hryvnia',\n icon: [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"]\n};\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"]\n};\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"]\n};\nvar faIdCardAlt = {\n prefix: 'fas',\n iconName: 'id-card-alt',\n icon: [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"]\n};\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"]\n};\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"]\n};\nvar faInfoCircle = {\n prefix: 'fas',\n iconName: 'info-circle',\n icon: [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"]\n};\nvar faJournalWhills = {\n prefix: 'fas',\n iconName: 'journal-whills',\n icon: [448, 512, [], \"f66a\", \"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"]\n};\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"]\n};\nvar faKiss = {\n prefix: 'fas',\n iconName: 'kiss',\n icon: [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faKissBeam = {\n prefix: 'fas',\n iconName: 'kiss-beam',\n icon: [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"]\n};\nvar faKissWinkHeart = {\n prefix: 'fas',\n iconName: 'kiss-wink-heart',\n icon: [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"]\n};\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"]\n};\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"]\n};\nvar faLaptopHouse = {\n prefix: 'fas',\n iconName: 'laptop-house',\n icon: [640, 512, [], \"e066\", \"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"]\n};\nvar faLaugh = {\n prefix: 'fas',\n iconName: 'laugh',\n icon: [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"]\n};\nvar faLaughBeam = {\n prefix: 'fas',\n iconName: 'laugh-beam',\n icon: [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughSquint = {\n prefix: 'fas',\n iconName: 'laugh-squint',\n icon: [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLaughWink = {\n prefix: 'fas',\n iconName: 'laugh-wink',\n icon: [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"]\n};\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"]\n};\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"]\n};\nvar faLevelDownAlt = {\n prefix: 'fas',\n iconName: 'level-down-alt',\n icon: [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"]\n};\nvar faLevelUpAlt = {\n prefix: 'fas',\n iconName: 'level-up-alt',\n icon: [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"]\n};\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faListAlt = {\n prefix: 'fas',\n iconName: 'list-alt',\n icon: [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"]\n};\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"]\n};\nvar faLongArrowAltDown = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-down',\n icon: [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"]\n};\nvar faLongArrowAltLeft = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-left',\n icon: [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"]\n};\nvar faLongArrowAltRight = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-right',\n icon: [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"]\n};\nvar faLongArrowAltUp = {\n prefix: 'fas',\n iconName: 'long-arrow-alt-up',\n icon: [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"]\n};\nvar faLowVision = {\n prefix: 'fas',\n iconName: 'low-vision',\n icon: [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"]\n};\nvar faLuggageCart = {\n prefix: 'fas',\n iconName: 'luggage-cart',\n icon: [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [640, 512, [], \"f604\", \"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [640, 512, [], \"e067\", \"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"]\n};\nvar faMagic = {\n prefix: 'fas',\n iconName: 'magic',\n icon: [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"]\n};\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"]\n};\nvar faMailBulk = {\n prefix: 'fas',\n iconName: 'mail-bulk',\n icon: [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"]\n};\nvar faMale = {\n prefix: 'fas',\n iconName: 'male',\n icon: [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarked = {\n prefix: 'fas',\n iconName: 'map-marked',\n icon: [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarkedAlt = {\n prefix: 'fas',\n iconName: 'map-marked-alt',\n icon: [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"]\n};\nvar faMapMarker = {\n prefix: 'fas',\n iconName: 'map-marker',\n icon: [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"]\n};\nvar faMapMarkerAlt = {\n prefix: 'fas',\n iconName: 'map-marker-alt',\n icon: [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"]\n};\nvar faMapSigns = {\n prefix: 'fas',\n iconName: 'map-signs',\n icon: [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"]\n};\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faMarsStrokeH = {\n prefix: 'fas',\n iconName: 'mars-stroke-h',\n icon: [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMarsStrokeV = {\n prefix: 'fas',\n iconName: 'mars-stroke-v',\n icon: [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"]\n};\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"]\n};\nvar faMedkit = {\n prefix: 'fas',\n iconName: 'medkit',\n icon: [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"]\n};\nvar faMeh = {\n prefix: 'fas',\n iconName: 'meh',\n icon: [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehBlank = {\n prefix: 'fas',\n iconName: 'meh-blank',\n icon: [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMehRollingEyes = {\n prefix: 'fas',\n iconName: 'meh-rolling-eyes',\n icon: [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"]\n};\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [], \"f753\", \"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneAlt = {\n prefix: 'fas',\n iconName: 'microphone-alt',\n icon: [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"]\n};\nvar faMicrophoneAltSlash = {\n prefix: 'fas',\n iconName: 'microphone-alt-slash',\n icon: [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faMinusCircle = {\n prefix: 'fas',\n iconName: 'minus-circle',\n icon: [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"]\n};\nvar faMinusSquare = {\n prefix: 'fas',\n iconName: 'minus-square',\n icon: [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faMobileAlt = {\n prefix: 'fas',\n iconName: 'mobile-alt',\n icon: [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillAlt = {\n prefix: 'fas',\n iconName: 'money-bill-alt',\n icon: [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"]\n};\nvar faMoneyBillWaveAlt = {\n prefix: 'fas',\n iconName: 'money-bill-wave-alt',\n icon: [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faMoneyCheckAlt = {\n prefix: 'fas',\n iconName: 'money-check-alt',\n icon: [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"]\n};\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"]\n};\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"]\n};\nvar faMouse = {\n prefix: 'fas',\n iconName: 'mouse',\n icon: [384, 512, [], \"f8cc\", \"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"]\n};\nvar faMousePointer = {\n prefix: 'fas',\n iconName: 'mouse-pointer',\n icon: [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [], \"f001\", \"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"]\n};\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"]\n};\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"]\n};\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"]\n};\nvar faPaintBrush = {\n prefix: 'fas',\n iconName: 'paint-brush',\n icon: [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"]\n};\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"]\n};\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"]\n};\nvar faParking = {\n prefix: 'fas',\n iconName: 'parking',\n icon: [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"]\n};\nvar faPastafarianism = {\n prefix: 'fas',\n iconName: 'pastafarianism',\n icon: [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"]\n};\nvar faPauseCircle = {\n prefix: 'fas',\n iconName: 'pause-circle',\n icon: [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"]\n};\nvar faPenAlt = {\n prefix: 'fas',\n iconName: 'pen-alt',\n icon: [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"]\n};\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"]\n};\nvar faPenSquare = {\n prefix: 'fas',\n iconName: 'pen-square',\n icon: [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"]\n};\nvar faPencilAlt = {\n prefix: 'fas',\n iconName: 'pencil-alt',\n icon: [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"]\n};\nvar faPencilRuler = {\n prefix: 'fas',\n iconName: 'pencil-ruler',\n icon: [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"]\n};\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [576, 512, [], \"e068\", \"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"]\n};\nvar faPeopleCarry = {\n prefix: 'fas',\n iconName: 'people-carry',\n icon: [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"]\n};\nvar faPercentage = {\n prefix: 'fas',\n iconName: 'percentage',\n icon: [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"]\n};\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"]\n};\nvar faPhoneAlt = {\n prefix: 'fas',\n iconName: 'phone-alt',\n icon: [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"]\n};\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"]\n};\nvar faPhoneSquare = {\n prefix: 'fas',\n iconName: 'phone-square',\n icon: [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"]\n};\nvar faPhoneSquareAlt = {\n prefix: 'fas',\n iconName: 'phone-square-alt',\n icon: [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"]\n};\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"]\n};\nvar faPhotoVideo = {\n prefix: 'fas',\n iconName: 'photo-video',\n icon: [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"]\n};\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"]\n};\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [640, 512, [], \"e069\", \"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"]\n};\nvar faPlayCircle = {\n prefix: 'fas',\n iconName: 'play-circle',\n icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"]\n};\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [384, 512, [], \"f1e6\", \"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPlusCircle = {\n prefix: 'fas',\n iconName: 'plus-circle',\n icon: [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPlusSquare = {\n prefix: 'fas',\n iconName: 'plus-square',\n icon: [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"]\n};\nvar faPoll = {\n prefix: 'fas',\n iconName: 'poll',\n icon: [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"]\n};\nvar faPollH = {\n prefix: 'fas',\n iconName: 'poll-h',\n icon: [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"]\n};\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"]\n};\nvar faPortrait = {\n prefix: 'fas',\n iconName: 'portrait',\n icon: [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"]\n};\nvar faPoundSign = {\n prefix: 'fas',\n iconName: 'pound-sign',\n icon: [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"]\n};\nvar faPray = {\n prefix: 'fas',\n iconName: 'pray',\n icon: [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"]\n};\nvar faPrayingHands = {\n prefix: 'fas',\n iconName: 'praying-hands',\n icon: [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"]\n};\nvar faPrescriptionBottleAlt = {\n prefix: 'fas',\n iconName: 'prescription-bottle-alt',\n icon: [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faProcedures = {\n prefix: 'fas',\n iconName: 'procedures',\n icon: [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faProjectDiagram = {\n prefix: 'fas',\n iconName: 'project-diagram',\n icon: [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"]\n};\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [384, 512, [], \"e06a\", \"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [384, 512, [], \"e06b\", \"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"]\n};\nvar faQuestionCircle = {\n prefix: 'fas',\n iconName: 'question-circle',\n icon: [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"]\n};\nvar faQuidditch = {\n prefix: 'fas',\n iconName: 'quidditch',\n icon: [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faQuran = {\n prefix: 'fas',\n iconName: 'quran',\n icon: [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"]\n};\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"]\n};\nvar faRadiationAlt = {\n prefix: 'fas',\n iconName: 'radiation-alt',\n icon: [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"]\n};\nvar faRandom = {\n prefix: 'fas',\n iconName: 'random',\n icon: [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"]\n};\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"]\n};\nvar faRedo = {\n prefix: 'fas',\n iconName: 'redo',\n icon: [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"]\n};\nvar faRedoAlt = {\n prefix: 'fas',\n iconName: 'redo-alt',\n icon: [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"]\n};\nvar faRemoveFormat = {\n prefix: 'fas',\n iconName: 'remove-format',\n icon: [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"]\n};\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"]\n};\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"]\n};\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [], \"f544\", \"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"]\n};\nvar faRssSquare = {\n prefix: 'fas',\n iconName: 'rss-square',\n icon: [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"]\n};\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"]\n};\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"]\n};\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"]\n};\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"]\n};\nvar faRunning = {\n prefix: 'fas',\n iconName: 'running',\n icon: [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"]\n};\nvar faSadCry = {\n prefix: 'fas',\n iconName: 'sad-cry',\n icon: [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"]\n};\nvar faSadTear = {\n prefix: 'fas',\n iconName: 'sad-tear',\n icon: [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [], \"f7bf\", \"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [], \"f7c0\", \"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"]\n};\nvar faSave = {\n prefix: 'fas',\n iconName: 'save',\n icon: [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"]\n};\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"]\n};\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"]\n};\nvar faSearch = {\n prefix: 'fas',\n iconName: 'search',\n icon: [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"]\n};\nvar faSearchDollar = {\n prefix: 'fas',\n iconName: 'search-dollar',\n icon: [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"]\n};\nvar faSearchLocation = {\n prefix: 'fas',\n iconName: 'search-location',\n icon: [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faSearchMinus = {\n prefix: 'fas',\n iconName: 'search-minus',\n icon: [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSearchPlus = {\n prefix: 'fas',\n iconName: 'search-plus',\n icon: [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"]\n};\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"]\n};\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [], \"f61f\", \"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"]\n};\nvar faShareAlt = {\n prefix: 'fas',\n iconName: 'share-alt',\n icon: [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"]\n};\nvar faShareAltSquare = {\n prefix: 'fas',\n iconName: 'share-alt-square',\n icon: [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"]\n};\nvar faShareSquare = {\n prefix: 'fas',\n iconName: 'share-square',\n icon: [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"]\n};\nvar faShieldAlt = {\n prefix: 'fas',\n iconName: 'shield-alt',\n icon: [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"]\n};\nvar faShippingFast = {\n prefix: 'fas',\n iconName: 'shipping-fast',\n icon: [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"]\n};\nvar faShoppingBag = {\n prefix: 'fas',\n iconName: 'shopping-bag',\n icon: [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"]\n};\nvar faShoppingBasket = {\n prefix: 'fas',\n iconName: 'shopping-basket',\n icon: [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"]\n};\nvar faShoppingCart = {\n prefix: 'fas',\n iconName: 'shopping-cart',\n icon: [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [], \"f2cc\", \"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"]\n};\nvar faShuttleVan = {\n prefix: 'fas',\n iconName: 'shuttle-van',\n icon: [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"]\n};\nvar faSign = {\n prefix: 'fas',\n iconName: 'sign',\n icon: [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"]\n};\nvar faSignInAlt = {\n prefix: 'fas',\n iconName: 'sign-in-alt',\n icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"]\n};\nvar faSignLanguage = {\n prefix: 'fas',\n iconName: 'sign-language',\n icon: [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"]\n};\nvar faSignOutAlt = {\n prefix: 'fas',\n iconName: 'sign-out-alt',\n icon: [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"]\n};\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"]\n};\nvar faSkating = {\n prefix: 'fas',\n iconName: 'skating',\n icon: [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSkiing = {\n prefix: 'fas',\n iconName: 'skiing',\n icon: [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"]\n};\nvar faSkiingNordic = {\n prefix: 'fas',\n iconName: 'skiing-nordic',\n icon: [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"]\n};\nvar faSlidersH = {\n prefix: 'fas',\n iconName: 'sliders-h',\n icon: [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"]\n};\nvar faSmile = {\n prefix: 'fas',\n iconName: 'smile',\n icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"]\n};\nvar faSmileBeam = {\n prefix: 'fas',\n iconName: 'smile-beam',\n icon: [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"]\n};\nvar faSmileWink = {\n prefix: 'fas',\n iconName: 'smile-wink',\n icon: [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"]\n};\nvar faSmokingBan = {\n prefix: 'fas',\n iconName: 'smoking-ban',\n icon: [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"]\n};\nvar faSms = {\n prefix: 'fas',\n iconName: 'sms',\n icon: [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"]\n};\nvar faSnowboarding = {\n prefix: 'fas',\n iconName: 'snowboarding',\n icon: [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"]\n};\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"]\n};\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [], \"e06e\", \"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"]\n};\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"]\n};\nvar faSortAlphaDown = {\n prefix: 'fas',\n iconName: 'sort-alpha-down',\n icon: [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaDownAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-down-alt',\n icon: [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAlphaUp = {\n prefix: 'fas',\n iconName: 'sort-alpha-up',\n icon: [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"]\n};\nvar faSortAlphaUpAlt = {\n prefix: 'fas',\n iconName: 'sort-alpha-up-alt',\n icon: [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"]\n};\nvar faSortAmountDown = {\n prefix: 'fas',\n iconName: 'sort-amount-down',\n icon: [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountDownAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-down-alt',\n icon: [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortAmountUp = {\n prefix: 'fas',\n iconName: 'sort-amount-up',\n icon: [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faSortAmountUpAlt = {\n prefix: 'fas',\n iconName: 'sort-amount-up-alt',\n icon: [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"]\n};\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"]\n};\nvar faSortNumericDown = {\n prefix: 'fas',\n iconName: 'sort-numeric-down',\n icon: [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"]\n};\nvar faSortNumericDownAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-down-alt',\n icon: [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortNumericUp = {\n prefix: 'fas',\n iconName: 'sort-numeric-up',\n icon: [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"]\n};\nvar faSortNumericUpAlt = {\n prefix: 'fas',\n iconName: 'sort-numeric-up-alt',\n icon: [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"]\n};\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"]\n};\nvar faSpaceShuttle = {\n prefix: 'fas',\n iconName: 'space-shuttle',\n icon: [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"]\n};\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"]\n};\nvar faSquareRootAlt = {\n prefix: 'fas',\n iconName: 'square-root-alt',\n icon: [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"]\n};\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"]\n};\nvar faStarHalfAlt = {\n prefix: 'fas',\n iconName: 'star-half-alt',\n icon: [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"]\n};\nvar faStepBackward = {\n prefix: 'fas',\n iconName: 'step-backward',\n icon: [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"]\n};\nvar faStepForward = {\n prefix: 'fas',\n iconName: 'step-forward',\n icon: [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faStickyNote = {\n prefix: 'fas',\n iconName: 'sticky-note',\n icon: [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"]\n};\nvar faStopCircle = {\n prefix: 'fas',\n iconName: 'stop-circle',\n icon: [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"]\n};\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"]\n};\nvar faStoreAlt = {\n prefix: 'fas',\n iconName: 'store-alt',\n icon: [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"]\n};\nvar faStoreAltSlash = {\n prefix: 'fas',\n iconName: 'store-alt-slash',\n icon: [640, 512, [], \"e070\", \"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"]\n};\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [640, 512, [], \"e071\", \"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"]\n};\nvar faStream = {\n prefix: 'fas',\n iconName: 'stream',\n icon: [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"]\n};\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSubway = {\n prefix: 'fas',\n iconName: 'subway',\n icon: [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"]\n};\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"]\n};\nvar faSurprise = {\n prefix: 'fas',\n iconName: 'surprise',\n icon: [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"]\n};\nvar faSwimmer = {\n prefix: 'fas',\n iconName: 'swimmer',\n icon: [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"]\n};\nvar faSwimmingPool = {\n prefix: 'fas',\n iconName: 'swimming-pool',\n icon: [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"]\n};\nvar faSync = {\n prefix: 'fas',\n iconName: 'sync',\n icon: [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"]\n};\nvar faSyncAlt = {\n prefix: 'fas',\n iconName: 'sync-alt',\n icon: [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"]\n};\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"]\n};\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"]\n};\nvar faTableTennis = {\n prefix: 'fas',\n iconName: 'table-tennis',\n icon: [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"]\n};\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faTabletAlt = {\n prefix: 'fas',\n iconName: 'tablet-alt',\n icon: [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"]\n};\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"]\n};\nvar faTachometerAlt = {\n prefix: 'fas',\n iconName: 'tachometer-alt',\n icon: [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"]\n};\nvar faTasks = {\n prefix: 'fas',\n iconName: 'tasks',\n icon: [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"]\n};\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"]\n};\nvar faTenge = {\n prefix: 'fas',\n iconName: 'tenge',\n icon: [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"]\n};\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"]\n};\nvar faTh = {\n prefix: 'fas',\n iconName: 'th',\n icon: [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"]\n};\nvar faThLarge = {\n prefix: 'fas',\n iconName: 'th-large',\n icon: [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"]\n};\nvar faThList = {\n prefix: 'fas',\n iconName: 'th-list',\n icon: [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"]\n};\nvar faTheaterMasks = {\n prefix: 'fas',\n iconName: 'theater-masks',\n icon: [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"]\n};\nvar faThermometerEmpty = {\n prefix: 'fas',\n iconName: 'thermometer-empty',\n icon: [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerFull = {\n prefix: 'fas',\n iconName: 'thermometer-full',\n icon: [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"]\n};\nvar faThermometerHalf = {\n prefix: 'fas',\n iconName: 'thermometer-half',\n icon: [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerQuarter = {\n prefix: 'fas',\n iconName: 'thermometer-quarter',\n icon: [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThermometerThreeQuarters = {\n prefix: 'fas',\n iconName: 'thermometer-three-quarters',\n icon: [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"]\n};\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"]\n};\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"]\n};\nvar faTicketAlt = {\n prefix: 'fas',\n iconName: 'ticket-alt',\n icon: [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"]\n};\nvar faTimes = {\n prefix: 'fas',\n iconName: 'times',\n icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"]\n};\nvar faTimesCircle = {\n prefix: 'fas',\n iconName: 'times-circle',\n icon: [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"]\n};\nvar faTint = {\n prefix: 'fas',\n iconName: 'tint',\n icon: [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"]\n};\nvar faTintSlash = {\n prefix: 'fas',\n iconName: 'tint-slash',\n icon: [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"]\n};\nvar faTired = {\n prefix: 'fas',\n iconName: 'tired',\n icon: [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [640, 512, [], \"e072\", \"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"]\n};\nvar faTools = {\n prefix: 'fas',\n iconName: 'tools',\n icon: [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"]\n};\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"]\n};\nvar faTorah = {\n prefix: 'fas',\n iconName: 'torah',\n icon: [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"]\n};\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"]\n};\nvar faTram = {\n prefix: 'fas',\n iconName: 'tram',\n icon: [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTransgenderAlt = {\n prefix: 'fas',\n iconName: 'transgender-alt',\n icon: [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"]\n};\nvar faTrashAlt = {\n prefix: 'fas',\n iconName: 'trash-alt',\n icon: [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestore = {\n prefix: 'fas',\n iconName: 'trash-restore',\n icon: [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTrashRestoreAlt = {\n prefix: 'fas',\n iconName: 'trash-restore-alt',\n icon: [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"]\n};\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"]\n};\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"]\n};\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"]\n};\nvar faTruckLoading = {\n prefix: 'fas',\n iconName: 'truck-loading',\n icon: [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"]\n};\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"]\n};\nvar faTshirt = {\n prefix: 'fas',\n iconName: 'tshirt',\n icon: [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"]\n};\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [640, 512, [], \"f26c\", \"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"]\n};\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"]\n};\nvar faUndo = {\n prefix: 'fas',\n iconName: 'undo',\n icon: [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"]\n};\nvar faUndoAlt = {\n prefix: 'fas',\n iconName: 'undo-alt',\n icon: [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"]\n};\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"]\n};\nvar faUniversity = {\n prefix: 'fas',\n iconName: 'university',\n icon: [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"]\n};\nvar faUnlink = {\n prefix: 'fas',\n iconName: 'unlink',\n icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"]\n};\nvar faUnlockAlt = {\n prefix: 'fas',\n iconName: 'unlock-alt',\n icon: [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserAlt = {\n prefix: 'fas',\n iconName: 'user-alt',\n icon: [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"]\n};\nvar faUserAltSlash = {\n prefix: 'fas',\n iconName: 'user-alt-slash',\n icon: [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"]\n};\nvar faUserCircle = {\n prefix: 'fas',\n iconName: 'user-circle',\n icon: [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"]\n};\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"]\n};\nvar faUserCog = {\n prefix: 'fas',\n iconName: 'user-cog',\n icon: [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"]\n};\nvar faUserEdit = {\n prefix: 'fas',\n iconName: 'user-edit',\n icon: [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"]\n};\nvar faUserFriends = {\n prefix: 'fas',\n iconName: 'user-friends',\n icon: [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"]\n};\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"]\n};\nvar faUserMd = {\n prefix: 'fas',\n iconName: 'user-md',\n icon: [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"]\n};\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"]\n};\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"]\n};\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"]\n};\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"]\n};\nvar faUserTimes = {\n prefix: 'fas',\n iconName: 'user-times',\n icon: [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersCog = {\n prefix: 'fas',\n iconName: 'users-cog',\n icon: [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"]\n};\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"]\n};\nvar faUtensilSpoon = {\n prefix: 'fas',\n iconName: 'utensil-spoon',\n icon: [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"]\n};\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"]\n};\nvar faVectorSquare = {\n prefix: 'fas',\n iconName: 'vector-square',\n icon: [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"]\n};\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"]\n};\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"]\n};\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"]\n};\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"]\n};\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [640, 512, [], \"e075\", \"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"]\n};\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"]\n};\nvar faVolleyballBall = {\n prefix: 'fas',\n iconName: 'volleyball-ball',\n icon: [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"]\n};\nvar faVolumeDown = {\n prefix: 'fas',\n iconName: 'volume-down',\n icon: [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"]\n};\nvar faVolumeMute = {\n prefix: 'fas',\n iconName: 'volume-mute',\n icon: [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"]\n};\nvar faVolumeUp = {\n prefix: 'fas',\n iconName: 'volume-up',\n icon: [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"]\n};\nvar faVoteYea = {\n prefix: 'fas',\n iconName: 'vote-yea',\n icon: [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"]\n};\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"]\n};\nvar faWalking = {\n prefix: 'fas',\n iconName: 'walking',\n icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"]\n};\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"]\n};\nvar faWeight = {\n prefix: 'fas',\n iconName: 'weight',\n icon: [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"]\n};\nvar faWindowClose = {\n prefix: 'fas',\n iconName: 'window-close',\n icon: [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"]\n};\nvar faWineGlassAlt = {\n prefix: 'fas',\n iconName: 'wine-glass-alt',\n icon: [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"]\n};\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"]\n};\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"]\n};\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n};\nvar _iconsCache = {\n faAd: faAd,\n faAddressBook: faAddressBook,\n faAddressCard: faAddressCard,\n faAdjust: faAdjust,\n faAirFreshener: faAirFreshener,\n faAlignCenter: faAlignCenter,\n faAlignJustify: faAlignJustify,\n faAlignLeft: faAlignLeft,\n faAlignRight: faAlignRight,\n faAllergies: faAllergies,\n faAmbulance: faAmbulance,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAnchor: faAnchor,\n faAngleDoubleDown: faAngleDoubleDown,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faAngleDoubleRight: faAngleDoubleRight,\n faAngleDoubleUp: faAngleDoubleUp,\n faAngleDown: faAngleDown,\n faAngleLeft: faAngleLeft,\n faAngleRight: faAngleRight,\n faAngleUp: faAngleUp,\n faAngry: faAngry,\n faAnkh: faAnkh,\n faAppleAlt: faAppleAlt,\n faArchive: faArchive,\n faArchway: faArchway,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faArrowCircleDown: faArrowCircleDown,\n faArrowCircleLeft: faArrowCircleLeft,\n faArrowCircleRight: faArrowCircleRight,\n faArrowCircleUp: faArrowCircleUp,\n faArrowDown: faArrowDown,\n faArrowLeft: faArrowLeft,\n faArrowRight: faArrowRight,\n faArrowUp: faArrowUp,\n faArrowsAlt: faArrowsAlt,\n faArrowsAltH: faArrowsAltH,\n faArrowsAltV: faArrowsAltV,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faAsterisk: faAsterisk,\n faAt: faAt,\n faAtlas: faAtlas,\n faAtom: faAtom,\n faAudioDescription: faAudioDescription,\n faAward: faAward,\n faBaby: faBaby,\n faBabyCarriage: faBabyCarriage,\n faBackspace: faBackspace,\n faBackward: faBackward,\n faBacon: faBacon,\n faBacteria: faBacteria,\n faBacterium: faBacterium,\n faBahai: faBahai,\n faBalanceScale: faBalanceScale,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faBalanceScaleRight: faBalanceScaleRight,\n faBan: faBan,\n faBandAid: faBandAid,\n faBarcode: faBarcode,\n faBars: faBars,\n faBaseballBall: faBaseballBall,\n faBasketballBall: faBasketballBall,\n faBath: faBath,\n faBatteryEmpty: faBatteryEmpty,\n faBatteryFull: faBatteryFull,\n faBatteryHalf: faBatteryHalf,\n faBatteryQuarter: faBatteryQuarter,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBed: faBed,\n faBeer: faBeer,\n faBell: faBell,\n faBellSlash: faBellSlash,\n faBezierCurve: faBezierCurve,\n faBible: faBible,\n faBicycle: faBicycle,\n faBiking: faBiking,\n faBinoculars: faBinoculars,\n faBiohazard: faBiohazard,\n faBirthdayCake: faBirthdayCake,\n faBlender: faBlender,\n faBlenderPhone: faBlenderPhone,\n faBlind: faBlind,\n faBlog: faBlog,\n faBold: faBold,\n faBolt: faBolt,\n faBomb: faBomb,\n faBone: faBone,\n faBong: faBong,\n faBook: faBook,\n faBookDead: faBookDead,\n faBookMedical: faBookMedical,\n faBookOpen: faBookOpen,\n faBookReader: faBookReader,\n faBookmark: faBookmark,\n faBorderAll: faBorderAll,\n faBorderNone: faBorderNone,\n faBorderStyle: faBorderStyle,\n faBowlingBall: faBowlingBall,\n faBox: faBox,\n faBoxOpen: faBoxOpen,\n faBoxTissue: faBoxTissue,\n faBoxes: faBoxes,\n faBraille: faBraille,\n faBrain: faBrain,\n faBreadSlice: faBreadSlice,\n faBriefcase: faBriefcase,\n faBriefcaseMedical: faBriefcaseMedical,\n faBroadcastTower: faBroadcastTower,\n faBroom: faBroom,\n faBrush: faBrush,\n faBug: faBug,\n faBuilding: faBuilding,\n faBullhorn: faBullhorn,\n faBullseye: faBullseye,\n faBurn: faBurn,\n faBus: faBus,\n faBusAlt: faBusAlt,\n faBusinessTime: faBusinessTime,\n faCalculator: faCalculator,\n faCalendar: faCalendar,\n faCalendarAlt: faCalendarAlt,\n faCalendarCheck: faCalendarCheck,\n faCalendarDay: faCalendarDay,\n faCalendarMinus: faCalendarMinus,\n faCalendarPlus: faCalendarPlus,\n faCalendarTimes: faCalendarTimes,\n faCalendarWeek: faCalendarWeek,\n faCamera: faCamera,\n faCameraRetro: faCameraRetro,\n faCampground: faCampground,\n faCandyCane: faCandyCane,\n faCannabis: faCannabis,\n faCapsules: faCapsules,\n faCar: faCar,\n faCarAlt: faCarAlt,\n faCarBattery: faCarBattery,\n faCarCrash: faCarCrash,\n faCarSide: faCarSide,\n faCaravan: faCaravan,\n faCaretDown: faCaretDown,\n faCaretLeft: faCaretLeft,\n faCaretRight: faCaretRight,\n faCaretSquareDown: faCaretSquareDown,\n faCaretSquareLeft: faCaretSquareLeft,\n faCaretSquareRight: faCaretSquareRight,\n faCaretSquareUp: faCaretSquareUp,\n faCaretUp: faCaretUp,\n faCarrot: faCarrot,\n faCartArrowDown: faCartArrowDown,\n faCartPlus: faCartPlus,\n faCashRegister: faCashRegister,\n faCat: faCat,\n faCertificate: faCertificate,\n faChair: faChair,\n faChalkboard: faChalkboard,\n faChalkboardTeacher: faChalkboardTeacher,\n faChargingStation: faChargingStation,\n faChartArea: faChartArea,\n faChartBar: faChartBar,\n faChartLine: faChartLine,\n faChartPie: faChartPie,\n faCheck: faCheck,\n faCheckCircle: faCheckCircle,\n faCheckDouble: faCheckDouble,\n faCheckSquare: faCheckSquare,\n faCheese: faCheese,\n faChess: faChess,\n faChessBishop: faChessBishop,\n faChessBoard: faChessBoard,\n faChessKing: faChessKing,\n faChessKnight: faChessKnight,\n faChessPawn: faChessPawn,\n faChessQueen: faChessQueen,\n faChessRook: faChessRook,\n faChevronCircleDown: faChevronCircleDown,\n faChevronCircleLeft: faChevronCircleLeft,\n faChevronCircleRight: faChevronCircleRight,\n faChevronCircleUp: faChevronCircleUp,\n faChevronDown: faChevronDown,\n faChevronLeft: faChevronLeft,\n faChevronRight: faChevronRight,\n faChevronUp: faChevronUp,\n faChild: faChild,\n faChurch: faChurch,\n faCircle: faCircle,\n faCircleNotch: faCircleNotch,\n faCity: faCity,\n faClinicMedical: faClinicMedical,\n faClipboard: faClipboard,\n faClipboardCheck: faClipboardCheck,\n faClipboardList: faClipboardList,\n faClock: faClock,\n faClone: faClone,\n faClosedCaptioning: faClosedCaptioning,\n faCloud: faCloud,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faCloudMeatball: faCloudMeatball,\n faCloudMoon: faCloudMoon,\n faCloudMoonRain: faCloudMoonRain,\n faCloudRain: faCloudRain,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faCloudSun: faCloudSun,\n faCloudSunRain: faCloudSunRain,\n faCloudUploadAlt: faCloudUploadAlt,\n faCocktail: faCocktail,\n faCode: faCode,\n faCodeBranch: faCodeBranch,\n faCoffee: faCoffee,\n faCog: faCog,\n faCogs: faCogs,\n faCoins: faCoins,\n faColumns: faColumns,\n faComment: faComment,\n faCommentAlt: faCommentAlt,\n faCommentDollar: faCommentDollar,\n faCommentDots: faCommentDots,\n faCommentMedical: faCommentMedical,\n faCommentSlash: faCommentSlash,\n faComments: faComments,\n faCommentsDollar: faCommentsDollar,\n faCompactDisc: faCompactDisc,\n faCompass: faCompass,\n faCompress: faCompress,\n faCompressAlt: faCompressAlt,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faConciergeBell: faConciergeBell,\n faCookie: faCookie,\n faCookieBite: faCookieBite,\n faCopy: faCopy,\n faCopyright: faCopyright,\n faCouch: faCouch,\n faCreditCard: faCreditCard,\n faCrop: faCrop,\n faCropAlt: faCropAlt,\n faCross: faCross,\n faCrosshairs: faCrosshairs,\n faCrow: faCrow,\n faCrown: faCrown,\n faCrutch: faCrutch,\n faCube: faCube,\n faCubes: faCubes,\n faCut: faCut,\n faDatabase: faDatabase,\n faDeaf: faDeaf,\n faDemocrat: faDemocrat,\n faDesktop: faDesktop,\n faDharmachakra: faDharmachakra,\n faDiagnoses: faDiagnoses,\n faDice: faDice,\n faDiceD20: faDiceD20,\n faDiceD6: faDiceD6,\n faDiceFive: faDiceFive,\n faDiceFour: faDiceFour,\n faDiceOne: faDiceOne,\n faDiceSix: faDiceSix,\n faDiceThree: faDiceThree,\n faDiceTwo: faDiceTwo,\n faDigitalTachograph: faDigitalTachograph,\n faDirections: faDirections,\n faDisease: faDisease,\n faDivide: faDivide,\n faDizzy: faDizzy,\n faDna: faDna,\n faDog: faDog,\n faDollarSign: faDollarSign,\n faDolly: faDolly,\n faDollyFlatbed: faDollyFlatbed,\n faDonate: faDonate,\n faDoorClosed: faDoorClosed,\n faDoorOpen: faDoorOpen,\n faDotCircle: faDotCircle,\n faDove: faDove,\n faDownload: faDownload,\n faDraftingCompass: faDraftingCompass,\n faDragon: faDragon,\n faDrawPolygon: faDrawPolygon,\n faDrum: faDrum,\n faDrumSteelpan: faDrumSteelpan,\n faDrumstickBite: faDrumstickBite,\n faDumbbell: faDumbbell,\n faDumpster: faDumpster,\n faDumpsterFire: faDumpsterFire,\n faDungeon: faDungeon,\n faEdit: faEdit,\n faEgg: faEgg,\n faEject: faEject,\n faEllipsisH: faEllipsisH,\n faEllipsisV: faEllipsisV,\n faEnvelope: faEnvelope,\n faEnvelopeOpen: faEnvelopeOpen,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faEnvelopeSquare: faEnvelopeSquare,\n faEquals: faEquals,\n faEraser: faEraser,\n faEthernet: faEthernet,\n faEuroSign: faEuroSign,\n faExchangeAlt: faExchangeAlt,\n faExclamation: faExclamation,\n faExclamationCircle: faExclamationCircle,\n faExclamationTriangle: faExclamationTriangle,\n faExpand: faExpand,\n faExpandAlt: faExpandAlt,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faExternalLinkAlt: faExternalLinkAlt,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faEye: faEye,\n faEyeDropper: faEyeDropper,\n faEyeSlash: faEyeSlash,\n faFan: faFan,\n faFastBackward: faFastBackward,\n faFastForward: faFastForward,\n faFaucet: faFaucet,\n faFax: faFax,\n faFeather: faFeather,\n faFeatherAlt: faFeatherAlt,\n faFemale: faFemale,\n faFighterJet: faFighterJet,\n faFile: faFile,\n faFileAlt: faFileAlt,\n faFileArchive: faFileArchive,\n faFileAudio: faFileAudio,\n faFileCode: faFileCode,\n faFileContract: faFileContract,\n faFileCsv: faFileCsv,\n faFileDownload: faFileDownload,\n faFileExcel: faFileExcel,\n faFileExport: faFileExport,\n faFileImage: faFileImage,\n faFileImport: faFileImport,\n faFileInvoice: faFileInvoice,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faFileMedical: faFileMedical,\n faFileMedicalAlt: faFileMedicalAlt,\n faFilePdf: faFilePdf,\n faFilePowerpoint: faFilePowerpoint,\n faFilePrescription: faFilePrescription,\n faFileSignature: faFileSignature,\n faFileUpload: faFileUpload,\n faFileVideo: faFileVideo,\n faFileWord: faFileWord,\n faFill: faFill,\n faFillDrip: faFillDrip,\n faFilm: faFilm,\n faFilter: faFilter,\n faFingerprint: faFingerprint,\n faFire: faFire,\n faFireAlt: faFireAlt,\n faFireExtinguisher: faFireExtinguisher,\n faFirstAid: faFirstAid,\n faFish: faFish,\n faFistRaised: faFistRaised,\n faFlag: faFlag,\n faFlagCheckered: faFlagCheckered,\n faFlagUsa: faFlagUsa,\n faFlask: faFlask,\n faFlushed: faFlushed,\n faFolder: faFolder,\n faFolderMinus: faFolderMinus,\n faFolderOpen: faFolderOpen,\n faFolderPlus: faFolderPlus,\n faFont: faFont,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faFootballBall: faFootballBall,\n faForward: faForward,\n faFrog: faFrog,\n faFrown: faFrown,\n faFrownOpen: faFrownOpen,\n faFunnelDollar: faFunnelDollar,\n faFutbol: faFutbol,\n faGamepad: faGamepad,\n faGasPump: faGasPump,\n faGavel: faGavel,\n faGem: faGem,\n faGenderless: faGenderless,\n faGhost: faGhost,\n faGift: faGift,\n faGifts: faGifts,\n faGlassCheers: faGlassCheers,\n faGlassMartini: faGlassMartini,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faGlassWhiskey: faGlassWhiskey,\n faGlasses: faGlasses,\n faGlobe: faGlobe,\n faGlobeAfrica: faGlobeAfrica,\n faGlobeAmericas: faGlobeAmericas,\n faGlobeAsia: faGlobeAsia,\n faGlobeEurope: faGlobeEurope,\n faGolfBall: faGolfBall,\n faGopuram: faGopuram,\n faGraduationCap: faGraduationCap,\n faGreaterThan: faGreaterThan,\n faGreaterThanEqual: faGreaterThanEqual,\n faGrimace: faGrimace,\n faGrin: faGrin,\n faGrinAlt: faGrinAlt,\n faGrinBeam: faGrinBeam,\n faGrinBeamSweat: faGrinBeamSweat,\n faGrinHearts: faGrinHearts,\n faGrinSquint: faGrinSquint,\n faGrinSquintTears: faGrinSquintTears,\n faGrinStars: faGrinStars,\n faGrinTears: faGrinTears,\n faGrinTongue: faGrinTongue,\n faGrinTongueSquint: faGrinTongueSquint,\n faGrinTongueWink: faGrinTongueWink,\n faGrinWink: faGrinWink,\n faGripHorizontal: faGripHorizontal,\n faGripLines: faGripLines,\n faGripLinesVertical: faGripLinesVertical,\n faGripVertical: faGripVertical,\n faGuitar: faGuitar,\n faHSquare: faHSquare,\n faHamburger: faHamburger,\n faHammer: faHammer,\n faHamsa: faHamsa,\n faHandHolding: faHandHolding,\n faHandHoldingHeart: faHandHoldingHeart,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandHoldingUsd: faHandHoldingUsd,\n faHandHoldingWater: faHandHoldingWater,\n faHandLizard: faHandLizard,\n faHandMiddleFinger: faHandMiddleFinger,\n faHandPaper: faHandPaper,\n faHandPeace: faHandPeace,\n faHandPointDown: faHandPointDown,\n faHandPointLeft: faHandPointLeft,\n faHandPointRight: faHandPointRight,\n faHandPointUp: faHandPointUp,\n faHandPointer: faHandPointer,\n faHandRock: faHandRock,\n faHandScissors: faHandScissors,\n faHandSparkles: faHandSparkles,\n faHandSpock: faHandSpock,\n faHands: faHands,\n faHandsHelping: faHandsHelping,\n faHandsWash: faHandsWash,\n faHandshake: faHandshake,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHanukiah: faHanukiah,\n faHardHat: faHardHat,\n faHashtag: faHashtag,\n faHatCowboy: faHatCowboy,\n faHatCowboySide: faHatCowboySide,\n faHatWizard: faHatWizard,\n faHdd: faHdd,\n faHeadSideCough: faHeadSideCough,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faHeadSideMask: faHeadSideMask,\n faHeadSideVirus: faHeadSideVirus,\n faHeading: faHeading,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadset: faHeadset,\n faHeart: faHeart,\n faHeartBroken: faHeartBroken,\n faHeartbeat: faHeartbeat,\n faHelicopter: faHelicopter,\n faHighlighter: faHighlighter,\n faHiking: faHiking,\n faHippo: faHippo,\n faHistory: faHistory,\n faHockeyPuck: faHockeyPuck,\n faHollyBerry: faHollyBerry,\n faHome: faHome,\n faHorse: faHorse,\n faHorseHead: faHorseHead,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalSymbol: faHospitalSymbol,\n faHospitalUser: faHospitalUser,\n faHotTub: faHotTub,\n faHotdog: faHotdog,\n faHotel: faHotel,\n faHourglass: faHourglass,\n faHourglassEnd: faHourglassEnd,\n faHourglassHalf: faHourglassHalf,\n faHourglassStart: faHourglassStart,\n faHouseDamage: faHouseDamage,\n faHouseUser: faHouseUser,\n faHryvnia: faHryvnia,\n faICursor: faICursor,\n faIceCream: faIceCream,\n faIcicles: faIcicles,\n faIcons: faIcons,\n faIdBadge: faIdBadge,\n faIdCard: faIdCard,\n faIdCardAlt: faIdCardAlt,\n faIgloo: faIgloo,\n faImage: faImage,\n faImages: faImages,\n faInbox: faInbox,\n faIndent: faIndent,\n faIndustry: faIndustry,\n faInfinity: faInfinity,\n faInfo: faInfo,\n faInfoCircle: faInfoCircle,\n faItalic: faItalic,\n faJedi: faJedi,\n faJoint: faJoint,\n faJournalWhills: faJournalWhills,\n faKaaba: faKaaba,\n faKey: faKey,\n faKeyboard: faKeyboard,\n faKhanda: faKhanda,\n faKiss: faKiss,\n faKissBeam: faKissBeam,\n faKissWinkHeart: faKissWinkHeart,\n faKiwiBird: faKiwiBird,\n faLandmark: faLandmark,\n faLanguage: faLanguage,\n faLaptop: faLaptop,\n faLaptopCode: faLaptopCode,\n faLaptopHouse: faLaptopHouse,\n faLaptopMedical: faLaptopMedical,\n faLaugh: faLaugh,\n faLaughBeam: faLaughBeam,\n faLaughSquint: faLaughSquint,\n faLaughWink: faLaughWink,\n faLayerGroup: faLayerGroup,\n faLeaf: faLeaf,\n faLemon: faLemon,\n faLessThan: faLessThan,\n faLessThanEqual: faLessThanEqual,\n faLevelDownAlt: faLevelDownAlt,\n faLevelUpAlt: faLevelUpAlt,\n faLifeRing: faLifeRing,\n faLightbulb: faLightbulb,\n faLink: faLink,\n faLiraSign: faLiraSign,\n faList: faList,\n faListAlt: faListAlt,\n faListOl: faListOl,\n faListUl: faListUl,\n faLocationArrow: faLocationArrow,\n faLock: faLock,\n faLockOpen: faLockOpen,\n faLongArrowAltDown: faLongArrowAltDown,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLongArrowAltRight: faLongArrowAltRight,\n faLongArrowAltUp: faLongArrowAltUp,\n faLowVision: faLowVision,\n faLuggageCart: faLuggageCart,\n faLungs: faLungs,\n faLungsVirus: faLungsVirus,\n faMagic: faMagic,\n faMagnet: faMagnet,\n faMailBulk: faMailBulk,\n faMale: faMale,\n faMap: faMap,\n faMapMarked: faMapMarked,\n faMapMarkedAlt: faMapMarkedAlt,\n faMapMarker: faMapMarker,\n faMapMarkerAlt: faMapMarkerAlt,\n faMapPin: faMapPin,\n faMapSigns: faMapSigns,\n faMarker: faMarker,\n faMars: faMars,\n faMarsDouble: faMarsDouble,\n faMarsStroke: faMarsStroke,\n faMarsStrokeH: faMarsStrokeH,\n faMarsStrokeV: faMarsStrokeV,\n faMask: faMask,\n faMedal: faMedal,\n faMedkit: faMedkit,\n faMeh: faMeh,\n faMehBlank: faMehBlank,\n faMehRollingEyes: faMehRollingEyes,\n faMemory: faMemory,\n faMenorah: faMenorah,\n faMercury: faMercury,\n faMeteor: faMeteor,\n faMicrochip: faMicrochip,\n faMicrophone: faMicrophone,\n faMicrophoneAlt: faMicrophoneAlt,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faMicrophoneSlash: faMicrophoneSlash,\n faMicroscope: faMicroscope,\n faMinus: faMinus,\n faMinusCircle: faMinusCircle,\n faMinusSquare: faMinusSquare,\n faMitten: faMitten,\n faMobile: faMobile,\n faMobileAlt: faMobileAlt,\n faMoneyBill: faMoneyBill,\n faMoneyBillAlt: faMoneyBillAlt,\n faMoneyBillWave: faMoneyBillWave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faMoneyCheck: faMoneyCheck,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faMonument: faMonument,\n faMoon: faMoon,\n faMortarPestle: faMortarPestle,\n faMosque: faMosque,\n faMotorcycle: faMotorcycle,\n faMountain: faMountain,\n faMouse: faMouse,\n faMousePointer: faMousePointer,\n faMugHot: faMugHot,\n faMusic: faMusic,\n faNetworkWired: faNetworkWired,\n faNeuter: faNeuter,\n faNewspaper: faNewspaper,\n faNotEqual: faNotEqual,\n faNotesMedical: faNotesMedical,\n faObjectGroup: faObjectGroup,\n faObjectUngroup: faObjectUngroup,\n faOilCan: faOilCan,\n faOm: faOm,\n faOtter: faOtter,\n faOutdent: faOutdent,\n faPager: faPager,\n faPaintBrush: faPaintBrush,\n faPaintRoller: faPaintRoller,\n faPalette: faPalette,\n faPallet: faPallet,\n faPaperPlane: faPaperPlane,\n faPaperclip: faPaperclip,\n faParachuteBox: faParachuteBox,\n faParagraph: faParagraph,\n faParking: faParking,\n faPassport: faPassport,\n faPastafarianism: faPastafarianism,\n faPaste: faPaste,\n faPause: faPause,\n faPauseCircle: faPauseCircle,\n faPaw: faPaw,\n faPeace: faPeace,\n faPen: faPen,\n faPenAlt: faPenAlt,\n faPenFancy: faPenFancy,\n faPenNib: faPenNib,\n faPenSquare: faPenSquare,\n faPencilAlt: faPencilAlt,\n faPencilRuler: faPencilRuler,\n faPeopleArrows: faPeopleArrows,\n faPeopleCarry: faPeopleCarry,\n faPepperHot: faPepperHot,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faPersonBooth: faPersonBooth,\n faPhone: faPhone,\n faPhoneAlt: faPhoneAlt,\n faPhoneSlash: faPhoneSlash,\n faPhoneSquare: faPhoneSquare,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faPhoneVolume: faPhoneVolume,\n faPhotoVideo: faPhotoVideo,\n faPiggyBank: faPiggyBank,\n faPills: faPills,\n faPizzaSlice: faPizzaSlice,\n faPlaceOfWorship: faPlaceOfWorship,\n faPlane: faPlane,\n faPlaneArrival: faPlaneArrival,\n faPlaneDeparture: faPlaneDeparture,\n faPlaneSlash: faPlaneSlash,\n faPlay: faPlay,\n faPlayCircle: faPlayCircle,\n faPlug: faPlug,\n faPlus: faPlus,\n faPlusCircle: faPlusCircle,\n faPlusSquare: faPlusSquare,\n faPodcast: faPodcast,\n faPoll: faPoll,\n faPollH: faPollH,\n faPoo: faPoo,\n faPooStorm: faPooStorm,\n faPoop: faPoop,\n faPortrait: faPortrait,\n faPoundSign: faPoundSign,\n faPowerOff: faPowerOff,\n faPray: faPray,\n faPrayingHands: faPrayingHands,\n faPrescription: faPrescription,\n faPrescriptionBottle: faPrescriptionBottle,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faPrint: faPrint,\n faProcedures: faProcedures,\n faProjectDiagram: faProjectDiagram,\n faPumpMedical: faPumpMedical,\n faPumpSoap: faPumpSoap,\n faPuzzlePiece: faPuzzlePiece,\n faQrcode: faQrcode,\n faQuestion: faQuestion,\n faQuestionCircle: faQuestionCircle,\n faQuidditch: faQuidditch,\n faQuoteLeft: faQuoteLeft,\n faQuoteRight: faQuoteRight,\n faQuran: faQuran,\n faRadiation: faRadiation,\n faRadiationAlt: faRadiationAlt,\n faRainbow: faRainbow,\n faRandom: faRandom,\n faReceipt: faReceipt,\n faRecordVinyl: faRecordVinyl,\n faRecycle: faRecycle,\n faRedo: faRedo,\n faRedoAlt: faRedoAlt,\n faRegistered: faRegistered,\n faRemoveFormat: faRemoveFormat,\n faReply: faReply,\n faReplyAll: faReplyAll,\n faRepublican: faRepublican,\n faRestroom: faRestroom,\n faRetweet: faRetweet,\n faRibbon: faRibbon,\n faRing: faRing,\n faRoad: faRoad,\n faRobot: faRobot,\n faRocket: faRocket,\n faRoute: faRoute,\n faRss: faRss,\n faRssSquare: faRssSquare,\n faRubleSign: faRubleSign,\n faRuler: faRuler,\n faRulerCombined: faRulerCombined,\n faRulerHorizontal: faRulerHorizontal,\n faRulerVertical: faRulerVertical,\n faRunning: faRunning,\n faRupeeSign: faRupeeSign,\n faSadCry: faSadCry,\n faSadTear: faSadTear,\n faSatellite: faSatellite,\n faSatelliteDish: faSatelliteDish,\n faSave: faSave,\n faSchool: faSchool,\n faScrewdriver: faScrewdriver,\n faScroll: faScroll,\n faSdCard: faSdCard,\n faSearch: faSearch,\n faSearchDollar: faSearchDollar,\n faSearchLocation: faSearchLocation,\n faSearchMinus: faSearchMinus,\n faSearchPlus: faSearchPlus,\n faSeedling: faSeedling,\n faServer: faServer,\n faShapes: faShapes,\n faShare: faShare,\n faShareAlt: faShareAlt,\n faShareAltSquare: faShareAltSquare,\n faShareSquare: faShareSquare,\n faShekelSign: faShekelSign,\n faShieldAlt: faShieldAlt,\n faShieldVirus: faShieldVirus,\n faShip: faShip,\n faShippingFast: faShippingFast,\n faShoePrints: faShoePrints,\n faShoppingBag: faShoppingBag,\n faShoppingBasket: faShoppingBasket,\n faShoppingCart: faShoppingCart,\n faShower: faShower,\n faShuttleVan: faShuttleVan,\n faSign: faSign,\n faSignInAlt: faSignInAlt,\n faSignLanguage: faSignLanguage,\n faSignOutAlt: faSignOutAlt,\n faSignal: faSignal,\n faSignature: faSignature,\n faSimCard: faSimCard,\n faSink: faSink,\n faSitemap: faSitemap,\n faSkating: faSkating,\n faSkiing: faSkiing,\n faSkiingNordic: faSkiingNordic,\n faSkull: faSkull,\n faSkullCrossbones: faSkullCrossbones,\n faSlash: faSlash,\n faSleigh: faSleigh,\n faSlidersH: faSlidersH,\n faSmile: faSmile,\n faSmileBeam: faSmileBeam,\n faSmileWink: faSmileWink,\n faSmog: faSmog,\n faSmoking: faSmoking,\n faSmokingBan: faSmokingBan,\n faSms: faSms,\n faSnowboarding: faSnowboarding,\n faSnowflake: faSnowflake,\n faSnowman: faSnowman,\n faSnowplow: faSnowplow,\n faSoap: faSoap,\n faSocks: faSocks,\n faSolarPanel: faSolarPanel,\n faSort: faSort,\n faSortAlphaDown: faSortAlphaDown,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faSortAlphaUp: faSortAlphaUp,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faSortAmountDown: faSortAmountDown,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faSortAmountUp: faSortAmountUp,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faSortDown: faSortDown,\n faSortNumericDown: faSortNumericDown,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faSortNumericUp: faSortNumericUp,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faSortUp: faSortUp,\n faSpa: faSpa,\n faSpaceShuttle: faSpaceShuttle,\n faSpellCheck: faSpellCheck,\n faSpider: faSpider,\n faSpinner: faSpinner,\n faSplotch: faSplotch,\n faSprayCan: faSprayCan,\n faSquare: faSquare,\n faSquareFull: faSquareFull,\n faSquareRootAlt: faSquareRootAlt,\n faStamp: faStamp,\n faStar: faStar,\n faStarAndCrescent: faStarAndCrescent,\n faStarHalf: faStarHalf,\n faStarHalfAlt: faStarHalfAlt,\n faStarOfDavid: faStarOfDavid,\n faStarOfLife: faStarOfLife,\n faStepBackward: faStepBackward,\n faStepForward: faStepForward,\n faStethoscope: faStethoscope,\n faStickyNote: faStickyNote,\n faStop: faStop,\n faStopCircle: faStopCircle,\n faStopwatch: faStopwatch,\n faStopwatch20: faStopwatch20,\n faStore: faStore,\n faStoreAlt: faStoreAlt,\n faStoreAltSlash: faStoreAltSlash,\n faStoreSlash: faStoreSlash,\n faStream: faStream,\n faStreetView: faStreetView,\n faStrikethrough: faStrikethrough,\n faStroopwafel: faStroopwafel,\n faSubscript: faSubscript,\n faSubway: faSubway,\n faSuitcase: faSuitcase,\n faSuitcaseRolling: faSuitcaseRolling,\n faSun: faSun,\n faSuperscript: faSuperscript,\n faSurprise: faSurprise,\n faSwatchbook: faSwatchbook,\n faSwimmer: faSwimmer,\n faSwimmingPool: faSwimmingPool,\n faSynagogue: faSynagogue,\n faSync: faSync,\n faSyncAlt: faSyncAlt,\n faSyringe: faSyringe,\n faTable: faTable,\n faTableTennis: faTableTennis,\n faTablet: faTablet,\n faTabletAlt: faTabletAlt,\n faTablets: faTablets,\n faTachometerAlt: faTachometerAlt,\n faTag: faTag,\n faTags: faTags,\n faTape: faTape,\n faTasks: faTasks,\n faTaxi: faTaxi,\n faTeeth: faTeeth,\n faTeethOpen: faTeethOpen,\n faTemperatureHigh: faTemperatureHigh,\n faTemperatureLow: faTemperatureLow,\n faTenge: faTenge,\n faTerminal: faTerminal,\n faTextHeight: faTextHeight,\n faTextWidth: faTextWidth,\n faTh: faTh,\n faThLarge: faThLarge,\n faThList: faThList,\n faTheaterMasks: faTheaterMasks,\n faThermometer: faThermometer,\n faThermometerEmpty: faThermometerEmpty,\n faThermometerFull: faThermometerFull,\n faThermometerHalf: faThermometerHalf,\n faThermometerQuarter: faThermometerQuarter,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faThumbsDown: faThumbsDown,\n faThumbsUp: faThumbsUp,\n faThumbtack: faThumbtack,\n faTicketAlt: faTicketAlt,\n faTimes: faTimes,\n faTimesCircle: faTimesCircle,\n faTint: faTint,\n faTintSlash: faTintSlash,\n faTired: faTired,\n faToggleOff: faToggleOff,\n faToggleOn: faToggleOn,\n faToilet: faToilet,\n faToiletPaper: faToiletPaper,\n faToiletPaperSlash: faToiletPaperSlash,\n faToolbox: faToolbox,\n faTools: faTools,\n faTooth: faTooth,\n faTorah: faTorah,\n faToriiGate: faToriiGate,\n faTractor: faTractor,\n faTrademark: faTrademark,\n faTrafficLight: faTrafficLight,\n faTrailer: faTrailer,\n faTrain: faTrain,\n faTram: faTram,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faTrash: faTrash,\n faTrashAlt: faTrashAlt,\n faTrashRestore: faTrashRestore,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faTree: faTree,\n faTrophy: faTrophy,\n faTruck: faTruck,\n faTruckLoading: faTruckLoading,\n faTruckMonster: faTruckMonster,\n faTruckMoving: faTruckMoving,\n faTruckPickup: faTruckPickup,\n faTshirt: faTshirt,\n faTty: faTty,\n faTv: faTv,\n faUmbrella: faUmbrella,\n faUmbrellaBeach: faUmbrellaBeach,\n faUnderline: faUnderline,\n faUndo: faUndo,\n faUndoAlt: faUndoAlt,\n faUniversalAccess: faUniversalAccess,\n faUniversity: faUniversity,\n faUnlink: faUnlink,\n faUnlock: faUnlock,\n faUnlockAlt: faUnlockAlt,\n faUpload: faUpload,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserAltSlash: faUserAltSlash,\n faUserAstronaut: faUserAstronaut,\n faUserCheck: faUserCheck,\n faUserCircle: faUserCircle,\n faUserClock: faUserClock,\n faUserCog: faUserCog,\n faUserEdit: faUserEdit,\n faUserFriends: faUserFriends,\n faUserGraduate: faUserGraduate,\n faUserInjured: faUserInjured,\n faUserLock: faUserLock,\n faUserMd: faUserMd,\n faUserMinus: faUserMinus,\n faUserNinja: faUserNinja,\n faUserNurse: faUserNurse,\n faUserPlus: faUserPlus,\n faUserSecret: faUserSecret,\n faUserShield: faUserShield,\n faUserSlash: faUserSlash,\n faUserTag: faUserTag,\n faUserTie: faUserTie,\n faUserTimes: faUserTimes,\n faUsers: faUsers,\n faUsersCog: faUsersCog,\n faUsersSlash: faUsersSlash,\n faUtensilSpoon: faUtensilSpoon,\n faUtensils: faUtensils,\n faVectorSquare: faVectorSquare,\n faVenus: faVenus,\n faVenusDouble: faVenusDouble,\n faVenusMars: faVenusMars,\n faVest: faVest,\n faVestPatches: faVestPatches,\n faVial: faVial,\n faVials: faVials,\n faVideo: faVideo,\n faVideoSlash: faVideoSlash,\n faVihara: faVihara,\n faVirus: faVirus,\n faVirusSlash: faVirusSlash,\n faViruses: faViruses,\n faVoicemail: faVoicemail,\n faVolleyballBall: faVolleyballBall,\n faVolumeDown: faVolumeDown,\n faVolumeMute: faVolumeMute,\n faVolumeOff: faVolumeOff,\n faVolumeUp: faVolumeUp,\n faVoteYea: faVoteYea,\n faVrCardboard: faVrCardboard,\n faWalking: faWalking,\n faWallet: faWallet,\n faWarehouse: faWarehouse,\n faWater: faWater,\n faWaveSquare: faWaveSquare,\n faWeight: faWeight,\n faWeightHanging: faWeightHanging,\n faWheelchair: faWheelchair,\n faWifi: faWifi,\n faWind: faWind,\n faWindowClose: faWindowClose,\n faWindowMaximize: faWindowMaximize,\n faWindowMinimize: faWindowMinimize,\n faWindowRestore: faWindowRestore,\n faWineBottle: faWineBottle,\n faWineGlass: faWineGlass,\n faWineGlassAlt: faWineGlassAlt,\n faWonSign: faWonSign,\n faWrench: faWrench,\n faXRay: faXRay,\n faYenSign: faYenSign,\n faYinYang: faYinYang\n};\n\nexport { _iconsCache as fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBacteria, faBacterium, faBahai, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxTissue, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaravan, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressAlt, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDisease, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandAlt, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFaucet, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingMedical, faHandHoldingUsd, faHandHoldingWater, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSparkles, faHandSpock, faHands, faHandsHelping, faHandsWash, faHandshake, faHandshakeAltSlash, faHandshakeSlash, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHdd, faHeadSideCough, faHeadSideCoughSlash, faHeadSideMask, faHeadSideVirus, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHospitalUser, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHouseUser, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopHouse, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faLungs, faLungsVirus, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleArrows, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlaneSlash, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPumpMedical, faPumpSoap, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShieldVirus, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSink, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSoap, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStopwatch20, faStore, faStoreAlt, faStoreAltSlash, faStoreSlash, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToiletPaperSlash, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrailer, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUsersSlash, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVest, faVestPatches, faVial, faVials, faVideo, faVideoSlash, faVihara, faVirus, faVirusSlash, faViruses, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang };\n","import {\n WithModuleProps,\n LinkedVisualConsoleProps,\n AnyObject,\n WithAgentProps\n} from \"../lib/types\";\nimport { modulePropsDecoder, linkedVCPropsDecoder, t } from \"../lib\";\nimport Item, { itemBasePropsDecoder, ItemType, ItemProps } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport { faTrashAlt, faPlusCircle } from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ColorCloudProps = {\n type: ItemType.COLOR_CLOUD;\n color: string;\n defaultColor: string;\n colorRanges: {\n color: string;\n fromValue: number;\n toValue: number;\n }[];\n // TODO: Add the rest of the color cloud values?\n} & ItemProps &\n WithAgentProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the static graph props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function colorCloudPropsDecoder(\n data: AnyObject\n): ColorCloudProps | never {\n // TODO: Validate the color.\n if (typeof data.color !== \"string\" || data.color.length === 0) {\n throw new TypeError(\"invalid color.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.COLOR_CLOUD,\n color: data.color,\n defaultColor: data.defaultColor,\n colorRanges: data.colorRanges,\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\n/**\n * Class to add item to the Color cloud item form\n * This item consists of a label and a color type input color.\n * Element default color is stored in the color property\n */\nclass ColorInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group\";\n\n const colorLabel = document.createElement(\"label\");\n colorLabel.textContent = t(\"Default color\");\n\n generalDiv.appendChild(colorLabel);\n\n const ColorInput = document.createElement(\"input\");\n ColorInput.type = \"color\";\n ColorInput.required = true;\n\n ColorInput.value = `${this.currentData.defaultColor ||\n this.initialData.defaultColor ||\n \"#000000\"}`;\n\n ColorInput.addEventListener(\"change\", e => {\n this.updateData({\n defaultColor: (e.target as HTMLInputElement).value\n });\n });\n\n generalDiv.appendChild(ColorInput);\n\n return generalDiv;\n }\n}\n\ntype ColorRanges = ColorCloudProps[\"colorRanges\"];\ntype ColorRange = ColorRanges[0];\n\nclass RangesInputGroup extends InputGroup> {\n protected createContent(): HTMLElement | HTMLElement[] {\n const generalDiv = document.createElement(\"div\");\n generalDiv.className = \"div-input-group div-ranges-input-group\";\n\n const rangesLabel = this.createLabel(\"Ranges\");\n\n generalDiv.appendChild(rangesLabel);\n\n const rangesControlsContainer = document.createElement(\"div\");\n const createdRangesContainer = document.createElement(\"div\");\n\n generalDiv.appendChild(createdRangesContainer);\n generalDiv.appendChild(rangesControlsContainer);\n\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n\n let buildRanges: (ranges: ColorRanges) => void;\n\n const handleRangeUpdatePartial = (index: number) => (\n range: ColorRange\n ): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n this.updateData({\n colorRanges: [\n ...colorRanges.slice(0, index),\n range,\n ...colorRanges.slice(index + 1)\n ]\n });\n };\n\n const handleDelete = (index: number) => () => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [\n ...colorRanges.slice(0, index),\n ...colorRanges.slice(index + 1)\n ];\n\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n const handleCreate = (range: ColorRange): void => {\n const colorRanges =\n this.currentData.colorRanges || this.initialData.colorRanges || [];\n const newRanges = [...colorRanges, range];\n this.updateData({ colorRanges: newRanges });\n buildRanges(newRanges);\n };\n\n buildRanges = ranges => {\n createdRangesContainer.innerHTML = \"\";\n ranges.forEach((colorRange, index) =>\n createdRangesContainer.appendChild(\n this.rangeContainer(\n colorRange,\n handleRangeUpdatePartial(index),\n handleDelete(index)\n )\n )\n );\n };\n\n buildRanges(colorRanges);\n\n rangesControlsContainer.appendChild(\n this.initialRangeContainer(handleCreate)\n );\n\n return generalDiv;\n }\n\n private initialRangeContainer(onCreate: (range: ColorRange) => void) {\n // TODO: Document\n const initialState = { color: \"#ffffff\" };\n\n let state: Partial = { ...initialState };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n };\n\n // User defined type guard.\n // Docs: https://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards\n const isValid = (range: Partial): range is ColorRange =>\n typeof range.color !== \"undefined\" &&\n typeof range.toValue !== \"undefined\" &&\n typeof range.fromValue !== \"undefined\";\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(null, handleFromValue);\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(null, handleToValue);\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n initialState.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const createBtn = document.createElement(\"a\");\n createBtn.appendChild(\n fontAwesomeIcon(faPlusCircle, t(\"Create color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n\n const handleCreate = () => {\n if (isValid(state)) onCreate(state);\n state = initialState;\n rangesInputFromValue.value = `${state.fromValue || \"\"}`;\n rangesInputToValue.value = `${state.toValue || \"\"}`;\n rangesInputColor.value = `${state.color}`;\n };\n\n createBtn.addEventListener(\"click\", handleCreate);\n\n rangesContainer.appendChild(createBtn);\n\n return rangesContainer;\n }\n\n private rangeContainer(\n colorRange: ColorRange,\n onUpdate: (range: ColorRange) => void,\n onDelete: () => void\n ): HTMLDivElement {\n // TODO: Document\n const state = { ...colorRange };\n\n const handleFromValue = (value: ColorRange[\"fromValue\"]): void => {\n state.fromValue = value;\n onUpdate({ ...state });\n };\n const handleToValue = (value: ColorRange[\"toValue\"]): void => {\n state.toValue = value;\n onUpdate({ ...state });\n };\n const handleColor = (value: ColorRange[\"color\"]): void => {\n state.color = value;\n onUpdate({ ...state });\n };\n\n const rangesContainer = document.createElement(\"div\");\n\n // Div From value.\n const rangesContainerFromValue = document.createElement(\"div\");\n const rangesLabelFromValue = this.createLabel(\"From Value\");\n const rangesInputFromValue = this.createInputNumber(\n colorRange.fromValue,\n handleFromValue\n );\n rangesContainerFromValue.appendChild(rangesLabelFromValue);\n rangesContainerFromValue.appendChild(rangesInputFromValue);\n rangesContainer.appendChild(rangesContainerFromValue);\n\n // Div To Value.\n const rangesDivContainerToValue = document.createElement(\"div\");\n const rangesLabelToValue = this.createLabel(\"To Value\");\n const rangesInputToValue = this.createInputNumber(\n colorRange.toValue,\n handleToValue\n );\n rangesContainerFromValue.appendChild(rangesLabelToValue);\n rangesContainerFromValue.appendChild(rangesInputToValue);\n rangesContainer.appendChild(rangesDivContainerToValue);\n\n // Div Color.\n const rangesDivContainerColor = document.createElement(\"div\");\n const rangesLabelColor = this.createLabel(\"Color\");\n const rangesInputColor = this.createInputColor(\n colorRange.color,\n handleColor\n );\n rangesContainerFromValue.appendChild(rangesLabelColor);\n rangesContainerFromValue.appendChild(rangesInputColor);\n rangesContainer.appendChild(rangesDivContainerColor);\n\n // Button delete.\n const deleteBtn = document.createElement(\"a\");\n deleteBtn.appendChild(\n fontAwesomeIcon(faTrashAlt, t(\"Delete color range\"), {\n size: \"small\",\n color: \"#565656\"\n })\n );\n deleteBtn.addEventListener(\"click\", onDelete);\n\n rangesContainer.appendChild(deleteBtn);\n\n return rangesContainer;\n }\n\n private createLabel(text: string): HTMLLabelElement {\n const label = document.createElement(\"label\");\n label.textContent = t(text);\n return label;\n }\n\n private createInputNumber(\n value: number | null,\n onUpdate: (value: number) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"number\";\n if (value !== null) input.value = `${value}`;\n input.addEventListener(\"change\", e => {\n const value = parseInt((e.target as HTMLInputElement).value);\n if (!isNaN(value)) onUpdate(value);\n });\n\n return input;\n }\n\n private createInputColor(\n value: string | null,\n onUpdate: (value: string) => void\n ): HTMLInputElement {\n const input = document.createElement(\"input\");\n input.type = \"color\";\n if (value !== null) input.value = value;\n input.addEventListener(\"change\", e =>\n onUpdate((e.target as HTMLInputElement).value)\n );\n\n return input;\n }\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class ColorCloud extends Item {\n protected createDomElement(): HTMLElement {\n const container: HTMLDivElement = document.createElement(\"div\");\n container.className = \"color-cloud\";\n\n // Add the SVG.\n container.append(this.createSvgElement());\n\n return container;\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width);\n }\n\n public createSvgElement(): SVGSVGElement {\n const gradientId = `grad_${this.props.id}`;\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Defs.\n const defs = document.createElementNS(svgNS, \"defs\");\n // Radial gradient.\n const radialGradient = document.createElementNS(svgNS, \"radialGradient\");\n radialGradient.setAttribute(\"id\", gradientId);\n radialGradient.setAttribute(\"cx\", \"50%\");\n radialGradient.setAttribute(\"cy\", \"50%\");\n radialGradient.setAttribute(\"r\", \"50%\");\n radialGradient.setAttribute(\"fx\", \"50%\");\n radialGradient.setAttribute(\"fy\", \"50%\");\n // Stops.\n const stop0 = document.createElementNS(svgNS, \"stop\");\n stop0.setAttribute(\"offset\", \"0%\");\n stop0.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0.9`\n );\n const stop100 = document.createElementNS(svgNS, \"stop\");\n stop100.setAttribute(\"offset\", \"100%\");\n stop100.setAttribute(\n \"style\",\n `stop-color:${this.props.color};stop-opacity:0`\n );\n // Circle.\n const circle = document.createElementNS(svgNS, \"circle\");\n circle.setAttribute(\"fill\", `url(#${gradientId})`);\n circle.setAttribute(\"cx\", \"50%\");\n circle.setAttribute(\"cy\", \"50%\");\n circle.setAttribute(\"r\", \"50%\");\n\n // Append elements.\n radialGradient.append(stop0, stop100);\n defs.append(radialGradient);\n svg.append(defs, circle);\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n return svg;\n }\n\n /**\n * @override function to add or remove inputsGroups those that are not necessary.\n * Add to:\n * ColorInputGroup\n * RangesInputGroup\n */\n public getFormContainer(): FormContainer {\n return ColorCloud.getFormContainer(this.props);\n }\n\n public static getFormContainer(\n props: Partial\n ): FormContainer {\n const formContainer = super.getFormContainer(props);\n formContainer.removeInputGroup(\"label\");\n\n formContainer.addInputGroup(new ColorInputGroup(\"color-cloud\", props), 3);\n formContainer.addInputGroup(new RangesInputGroup(\"ranges-cloud\", props), 4);\n\n return formContainer;\n }\n}\n","import { AnyObject, Position, Size, ItemMeta } from \"../lib/types\";\nimport {\n parseIntOr,\n notEmptyStringOr,\n debounce,\n addMovementListener\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport TypedEvent, { Listener, Disposable } from \"../lib/TypedEvent\";\n\nexport interface LineProps extends ItemProps {\n // Overrided properties.\n type: number;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n startPosition: Position;\n endPosition: Position;\n lineWidth: number;\n color: string | null;\n viewportOffsetX: number;\n viewportOffsetY: number;\n labelEnd: string;\n labelStart: string;\n linkedEnd: number | null;\n linkedStart: number | null;\n labelEndWidth: number;\n labelEndHeight: number;\n labelStartWidth: number;\n labelStartHeight: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function linePropsDecoder(data: AnyObject): LineProps | never {\n const props: LineProps = {\n ...itemBasePropsDecoder({ ...data, width: 1, height: 1 }), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LINE_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Initialize Position & Size.\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // Custom properties.\n startPosition: {\n x: parseIntOr(data.startX, 0),\n y: parseIntOr(data.startY, 0)\n },\n endPosition: {\n x: parseIntOr(data.endX, 0),\n y: parseIntOr(data.endY, 0)\n },\n lineWidth: parseIntOr(data.lineWidth || data.borderWidth, 1),\n color: notEmptyStringOr(data.borderColor || data.color, null),\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n linkedEnd: data.linkedEnd,\n linkedStart: data.linkedStart,\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n\n /*\n * We need to enhance the props with the extracted size and position\n * of the box cause there are missing at the props update. A better\n * solution would be overriding the props setter to do it there, but\n * the language doesn't allow it while targetting ES5.\n * TODO: We need to figure out a more consistent solution.\n */\n\n return {\n ...props,\n // Enhance the props extracting the box size and position.\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...Line.extractBoxSizeAndPosition(props.startPosition, props.endPosition)\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface LineMovedEvent {\n item: Line;\n startPosition: LineProps[\"startPosition\"];\n endPosition: LineProps[\"endPosition\"];\n}\n\nexport default class Line extends Item {\n protected circleRadius = 8;\n // To control if the line movement is enabled.\n protected moveMode: boolean = false;\n // To control if the line is moving.\n protected isMoving: boolean = false;\n\n // Event manager for moved events.\n public readonly lineMovedEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n protected readonly lineMovedEventDisposables: Disposable[] = [];\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedStartPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const startPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeStartPositionMovement: Function | null = null;\n\n /**\n * Start the movement funtionality for the start position.\n * @param element Element to move inside its container.\n */\n protected initStartPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeStartPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n const startPosition = { x, y };\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n startPosition\n };\n\n // Run the end function.\n this.debouncedStartPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement fun\n */\n private stopStartPositionMovementListener(): void {\n if (this.removeStartPositionMovement) {\n this.removeStartPositionMovement();\n this.removeStartPositionMovement = null;\n }\n }\n\n // This function will only run the 2nd arg function after the time\n // of the first arg have passed after its last execution.\n protected debouncedEndPositionMovementSave = debounce(\n 500, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n // This property will store the function\n // to clean the movement listener.\n protected removeEndPositionMovement: Function | null = null;\n\n /**\n * End the movement funtionality for the end position.\n * @param element Element to move inside its container.\n */\n protected initEndPositionMovementListener(\n element: HTMLElement,\n container: HTMLElement\n ): void {\n this.removeEndPositionMovement = addMovementListener(\n element,\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n // Calculate the center of the circle.\n x += this.circleRadius - this.props.viewportOffsetX / 2;\n y += this.circleRadius - this.props.viewportOffsetY / 2;\n\n this.isMoving = true;\n this.props = {\n ...this.props,\n endPosition: { x, y }\n };\n\n // Run the end function.\n this.debouncedEndPositionMovementSave(x, y);\n },\n container\n );\n }\n /**\n * Stop the movement function.\n */\n private stopEndPositionMovementListener(): void {\n if (this.removeEndPositionMovement) {\n this.removeEndPositionMovement();\n this.removeEndPositionMovement = null;\n }\n }\n\n /**\n * @override\n */\n public constructor(props: LineProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props,\n ...Line.extractBoxSizeAndPosition(\n props.startPosition,\n props.endPosition\n )\n },\n {\n ...meta\n },\n true\n );\n\n this.moveMode = meta.editMode;\n this.init();\n\n super.resizeElement(\n Math.max(props.width, props.viewportOffsetX),\n Math.max(props.height, props.viewportOffsetY)\n );\n }\n\n /**\n * Classic and protected version of the setter of the `props` property.\n * Useful to override it from children classes.\n * @param newProps\n * @override Item.setProps\n */\n public setProps(newProps: LineProps) {\n super.setProps({\n ...newProps,\n ...Line.extractBoxSizeAndPosition(\n newProps.startPosition,\n newProps.endPosition\n )\n });\n }\n\n /**\n * Classic and protected version of the setter of the `meta` property.\n * Useful to override it from children classes.\n * @param newMetadata\n * @override Item.setMeta\n */\n public setMeta(newMetadata: ItemMeta) {\n this.moveMode = newMetadata.editMode;\n super.setMeta({\n ...newMetadata,\n lineMode: true\n });\n }\n\n /**\n * @override\n * To create the item's DOM representation.\n * @return Item.\n */\n protected createDomElement(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"line\";\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness,\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const line = document.createElementNS(svgNS, \"line\");\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n\n svg.append(line);\n element.append(svg);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n if (element.parentElement != null) {\n element.parentElement.style.cursor = \"default\";\n }\n\n let {\n x, // Box x\n y, // Box y\n width, // Box width\n height, // Box height\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color // Line color\n } = this.props;\n\n width = width + viewportOffsetX;\n height = height + viewportOffsetY;\n\n const x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n const svgs = element.getElementsByTagName(\"svg\");\n\n if (svgs.length > 0) {\n const svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n svg.setAttribute(\"width\", `${width + lineWidth}`);\n svg.setAttribute(\"height\", `${height + lineWidth}`);\n\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n\n if (lines.length > 0) {\n const line = lines.item(0);\n\n if (line != null) {\n line.setAttribute(\"x1\", `${x1}`);\n line.setAttribute(\"y1\", `${y1}`);\n line.setAttribute(\"x2\", `${x2}`);\n line.setAttribute(\"y2\", `${y2}`);\n line.setAttribute(\"stroke\", color || \"black\");\n line.setAttribute(\"stroke-width\", `${lineWidth}`);\n }\n }\n }\n }\n\n if (this.moveMode) {\n let startCircle: HTMLElement = document.createElement(\"div\");\n let endCircle: HTMLElement = document.createElement(\"div\");\n\n if (this.isMoving) {\n const circlesStart = element.getElementsByClassName(\n \"visual-console-item-line-circle-start\"\n );\n if (circlesStart.length > 0) {\n const circle = circlesStart.item(0) as HTMLElement;\n if (circle) startCircle = circle;\n }\n const circlesEnd = element.getElementsByClassName(\n \"visual-console-item-line-circle-end\"\n );\n if (circlesEnd.length > 0) {\n const circle = circlesEnd.item(0) as HTMLElement;\n if (circle) endCircle = circle;\n }\n }\n\n startCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-start\"\n );\n startCircle.style.width = `${this.circleRadius * 2}px`;\n startCircle.style.height = `${this.circleRadius * 2}px`;\n startCircle.style.borderRadius = \"50%\";\n startCircle.style.backgroundColor = `${color}`;\n startCircle.style.position = \"absolute\";\n startCircle.style.left = `${x1 - this.circleRadius}px`;\n startCircle.style.top = `${y1 - this.circleRadius}px`;\n startCircle.style.cursor = `move`;\n\n endCircle.classList.add(\n \"visual-console-item-line-circle\",\n \"visual-console-item-line-circle-end\"\n );\n endCircle.style.width = `${this.circleRadius * 2}px`;\n endCircle.style.height = `${this.circleRadius * 2}px`;\n endCircle.style.borderRadius = \"50%\";\n endCircle.style.backgroundColor = `${color}`;\n endCircle.style.position = \"absolute\";\n endCircle.style.left = `${x2 - this.circleRadius}px`;\n endCircle.style.top = `${y2 - this.circleRadius}px`;\n endCircle.style.cursor = `move`;\n\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n\n element.parentElement.appendChild(startCircle);\n element.parentElement.appendChild(endCircle);\n }\n\n // Init the movement listeners.\n this.initStartPositionMovementListener(\n startCircle,\n this.elementRef.parentElement as HTMLElement\n );\n this.initEndPositionMovementListener(\n endCircle,\n this.elementRef.parentElement as HTMLElement\n );\n } else if (!this.moveMode) {\n this.stopStartPositionMovementListener();\n // Remove circles.\n if (element.parentElement !== null) {\n const circles = element.parentElement.getElementsByClassName(\n \"visual-console-item-line-circle\"\n );\n\n while (circles.length > 0) {\n const circle = circles.item(0);\n if (circle) circle.remove();\n }\n }\n } else {\n this.stopStartPositionMovementListener();\n }\n }\n\n /**\n * Extract the size and position of the box from\n * the start and the finish of the line.\n * @param props Item properties.\n */\n public static extractBoxSizeAndPosition(\n startPosition: Position,\n endPosition: Position\n ): Size & Position {\n return {\n width: Math.abs(startPosition.x - endPosition.x),\n height: Math.abs(startPosition.y - endPosition.y),\n x: Math.min(startPosition.x, endPosition.x),\n y: Math.min(startPosition.y, endPosition.y)\n };\n }\n\n /**\n * Update the position into the properties and move the DOM container.\n * @param x Horizontal axis position.\n * @param y Vertical axis position.\n * @override item function\n */\n public move(x: number, y: number): void {\n super.moveElement(x, y);\n const startIsLeft =\n this.props.startPosition.x - this.props.endPosition.x <= 0;\n const startIsTop =\n this.props.startPosition.y - this.props.endPosition.y <= 0;\n\n const start = {\n x: startIsLeft ? x : this.props.width + x,\n y: startIsTop ? y : this.props.height + y\n };\n\n const end = {\n x: startIsLeft ? this.props.width + x : x,\n y: startIsTop ? this.props.height + y : y\n };\n\n this.props = {\n ...this.props,\n startPosition: start,\n endPosition: end\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override Item.remove\n */\n public remove(): void {\n // Clear the item's event listeners.\n this.stopStartPositionMovementListener();\n // Call the parent's .remove()\n super.remove();\n }\n\n /**\n * To add an event handler to the movement of visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n *\n * @override Item.onMoved\n */\n public onLineMovementFinished(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.lineMovedEventDisposables.push(disposable);\n\n return disposable;\n }\n}\n","import { AnyObject, Position, ItemMeta } from \"../lib/types\";\nimport { debounce, notEmptyStringOr, parseIntOr } from \"../lib\";\nimport { ItemType } from \"../Item\";\nimport Line, { LineProps, linePropsDecoder } from \"./Line\";\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport interface NetworkLinkProps extends LineProps {\n // Overrided properties.\n type: number;\n labelStart: string;\n labelEnd: string;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function networkLinkPropsDecoder(\n data: AnyObject\n): NetworkLinkProps | never {\n return {\n ...linePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.NETWORK_LINK,\n viewportOffsetX: 0,\n viewportOffsetY: 0,\n labelEnd: notEmptyStringOr(data.labelEnd, \"\"),\n labelEndWidth: parseIntOr(data.labelEndWidth, 0),\n labelEndHeight: parseIntOr(data.labelEndHeight, 0),\n labelStart: notEmptyStringOr(data.labelStart, \"\"),\n labelStartWidth: parseIntOr(data.labelStartWidth, 0),\n labelStartHeight: parseIntOr(data.labelStartHeight, 0)\n };\n}\n\nexport default class NetworkLink extends Line {\n /**\n * @override\n */\n public constructor(props: NetworkLinkProps, meta: ItemMeta) {\n /*\n * We need to override the constructor cause we need to obtain the\n * box size and position from the start and finish points of the line.\n */\n super(\n {\n ...props\n },\n {\n ...meta\n }\n );\n\n this.render();\n }\n\n /**\n * @override\n */\n protected debouncedStartPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n\n const startPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n startPosition,\n endPosition: this.props.endPosition\n });\n }\n );\n\n protected debouncedEndPositionMovementSave = debounce(\n 50, // ms.\n (x: Position[\"x\"], y: Position[\"y\"]) => {\n this.isMoving = false;\n const endPosition = { x, y };\n\n // Re-Paint after move.\n this.render();\n\n // Emit the movement event.\n this.lineMovedEventManager.emit({\n item: this,\n endPosition,\n startPosition: this.props.startPosition\n });\n }\n );\n\n protected updateDomElement(element: HTMLElement): void {\n super.updateDomElement(element);\n\n let {\n x, // Box x\n y, // Box y\n lineWidth, // Line thickness\n viewportOffsetX, // viewport width,\n viewportOffsetY, // viewport heigth,\n startPosition, // Line start position\n endPosition, // Line end position\n color, // Line color\n labelEnd,\n labelStart,\n labelEndWidth,\n labelEndHeight,\n labelStartWidth,\n labelStartHeight\n } = this.props;\n\n const svgs = element.getElementsByTagName(\"svg\");\n let line;\n let svg;\n\n if (svgs.length > 0) {\n svg = svgs.item(0);\n\n if (svg != null) {\n // Set SVG size.\n const lines = svg.getElementsByTagNameNS(svgNS, \"line\");\n let groups = svg.getElementsByTagNameNS(svgNS, \"g\");\n while (groups.length > 0) {\n groups[0].remove();\n }\n\n if (lines.length > 0) {\n line = lines.item(0);\n }\n }\n } else {\n // No line or svg, no more actions are required.\n return;\n }\n\n if (svg == null || line == null) {\n // No more actionas are required.\n return;\n }\n\n // Font size and text adjustments.\n const fontsize = 10;\n const adjustment = 25;\n\n const lineX1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n const lineX2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n const lineY2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n let x1 = startPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y1 = startPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n let x2 = endPosition.x - x + lineWidth / 2 + viewportOffsetX / 2;\n let y2 = endPosition.y - y + lineWidth / 2 + viewportOffsetY / 2;\n\n // Calculate angle (rotation).\n let rad = Math.atan2(lineY2 - lineY1, lineX2 - lineX1);\n let g = (rad * 180) / Math.PI;\n\n // Calculate effective 'text' box sizes.\n const fontheight = 25;\n if (labelStartWidth <= 0) {\n let lines = labelStart.split(\"
\");\n labelStartWidth = 0;\n lines.forEach(l => {\n if (l.length > labelStartWidth) {\n labelStartWidth = l.length * fontsize;\n }\n });\n if (labelStartHeight <= 0) {\n labelStartHeight = lines.length * fontheight;\n }\n }\n\n if (labelEndWidth <= 0) {\n let lines = labelEnd.split(\"
\");\n labelEndWidth = 0;\n lines.forEach(l => {\n if (l.length > labelEndWidth) {\n labelEndWidth = l.length * fontsize;\n }\n });\n if (labelEndHeight <= 0) {\n labelEndHeight = lines.length * fontheight;\n }\n }\n\n if (x1 < x2) {\n // x1 on left of x2.\n x1 += adjustment;\n x2 -= adjustment + labelEndWidth;\n }\n\n if (x1 > x2) {\n // x1 on right of x2.\n x1 -= adjustment + labelStartWidth;\n x2 += adjustment;\n }\n\n if (y1 < y2) {\n // y1 on y2.\n y1 += adjustment;\n y2 -= adjustment + labelEndHeight;\n }\n\n if (y1 > y2) {\n // y1 under y2.\n y1 -= adjustment + labelStartHeight;\n y2 += adjustment;\n }\n\n if (typeof color == \"undefined\") {\n color = \"#000\";\n }\n\n // Clean.\n if (element.parentElement !== null) {\n const labels = element.parentElement.getElementsByClassName(\n \"vc-item-nl-label\"\n );\n while (labels.length > 0) {\n const label = labels.item(0);\n if (label) label.remove();\n }\n\n const arrows = element.parentElement.getElementsByClassName(\n \"vc-item-nl-arrow\"\n );\n while (arrows.length > 0) {\n const arrow = arrows.item(0);\n if (arrow) arrow.remove();\n }\n }\n\n let arrowSize = lineWidth * 2;\n\n let arrowPosX = lineX1 + (lineX2 - lineX1) / 2 - arrowSize;\n let arrowPosY = lineY1 + (lineY2 - lineY1) / 2 - arrowSize;\n\n let arrowStart: HTMLElement = document.createElement(\"div\");\n arrowStart.classList.add(\"vc-item-nl-arrow\");\n arrowStart.style.position = \"absolute\";\n arrowStart.style.border = `${arrowSize}px solid transparent`;\n arrowStart.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowStart.style.left = `${arrowPosX}px`;\n arrowStart.style.top = `${arrowPosY}px`;\n arrowStart.style.transform = `rotate(${90 + g}deg)`;\n\n let arrowEnd: HTMLElement = document.createElement(\"div\");\n arrowEnd.classList.add(\"vc-item-nl-arrow\");\n arrowEnd.style.position = \"absolute\";\n arrowEnd.style.border = `${arrowSize}px solid transparent`;\n arrowEnd.style.borderBottom = `${arrowSize}px solid ${color}`;\n arrowEnd.style.left = `${arrowPosX}px`;\n arrowEnd.style.top = `${arrowPosY}px`;\n arrowEnd.style.transform = `rotate(${270 + g}deg)`;\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(arrowStart);\n element.parentElement.appendChild(arrowEnd);\n }\n\n if (labelStart != \"\") {\n let htmlLabelStart: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelStart.innerHTML = labelStart;\n htmlLabelStart.style.position = \"absolute\";\n htmlLabelStart.style.left = `${x1}px`;\n htmlLabelStart.style.top = `${y1}px`;\n htmlLabelStart.style.width = `${labelStartWidth}px`;\n htmlLabelStart.style.border = `2px solid ${color}`;\n\n htmlLabelStart.classList.add(\"vc-item-nl-label\", \"label-start\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelStart);\n }\n }\n\n if (labelEnd != \"\") {\n let htmlLabelEnd: HTMLElement = document.createElement(\"div\");\n\n try {\n htmlLabelEnd.innerHTML = labelEnd;\n htmlLabelEnd.style.position = \"absolute\";\n htmlLabelEnd.style.left = `${x2}px`;\n htmlLabelEnd.style.top = `${y2}px`;\n htmlLabelEnd.style.width = `${labelEndWidth}px`;\n htmlLabelEnd.style.border = `2px solid ${color}`;\n\n htmlLabelEnd.classList.add(\"vc-item-nl-label\", \"label-end\");\n } catch (error) {\n console.error(error);\n }\n\n if (element.parentElement !== null) {\n element.parentElement.appendChild(htmlLabelEnd);\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n stringIsEmpty,\n decodeBase64,\n parseBoolean,\n t\n} from \"../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../Item\";\n\nexport type GroupProps = {\n type: ItemType.GROUP_ITEM;\n groupId: number;\n imageSrc: string | null; // URL?\n statusImageSrc: string | null;\n showStatistics: boolean;\n html?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\nfunction extractHtml(data: AnyObject): string | null {\n if (!stringIsEmpty(data.html)) return data.html;\n if (!stringIsEmpty(data.encodedHtml)) return decodeBase64(data.encodedHtml);\n return null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the group props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function groupPropsDecoder(data: AnyObject): GroupProps | never {\n if (\n (typeof data.imageSrc !== \"string\" || data.imageSrc.length === 0) &&\n data.encodedHtml === null\n ) {\n throw new TypeError(\"invalid image src.\");\n }\n if (parseIntOr(data.groupId, null) === null) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n const showStatistics = parseBoolean(data.showStatistics);\n const html = showStatistics ? extractHtml(data) : null;\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.GROUP_ITEM,\n groupId: parseInt(data.groupId),\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n showStatistics,\n html,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\nexport default class Group extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"group\";\n\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (!this.props.showStatistics && this.props.statusImageSrc !== null) {\n // Icon with status.\n element.style.backgroundImage = `url(${this.props.statusImageSrc})`;\n element.style.backgroundRepeat = \"no-repeat\";\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n element.innerHTML = \"\";\n } else if (this.props.showStatistics && this.props.html != null) {\n // Stats table.\n element.style.backgroundImage = \"none\";\n element.innerHTML = this.props.html;\n }\n }\n}\n","import \"./styles.css\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n Size,\n ItemMeta\n} from \"../../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n parseBoolean,\n prefixedCssRules,\n notEmptyStringOr,\n humanDate,\n humanTime,\n t\n} from \"../../lib\";\nimport Item, { ItemProps, itemBasePropsDecoder, ItemType } from \"../../Item\";\n\nexport type ClockProps = {\n type: ItemType.CLOCK;\n clockType: \"analogic\" | \"digital\";\n clockFormat: \"datetime\" | \"time\";\n clockTimezone: string;\n clockTimezoneOffset: number; // Offset of the timezone to UTC in seconds.\n showClockTimezone: boolean;\n color?: string | null;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockType Raw value.\n */\nconst parseClockType = (clockType: unknown): ClockProps[\"clockType\"] => {\n switch (clockType) {\n case \"analogic\":\n case \"digital\":\n return clockType;\n default:\n return \"analogic\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw unknown value.\n * @param clockFormat Raw value.\n */\nconst parseClockFormat = (clockFormat: unknown): ClockProps[\"clockFormat\"] => {\n switch (clockFormat) {\n case \"datetime\":\n case \"time\":\n return clockFormat;\n default:\n return \"datetime\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the clock props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function clockPropsDecoder(data: AnyObject): ClockProps | never {\n if (\n typeof data.clockTimezone !== \"string\" ||\n data.clockTimezone.length === 0\n ) {\n throw new TypeError(\"invalid timezone.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.CLOCK,\n clockType: parseClockType(data.clockType),\n clockFormat: parseClockFormat(data.clockFormat),\n clockTimezone: data.clockTimezone,\n clockTimezoneOffset: parseIntOr(data.clockTimezoneOffset, 0),\n showClockTimezone: parseBoolean(data.showClockTimezone),\n color: notEmptyStringOr(data.color, null),\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Clock extends Item {\n public static readonly TICK_INTERVAL = 1000; // In ms.\n private intervalRef: number | null = null;\n\n public constructor(props: ClockProps, meta: ItemMeta) {\n // Call the superclass constructor.\n super(props, meta);\n\n /* The item is already loaded and inserted into the DOM.\n * The class properties are now initialized.\n * Now you can modify the item, add event handlers, timers, etc.\n */\n\n /* The use of the arrow function is important here. startTick will\n * use the function passed as an argument to call the global setInterval\n * function. The interval, timeout or event functions, among other, are\n * called into another execution loop and using a different context.\n * The arrow functions, unlike the classic functions, doesn't create\n * their own context (this), so their context at execution time will be\n * use the current context at the declaration time.\n * http://es6-features.org/#Lexicalthis\n */\n this.startTick(\n () => {\n // Replace the old element with the updated date.\n this.childElementRef.innerHTML = this.createClock().innerHTML;\n },\n /* The analogic clock doesn't need to tick,\n * but it will be refreshed every 20 seconds\n * to avoid a desync caused by page freezes.\n */\n this.props.clockType === \"analogic\" ? 20000 : Clock.TICK_INTERVAL\n );\n }\n\n /**\n * Wrap a window.clearInterval call.\n */\n private stopTick(): void {\n if (this.intervalRef !== null) {\n window.clearInterval(this.intervalRef);\n this.intervalRef = null;\n }\n }\n\n /**\n * Wrap a window.setInterval call.\n * @param handler Function to be called every time the interval\n * timer is reached.\n * @param interval Number in milliseconds for the interval timer.\n */\n private startTick(\n handler: TimerHandler,\n interval: number = Clock.TICK_INTERVAL\n ): void {\n this.stopTick();\n this.intervalRef = window.setInterval(handler, interval);\n }\n\n /**\n * Create a element which contains the DOM representation of the item.\n * @return DOM Element.\n * @override\n */\n protected createDomElement(): HTMLElement | never {\n return this.createClock();\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n this.props.width,\n this.props.height\n );\n\n if (this.props.clockType === \"digital\") {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(this.props.width, this.props.height);\n }\n element.classList.replace(\"analogic-clock\", \"digital-clock\");\n } else {\n if (this.meta.isBeingResized === false) {\n super.resizeElement(newWidth, newHeight);\n }\n element.classList.replace(\"digital-clock\", \"analogic-clock\");\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n * @override\n */\n public remove(): void {\n // Clear the interval.\n this.stopTick();\n // Call to the parent clean function.\n super.remove();\n }\n\n /**\n * @override Item.resizeElement\n * Resize the DOM content container.\n * @param width\n * @param height\n */\n protected resizeElement(width: number, height: number): void {\n // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n const { width: newWidth, height: newHeight } = this.getElementSize(\n width,\n height\n );\n\n // Re-render the item to force it calculate a new font size.\n if (this.props.clockType === \"digital\") {\n super.resizeElement(width, height);\n // Replace the old element with the updated date.\n //this.childElementRef.innerHTML = this.createClock().innerHTML;\n } else {\n super.resizeElement(newWidth, newHeight);\n }\n }\n\n /**\n * Create a element which contains a representation of a clock.\n * It choose between the clock types.\n * @return DOM Element.\n * @throws Error.\n */\n private createClock(): HTMLElement | never {\n switch (this.props.clockType) {\n case \"analogic\":\n return this.createAnalogicClock();\n case \"digital\":\n return this.createDigitalClock();\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n\n /**\n * Create a element which contains a representation of an analogic clock.\n * @return DOM Element.\n */\n private createAnalogicClock(): HTMLElement {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const colors = {\n watchFace: \"#FFFFF0\",\n watchFaceBorder: \"#242124\",\n mark: \"#242124\",\n handDark: \"#242124\",\n handLight: \"#525252\",\n secondHand: \"#DC143C\"\n };\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 20; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * width) / 100;\n\n const div = document.createElement(\"div\");\n div.className = \"analogic-clock\";\n div.style.width = `${width}px`;\n div.style.height = `${height}px`;\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n // Clock face.\n const clockFace = document.createElementNS(svgNS, \"g\");\n clockFace.setAttribute(\"class\", \"clockface\");\n const clockFaceBackground = document.createElementNS(svgNS, \"circle\");\n clockFaceBackground.setAttribute(\"cx\", \"50\");\n clockFaceBackground.setAttribute(\"cy\", \"50\");\n clockFaceBackground.setAttribute(\"r\", \"48\");\n clockFaceBackground.setAttribute(\"fill\", colors.watchFace);\n clockFaceBackground.setAttribute(\"stroke\", colors.watchFaceBorder);\n clockFaceBackground.setAttribute(\"stroke-width\", \"2\");\n clockFaceBackground.setAttribute(\"stroke-linecap\", \"round\");\n // Insert the clockface background into the clockface group.\n clockFace.append(clockFaceBackground);\n\n // Timezone complication.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const timezoneComplication = document.createElementNS(svgNS, \"text\");\n timezoneComplication.setAttribute(\"text-anchor\", \"middle\");\n timezoneComplication.setAttribute(\"font-size\", \"8\");\n timezoneComplication.setAttribute(\n \"transform\",\n \"translate(30 50) rotate(90)\" // Rotate to counter the clock rotation.\n );\n timezoneComplication.setAttribute(\"fill\", colors.mark);\n timezoneComplication.textContent = city;\n clockFace.append(timezoneComplication);\n }\n\n // Marks group.\n const marksGroup = document.createElementNS(svgNS, \"g\");\n marksGroup.setAttribute(\"class\", \"marks\");\n // Build the 12 hours mark.\n const mainMarkGroup = document.createElementNS(svgNS, \"g\");\n mainMarkGroup.setAttribute(\"class\", \"mark\");\n mainMarkGroup.setAttribute(\"transform\", \"translate(50 50)\");\n const mark1a = document.createElementNS(svgNS, \"line\");\n mark1a.setAttribute(\"x1\", \"36\");\n mark1a.setAttribute(\"y1\", \"0\");\n mark1a.setAttribute(\"x2\", \"46\");\n mark1a.setAttribute(\"y2\", \"0\");\n mark1a.setAttribute(\"stroke\", colors.mark);\n mark1a.setAttribute(\"stroke-width\", \"5\");\n const mark1b = document.createElementNS(svgNS, \"line\");\n mark1b.setAttribute(\"x1\", \"36\");\n mark1b.setAttribute(\"y1\", \"0\");\n mark1b.setAttribute(\"x2\", \"46\");\n mark1b.setAttribute(\"y2\", \"0\");\n mark1b.setAttribute(\"stroke\", colors.watchFace);\n mark1b.setAttribute(\"stroke-width\", \"1\");\n // Insert the 12 mark lines into their group.\n mainMarkGroup.append(mark1a, mark1b);\n // Insert the main mark into the marks group.\n marksGroup.append(mainMarkGroup);\n // Build the rest of the marks.\n for (let i = 1; i < 60; i++) {\n const mark = document.createElementNS(svgNS, \"line\");\n mark.setAttribute(\"y1\", \"0\");\n mark.setAttribute(\"y2\", \"0\");\n mark.setAttribute(\"stroke\", colors.mark);\n mark.setAttribute(\"transform\", `translate(50 50) rotate(${i * 6})`);\n\n if (i % 5 === 0) {\n mark.setAttribute(\"x1\", \"38\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", i % 15 === 0 ? \"2\" : \"1\");\n } else {\n mark.setAttribute(\"x1\", \"42\");\n mark.setAttribute(\"x2\", \"46\");\n mark.setAttribute(\"stroke-width\", \"0.5\");\n }\n\n // Insert the mark into the marks group.\n marksGroup.append(mark);\n }\n\n /* Clock hands */\n\n // Hour hand.\n const hourHand = document.createElementNS(svgNS, \"g\");\n hourHand.setAttribute(\"class\", \"hour-hand\");\n hourHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const hourHandA = document.createElementNS(svgNS, \"line\");\n hourHandA.setAttribute(\"class\", \"hour-hand-a\");\n hourHandA.setAttribute(\"x1\", \"0\");\n hourHandA.setAttribute(\"y1\", \"0\");\n hourHandA.setAttribute(\"x2\", \"30\");\n hourHandA.setAttribute(\"y2\", \"0\");\n hourHandA.setAttribute(\"stroke\", colors.handLight);\n hourHandA.setAttribute(\"stroke-width\", \"4\");\n hourHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const hourHandB = document.createElementNS(svgNS, \"line\");\n hourHandB.setAttribute(\"class\", \"hour-hand-b\");\n hourHandB.setAttribute(\"x1\", \"0\");\n hourHandB.setAttribute(\"y1\", \"0\");\n hourHandB.setAttribute(\"x2\", \"29.9\");\n hourHandB.setAttribute(\"y2\", \"0\");\n hourHandB.setAttribute(\"stroke\", colors.handDark);\n hourHandB.setAttribute(\"stroke-width\", \"3.1\");\n hourHandB.setAttribute(\"stroke-linecap\", \"round\");\n // Append the elements to finish the hour hand.\n hourHand.append(hourHandA, hourHandB);\n\n // Minute hand.\n const minuteHand = document.createElementNS(svgNS, \"g\");\n minuteHand.setAttribute(\"class\", \"minute-hand\");\n minuteHand.setAttribute(\"transform\", \"translate(50 50)\");\n // This will go back and will act like a border.\n const minuteHandA = document.createElementNS(svgNS, \"line\");\n minuteHandA.setAttribute(\"class\", \"minute-hand-a\");\n minuteHandA.setAttribute(\"x1\", \"0\");\n minuteHandA.setAttribute(\"y1\", \"0\");\n minuteHandA.setAttribute(\"x2\", \"40\");\n minuteHandA.setAttribute(\"y2\", \"0\");\n minuteHandA.setAttribute(\"stroke\", colors.handLight);\n minuteHandA.setAttribute(\"stroke-width\", \"2\");\n minuteHandA.setAttribute(\"stroke-linecap\", \"round\");\n // This will go in front of the previous line.\n const minuteHandB = document.createElementNS(svgNS, \"line\");\n minuteHandB.setAttribute(\"class\", \"minute-hand-b\");\n minuteHandB.setAttribute(\"x1\", \"0\");\n minuteHandB.setAttribute(\"y1\", \"0\");\n minuteHandB.setAttribute(\"x2\", \"39.9\");\n minuteHandB.setAttribute(\"y2\", \"0\");\n minuteHandB.setAttribute(\"stroke\", colors.handDark);\n minuteHandB.setAttribute(\"stroke-width\", \"1.5\");\n minuteHandB.setAttribute(\"stroke-linecap\", \"round\");\n const minuteHandPin = document.createElementNS(svgNS, \"circle\");\n minuteHandPin.setAttribute(\"r\", \"3\");\n minuteHandPin.setAttribute(\"fill\", colors.handDark);\n // Append the elements to finish the minute hand.\n minuteHand.append(minuteHandA, minuteHandB, minuteHandPin);\n\n // Second hand.\n const secondHand = document.createElementNS(svgNS, \"g\");\n secondHand.setAttribute(\"class\", \"second-hand\");\n secondHand.setAttribute(\"transform\", \"translate(50 50)\");\n const secondHandBar = document.createElementNS(svgNS, \"line\");\n secondHandBar.setAttribute(\"x1\", \"0\");\n secondHandBar.setAttribute(\"y1\", \"0\");\n secondHandBar.setAttribute(\"x2\", \"46\");\n secondHandBar.setAttribute(\"y2\", \"0\");\n secondHandBar.setAttribute(\"stroke\", colors.secondHand);\n secondHandBar.setAttribute(\"stroke-width\", \"1\");\n secondHandBar.setAttribute(\"stroke-linecap\", \"round\");\n const secondHandPin = document.createElementNS(svgNS, \"circle\");\n secondHandPin.setAttribute(\"r\", \"2\");\n secondHandPin.setAttribute(\"fill\", colors.secondHand);\n // Append the elements to finish the second hand.\n secondHand.append(secondHandBar, secondHandPin);\n\n // Pin.\n const pin = document.createElementNS(svgNS, \"circle\");\n pin.setAttribute(\"cx\", \"50\");\n pin.setAttribute(\"cy\", \"50\");\n pin.setAttribute(\"r\", \"0.3\");\n pin.setAttribute(\"fill\", colors.handDark);\n\n // Get the hand angles.\n const date = this.getOriginDate();\n const seconds = date.getSeconds();\n const minutes = date.getMinutes();\n const hours = date.getHours();\n const secAngle = (360 / 60) * seconds;\n const minuteAngle = (360 / 60) * minutes + (360 / 60) * (seconds / 60);\n const hourAngle = (360 / 12) * hours + (360 / 12) * (minutes / 60);\n // Set the clock time by moving the hands.\n hourHand.setAttribute(\"transform\", `translate(50 50) rotate(${hourAngle})`);\n minuteHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${minuteAngle})`\n );\n secondHand.setAttribute(\n \"transform\",\n `translate(50 50) rotate(${secAngle})`\n );\n\n // Build the clock\n svg.append(clockFace, marksGroup, hourHand, minuteHand, secondHand, pin);\n // Rotate the clock to its normal position.\n svg.setAttribute(\"transform\", \"rotate(-90)\");\n\n /* Add the animation declaration to the container.\n * Since the animation keyframes need to know the\n * start angle, this angle is dynamic (current time),\n * and we can't edit keyframes through javascript\n * safely and with backwards compatibility, we need\n * to inject it.\n */\n div.innerHTML = `\n \n `;\n // Add the clock to the container\n div.append(svg);\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n div.append(dateElem);\n }\n\n return div;\n }\n\n /**\n * Create a element which contains a representation of a digital clock.\n * @return DOM Element.\n */\n private createDigitalClock(): HTMLElement {\n const element: HTMLDivElement = document.createElement(\"div\");\n element.className = \"digital-clock\";\n\n const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation\n let modified = width;\n if (height < width) {\n modified = height;\n }\n\n // Calculate font size to adapt the font to the item size.\n const baseTimeFontSize = 35; // Per 100px of width.\n const dateFontSizeMultiplier = 0.5;\n const tzFontSizeMultiplier = 6 / this.props.clockTimezone.length;\n const timeFontSize = (baseTimeFontSize * modified) / 100;\n const dateFontSize =\n (baseTimeFontSize * dateFontSizeMultiplier * modified) / 100;\n const tzFontSize = Math.min(\n (baseTimeFontSize * tzFontSizeMultiplier * modified) / 100,\n (width / 100) * 10\n );\n\n // Date calculated using the original timezone.\n const date = this.getOriginDate();\n\n // Date.\n if (this.props.clockFormat === \"datetime\") {\n const dateElem: HTMLSpanElement = document.createElement(\"span\");\n dateElem.className = \"date\";\n dateElem.textContent = humanDate(date, \"default\");\n dateElem.style.fontSize = `${dateFontSize}px`;\n if (this.props.color) dateElem.style.color = this.props.color;\n element.append(dateElem);\n }\n\n // Time.\n const timeElem: HTMLSpanElement = document.createElement(\"span\");\n timeElem.className = \"time\";\n timeElem.textContent = humanTime(date);\n timeElem.style.fontSize = `${timeFontSize}px`;\n if (this.props.color) timeElem.style.color = this.props.color;\n element.append(timeElem);\n\n // City name.\n const city = this.getHumanTimezone();\n if (city.length > 0) {\n const tzElem: HTMLSpanElement = document.createElement(\"span\");\n tzElem.className = \"timezone\";\n tzElem.textContent = city;\n tzElem.style.fontSize = `${tzFontSize}px`;\n if (this.props.color) tzElem.style.color = this.props.color;\n element.append(tzElem);\n }\n\n return element;\n }\n\n /**\n * Generate the current date using the timezone offset stored into the properties.\n * @return The current date.\n */\n private getOriginDate(initialDate: Date | null = null): Date {\n const d = initialDate ? initialDate : new Date();\n const targetTZOffset = this.props.clockTimezoneOffset * 1000; // In ms.\n const localTZOffset = d.getTimezoneOffset() * 60 * 1000; // In ms.\n const utimestamp = d.getTime() + targetTZOffset + localTZOffset;\n\n return new Date(utimestamp);\n }\n\n /**\n * Extract a human readable city name from the timezone text.\n * @param timezone Timezone text.\n */\n public getHumanTimezone(timezone: string = this.props.clockTimezone): string {\n const [, city = \"\"] = timezone.split(\"/\");\n return city.replace(\"_\", \" \");\n }\n\n /**\n * Generate a element size using the current size and the default values.\n * @return The size.\n */\n private getElementSize(\n width: number = this.props.width,\n height: number = this.props.height\n ): Size {\n switch (this.props.clockType) {\n case \"analogic\": {\n let diameter = 100; // Default value.\n\n if (width > 0 && height > 0) {\n diameter = Math.min(width, height);\n } else if (width > 0) {\n diameter = width;\n } else if (height > 0) {\n diameter = height;\n }\n\n let extraHeigth = 0;\n if (this.props.clockFormat === \"datetime\") {\n extraHeigth = height / 8;\n }\n\n return {\n width: diameter,\n height: diameter + extraHeigth\n };\n }\n case \"digital\": {\n if (width > 0 && height > 0) {\n // The proportion of the clock should be (width = height / 2) aproximately.\n height = width / 2 < height ? width / 2 : height;\n } else if (width > 0) {\n height = width / 2;\n } else if (height > 0) {\n // The proportion of the clock should be (height * 2 = width) aproximately.\n width = height * 2;\n } else {\n width = 100; // Default value.\n height = 50; // Default value.\n }\n\n return {\n width,\n height\n };\n }\n default:\n throw new Error(\"invalid clock type.\");\n }\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport { parseIntOr, notEmptyStringOr, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\ninterface BoxProps extends ItemProps {\n // Overrided properties.\n readonly type: ItemType.BOX_ITEM;\n label: null;\n isLinkEnabled: false;\n parentId: null;\n aclGroupId: null;\n // Custom properties.\n borderWidth: number;\n borderColor: string | null;\n fillColor: string | null;\n fillTransparent: boolean | null;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the item props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function boxPropsDecoder(data: AnyObject): BoxProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.BOX_ITEM,\n label: null,\n isLinkEnabled: false,\n parentId: null,\n aclGroupId: null,\n // Custom properties.\n borderWidth: parseIntOr(data.borderWidth, 0),\n borderColor: notEmptyStringOr(data.borderColor, null),\n fillColor: notEmptyStringOr(data.fillColor, null),\n fillTransparent: data.fillTransparent\n };\n}\n\nexport default class Box extends Item {\n protected createDomElement(): HTMLElement {\n const box: HTMLDivElement = document.createElement(\"div\");\n box.className = \"box\";\n // To prevent this item to expand beyond its parent.\n box.style.boxSizing = \"border-box\";\n\n if (this.props.fillTransparent) {\n box.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n box.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n box.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n box.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n box.style.borderColor = this.props.borderColor;\n }\n }\n\n return box;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.fillTransparent) {\n element.style.backgroundColor = \"transparent\";\n } else {\n if (this.props.fillColor) {\n element.style.backgroundColor = this.props.fillColor;\n }\n }\n\n // Border.\n if (this.props.borderWidth > 0) {\n element.style.borderStyle = \"solid\";\n // Control the max width to prevent this item to expand beyond its parent.\n const maxBorderWidth = Math.min(this.props.width, this.props.height) / 2;\n const borderWidth = Math.min(this.props.borderWidth, maxBorderWidth);\n element.style.borderWidth = `${borderWidth}px`;\n\n if (this.props.borderColor) {\n element.style.borderColor = this.props.borderColor;\n }\n }\n }\n}\n","import { LinkedVisualConsoleProps, AnyObject } from \"../lib/types\";\nimport { linkedVCPropsDecoder } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type LabelProps = {\n type: ItemType.LABEL;\n} & ItemProps &\n LinkedVisualConsoleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the label props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function labelPropsDecoder(data: AnyObject): LabelProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.LABEL,\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Label extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"label\";\n element.innerHTML = this.getLabelWithMacrosReplaced();\n\n return element;\n }\n\n /**\n * @override Item.createLabelDomElement\n * Create a new label for the visual console item.\n * @return Item label.\n */\n public createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","import {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n parseIntOr,\n modulePropsDecoder,\n replaceMacros\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type SimpleValueProps = {\n type: ItemType.SIMPLE_VALUE;\n valueType: \"string\" | \"image\";\n value: string;\n} & (\n | {\n processValue: \"none\";\n }\n | {\n processValue: \"avg\" | \"max\" | \"min\";\n period: number;\n }\n) &\n ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw value type.\n * @param valueType Raw value.\n */\nconst parseValueType = (valueType: unknown): SimpleValueProps[\"valueType\"] => {\n switch (valueType) {\n case \"string\":\n case \"image\":\n return valueType;\n default:\n return \"string\";\n }\n};\n\n/**\n * Extract a valid enum value from a raw process value.\n * @param processValue Raw value.\n */\nconst parseProcessValue = (\n processValue: unknown\n): SimpleValueProps[\"processValue\"] => {\n switch (processValue) {\n case \"none\":\n case \"avg\":\n case \"max\":\n case \"min\":\n return processValue;\n default:\n return \"none\";\n }\n};\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the simple value props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function simpleValuePropsDecoder(\n data: AnyObject\n): SimpleValueProps | never {\n if (typeof data.value !== \"string\" || data.value.length === 0) {\n throw new TypeError(\"invalid value\");\n }\n\n const processValue = parseProcessValue(data.processValue);\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SIMPLE_VALUE,\n valueType: parseValueType(data.valueType),\n value: data.value,\n ...(processValue === \"none\"\n ? { processValue }\n : { processValue, period: parseIntOr(data.period, 0) }), // Object spread. It will merge the properties of the two objects.\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class SimpleValue extends Item {\n protected createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"simple-value\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n if (this.props.valueType === \"image\") {\n const img = document.createElement(\"img\");\n img.src = this.props.value;\n element.append(img);\n } else {\n // Add the value to the label and show it.\n let text = this.props.value;\n let label = this.getLabelWithMacrosReplaced();\n if (label.length > 0) {\n text = replaceMacros([{ macro: /\\(?_VALUE_\\)?/i, value: text }], label);\n }\n\n element.innerHTML = text;\n }\n\n return element;\n }\n\n /**\n * Generate a element size\n * using the current size and the default values.\n * @return The size.\n */ protected createLabelDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"visual-console-item-label\";\n // Always return an empty label.\n return element;\n }\n}\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import { arc as arcFactory } from \"d3-shape\";\n\nimport {\n LinkedVisualConsoleProps,\n AnyObject,\n WithModuleProps\n} from \"../lib/types\";\nimport {\n linkedVCPropsDecoder,\n modulePropsDecoder,\n notEmptyStringOr,\n parseIntOr,\n parseFloatOr\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type PercentileProps = {\n type: ItemType.PERCENTILE_BAR;\n percentileType:\n | \"progress-bar\"\n | \"bubble\"\n | \"circular-progress-bar\"\n | \"circular-progress-bar-alt\";\n valueType: \"percent\" | \"value\";\n minValue: number | null;\n maxValue: number | null;\n color: string | null;\n labelColor: string | null;\n value: number | null;\n unit: string | null;\n} & ItemProps &\n WithModuleProps &\n LinkedVisualConsoleProps;\n\n/**\n * Extract a valid enum value from a raw type value.\n * @param type Raw value.\n */\nfunction extractPercentileType(\n type: unknown\n): PercentileProps[\"percentileType\"] {\n switch (type) {\n case \"progress-bar\":\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n return type;\n default:\n case ItemType.PERCENTILE_BAR:\n return \"progress-bar\";\n case ItemType.PERCENTILE_BUBBLE:\n return \"bubble\";\n case ItemType.CIRCULAR_PROGRESS_BAR:\n return \"circular-progress-bar\";\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return \"circular-progress-bar-alt\";\n }\n}\n\n/**\n * Extract a valid enum value from a raw value type value.\n * @param type Raw value.\n */\nfunction extractValueType(valueType: unknown): PercentileProps[\"valueType\"] {\n switch (valueType) {\n case \"percent\":\n case \"value\":\n return valueType;\n default:\n return \"percent\";\n }\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the percentile props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function percentilePropsDecoder(\n data: AnyObject\n): PercentileProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.PERCENTILE_BAR,\n percentileType: extractPercentileType(data.percentileType || data.type),\n valueType: extractValueType(data.valueType),\n minValue: parseIntOr(data.minValue, null),\n maxValue: parseIntOr(data.maxValue, null),\n color: notEmptyStringOr(data.color, null),\n labelColor: notEmptyStringOr(data.labelColor, null),\n value: parseFloatOr(data.value, null),\n unit: notEmptyStringOr(data.unit, null),\n ...modulePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n ...linkedVCPropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nconst svgNS = \"http://www.w3.org/2000/svg\";\n\nexport default class Percentile extends Item {\n protected createDomElement(): HTMLElement {\n const colors = {\n background: \"#000000\",\n progress: this.props.color || \"#F0F0F0\",\n text: this.props.labelColor || \"#444444\"\n };\n // Progress.\n const progress = this.getProgress();\n // Main element.\n const element = document.createElement(\"div\");\n\n var formatValue;\n if (this.props.value != null) {\n if (Intl) {\n formatValue = Intl.NumberFormat(\"en-EN\").format(this.props.value);\n } else {\n formatValue = this.props.value;\n }\n }\n\n // SVG container.\n const svg = document.createElementNS(svgNS, \"svg\");\n\n switch (this.props.percentileType) {\n case \"progress-bar\":\n {\n const backgroundRect = document.createElementNS(svgNS, \"rect\");\n backgroundRect.setAttribute(\"fill\", colors.background);\n backgroundRect.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundRect.setAttribute(\"width\", \"100%\");\n backgroundRect.setAttribute(\"height\", \"100%\");\n backgroundRect.setAttribute(\"rx\", \"5\");\n backgroundRect.setAttribute(\"ry\", \"5\");\n const progressRect = document.createElementNS(svgNS, \"rect\");\n progressRect.setAttribute(\"fill\", colors.progress);\n progressRect.setAttribute(\"fill-opacity\", \"1\");\n progressRect.setAttribute(\"width\", `${progress}%`);\n progressRect.setAttribute(\"height\", \"100%\");\n progressRect.setAttribute(\"rx\", \"5\");\n progressRect.setAttribute(\"ry\", \"5\");\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"15\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\n \"transform\",\n `translate(${this.props.width / 2}, 17.5)`\n );\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\") {\n text.style.fontSize = \"6pt\";\n\n text.textContent = this.props.unit\n ? `${formatValue} ${this.props.unit}`\n : `${formatValue}`;\n } else {\n text.textContent = `${progress}%`;\n }\n\n svg.setAttribute(\"width\", \"100%\");\n svg.setAttribute(\"height\", \"100%\");\n svg.append(backgroundRect, progressRect, text);\n }\n break;\n case \"bubble\":\n case \"circular-progress-bar\":\n case \"circular-progress-bar-alt\":\n {\n // Auto resize SVG using the view box magic: https://css-tricks.com/scale-svg/\n svg.setAttribute(\"viewBox\", \"0 0 100 100\");\n\n if (this.props.percentileType === \"bubble\") {\n // Create and append the circles.\n const backgroundCircle = document.createElementNS(svgNS, \"circle\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"r\", \"50\");\n const progressCircle = document.createElementNS(svgNS, \"circle\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\"r\", `${progress / 2}`);\n\n svg.append(backgroundCircle, progressCircle);\n } else {\n // Create and append the circles.\n const arcProps = {\n innerRadius:\n this.props.percentileType === \"circular-progress-bar\" ? 30 : 0,\n outerRadius: 50,\n startAngle: 0,\n endAngle: Math.PI * 2\n };\n const arc = arcFactory();\n\n const backgroundCircle = document.createElementNS(svgNS, \"path\");\n backgroundCircle.setAttribute(\"transform\", \"translate(50 50)\");\n backgroundCircle.setAttribute(\"fill\", colors.background);\n backgroundCircle.setAttribute(\"fill-opacity\", \"0.5\");\n backgroundCircle.setAttribute(\"d\", `${arc(arcProps)}`);\n const progressCircle = document.createElementNS(svgNS, \"path\");\n progressCircle.setAttribute(\"transform\", \"translate(50 50)\");\n progressCircle.setAttribute(\"fill\", colors.progress);\n progressCircle.setAttribute(\"fill-opacity\", \"1\");\n progressCircle.setAttribute(\n \"d\",\n `${arc({\n ...arcProps,\n endAngle: arcProps.endAngle * (progress / 100)\n })}`\n );\n\n svg.append(backgroundCircle, progressCircle);\n }\n\n // Create and append the text.\n const text = document.createElementNS(svgNS, \"text\");\n text.setAttribute(\"text-anchor\", \"middle\");\n text.setAttribute(\"alignment-baseline\", \"middle\");\n text.setAttribute(\"font-size\", \"16\");\n text.setAttribute(\"font-family\", \"lato\");\n text.setAttribute(\"font-weight\", \"bold\");\n text.setAttribute(\"fill\", colors.text);\n\n if (this.props.valueType === \"value\" && this.props.value != null) {\n // Show value and unit in 1 (no unit) or 2 lines.\n if (this.props.unit && this.props.unit.length > 0) {\n const value = document.createElementNS(svgNS, \"tspan\");\n value.setAttribute(\"x\", \"0\");\n value.setAttribute(\"dy\", \"1em\");\n value.textContent = `${formatValue}`;\n value.style.fontSize = \"8pt\";\n const unit = document.createElementNS(svgNS, \"tspan\");\n unit.setAttribute(\"x\", \"0\");\n unit.setAttribute(\"dy\", \"1em\");\n unit.textContent = `${this.props.unit}`;\n unit.style.fontSize = \"8pt\";\n text.append(value, unit);\n text.setAttribute(\"transform\", \"translate(50 33)\");\n } else {\n text.textContent = `${formatValue}`;\n text.style.fontSize = \"8pt\";\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n } else {\n // Percentage.\n text.textContent = `${progress}%`;\n text.setAttribute(\"transform\", \"translate(50 50)\");\n }\n\n svg.append(text);\n }\n break;\n }\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n svg.setAttribute(\"opacity\", \"0.2\");\n }\n\n if (svg !== null) element.append(svg);\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.meta.isBeingResized === false) {\n this.resizeElement(this.props.width, this.props.height);\n }\n element.innerHTML = this.createDomElement().innerHTML;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected resizeElement(width: number, height: number): void {\n if (this.props.percentileType === \"progress-bar\") {\n super.resizeElement(width, 35);\n } else {\n super.resizeElement(width, width);\n }\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(width, width);\n let height = this.props.maxValue || 0;\n if (this.props.percentileType === \"progress-bar\") {\n height = 35;\n }\n super.setProps({\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n });\n }\n\n private getProgress(): number {\n const minValue = this.props.minValue || 0;\n const maxValue = this.props.maxValue || 100;\n const value = this.props.value == null ? 0 : this.props.value;\n\n if (value <= minValue) return 0;\n else if (value >= maxValue) return 100;\n else return Math.trunc(((value - minValue) / (maxValue - minValue)) * 100);\n }\n}\n","import { AnyObject } from \"../lib/types\";\nimport {\n stringIsEmpty,\n notEmptyStringOr,\n decodeBase64,\n parseIntOr,\n t\n} from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\nimport { FormContainer, InputGroup } from \"../Form\";\nimport fontAwesomeIcon from \"../lib/FontAwesomeIcon\";\nimport {\n faCircleNotch,\n faExclamationCircle\n} from \"@fortawesome/free-solid-svg-icons\";\n\nexport type ServiceProps = {\n type: ItemType.SERVICE;\n serviceId: number;\n imageSrc: string | null;\n statusImageSrc: string | null;\n encodedTitle: string | null;\n} & ItemProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the service props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function servicePropsDecoder(data: AnyObject): ServiceProps | never {\n if (data.imageSrc !== null) {\n if (\n typeof data.statusImageSrc !== \"string\" ||\n data.imageSrc.statusImageSrc === 0\n ) {\n throw new TypeError(\"invalid status image src.\");\n }\n } else {\n if (stringIsEmpty(data.encodedTitle)) {\n throw new TypeError(\"missing encode tittle content.\");\n }\n }\n\n if (parseIntOr(data.serviceId, null) === null) {\n throw new TypeError(\"invalid service id.\");\n }\n\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.SERVICE,\n serviceId: data.serviceId,\n imageSrc: notEmptyStringOr(data.imageSrc, null),\n statusImageSrc: notEmptyStringOr(data.statusImageSrc, null),\n encodedTitle: notEmptyStringOr(data.encodedTitle, null)\n };\n}\n\nexport default class Service extends Item {\n public createDomElement(): HTMLElement {\n const element = document.createElement(\"div\");\n element.className = \"service\";\n\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n\n return element;\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n protected updateDomElement(element: HTMLElement): void {\n if (this.props.statusImageSrc !== null) {\n element.style.background = `url(${this.props.statusImageSrc}) no-repeat`;\n element.style.backgroundSize = \"contain\";\n element.style.backgroundPosition = \"center\";\n if (this.props.encodedTitle !== null) {\n element.className = \"service image forced_title\";\n element.setAttribute(\"data-use_title_for_force_title\", \"1\");\n element.setAttribute(\n \"data-title\",\n decodeBase64(this.props.encodedTitle)\n );\n }\n element.innerHTML = \"\";\n } else if (this.props.encodedTitle !== null) {\n element.innerHTML = decodeBase64(this.props.encodedTitle);\n }\n }\n}\n","import { AnyObject, WithModuleProps } from \"../lib/types\";\n\nimport { modulePropsDecoder, parseIntOr, stringIsEmpty, t } from \"../lib\";\nimport Item, { ItemType, ItemProps, itemBasePropsDecoder } from \"../Item\";\n\nexport type OdometerProps = {\n type: ItemType.ODOMETER;\n value: number;\n status: string;\n title: string | null;\n titleModule: string;\n titleColor: string;\n odometerType: string;\n thresholds: string | any;\n minMaxValue: string;\n} & ItemProps &\n WithModuleProps;\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the events history props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function odometerPropsDecoder(data: AnyObject): OdometerProps | never {\n return {\n ...itemBasePropsDecoder(data), // Object spread. It will merge the properties of the two objects.\n type: ItemType.ODOMETER,\n value: parseIntOr(data.value, 0),\n status: stringIsEmpty(data.status) ? \"#B2B2B2\" : data.status,\n titleColor: stringIsEmpty(data.titleColor) ? \"#3f3f3f\" : data.titleColor,\n title: stringIsEmpty(data.title) ? \"\" : data.title,\n titleModule: stringIsEmpty(data.titleModule) ? \"\" : data.titleModule,\n thresholds: stringIsEmpty(data.thresholds) ? \"\" : data.thresholds,\n minMaxValue: stringIsEmpty(data.minMaxValue) ? \"\" : data.minMaxValue,\n odometerType: stringIsEmpty(data.odometerType)\n ? \"percent\"\n : data.odometerType,\n ...modulePropsDecoder(data) // Object spread. It will merge the properties of the two objects.\n };\n}\n\nexport default class Odometer extends Item {\n protected createDomElement(): HTMLElement {\n let lineWarning = \"\";\n let lineWarning2 = \"\";\n let lineCritical = \"\";\n let lineCritical2 = \"\";\n\n if (this.props.thresholds !== \"\") {\n const thresholds = JSON.parse(this.props.thresholds);\n\n if (thresholds !== null) {\n if (thresholds.min_warning != 0 || thresholds.max_warning != 0) {\n lineWarning = this.getCoords(\n thresholds.min_warning,\n this.props.width / 2\n );\n if (thresholds.max_warning == 0) {\n lineWarning2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineWarning2 = this.getCoords(\n thresholds.max_warning,\n this.props.width / 2\n );\n }\n }\n\n if (thresholds.min_critical != 0 || thresholds.max_critical != 0) {\n lineCritical = this.getCoords(\n thresholds.min_critical,\n this.props.width / 2\n );\n if (thresholds.max_critical == 0) {\n lineCritical2 = this.getCoords(100, this.props.width / 2);\n } else {\n lineCritical2 = this.getCoords(\n thresholds.max_critical,\n this.props.width / 2\n );\n }\n }\n }\n }\n\n let percent = \"\";\n let number;\n // Float\n if (\n Number(this.props.value) === this.props.value &&\n this.props.value % 1 !== 0\n ) {\n number = this.props.value.toFixed(1);\n } else {\n if (this.props.minMaxValue === \"\") {\n percent = \" %\";\n } else {\n percent = this.getSubfix(this.props.value);\n }\n number = new Intl.NumberFormat(\"es\", {\n maximumSignificantDigits: 4,\n maximumFractionDigits: 3\n }).format(this.props.value);\n }\n\n var numb = number.match(/\\d*\\.\\d/);\n if (numb !== null) {\n number = numb[0];\n }\n\n const rotate = this.getRotate(this.props.value);\n\n let backgroundColor = document.getElementById(\n \"visual-console-container\"\n ) as HTMLElement;\n\n if (backgroundColor === null) {\n backgroundColor = document.getElementById(\n `visual-console-container-${this.props.cellId}`\n ) as HTMLElement;\n }\n\n if (backgroundColor.style.backgroundColor == \"\") {\n backgroundColor.style.backgroundColor = \"#fff\";\n }\n\n const anchoB = this.props.width * 0.7;\n\n const element = document.createElement(\"div\");\n element.className = \"odometer\";\n\n if (\n this.props.agentDisabled === true ||\n this.props.moduleDisabled === true\n ) {\n element.style.opacity = \"0.2\";\n }\n\n // Odometer container.\n const odometerContainer = document.createElement(\"div\");\n odometerContainer.className = \"odometer-container\";\n\n // Central semicircle.\n const odometerA = document.createElement(\"div\");\n odometerA.className = \"odometer-a\";\n odometerA.style.backgroundColor = `${backgroundColor.style.backgroundColor}`;\n\n // Semicircle rotating with the value.\n const odometerB = document.createElement(\"div\");\n odometerB.className = \"odometer-b\";\n odometerB.id = `odometerB-${this.props.id}`;\n odometerB.style.backgroundColor = `${this.props.status}`;\n\n // Dark semicircle.\n const odometerC = document.createElement(\"div\");\n odometerC.className = \"odometer-c\";\n\n // Green outer semicircle.\n const gaugeE = document.createElement(\"div\");\n gaugeE.className = \"odometer-d\";\n\n const SVG_NS = \"http://www.w3.org/2000/svg\";\n // Portion of threshold warning\n if (lineWarning != \"\") {\n const svgWarning = document.createElementNS(SVG_NS, \"svg\");\n svgWarning.setAttributeNS(null, \"width\", \"100%\");\n svgWarning.setAttributeNS(null, \"height\", \"100%\");\n svgWarning.setAttributeNS(null, \"style\", \"position:absolute;z-index:1\");\n const pathWarning = document.createElementNS(SVG_NS, \"path\");\n pathWarning.setAttributeNS(null, \"id\", `svgWarning-${this.props.id}`);\n pathWarning.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineWarning}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineWarning2}Z`\n );\n pathWarning.setAttributeNS(null, \"class\", \"svg_warning\");\n svgWarning.appendChild(pathWarning);\n odometerContainer.appendChild(svgWarning);\n }\n\n // Portion of threshold critical\n if (lineCritical != \"\") {\n const svgCritical = document.createElementNS(SVG_NS, \"svg\");\n svgCritical.setAttributeNS(null, \"width\", \"100%\");\n svgCritical.setAttributeNS(null, \"height\", \"100%\");\n svgCritical.setAttributeNS(null, \"style\", \"position:absolute;z-index:2\");\n const pathCritical = document.createElementNS(SVG_NS, \"path\");\n pathCritical.setAttributeNS(null, \"id\", `svgCritical-${this.props.id}`);\n pathCritical.setAttributeNS(\n null,\n \"d\",\n `M${this.props.width / 2},${this.props.width / 2}L${lineCritical}A${this\n .props.width / 2},${this.props.width / 2},0,0,1,${lineCritical2}Z`\n );\n pathCritical.setAttributeNS(null, \"fill\", \"#E63C52\");\n svgCritical.appendChild(pathCritical);\n odometerContainer.appendChild(svgCritical);\n }\n\n // Text.\n const h1 = document.createElement(\"h1\");\n h1.innerText = number + percent;\n h1.style.fontSize = `${anchoB * 0.17}px`;\n h1.style.color = `${this.props.status}`;\n h1.style.lineHeight = \"0\";\n\n const h2 = document.createElement(\"h2\");\n if (this.props.title == \"\") {\n h2.textContent = this.truncateTitle(this.props.moduleName);\n } else {\n h2.textContent = this.truncateTitle(this.props.title);\n }\n h2.title = this.props.titleModule;\n h2.setAttribute(\"title\", this.props.titleModule);\n\n h2.style.fontSize = `${anchoB * 0.06}px`;\n h2.style.color = `${this.props.titleColor}`;\n h2.style.lineHeight = \"0\";\n\n let script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.onload = () => {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n };\n var url_pandora = window.location.pathname.split(\"/\")[1];\n script.src = `${document.dir}/${url_pandora}/include/javascript/pandora_alerts.js`;\n odometerA.appendChild(h1);\n odometerA.appendChild(h2);\n odometerContainer.appendChild(odometerB);\n odometerContainer.appendChild(odometerC);\n odometerContainer.appendChild(gaugeE);\n odometerContainer.appendChild(odometerA);\n odometerContainer.appendChild(script);\n element.appendChild(odometerContainer);\n\n return element;\n }\n\n protected updateDomElement(element: HTMLElement): void {\n element.innerHTML = this.createDomElement().innerHTML;\n\n let rotate = this.getRotate(this.props.value);\n\n const svgWarning = document.getElementById(`svgWarning-${this.props.id}`);\n if (svgWarning != null) {\n svgWarning.style.display = \"none\";\n }\n\n const svgCritical = document.getElementById(`svgCritical-${this.props.id}`);\n if (svgCritical != null) {\n svgCritical.style.display = \"none\";\n }\n\n setTimeout(() => {\n if (svgWarning != null) {\n svgWarning.style.display = \"block\";\n }\n\n if (svgCritical != null) {\n svgCritical.style.display = \"block\";\n }\n\n var odometerB = document.getElementById(`odometerB-${this.props.id}`);\n if (odometerB) {\n odometerB.style.transform = `rotate(${rotate}turn)`;\n }\n }, 500);\n }\n\n protected resizeElement(width: number): void {\n super.resizeElement(width, width / 2);\n }\n\n /**\n * To update the content element.\n * @override Item.updateDomElement\n */\n public resize(width: number): void {\n this.resizeElement(this.props.width);\n }\n\n private getRotate(value: number): number {\n let rotate = 0;\n if (this.props.minMaxValue === \"\") {\n rotate = value / 2 / 100;\n } else {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === value) {\n rotate = 0;\n } else if (minMax[\"max\"] === value) {\n rotate = 0.5;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n const valueMax = minMax[\"max\"] - value;\n rotate = (100 - (valueMax * 100) / limit) / 100 / 2;\n }\n }\n\n return rotate;\n }\n\n private getSubfix(value: number): string {\n let subfix = \"\";\n const length = (value + \"\").length;\n if (length > 3 && length <= 6) {\n subfix = \" K\";\n } else if (length > 6 && length <= 9) {\n subfix = \" M\";\n } else if (length > 9 && length <= 12) {\n subfix = \" G\";\n } else if (length > 12 && length <= 15) {\n subfix = \" T\";\n }\n\n return subfix;\n }\n\n private getCoords(percent: number, radio: number): string {\n if (this.props.minMaxValue !== \"\") {\n const minMax = JSON.parse(this.props.minMaxValue);\n if (minMax[\"min\"] === percent) {\n percent = 0;\n } else if (minMax[\"max\"] === percent || percent === 100) {\n percent = 100;\n } else {\n const limit = minMax[\"max\"] - minMax[\"min\"];\n let valueMax = minMax[\"max\"] - percent;\n percent = 100 - (valueMax * 100) / limit;\n }\n }\n\n percent = 180 - percent * 1.8;\n const x = radio + Math.cos((percent * Math.PI) / 180) * radio;\n const y = radio - Math.sin((percent * Math.PI) / 180) * radio;\n return `${x},${y}`;\n }\n\n private truncateTitle(title: any): string {\n if (title != null && title.length > 22) {\n const halfLength = title.length / 2;\n const diff = halfLength - 9;\n const stringBefore = title.substr(0, halfLength - diff);\n const stringAfter = title.substr(halfLength + diff);\n\n return `${stringBefore}...${stringAfter}`;\n } else {\n return title;\n }\n }\n}\n","import { AnyObject, Size, Position, WithModuleProps } from \"./lib/types\";\nimport {\n parseBoolean,\n sizePropsDecoder,\n parseIntOr,\n notEmptyStringOr,\n itemMetaDecoder,\n t,\n ellipsize,\n debounce\n} from \"./lib\";\nimport Item, {\n ItemType,\n ItemProps,\n ItemClickEvent,\n ItemRemoveEvent,\n ItemMovedEvent,\n ItemResizedEvent,\n ItemSelectionChangedEvent\n} from \"./Item\";\nimport StaticGraph, { staticGraphPropsDecoder } from \"./items/StaticGraph\";\nimport Icon, { iconPropsDecoder } from \"./items/Icon\";\nimport ColorCloud, { colorCloudPropsDecoder } from \"./items/ColorCloud\";\nimport NetworkLink, { networkLinkPropsDecoder } from \"./items/NetworkLink\";\nimport Group, { groupPropsDecoder } from \"./items/Group\";\nimport Clock, { clockPropsDecoder } from \"./items/Clock\";\nimport Box, { boxPropsDecoder } from \"./items/Box\";\nimport Line, { linePropsDecoder, LineMovedEvent } from \"./items/Line\";\nimport Label, { labelPropsDecoder } from \"./items/Label\";\nimport SimpleValue, { simpleValuePropsDecoder } from \"./items/SimpleValue\";\nimport EventsHistory, {\n eventsHistoryPropsDecoder\n} from \"./items/EventsHistory\";\nimport Percentile, { percentilePropsDecoder } from \"./items/Percentile\";\nimport TypedEvent, { Disposable, Listener } from \"./lib/TypedEvent\";\nimport DonutGraph, { donutGraphPropsDecoder } from \"./items/DonutGraph\";\nimport BarsGraph, { barsGraphPropsDecoder } from \"./items/BarsGraph\";\nimport ModuleGraph, { moduleGraphPropsDecoder } from \"./items/ModuleGraph\";\nimport Service, { servicePropsDecoder } from \"./items/Service\";\nimport Odometer, { odometerPropsDecoder } from \"./items/Odometer\";\nimport BasicChart, { basicChartPropsDecoder } from \"./items/BasicChart\";\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction itemInstanceFrom(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n const meta = itemMetaDecoder(data);\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return new StaticGraph(staticGraphPropsDecoder(data), meta);\n case ItemType.MODULE_GRAPH:\n return new ModuleGraph(moduleGraphPropsDecoder(data), meta);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return new SimpleValue(simpleValuePropsDecoder(data), meta);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return new Percentile(percentilePropsDecoder(data), meta);\n case ItemType.LABEL:\n return new Label(labelPropsDecoder(data), meta);\n case ItemType.ICON:\n return new Icon(iconPropsDecoder(data), meta);\n case ItemType.SERVICE:\n return new Service(servicePropsDecoder(data), meta);\n case ItemType.GROUP_ITEM:\n return new Group(groupPropsDecoder(data), meta);\n case ItemType.BOX_ITEM:\n return new Box(boxPropsDecoder(data), meta);\n case ItemType.LINE_ITEM:\n return new Line(linePropsDecoder(data), meta);\n case ItemType.AUTO_SLA_GRAPH:\n return new EventsHistory(eventsHistoryPropsDecoder(data), meta);\n case ItemType.DONUT_GRAPH:\n return new DonutGraph(donutGraphPropsDecoder(data), meta);\n case ItemType.BARS_GRAPH:\n return new BarsGraph(barsGraphPropsDecoder(data), meta);\n case ItemType.CLOCK:\n return new Clock(clockPropsDecoder(data), meta);\n case ItemType.COLOR_CLOUD:\n return new ColorCloud(colorCloudPropsDecoder(data), meta);\n case ItemType.NETWORK_LINK:\n return new NetworkLink(networkLinkPropsDecoder(data), meta);\n case ItemType.ODOMETER:\n return new Odometer(odometerPropsDecoder(data), meta);\n case ItemType.BASIC_CHART:\n return new BasicChart(basicChartPropsDecoder(data), meta);\n default:\n throw new TypeError(\"item not found\");\n }\n}\n\n// TODO: Document.\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction decodeProps(data: AnyObject) {\n const type = parseIntOr(data.type, null);\n if (type == null) throw new TypeError(\"missing item type.\");\n\n switch (type as ItemType) {\n case ItemType.STATIC_GRAPH:\n return staticGraphPropsDecoder(data);\n case ItemType.MODULE_GRAPH:\n return moduleGraphPropsDecoder(data);\n case ItemType.SIMPLE_VALUE:\n case ItemType.SIMPLE_VALUE_MAX:\n case ItemType.SIMPLE_VALUE_MIN:\n case ItemType.SIMPLE_VALUE_AVG:\n return simpleValuePropsDecoder(data);\n case ItemType.PERCENTILE_BAR:\n case ItemType.PERCENTILE_BUBBLE:\n case ItemType.CIRCULAR_PROGRESS_BAR:\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n return percentilePropsDecoder(data);\n case ItemType.LABEL:\n return labelPropsDecoder(data);\n case ItemType.ICON:\n return iconPropsDecoder(data);\n case ItemType.SERVICE:\n return servicePropsDecoder(data);\n case ItemType.GROUP_ITEM:\n return groupPropsDecoder(data);\n case ItemType.BOX_ITEM:\n return boxPropsDecoder(data);\n case ItemType.LINE_ITEM:\n return linePropsDecoder(data);\n case ItemType.AUTO_SLA_GRAPH:\n return eventsHistoryPropsDecoder(data);\n case ItemType.DONUT_GRAPH:\n return donutGraphPropsDecoder(data);\n case ItemType.BARS_GRAPH:\n return barsGraphPropsDecoder(data);\n case ItemType.CLOCK:\n return clockPropsDecoder(data);\n case ItemType.COLOR_CLOUD:\n return colorCloudPropsDecoder(data);\n case ItemType.NETWORK_LINK:\n return networkLinkPropsDecoder(data);\n case ItemType.ODOMETER:\n return odometerPropsDecoder(data);\n case ItemType.BASIC_CHART:\n return basicChartPropsDecoder(data);\n default:\n throw new TypeError(\"decoder not found\");\n }\n}\n\n// Base properties.\nexport interface VisualConsoleProps extends Size {\n readonly id: number;\n name: string;\n groupId: number;\n backgroundURL: string | null; // URL?\n backgroundColor: string | null;\n isFavorite: boolean;\n relationLineWidth: number;\n maintenanceMode: MaintenanceModeInterface | null;\n gridSize: number | 10;\n gridSelected: boolean | false | false;\n}\n\nexport interface MaintenanceModeInterface {\n user: string;\n timestamp: number;\n}\n\n/**\n * Build a valid typed object from a raw object.\n * This will allow us to ensure the type safety.\n *\n * @param data Raw object.\n * @return An object representing the Visual Console props.\n * @throws Will throw a TypeError if some property\n * is missing from the raw object or have an invalid type.\n */\nexport function visualConsolePropsDecoder(\n data: AnyObject\n): VisualConsoleProps | never {\n // Object destructuring: http://es6-features.org/#ObjectMatchingShorthandNotation\n const {\n id,\n name,\n groupId,\n backgroundURL,\n backgroundColor,\n isFavorite,\n relationLineWidth,\n maintenanceMode,\n gridSize,\n gridSelected\n } = data;\n\n if (id == null || isNaN(parseInt(id))) {\n throw new TypeError(\"invalid Id.\");\n }\n if (typeof name !== \"string\" || name.length === 0) {\n throw new TypeError(\"invalid name.\");\n }\n if (groupId == null || isNaN(parseInt(groupId))) {\n throw new TypeError(\"invalid group Id.\");\n }\n\n return {\n id: parseInt(id),\n name,\n groupId: parseInt(groupId),\n backgroundURL: notEmptyStringOr(backgroundURL, null),\n backgroundColor: notEmptyStringOr(backgroundColor, null),\n isFavorite: parseBoolean(isFavorite),\n relationLineWidth: parseIntOr(relationLineWidth, 0),\n maintenanceMode: maintenanceMode,\n gridSize: parseIntOr(gridSize, 10),\n gridSelected: false,\n ...sizePropsDecoder(data)\n };\n}\n\nexport default class VisualConsole {\n // Reference to the DOM element which will contain the items.\n private readonly containerRef: HTMLElement;\n // Properties.\n private _props: VisualConsoleProps;\n // Visual Console Item instances by their Id.\n private elementsById: {\n [key: number]: Item;\n } = {};\n // Visual Console Item Ids.\n private elementIds: ItemProps[\"id\"][] = [];\n // Dictionary which store the created lines.\n private relations: {\n [key: string]: Line;\n } = {};\n\n // Dictionary which store the related items (by ID).\n private lineLinks: {\n [key: number]: { [key: number]: { [key: string]: number } };\n } = {};\n\n private lines: {\n [key: number]: { [key: string]: number };\n } = {};\n\n // Event manager for click events.\n private readonly clickEventManager = new TypedEvent();\n // Event manager for double click events.\n private readonly dblClickEventManager = new TypedEvent();\n // Event manager for move events.\n private readonly movedEventManager = new TypedEvent();\n // Event manager for line move events.\n private readonly lineMovedEventManager = new TypedEvent();\n // Event manager for resize events.\n private readonly resizedEventManager = new TypedEvent();\n // Event manager for remove events.\n private readonly selectionChangedEventManager = new TypedEvent<\n ItemSelectionChangedEvent\n >();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n /**\n * React to a click on an element.\n * @param e Event object.\n */\n private handleElementClick: (e: ItemClickEvent) => void = e => {\n this.clickEventManager.emit(e);\n // console.log(`Clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a double click on an element.\n * @param e Event object.\n */\n private handleElementDblClick: (e: ItemClickEvent) => void = e => {\n this.dblClickEventManager.emit(e);\n // console.log(`Double clicked element #${e.data.id}`, e);\n };\n\n /**\n * React to a movement on an element.\n * @param e Event object.\n */\n private handleElementMovement: (e: ItemMovedEvent) => void = e => {\n var type = e.item.itemProps.type;\n if (type !== 13 && type !== 21 && this.props.gridSelected === true) {\n var gridSize = this.props.gridSize;\n var positionX = e.newPosition.x;\n var positionY = e.newPosition.y;\n if (positionX % gridSize !== 0 || positionY % gridSize !== 0) {\n var x = Math.floor(positionX / gridSize) * gridSize;\n var y = Math.floor(positionY / gridSize) * gridSize;\n let elemntSelected = document.getElementById(\n \"item-selected-move\"\n ) as HTMLElement;\n elemntSelected.setAttribute(\n \"style\",\n \"top:\" + y + \"px !important; left:\" + x + \"px !important\"\n );\n return;\n }\n }\n // Move their relation lines.\n const itemId = e.item.props.id;\n const relations = this.getItemRelations(itemId);\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(e.newPosition, e.item)\n };\n }\n });\n\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, false);\n\n // console.log(`Moved element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a movement finished on an element.\n * @param e Event object.\n */\n private handleElementMovementFinished: (e: ItemMovedEvent) => void = e => {\n this.movedEventManager.emit(e);\n // Move lines conneted with this item.\n this.updateLinesConnected(e.item.props, e.newPosition, true);\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Verifies if x,y are inside item coordinates.\n * @param x Coordinate X\n * @param y Coordinate Y\n * @param item ItemProps instance.\n */\n private coordinatesInItem(x: number, y: number, props: ItemProps) {\n if (\n props.type == ItemType.LINE_ITEM ||\n props.type == ItemType.NETWORK_LINK\n ) {\n return false;\n }\n\n if (\n x > props.x &&\n x < props.x + props.width &&\n y > props.y &&\n y < props.y + props.height\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * React to a line movement.\n * @param e Event object.\n */\n private handleLineElementMovementFinished: (\n e: LineMovedEvent\n ) => void = e => {\n // Update links.\n this.refreshLink(e.item);\n\n // Build line relationships between items and lines.\n this.lineMovedEventManager.emit(e);\n\n // console.log(`Movement finished for element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a resizement on an element.\n * @param e Event object.\n */\n private handleElementResizement: (e: ItemResizedEvent) => void = e => {\n // Move their relation lines.\n const item = e.item;\n const props = item.props;\n const itemId = props.id;\n const relations = this.getItemRelations(itemId);\n\n const position = {\n x: props.x,\n y: props.y\n };\n\n const meta = this.elementsById[itemId].meta;\n\n this.elementsById[itemId].meta = {\n ...meta,\n isUpdating: true\n };\n\n relations.forEach(relation => {\n if (relation.parentId === itemId) {\n // Move the line start.\n relation.line.props = {\n ...relation.line.props,\n startPosition: this.getVisualCenter(position, item)\n };\n } else if (relation.childId === itemId) {\n // Move the line end.\n relation.line.props = {\n ...relation.line.props,\n endPosition: this.getVisualCenter(position, item)\n };\n }\n });\n\n // console.log(`Resized element #${e.item.props.id}`, e);\n };\n\n /**\n * React to a finished resizement on an element.\n * @param e Event object.\n */\n private handleElementResizementFinished: (\n e: ItemResizedEvent\n ) => void = e => {\n this.resizedEventManager.emit(e);\n // console.log(`Resize fonished for element #${e.item.props.id}`, e);\n };\n\n /**\n * Clear some element references.\n * @param e Event object.\n */\n private handleElementRemove: (e: ItemRemoveEvent) => void = e => {\n // Remove the element from the list and its relations.\n this.elementIds = this.elementIds.filter(id => id !== e.item.props.id);\n delete this.elementsById[e.item.props.id];\n this.clearRelations(e.item.props.id);\n };\n\n /**\n * React to element selection change\n * @param e Event object.\n */\n private handleElementSelectionChanged: (\n e: ItemSelectionChangedEvent\n ) => void = e => {\n if (this.elements.filter(item => item.meta.isSelected == true).length > 0) {\n e.selected = true;\n } else {\n e.selected = false;\n }\n this.selectionChangedEventManager.emit(e);\n };\n\n // TODO: Document\n private handleContainerClick: (e: MouseEvent) => void = () => {\n this.unSelectItems();\n };\n\n /**\n * Refresh link for given line.\n *\n * @param line Line.\n */\n protected refreshLink(l: Line) {\n let line: number = l.props.id;\n let itemAtStart = 0;\n let itemAtEnd = 0;\n\n try {\n for (let i in this.elementsById) {\n if (\n this.coordinatesInItem(\n l.props.startPosition.x,\n l.props.startPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtStart = parseInt(i);\n }\n\n if (\n this.coordinatesInItem(\n l.props.endPosition.x,\n l.props.endPosition.y,\n this.elementsById[i].props\n )\n ) {\n // Start position at element i.\n itemAtEnd = parseInt(i);\n }\n }\n\n if (this.lineLinks == null) {\n this.lineLinks = {};\n }\n\n if (this.lines == null) {\n this.lines = {};\n }\n\n if (itemAtStart == line) {\n itemAtStart = 0;\n }\n\n if (itemAtEnd == line) {\n itemAtEnd = 0;\n }\n\n // Initialize line if not registered.\n if (this.lines[line] == null) {\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n }\n\n // Register 'start' side of the line.\n if (itemAtStart > 0) {\n // Initialize.\n if (this.lineLinks[itemAtStart] == null) {\n this.lineLinks[itemAtStart] = {};\n }\n\n // Assign.\n this.lineLinks[itemAtStart][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Register line if not exists prviously.\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"start\"] > 0) {\n this.lineLinks[this.lines[line][\"start\"]][line][\"start\"] = 0;\n this.lines[line][\"start\"] = 0;\n }\n }\n\n if (itemAtEnd > 0) {\n if (this.lineLinks[itemAtEnd] == null) {\n this.lineLinks[itemAtEnd] = {};\n }\n\n this.lineLinks[itemAtEnd][line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n } else {\n // Clean previous line relationship.\n if (this.lines[line][\"end\"] > 0) {\n this.lineLinks[this.lines[line][\"end\"]][line][\"end\"] = 0;\n this.lines[line][\"end\"] = 0;\n }\n }\n\n this.lines[line] = {\n start: itemAtStart,\n end: itemAtEnd\n };\n\n // Cleanup.\n for (let i in this.lineLinks) {\n if (this.lineLinks[i][line]) {\n if (\n this.lineLinks[i][line].start == 0 &&\n this.lineLinks[i][line].end == 0\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n\n if (\n (this.lineLinks[i][line].start != itemAtStart &&\n this.lineLinks[i][line].end == itemAtEnd) ||\n (this.lineLinks[i][line].start == itemAtStart &&\n this.lineLinks[i][line].end != itemAtEnd)\n ) {\n // Object not connected to a line.\n delete this.lineLinks[i][line];\n\n if (Object.keys(this.lineLinks[i]).length === 0) {\n delete this.lineLinks[i];\n }\n }\n }\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n /**\n * Updates lines connected to this item.\n *\n * @param item Item moved.\n * @param newPosition New location for item.\n * @param oldPosition Old location for item.\n * @param save Save to ajax or not.\n */\n protected updateLinesConnected(item: ItemProps, to: Position, save: boolean) {\n if (this.lineLinks[item.id] == null) {\n return;\n }\n\n Object.keys(this.lineLinks[item.id]).forEach(i => {\n let lineId = parseInt(i);\n const found = this.elementIds.indexOf(lineId);\n if (found === -1) {\n return;\n }\n let line = this.elementsById[lineId] as Line;\n if (line.props) {\n let startX = line.props.startPosition.x;\n let startY = line.props.startPosition.y;\n let endX = line.props.endPosition.x;\n let endY = line.props.endPosition.y;\n\n if (item.id == this.lineLinks[item.id][lineId][\"start\"]) {\n startX = to.x + item.width / 2;\n startY = to.y + item.height / 2;\n }\n\n if (item.id == this.lineLinks[item.id][lineId][\"end\"]) {\n endX = to.x + item.width / 2;\n endY = to.y + item.height / 2;\n }\n\n // Update line movement.\n this.updateElement({\n ...line.props,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n\n if (save) {\n let debouncedLinePositionSave = debounce(\n 500,\n (options: AnyObject) => {\n this.lineMovedEventManager.emit({\n item: options.line,\n startPosition: {\n x: options.startX,\n y: options.startY\n },\n endPosition: {\n x: options.endX,\n y: options.endY\n }\n });\n }\n );\n\n // Save line positon.\n debouncedLinePositionSave({\n line: line,\n startX: startX,\n startY: startY,\n endX: endX,\n endY: endY\n });\n }\n }\n });\n\n // Update parents...\n this.buildRelations(item.id, to.x + item.width / 2, to.y + item.height / 2);\n }\n\n public constructor(\n container: HTMLElement,\n props: AnyObject,\n items: AnyObject[]\n ) {\n this.containerRef = container;\n this._props = visualConsolePropsDecoder(props);\n\n // Force the first render.\n this.render();\n\n // Sort by id ASC\n items = items.sort(function(a, b) {\n if (a.id == null || b.id == null) return 0;\n else if (a.id > b.id) return 1;\n else return -1;\n });\n\n // Initialize the items.\n items.forEach(item => this.addElement(item, this));\n\n // Create lines.\n this.buildRelations();\n\n // Re-attach all connected lines if any.\n this.elements.forEach(item => {\n if (item instanceof Line) {\n this.refreshLink(item);\n }\n });\n\n this.containerRef.addEventListener(\"click\", this.handleContainerClick);\n }\n\n /**\n * Public accessor of the `elements` property.\n * @return Properties.\n */\n public get elements(): Item[] {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n return this.elementIds\n .map(id => this.elementsById[id])\n .filter(_ => _ != null) as Item[];\n }\n\n /**\n * To create a new element add it to the DOM.\n * @param item. Raw representation of the item's data.\n */\n public addElement(item: AnyObject, context: this = this) {\n try {\n const itemInstance = itemInstanceFrom(item);\n // Add the item to the list.\n context.elementsById[itemInstance.props.id] = itemInstance;\n context.elementIds.push(itemInstance.props.id);\n // Item event handlers.\n itemInstance.onRemove(context.handleElementRemove);\n itemInstance.onSelectionChanged(context.handleElementSelectionChanged);\n itemInstance.onClick(context.handleElementClick);\n itemInstance.onDblClick(context.handleElementDblClick);\n\n // TODO:Continue\n if (itemInstance instanceof Line) {\n itemInstance.onLineMovementFinished(\n context.handleLineElementMovementFinished\n );\n this.refreshLink(itemInstance);\n } else {\n itemInstance.onMoved(context.handleElementMovement);\n itemInstance.onMovementFinished(context.handleElementMovementFinished);\n itemInstance.onResized(context.handleElementResizement);\n itemInstance.onResizeFinished(context.handleElementResizementFinished);\n }\n\n // Add the item to the DOM.\n context.containerRef.append(itemInstance.elementRef);\n return itemInstance;\n } catch (error) {\n console.error(\"Error creating a new element:\", (error as Error).message);\n }\n return;\n }\n\n /**\n * Public setter of the `elements` property.\n * @param items.\n */\n public updateElements(items: AnyObject[]): void {\n // Ensure the type cause Typescript doesn't know the filter removes null items.\n const itemIds = items\n .map(item => item.id || null)\n .filter(id => id != null) as number[];\n // Get the elements we should delete.\n const deletedIds = this.elementIds.filter(id => itemIds.indexOf(id) < 0);\n // Delete the elements.\n deletedIds.forEach(id => {\n if (this.elementsById[id] != null) {\n this.elementsById[id].remove();\n delete this.elementsById[id];\n }\n });\n // Replace the element ids.\n this.elementIds = itemIds;\n\n // Initialize the items.\n items.forEach(item => {\n if (item.id) {\n if (this.elementsById[item.id] == null) {\n // New item.\n this.addElement(item);\n } else {\n // Update item.\n try {\n this.elementsById[item.id].props = decodeProps(item);\n } catch (error) {\n console.error(\n \"Error updating an element:\",\n (error as Error).message\n );\n }\n }\n }\n });\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public setter of the `element` property.\n * @param item.\n */\n public updateElement(item: AnyObject): void {\n // Update item.\n try {\n this.elementsById[item.id].props = {\n ...decodeProps(item)\n };\n } catch (error) {\n console.error(\"Error updating element:\", (error as Error).message);\n }\n\n // Re-build relations.\n this.buildRelations();\n }\n\n /**\n * Public accessor of the `props` property.\n * @return Properties.\n */\n public get props(): VisualConsoleProps {\n return { ...this._props }; // Return a copy.\n }\n\n /**\n * Public setter of the `props` property.\n * If the new props are different enough than the\n * stored props, a render would be fired.\n * @param newProps\n */\n public set props(newProps: VisualConsoleProps) {\n const prevProps = this.props;\n // Update the internal props.\n this._props = newProps;\n\n // From this point, things which rely on this.props can access to the changes.\n\n // Re-render.\n this.render(prevProps);\n }\n\n /**\n * Recreate or update the HTMLElement which represents the Visual Console into the DOM.\n * @param prevProps If exists it will be used to only DOM updates instead of a full replace.\n */\n public render(prevProps: VisualConsoleProps | null = null): void {\n if (prevProps) {\n if (prevProps.backgroundURL !== this.props.backgroundURL) {\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n }\n if (this.props.backgroundColor != null)\n if (prevProps.backgroundColor !== this.props.backgroundColor) {\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n }\n if (this.sizeChanged(prevProps, this.props)) {\n this.resizeElement(this.props.width, this.props.height);\n }\n } else {\n if (this.props.backgroundURL)\n this.containerRef.style.backgroundImage =\n this.props.backgroundURL !== null\n ? `url(${this.props.backgroundURL})`\n : \"\";\n\n if (this.props.backgroundColor)\n this.containerRef.style.backgroundColor = this.props.backgroundColor;\n this.resizeElement(this.props.width, this.props.height);\n }\n }\n\n /**\n * Compare the previous and the new size and return\n * a boolean value in case the size changed.\n * @param prevSize\n * @param newSize\n * @return Whether the size changed or not.\n */\n public sizeChanged(prevSize: Size, newSize: Size): boolean {\n return (\n prevSize.width !== newSize.width || prevSize.height !== newSize.height\n );\n }\n\n /**\n * Resize the DOM container.\n * @param width\n * @param height\n */\n public resizeElement(width: number, height: number): void {\n this.containerRef.style.width = `${width}px`;\n this.containerRef.style.height = `${height}px`;\n }\n\n /**\n * Update the size into the properties and resize the DOM container.\n * @param width\n * @param height\n */\n public resize(width: number, height: number): void {\n this.props = {\n ...this.props, // Object spread: http://es6-features.org/#SpreadOperator\n width,\n height\n };\n }\n\n /**\n * To remove the event listeners and the elements from the DOM.\n */\n public remove(): void {\n this.disposables.forEach(d => d.dispose()); // Arrow function.\n this.elements.forEach(e => e.remove()); // Arrow function.\n this.elementsById = {};\n this.elementIds = [];\n // Clear relations.\n this.clearRelations();\n // Remove the click event listener.\n this.containerRef.removeEventListener(\"click\", this.handleContainerClick);\n // Clean container.\n this.containerRef.innerHTML = \"\";\n }\n\n /**\n * Create line elements which connect the elements with their parents.\n *\n * When itemId is being moved, overwrite position of the 'parent' or 'child'\n * endpoints of the line, using X and Y values.\n */\n public buildRelations(itemId?: number, x?: number, y?: number): void {\n // Clear relations.\n this.clearRelations();\n // Add relations.\n this.elements.forEach(item => {\n if (item.props.parentId !== null) {\n const parent = this.elementsById[item.props.parentId];\n const child = this.elementsById[item.props.id];\n\n if (parent && child) {\n if (itemId != undefined) {\n if (item.props.parentId == itemId) {\n // Update parent line position.\n this.addRelationLine(parent, child, x, y);\n } else if (item.props.id == itemId) {\n // Update child line position.\n this.addRelationLine(parent, child, undefined, undefined, x, y);\n } else {\n this.addRelationLine(parent, child);\n }\n } else {\n // No movements default behaviour.\n this.addRelationLine(parent, child);\n }\n }\n }\n });\n }\n\n /**\n * @param itemId Optional identifier of a parent or child item.\n * Remove the line elements which connect the elements with their parents.\n */\n private clearRelations(itemId?: number): void {\n if (itemId != null) {\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n } else {\n for (let key in this.relations) {\n this.relations[key].remove();\n delete this.relations[key];\n }\n }\n }\n\n /**\n * Retrieve the line element which represent the relation between items.\n * @param parentId Identifier of the parent item.\n * @param childId Itentifier of the child item.\n * @return The line element or nothing.\n */\n private getRelationLine(parentId: number, childId: number): Line | null {\n const identifier = `${parentId}|${childId}`;\n return this.relations[identifier] || null;\n }\n\n // TODO: Document.\n private getItemRelations(\n itemId: number\n ): {\n parentId: number;\n childId: number;\n line: Line;\n }[] {\n const itemRelations = [];\n\n for (let key in this.relations) {\n const ids = key.split(\"|\");\n const parentId = Number.parseInt(ids[0]);\n const childId = Number.parseInt(ids[1]);\n\n if (itemId === parentId || itemId === childId) {\n itemRelations.push({\n parentId,\n childId,\n line: this.relations[key]\n });\n }\n }\n\n return itemRelations;\n }\n\n /**\n * Retrieve the visual center of the item. It's ussually the center of the\n * content, like the label doesn't exist.\n * @param position Initial position.\n * @param element Element we want to use.\n */\n private getVisualCenter(\n position: Position,\n element: Item\n ): Position {\n let x = position.x + element.elementRef.clientWidth / 2;\n let y = position.y + element.elementRef.clientHeight / 2;\n if (\n typeof element.props.label !== \"undefined\" ||\n element.props.label !== \"\" ||\n element.props.label !== null\n ) {\n switch (element.props.labelPosition) {\n case \"up\":\n y =\n position.y +\n (element.elementRef.clientHeight +\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"down\":\n y =\n position.y +\n (element.elementRef.clientHeight -\n element.labelElementRef.clientHeight) /\n 2;\n break;\n case \"right\":\n x =\n position.x +\n (element.elementRef.clientWidth -\n element.labelElementRef.clientWidth) /\n 2;\n break;\n case \"left\":\n x =\n position.x +\n (element.elementRef.clientWidth +\n element.labelElementRef.clientWidth) /\n 2;\n break;\n }\n }\n return { x, y };\n }\n\n /**\n * Add a new line item to represent a relation between the items.\n * @param parent Parent item.\n * @param child Child item.\n * @return Whether the line was added or not.\n */\n private addRelationLine(\n parent: Item,\n child: Item,\n parentX?: number,\n parentY?: number,\n childX?: number,\n childY?: number\n ): Line {\n const identifier = `${parent.props.id}|${child.props.id}`;\n if (this.relations[identifier] != null) {\n this.relations[identifier].remove();\n }\n\n // Get the items center.\n let { x: startX, y: startY } = this.getVisualCenter(parent.props, parent);\n let { x: endX, y: endY } = this.getVisualCenter(child.props, child);\n\n // Overwrite positions if needed (while moving it!).\n if (parentX != null) {\n startX = parentX;\n }\n\n if (parentY != null) {\n startY = parentY;\n }\n\n if (childX != null) {\n endX = childX;\n }\n\n if (childY != null) {\n endY = childY;\n }\n\n // Line inherits child element status.\n const line = new Line(\n linePropsDecoder({\n id: 0,\n type: ItemType.LINE_ITEM,\n startX,\n startY,\n endX,\n endY,\n width: 0,\n height: 0,\n lineWidth: this.props.relationLineWidth,\n color: notEmptyStringOr(child.props.colorStatus, \"#CCC\")\n }),\n itemMetaDecoder({\n receivedAt: new Date()\n })\n );\n // Save a reference to the line item.\n this.relations[identifier] = line;\n\n // Add the line to the DOM.\n line.elementRef.style.zIndex = \"0\";\n this.containerRef.append(line.elementRef);\n\n return line;\n }\n\n /**\n * Add an event handler to the click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is clicked.\n */\n public onItemClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.clickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the double click of the linked visual console elements.\n * @param listener Function which is going to be executed when a linked console is double clicked.\n */\n public onItemDblClick(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.dblClickEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.movedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the movement of the visual console line elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onLineMoved(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.lineMovedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the resizement of the visual console elements.\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemResized(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.resizedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Add an event handler to the elements selection change of the visual console .\n * @param listener Function which is going to be executed when a linked console is moved.\n */\n public onItemSelectionChanged(\n listener: Listener\n ): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.selectionChangedEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n\n /**\n * Enable the edition mode.\n */\n public enableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: true };\n });\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Disable the edition mode.\n */\n public disableEditMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, editMode: false };\n });\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Enable the maintenance mode.\n */\n public enableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: true };\n });\n this.containerRef.classList.add(\"is-maintenance\");\n this.containerRef.classList.remove(\"is-editing\");\n }\n\n /**\n * Disable the maintenance mode.\n */\n public disableMaintenanceMode(): void {\n this.elements.forEach(item => {\n item.meta = { ...item.meta, maintenanceMode: false };\n });\n this.containerRef.classList.remove(\"is-maintenance\");\n this.containerRef.classList.add(\"is-editing\");\n }\n\n /**\n * Update the gridSize.\n */\n public updateGridSize(gridSize: string): void {\n this._props.gridSize = parseInt(gridSize);\n this.props.gridSize = parseInt(gridSize);\n }\n\n /**\n * Update the gridSize.\n */\n public updateGridSelected(gridSelected: boolean): void {\n this._props.gridSelected = gridSelected;\n this.props.gridSelected = gridSelected;\n }\n\n /**\n * Select an item.\n * @param itemId Item Id.\n * @param unique To remove the selection of other items or not.\n */\n public selectItem(itemId: number, unique: boolean = false): void {\n if (unique) {\n this.elementIds.forEach(currentItemId => {\n const meta = this.elementsById[currentItemId].meta;\n\n if (currentItemId !== itemId && meta.isSelected) {\n this.elementsById[currentItemId].unSelectItem();\n } else if (currentItemId === itemId && !meta.isSelected) {\n this.elementsById[currentItemId].selectItem();\n }\n });\n } else if (this.elementsById[itemId]) {\n this.elementsById[itemId].selectItem();\n }\n }\n\n /**\n * Unselect an item.\n * @param itemId Item Id.\n */\n public unSelectItem(itemId: number): void {\n if (this.elementsById[itemId]) {\n const meta = this.elementsById[itemId].meta;\n\n if (meta.isSelected) {\n this.elementsById[itemId].unSelectItem();\n }\n }\n }\n\n /**\n * Unselect all items.\n */\n public unSelectItems(): void {\n this.elementIds.forEach(itemId => {\n if (this.elementsById[itemId]) {\n this.elementsById[itemId].unSelectItem();\n }\n });\n }\n\n // TODO: Document.\n public static items = {\n [ItemType.STATIC_GRAPH]: StaticGraph,\n [ItemType.MODULE_GRAPH]: ModuleGraph,\n [ItemType.SIMPLE_VALUE]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MAX]: SimpleValue,\n [ItemType.SIMPLE_VALUE_MIN]: SimpleValue,\n [ItemType.SIMPLE_VALUE_AVG]: SimpleValue,\n [ItemType.PERCENTILE_BAR]: Percentile,\n [ItemType.PERCENTILE_BUBBLE]: Percentile,\n [ItemType.CIRCULAR_PROGRESS_BAR]: Percentile,\n [ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR]: Percentile,\n [ItemType.LABEL]: Label,\n [ItemType.ICON]: Icon,\n [ItemType.SERVICE]: Service,\n [ItemType.GROUP_ITEM]: Group,\n [ItemType.BOX_ITEM]: Box,\n [ItemType.LINE_ITEM]: Line,\n [ItemType.AUTO_SLA_GRAPH]: EventsHistory,\n [ItemType.DONUT_GRAPH]: DonutGraph,\n [ItemType.BARS_GRAPH]: BarsGraph,\n [ItemType.CLOCK]: Clock,\n [ItemType.COLOR_CLOUD]: ColorCloud,\n [ItemType.NETWORK_LINK]: NetworkLink,\n [ItemType.ODOMETER]: Odometer,\n [ItemType.BASIC_CHART]: BasicChart\n };\n\n /**\n * Relying type item and srcimg and agent and module\n * name convert name item representative.\n *\n * @param item Instance item from extract name.\n *\n * @return Name item.\n */\n public static itemDescriptiveName(item: Item): string {\n let text: string;\n switch (item.props.type) {\n case ItemType.STATIC_GRAPH:\n text = `${t(\"Static graph\")} - ${(item as StaticGraph).props.imageSrc}`;\n break;\n case ItemType.MODULE_GRAPH:\n text = t(\"Module graph\");\n break;\n case ItemType.CLOCK:\n text = t(\"Clock\");\n break;\n case ItemType.BARS_GRAPH:\n text = t(\"Bars graph\");\n break;\n case ItemType.AUTO_SLA_GRAPH:\n text = t(\"Event history graph\");\n break;\n case ItemType.PERCENTILE_BAR:\n text = t(\"Percentile bar\");\n break;\n case ItemType.CIRCULAR_PROGRESS_BAR:\n text = t(\"Circular progress bar\");\n break;\n case ItemType.CIRCULAR_INTERIOR_PROGRESS_BAR:\n text = t(\"Circular progress bar (interior)\");\n break;\n case ItemType.SIMPLE_VALUE:\n text = t(\"Simple Value\");\n break;\n case ItemType.LABEL:\n text = t(\"Label\");\n break;\n case ItemType.GROUP_ITEM:\n text = t(\"Group\");\n break;\n case ItemType.COLOR_CLOUD:\n text = t(\"Color cloud\");\n break;\n case ItemType.ICON:\n text = `${t(\"Icon\")} - ${(item as Icon).props.imageSrc}`;\n break;\n case ItemType.ODOMETER:\n text = t(\"Odometer\");\n break;\n case ItemType.BASIC_CHART:\n text = t(\"BasicChart\");\n break;\n default:\n text = t(\"Item\");\n break;\n }\n\n const linkedAgentAndModuleProps = item.props as Partial;\n if (\n linkedAgentAndModuleProps.agentAlias != null &&\n linkedAgentAndModuleProps.moduleName != null\n ) {\n text += ` (${ellipsize(\n linkedAgentAndModuleProps.agentAlias,\n 18\n )} - ${ellipsize(linkedAgentAndModuleProps.moduleName, 25)})`;\n } else if (linkedAgentAndModuleProps.agentAlias != null) {\n text += ` (${ellipsize(linkedAgentAndModuleProps.agentAlias, 25)})`;\n }\n\n return text;\n }\n}\n","import TypedEvent, { Disposable, Listener } from \"./TypedEvent\";\n\ninterface Cancellable {\n cancel(): void;\n}\n\ntype AsyncTaskStatus = \"waiting\" | \"started\" | \"cancelled\" | \"finished\";\ntype AsyncTaskInitiator = (done: () => void) => Cancellable;\n\n/**\n * Defines an async task which can be started and cancelled.\n * It's possible to observe the status changes of the task.\n */\nclass AsyncTask {\n private readonly taskInitiator: AsyncTaskInitiator;\n private cancellable: Cancellable = { cancel: () => {} };\n private _status: AsyncTaskStatus = \"waiting\";\n\n // Event manager for status change events.\n private readonly statusChangeEventManager = new TypedEvent();\n // List of references to clean the event listeners.\n private readonly disposables: Disposable[] = [];\n\n public constructor(taskInitiator: AsyncTaskInitiator) {\n this.taskInitiator = taskInitiator;\n }\n\n /**\n * Public setter of the `status` property.\n * @param status.\n */\n public set status(status: AsyncTaskStatus) {\n this._status = status;\n this.statusChangeEventManager.emit(status);\n }\n\n /**\n * Public accessor of the `status` property.\n * @return status.\n */\n public get status() {\n return this._status;\n }\n\n /**\n * Start the async task.\n */\n public init(): void {\n this.cancellable = this.taskInitiator(() => {\n this.status = \"finished\";\n });\n this.status = \"started\";\n }\n\n /**\n * Cancel the async task.\n */\n public cancel(): void {\n this.cancellable.cancel();\n this.status = \"cancelled\";\n }\n\n /**\n * Add an event handler to the status change.\n * @param listener Function which is going to be executed when the status changes.\n */\n public onStatusChange(listener: Listener): Disposable {\n /*\n * The '.on' function returns a function which will clean the event\n * listener when executed. We store all the 'dispose' functions to\n * call them when the item should be cleared.\n */\n const disposable = this.statusChangeEventManager.on(listener);\n this.disposables.push(disposable);\n\n return disposable;\n }\n}\n\n/**\n * Wrap an async task into another which will execute that task indefinitely\n * every time the tash finnish and the chosen period ends.\n * Will last until cancellation.\n *\n * @param task Async task to execute.\n * @param period Time in milliseconds to wait until the next async esecution.\n *\n * @return A new async task.\n */\nfunction asyncPeriodic(task: AsyncTask, period: number): AsyncTask {\n return new AsyncTask(() => {\n let ref: number | null = null;\n\n task.onStatusChange(status => {\n if (status === \"finished\") {\n ref = window.setTimeout(() => {\n task.init();\n }, period);\n }\n });\n\n task.init();\n\n return {\n cancel: () => {\n if (ref) clearTimeout(ref);\n task.cancel();\n }\n };\n });\n}\n\n/**\n * Manages a list of async tasks.\n */\nexport default class AsyncTaskManager {\n private tasks: { [identifier: string]: AsyncTask } = {};\n\n /**\n * Adds an async task to the manager.\n *\n * @param identifier Unique identifier.\n * @param taskInitiator Function to initialize the async task.\n * Should return a structure to cancel the task.\n * @param period Optional period to repeat the task indefinitely.\n */\n public add(\n identifier: string,\n taskInitiator: AsyncTaskInitiator,\n period: number = 0\n ): AsyncTask {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n\n const asyncTask =\n period > 0\n ? asyncPeriodic(new AsyncTask(taskInitiator), period)\n : new AsyncTask(taskInitiator);\n\n this.tasks[identifier] = asyncTask;\n\n return this.tasks[identifier];\n }\n\n /**\n * Starts an async task.\n *\n * @param identifier Unique identifier.\n */\n public init(identifier: string) {\n if (\n this.tasks[identifier] &&\n (this.tasks[identifier].status === \"waiting\" ||\n this.tasks[identifier].status === \"cancelled\" ||\n this.tasks[identifier].status === \"finished\")\n ) {\n this.tasks[identifier].init();\n }\n }\n\n /**\n * Cancel a running async task.\n *\n * @param identifier Unique identifier.\n */\n public cancel(identifier: string) {\n if (this.tasks[identifier] && this.tasks[identifier].status === \"started\") {\n this.tasks[identifier].cancel();\n }\n }\n}\n","/*\n * Useful resources.\n * http://es6-features.org/\n * http://exploringjs.com/es6\n * https://www.typescriptlang.org/\n */\n\nimport \"./main.css\"; // CSS import.\nimport VisualConsole from \"./VisualConsole\";\nimport * as Form from \"./Form\";\nimport AsyncTaskManager from \"./lib/AsyncTaskManager\";\n\n// Export the VisualConsole class to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole = VisualConsole;\n\n// Export the VisualConsole's Form classes to the global object.\n// eslint-disable-next-line\n(window as any).VisualConsole.Form = Form;\n\n// Export the AsyncTaskManager class to the global object.\n// eslint-disable-next-line\n(window as any).AsyncTaskManager = AsyncTaskManager;\n"],"names":["name","initialData","_name","currentData","dataRequestedEventManager","this","length","RangeError","_element","element","document","createElement","className","content","createContent","Array","forEach","appendChild","reset","updateData","data","requestData","identifier","params","done","emit","onDataRequested","listener","on","title","inputGroups","enabledInputGroups","inputGroupsByName","enabledInputGroupNames","submitEventManager","itemDataRequestedEventManager","handleItemDataRequested","reduce","prevVal","inputGroup","filter","getInputGroup","inputGroupName","addInputGroup","index","slice","removeInputGroup","getFormElement","type","form","id","addEventListener","e","preventDefault","nativeEvent","formContent","onSubmit","onInputGroupDataRequested","parseLabelPosition","labelPosition","itemBasePropsDecoder","isNaN","parseInt","TypeError","label","isLinkEnabled","link","isOnTop","parentId","aclGroupId","cacheExpiration","colorStatus","cellId","alertOutline","props","metadata","deferInit","elementRef","labelElementRef","childElementRef","clickEventManager","dblClickEventManager","movedEventManager","movementFinishedEventManager","resizedEventManager","resizeFinishedEventManager","removeEventManager","selectionChangedEventManager","disposables","debouncedMovementSave","x","y","_metadata","isBeingMoved","prevPosition","newPosition","positionChanged","move","item","removeMovement","debouncedResizementSave","width","height","isBeingResized","prevSize","newSize","sizeChanged","resize","removeResizement","itemProps","init","initMovementListener","meta","isSelected","moveElement","stopMovementListener","initResizementListener","getBoundingClientRect","labelWidth","labelHeight","resizeElement","stopResizementListener","createContainerDomElement","createLabelDomElement","createDomElement","changeLabelPosition","box","href","classList","add","style","left","top","unSelectItem","selectItem","editMode","stopPropagation","divParent","divSpinner","path","composedPath","containerId","undefined","includes","containerVC","getElementById","maintenanceMode","isFetching","isUpdating","getLabelWithMacrosReplaced","table","row","emptyRow1","emptyRow2","cell","innerHTML","textAlign","macro","value","Date","agentAlias","agentDescription","agentAddress","moduleName","moduleDescription","updateDomElement","newProps","setProps","prevProps","shouldBeUpdated","render","newMetadata","setMeta","prevMetadata","selected","prevMeta","oldLabelHtml","newLabelHtml","remove","container","attrs","attributes","i","nodeName","cloneIsNeeded","getAttributeNode","setAttributeNode","cloneNode","parentNode","replaceChild","setAttribute","div","querySelector","parentElement","removeChild","removeAttribute","disposable","dispose","ignored","position","flexDirection","tables","getElementsByTagName","onClick","push","onDblClick","onMoved","onMovementFinished","onResized","onResizeFinished","onRemove","onSelectionChanged","getFormContainer","VisualConsoleItem","t","titleItem","FormContainer","parseBarsGraphProps","backgroundColor","parseTypeGraph","typeGraph","barsGraphPropsDecoder","html","encodedHtml","gridColor","agentDisabled","moduleDisabled","opacity","scripts","src","setTimeout","eval","trim","basicChartPropsDecoder","period","parseFloat","status","moduleNameColor","header","textContent","color","number_format","moduleValue","legendP","margin","overviewGraphs","getElementsByClassName","insertBefore","firstChild","number","force_integer","unit","short_data","divisor","Math","round","aux_decimals","pad","Number","pos","abs","input","padding","str","donutGraphPropsDecoder","legendBackgroundColor","eventsHistoryPropsDecoder","maxTime","legendColor","flotText","aux","parseBackgroundType","backgroundType","parseGraphType","graphType","moduleGraphPropsDecoder","customGraphId","svgNS","iconDefinition","size","spin","pulse","iconName","icon","createElementNS","pathData","listeners","listenersOncer","off","once","callbackIndex","indexOf","splice","event","pipe","te","parseIntOr","defaultValue","parseFloatOr","stringIsEmpty","notEmptyStringOr","parseBoolean","leftPad","diffLength","substr","substring","repeatTimes","floor","restLength","newPad","positionPropsDecoder","sizePropsDecoder","modulePropsDecoder","moduleId","agentProps","agentId","agentName","metaconsoleId","agentPropsDecoder","linkedVCPropsDecoder","linkedLayoutStatusProps","linkedLayoutStatusType","weight","linkedLayoutStatusTypeWeight","warningThreshold","linkedLayoutStatusTypeWarningThreshold","criticalThreshold","linkedLayoutStatusTypeCriticalThreshold","linkedLayoutId","linkedLayoutNodeId","itemMetaDecoder","receivedAt","getTime","error","Error","isFromCache","lineMode","prefixedCssRules","ruleName","ruleValue","rule","decodeBase64","decodeURIComponent","escape","window","atob","humanDate","date","locale","Intl","DateTimeFormat","day","month","year","format","getDate","getMonth","getFullYear","humanTime","hours","getHours","minutes","getMinutes","seconds","getSeconds","replaceMacros","macros","text","acc","replace","throttle","delay","fn","last","now","args","debounce","timerRef","clearTimeout","getOffset","el","parent","offsetLeft","offsetTop","scrollLeft","scrollTop","offsetParent","addMovementListener","altContainer","isDraggable","draggable","lastX","lastY","lastMouseX","lastMouseY","mouseElementOffsetX","mouseElementOffsetY","containerBounds","containerOffset","containerTop","containerBottom","containerLeft","containerRight","elementBounds","borderWidth","getComputedStyle","borderFix","debouncedMovement","throttledMovement","handleMove","mouseX","pageX","mouseY","pageY","mouseDeltaX","mouseDeltaY","maxX","maxY","outOfBoundsLeft","outOfBoundsRight","outOfBoundsTop","outOfBoundsBottom","handleEnd","removeEventListener","body","userSelect","handleStart","button","elementOffset","offsetX","offsetY","addResizementListener","resizeDraggable","lastWidth","lastHeight","elementTop","elementLeft","debouncedResizement","throttledResizement","handleResize","ellipsize","max","ellipse","__webpack_module_cache__","__webpack_require__","cachedModule","exports","module","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","parseShowLastValueTooltip","showLastValueTooltip","staticGraphPropsDecoder","imageSrc","statusImageSrc","lastValue","imgSrc","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","Item","iconPropsDecoder","image","faPlusCircle","prefix","faTrashAlt","colorCloudPropsDecoder","defaultColor","colorRanges","generalDiv","colorLabel","ColorInput","required","target","InputGroup","rangesLabel","createLabel","rangesControlsContainer","createdRangesContainer","buildRanges","ranges","colorRange","rangeContainer","range","handleRangeUpdatePartial","newRanges","handleDelete","initialRangeContainer","onCreate","initialState","state","rangesContainer","rangesContainerFromValue","rangesLabelFromValue","rangesInputFromValue","createInputNumber","fromValue","rangesDivContainerToValue","rangesLabelToValue","rangesInputToValue","toValue","rangesDivContainerColor","rangesLabelColor","rangesInputColor","createInputColor","createBtn","onUpdate","onDelete","deleteBtn","append","createSvgElement","gradientId","svg","defs","radialGradient","stop0","stop100","circle","ColorCloud","formContainer","ColorInputGroup","RangesInputGroup","linePropsDecoder","startPosition","startX","startY","endPosition","endX","endY","lineWidth","borderColor","viewportOffsetX","viewportOffsetY","labelEnd","labelEndWidth","linkedEnd","linkedStart","labelEndHeight","labelStart","labelStartWidth","labelStartHeight","Line","extractBoxSizeAndPosition","circleRadius","moveMode","isMoving","lineMovedEventManager","TypedEvent","lineMovedEventDisposables","debouncedStartPositionMovementSave","removeStartPositionMovement","debouncedEndPositionMovementSave","removeEndPositionMovement","initStartPositionMovementListener","stopStartPositionMovementListener","initEndPositionMovementListener","stopEndPositionMovementListener","x1","y1","x2","y2","line","cursor","svgs","lines","getElementsByTagNameNS","startCircle","endCircle","circlesStart","circlesEnd","borderRadius","circles","min","startIsLeft","startIsTop","start","end","onLineMovementFinished","networkLinkPropsDecoder","groups","adjustment","lineX1","lineY1","lineX2","lineY2","g","atan2","PI","split","l","labels","arrows","arrow","arrowSize","arrowPosX","arrowPosY","arrowStart","border","borderBottom","transform","arrowEnd","htmlLabelStart","console","htmlLabelEnd","groupPropsDecoder","groupId","showStatistics","extractHtml","parseClockType","clockType","parseClockFormat","clockFormat","clockPropsDecoder","clockTimezone","clockTimezoneOffset","showClockTimezone","intervalRef","startTick","createClock","Clock","TICK_INTERVAL","stopTick","clearInterval","handler","interval","setInterval","getElementSize","newWidth","newHeight","createAnalogicClock","createDigitalClock","colors","dateFontSize","baseTimeFontSize","clockFace","clockFaceBackground","city","getHumanTimezone","timezoneComplication","marksGroup","mainMarkGroup","mark1a","mark1b","mark","hourHand","hourHandA","hourHandB","minuteHand","minuteHandA","minuteHandB","minuteHandPin","secondHand","secondHandBar","secondHandPin","pin","getOriginDate","secAngle","minuteAngle","hourAngle","join","dateElem","fontSize","modified","tzFontSizeMultiplier","timeFontSize","tzFontSize","timeElem","tzElem","initialDate","targetTZOffset","localTZOffset","getTimezoneOffset","utimestamp","timezone","diameter","extraHeigth","boxPropsDecoder","fillColor","fillTransparent","boxSizing","borderStyle","maxBorderWidth","labelPropsDecoder","parseValueType","valueType","simpleValuePropsDecoder","processValue","parseProcessValue","img","pi","tau","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_","constructor","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","sqrt","l01","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","toString","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","extractPercentileType","extractValueType","percentilePropsDecoder","percentileType","minValue","maxValue","labelColor","formatValue","background","progress","getProgress","NumberFormat","backgroundRect","progressRect","backgroundCircle","progressCircle","arcProps","cornerRadius","constant","padRadius","context","buffer","r0","apply","arguments","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","a","trunc","servicePropsDecoder","encodedTitle","serviceId","odometerPropsDecoder","titleColor","titleModule","thresholds","minMaxValue","odometerType","lineWarning","lineWarning2","lineCritical","lineCritical2","JSON","parse","min_warning","max_warning","getCoords","min_critical","max_critical","percent","toFixed","getSubfix","maximumSignificantDigits","maximumFractionDigits","numb","match","rotate","getRotate","anchoB","odometerContainer","odometerA","odometerB","odometerC","gaugeE","SVG_NS","svgWarning","setAttributeNS","pathWarning","svgCritical","pathCritical","h1","innerText","lineHeight","h2","truncateTitle","script","onload","url_pandora","location","pathname","dir","display","minMax","limit","subfix","radio","halfLength","diff","stringBefore","stringAfter","decodeProps","items","elementsById","elementIds","relations","lineLinks","handleElementClick","handleElementDblClick","handleElementMovement","gridSelected","gridSize","positionX","positionY","itemId","getItemRelations","relation","getVisualCenter","childId","updateLinesConnected","handleElementMovementFinished","handleLineElementMovementFinished","refreshLink","handleElementResizement","handleElementResizementFinished","handleElementRemove","clearRelations","handleElementSelectionChanged","elements","handleContainerClick","unSelectItems","containerRef","_props","backgroundURL","isFavorite","relationLineWidth","visualConsolePropsDecoder","sort","b","addElement","buildRelations","coordinatesInItem","itemAtStart","itemAtEnd","keys","to","save","lineId","updateElement","options","debouncedLinePositionSave","map","itemInstance","ModuleGraph","EventsHistory","DonutGraph","BarsGraph","BasicChart","itemInstanceFrom","message","updateElements","itemIds","child","addRelationLine","ids","getRelationLine","itemRelations","clientWidth","clientHeight","parentX","parentY","childX","childY","zIndex","onItemClick","onItemDblClick","onItemMoved","onLineMoved","onItemResized","onItemSelectionChanged","enableEditMode","disableEditMode","enableMaintenanceMode","disableMaintenanceMode","updateGridSize","updateGridSelected","unique","currentItemId","itemDescriptiveName","linkedAgentAndModuleProps","taskInitiator","cancellable","cancel","_status","statusChangeEventManager","onStatusChange","tasks","asyncTask","task","AsyncTask","ref","asyncPeriodic","VisualConsole","Form","AsyncTaskManager"],"sourceRoot":""} \ No newline at end of file From 81991cc4fe2381182db989f093ec08f9e1bb7bf1 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 12 Jun 2023 10:48:10 +0200 Subject: [PATCH 098/268] #10696 new icon netflow --- pandora_console/images/widgets/netflow.png | Bin 7588 -> 10896 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pandora_console/images/widgets/netflow.png b/pandora_console/images/widgets/netflow.png index 1b2b216824e0a5a4c67d39d20a28cd5805aa90a5..5a34c1635f0ebbb840f2c400ab1adc16b28bdfed 100644 GIT binary patch delta 10868 zcmV-)DvQ;mJCIe7cYi7aNkl(Cbx4#lnj~K4t=LyaxZOQ_wSTX9h9}ZWuz2REo&kYD z4?gQWbhA1WX~BwJ`D|ne5&^B7Ryl1j7%0F&ma8jVouKkP`_9o+zPTwevLVU`dKL5xp@JcQ-3>jwUVIpcipj1suR}@F7ag ze*IZOqdk_MM}Nl9$lB-0mqmxa067tm*0K8FXJEcBVkK%;KZIVh6637wXAwzQ9N|PO z0qIEgo4UUweUQeN_8mS!vsqOEW}AqqNCYpm(oB}1Y4LM()9^ktRzWxIgtp!bJ5y}yjGh&$Y!^`=-D>pjxr2xo+xZ(L_w?F9-t0XzoWCl zPX~Oo63m@2aH2Yqz+Dm!M0ob(p{pbi$+j#fL-$_@MF&Wd<4aq-flbIZd! zwr(a9i+_xIBSG0>`KfZv>ZcJdKu*-Id5zOPK0Y+&n_*P9VPT48-3A?Z?))&`t@dnL zdQv1Z2#0u{JpYGq^4@?KbfMAHm*|e}JHW%_lH{1o5gQvzY<_SFa-!$Yp7BV)p;DQm zWMlX&-&2B4Mr@-TX(aSL=HmdT*88}4w$u8Id4G9GCV!%*F+>M((2CZicol`-&IjsgS9oyPZ69>4p<=L_yD&Ybjm2< zr+@Wy>JG{XVqnF^#ZksUUp`|h!cff1!?!r?aH)Nx=3C=K&P?ERZ5?m>}hgRB{o>k9owDFDI$B(EC|hnDFX9; zy#|e_NZdq9^MOQH{YT2_G2A-MPfa$PjeqJFIL7_Ou<8Bv51ZtO@s0!q$&*%mH}Pdt zL9IIV7&ce=QipU{a11_vd?Gk@@h18D`4L7QAhU~kGr^3~`>W~0S^U$O>;RaK&_t*` z0PBwctUZyBZM1EIl~(P&#J!(Hi%{oh0*nw`tzy|7m>@x9OfVhirlyZ|(^(T8cYjK~ za)62Q=)R}6(~Wdw?>0G1IgbcWDQxY5Vpg+Nv1E%Nq7ub&o({;Ai_gqhvz5!Oh=p10 zuU8K0bo->L<;#9QR1jgxr&r_X)Y0${BVYV`!>DPC6SM%PPPPh{Q)a4m>m?~Vp5$y< z*nY#;@bX?!b)=-ei|I%%NGrpz)qi{QSglf8tuQS=yHUEP<~&6_w*`qvbJs?s)>$c| zP12<@kd(@5Gg*8L`WUNTA067F+9MIq-BYt5PjjE!46WvSJ-?{;L>v z%;hp6GPrPjf7XKeKG^(aw;saF=~=5vd0Ur3lgc}Js$M)6G-XuRQ)e&Vl<64cOEM1! zP9%oyAq22#>o8mV28eg%Q%9D_1S4HUSTuF$$zx|P^Fpv~0AMG8N%jrB$M^r$@#g%GU6N)&EPuh4eMe5|KI>G1T6HPJIW{Ckrm5I3fX$3zBY*<2tEgI` zB(2zezR>GePvVPqE=;qaBd0C|BihDQe~_K=k|^xEHN`m=*m7a(g$eePwuN{hzxIux zf9-QD9~MiDV-<8RC*cY^f6}03h{M$jCUkhVFwN!p^igGPhaMK-?VfDVY4=Fwg#;qbJPd*yKqkQK#-x zczD{ZM7c`U;BHg`&~y0I(cGcD{jroJ++6LEzmPk+6_3oDS%vC4EEI6<2Wa`l zXEeO&(Yo3dWqPNAlmTEGC9}PN($Ae+uebjl+NRbmS8-exD9=`JKl* z_>n{V_tDQk&9_~0PDM_Je1*_S#Tu)Qbts|vHhF)OFsaKlj5Qcw({n!TXY}Cyc9qp40?xcM!kzaUBIh zpVb?-vLYP-kqM+30w8QSp*WyQ&FZ;v>rNUqZV;`H?N4=?upAAbXB7uhLkITZNpGyJ zM18)QLYdN};`ue*NtB*3@-O0fY=1<;5vYLFL22mzo$F)R`xfD+_4J4kBv{I|MC@U; zGDFvbjG=bj`uqn(csD~=W60nHc-HJWd^;-Ar}dKFl&ahM4Fm2j;R*LWjpO1li)A@EvkWaYiUSOo}#(j)|oagZuE)3kV5tigAx^r~l3B z0bv_p$+~SccSSKSC}>-&D6RMx>ud3lE3L#uSmGVs`(-?};P>F}ZB1F3h>xdNvm9G{ zFkQ>(upnX$5peu)1WlONi+^hNU^R$`3p-3Se85@q@qOzj!rIgMjiaJ-w2~C`L;TZ z`W<7WXR8p4UhlIgG1O4!!w*)3XL8Dyz@j{Pbhj_7X!>*+GMO`G36=s<2kD+ZerRP= zFV;Txo@RT+noZ_;GtfmH-94SozC^^7JZuwXB==M3dWd}G8B2JGXL4=JMSjWo6x(gB zJY6EBj+|6g9e;IxiFub?92RTk;Wa{9iPe5w0IAmp+Duko#={xnY&xT4GaL0fAI>x4 zDBZ3zntgRPv)M`(osT}wVzs`07lER>Z1J9K2!(~6HtN%v0^_Xa03bmO83RMgY?q7@ z+4XjktVYRhW*RF@-PLIJV@SoA%rVB;w2`5qWfkYPqJL_Mecki6Aq8s*yFve?SF0M2-APBaa`6fow7NB2Y;H1}9Ev|$Ii-}J(I-m(((kr6)N_jr zo82-p70{e1RnNrc%VxB@Oqt`Et8|*kEL#>H5T!SI7S*`QHHH0CTg`ub@kKqSjV6jr zfXv+02Y(7lRx4wd|F^-e*T?j3Q~j#4mQKjbUv;3A-DXV`r>)HFKkb%udRx!7)n&y! z8JUGEB1&4=6#Ad8P*Tfd>R{IH?L*EZAC64e+TA&J3c$(}3U(K^k(xS))iRJYz}eSaF-y3SvY)j63ES+Q_@^GEk?jVw^8 zu&qnCp1R?KHjuAMUU1|3wJuvXZJ_19EVlcn4!qi|WoYlLxeL5b3PSOO_)D6aE?lU6&za#zbYc(sB=P7>G-c*b7_fZRZ<{zGw{P9#1qe#u5K1XXbXPj0I6wpAEI>ra| zGBI9oY=WZ_Jo(}#BC;pWfo827!ZaQI$S0K~3+C4zxGK&5p>F~^0!30Mr`O0Vnm+o_ zFDrkO;~zb7j!QZr@r2|P5>NnS)PK;%!wCS+fS~({t_M9(9FyP)N>(UUh$96=7Oow_ zPwpVn?bBf*+4QUx7+?%FXz_VA=>2jJ4}V@w05}&NG;D-ZTvX`v@7FmJ9cKH>2z^*g zPk&u7(*!pK@7*0v4Tc-396LkJQA&~#Y2IK0<*Cqw3Nm%WKjJk3zvw-T*?&pp-^kXW z@@}%^L0+vhGsgBfe)7T}GBTKQm9r3+OEZMf)Hou6zUu5zX9!a^PTMd+*ctZXyrxpw zBGhIY+gY=d0vtPnBA+ruD%EbvD}`=}!!RK!-SF!Ivc>5_JaGzgw{eGcxeAqJ1{D20 z%5fkdCs_~{#mgi+8Rwv=7!W~PjGKUr?1cdk0YZ1r*r{qA2O{uC zw=BdI5(PBx(1SLvoj+T=yLx&=1`^Bhlcvi#V?d*e2{?Qpg8B^#bvnmE*skz!nGzx{ z(rw(bgQ|CBvp_rmp~fS8s8x-^!izuuWcr~>coP%t(Jsy-GS430?|&bZCXJl0+E}n* z-4Kd6@H;)&RF#(YjN)AkkxMu8A*iLOVbsXM6qH#jV>VlOE%Eekg_RC;*GD z(pafUo6d?*5zG1M5t-OGF=>@a)QcjH1HlUcE_kMxUko8>`aUO(q&OVlYn% z&1q55xLAe&)5gs$jen#4;aB(pRppuuIki6wa;~q?4M!#+4L&8Dnk(y~cFTiW9U$H_ zWzK>Q&XLAo7PxknV=hh1* zO=GD=hr$}91aWQ(Kc*T^_wL-N#GEeoLLMm-9Q<~Q7p*G_RDZvV*-C_`5A<_F_L<3- zAG?E<0pOWN!BVRExmcBG&}@#&>`1Bo?-3dQfOtCqmfpD&IHqA`wwQjEprqm}rXv8o z06%$Nbi`C1x2qdNAT9E=Sj=t(Egq41`sA@(MaP6HvUarW+qbvlLinLu0{&)t1AoUW zItU$aM~K7TMSr-Jhr{qwB8qn(U%#h#x&n{L+`4%~CWx?X6q%vrlU7`DosE17uwrk?2vpH4Wa^|1#g= z$!g6bGJiOWgmRq#RHyhpMAS43X&%jVASaF!qOubY%Hkh7H!h{YOou zoJ@BHN9;I4hvg3pr82R(_{_$)abYrc|930pE`L>BQ7XE!TqM1G{*<7->l8ub#UnCE z6A+YcqtaAKIpu8MuS8ZTnM0bHb4iq7<$3a&Ea1|CdBC&;N zS+xN7!(VP@AoN%v79ZH5k;NM|WUr739X#>JCiOz(nHeiOW*Q)}_+M`k`K;L#S~)P5 zqJN*c&$iz;lWFy^7#h)Q9#@IPlqe9wm{g9HxY#$?3ha_Gb>nbfsxqNuTqpz>@ZPvJ z+zF9Sn@pi{H5$^|{a0!HlsN?TEH#IKbkGzmlf$2eeH%tuiq_ydInePG2sN%)z-g?s zuUpF2W9a13Nb3o_+MJ0@rj6--g6%H(8hO{ z*nZ!?WT8*0Y@%#AbJNl}6X@RU+nu~s1oxgYtOkR|F8sK1*fWZ2 zR{gjiWB|DJ1FVcIM6hAobLtwc8%A_&nSmp6^Xl)kcgt^wyhQ|sC5kdgaQnvPG=GP~ zSMUC1%RwDlS^)IO0@z9~ZU7Me?w(**@-fZ;3+vmti>WW)yF-IJHNDsO>)FopwY$t% zSfVI{yr6|trCysl&8il6>M-EBfCx5JPyvRRNei%T$jYW_!~p_O8CD{4`p7;S`sF8A z5{n4RN;GAZ6`VS{`-vI9ZqsM~D1WcgTXv)6Q!}LS#IgbQM9GWE5#t@hx;D4Ij(jy6 zW_;=}Z{Cx9q_K4Nn66fZi(ZQU=lWcGMdw}IbR4@{F;(RsZ|?TEvV zG~i4Qm94O;!@rJt_41ScqbEzy{PP4boSgpcK- znVK@ZYTdesLNx0tRpR}Vg*da8Zx7PjQ)QNP_O}OZiLc8)B8A;1y|PMgp7i^?VPsMf zdMDz{TX86zq_#7G&2W+U{WIw;pw}DhhE%#6xV%f9n^WVjUAtEQ(v+pJRnoqOR-O3$d-An_ z-mW*L^Lc!wb?er$ELlx?%KvY@-gq=!#w@1_7B7D)xr}3z z4^t+yw`O2ALnZj(D6jNnwzdTPj~F>YRrKW1J)Pb}y=uZP?ABMPRD~Kf`9!K*wK`MY zNFGi-^3^Lka)0OmZQHWZe*EZR_Av~dHC5^~Tgq3ey)>!f@Z=y=G&AZN%8a_CZ|!zn z@bY~ntvaE9nH<@Bp9i$5*Dssf@#XW!UDKsculurVsIGadHVF(_ywCC7VnT6X!@AY9 zWKo#y<;xe=bm_DF+~SMgzr5=K%)8aXkxFl~+aG;i^MAaAFTGe}Em@P2*}J5LuKv?U z_xlzpR$LnM{RCa^Jle-|?()X4hn^U^72JFpU{9Po@*n$yh6db;1?Ulc`^|70yF$#K zDfq*8KJH6wxgx&a&+t%MuzXKp++8j_Q}T(^?C|wJ&9&LA`NvP0sZ-h>xGEP74y9IH z@&kYhnSb~>e7yUI`kDA41(cqkjp7aA4zgSNMhxlCnn{1Xev59s6MLP8cQtg5rL)`K zuyfp$H{k?PcKo(*8C$r6!xsOlgJp|505NdkFo*!%RBsy4U4E{@KzKiVM@&*^3#t-OAx*arEa&D}6tH3N>i#S>Zs=j5(m|f;ES=D}N#k%GhksIi86ecCcg` zIcy;1Dy!$(gSdw8{$&g8nG?&d7u!J}X~$lj+87rVfOe!m)31Xb-p=g_d#SQPewZ+YGNucp-o1K~-p@vMvwwko zm(F1^riF|rKd{RomD%0j1~XaX^fY(wJbKB#s5fG$^GH$FVepvA6jHw_R~)|0^lgE@=P}3;6{YU5B?kx9&uFCx=aAv7uE-* zLa4gpd&0NVS3?FkO?S#TFmPKxI)>Sj&7uYk8_LASUPi1jh%eS4?18{sfPV|yxpOBC zW4E9-AM5XAAAtBuq6{B9nab64z3xHf9vZigHLl!*N`2R6RqP*p_|bT8w9!$vJJ2_3 z(J{#zP{_V6o;oo9hY3@q;w4KZC=YiBpuv>pC+bKrK^{7&A7v}5qiUTUBSjs@mlrWa4GBLonL0Wdq$lyH6ceet*F1Jkl}adbJ@JB0#-0 zSKfjaw27SH9UTd~Q6e+K4K+|t?b7WB&6JqV+z|#^(;*=t^l_CCr}Vfc8~dS%E!$|{ zzP$u<*NoYHC}$aoN`E%h)9%^3_)P@3z}X$ZdJexjeN!Ztw=S=&tWWY49QxA03c zad34I%gkQ2Mol(GoBVMaFvKr?^V{Emp?lv0# z!x*YsJ%lo)b=ZIkODAEM`8@Is{rKG|s!_WxRm#?oO1G>@l20l={h=I~GzPKDs_~Iw zHQ)+mn9qYiS^&$a4}%;mI;Kt~l&f3|uXeNzBhFhxIb|d-+({-*j<34e_UYg;Y!5rz!ah=XXg>owp%n7m+Jab>3fR{q4v)BH|dh-bKEuc9Gw z2Q`eGkdHbK#0A?7J0h_CT7XW4w931z5fA1FP;$q8S6b=3^-J=aV=~8PWCvae2!jeB zb46Pus1w#B(c9I5JWPvf@e#q6BdywM6Tu(^%(8J`Fn?~8!P=lUxfbQcu((=l2g1Sf z!@$cGpyLREtU6A{%)xqGM5gvn%zKiFgImyW@~BlPJT<8n9~mqxI3+D`7l!yCjF`Se zdaP~OhhQqg4F+gj*eYsm97P(edFs*WO&H?1>p;;_ubJ%4$jsf|9g<8OTu=At(L>D| zptq_UP=6Vbhr1vS@0F}}E`s?;cpe!`?EVFwrGp@jOAJ5^eCVJ+S`*!R5}RPtE9!v8 zg?$zK5^ao9EqM0$p`A@{kF~Z_5y~_gk23|OQunW6#FTod!c<*-A zx-5Ixwt+yH8nmV-^nA?u&lnLPTMOU0jd5`MIDhAc+SRJph`t^-gK>j)zQF}^!5fq{ z818g`@y3THkLg3lBEmT`zJ9*!t1h*;ooeZdHK=G-KW<3Ks*nJ%7J)FXOgyon#&oD& ztB}#%Ti59C7tf3(%2qp;Amc=MB#VS#&bWSiT7A|wt=0!RJ#9ciJD6XC`w^U&k_Z`d zFn{*Bv_v^e>E)e0zTt3Xmqe>~ond!yvczrxa<7gJ%TlohlKg=f7~B7O)Zl^)}7>$g90;V`EVw? zq;hnZ?!6?n5(au6I2u>;GkWdzT@f_6zkfrxS$`lqO88VqZ9ip+2tQ{)!{RcGVL#6C zNEoEV{-rOopJ)3HnZQ9=bo?HQ5)F8a_yP{nwFeP2t7$CROa}UD{5&dIp+}5K&YD9JF)u)3$YcCKeYv24h zCYdnP^r;JJ-To^s2?GY=BPIaFjSyNeZOi~06XRS?4x7+qk*%SU*@AQJ*}Z+;=j>`d zU8yo<6Vw|c2)zyRFDWp|F?);+E14wu&L-TIrQWxIau0@G!5u{%=c=zrdwY{Wrj z*j&A1&GJQ`1qG#%iWO(ywow5Z3k?ZI06zeT(zZnty7PK3H5rkLa+YK*z`_nKiDf
5G()TQ2|XJ|H#vJS4?EPpGS^=)4|a$qn0 zICUQ7FH?h$0DRPG*7rjb)`eZ~c;~d0rcRr|WN;1m1sz&>GosMuHH%HP>bGr~l>3v_ zc_%w@PyiGKm(BZeL!P{Ovn>8~jSjt508S(8RR5SVVJAqzdY zY~#JNK*a{~IwJD;Pd~A)Tt2jgh7TJ;*^BEbUll!F-ff}Chkwq*!6hlKF2b&Dr0G8&Efm#$o=%kp6^wyS2nn0?Ll?qByPQ*d^Ygz( z>t!hbTyO0^rGN2>FYg`-|1HeN$2WM)^u_v*3OHY4uEq~L@J#IFGb1|hig+^tb;-D+4GV zUO9jKN3+Eg+^kI(UF*($5}Zh?E1lBs5cjP4c{aE&o6+F&sBp;&U#En^pgTNdD+5IO zU$D=?eSh%B4sGiZ{rd0vfkA0)P1|-h)NIs}(xy+`XF=Q{trf-ul(cW#Z)|idw!Dt~ zTNezeQnvoHI{BYw>cG z4Ec+cploaxAIz8wPnV!!QGay*4n6qmHeJ7bfqyQZI$~i`V?8Xy{R2{8N|Qdz=8)RW zcYC^uUbIt6KNDECi30z>*n~o<Mt&o#vzwZ(#Plx zhNytRpavqqX~?lGF?oJjep4#XJcq&{_1Vd(y%Rm zNL-r(JQ78iJLR1jwh)HCKQjr_)eBc|iZGD?BJ4`r9&I+874g&cp_p%v{dfePYgu(|<6`BPD;ET8A^6OIapb#_?h0 zk?6y^YxBB@!~4^QSZ1Vg+PeHxPLX-YfP@mKv@ByYid0_b#RMQNszw}X|aLb1k z;ev26(m1LndVmisx&nh4a&Fw>!{R@I5&{n%%i`09^m~!_kxJRna(r0)C!s_WKHb!S z24#H-Qh)ON*?gu|!;8Qcq68^n$Z#GhW&3ehnOFep|7s*qx_thO5N2qT3lLFY+J|qZ z4_pucAvb3V4=W}!%TiN)3$K`?M0srng)R(p*`i2G5gsE75c>;O{vKv#HI>CMXTr2_ zF^=$NI8r+?qN8C}6O@$@+vF}!NK6D@kk!lP{(slef|T+t_%>A{B(<0bBBk%y`q98Q z-c-Vug=05gXpknwbdvUalGg&Ws?|O>X3bw*hoarRa|dEt6j$z}NuR@O-Fna@-p|fA zlXp%6;v>7a6~B)(Me=}CAo>gE&Elh_%aq~Y%TW`TLLL_irF|J_)+mxs!}oL7&i#DY z-hZDWq4S#h0Y z!%T9@j(VJd^N~%p0VI9Re$va(`%6?~z<4Td)}u-`WyC$G=SKw94aq4jlEn zTwa!8@&!T6-jJzP-@f>aTt;_bv^x?A$rYBoW@|XdG4j(f83eP2IcYibq}gl|qM7EU zqz0%s2r)4#KQ%CZoJnu=QL_ac%jPF^Z*`UCv*pVYvh0>@6=0dhaE6O-_wSHx1%DR< z+#w(?2gCRPB=n6rLE$_{$tmfjIYVwu3iPBec^E7?SvYm{B%{%2cM>L7p;CcCCte@+ zNwPQ%iCGO3LFOyzM-KCoIB{NQ!qMU3;ct%qbV*Y&l2sSfsZ%G&$;lBWbmGjGVLIuf za2jvfvZdr9!xfJep^>Au^7gt0XHzWYD{x!-3E}of&Qw zN;6J=_bn-a#1zLPn)98+xA<9X^TyW005V}ogyLEHb_va#w+NzJ$H36{=kwF$55|rX z%D6yASe!P?O`U~IB>}6ZqZzJUy$Tg7R-{qhpZ?JxIDPsw+$|!_RbU3>=zm=18EE{1 zY zr-A+PQjyS?Gv`T&{k-NRn18t9^83utK-^2k%P5@vTsU)HAgmNnB!mb^4Bf`xeu2~3 zI_TQy5SVfIgt%VQR1n{>5kJ+sdn>0HXyf0C&(Y0Yl~sF!hbAlzLU_q?P;YviiDI95RR2ln@r`MnJ(KZ&oT`wZB(hQD^0I0 z^NZs)8A6dIf0tI*-fo__KyQXo^a(wqkCVxkXeK13XvL7XR!LH_o{5QH9$KQnkh6PS zw17v!r(F-$g=ffKr#g4aux``RG44)?%lf(8X5}Sx^?4MOqDBF=C{LZ)TjZNCg2x_cB}K%a~?xPxm~O0p-b29Fnr_~9y(&kV0f-gKR(PE3Ss`#kuZ7c3~1Y4 zv|twD-y!R`(2C`8jv_!+j0$Q-)e_>)23%qY4}S0*XMfAiy^8c$jUNmfzksYm2EmA= zQSfxt8UkZ@-gtv-UhBx3qiqjsUY{geHWBguuiP#zKRb?i9rPd$y(t zTiCdWvwvJ)NisVSaf+ePurSEZz7AEYR+B9nw~m%9oCodNwS(%_s|$G+FIL`C!u@!< z@$bmafl#PIz$u21kv`pDg+J2&RwxeO&Hp6A`t7r!O3xcYo{u*)fNzruVa1010*nUe zX$HnI?5=bA4Mb+}xOLP2ep94<{iF&wa!5i_tAbtN{$j{FQJn|VdWF)K_Uces{n?$=5YO*!a zdpZm2_BA9sEe-j)ixnlrVOJTmyMM84&V+;wo3;*iq&E_G$Kne0h^`IsOtBKteVrgtn%9Ej z!$90T!rduUMi?+J0KOTXuN(RC;ufwD_kYna)(7ye6yy#L)vBOn>{?!A3NW`E)b7=O z%3UeVY~c$VSqS&W{*nbf#VDSp`j>&gvZZTJP&!RjL@r5?oPE*E-aKrhG(7E7T@PBW z>PQ#cDM#2aXrhExg1$sk)rl?GALP8S*t&lsu)6C#b>iqAv zmuHMz7?7rRhqx>*X$iBM%^uS8#eeH$ljQznP&Ts^=nym5>RfP94KV1fhj(dto{wpK z^4QzHXB?59O=d{%7D9AJ-Ji#Mh(*$)ohQm1H*G=X(wMXE&59r)_i zt2<7aGVI*Y_vc8}XiEw$sek_kX2E|`tC>yaa!SN-kww&MgvU`SpSR(JA=t2GPah=- zF)HSk$`&J7!N|x+GskhTXwf1-^&a$T9DTW;iR^aZ&oa$fxEQ~8@7{3q(4GNGjfQ;K z-Dkry7Ch7G(W3|C<>m2yZf-90?AcTCtVfBUC0y=IN1Vqp-JZUoU4Lf8g*zLztPI6h zg41**-)PWPQA$I&U1l;ej)N=egtmyvr8%7Peyot_ zQQ{Ga$<7?PZ@WhK_lRYRedwb-Dubc|qCG}r>TU(HD;X;c4+65zT!p;{Psx_pqFpOl zxGkXD%;4eE=bwHgQGbSP^N`I*KaeXE3bO(SEK}Ozq z>ut;WS;bS9PlKeSB;h6?&47&L6GdQ_Wg)P1pya2rJWilU4){(pgO8S@jP&T*5rz&O z3Om!%gqu;=4d<3<)!e?B1AnI^a@#l_niWz*_@g1?}P$HBO%==WOO0amr zTwW(1yJ4!EAAcNDme&J+s%m9>MLLx36f@Xsl`W?@!R85CGD2(d?wGM~D^~|aL^9rT zPBCMti*8w|^QVtVBqC04+qNz2Kgcf#1#n(&9)B4dPp0uwHpbm?F7;+g1aZoa?}(fW z3k!vu-G51vP`kWIbTa{lOwprv0q8`)qs*WR3%PLvZGYOd5vnj?zyKhZW8mQ7qYz%F zo&fhoz$s>MWVh$=hDnv4`-E)czf6PARA0kaGiJi4^QB7gS~57Ah$0bo$LM3+9p}_L zgHx2*UlDzMCtSNkEsUM=2An!>tq%}hHv-O{$l~uAppS8PoKwu;Txzt<7ez+Dw zYnb5pk$-fjah*YMiWw{z)w<~2emO$D9FP33wloqB>=?$k( zSieK=FoL))GlR(gNgM$Oj%ETrS~s$@A#M9M@GTPtlSr?%HuV_9cAo(|zqV$m^SfG@ z`YEa<7fA+9ceSAGcFlk8-i0f3o11_>WP_EEQ>G0#SQ4syQ z7JvB{+{^E2VdiJ?Fn-dHP&M5Cg%BfA0LLq;LIE-XyOQw_EVK69*)uYzQV`CD@0QGl z#VIeubb>COzkppUttIrzI4w+izZ+aQYyZWMd#Mp;dDm7<2g4323N4;7Zgj!DJH48{ zAid^F3q#T2%8?_=LP{>@#x+ofWkHL6Qhy0y{|^^8wjMLzvP{(I(hF}@^TR;W~4^z+XKx3rzfOtOo_Bngw3P}$_&<|_u#QV-G4n( z^^5;aFBBw#j6}87K>I{L)nDnGmf5VajYOg(&fKz*?vGJ& z(An-eF`t~{k2K_LEy-o}G^~A>_`f3SH~Tg74M#Np;viq4rq}pbdSx^c`-ZWuIJ;T z)Ib?}Y}8FCL+C#iia=t9c&3Po76jf4cf=~5C9d0XPpN3hRpcM9JSWGLB@7kp48C`Q z{Czb3MMR|$h-#yn^&x7F23fU6Gf`_aKWw!|OD0^6C#RD~_YC-()H`#;DAt z73lnHz-AM3mtzXEhxhB8>whlOE(vG;>a<{nH9lqL%+}i!?$+or!)I7VXXezGhr~tS zc9u1Vgo87Hxob98WKHUd&JuW%U)lnk%6N5X@Ag-T${N4HBTbdYYzhZg1_eHvn#2H> z-CbR2u}@<5T0q5u(O+-Kl2fFoxU#}QbKk~7Qv}BuWz#A06W{$7V1HS)S?#CF9Q0bt zdzPh18b2i^g}tpWAIUM!o1wKV_(|Nk7GTY+KG^4a2C=atTwWH0vvTDTa+l_o%Xa`! z{r<<*bB5l{xzUU0^_y$ess$A)RCwTf+|D(LXL4V=cFlC^)F~kP*i7lNp=-Ov4V!E4 zSVoC*09TIO8EU}a8Gqu1^CcNuO1W{#3D2qYg?T;KuV2riL85=NJ9Fj?bm`KC^YIJ# z&XEiDa&47QE_J<2E_JCsHk(yJjN1PBsaz=p#^1Why&a1eR!}f#Z+F$IRj_g6Mjj)Z zoKde_xe~T*+s4N)U%m`0R;=L7W+@c;j|O8KU|ZyqHo>-Wg?|~82g*fV@rShXoEvJO zcpa))vu3J$CB|6s-bwA+wIL`dh!+%A4&&rH2p>m7PZ$p)wq#I{kE_ErNk4GdrC|c) zfpSrs3-!U^rVS=>1FKXjUdfKaP#6&r_tmrTIv9>e)ZrBsG$<#&szPBjkJzVaj^-ER z{*%He7d82MhksVE;^%_Kb z`)ZM^Oge*yOZI$y@#jh8K2hRKS!mh)*rEN(*DCB3hH`nb@-Jy5)Oy12G@(%JnMtzK zt{zMNR|^Nny4!d1$=8BRfckYsL@>5Cywn;s`1#xXYJZu>1cL=VQo_L-%Ga)5;Z;O$ z5UYUbLc_|VF);FBf=YlIm!5P+69WZACK}eF^GDJwvA1<>A|JmciBQIne%L!0ic1N8XnFl0hGD$Y)=<2ALW1SDD51>osi%L8XJlpa&B6x^S@j>e4X= z8Z~a>5uwml!Apx5&mQO3SM-`(!rMatEkCc{m@4V+aFEBhC7%rV;wf@ir3!$*N7Z>% zIDh!b!_MuZp;zB{!A!Qh4IveZRJ}cU!F-tf*%#2B2nes&;$1E}MMlBkpf7fX1%;4J z-aI-(!)vsqgC89=2(Jp~qw!;)cHKyi2*#FB#0@@v+5N*W3MzA)e?#AHPgS+P+88CP5TuGX}$mOfWG|Pq**Fh;i-ZDj-;g%;R7)Q9fw@{Vn zItusNn^UhrLvk%$3p-M`Lj1r%j@Cz#4^8RguiMM*VZoA_5K_(hSt=mfVE3|Buyn~% zXwjktkN>|-TZsJ_E!2uCHsCHP^nV`|@tSaOt7Ytm6XBB&$HB|5cC~BI!&aN&HxanN z3(#(e{3@LzYnS)G7zEi_3{0Os6Xt&P1tgA}V%Gu--U9x6{~`Wnu-NK8e#Oy17QpqI z-v79}t@?Q@&1=HJ3gg$paqPh9^iLbMT79_FQ%tc$@4wwpE#T+1r_31+EPt_bT;Zvz zc8kXW-`!7%*d^jd2CoVS>xFmTBWl&*1(Y~^Bn(Oz;!<_7`@#=vuxjP4NtPIp>hO*) z7|GOm-mC$TbCHD!UoD5a^`Dici8D2Pb2P;Al+v5?FlTJmowzI;?g8;TOlWE0?Ag=2 z`G}>-^PMUX5Ar5{un5+S(tq>zGUz8*l?uTRhjd8NLeJ0DFnfAD|C!cP$E4PQ5EqT= z;5Tg0unrp2p+Afx+>uYZD%HUg@CPCsTG2_LPv?bHtwuP%&C;wSPl#0E$aF>FdpmiJLeoroEY|C_|Xj4%4~LdrT`Jb%TP$9S}$UhmfA z*u^)Ae$@=Oc($i*fz&OVVDFwkB<2gnxH$W&-=qaJYuz4}{jwJ_j_ikNBZfhh1}bRv zhSsKzipH0LPNTJ;FEqon$-N-&h88}Vy^1$-gzFq?_=wWOI8F+JL&{OmL-E}f4q9y{ z_ET_oM0qfBC1rwZN*Z^O@oSBF@Ky z$lFBjp4oU*aN+h*ert6|Hp z-$CPMF%znUN4l(>=MhUPs3)EB_0(@oChqB^(PLFzyT=j}FQf%raC8^hRYi-Po7Tgu zPewy{b2YS#cYo||myQ?={(Yt%jQOQt(%d!hbhU7&YmNqmw)~PpG+;mDSe5Ex@4@5x zxvDQsi4&9Rp8fQ|uFdNrGEW?7qbn?^Y|qd(t%Nsx&ZrMF81%JjM{A&Y-}`2DlxU%q zn*HDF$W&c(QKQkGGjUvyie(+TI*8qu*3bW9M4blPlz&XVE74Vg;{{@7;i@f>CPpQ{ z^j5&KLMD0L&Wc=-(XDakK~>ltI;$6b*8S?m(_-g$H^+ zN2rmzH``pP#G`<-cl)o^cJElfBruc-=$PcI)&?*SO(@tNRyW&dBmJB2gl7D;FJ#ZQ zpZb#-W?*>j`aihxp;6k7uJ|_Zgo+D%a+_M*8r}^%e4E;`8c*yHShk4g;x5}Eu&lxp z3uhjdE#i9IV-`G=s_?}2jZ({4!@X|%#+sxQ!ds2es`LY7!6G(NFZC~oBc2Oms2o$Je9)&Kwi07*qoM6N<$ Ef Date: Mon, 12 Jun 2023 12:24:22 +0200 Subject: [PATCH 099/268] #11437 unify session_max_time_expire with mr --- pandora_console/pandoradb.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index a6a368cd72..f9a206d326 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -1327,7 +1327,7 @@ CREATE TABLE IF NOT EXISTS `tusuario` ( `allowed_ip_active` TINYINT UNSIGNED DEFAULT 0, `allowed_ip_list` TEXT, `auth_token_secret` VARCHAR(45) DEFAULT NULL, - `session_max_time_expire` INT signed NOT NULL DEFAULT 0, + `session_max_time_expire` INT NOT NULL DEFAULT 0, CONSTRAINT `fk_filter_id` FOREIGN KEY (`id_filter`) REFERENCES tevent_filter (`id_filter`) ON DELETE SET NULL, UNIQUE KEY `id_user` (`id_user`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; From db26c7d038e80bb20dc799d8183b9b0f39786258 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 12 Jun 2023 12:33:38 +0200 Subject: [PATCH 100/268] #9756 Change to critical status bulk modules --- .../godmode/massive/massive_edit_modules.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index 2f28c86357..a625e038c2 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -662,6 +662,21 @@ $table->data['edit1'][1] = ''; ); $table->data['edit1'][1] .= ''; $table->data['edit1'][1] .= ''; + $table->data['edit1'][1] .= ""; + $table->data['edit1'][1] .= ''; + $table->data['edit1'][1] .= ''; + $table->data['edit1'][1] .= ''; $table->data['edit1'][1] .= '
'; + $table->data['edit1'][1] .= ''.__('Change to critical status after.').''; + $table->data['edit1'][1] .= ''; + $table->data['edit1'][1] .= html_print_input_text( + 'warning_time', + '', + '', + 5, + 15, + true + ); + $table->data['edit1'][1] .= '
'; $table->data['edit1'][2] = __('Critical status'); @@ -2063,6 +2078,7 @@ function process_manage_edit($module_name, $agents_select=null, $module_status=' 'disabled_types_event', 'ip_target', 'custom_ip_target', + 'warning_time', 'descripcion', 'min_ff_event_normal', 'min_ff_event_warning', From 6ca91b89ec6f2907da0dc3cd7ac58679ea6bf219 Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Mon, 12 Jun 2023 16:28:57 +0200 Subject: [PATCH 101/268] #11493 Added agent hive --- .../include/lib/Dashboard/Widget.php | 1 + .../lib/Dashboard/Widgets/AgentHive.php | 514 ++++++++++++++++++ pandora_console/include/styles/dashboards.css | 53 ++ 3 files changed, 568 insertions(+) create mode 100644 pandora_console/include/lib/Dashboard/Widgets/AgentHive.php diff --git a/pandora_console/include/lib/Dashboard/Widget.php b/pandora_console/include/lib/Dashboard/Widget.php index 245c9f0481..b9e9971507 100644 --- a/pandora_console/include/lib/Dashboard/Widget.php +++ b/pandora_console/include/lib/Dashboard/Widget.php @@ -424,6 +424,7 @@ class Widget case 'ModulesByStatus': case 'AvgSumMaxMinModule': case 'BasicChart': + case 'AgentHive': $className .= '\\'.$name; break; diff --git a/pandora_console/include/lib/Dashboard/Widgets/AgentHive.php b/pandora_console/include/lib/Dashboard/Widgets/AgentHive.php new file mode 100644 index 0000000000..7e734ce24b --- /dev/null +++ b/pandora_console/include/lib/Dashboard/Widgets/AgentHive.php @@ -0,0 +1,514 @@ +width = $width; + + // Height. + $this->height = $height; + + // Grid Width. + $this->gridWidth = $gridWidth; + + // Cell Id. + $this->cellId = $cellId; + + // Options. + $this->values = $this->decoders($this->getOptionsWidget()); + + // Page. + $this->page = basename(__FILE__); + + // ClassName. + $class = new \ReflectionClass($this); + $this->className = $class->getShortName(); + + // Title. + $this->title = __('Agent hive'); + + // Name. + if (empty($this->name) === true) { + $this->name = 'AgentHive'; + } + + // This forces at least a first configuration. + $this->configurationRequired = false; + if (empty($this->values['groups']) === true) { + $this->configurationRequired = true; + } + } + + + /** + * Decoders hack for retrocompability. + * + * @param array $decoder Values. + * + * @return array Returns the values ​​with the correct key. + */ + public function decoders(array $decoder): array + { + $values = []; + // Retrieve global - common inputs. + $values = parent::decoders($decoder); + + if (isset($decoder['groups']) === true) { + $values['groups'] = $decoder['groups']; + } + + return $values; + } + + + /** + * Generates inputs for form (specific). + * + * @return array Of inputs. + * + * @throws Exception On error. + */ + public function getFormInputs(): array + { + $values = $this->values; + + // Retrieve global - common inputs. + $inputs = parent::getFormInputs(); + + // Filters. + $inputs[] = [ + 'label' => __('Groups'), + 'id' => 'li_groups', + 'arguments' => [ + 'type' => 'select_groups', + 'name' => 'groups[]', + 'returnAllGroup' => false, + 'privilege' => 'AR', + 'selected' => explode(',', $values['groups'][0]), + 'return' => true, + 'multiple' => true, + 'required' => true, + ], + ]; + + return $inputs; + } + + + /** + * Get Post for widget. + * + * @return array + */ + public function getPost(): array + { + // Retrieve global - common inputs. + $values = parent::getPost(); + + $values['groups'] = \get_parameter('groups', 0); + + return $values; + } + + + /** + * Draw widget. + * + * @return string; + */ + public function load() + { + global $config; + + $groups = $this->values['groups']; + $groups = explode(',', $groups[0]); + + $user_groups = array_keys( + users_get_groups( + false, + 'AR', + false, + false, + $groups + ) + ); + + foreach ($groups as $key => $group) { + if (in_array($group, $user_groups) === false) { + unset($groups[$key]); + } + } + + $table = 'tagente'; + if (is_metaconsole()) { + $table = 'tmetaconsole_agent'; + } + + $sql = sprintf( + 'SELECT * FROM %s WHERE id_grupo IN('.implode(',', $groups).')', + $table + ); + $all_agents = db_get_all_rows_sql($sql); + + $output = ''; + $output .= '
'; + foreach ($all_agents as $agent) { + $output .= $this->drawSquare($agent); + } + + $output .= '
'; + + $output .= ''; + + return $output; + } + + + /** + * Draw square agent. + * + * @param array $data Info agent. + * + * @return string Output. + */ + private function drawSquare(array $data): string + { + global $config; + + $id = (is_metaconsole() === true) + ? $data['id_tagente'] + : $data['id_agente']; + + $status = agents_get_status_from_counts($data); + switch ($status) { + case 1: + case 4: + case 100: + // Critical (BAD or ALERT). + $color = '#e63c52'; + break; + + case 0: + case 300: + // Normal (OK). + $color = '#82b92e'; + break; + + case 2: + case 200: + // Warning. + $color = '#f3b200'; + break; + + case 5: + // Not init. + $color = '#4a83f3'; + break; + + default: + // Default is Grey (Other). + $color = '#b2b2b2'; + break; + } + + $style_contact = 'flex-grow: 9; font-size: 8pt; display: flex; + justify-content: start;align-items: start; color: #9FA5B1; font-weight: 600;'; + // Last contact. + $lastContactDate = ui_print_timestamp( + $data['ultimo_contacto'], + true, + ['style' => $style_contact] + ); + + // Url. + $console_url = ui_get_full_url('/'); + if (is_metaconsole()) { + $server = metaconsole_get_servers($data['id_tmetaconsole_setup']); + $console_url = $server['server_url'].'/'; + } + + $url_view = $console_url.'index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id; + $url_manage = $console_url.'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente='.$id; + + $output = '
'; + $output .= ''; + $output .= '
'; + $output .= '
'; + // Last contact and img. + $output .= ''; + + // OS and alias. + $output .= '
'; + $output .= ui_print_os_icon( + $data['id_os'], + false, + true, + true, + false, + false, + false, + ['style' => 'margin-right: 5px;'] + ); + $output .= ui_print_truncate_text( + ucfirst(io_safe_output($data['alias'])), + 12, + false, + true, + true, + '…', + 'font-size: 11pt;color: #14524f; + font-weight: 600;text-align: left', + ); + + $output .= '
'; + + // OS description. + $output .= html_print_div( + [ + 'content' => (empty($data['os_version']) === true) + ? get_os_name((int) $data['id_os']) + : $data['os_version'], + 'style' => 'font-size: 6pt; display: + flex;justify-content: start;align-items: start; + color: #9FA5B1; font-weight: 600;margin-bottom: 5px', + ], + true + ); + + // Description. + $output .= html_print_div( + [ + 'content' => ui_print_truncate_text( + io_safe_output($data['comentarios']), + 38, + false, + true, + true, + '…', + ), + 'style' => 'text-align: left;min-height: 42px; + font-size: 8pt;max-height: 42px; margin-bottom: 10px', + ], + true + ); + + // IP. + $output .= html_print_div( + [ + 'content' => $data['direccion'], + 'style' => 'font-size: 10pt;color: #14524f; + font-weight: 600; text-align: left', + ], + true + ); + $output .= '
'; + $output .= '
'; + + return $output; + + } + + + /** + * Get description. + * + * @return string. + */ + public static function getDescription() + { + return __('Agents hive'); + } + + + /** + * Get Name. + * + * @return string. + */ + public static function getName() + { + return 'AgentHive'; + } + + + /** + * Get size Modal Configuration. + * + * @return array + */ + public function getSizeModalConfiguration(): array + { + $size = [ + 'width' => (is_metaconsole() === true) ? 700 : 600, + 'height' => 610, + ]; + + return $size; + } + + +} diff --git a/pandora_console/include/styles/dashboards.css b/pandora_console/include/styles/dashboards.css index 908f673997..61c5235911 100644 --- a/pandora_console/include/styles/dashboards.css +++ b/pandora_console/include/styles/dashboards.css @@ -654,6 +654,59 @@ form.modal-dashboard font-style: italic; } +.widget-agent-hive-square { + flex: 1; + display: flex; + flex-direction: row; + justify-content: center; + align-items: start; + min-width: 150px; + max-width: 150px; + min-height: 150px; + max-height: 150px; + margin: 8px; + padding: 5px; + border: 1px solid #eceef2; + border-radius: 5px; + cursor: pointer; +} + +.widget-agent-hive-square-status { + width: 3%; + height: 100%; + margin-left: 4%; + margin-right: 3%; + border-radius: 15px; +} + +.widget-agent-hive-square-info { + width: 90%; + height: 100%; + display: flex; + flex-direction: column; +} + +.widget-agent-hive-square-info-header { + width: 100%; + display: flex; + flex-direction: row; + margin-bottom: 10px; +} + +.widget-agent-hive-square-info-body { + width: 100%; + display: flex; + flex-direction: row; +} + +.span-alias { + font-size: 13pt; + justify-content: start; + align-items: start; + color: #14524f; + font-weight: 600; +} + .container-histograms { min-width: 400px; } From a64da709cf3430860f2e55f73ba9fbbe4baf56d1 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 12 Jun 2023 17:02:20 +0200 Subject: [PATCH 102/268] #11539 changed default password in checkDefaultPassword() function --- pandora_console/include/class/ConsoleSupervisor.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php index 4dc665fb26..28c2e004ac 100644 --- a/pandora_console/include/class/ConsoleSupervisor.php +++ b/pandora_console/include/class/ConsoleSupervisor.php @@ -2323,7 +2323,8 @@ class ConsoleSupervisor 'SELECT count(*) FROM tusuario WHERE id_user="admin" - AND password="1da7ee7d45b96d0e1f45ee4ee23da560" + AND (password="1da7ee7d45b96d0e1f45ee4ee23da560" OR + password="$2y$10$Wv/xoxjI2VAkthJhk/PzeeGIhBKYU/K.TMgUdmW7fEP2NQkdWlB9K") AND is_admin=1 and disabled!=1' ); From 69eb293355db3c5c2399fe9844314d54fc3887c3 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 12 Jun 2023 17:05:13 +0200 Subject: [PATCH 103/268] revert commit --- pandora_console/include/class/ConsoleSupervisor.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php index 28c2e004ac..4dc665fb26 100644 --- a/pandora_console/include/class/ConsoleSupervisor.php +++ b/pandora_console/include/class/ConsoleSupervisor.php @@ -2323,8 +2323,7 @@ class ConsoleSupervisor 'SELECT count(*) FROM tusuario WHERE id_user="admin" - AND (password="1da7ee7d45b96d0e1f45ee4ee23da560" OR - password="$2y$10$Wv/xoxjI2VAkthJhk/PzeeGIhBKYU/K.TMgUdmW7fEP2NQkdWlB9K") + AND password="1da7ee7d45b96d0e1f45ee4ee23da560" AND is_admin=1 and disabled!=1' ); From 114f1661fa27c91136e64b525d45fd443b9c1405 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 12 Jun 2023 17:06:42 +0200 Subject: [PATCH 104/268] #11040 changed default password in checkDefaultPassword() function --- pandora_console/include/class/ConsoleSupervisor.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php index 4dc665fb26..28c2e004ac 100644 --- a/pandora_console/include/class/ConsoleSupervisor.php +++ b/pandora_console/include/class/ConsoleSupervisor.php @@ -2323,7 +2323,8 @@ class ConsoleSupervisor 'SELECT count(*) FROM tusuario WHERE id_user="admin" - AND password="1da7ee7d45b96d0e1f45ee4ee23da560" + AND (password="1da7ee7d45b96d0e1f45ee4ee23da560" OR + password="$2y$10$Wv/xoxjI2VAkthJhk/PzeeGIhBKYU/K.TMgUdmW7fEP2NQkdWlB9K") AND is_admin=1 and disabled!=1' ); From 8678df6982b052519381681b6a75f699f0e0b52e Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 13 Jun 2023 12:37:28 +0200 Subject: [PATCH 105/268] #10254 added secondary server in ad --- pandora_console/godmode/setup/setup_auth.php | 8 ++++- pandora_console/include/auth/mysql.php | 8 ++++- pandora_console/include/functions_config.php | 32 ++++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/setup/setup_auth.php b/pandora_console/godmode/setup/setup_auth.php index 3822a01b2e..caf9e3e494 100644 --- a/pandora_console/godmode/setup/setup_auth.php +++ b/pandora_console/godmode/setup/setup_auth.php @@ -538,7 +538,13 @@ echo ''; if ($('input[type=checkbox][name=secondary_ldap_enabled]:checked').val() == 1) { $("tr[id*='ldap_'][id$='_secondary']").show(); } else { - $( "tr[id*='ldap_'][id$='_secondary']" ).hide(); + $( "tr[id*='ldap_'][id$='_secondary']" ).hide(); + } + + if ($('input[type=checkbox][name=secondary_active_directory]:checked').val() == 1) { + $("tr[id*='ad_'][id$='_secondary']").show(); + } else { + $( "tr[id*='ad_'][id$='_secondary']" ).hide(); } } $( document ).ready(function() { diff --git a/pandora_console/include/auth/mysql.php b/pandora_console/include/auth/mysql.php index 9d26ba22eb..5f4b1cfe59 100644 --- a/pandora_console/include/auth/mysql.php +++ b/pandora_console/include/auth/mysql.php @@ -237,7 +237,13 @@ function process_user_login_remote($login, $pass, $api=false) // Active Directory. case 'ad': - if (enterprise_hook('ad_process_user_login', [$login, $pass]) === false) { + $sr = enterprise_hook('ad_process_user_login', [$login, $pass]); + // Try with secondary server. + if ($sr === false && (bool) $config['secondary_active_directory'] === true) { + $sr = enterprise_hook('ad_process_user_login', [$login, $pass, true]); + } + + if ($sr === false) { $config['auth_error'] = 'User not found in database or incorrect password'; return false; } diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index 468c228733..5d1bf22a71 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -623,6 +623,38 @@ function config_update_config() $error_update[] = __('Domain'); } + if (config_update_value('secondary_active_directory', get_parameter('secondary_active_directory'), true) === false) { + $error_update[] = __('Secondary active directory'); + } + + if (config_update_value('ad_server_secondary', get_parameter('ad_server_secondary'), true) === false) { + $error_update[] = __('Secondary active directory server'); + } + + if (config_update_value('ad_port_secondary', get_parameter('ad_port_secondary'), true) === false) { + $error_update[] = __('Secondary active directory port'); + } + + if (config_update_value('ad_start_tls_secondary', get_parameter('ad_start_tls_secondary'), true) === false) { + $error_update[] = __('Secondary start TLS'); + } + + if (config_update_value('recursive_search_secondary', get_parameter('recursive_search_secondary'), true) === false) { + $error_update[] = __('Secondary recursive search'); + } + + if (config_update_value('ad_advanced_config_secondary', get_parameter('ad_advanced_config_secondary'), true) === false) { + $error_update[] = __('Secondary advanced Config AD'); + } + + if (config_update_value('ldap_advanced_config_secondary', get_parameter('ldap_advanced_config_secondary'), true) === false) { + $error_update[] = __('Secondary advanced Config LDAP'); + } + + if (config_update_value('ad_domain_secondary', get_parameter('ad_domain_secondary'), true) === false) { + $error_update[] = __('Secondary domain'); + } + if (config_update_value('ad_adv_perms', get_parameter('ad_adv_perms'), true) === false) { $error_update[] = __('Advanced Permisions AD'); } From c91a25d9cb79d6213240818bc841624d9177beff Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Tue, 13 Jun 2023 12:53:06 +0200 Subject: [PATCH 106/268] #11343 Fix api created modules --- pandora_console/include/api.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandora_console/include/api.php b/pandora_console/include/api.php index c0ee23e172..6d0ef0ea2a 100644 --- a/pandora_console/include/api.php +++ b/pandora_console/include/api.php @@ -203,9 +203,9 @@ if ($correctLogin === true) { } break; - case 'create_network_module': + // case 'create_network_module': case 'create_plugin_module': - case 'create_data_module': + // case 'create_data_module': case 'create_synthetic_module': case 'create_snmp_module': case 'delete_module': @@ -320,6 +320,7 @@ if ($correctLogin === true) { break; default: + return false; // Ignore. break; } From 052852f2d144228194ca82c446046991a2529dd1 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 13 Jun 2023 13:20:28 +0200 Subject: [PATCH 107/268] #10254 added timeout in active directory --- pandora_console/godmode/setup/setup_auth.php | 2 +- pandora_console/include/functions_config.php | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pandora_console/godmode/setup/setup_auth.php b/pandora_console/godmode/setup/setup_auth.php index caf9e3e494..cdd8e447fd 100644 --- a/pandora_console/godmode/setup/setup_auth.php +++ b/pandora_console/godmode/setup/setup_auth.php @@ -210,7 +210,7 @@ if (is_ajax() === true) { // Ldapsearch timeout. // Default Ldapsearch timeout. - set_when_empty($config['ldap_searh_timeout'], 5); + set_when_empty($config['ldap_search_timeout'], 5); $row = []; $row['name'] = __('Ldap search timeout (secs)'); $row['control'] = html_print_input_text( diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index 5d1bf22a71..0e9d40f0cc 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -639,16 +639,8 @@ function config_update_config() $error_update[] = __('Secondary start TLS'); } - if (config_update_value('recursive_search_secondary', get_parameter('recursive_search_secondary'), true) === false) { - $error_update[] = __('Secondary recursive search'); - } - - if (config_update_value('ad_advanced_config_secondary', get_parameter('ad_advanced_config_secondary'), true) === false) { - $error_update[] = __('Secondary advanced Config AD'); - } - - if (config_update_value('ldap_advanced_config_secondary', get_parameter('ldap_advanced_config_secondary'), true) === false) { - $error_update[] = __('Secondary advanced Config LDAP'); + if (config_update_value('ad_search_timeout', get_parameter('ad_search_timeout'), true) === false) { + $error_update[] = __('AD search timeout'); } if (config_update_value('ad_domain_secondary', get_parameter('ad_domain_secondary'), true) === false) { @@ -3114,6 +3106,14 @@ function config_process_config() config_update_value('ad_port', 389); } + if (!isset($config['ad_server_secondary'])) { + config_update_value('ad_server_secondary', 'localhost'); + } + + if (!isset($config['ad_port_secondary'])) { + config_update_value('ad_port_secondary', 389); + } + if (!isset($config['ad_start_tls'])) { config_update_value('ad_start_tls', 0); } From d2009b72dfa90454dc5ba936b1462265d8ee2fa6 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 14 Jun 2023 09:02:31 +0200 Subject: [PATCH 108/268] #9756 change styles modules bulks --- .../godmode/massive/massive_edit_modules.php | 2671 +++++++++-------- pandora_console/include/functions_html.php | 29 +- 2 files changed, 1489 insertions(+), 1211 deletions(-) diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index a625e038c2..479af83330 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -207,30 +207,14 @@ if ($update) { $table = new stdClass(); $table->id = 'delete_table'; -$table->class = 'databox filters'; +$table->class = 'databox filters filter-table-adv'; $table->width = '100%'; $table->data = []; $table->style = []; -$table->style[0] = 'font-weight: bold;'; -$table->style[2] = 'font-weight: bold'; $table->rowstyle = []; $table->size = []; -$table->size[0] = '15%'; -$table->size[1] = '35%'; -$table->size[2] = '15%'; -$table->size[3] = '35%'; -if (! $module_type) { - $table->rowstyle['edit1'] = 'display: none'; - $table->rowstyle['edit0'] = 'display: none'; - $table->rowstyle['edit1_1'] = 'display: none'; - $table->rowstyle['edit2'] = 'display: none'; - $table->rowstyle['edit3'] = 'display: none'; - $table->rowstyle['edit35'] = 'display: none'; - $table->rowstyle['edit4'] = 'display: none'; - $table->rowstyle['edit5'] = 'display: none'; - $table->rowstyle['edit6'] = 'display: none'; - $table->rowstyle['edit7'] = 'display: none'; -} +$table->size[0] = '50%'; +$table->size[1] = '50%'; $agents = agents_get_group_agents( array_keys(users_get_groups()), @@ -293,44 +277,41 @@ foreach ($module_types as $type) { $types[$type['id_tipo']] = $type['description']; } -$snmp_versions['1'] = 'v. 1'; -$snmp_versions['2'] = 'v. 2'; -$snmp_versions['2c'] = 'v. 2c'; -$snmp_versions['3'] = 'v. 3'; - -$table->width = '100%'; -$table->data = []; - -$table->data['selection_mode'][0] = __('Selection mode'); -$table->data['selection_mode'][1] = ''.__('Select modules first ').''.html_print_radio_button_extended('selection_mode', 'modules', '', $selection_mode, false, '', 'class="mrgn_right_40px"', true).'
'; -$table->data['selection_mode'][1] .= ''.__('Select agents first ').''.html_print_radio_button_extended('selection_mode', 'agents', '', $selection_mode, false, '', 'class="mrgn_right_40px"', true); - -$table->rowclass['form_modules_1'] = 'select_modules_row'; -$table->data['form_modules_1'][0] = __('Module type'); - -$types[0] = __('All'); -$table->colspan['form_modules_1'][1] = 2; -$table->data['form_modules_1'][1] = html_print_select( - $types, - 'module_type', - '', - false, - __('Select'), - -1, - true, - false, - true +$table->data[0][0] = html_print_label_input_block( + __('Selection mode'), + '
'.__('Select modules first ').''.html_print_radio_button_extended('selection_mode', 'modules', '', $selection_mode, false, '', 'class="mrgn_right_40px"', true).'
'.__('Select agents first ').''.html_print_radio_button_extended('selection_mode', 'agents', '', $selection_mode, false, '', 'class="mrgn_right_40px"', true).'
' ); -$table->data['form_modules_1'][3] = __('Select all modules of this type').' '.html_print_checkbox_extended( - 'force_type', - 'type', - '', - '', - false, - 'class="mrgn_right_40px"', - true, - '' +$table->rowclass[1] = 'select_modules_row'; +$types[0] = __('All'); +$table->data[1][0] = html_print_label_input_block( + __('Module type'), + html_print_select( + $types, + 'module_type', + '', + false, + __('Select'), + -1, + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); +$table->data[1][1] = html_print_label_input_block( + __('Select all modules of this type'), + html_print_checkbox_extended( + 'force_type', + 'type', + '', + '', + false, + '', + true + ) ); $modules = []; @@ -352,932 +333,1197 @@ foreach ($names as $name) { -$table->rowclass['form_agents_1'] = 'select_agents_row'; -$table->data['form_agents_1'][0] = __('Agent group'); +$table->rowclass[2] = 'select_agents_row'; $groups = groups_get_all(true); $groups[0] = __('All'); -$table->colspan['form_agents_1'][1] = 2; -$table->data['form_agents_1'][1] = html_print_select_groups( - false, - 'AW', - true, - 'groups_select', - '', - false, - '', - '', - true -).' '.__('Group recursion').' '.html_print_checkbox('recursion', 1, false, true, false); -$table->data['form_agents_1'][3] = __('Select all modules of this group').' '.html_print_checkbox_extended( - 'force_group', - 'group', - '', - '', - false, - '', - 'class="mrgn_right_40px"' +$table->data[2][0] = html_print_label_input_block( + __('Agent group'), + html_print_select_groups( + false, + 'AW', + true, + 'groups_select', + '', + false, + '', + '', + true, + false, + false, + 'w100p', + false, + 'width:100%' + ).' '.__('Group recursion').' '.html_print_checkbox('recursion', 1, false, true, false) +); +$table->data[2][1] = html_print_label_input_block( + __('Select all modules of this group'), + html_print_checkbox_extended( + 'force_group', + 'group', + '', + '', + false, + '', + true + ) ); -$table->rowclass['form_modules_3'] = ''; -$table->data['form_modules_3'][0] = __('Module Status'); -$table->colspan['form_modules_3'][1] = 2; +$table->rowclass[3] = ''; $status_list = []; +$table->colspan[3][0] = 2; $status_list[AGENT_MODULE_STATUS_NORMAL] = __('Normal'); $status_list[AGENT_MODULE_STATUS_WARNING] = __('Warning'); $status_list[AGENT_MODULE_STATUS_CRITICAL_BAD] = __('Critical'); $status_list[AGENT_MODULE_STATUS_UNKNOWN] = __('Unknown'); $status_list[AGENT_MODULE_STATUS_NOT_NORMAL] = __('Not normal'); $status_list[AGENT_MODULE_STATUS_NOT_INIT] = __('Not init'); -$table->data['form_modules_3'][1] = html_print_select( - $status_list, - 'status_module', - 'selected', - '', - __('All'), - AGENT_MODULE_STATUS_ALL, - true +$table->data[3][0] = html_print_label_input_block( + __('Module Status'), + html_print_select( + $status_list, + 'status_module', + 'selected', + '', + __('All'), + AGENT_MODULE_STATUS_ALL, + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) ); -$table->data['form_modules_3'][3] = ''; $tags = tags_get_user_tags(); -$table->rowstyle['form_modules_4'] = 'vertical-align: top;'; -$table->rowclass['form_modules_4'] = 'select_modules_row select_modules_row_2'; -$table->data['form_modules_4'][0] = __('Tags'); -$table->data['form_modules_4'][1] = html_print_select( - $tags, - 'tags[]', - $tags_name, - false, - __('Any'), - -1, - true, - true, - true +$table->rowstyle[4] = 'vertical-align: top;'; +$table->rowclass[4] = 'select_modules_row select_modules_row_2'; +$table->colspan[4][0] = 2; +$table->data[4][0] = html_print_label_input_block( + __('Tags'), + html_print_select( + $tags, + 'tags[]', + $tags_name, + false, + __('Any'), + -1, + true, + true, + true, + 'w100p', + false, + 'width:100%' + ) ); -$table->rowstyle['form_modules_filter'] = 'vertical-align: top;'; -$table->rowclass['form_modules_filter'] = 'select_modules_row select_modules_row_2'; -$table->data['form_modules_filter'][0] = __('Filter Modules'); -$table->data['form_modules_filter'][1] = html_print_input_text('filter_modules', '', '', 20, 255, true); - -$table->rowstyle['form_modules_2'] = 'vertical-align: top;'; -$table->rowclass['form_modules_2'] = 'select_modules_row select_modules_row_2'; -$table->data['form_modules_2'][0] = __('Modules'); -$table->data['form_modules_2'][1] = html_print_select( - $modules, - 'module_name[]', - $module_name, - false, - __('Select'), - -1, - true, - true, - true -).' '.__('Select all modules').' '.html_print_checkbox('select_all_modules', 1, false, true, false, '', false, "class='static'"); - -$table->data['form_modules_2'][2] = __('When select modules'); -$table->data['form_modules_2'][2] .= '
'; -$table->data['form_modules_2'][2] .= html_print_select( - [ - 'common' => __('Show common agents'), - 'all' => __('Show all agents'), - ], - 'agents_selection_mode', - 'common', - false, - '', - '', - true +$table->rowstyle[5] = 'vertical-align: top;'; +$table->rowclass[5] = 'select_modules_row select_modules_row_2'; +$table->data[5][0] = html_print_label_input_block( + __('Filter Modules'), + html_print_input_text('filter_modules', '', '', false, 255, true) ); -$table->data['form_modules_2'][3] = html_print_select( - [], - 'agents[]', - $agents_select, - false, - __('None'), - 0, - true, - true, - false +$table->data[5][1] = html_print_label_input_block( + __('When select modules'), + html_print_select( + [ + 'common' => __('Show common agents'), + 'all' => __('Show all agents'), + ], + 'agents_selection_mode', + 'common', + false, + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); + +$table->rowclass[6] = 'select_modules_row select_modules_row_2'; +$table->data[6][0] = html_print_label_input_block( + __('Modules'), + html_print_select( + $modules, + 'module_name[]', + $module_name, + false, + __('Select'), + -1, + true, + true, + true, + 'w100p', + false, + 'width:100%' + ).' '.__('Select all modules').' '.html_print_checkbox('select_all_modules', 1, false, true, false, '', false, "class='static'") +); + +$table->data[6][1] = html_print_label_input_block( + __('Agent'), + html_print_select( + [], + 'agents[]', + $agents_select, + false, + __('None'), + 0, + true, + true, + false, + 'w100p', + false, + 'width:100%' + ) ); -$table->rowclass['form_agents_2'] = 'select_agents_row'; -$table->data['form_agents_2'][0] = __('Agent Status'); -$table->colspan['form_agents_2'][1] = 2; +$table->rowclass[7] = 'select_agents_row'; $status_list = []; +$table->colspan[7][0] = 2; $status_list[AGENT_STATUS_NORMAL] = __('Normal'); $status_list[AGENT_STATUS_WARNING] = __('Warning'); $status_list[AGENT_STATUS_CRITICAL] = __('Critical'); $status_list[AGENT_STATUS_UNKNOWN] = __('Unknown'); $status_list[AGENT_STATUS_NOT_NORMAL] = __('Not normal'); $status_list[AGENT_STATUS_NOT_INIT] = __('Not init'); -$table->data['form_agents_2'][1] = html_print_select( - $status_list, - 'status_agents', - 'selected', - '', - __('All'), - AGENT_STATUS_ALL, - true +$table->data[7][0] = html_print_label_input_block( + __('Agent Status'), + html_print_select( + $status_list, + 'status_agents', + 'selected', + '', + __('All'), + AGENT_STATUS_ALL, + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) ); -$table->data['form_agents_2'][3] = ''; $tags = tags_get_user_tags(); -$table->rowstyle['form_agents_4'] = 'vertical-align: top;'; -$table->rowclass['form_agents_4'] = 'select_agents_row select_agents_row_2'; -$table->data['form_agents_4'][0] = __('Tags'); -$table->data['form_agents_4'][1] = html_print_select( - $tags, - 'tags[]', - $tags_name, - false, - __('Any'), - -1, - true, - true, - true +$table->colspan[8][0] = 2; +$table->rowstyle[8] = 'vertical-align: top;'; +$table->rowclass[8] = 'select_agents_row select_agents_row_2'; +$table->data[8][0] = html_print_label_input_block( + __('Tags'), + html_print_select( + $tags, + 'tags[]', + $tags_name, + false, + __('Any'), + -1, + true, + true, + true, + 'w100p', + false, + 'width:100%' + ) ); -$table->rowstyle['form_agents_filter'] = 'vertical-align: top;'; -$table->rowclass['form_agents_filter'] = 'select_agents_row select_agents_row_2'; -$table->data['form_agents_filter'][0] = __('Filter agents'); -$table->data['form_agents_filter'][1] = html_print_input_text('filter_agents', '', '', 20, 255, true); - -$table->rowstyle['form_agents_3'] = 'vertical-align: top;'; -$table->rowclass['form_agents_3'] = 'select_agents_row select_agents_row_2'; -$table->data['form_agents_3'][0] = __('Agents'); -$table->data['form_agents_3'][1] = html_print_select( - $agents, - 'id_agents[]', - $agents_id, - false, - '', - '', - true, - true, - false -).' '.__('Select all agents').' '.html_print_checkbox('select_all_agents', 1, false, true, false, '', false, "class='static'"); - -$table->data['form_agents_3'][2] = __('When select agents'); -$table->data['form_agents_3'][2] .= '
'; -$table->data['form_agents_3'][2] .= html_print_select( - [ - 'common' => __('Show common modules'), - 'all' => __('Show all modules'), - 'unknown' => __('Show unknown and not init modules'), - ], - 'modules_selection_mode', - 'common', - false, - '', - '', - true +$table->rowstyle[9] = 'vertical-align: top;'; +$table->rowclass[9] = 'select_agents_row select_agents_row_2'; +$table->data[9][0] = html_print_label_input_block( + __('Filter agents'), + html_print_input_text('filter_agents', '', '', false, 255, true) ); -$table->data['form_agents_3'][3] = html_print_select( - [], - 'module[]', - $modules_select, - false, - '', - '', - true, - true, - false + +$table->data[9][1] = html_print_label_input_block( + __('When select agents'), + html_print_select( + [ + 'common' => __('Show common modules'), + 'all' => __('Show all modules'), + 'unknown' => __('Show unknown and not init modules'), + ], + 'modules_selection_mode', + 'common', + false, + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); + +$table->rowstyle[10] = 'vertical-align: top;'; +$table->rowclass[10] = 'select_agents_row select_agents_row_2'; +$table->data[10][0] = html_print_label_input_block( + __('Agents'), + html_print_select( + $agents, + 'id_agents[]', + $agents_id, + false, + '', + '', + true, + true, + false, + 'w100p', + false, + 'width:100%' + ).' '.__('Select all agents').' '.html_print_checkbox('select_all_agents', 1, false, true, false, '', false, "class='static'") +); + +$table->data[10][1] = html_print_label_input_block( + __('Modules'), + html_print_select( + [], + 'module[]', + $modules_select, + false, + '', + '', + true, + true, + false, + 'w100p', + false, + 'width:100%' + ) ); -$table->data['edit0'][0] = __('Dynamic Interval'); -$table->data['edit0'][1] = html_print_extended_select_for_time( - 'dynamic_interval', - -2, - '', - 'None', - '0', - 10, - true, - 'width:150px', - false, - '', - false, - false, - '', - true +$table->data[11][0] = html_print_label_input_block( + __('Dynamic Interval'), + html_print_extended_select_for_time( + 'dynamic_interval', + -2, + '', + 'None', + '0', + 10, + true, + 'width:100%', + false, + '', + false, + false, + '', + true + ) +); +$table->data[11][1] = html_print_label_input_block( + __('Dynamic Two Tailed: '), + html_print_checkbox('dynamic_two_tailed', 1, '', true) ); -$table->data['edit0'][2] = ''; -$table->data['edit0'][2] .= ''; -$table->data['edit0'][2] .= ''; -$table->data['edit0'][2] .= '
'.__('Dynamic Min.').''.html_print_input_text('dynamic_min', '', '', 10, 255, true).'
'.__('Dynamic Max.').''.html_print_input_text('dynamic_max', '', '', 10, 255, true).'
'; -$table->data['edit0'][3] = __('Dynamic Two Tailed: '); -$table->data['edit0'][3] .= html_print_checkbox('dynamic_two_tailed', 1, '', true); - -$table->data['edit1'][0] = __('Warning status'); -$table->data['edit1'][1] = ''; - $table->data['edit1'][1] .= ""; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ""; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ""; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ""; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= '
'; - $table->data['edit1'][1] .= ''.__('Min.').''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= html_print_input_text( - 'min_warning', - '', - '', - 5, - 255, - true - ); - $table->data['edit1'][1] .= '
'; - $table->data['edit1'][1] .= ''.__('Max.').''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= html_print_input_text( - 'max_warning', - '', - '', - 5, - 255, - true - ); - $table->data['edit1'][1] .= '
'; - $table->data['edit1'][1] .= ''.__('Str.').''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= html_print_input_text( - 'str_warning', - '', - '', - 5, - 1024, - true - ); - $table->data['edit1'][1] .= '
'; - $table->data['edit1'][1] .= ''.__('Inverse interval').''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= html_print_select( - [ - '' => __('No change'), - '1' => __('Yes'), - '0' => __('No'), - ], - 'warning_inverse', - '', - '', - '', - '', - true - ); - $table->data['edit1'][1] .= '
'; - $table->data['edit1'][1] .= ''.__('Percentage').''; - $table->data['edit1'][1] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true); - - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= html_print_select( - [ - '' => __('No change'), - '1' => __('Yes'), - '0' => __('No'), - ], - 'percentage_warning', - '', - '', - '', - '', - true - ); - $table->data['edit1'][1] .= '
'; - $table->data['edit1'][1] .= ''.__('Change to critical status after.').''; - $table->data['edit1'][1] .= ''; - $table->data['edit1'][1] .= html_print_input_text( - 'warning_time', - '', - '', - 5, - 15, - true - ); - $table->data['edit1'][1] .= '
'; - - $table->data['edit1'][2] = __('Critical status'); - $table->data['edit1'][3] = ''; - $table->data['edit1'][3] .= ""; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ""; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ""; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= '
'; - $table->data['edit1'][3] .= ''.__('Min.').''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= html_print_input_text( - 'min_critical', - '', - '', - 5, - 255, - true - ); - $table->data['edit1'][3] .= '
'; - $table->data['edit1'][3] .= ''.__('Max.').''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= html_print_input_text( - 'max_critical', - '', - '', - 5, - 255, - true - ); - $table->data['edit1'][3] .= '
'; - $table->data['edit1'][3] .= ''.__('Str.').''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= html_print_input_text( - 'str_critical', - '', - '', - 5, - 1024, - true - ); - $table->data['edit1'][3] .= '
'; - $table->data['edit1'][3] .= ''.__('Inverse interval').''; - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= html_print_select( - [ - '' => __('No change'), - '1' => __('Yes'), - '0' => __('No'), - ], - 'critical_inverse', - '', - '', - '', - '', - true - ); - $table->data['edit1'][3] .= '
'; - $table->data['edit1'][3] .= ''.__('Percentage').''; - $table->data['edit1'][3] .= ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true); - $table->data['edit1'][3] .= ''; - $table->data['edit1'][3] .= html_print_select( - [ - '' => __('No change'), - '1' => __('Yes'), - '0' => __('No'), - ], - 'percentage_critical', - '', - '', - '', - '', - true - ); - $table->data['edit1'][3] .= '
'; - - $table->data['edit1_1'][0] = ''.__('Description').''; - $table->data['edit1_1'][1] = html_print_textarea( - 'descripcion', - 2, - 50, - '', - '', - true - ); - $table->colspan['edit1_1'][1] = 3; - - $table->data['edit2'][0] = __('Interval'); - $table->data['edit2'][1] = html_print_extended_select_for_time( - 'module_interval', - 0, - '', - __('No change'), - '0', - 10, - true, - 'width: 150px' - ); - $table->data['edit2'][2] = __('Disabled'); - $table->data['edit2'][3] = html_print_select( - [ - '' => __('No change'), - '1' => __('Yes'), - '0' => __('No'), - ], - 'disabled', - '', - '', - '', - '', - true - ); - - $table->data['edit3'][0] = __('Post process'); - - $table->data['edit3'][1] = html_print_extended_select_for_post_process( - 'post_process', - -1, - '', - '', - 0, - false, - true, - 'width:150px;', - true, - false, - 1 - ); - - $table->data['edit3'][2] = __('SNMP community'); - $table->data['edit3'][3] = html_print_input_text( - 'snmp_community', - '', - '', - 10, - 100, - true - ); - - $table->data['edit15'][2] = __('SNMP OID'); - $table->data['edit15'][3] = html_print_input_text( - 'snmp_oid', - '', - '', - 80, - 80, - true - ); - - $target_ip_values = []; - $target_ip_values['auto'] = __('Auto'); - $target_ip_values['force_pri'] = __('Force primary key'); - $target_ip_values['custom'] = __('Custom'); - - $table->data['edit35'][0] = __('Target IP'); - $table->data['edit35'][1] = html_print_select( - $target_ip_values, - 'ip_target', - '', - '', - __('No change'), - '', - true, - false, - false, - '', - false, - 'width:200px;' - ); - - $table->data['edit35'][1] .= html_print_input_text('custom_ip_target', '', '', 15, 60, true); - - $table->data['edit35'][2] = __('SNMP version'); - $table->data['edit35'][3] = html_print_select( - $snmp_versions, - 'snmp_version', - '', - '', - __('No change'), - '', - true, - false, - false, - '' - ); - $table->data['edit36'][0] = __('Auth user'); - $table->data['edit36'][1] = html_print_input_text( - 'plugin_user_snmp', - '', - '', - 15, - 60, - true - ); - $table->data['edit36'][2] = __('Auth password').ui_print_help_tip(__('The pass length must be eight character minimum.'), true); - $table->data['edit36'][3] = html_print_input_password('plugin_pass_snmp', '', '', 15, 60, true); - $table->data['edit37'][0] = __('Privacy method'); - $table->data['edit37'][1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', '', '', __('No change'), '', true); - $table->data['edit37'][2] = __('Privacy pass').ui_print_help_tip(__('The pass length must be eight character minimum.'), true); - $table->data['edit37'][3] = html_print_input_password('snmp3_privacy_pass', '', '', 15, 60, true); - $table->data['edit38'][0] = __('Auth method'); - $table->data['edit38'][1] = html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'plugin_parameter', '', '', __('No change'), '', true); - $table->data['edit38'][2] = __('Security level'); - $table->data['edit38'][3] = html_print_select( - [ - 'noAuthNoPriv' => __('Not auth and not privacy method'), - 'authNoPriv' => __('Auth and not privacy method'), - 'authPriv' => __('Auth and privacy method'), - ], - 'custom_string_3', - '', - '', - __('No change'), - '', - true - ); - - $table->data['edit4'][0] = __('Value'); - $table->data['edit4'][1] = ''.__('Min.').''; - $table->data['edit4'][1] .= html_print_input_text('min', '', '', 5, 15, true); - $table->data['edit4'][1] .= '
'.__('Max.').''; - $table->data['edit4'][1] .= html_print_input_text('max', '', '', 5, 15, true); - $table->data['edit4'][2] = __('Module group'); - // Create module groups values for select - $module_groups = modules_get_modulegroups(); - $module_groups[0] = __('Not assigned'); - - $table->data['edit4'][3] = html_print_select( - $module_groups, - 'id_module_group', - '', - '', - __('No change'), - '', - true, - false, - false - ); - - $table->data['edit5'][0] = __('Username'); - $table->data['edit5'][1] = html_print_input_text('plugin_user', '', '', 15, 60, true); - $table->data['edit5'][2] = __('Password'); - $table->data['edit5'][3] = html_print_input_password('plugin_pass', '', '', 15, 60, true); - - // Export target - $table->data['edit6'][0] = __('Export target'); - $targets2 = db_get_all_rows_sql('SELECT id, name FROM tserver_export ORDER by name'); - if ($targets2 === false) { - $targets2 = []; - } - - $targets = []; - $targets[0] = __('None'); - foreach ($targets2 as $t) { - $targets[$t['id']] = $t['name']; - } - - $table->data['edit6'][1] = html_print_select($targets, 'id_export', '', '', __('No change'), '', true, false, false); - $table->data['edit6'][2] = __('Unit'); - $table->data['edit6'][3] = html_print_extended_select_for_unit('unit', '-1', '', '', '0', '15', true, false, false, false, 1); - // FF stands for Flip-flop. - $table->data['edit7'][0] = __('FF threshold').' '; +$table->data[12][0] = html_print_label_input_block( + __('Dynamic Min.'), + html_print_input_text('dynamic_min', '', '', false, 255, true) +); +$table->data[12][1] = html_print_label_input_block( + __('Dynamic Max.'), + html_print_input_text('dynamic_max', '', '', false, 255, true) +); - $table->colspan['edit7'][1] = 3; - $table->data['edit7'][1] = __('Mode').' '; - $table->data['edit7'][1] .= html_print_select( - [ - '' => __('No change'), - '1' => __('Each state changing'), - '0' => __('All state changing'), - ], - 'each_ff', - '', - '', - '', - '', - true, - false, - true, - '', - false, - 'width: 400px;' - ).'
'; +$table_warning = new stdClass(); +$table_warning->class = 'filters filter-table-adv'; +$table_warning->width = '100%'; +$table_warning->size[0] = '33%'; +$table_warning->size[1] = '33%'; +$table_warning->size[2] = '33%'; +$table_warning->tdid[0][0] = 'edit1-1-min'; +$table_warning->data[0][0] = html_print_label_input_block( + __('Min.'), + html_print_input_text( + 'min_warning', + '', + '', + false, + 255, + true + ) +); - $table->data['edit7'][1] .= __('All state changing').' : '; - $table->data['edit7'][1] .= html_print_input_text( - 'min_ff_event', - '', - '', - 5, - 15, - true - ).'
'; +$table_warning->tdid[0][1] = 'edit1-1-max'; +$table_warning->data[0][1] = html_print_label_input_block( + __('Max.'), + html_print_input_text( + 'max_warning', + '', + '', + false, + 255, + true + ) +); - $table->data['edit7'][1] .= __('Each state changing').' : '; - $table->data['edit7'][1] .= __('To normal').' '; - $table->data['edit7'][1] .= html_print_input_text( - 'min_ff_event_normal', - '', - '', - 5, - 15, - true - ).' '; +$table_warning->tdid[0][2] = 'edit1-1-str'; +$table_warning->data[0][2] = html_print_label_input_block( + __('Str.'), + html_print_input_text( + 'str_warning', + '', + '', + false, + 1024, + true + ) +); - $table->data['edit7'][1] .= __('To warning').' '; - $table->data['edit7'][1] .= html_print_input_text( - 'min_ff_event_warning', - '', - '', - 5, - 15, - true - ).' '; +$table_warning->data[1][0] = html_print_label_input_block( + __('Inverse interval'), + html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'warning_inverse', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); - $table->data['edit7'][1] .= __('To critical').' '; - $table->data['edit7'][1] .= html_print_input_text( - 'min_ff_event_critical', - '', - '', - 5, - 15, - true - ).'
'; +$table_warning->data[1][1] = html_print_label_input_block( + __('Percentage').ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true), + html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'percentage_warning', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); - $table->data['edit7'][1] .= __('Keep counters').' '; - $table->data['edit7'][1] .= html_print_select( - [ - '' => __('No change'), - '1' => __('Active Counters'), - '0' => __('Inactive Counters'), - ], - 'ff_type', - '', - '', - '', - '', - true, - false, - true, - '', - false, - 'width: 400px;' - ); +$table_warning->data[1][2] = html_print_label_input_block( + __('Change to critical status after.'), + html_print_input_text( + 'warning_time', + '', + '', + false, + 15, + true + ) +); - $table->data['edit8'][0] = __('FF interval'); - $table->data['edit8'][1] = html_print_input_text( - 'module_ff_interval', - '', - '', - 5, - 10, - true - ); - $table->data['edit8'][1] .= ui_print_help_tip( - __('Module execution flip flop time interval (in secs).'), - true - ); - - $table->data['edit8'][2] = __('FF timeout'); - $table->data['edit8'][3] = html_print_input_text( - 'ff_timeout', - '', - '', - 5, - 10, - true - ); - $table->data['edit8'][3] .= ui_print_help_tip( - __('Timeout in secs from start of flip flop counting. If this value is exceeded, FF counter is reset. Set to 0 for no timeout.'), - true - ); - - $table->data['edit9'][0] = __('Historical data'); - $table->data['edit9'][1] = html_print_select(['' => __('No change'), '1' => __('Yes'), '0' => __('No')], 'history_data', '', '', '', '', true); - - // Tags avalaible - $id_tag = []; - $table->data['edit10'][0] = __('Tags'); - $table->data['edit10'][1] = html_print_select_from_sql( - 'SELECT id_tag, name FROM ttag ORDER BY name', - 'id_tag[]', - $id_tag, - '', - __('None'), - '0', - true, - true, - false, - false - ); - $table->data['edit10'][2] = __('Category'); - $table->data['edit10'][3] = html_print_select(categories_get_all_categories('forselect'), 'id_category', '', '', __('No change'), '', true, false, false); - - if (enterprise_installed()) { - $table->rowspan['edit10'][0] = $table->rowspan['edit10'][1] = 2; - - $table->data['edit101'][2] = __('Policy linking status').ui_print_help_tip(__('This field only has sense in modules adopted by a policy.'), true); - $table->data['edit101'][3] = html_print_select([MODULE_PENDING_LINK => __('Linked'), MODULE_PENDING_UNLINK => __('Unlinked')], 'policy_linked', '', '', __('No change'), '', true, false, false); - } - - if ($table->rowspan['edit10'][0] == 2) { - $table->rowspan['edit10'][0] = $table->rowspan['edit10'][1] = 3; - } else { - $table->rowspan['edit10'][0] = $table->rowspan['edit10'][1] = 2; - } - - $table->data['edit102'][2] = __('Discard unknown events'); - - $table->data['edit102'][3] = html_print_select( - [ - '' => __('No change'), - '1' => __('Yes'), - '0' => __('No'), - ], - 'throw_unknown_events', - '', - '', - '', - '', - true - ); - - $table->data['edit12'][0] = ''.__('Critical instructions').''.ui_print_help_tip(__('Instructions when the status is critical'), true); - $table->data['edit12'][1] = html_print_textarea('critical_instructions', 2, 50, '', '', true); - $table->colspan['edit12'][1] = 3; - - $table->data['edit13'][0] = ''.__('Warning instructions').''.ui_print_help_tip(__('Instructions when the status is warning'), true); - $table->data['edit13'][1] = html_print_textarea('warning_instructions', 2, 50, '', '', true); - $table->colspan['edit13'][1] = 3; - - $table->data['edit14'][0] = ''.__('Unknown instructions').''.ui_print_help_tip(__('Instructions when the status is unknown'), true); - $table->data['edit14'][1] = html_print_textarea('unknown_instructions', 2, 50, '', '', true); - $table->colspan['edit14'][1] = 3; - - $table->data['edit11'][0] = __('Quiet'); - $table->data['edit11'][0] .= ui_print_help_tip(__('The module still store data but the alerts and events will be stop'), true); - $table->data['edit11'][1] = html_print_select( - [ - -1 => __('No change'), - 1 => __('Yes'), - 0 => __('No'), - ], - 'quiet_select', - -1, - '', - '', - 0, - true - ); +$table->colspan[13][0] = 2; +$table->data[13][0] = html_print_label_input_block(__('Warning status'), html_print_table($table_warning, true)); - $table->data['edit11'][2] = __('Timeout'); - $table->data['edit11'][3] = html_print_input_text( - 'max_timeout', - '', - '', - 5, - 10, - true - ).' '.ui_print_help_tip( - __('Seconds that agent will wait for the execution of the module.'), - true - ); +$table_critical = new stdClass(); +$table_critical->class = 'filters filter-table-adv'; +$table_critical->width = '100%'; +$table_critical->size[0] = '33%'; +$table_critical->size[1] = '33%'; +$table_critical->size[2] = '33%'; +$table_critical->tdid[0][0] = 'edit1-3-min'; +$table_critical->data[0][0] = html_print_label_input_block( + __('Min.'), + html_print_input_text( + 'min_warning', + '', + '', + false, + 255, + true + ) +); - $table->data['edit16'][0] = __('Retries'); - $table->data['edit16'][1] = html_print_input_text('max_retries', '', '', 5, 10, true).' '.ui_print_help_tip( - __('Number of retries that the module will attempt to run.'), - true - ); +$table_critical->tdid[0][1] = 'edit1-3-max'; +$table_critical->data[0][1] = html_print_label_input_block( + __('Max.'), + html_print_input_text( + 'max_warning', + '', + '', + false, + 255, + true + ) +); - $table->data['edit22'][0] = __('Web checks'); - ; - $table->data['edit22'][1] = ''; +$table_critical->tdid[0][2] = 'edit1-3-str'; +$table_critical->data[0][2] = html_print_label_input_block( + __('Str.'), + html_print_input_text( + 'str_warning', + '', + '', + false, + 1024, + true + ) +); - $table->data['edit16'][2] = __('Port'); - $table->data['edit16'][3] = html_print_input_text('tcp_port', '', '', 5, 20, true); +$table_critical->data[1][0] = html_print_label_input_block( + __('Inverse interval'), + html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'warning_inverse', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); - $table->data['edit17'][0] = __('TCP send'); - $table->data['edit17'][1] = html_print_textarea('tcp_send2', 2, 65, '', '', true); +$table_critical->data[1][1] = html_print_label_input_block( + __('Percentage').ui_print_help_tip('Defines threshold as a percentage of value decrease/increment', true), + html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'percentage_warning', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); - $table->data['edit17'][2] = __('TCP receive'); - $table->data['edit17'][3] = html_print_textarea('tcp_rcv', 2, 65, '', '', true); +$table_critical->data[1][2] = html_print_label_input_block( + __('Change to critical status after.'), + html_print_input_text( + 'warning_time', + '', + '', + false, + 15, + true + ) +); - $table->data['edit18'][0] = __('WMI query'); - $table->data['edit18'][1] = html_print_input_text('wmi_query', '', '', 35, 255, true); +$table->colspan[14][0] = 2; +$table->data[14][0] = html_print_label_input_block(__('Critical status'), html_print_table($table_critical, true)); - $table->data['edit18'][2] = __('Key string'); - $table->data['edit18'][3] = html_print_input_text('key_string', '', '', 20, 60, true); +$table->colspan[15][0] = 2; +$table->data[15][0] = html_print_label_input_block( + __('Description'), + html_print_textarea( + 'descripcion', + 2, + 50, + '', + '', + true + ) +); - $table->data['edit19'][0] = __('Field number'); - $table->data['edit19'][1] = html_print_input_text('field_number', '', '', 5, 15, true); +$table->data[16][0] = html_print_label_input_block( + __('Interval'), + html_print_extended_select_for_time( + 'module_interval', + 0, + '', + __('No change'), + '0', + 10, + true, + 'width:100%' + ) +); - $table->data['edit20'][0] = __('Plugin').ui_print_help_icon('plugin_macros', true); - $table->data['edit20'][1] = html_print_select_from_sql( - 'SELECT id, name FROM tplugin ORDER BY name', - 'id_plugin', - '', - 'changePluginSelect();', - __('None'), - 0, - true, - false, - false - ); +$table->data[16][1] = html_print_label_input_block( + __('Disabled'), + html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'disabled', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); + +$table->data[17][0] = html_print_label_input_block( + __('Post process'), + html_print_extended_select_for_post_process( + 'post_process', + -1, + '', + '', + 0, + false, + true, + 'width:95%', + true, + false, + 1 + ) +); + +$table->data[17][1] = html_print_label_input_block( + __('SNMP community'), + html_print_input_text( + 'snmp_community', + '', + '', + false, + 100, + true + ) +); + +$table->colspan[18][0] = 2; +$table->data[18][0] = html_print_label_input_block( + __('SNMP OID'), + html_print_input_text( + 'snmp_oid', + '', + '', + false, + 80, + true + ) +); + +$target_ip_values = []; +$target_ip_values['auto'] = __('Auto'); +$target_ip_values['force_pri'] = __('Force primary key'); +$target_ip_values['custom'] = __('Custom'); + +$table->data[19][0] = html_print_label_input_block( + __('Target IP'), + html_print_select( + $target_ip_values, + 'ip_target', + '', + '', + __('No change'), + '', + true, + false, + false, + 'w100p', + false, + 'width:100%' + ).html_print_input_text('custom_ip_target', '', '', false, 60, true) +); + +$snmp_versions['1'] = 'v. 1'; +$snmp_versions['2'] = 'v. 2'; +$snmp_versions['2c'] = 'v. 2c'; +$snmp_versions['3'] = 'v. 3'; + +$table->data[19][1] = html_print_label_input_block( + __('SNMP version'), + html_print_select( + $snmp_versions, + 'snmp_version', + '', + '', + __('No change'), + '', + true, + false, + false, + 'w100p', + false, + 'width:100%' + ) +); + +$table->data[20][0] = html_print_label_input_block( + __('Auth user'), + html_print_input_text( + 'plugin_user_snmp', + '', + '', + false, + 60, + true + ) +); + +$table->data[20][1] = html_print_label_input_block( + __('Auth password').ui_print_help_tip(__('The pass length must be eight character minimum.'), true), + html_print_input_password('plugin_pass_snmp', '', '', 15, 60, true) +); + +$table->data[21][0] = html_print_label_input_block( + __('Privacy method'), + html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', '', '', __('No change'), '', true, false, true, 'w100p', false, 'width:100%') +); + +$table->data[21][1] = html_print_label_input_block( + __('Privacy pass').ui_print_help_tip(__('The pass length must be eight character minimum.'), true), + html_print_input_password('snmp3_privacy_pass', '', '', 15, 60, true) +); + +$table->data[22][0] = html_print_label_input_block( + __('Auth method'), + html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'plugin_parameter', '', '', __('No change'), '', true, false, true, 'w100p', false, 'width:100%') +); + +$table->data[22][1] = html_print_label_input_block( + __('Security level'), + html_print_select( + [ + 'noAuthNoPriv' => __('Not auth and not privacy method'), + 'authNoPriv' => __('Auth and not privacy method'), + 'authPriv' => __('Auth and privacy method'), + ], + 'custom_string_3', + '', + '', + __('No change'), + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); - // Store the macros in base64 into a hidden control to move between pages - $table->data['edit21'][0] = html_print_input_hidden('macros', base64_encode($macros), true); +$table_value = new stdClass(); +$table_value->class = 'filters filter-table-adv'; +$table_value->width = '100%'; +$table_value->size[0] = '50%'; +$table_value->size[1] = '50%'; - $table->colspan['edit23'][1] = 3; - $table->data['edit23'][0] = __('Command'); - $table->data['edit23'][1] = html_print_input_text_extended( - 'tcp_send', - '', - 'command_text', - '', - 100, - 10000, - false, - '', - '', - true - ); +$table_value->data[0][0] = html_print_label_input_block( + __('Min.'), + html_print_input_text('min', '', '', false, 15, true) +); - require_once $config['homedir'].'/include/class/CredentialStore.class.php'; - $array_credential_identifier = CredentialStore::getKeys('CUSTOM'); +$table_value->data[0][1] = html_print_label_input_block( + __('Max.'), + html_print_input_text('max', '', '', false, 15, true) +); - $table->data['edit24'][0] = __('Credential identifier'); - $table->data['edit24'][1] = html_print_select( - $array_credential_identifier, - 'custom_string_1', - '', - '', - __('None'), - '', - true, - false, - false - ); +$table->data[23][0] = html_print_label_input_block( + __('Value'), + html_print_table($table_value, true) +); - $array_os = [ - '' => __('No change'), - 'inherited' => __('Inherited'), - 'linux' => __('Linux'), - 'windows' => __('Windows'), - ]; - $table->data['edit24'][2] = __('Target OS'); - $table->data['edit24'][3] = html_print_select( - $array_os, - 'custom_string_2', - '', - '', - '', - '', - true, - false, - false, - '' - ); +// Create module groups values for select. +$module_groups = modules_get_modulegroups(); +$module_groups[0] = __('Not assigned'); +$table->data[23][1] = html_print_label_input_block( + __('Module group'), + html_print_select( + $module_groups, + 'id_module_group', + '', + '', + __('No change'), + '', + true, + false, + false, + 'w100p', + false, + 'width:100%' + ) +); - if (empty($id_plugin) === false) { - $preload = db_get_sql( - sprintf( - 'SELECT description FROM tplugin WHERE id = %s', - $id_plugin - ) - ); - $preload = io_safe_output($preload); - $preload = str_replace("\n", '
', $preload); - } else { - $preload = ''; - } +$table->data[24][0] = html_print_label_input_block( + __('Username'), + html_print_input_text('plugin_user', '', '', false, 60, true) +); - $table->data['edit21'][1] = sprintf( - '%s', - $preload - ); +$table->data[24][1] = html_print_label_input_block( + __('Password'), + html_print_input_password('plugin_pass', '', '', 15, 60, true) +); - echo '
'; + +// Export target. +$targets2 = db_get_all_rows_sql('SELECT id, name FROM tserver_export ORDER by name'); +if ($targets2 === false) { + $targets2 = []; +} + +$targets = []; +$targets[0] = __('None'); +foreach ($targets2 as $t) { + $targets[$t['id']] = $t['name']; +} + +$table->data[25][0] = html_print_label_input_block( + __('Export target'), + html_print_select($targets, 'id_export', '', '', __('No change'), '', true, false, false, 'w100p', false, 'width:100%') +); + +$table->data[25][1] = html_print_label_input_block( + __('Unit'), + html_print_extended_select_for_unit('unit', '-1', '', '', '0', false, true, 'width:100%;', false, false, 1, 'w100p flex') +); + +// FF stands for Flip-flop. +$table_threshold = new stdClass(); +$table_threshold->class = 'filters filter-table-adv'; +$table_threshold->width = '100%'; +$table_threshold->size[0] = '33%'; +$table_threshold->size[1] = '33%'; +$table_threshold->size[2] = '33%'; + +$table_threshold->data[0][0] = html_print_label_input_block( + __('Mode'), + html_print_select( + [ + '' => __('No change'), + '1' => __('Each state changing'), + '0' => __('All state changing'), + ], + 'each_ff', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); + +$table_threshold->data[0][1] = html_print_label_input_block( + __('All state changing'), + html_print_input_text( + 'min_ff_event', + '', + '', + false, + 15, + true, + false, + false, + '', + 'w100p' + ) +); + +$table_threshold->data[0][2] = html_print_label_input_block( + __('Keep counters'), + html_print_select( + [ + '' => __('No change'), + '1' => __('Active Counters'), + '0' => __('Inactive Counters'), + ], + 'ff_type', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); + +$table_change_status = new stdClass(); +$table_change_status->class = 'filters filter-table-adv'; +$table_change_status->width = '100%'; +$table_change_status->size[0] = '33%'; +$table_change_status->size[1] = '33%'; +$table_change_status->size[2] = '33%'; + + +$table_change_status->data[0][0] = html_print_label_input_block( + __('To normal'), + html_print_input_text( + 'min_ff_event_normal', + '', + '', + false, + 15, + true + ) +); + +$table_change_status->data[0][1] = html_print_label_input_block( + __('To warning'), + html_print_input_text( + 'min_ff_event_warning', + '', + '', + false, + 15, + true + ) +); + +$table_change_status->data[0][2] = html_print_label_input_block( + __('To critical'), + html_print_input_text( + 'min_ff_event_critical', + '', + '', + false, + 15, + true + ) +); + +$table_threshold->colspan[1][0] = 3; +$table_threshold->data[1][0] = html_print_label_input_block( + __('Each state changing'), + html_print_table($table_change_status, true) +); + +$table->colspan[26][0] = 2; +$table->data[26][0] = html_print_label_input_block( + __('FF threshold'), + html_print_table($table_threshold, true) +); + +$table->data[27][0] = html_print_label_input_block( + __('FF interval').ui_print_help_tip( + __('Module execution flip flop time interval (in secs).'), + true + ), + html_print_input_text( + 'module_ff_interval', + '', + '', + false, + 10, + true + ) +); + +$table->data[27][1] = html_print_label_input_block( + __('FF timeout').ui_print_help_tip( + __('Timeout in secs from start of flip flop counting. If this value is exceeded, FF counter is reset. Set to 0 for no timeout.'), + true + ), + html_print_input_text( + 'ff_timeout', + '', + '', + false, + 10, + true + ) +); + +$table->data[28][0] = html_print_label_input_block( + __('Historical data'), + html_print_select(['' => __('No change'), '1' => __('Yes'), '0' => __('No')], 'history_data', '', '', '', '', true, false, true, 'w100p', false, 'width:100%') +); + +$table->data[28][1] = html_print_label_input_block( + __('Category'), + html_print_select(categories_get_all_categories('forselect'), 'id_category', '', '', __('No change'), '', true, false, false, 'w100p', false, 'width:100%') +); + +// Tags avalaible. +$table->data[29][0] = html_print_label_input_block( + __('Tags'), + html_print_select_from_sql( + 'SELECT id_tag, name FROM ttag ORDER BY name', + 'id_tag[]', + $id_tag, + '', + __('None'), + '0', + true, + true, + false, + false, + 'width: 100%', + false, + 'width:100%' + ) +); + +$table->data[29][1] = html_print_label_input_block( + __('Discard unknown events'), + html_print_select( + [ + '' => __('No change'), + '1' => __('Yes'), + '0' => __('No'), + ], + 'throw_unknown_events', + '', + '', + '', + '', + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); + +if (enterprise_installed()) { + $table->data[30][0] = html_print_label_input_block( + __('Policy linking status').ui_print_help_tip(__('This field only has sense in modules adopted by a policy.'), true), + html_print_select([MODULE_PENDING_LINK => __('Linked'), MODULE_PENDING_UNLINK => __('Unlinked')], 'policy_linked', '', '', __('No change'), '', true, false, false, 'w100p', false, 'width:100%') + ); +} + +$table->data[32][0] = html_print_label_input_block( + __('Critical instructions').ui_print_help_tip(__('Instructions when the status is critical'), true), + html_print_textarea('critical_instructions', 2, 50, '', '', true) +); + +$table->data[32][1] = html_print_label_input_block( + __('Warning instructions').ui_print_help_tip(__('Instructions when the status is warning'), true), + html_print_textarea('warning_instructions', 2, 50, '', '', true) +); + +$table->data[33][0] = html_print_label_input_block( + __('Unknown instructions').ui_print_help_tip(__('Instructions when the status is unknown'), true), + html_print_textarea('unknown_instructions', 2, 50, '', '', true) +); + +$table->data[33][1] = html_print_label_input_block( + __('Quiet').ui_print_help_tip(__('The module still store data but the alerts and events will be stop'), true), + html_print_select( + [ + -1 => __('No change'), + 1 => __('Yes'), + 0 => __('No'), + ], + 'quiet_select', + -1, + '', + '', + 0, + true, + false, + true, + 'w100p', + false, + 'width:100%' + ) +); + +$table_timeout = new stdClass(); +$table_timeout->class = 'filters filter-table-adv'; +$table_timeout->width = '100%'; +$table_timeout->size[0] = '33%'; +$table_timeout->size[1] = '33%'; +$table_timeout->size[2] = '33%'; + +$table_timeout->data[0][0] = html_print_label_input_block( + __('Timeout').ui_print_help_tip( + __('Seconds that agent will wait for the execution of the module.'), + true + ), + html_print_input_text( + 'max_timeout', + '', + '', + false, + 10, + true + ) +); + +$table_timeout->data[0][1] = html_print_label_input_block( + __('Retries').ui_print_help_tip(__('Number of retries that the module will attempt to run.'), true), + html_print_input_text('max_retries', '', '', false, 10, true), +); + +$table_timeout->data[0][2] = html_print_label_input_block( + __('Port'), + html_print_input_text('tcp_port', '', '', false, 20, true) +); + +$table->colspan[34][0] = 2; +$table->data[34][0] = html_print_label_input_block( + '', + html_print_table($table_timeout, true) +); + +$table->colspan[35][0] = 2; +$table->data[35][0] = html_print_label_input_block( + __('Web checks'), + '' +); + +$table->data[36][0] = html_print_label_input_block( + __('TCP send'), + html_print_textarea('tcp_send2', 2, 65, '', '', true) +); + +$table->data[36][1] = html_print_label_input_block( + __('TCP receive'), + html_print_textarea('tcp_rcv', 2, 65, '', '', true) +); + +$table->data[37][0] = html_print_label_input_block( + __('WMI query'), + html_print_input_text('wmi_query', '', '', false, 255, true) +); + +$table->data[37][1] = html_print_label_input_block( + __('Key string'), + html_print_input_text('key_string', '', '', false, 60, true) +); + +$table->data[38][0] = html_print_label_input_block( + __('Field number'), + html_print_input_text('field_number', '', '', false, 15, true) +); + +if (empty($id_plugin) === false) { + $preload = db_get_sql( + sprintf( + 'SELECT description FROM tplugin WHERE id = %s', + $id_plugin + ) + ); + $preload = io_safe_output($preload); + $preload = str_replace("\n", '
', $preload); +} else { + $preload = ''; +} + +$table->data[38][1] = html_print_label_input_block( + __('Plugin').ui_print_help_icon('plugin_macros', true), + html_print_select_from_sql( + 'SELECT id, name FROM tplugin ORDER BY name', + 'id_plugin', + '', + 'changePluginSelect();', + __('None'), + 0, + true, + false, + false, + false, + 'width:100%' + ).sprintf( + '%s', + $preload + ) +); + +// Store the macros in base64 into a hidden control to move between pages. +$table->data[39][0] = html_print_label_input_block( + __('Command'), + html_print_input_text_extended( + 'tcp_send', + '', + 'command_text', + '', + false, + 10000, + false, + '', + '', + true + ).html_print_input_hidden('macros', base64_encode($macros), true) +); + +require_once $config['homedir'].'/include/class/CredentialStore.class.php'; +$array_credential_identifier = CredentialStore::getKeys('CUSTOM'); + +$table->data[39][1] = html_print_label_input_block( + __('Credential identifier'), + html_print_select( + $array_credential_identifier, + 'custom_string_1', + '', + '', + __('None'), + '', + true, + false, + false, + 'w100p' + ) +); + +$array_os = [ + '' => __('No change'), + 'inherited' => __('Inherited'), + 'linux' => __('Linux'), + 'windows' => __('Windows'), +]; +$table->data[40][0] = html_print_label_input_block( + __('rget OS'), + html_print_select( + $array_os, + 'custom_string_2', + '', + '', + '', + '', + true, + false, + false, + 'w100p' + ) +); + + echo ''; html_print_table($table); attachActionButton('update', 'update', $table->width, false, $SelectAction); @@ -1292,15 +1538,15 @@ $table->data['edit1'][1] = ''; ui_require_javascript_file('pandora_modules'); ui_require_jquery_file('pandora.controls'); - if ($selection_mode == 'modules') { - $modules_row = ''; - $agents_row = 'none'; - } else { - $modules_row = 'none'; - $agents_row = ''; - } +if ($selection_mode == 'modules') { + $modules_row = ''; + $agents_row = 'none'; +} else { + $modules_row = 'none'; + $agents_row = ''; +} - ?> +?> '; + echo '
'; html_print_select( $fields, $uniq_name.'_select', @@ -3876,6 +3877,14 @@ function html_print_table(&$table, $return=false) } } + if (isset($table->tdid)) { + foreach ($table->tdid as $keyrow => $tid) { + foreach ($tid as $key => $id) { + $tdid[$keyrow][$key] = $id; + } + } + } + if (isset($table->cellstyle)) { foreach ($table->cellstyle as $keyrow => $cstyle) { foreach ($cstyle as $key => $cst) { @@ -4059,6 +4068,10 @@ function html_print_table(&$table, $return=false) $colspan[$keyrow][$key] = ''; } + if (!isset($tdid[$keyrow][$key])) { + $tdid[$keyrow][$key] = ''; + } + if (!isset($rowspan[$keyrow][$key])) { $rowspan[$keyrow][$key] = ''; } @@ -4079,10 +4092,16 @@ function html_print_table(&$table, $return=false) $style[$key] = ''; } - if ($class === 'datos5' && $key === 1) { - $output .= '
'."\n"; + if ($tdid[$keyrow][$key] !== '') { + $tid = $tdid[$keyrow][$key]; } else { - $output .= ''."\n"; + $tid = $tableid.'-'.$keyrow.'-'.$key; + } + + if ($class === 'datos5' && $key === 1) { + $output .= ''."\n"; + } else { + $output .= ''."\n"; } } From c588858b7a9039400a92aca086383477db9cbe00 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 14 Jun 2023 14:31:38 +0200 Subject: [PATCH 109/268] #11509 graph real time snmp fix error customfields --- pandora_console/include/functions_snmp_browser.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/functions_snmp_browser.php b/pandora_console/include/functions_snmp_browser.php index 4a0076e847..5e81c7cb50 100644 --- a/pandora_console/include/functions_snmp_browser.php +++ b/pandora_console/include/functions_snmp_browser.php @@ -704,6 +704,13 @@ function snmp_browser_print_container( $table->size[0] = '30%'; $table->size[1] = '30%'; $table->size[2] = '30%'; + $target_ip = get_parameter('target_ip', ''); + if (str_contains($target_ip, '_')) { + $custom_field = explode('_', $target_ip)[2]; + $agent_alias = get_parameter('agent_alias', ''); + $id_agente = db_get_all_rows_sql('SELECT id_agente FROM tagente WHERE alias = "'.io_safe_output($agent_alias).'"')[0]['id_agente']; + $target_ip = db_get_all_rows_sql('SELECT description FROM tagent_custom_data WHERE id_field = '.$custom_field.' AND id_agent = '.$id_agente)[0]['description']; + } $table->data[0][0] = html_print_label_input_block( __('Target IP'), @@ -711,7 +718,7 @@ function snmp_browser_print_container( [ 'type' => 'text', 'name' => 'target_ip', - 'value' => get_parameter('target_ip', ''), + 'value' => $target_ip, 'required' => true, 'size' => 25, 'maxlength' => 0, From 0760d0fdafd8b6c6da2b06b4a1a7cfea4bb1e5d6 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 15 Jun 2023 08:44:53 +0200 Subject: [PATCH 110/268] #11353 Api downtime agents explode multi agents --- pandora_console/include/functions_api.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index a8e83789aa..c4c455c7e5 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -7833,7 +7833,7 @@ function api_set_planned_downtimes_add_agents($id, $thrash1, $other, $thrash3) } if (!empty($other['data'][0])) { - $agents = $other['data']; + $agents = explode(';', $other['data'][0]); $results = false; foreach ($agents as $agent) { if (db_get_value_sql(sprintf('SELECT id from tplanned_downtime_agents tpd WHERE tpd.id_agent = %d AND id_downtime = %d', $agent, $id)) === false) { From 13e404bcd2fcfdb032fa7421a59a33a873c3347f Mon Sep 17 00:00:00 2001 From: Jonathan Date: Thu, 15 Jun 2023 08:56:16 +0200 Subject: [PATCH 111/268] #11353 api not null agent downtime add agent --- pandora_console/include/functions_api.php | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index c4c455c7e5..e8604928e3 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -7836,21 +7836,23 @@ function api_set_planned_downtimes_add_agents($id, $thrash1, $other, $thrash3) $agents = explode(';', $other['data'][0]); $results = false; foreach ($agents as $agent) { - if (db_get_value_sql(sprintf('SELECT id from tplanned_downtime_agents tpd WHERE tpd.id_agent = %d AND id_downtime = %d', $agent, $id)) === false) { - $res = db_process_sql_insert( - 'tplanned_downtime_agents', - [ - 'id_agent' => $agent, - 'id_downtime' => $id, - 'all_modules' => 0, - 'manually_disabled' => 0, - ] - ); - if ($res) { - $results = true; + if (!empty($agent)) { + if (db_get_value_sql(sprintf('SELECT id from tplanned_downtime_agents tpd WHERE tpd.id_agent = %d AND id_downtime = %d', $agent, $id)) === false) { + $res = db_process_sql_insert( + 'tplanned_downtime_agents', + [ + 'id_agent' => $agent, + 'id_downtime' => $id, + 'all_modules' => 0, + 'manually_disabled' => 0, + ] + ); + if ($res) { + $results = true; + } + } else { + returnError(" Agent $agent is already at the planned downtime."); } - } else { - returnError(" Agent $agent is already at the planned downtime."); } } From c1dc70ed975008367f04ab96044614b47aec2482 Mon Sep 17 00:00:00 2001 From: Jorge Rincon Date: Thu, 15 Jun 2023 11:25:47 +0200 Subject: [PATCH 112/268] #11272 Fixed the style that gives color to the column in SNMP Console --- pandora_console/include/class/SnmpConsole.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pandora_console/include/class/SnmpConsole.class.php b/pandora_console/include/class/SnmpConsole.class.php index 1d1a598bc7..ce56404f5d 100644 --- a/pandora_console/include/class/SnmpConsole.class.php +++ b/pandora_console/include/class/SnmpConsole.class.php @@ -236,27 +236,27 @@ class SnmpConsole extends HTML 'status', [ 'text' => 'snmp_agent', - 'class' => 'snmp-td', + 'class' => 'snmp-td datos_green', ], [ 'text' => 'enterprise_string', - 'class' => 'snmp-td', + 'class' => 'snmp-td datos_green', ], [ 'text' => 'count', - 'class' => 'snmp-td', + 'class' => 'snmp-td datos_green', ], [ 'text' => 'trap_subtype', - 'class' => 'snmp-td', + 'class' => 'snmp-td datos_green', ], [ 'text' => 'user_id', - 'class' => 'snmp-td', + 'class' => 'snmp-td datos_green', ], [ 'text' => 'timestamp', - 'class' => 'snmp-td', + 'class' => 'snmp-td datos_green', ], 'alert', [ From 561e8c4c208f2b1147aa957d009cb2e859044732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Thu, 15 Jun 2023 09:29:14 -0600 Subject: [PATCH 113/268] Skip recover alert if was alredy recovered --- pandora_server/lib/PandoraFMS/Core.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 06deaa4331..18187984e7 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -1041,8 +1041,12 @@ sub pandora_execute_alert { $event_generated = 1; $monitoring_event_custom_data = $custom_data; } - + + if($alert_mode == FIRED_ALERT || ($alert_mode == RECOVERED_ALERT && $action->{'recovered'} == 0)) { pandora_execute_action ($pa_config, $data, $agent, $alert, $alert_mode, $action, $module, $dbh, $timestamp, $extra_macros, $monitoring_event_custom_data); + }else{ + logger ($pa_config, "Skipping recover action " . safe_output($action->{'name'}) . " for alert '" . safe_output($alert->{'name'}) . "' module '" . safe_output($module->{'nombre'}) . "'.", 10); + } if($alert_mode == RECOVERED_ALERT) { # Reset action thresholds and set recovered From 1499af3a2d3f7388db5dbf95924b0949500a5d9f Mon Sep 17 00:00:00 2001 From: "alejandro.campos@artica.es" Date: Mon, 19 Jun 2023 11:04:08 +0200 Subject: [PATCH 114/268] added setup token --- pandora_console/godmode/setup/setup_general.php | 10 ++++++++++ pandora_console/include/functions_config.php | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index 3b168cf4d0..44cfab606d 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -730,6 +730,16 @@ $table->data[$i][] = html_print_label_input_block( ) ); +$table->data[$i][] = html_print_label_input_block( + __('Show experimental features'), + html_print_checkbox_switch( + 'show_experimental_features', + 1, + $config['show_experimental_features'], + true + ) +); + echo ''; echo '
'; diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index 468c228733..b313b46088 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -374,6 +374,10 @@ function config_update_config() $error_update[] = __('keep_in_process_status_extra_id'); } + if (config_update_value('show_experimental_features', get_parameter('show_experimental_features'), true) === false) { + $error_update[] = __('show_experimental_features'); + } + if (config_update_value('console_log_enabled', get_parameter('console_log_enabled'), true) === false) { $error_update[] = __('Console log enabled'); } @@ -2359,6 +2363,10 @@ function config_process_config() config_update_value('keep_in_process_status_extra_id', 0); } + if (!isset($config['show_experimental_features'])) { + config_update_value('show_experimental_features', 0); + } + if (!isset($config['console_log_enabled'])) { config_update_value('console_log_enabled', 0); } From 94b223a4b451c2efabc1f27b8b78958f04d3b964 Mon Sep 17 00:00:00 2001 From: "alejandro.campos@artica.es" Date: Mon, 19 Jun 2023 12:12:50 +0200 Subject: [PATCH 115/268] fixed error --- pandora_console/include/javascript/tree/TreeController.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/javascript/tree/TreeController.js b/pandora_console/include/javascript/tree/TreeController.js index f3376933b5..3fdc5afa1f 100644 --- a/pandora_console/include/javascript/tree/TreeController.js +++ b/pandora_console/include/javascript/tree/TreeController.js @@ -1560,7 +1560,10 @@ var TreeController = { this.reload(); }, init: function(data) { - if (data.filter.statusModule === "fired") { + if ( + typeof data.filter !== "undefined" && + data.filter.statusModule === "fired" + ) { const newData = { ajaxUrl: data.ajaxURL, baseURL: data.baseURL, From ceb0ec9f162e6218d49f67132918650a2fa5d94c Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 19 Jun 2023 12:28:57 +0200 Subject: [PATCH 116/268] #11612 Fix template --- .../alerts/configure_alert_template.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/alerts/configure_alert_template.php b/pandora_console/godmode/alerts/configure_alert_template.php index a1abf2a218..8b97647092 100644 --- a/pandora_console/godmode/alerts/configure_alert_template.php +++ b/pandora_console/godmode/alerts/configure_alert_template.php @@ -322,6 +322,13 @@ function update_template($step) if ($step == 1) { $name = (string) get_parameter('name'); + $name = trim(io_safe_output($name)); + if (strlen($name) === 0) { + ui_print_warning_message(__('You can\'t named a template with spaces')); + return false; + } + + $name = io_safe_input($name); $description = (string) get_parameter('description'); $wizard_level = (string) get_parameter('wizard_level'); $priority = (int) get_parameter('priority'); @@ -487,6 +494,13 @@ $wizard_level = 'nowizard'; if ($create_template) { $name = (string) get_parameter('name'); + $name = trim(io_safe_output($name)); + if (strlen($name) === 0) { + ui_print_warning_message(__('You can\'t named a template with spaces')); + } + + $name = io_safe_input($name); + $description = (string) get_parameter('description'); $type = (string) get_parameter('type', 'critical'); $value = (string) get_parameter('value'); @@ -515,10 +529,11 @@ if ($create_template) { $values['field3_recovery'] = ' '; } - if (!$name_check) { + if ($name_check === false) { $result = alerts_create_alert_template($name, $type, $values); } else { - $result = ''; + ui_print_warning_message(__('Another template with the same name already exists')); + $result = false; } if ($result) { From f2ddc68c935dc2ce0e63b7b7dc2864cd0e51cacd Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 19 Jun 2023 13:55:36 +0200 Subject: [PATCH 117/268] #11612 Fix same name in edit --- .../godmode/alerts/configure_alert_template.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pandora_console/godmode/alerts/configure_alert_template.php b/pandora_console/godmode/alerts/configure_alert_template.php index 8b97647092..f041896105 100644 --- a/pandora_console/godmode/alerts/configure_alert_template.php +++ b/pandora_console/godmode/alerts/configure_alert_template.php @@ -333,6 +333,7 @@ function update_template($step) $wizard_level = (string) get_parameter('wizard_level'); $priority = (int) get_parameter('priority'); $id_group = get_parameter('id_group'); + $name_check = db_get_value('name', 'talert_templates', 'name', $name); // Only for Metaconsole. Save the previous name for synchronizing. if (is_metaconsole() === true) { $previous_name = db_get_value('name', 'talert_templates', 'id', $id); @@ -349,7 +350,12 @@ function update_template($step) 'previous_name' => $previous_name, ]; - $result = alerts_update_alert_template($id, $values); + if ($name_check === false) { + $result = alerts_update_alert_template($id, $values); + } else { + ui_print_warning_message(__('Another template with the same name already exists')); + $result = false; + } } else if ($step == 2) { $schedule = io_safe_output(get_parameter('schedule', [])); json_decode($schedule, true); From 01d48c7ba435bcd5efae1505b1e50ddebd547f0c Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 19 Jun 2023 15:09:30 +0200 Subject: [PATCH 118/268] #11567 new about window in operation --- pandora_console/general/main_menu.php | 2 +- pandora_console/include/functions_menu.php | 130 +++++++++++++++++- pandora_console/include/javascript/pandora.js | 96 +++++++++---- pandora_console/include/styles/menu.css | 5 + pandora_console/operation/menu.php | 5 +- 5 files changed, 201 insertions(+), 37 deletions(-) diff --git a/pandora_console/general/main_menu.php b/pandora_console/general/main_menu.php index 800324b076..a077614b2c 100644 --- a/pandora_console/general/main_menu.php +++ b/pandora_console/general/main_menu.php @@ -349,7 +349,7 @@ echo ''; const id = table_hover[0].id; const classes = $(`#${id}`).attr('class'); - if (id === 'icon_about') { + if (id === 'icon_about' || id === 'icon_about_operation') { return; } diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index 35ee78db39..aad0265ba2 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -486,7 +486,7 @@ function menu_print_menu(&$menu) if ($menuTypeClass === 'collapsed') { $div = '
'; } else { - if ($id === 'about') { + if ($id === 'about' || $id === 'about_operation') { $div = '
'.$main['text'].''; } else { $div = '
'.$main['text'].'
'; @@ -863,12 +863,18 @@ function menu_pepare_acl_select_data($pages, $sec) if (is_ajax()) { $about = (bool) get_parameter('about'); + $about_operation = (bool) get_parameter('about_operation'); if ($about) { global $config; global $pandora_version; global $build_version; $product_name = io_safe_output(get_product_name()); $license_expiry_date = substr($config['license_expiry_date'], 0, 4).'/'.substr($config['license_expiry_date'], 4, 2).'/'.substr($config['license_expiry_date'], 6, 2); + $license_expired = false; + $timestamp = strtotime($license_expiry_date); + if ($timestamp < time() || enterprise_installed() === false) { + $license_expired = true; + } include_once $config['homedir'].'/include/class/Diagnostics.class.php'; $d = new Diagnostics; @@ -956,14 +962,28 @@ if (is_ajax()) {
'.$item.''.$item.''.$item.''.$item.'
- logo + + logo +

'.$product_name.'

'.__('Version').' '.$pandora_version.$lts_name.' - '.(enterprise_installed() ? 'Enterprise' : 'Community').'

'.__('MR version').' MR'.$config['MR'].'

-

Build'.$build_version.'

-

'.__('Support expires').''.$license_expiry_date.'

'; +

Build'.$build_version.'

'; + if (enterprise_installed() === true) { + $dialog .= '

'.__('Support expires').''.$license_expiry_date.'

'; + } + + if ($license_expired === false) { + $dialog .= '

'.__('This system has official support, warranty and official updates.').'

'; + } else if (enterprise_installed() === true) { + $dialog .= '

'.__('This system has no active support contract, and has no support, upgrades or warranty.').'

'; + $dialog .= '

'.__('Contact Pandora FMS for expand your support contract.').'

'; + } else { + $dialog .= '

'.__('The OpenSource version has no support or warranty of any kind.').'

'; + $dialog .= '

'.__('Contact Pandora FMS for official support contract.').'

'; + } if (((bool) check_acl($config['id_user'], 0, 'PM') === true) && (is_metaconsole() === false)) { $dialogButtons = []; @@ -1006,7 +1026,7 @@ if (is_ajax()) {
- +
@@ -1226,4 +1246,104 @@ if (is_ajax()) { echo $dialog; } + + if ($about_operation) { + global $config; + global $pandora_version; + global $build_version; + $product_name = io_safe_output(get_product_name()); + $license_expiry_date = substr($config['license_expiry_date'], 0, 4).'/'.substr($config['license_expiry_date'], 4, 2).'/'.substr($config['license_expiry_date'], 6, 2); + $license_expired = false; + $timestamp = strtotime($license_expiry_date); + if ($timestamp < time() || enterprise_installed() === false) { + $license_expired = true; + } + + $lts_name = ''; + if (empty($config['lts_name']) === false) { + $lts_name = ' '.$config['lts_name'].''; + } + + $image_about = ui_get_full_url('/images/custom_logo/logo-default-pandorafms.png', false, false, false); + if (enterprise_installed() === false) { + if ($config['style'] === 'pandora_black') { + $image_about = 'images/custom_logo/'.HEADER_LOGO_BLACK_CLASSIC; + } else if ($config['style'] === 'pandora') { + $image_about = 'images/custom_logo/'.HEADER_LOGO_DEFAULT_CLASSIC; + } + } else { + if ($config['style'] === 'pandora_black' && $config['custom_logo'] === HEADER_LOGO_DEFAULT_CLASSIC) { + $config['custom_logo'] = HEADER_LOGO_BLACK_CLASSIC; + } else if ($config['style'] === 'pandora' && $config['custom_logo'] === HEADER_LOGO_BLACK_CLASSIC) { + $config['custom_logo'] = HEADER_LOGO_DEFAULT_CLASSIC; + } + + $image_about = 'images/custom_logo/'.$config['custom_logo']; + + if (file_exists(ENTERPRISE_DIR.'/'.$image_about) === true) { + $image_about = ENTERPRISE_DIR.'/'.$image_about; + } + } + + if (is_metaconsole() === true) { + $image_about = ui_get_full_url('/enterprise/images/custom_logo/pandoraFMS_metaconsole_full.svg', false, false, false); + + if ($config['meta_custom_logo'] === 'pandoraFMS_metaconsole_full.svg') { + $image_about = 'images/custom_logo/'.$config['meta_custom_logo']; + } else { + $image_about = '../images/custom_logo/'.$config['meta_custom_logo']; + } + + if (file_exists(ENTERPRISE_DIR.'/'.$image_about) === true) { + $image_about = $image_about; + } + } + + + $dialog = ' +
+ + + + + + +
+ + logo + + +

'.$product_name.'

+

'.__('Version').' '.$pandora_version.$lts_name.' - '.(enterprise_installed() ? 'Enterprise' : 'Community').'

+

'.__('MR version').' MR'.$config['MR'].'

+

Build'.$build_version.'

'; + if (enterprise_installed() === true) { + $dialog .= '

'.__('Support expires').''.$license_expiry_date.'

'; + } + + if ($license_expired === false) { + $dialog .= '

'.__('This system has official support, warranty and official updates.').'

'; + } else if (enterprise_installed() === true) { + $dialog .= '

'.__('This system has no active support contract, and has no support, upgrades or warranty.').'

'; + $dialog .= '

'.__('Contact Pandora FMS for expand your support contract.').'

'; + } else { + $dialog .= '

'.__('The OpenSource version has no support or warranty of any kind.').'

'; + $dialog .= '

'.__('Contact Pandora FMS for official support contract.').'

'; + } + + $dialog .= '
+ +
+
+ '; + + echo $dialog; + } } diff --git a/pandora_console/include/javascript/pandora.js b/pandora_console/include/javascript/pandora.js index 22815792e0..62620a0d41 100644 --- a/pandora_console/include/javascript/pandora.js +++ b/pandora_console/include/javascript/pandora.js @@ -2296,16 +2296,21 @@ var formatterDataVerticalBar = function(value, ctx) { // Show about section $(document).ready(function() { - $("#icon_about").click(function() { - $("#icon_about").addClass("selected"); + $("[id^='icon_about']").click(function() { + $("[id^='icon_about']").addClass("selected"); // Hidden tips modal. $(".window").css("display", "none"); + var type_about = "about_operation"; + if ($(this).attr("id") === "icon_about") { + type_about = "about"; + } + jQuery.post( "ajax.php", { page: "include/functions_menu", - about: "true" + [type_about]: "true" }, function(data) { $("div.ui-dialog").remove(); @@ -2319,35 +2324,66 @@ $(document).ready(function() { ); }); - function openAbout() { - $("#about-tabs").dialog({ - // title: "About", - resizable: false, - draggable: false, - modal: true, - show: { - effect: "fade", - duration: 200 - }, - hide: { - effect: "fade", - duration: 200 - }, - closeOnEscape: true, - width: 700, - height: 450, + function openAbout(section = "management") { + if (section === "management") { + $("#about-tabs").dialog({ + // title: "About", + resizable: false, + draggable: false, + modal: true, + show: { + effect: "fade", + duration: 200 + }, + hide: { + effect: "fade", + duration: 200 + }, + closeOnEscape: true, + width: 700, + height: 450, - create: function() { - $("#about-tabs").tabs({}); - $(".ui-dialog-titlebar").remove(); + create: function() { + $("#about-tabs").tabs({}); + $(".ui-dialog-titlebar").remove(); - $("#about-close").click(function() { - $("#about-tabs").dialog("close"); - $("div.ui-dialog").remove(); - $("#icon_about").removeClass("selected"); - }); - } - }); + $("#about-close").click(function() { + $("#about-tabs").dialog("close"); + $("div.ui-dialog").remove(); + $("#icon_about").removeClass("selected"); + }); + } + }); + } else if (section === "operation") { + $("#about-tabs").dialog({ + // title: "About", + resizable: false, + draggable: false, + modal: true, + show: { + effect: "fade", + duration: 200 + }, + hide: { + effect: "fade", + duration: 200 + }, + closeOnEscape: true, + width: 700, + height: 450, + + create: function() { + $("#about-tabs").tabs({}); + $(".ui-dialog-titlebar").remove(); + + $("#about-close").click(function() { + $("#about-tabs").dialog("close"); + $("div.ui-dialog").remove(); + $("#icon_about_operation").removeClass("selected"); + }); + } + }); + } } }); diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 8de579dcee..ac6689a4e1 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -357,6 +357,11 @@ background-size: 18px; } +.icon_about_operation { + background: url(../../images/menu/about.svg) no-repeat 50% 50%; + background-size: 18px; +} + #menu_container { z-index: 3; position: absolute; diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php index 96462b0eed..f4d1018157 100644 --- a/pandora_console/operation/menu.php +++ b/pandora_console/operation/menu.php @@ -785,7 +785,10 @@ if ($access_console_node === true) { // ~ } } -// Save operation menu array to use in operation/extensions.php view +$menu_operation['about_operation']['text'] = __('About'); +$menu_operation['about_operation']['id'] = 'about_operation'; + +// Save operation menu array to use in operation/extensions.php view. $operation_menu_array = $menu_operation; From 2b07b614fc2728aab7e307808609d638204e2212 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 19 Jun 2023 15:30:08 +0200 Subject: [PATCH 119/268] #11567 ignore about menu in acl --- pandora_console/include/functions_menu.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index aad0265ba2..a7361e7cb1 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -460,8 +460,9 @@ function menu_print_menu(&$menu) ($main['sec2'] ?? null), ] ) === false + || $mainsec === 'about_operation' ) { - if ($count_sub_access > 0) { + if ($count_sub_access > 0 || $mainsec === 'about_operation') { // If any susection have access but main section not, we change main link to first subsection found $main['sec2'] = $first_sub_sec2; } else { From 9fd08c928a2b6a3c5a82edf6835452a906887110 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 19 Jun 2023 16:14:21 +0200 Subject: [PATCH 120/268] #11573 network filters --- pandora_console/extras/mr/65.sql | 21 + pandora_console/include/functions_netflow.php | 18 +- .../operation/network/network_report.php | 359 +++++++++++++----- .../operation/network/network_usage_map.php | 140 ++++++- pandora_console/pandoradb.sql | 24 ++ 5 files changed, 453 insertions(+), 109 deletions(-) create mode 100644 pandora_console/extras/mr/65.sql diff --git a/pandora_console/extras/mr/65.sql b/pandora_console/extras/mr/65.sql new file mode 100644 index 0000000000..7f7a423fcf --- /dev/null +++ b/pandora_console/extras/mr/65.sql @@ -0,0 +1,21 @@ +START TRANSACTION; + +CREATE TABLE IF NOT EXISTS `tnetwork_explorer_filter` ( +`id` INT NOT NULL, +`filter_name` VARCHAR(45) NULL, +`top` VARCHAR(45) NULL, +`action` VARCHAR(45) NULL, +`advanced_filter` TEXT NULL, +PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; + +CREATE TABLE IF NOT EXISTS `tnetwork_usage_filter` ( +`id` INT NOT NULL auto_increment, +`filter_name` VARCHAR(45) NULL, +`top` VARCHAR(45) NULL, +`action` VARCHAR(45) NULL, +`advanced_filter` TEXT NULL, +PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4; + +COMMIT; diff --git a/pandora_console/include/functions_netflow.php b/pandora_console/include/functions_netflow.php index 66e1ad1a9f..7d7000ae5b 100644 --- a/pandora_console/include/functions_netflow.php +++ b/pandora_console/include/functions_netflow.php @@ -1734,7 +1734,12 @@ function netflow_get_top_summary( switch ($top_action) { case 'listeners': if (empty(!$filter)) { - $netflow_filter['ip_src'] = $filter; + if (!is_array($filter)) { + $netflow_filter['ip_src'] = $filter; + } else { + $netflow_filter['ip_src'] = $filter['ip']; + $netflow_filter['advanced_filter'] = $filter['advanced_filter']; + } } $sort = 'dstip'; @@ -1742,7 +1747,12 @@ function netflow_get_top_summary( case 'talkers': if (empty(!$filter)) { - $netflow_filter['ip_dst'] = $filter; + if (!is_array($filter)) { + $netflow_filter['ip_dst'] = $filter; + } else { + $netflow_filter['ip_dst'] = $filter['ip']; + $netflow_filter['advanced_filter'] = $filter['advanced_filter']; + } } $sort = 'srcip'; @@ -2069,7 +2079,7 @@ function netflow_aggregate_is_ip($aggregate) * * @return array With map structure. */ -function netflow_build_map_data($start_date, $end_date, $top, $aggregate) +function netflow_build_map_data($start_date, $end_date, $top, $aggregate, $advanced_filter='') { // Pass an empty filter data structure. $data = netflow_get_relationships_raw_data( @@ -2083,7 +2093,7 @@ function netflow_build_map_data($start_date, $end_date, $top, $aggregate) 'ip_src' => '', 'dst_port' => '', 'src_port' => '', - 'advanced_filter' => '', + 'advanced_filter' => $advanced_filter, 'router_ip' => '', ], $top, diff --git a/pandora_console/operation/network/network_report.php b/pandora_console/operation/network/network_report.php index 5d036df61a..c4e9a01365 100644 --- a/pandora_console/operation/network/network_report.php +++ b/pandora_console/operation/network/network_report.php @@ -39,10 +39,26 @@ if (! check_acl($config['id_user'], 0, 'AR')) { exit; } +// Ajax callbacks. +if (is_ajax() === true) { + $get_filter_values = get_parameter('get_filter_values', 0); + // Get values of the current network filter. + if ($get_filter_values) { + $id = get_parameter('id'); + $filter_values = db_get_row_filter('tnetwork_explorer_filter', ['id' => $id]); + // Decode HTML entities. + $filter_values['advanced_filter'] = io_safe_output($filter_values['advanced_filter']); + echo json_encode($filter_values); + } + + return; +} + // Include JS timepicker. ui_include_time_picker(); // Query params and other initializations. +$filter_id = (int) get_parameter('filter_id', 0); $time_greater = get_parameter('time_greater', date(TIME_FORMAT)); $date_greater = get_parameter('date_greater', date(DATE_FORMAT)); $utimestamp_greater = strtotime($date_greater.' '.$time_greater); @@ -59,6 +75,13 @@ $top = (int) get_parameter('top', 10); $main_value = ((bool) get_parameter('remove_filter', 0)) ? '' : get_parameter('main_value', ''); if (is_numeric($main_value) && !in_array($action, ['udp', 'tcp'])) { $main_value = ''; +} else { + $filter['ip'] = $main_value; +} + +$advanced_filter = get_parameter('advanced_filter', ''); +if ($advanced_filter !== '') { + $filter['advanced_filter'] = $advanced_filter; } $order_by = get_parameter('order_by', 'bytes'); @@ -66,30 +89,143 @@ if (!in_array($order_by, ['bytes', 'pkts', 'flows'])) { $order_by = 'bytes'; } -$style_end = ($is_period) ? 'display: none;' : ''; -$style_period = ($is_period) ? '' : 'display: none;'; +$save = get_parameter('save_button', ''); +$update = get_parameter('update_button', ''); + +// Save user defined filter. +if ($save != '' && check_acl($config['id_user'], 0, 'AW')) { + // Save filter args. + $data['filter_name'] = get_parameter('filter_name'); + $data['top'] = $top; + $data['action'] = $action; + $data['advanced_filter'] = $advanced_filter; + + + $filter_id = db_process_sql_insert('tnetwork_explorer_filter', $data); + if ($filter_id === false) { + $filter_id = 0; + ui_print_error_message(__('Error creating filter')); + } else { + ui_print_success_message(__('Filter created successfully')); + } +} else if ($update != '' && check_acl($config['id_user'], 0, 'AW')) { + // Update current filter. + // Do not update the filter name and group. + $data['top'] = $top; + $data['action'] = $action; + $data['advanced_filter'] = $advanced_filter; + + $result = db_process_sql_update( + 'tnetwork_explorer_filter', + $data, + ['id' => $filter_id] + ); + ui_print_result_message( + $result, + __('Filter updated successfully'), + __('Error updating filter') + ); +} // Build the table. -$table = new stdClass(); -$table->class = 'filter-table-adv'; -$table->width = '100%'; -$table->data = []; +$filterTable = new stdClass(); +$filterTable->id = ''; +$filterTable->class = 'filter-table-adv'; +$filterTable->size = []; +$filterTable->size[0] = '33%'; +$filterTable->size[1] = '33%'; +$filterTable->size[2] = '33%'; +$filterTable->data = []; -$table->data[0][] = html_print_label_input_block( - __('Data to show'), - html_print_select( - network_get_report_actions(false), - 'action', - $action, +$filterTable->data[0][0] = html_print_label_input_block( + __('Interval'), + html_print_extended_select_for_time( + 'period', + $period, '', '', 0, + false, + true + ), + [ 'div_id' => 'period_container' ] +); + +$filterTable->data[0][0] .= html_print_label_input_block( + __('Start date'), + html_print_div( + [ + 'class' => '', + 'content' => html_print_input_text( + 'date_lower', + $date_lower, + false, + 13, + 10, + true + ).html_print_image( + 'images/calendar_view_day.png', + true, + [ + 'alt' => 'calendar', + 'class' => 'main_menu_icon invert_filter', + ] + ).html_print_input_text( + 'time_lower', + $time_lower, + false, + 10, + 8, + true + ), + ], + true + ), + [ 'div_id' => 'end_date_container' ] +); + +$filterTable->data[0][1] = html_print_label_input_block( + __('End date'), + html_print_div( + [ + 'content' => html_print_input_text( + 'date', + $date_greater, + false, + 13, + 10, + true + ).html_print_image( + 'images/calendar_view_day.png', + true, + ['alt' => 'calendar'] + ).html_print_input_text( + 'time', + $time_greater, + false, + 10, + 8, + true + ), + ], true ) ); -$table->data[0][] = html_print_label_input_block( - __('Number of result to show'), +$filterTable->data[0][2] = html_print_label_input_block( + __('Defined period'), + html_print_checkbox_switch( + 'is_period', + 1, + ($is_period === true) ? 1 : 0, + true, + false, + 'nf_view_click_period()' + ) +); + +$filterTable->data[1][] = html_print_label_input_block( + __('Results to show'), html_print_select( [ '5' => 5, @@ -110,95 +246,62 @@ $table->data[0][] = html_print_label_input_block( ) ); -$table->data[1][] = html_print_label_input_block( - __('Start date'), - html_print_div( - [ - 'id' => 'end_date_container', - 'content' => html_print_input_text( - 'date_lower', - $date_lower, - '', - 10, - 10, - true - ).html_print_input_text( - 'time_lower', - $time_lower, - '', - 7, - 8, - true - ), - ], - true - ).html_print_div( - [ - 'id' => 'period_container', - 'style' => 'display: none;', - 'content' => html_print_label_input_block( - '', - html_print_extended_select_for_time( - 'period', - $period, - '', - '', - 0, - false, - true - ), - ), - ], +$filterTable->data[1][] = html_print_label_input_block( + __('Data to show'), + html_print_select( + network_get_report_actions(), + 'action', + $action, + '', + '', + 0, true ) ); -$table->data[1][] = html_print_label_input_block( - __('End date'), - html_print_div( - [ - 'id' => '', - 'class' => '', - 'content' => html_print_input_text( - 'date_greater', - $date_greater, - '', - 10, - 10, - true - ).html_print_input_text( - 'time_greater', - $time_greater, - '', - 7, - 8, - true - ), - ], - true - ) +$advanced_toggle = new stdClass(); +$advanced_toggle->class = 'filter-table-adv'; +$advanced_toggle->size = []; +$advanced_toggle->size[0] = '50%'; +$advanced_toggle->size[1] = '50%'; +$advanced_toggle->width = '100%'; +$user_groups = users_get_groups($config['id_user'], 'AR', $own_info['is_admin'], true); +$user_groups[0] = 0; +// Add all groups. +$sql = 'SELECT * FROM tnetwork_explorer_filter'; +$advanced_toggle->data[0][0] = html_print_label_input_block( + __('Load Filter'), + html_print_select_from_sql($sql, 'filter_id', $filter_id, '', __('Select a filter'), 0, true, false, true, false, 'width:100%;') ); - -$table->data[2][] = html_print_label_input_block( - __('Defined period'), - html_print_checkbox_switch( - 'is_period', - 1, - ($is_period === true) ? 1 : 0, +$advanced_toggle->data[0][1] = html_print_label_input_block( + __('Filter name'), + html_print_input_text('filter_name', '', false, 40, 45, true, false, false, '', 'w100p') +); +$advanced_toggle->colspan[1][0] = 2; +$advanced_toggle->data[1][0] = html_print_label_input_block( + __('Filter').ui_print_help_icon('pcap_filter', true), + html_print_textarea('advanced_filter', 4, 10, $advanced_filter, 'style="width:100%"', true) +); +$filterTable->colspan[2][0] = 3; +$filterTable->data[2][0] = html_print_label_input_block( + '', + ui_toggle( + html_print_table($advanced_toggle, true), + __('Advanced'), + '', + '', true, - false, - 'network_report_click_period(event)' + true, + '', + 'white-box-content', + 'box-flat white_table_graph' ) ); -echo ''; -html_print_input_hidden('order_by', $order_by); -if (empty($main_value) === false) { - html_print_input_hidden('main_value', $main_value); -} - -$outputTable = html_print_table($table, true); -$outputTable .= html_print_div( +$filterInputTable = ''; +$filterInputTable .= html_print_input_hidden('order_by', $order_by); +$filterInputTable .= html_print_table($filterTable, true); +$filterInputTable .= html_print_div( [ 'class' => 'action-buttons-right-forced', 'content' => html_print_submit_button( @@ -210,19 +313,48 @@ $outputTable .= html_print_div( 'mode' => 'mini', ], true + ).html_print_submit_button( + __('Save as new filter'), + 'save_button', + false, + [ + 'icon' => 'load', + 'onClick' => 'return defineFilterName();', + 'mode' => 'mini secondary', + 'class' => 'mrgn_right_10px', + ], + true + ).html_print_submit_button( + __('Update current filter'), + 'update_button', + false, + [ + 'icon' => 'load', + 'mode' => 'mini secondary', + 'class' => 'mrgn_right_10px', + ], + true ), ], true ); +$filterInputTable .= html_print_div( + [ + 'class' => 'action-buttons', + 'content' => $netflow_button, + ], + true +); +$filterInputTable .= ''; ui_toggle( - $outputTable, - ''.__('Filters').'', - __('Filters'), - '', + $filterInputTable, + ''.__('Filter').'', + __('Filter'), + 'search', true, false, '', - 'white-box-content', + 'white-box-content no_border', 'box-flat white_table_graph fixed_filter_bar' ); html_print_action_buttons( @@ -246,7 +378,7 @@ $data = netflow_get_top_summary( $action, $utimestamp_lower, $utimestamp_greater, - $main_value, + $filter, $order_by ); @@ -450,6 +582,26 @@ if (empty($data)) { ?> diff --git a/pandora_console/operation/network/network_usage_map.php b/pandora_console/operation/network/network_usage_map.php index 7e3964b277..76a5c396ad 100644 --- a/pandora_console/operation/network/network_usage_map.php +++ b/pandora_console/operation/network/network_usage_map.php @@ -34,6 +34,21 @@ global $config; check_login(); +// Ajax callbacks. +if (is_ajax() === true) { + $get_filter_values = get_parameter('get_filter_values', 0); + // Get values of the current network filter. + if ($get_filter_values) { + $id = get_parameter('id'); + $filter_values = db_get_row_filter('tnetwork_usage_filter', ['id' => $id]); + // Decode HTML entities. + $filter_values['advanced_filter'] = io_safe_output($filter_values['advanced_filter']); + echo json_encode($filter_values); + } + + return; +} + // Header. ui_print_standard_header( __('Network usage map'), @@ -76,6 +91,7 @@ $is_period = (bool) get_parameter('is_period', false); $period = (int) get_parameter('period', SECONDS_1HOUR); $time_lower = get_parameter('time_lower', date(TIME_FORMAT, ($utimestamp_greater - $period))); $date_lower = get_parameter('date_lower', date(DATE_FORMAT, ($utimestamp_greater - $period))); +$advanced_filter = get_parameter('advanced_filter', ''); $utimestamp_lower = ($is_period) ? ($utimestamp_greater - $period) : strtotime($date_lower.' '.$time_lower); if (!$is_period) { $period = ($utimestamp_greater - $utimestamp_lower); @@ -88,6 +104,44 @@ if (in_array($order_by, ['bytes', 'pkts', 'flows']) === false) { $order_by = 'bytes'; } +$save = get_parameter('save_button', ''); +$update = get_parameter('update_button', ''); + +// Save user defined filter. +if ($save != '' && check_acl($config['id_user'], 0, 'AW')) { + // Save filter args. + $data['filter_name'] = get_parameter('filter_name'); + $data['top'] = $top; + $data['action'] = $action; + $data['advanced_filter'] = $advanced_filter; + + + $filter_id = db_process_sql_insert('tnetwork_usage_filter', $data); + if ($filter_id === false) { + $filter_id = 0; + ui_print_error_message(__('Error creating filter')); + } else { + ui_print_success_message(__('Filter created successfully')); + } +} else if ($update != '' && check_acl($config['id_user'], 0, 'AW')) { + // Update current filter. + // Do not update the filter name and group. + $data['top'] = $top; + $data['action'] = $action; + $data['advanced_filter'] = $advanced_filter; + + $result = db_process_sql_update( + 'tnetwork_usage_filter', + $data, + ['id' => $filter_id] + ); + ui_print_result_message( + $result, + __('Filter updated successfully'), + __('Error updating filter') + ); +} + if ((bool) $config['activate_netflow'] === true) { $netflow_button = html_print_submit_button( __('Show netflow map'), @@ -95,6 +149,27 @@ if ((bool) $config['activate_netflow'] === true) { false, ['icon' => 'update'], true + ).html_print_submit_button( + __('Save as new filter'), + 'save_button', + false, + [ + 'icon' => 'load', + 'onClick' => 'return defineFilterName();', + 'mode' => 'mini secondary', + 'class' => 'mrgn_right_10px', + ], + true + ).html_print_submit_button( + __('Update current filter'), + 'update_button', + false, + [ + 'icon' => 'load', + 'mode' => 'mini secondary', + 'class' => 'mrgn_right_10px', + ], + true ); } else { $netflow_button = ''; @@ -232,6 +307,44 @@ $filterTable->data[1][] = html_print_label_input_block( ) ); +$advanced_toggle = new stdClass(); +$advanced_toggle->class = 'filter-table-adv'; +$advanced_toggle->size = []; +$advanced_toggle->size[0] = '50%'; +$advanced_toggle->size[1] = '50%'; +$advanced_toggle->width = '100%'; +$user_groups = users_get_groups($config['id_user'], 'AR', $own_info['is_admin'], true); +$user_groups[0] = 0; +$sql = 'SELECT * FROM tnetwork_usage_filter'; +$advanced_toggle->data[0][0] = html_print_label_input_block( + __('Load Filter'), + html_print_select_from_sql($sql, 'filter_id', $filter_id, '', __('Select a filter'), 0, true, false, true, false, 'width:100%;') +); +$advanced_toggle->data[0][1] = html_print_label_input_block( + __('Filter name'), + html_print_input_text('filter_name', '', false, 40, 45, true, false, false, '', 'w100p') +); +$advanced_toggle->colspan[1][0] = 2; +$advanced_toggle->data[1][0] = html_print_label_input_block( + __('Filter').ui_print_help_icon('pcap_filter', true), + html_print_textarea('advanced_filter', 4, 10, $advanced_filter, 'style="width:100%"', true) +); +$filterTable->colspan[2][0] = 3; +$filterTable->data[2][0] = html_print_label_input_block( + '', + ui_toggle( + html_print_table($advanced_toggle, true), + __('Advanced'), + '', + '', + true, + true, + '', + 'white-box-content', + 'box-flat white_table_graph' + ) +); + $filterInputTable = '
'; $filterInputTable .= html_print_input_hidden('order_by', $order_by); $filterInputTable .= html_print_table($filterTable, true); @@ -263,7 +376,8 @@ if ((bool) get_parameter('update_netflow') === true) { $utimestamp_lower, $utimestamp_greater, $top, - ($action === 'talkers') ? 'srcip' : 'dstip' + ($action === 'talkers') ? 'srcip' : 'dstip', + $advanced_filter ); $has_data = !empty($map_data['nodes']); } @@ -283,10 +397,26 @@ if ($has_data === true) { '; @@ -403,16 +405,18 @@ class AgentHive extends Widget // OS and alias. $output .= '
'; - $output .= ui_print_os_icon( - $data['id_os'], - false, - true, - true, - false, - false, - false, - ['style' => 'margin-right: 5px;'] + $icon = (string) db_get_value( + 'icon_name', + 'tconfig_os', + 'id_os', + (int) $data['id_os'] ); + $output .= '
'; + $output .= file_get_contents( + ui_get_full_url('images/'.$icon) + ); + $output .= '
'; $output .= ui_print_truncate_text( ucfirst(io_safe_output($data['alias'])), 12, diff --git a/pandora_console/include/styles/dashboards.css b/pandora_console/include/styles/dashboards.css index 61c5235911..35f83388f9 100644 --- a/pandora_console/include/styles/dashboards.css +++ b/pandora_console/include/styles/dashboards.css @@ -684,6 +684,7 @@ form.modal-dashboard height: 100%; display: flex; flex-direction: column; + margin-left: 5px; } .widget-agent-hive-square-info-header { From 1767f942b8ccf2a21662353bb90bf67614b71d6d Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 20 Jun 2023 13:16:32 +0200 Subject: [PATCH 122/268] #11626 alert detail actions name --- pandora_console/godmode/alerts/alert_view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/godmode/alerts/alert_view.php b/pandora_console/godmode/alerts/alert_view.php index e8b906b220..0e9f90438c 100644 --- a/pandora_console/godmode/alerts/alert_view.php +++ b/pandora_console/godmode/alerts/alert_view.php @@ -327,7 +327,7 @@ if (count($actions) == 1 && isset($actions[0])) { foreach ($action['escalation'] as $k => $v) { if ($v > 0) { - $table->data[$kaction][$k] = html_print_image( + $table->data[$kaction][$k] .= html_print_image( 'images/tick.png', true, ['class' => 'invert_filter'] From 5224b0e9d0bb77b22d0611471e5afd45a1e9b2bc Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 20 Jun 2023 14:35:33 +0200 Subject: [PATCH 123/268] #11625 Events - icons event type --- pandora_console/operation/events/events.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pandora_console/operation/events/events.php b/pandora_console/operation/events/events.php index d1d653777a..6986a30749 100644 --- a/pandora_console/operation/events/events.php +++ b/pandora_console/operation/events/events.php @@ -730,9 +730,7 @@ if (is_ajax() === true) { break; } - $event_type = '
 
'; - $tmp->event_type = $event_type; + $tmp->event_type = '
'.events_print_type_img($tmp->event_type, true).'
'; // Module status. // Event severity prepared. From 50dca5f8e6d14df9284d313637d77ec45ff14865 Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 20 Jun 2023 15:09:50 +0200 Subject: [PATCH 124/268] #11480 fixed widget status group --- .../lib/Dashboard/Widgets/system_group_status.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php b/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php index 02df4c2888..4782dc883f 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php +++ b/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php @@ -395,7 +395,9 @@ class SystemGroupStatusWidget extends Widget $user_groups = users_get_groups(false, 'AR', $return_all_group); $selected_groups = explode(',', $this->values['groupId'][0]); + $all_group_selected = false; if (in_array(0, $selected_groups) === true) { + $all_group_selected = true; $selected_groups = []; foreach (groups_get_all() as $key => $name_group) { $selected_groups[] = groups_get_id($name_group); @@ -480,7 +482,12 @@ class SystemGroupStatusWidget extends Widget } } - $this->values['groupId'] = $selected_groups; + if ($all_group_selected === true) { + $this->values['groupId'] = array_keys($result_groups); + } else { + $this->values['groupId'] = $selected_groups; + } + $this->values['status'] = explode(',', $this->values['status'][0]); $style = 'font-size: 1.5em; font-weight: bolder;text-align: center;'; From 5ee902902aedc32fd976875bdea9647c1c45376d Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Tue, 20 Jun 2023 15:20:43 +0200 Subject: [PATCH 125/268] #11480 added recursion in condition --- .../include/lib/Dashboard/Widgets/system_group_status.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php b/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php index 4782dc883f..b648796ca8 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php +++ b/pandora_console/include/lib/Dashboard/Widgets/system_group_status.php @@ -482,7 +482,7 @@ class SystemGroupStatusWidget extends Widget } } - if ($all_group_selected === true) { + if ($all_group_selected === true && $this->values['groupRecursion'] === true) { $this->values['groupId'] = array_keys($result_groups); } else { $this->values['groupId'] = $selected_groups; From b0bd5d30595dd903ab521686935943d300e1a482 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Tue, 20 Jun 2023 16:36:32 +0200 Subject: [PATCH 126/268] #11628 fix total amount dashboard tactical view --- .../include/functions_reporting.php | 39 ++++--------------- 1 file changed, 7 insertions(+), 32 deletions(-) diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php index 3dcb84a8c1..0eb4530a93 100755 --- a/pandora_console/include/functions_reporting.php +++ b/pandora_console/include/functions_reporting.php @@ -14816,7 +14816,13 @@ function reporting_get_stats_servers() 'class' => 'main_menu_icon invert_filter', ] ); - $tdata[1] = ''.html_print_image('images/spinner.gif', true).''; + $sql_count_event = 'SELECT SQL_NO_CACHE COUNT(id_evento) FROM tevento '; + if ($config['event_view_hr']) { + $sql_count_event .= 'WHERE utimestamp > (UNIX_TIMESTAMP(NOW()) - '.($config['event_view_hr'] * SECONDS_1HOUR).')'; + } + + $system_events = db_get_value_sql($sql_count_event); + $tdata[1] = ''.$system_events.''; if (isset($system_events) && $system_events > 50000 && !enterprise_installed()) { $tdata[2] = "
"; @@ -14831,37 +14837,6 @@ function reporting_get_stats_servers() $output = '
'.__('Server performance').''.html_print_table($table_srv, true).'
'; - $public_hash = get_parameter('auth_hash', false); - if ($public_hash === false) { - $output .= ''; - } else { - // This is for public link on the dashboard - $sql_count_event = 'SELECT SQL_NO_CACHE COUNT(id_evento) FROM tevento '; - if ($config['event_view_hr']) { - $sql_count_event .= 'WHERE utimestamp > (UNIX_TIMESTAMP(NOW()) - '.($config['event_view_hr'] * SECONDS_1HOUR).')'; - } - - $system_events = db_get_value_sql($sql_count_event); - - $output .= ''; - } - return $output; } From 43c7dfe3832c8a11b9bcd6fccd26894cd2e0bb7f Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Wed, 21 Jun 2023 18:15:18 +0200 Subject: [PATCH 127/268] #11589 fixed generate pdf graph --- pandora_console/include/chart_generator.php | 50 +++++++++---------- pandora_console/include/functions.php | 13 +++-- .../include/graphs/functions_flot.php | 2 +- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/pandora_console/include/chart_generator.php b/pandora_console/include/chart_generator.php index 2695b89c22..2f1ea1d5b3 100644 --- a/pandora_console/include/chart_generator.php +++ b/pandora_console/include/chart_generator.php @@ -142,31 +142,31 @@ if (file_exists('languages/'.$user_language.'.mo') === true) { Pandora FMS Graph - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + ;'> createPage(); + $curl = curl_init(); - // Navigate to an URL. - $navigation = $page->navigate($url.'?data='.urlencode(json_encode($data))); - $navigation->waitForNavigation(Page::DOM_CONTENT_LOADED); + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, ['data' => json_encode($data)]); + + $response = curl_exec($curl); + + curl_close($curl); + + $page->setHtml($response); // Dynamic. $dynamic_height = $page->evaluate('document.getElementById("container-chart-generator-item").clientHeight')->getReturnValue(); diff --git a/pandora_console/include/graphs/functions_flot.php b/pandora_console/include/graphs/functions_flot.php index d1856b7b4c..97f254b021 100644 --- a/pandora_console/include/graphs/functions_flot.php +++ b/pandora_console/include/graphs/functions_flot.php @@ -755,7 +755,7 @@ function flot_slicesbar_graph( 'date_to' => $date_to, 'server_id' => $server_id, ]; - // TO-DO Cambiar esto para que se pase por POST, NO SE PUEDE PASAR POR GET. + update_check_config_token($tokem_config, json_encode($graph_data)); $_SESSION['slicebar'] = $tokem_config; $_SESSION['slicebar_value'] = json_encode($graph_data); From 6fb72de3ff64589f0bf54c332ece18ad50608b7f Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Thu, 22 Jun 2023 09:28:07 +0200 Subject: [PATCH 128/268] #11589 fixed generate pdf graph in metaconsole --- pandora_console/include/chart_generator.php | 51 +++++++++++---------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/pandora_console/include/chart_generator.php b/pandora_console/include/chart_generator.php index 2f1ea1d5b3..7c603322cc 100644 --- a/pandora_console/include/chart_generator.php +++ b/pandora_console/include/chart_generator.php @@ -136,37 +136,38 @@ if (file_exists('languages/'.$user_language.'.mo') === true) { $l10n->load_tables(); } +$hack_metaconsole = (is_metaconsole() === true) ? '../../' : ''; ?> Pandora FMS Graph - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + ;'> Date: Thu, 22 Jun 2023 18:52:06 +0200 Subject: [PATCH 129/268] Clean deleted agents from dashboards, reports, etc --- pandora_console/include/functions_agents.php | 63 ++++++++++++++++++++ pandora_server/util/pandora_db.pl | 50 +++++++++++++++- 2 files changed, 112 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/functions_agents.php b/pandora_console/include/functions_agents.php index f8bb2fc024..2c5ca86e7f 100644 --- a/pandora_console/include/functions_agents.php +++ b/pandora_console/include/functions_agents.php @@ -2769,6 +2769,69 @@ function agents_delete_agent($id_agents, $disableACL=false) enterprise_include_once('include/functions_agents.php'); enterprise_hook('agent_delete_from_cache', [$id_agent]); + // Delete agent from visual console. + db_process_sql_delete( + 'tlayout_data', + ['id_agent' => $id_agent] + ); + + // Delete agent from visual dashboards. + db_process_sql( + 'UPDATE twidget_dashboard + SET options = NULL + WHERE options LIKE ("%\"agentid\":\"'.$id_agent.'\"%")' + ); + + // Delete agent from treport. + db_process_sql_delete( + 'treport_content', + ['id_agent' => $id_agent] + ); + + // Delete rules from tevent alerts (correlative alerts) + db_process_sql_delete( + 'tevent_rule', + [ + 'agent' => $id_agent, + 'operator_agent' => '==', + ] + ); + + db_process_sql_delete( + 'tevent_rule', + [ + 'log_agent' => $id_agent, + 'operator_log_agent' => '==', + ] + ); + + // Delete from gis maps history + db_process_sql_delete( + 'tgis_data_history', + ['tagente_id_agente' => $id_agent] + ); + + // Delete from policies. + db_process_sql_delete( + 'tpolicy_agents', + ['id_agent' => $id_agent] + ); + + // Delete from tnetwork maps + db_process_sql_delete( + 'titem', + ['source_data' => $id_agent] + ); + + db_process_sql_delete( + 'trel_item', + [ + 'id_parent_source_data' => $id_agent, + 'id_child_source_data' => $id_agent, + ], + 'OR' + ); + // Delete agent from fav menu. db_process_sql_delete( 'tfavmenu_user', diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 31218a8f19..48ea46f7fe 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -760,7 +760,55 @@ sub pandora_checkdb_integrity { # Delete orphan data_inc reference records db_do ($dbh, 'DELETE FROM tagente_datos_inc WHERE id_agente_modulo NOT IN (SELECT id_agente_modulo FROM tagente_modulo)'); - + + # Delete orphan data form deleted agents. + my @agents_ids = get_db_rows ($dbh, 'SELECT id_agente, alias FROM tagente'); + my $agents_id = '0'; + my $agents_alias; + foreach my $id (@agents_ids) { + $agents_id .= ','.$id->{'id_agente'}; + $agents_alias .= ','.$id->{'alias'}; + } + if(defined($agents_id) && $agents_id ne '0') { + # Delete orphan data from visual console. + db_do ($dbh, 'DELETE FROM tlayout_data WHERE id_agent NOT IN (?)', $agents_id); + + # Clearl orphan data from dashboards + my $where_condition; + my $index ; + foreach my $agent_id (@agents_ids) { + $where_condition .= 'options NOT LIKE ("%\\"agentid\\":\\"'.$agent_id->{'id_agente'}.'\\"%")'; + if($agent_id == @agents_ids[-1]) { + last; + } + $where_condition .= ' AND '; + } + db_do ($dbh, 'UPDATE twidget_dashboard set options = NULL WHERE '.$where_condition); + + # Delete orphan report items. + db_do ($dbh, 'DELETE FROM treport_content WHERE id_agent != 0 AND id_agent NOT IN (?)', $agents_id); + + # Delete orphan tevent alert rules + db_do ($dbh, 'DELETE FROM tevent_rule WHERE agent IS NOT NULL AND agent != "" AND agent NOT IN (?) AND operator_agent = ?', $agents_alias, '=='); + db_do ($dbh, 'DELETE FROM tevent_rule WHERE log_agent IS NOT NULL AND log_agent != "" AND log_agent NOT IN (?) AND operator_log_agent = ?', $agents_alias, '=='); + + # Delete orphan data from favorite agents + db_do ($dbh, 'DELETE FROM tfavmenu_user WHERE section = "Agents" AND id_element NOT IN (?)', $agents_id); + + # Delete orphan data from tservices. + db_do ($dbh, 'DELETE FROM tservice_element WHERE id_agent NOT IN (?)', $agents_id); + + # Delete orphan data from gis maps + db_do ($dbh, 'DELETE FROM tgis_data_history WHERE tagente_id_agente NOT IN (?)', $agents_id); + + # Delete agents from policies + db_do ($dbh, 'DELETE FROM tpolicy_agents WHERE id_agent NOT IN (?)', $agents_id); + + # Delete orphan tnetwork maps data + db_do ($dbh, 'DELETE FROM titem WHERE source_data NOT IN (?)', $agents_id); + db_do ($dbh, 'DELETE FROM trel_item WHERE id_parent_source_data NOT IN (?) OR id_child_source_data NOT IN (?)', $agents_id, $agents_id); + } + # Check enterprise tables enterprise_hook ('pandora_checkdb_integrity_enterprise', [$conf, $dbh]); } From 7a3da419bd0efd2c97103bd45365cdf1c26953a2 Mon Sep 17 00:00:00 2001 From: Calvo Date: Fri, 23 Jun 2023 15:06:31 +0200 Subject: [PATCH 130/268] Clean deleted agents and modules from dashboards, reports, etc --- pandora_server/util/pandora_db.pl | 36 +++++++++++++++++-------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 48ea46f7fe..d8d61eb7df 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -764,51 +764,55 @@ sub pandora_checkdb_integrity { # Delete orphan data form deleted agents. my @agents_ids = get_db_rows ($dbh, 'SELECT id_agente, alias FROM tagente'); my $agents_id = '0'; - my $agents_alias; foreach my $id (@agents_ids) { $agents_id .= ','.$id->{'id_agente'}; - $agents_alias .= ','.$id->{'alias'}; } if(defined($agents_id) && $agents_id ne '0') { # Delete orphan data from visual console. + log_message ('INTEGRITY', "Deleting orphan visual console items."); db_do ($dbh, 'DELETE FROM tlayout_data WHERE id_agent NOT IN (?)', $agents_id); + db_do ($dbh, 'DELETE FROM tlayout_data WHERE id_agente_modulo NOT IN (SELECT id_agente_modulo FROM tagente_modulo)'); # Clearl orphan data from dashboards + log_message ('INTEGRITY', "Deleting orphan dahsboard items."); my $where_condition; - my $index ; foreach my $agent_id (@agents_ids) { $where_condition .= 'options NOT LIKE ("%\\"agentid\\":\\"'.$agent_id->{'id_agente'}.'\\"%")'; - if($agent_id == @agents_ids[-1]) { + if($agent_id == $agents_ids[-1]) { last; } $where_condition .= ' AND '; } + db_do ($dbh, 'UPDATE twidget_dashboard set options = NULL WHERE '.$where_condition); - # Delete orphan report items. - db_do ($dbh, 'DELETE FROM treport_content WHERE id_agent != 0 AND id_agent NOT IN (?)', $agents_id); + $where_condition = ''; + my @modules = get_db_rows($dbh, 'SELECT id_agente_modulo FROM tagente_modulo'); + foreach my $id_agente_modulo (@modules) { + print Dumper($id_agente_modulo); + $where_condition .= 'options NOT LIKE ("%\\"moduleId\\":\\"'.$id_agente_modulo->{'id_agente_modulo'}.'\\"%")'; + if($id_agente_modulo == $modules[-1]) { + last; + } + $where_condition .= ' AND '; + } - # Delete orphan tevent alert rules - db_do ($dbh, 'DELETE FROM tevent_rule WHERE agent IS NOT NULL AND agent != "" AND agent NOT IN (?) AND operator_agent = ?', $agents_alias, '=='); - db_do ($dbh, 'DELETE FROM tevent_rule WHERE log_agent IS NOT NULL AND log_agent != "" AND log_agent NOT IN (?) AND operator_log_agent = ?', $agents_alias, '=='); + db_do ($dbh, 'UPDATE twidget_dashboard set options = NULL WHERE '.$where_condition); # Delete orphan data from favorite agents + log_message ('INTEGRITY', "Deleting orphan favories items."); db_do ($dbh, 'DELETE FROM tfavmenu_user WHERE section = "Agents" AND id_element NOT IN (?)', $agents_id); - # Delete orphan data from tservices. - db_do ($dbh, 'DELETE FROM tservice_element WHERE id_agent NOT IN (?)', $agents_id); - # Delete orphan data from gis maps + log_message ('INTEGRITY', "Deleting orphan GIS data."); db_do ($dbh, 'DELETE FROM tgis_data_history WHERE tagente_id_agente NOT IN (?)', $agents_id); - # Delete agents from policies - db_do ($dbh, 'DELETE FROM tpolicy_agents WHERE id_agent NOT IN (?)', $agents_id); - # Delete orphan tnetwork maps data + log_message ('INTEGRITY', "Deleting orphan networkmaps data."); db_do ($dbh, 'DELETE FROM titem WHERE source_data NOT IN (?)', $agents_id); db_do ($dbh, 'DELETE FROM trel_item WHERE id_parent_source_data NOT IN (?) OR id_child_source_data NOT IN (?)', $agents_id, $agents_id); } - + # Check enterprise tables enterprise_hook ('pandora_checkdb_integrity_enterprise', [$conf, $dbh]); } From e17e2ee66c80bb1fb05defdee9df0c0b9e3a33b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Fri, 23 Jun 2023 15:08:07 -0600 Subject: [PATCH 131/268] =?UTF-8?q?Replace=20"Artica=20Soluciones=20Tecnol?= =?UTF-8?q?[o,=C3=B3]gicas=20S.L"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extras/scripts/mail_transfer/mail_transfer.pl | 2 +- pandora_agents/embedded/pandora_config.c | 2 +- pandora_agents/embedded/pandora_config.h | 2 +- pandora_agents/embedded/pandora_type.h | 2 +- pandora_agents/embedded/pandora_util.h | 2 +- pandora_agents/pc/pandora_agent | 2 +- pandora_agents/pc/plugins/grep_log | 2 +- pandora_agents/pc/plugins/inventory | 2 +- pandora_agents/pc/plugins/nagios_plugin_wrapper | 2 +- pandora_agents/pc/plugins/pandora_df | 2 +- pandora_agents/pc/plugins/pandora_update | 2 +- pandora_agents/pc/tentacle_client | 4 ++-- pandora_agents/pc/tentacle_server | 4 ++-- pandora_agents/shellscript/linux/plugins/grep_log | 2 +- pandora_agents/shellscript/linux/plugins/inventory | 2 +- pandora_agents/shellscript/linux/plugins/pandora_df | 2 +- pandora_agents/shellscript/linux/tentacle_client | 4 ++-- pandora_agents/shellscript/mac_osx/plugins/grep_log | 2 +- pandora_agents/shellscript/mac_osx/tentacle_client | 4 ++-- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_revent | 2 +- pandora_agents/unix/plugins/file-nr.sh | 2 +- pandora_agents/unix/plugins/grep_log | 2 +- pandora_agents/unix/plugins/grep_log_module | 2 +- pandora_agents/unix/plugins/grep_snmptrapd | 2 +- pandora_agents/unix/plugins/inventory | 2 +- pandora_agents/unix/plugins/nagios_plugin_wrapper | 2 +- pandora_agents/unix/plugins/pandora_df | 2 +- pandora_agents/unix/plugins/pandora_df_free | 2 +- pandora_agents/unix/plugins/pandora_df_used | 2 +- pandora_agents/unix/plugins/pandora_update | 2 +- pandora_agents/unix/plugins/sockstat.sh | 2 +- pandora_agents/unix/tentacle_client | 4 ++-- pandora_agents/unix/tentacle_server | 4 ++-- pandora_console/godmode/alerts/alert_list.list.php | 2 +- pandora_console/include/ajax/alert_list.ajax.php | 2 +- pandora_console/include/ajax/consoles.ajax.php | 2 +- pandora_console/include/ajax/hostDevices.ajax.php | 2 +- pandora_console/include/styles/help.css | 2 +- pandora_console/include/styles/ie.css | 2 +- pandora_console/include/styles/install.css | 2 +- pandora_console/include/styles/menu.css | 2 +- pandora_console/include/styles/pandora_black.css | 2 +- pandora_console/include/styles/pandora_forms.css | 2 +- pandora_console/include/styles/pandora_minimal.css | 2 +- pandora_plugins/Advanced Log Parser/pandora_logparser.pl | 2 +- pandora_plugins/Log_event/getEvent.ps1 | 2 +- pandora_plugins/Netstat/netstat.pl | 2 +- pandora_plugins/Pandora Mail transfer daemon/mail_transfer.pl | 2 +- pandora_server/NetBSD/tentacle_server | 4 ++-- pandora_server/bin/pandora_server | 2 +- pandora_server/bin/tentacle_server | 4 ++-- pandora_server/lib/PandoraFMS/AlertServer.pm | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/Core.pm | 4 ++-- pandora_server/lib/PandoraFMS/DB.pm | 2 +- pandora_server/lib/PandoraFMS/DataServer.pm | 2 +- pandora_server/lib/PandoraFMS/DiscoveryServer.pm | 2 +- pandora_server/lib/PandoraFMS/GIS.pm | 4 ++-- pandora_server/lib/PandoraFMS/Goliat/GoliatCURL.pm | 2 +- pandora_server/lib/PandoraFMS/Goliat/GoliatConfig.pm | 2 +- pandora_server/lib/PandoraFMS/Goliat/GoliatLWP.pm | 2 +- pandora_server/lib/PandoraFMS/Goliat/GoliatTools.pm | 2 +- pandora_server/lib/PandoraFMS/InventoryServer.pm | 2 +- pandora_server/lib/PandoraFMS/NetworkServer.pm | 2 +- pandora_server/lib/PandoraFMS/PluginServer.pm | 2 +- pandora_server/lib/PandoraFMS/PredictionServer.pm | 2 +- pandora_server/lib/PandoraFMS/ProducerConsumerServer.pm | 2 +- pandora_server/lib/PandoraFMS/SNMPServer.pm | 2 +- pandora_server/lib/PandoraFMS/Server.pm | 2 +- pandora_server/lib/PandoraFMS/Tools.pm | 2 +- pandora_server/lib/PandoraFMS/WMIServer.pm | 2 +- pandora_server/lib/PandoraFMS/WebServer.pm | 2 +- pandora_server/util/agent_gis_update.pl | 2 +- pandora_server/util/alert_multicast.pl | 2 +- pandora_server/util/compare_schemas.pl | 2 +- pandora_server/util/integria_rticket.pl | 2 +- pandora_server/util/n2p.pl | 2 +- pandora_server/util/pandora_DBI_test.pl | 2 +- pandora_server/util/pandora_database_check.pl | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_dbstress.pl | 2 +- pandora_server/util/pandora_ha.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- pandora_server/util/pandora_migrate_plugins.pl | 2 +- pandora_server/util/pandora_migrate_recon_scripts.pl | 2 +- pandora_server/util/pandora_perf_report.pl | 2 +- pandora_server/util/pandora_recode_db.pl | 2 +- pandora_server/util/pandora_revent.pl | 2 +- pandora_server/util/pandora_sync_db.pl | 4 ++-- pandora_server/util/pandora_xml_count.pl | 2 +- pandora_server/util/pandora_xml_stress.pl | 2 +- pandora_server/util/plugin/snmp_process.pl | 2 +- pandora_server/util/udp_client.pl | 2 +- tentacle/tentacle_client | 4 ++-- tentacle/tentacle_server | 4 ++-- 96 files changed, 109 insertions(+), 109 deletions(-) diff --git a/extras/scripts/mail_transfer/mail_transfer.pl b/extras/scripts/mail_transfer/mail_transfer.pl index 403303571d..231223fe7d 100755 --- a/extras/scripts/mail_transfer/mail_transfer.pl +++ b/extras/scripts/mail_transfer/mail_transfer.pl @@ -3,7 +3,7 @@ # Pandora FMS Mail Transfer # This is a tool for transfering Pandora FMS data files by mail (SMTP/POP) ########################################################################## -# Copyright (c) 2011-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2011-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_agents/embedded/pandora_config.c b/pandora_agents/embedded/pandora_config.c index b8b9d01e9d..c8a86b3534 100644 --- a/pandora_agents/embedded/pandora_config.c +++ b/pandora_agents/embedded/pandora_config.c @@ -1,5 +1,5 @@ // Pandora FMS Embedded Agent -// (c) Artica Soluciones Tecnológicas S.L 2011 +// (c) Pandora FMS 2011 // (c) Sancho Lerena // This program is free software; you can redistribute it and/or modify diff --git a/pandora_agents/embedded/pandora_config.h b/pandora_agents/embedded/pandora_config.h index 661f399bde..c30db9e317 100644 --- a/pandora_agents/embedded/pandora_config.h +++ b/pandora_agents/embedded/pandora_config.h @@ -1,5 +1,5 @@ // Pandora FMS Embedded Agent -// (c) Artica Soluciones Tecnológicas S.L 2011 +// (c) Pandora FMS 2011 // (c) Sancho Lerena // This program is free software; you can redistribute it and/or modify diff --git a/pandora_agents/embedded/pandora_type.h b/pandora_agents/embedded/pandora_type.h index f74fc30765..cd399bf74c 100644 --- a/pandora_agents/embedded/pandora_type.h +++ b/pandora_agents/embedded/pandora_type.h @@ -1,5 +1,5 @@ // Pandora FMS Embedded Agent -// (c) Artica Soluciones Tecnológicas S.L 2011 +// (c) Pandora FMS 2011 // (c) Sancho Lerena // This program is free software; you can redistribute it and/or modify diff --git a/pandora_agents/embedded/pandora_util.h b/pandora_agents/embedded/pandora_util.h index 94633d0235..356b790a64 100644 --- a/pandora_agents/embedded/pandora_util.h +++ b/pandora_agents/embedded/pandora_util.h @@ -1,5 +1,5 @@ // Pandora FMS Embedded Agent -// (c) Artica Soluciones Tecnológicas S.L 2011 +// (c) Pandora FMS 2011 // (c) Sancho Lerena // This program is free software; you can redistribute it and/or modify diff --git a/pandora_agents/pc/pandora_agent b/pandora_agents/pc/pandora_agent index 94a51f199e..0dd4cd0dd1 100644 --- a/pandora_agents/pc/pandora_agent +++ b/pandora_agents/pc/pandora_agent @@ -2285,6 +2285,6 @@ This is released under the GNU Lesser General Public License. =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_agents/pc/plugins/grep_log b/pandora_agents/pc/plugins/grep_log index 2cf32474bd..14ecd0bdbe 100644 --- a/pandora_agents/pc/plugins/grep_log +++ b/pandora_agents/pc/plugins/grep_log @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2008 Ramon Novoa -# Copyright (c) 2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2008 Pandora FMS. # # grep_log Perl script to search log files for a matching pattern. The last # searched position is saved in an index file so that consecutive diff --git a/pandora_agents/pc/plugins/inventory b/pandora_agents/pc/plugins/inventory index e83c50a08f..2976faf627 100644 --- a/pandora_agents/pc/plugins/inventory +++ b/pandora_agents/pc/plugins/inventory @@ -1,7 +1,7 @@ #!/usr/bin/perl ############################################################################### # -# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2009 Pandora FMS. # # inventory Generate a hardware/software inventory. # diff --git a/pandora_agents/pc/plugins/nagios_plugin_wrapper b/pandora_agents/pc/plugins/nagios_plugin_wrapper index 34b5e80eb1..722897f11b 100644 --- a/pandora_agents/pc/plugins/nagios_plugin_wrapper +++ b/pandora_agents/pc/plugins/nagios_plugin_wrapper @@ -8,7 +8,7 @@ # # Usage: nagios_plugin_wrapper ########################################################################## -# Copyright (c) 2010 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2010 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_agents/pc/plugins/pandora_df b/pandora_agents/pc/plugins/pandora_df index 48118b771d..40405db794 100644 --- a/pandora_agents/pc/plugins/pandora_df +++ b/pandora_agents/pc/plugins/pandora_df @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2009 Ramon Novoa -# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2009 Pandora FMS. # # pandora_df Retrieve filesystem disk usage. By default information for all # filesystems is returned, but one or more filesystems may be diff --git a/pandora_agents/pc/plugins/pandora_update b/pandora_agents/pc/plugins/pandora_update index cbbd16bc73..c3a88579d8 100644 --- a/pandora_agents/pc/plugins/pandora_update +++ b/pandora_agents/pc/plugins/pandora_update @@ -1,6 +1,6 @@ #!/usr/bin/perl # Update binary tool -# Copyright (c) 2010 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2010 Pandora FMS. # Copyright (c) Sancho Lerena use strict; diff --git a/pandora_agents/pc/tentacle_client b/pandora_agents/pc/tentacle_client index 913beda931..fd2b0457ab 100644 --- a/pandora_agents/pc/tentacle_client +++ b/pandora_agents/pc/tentacle_client @@ -2,7 +2,7 @@ ################################################################################ # # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2008 Pandora FMS. # # tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for # protocol description. @@ -1095,7 +1095,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_agents/pc/tentacle_server b/pandora_agents/pc/tentacle_server index 4458237003..974f60e4d4 100755 --- a/pandora_agents/pc/tentacle_server +++ b/pandora_agents/pc/tentacle_server @@ -5,7 +5,7 @@ # Tentacle have IANA assigned port tpc/41121 as official port. ########################################################################## # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2005-2022 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2022 Pandora FMS # # tentacle_server.pl Tentacle Server. See https://pandorafms.com/docs/ for # protocol description. @@ -1884,7 +1884,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_agents/shellscript/linux/plugins/grep_log b/pandora_agents/shellscript/linux/plugins/grep_log index 2cf32474bd..14ecd0bdbe 100755 --- a/pandora_agents/shellscript/linux/plugins/grep_log +++ b/pandora_agents/shellscript/linux/plugins/grep_log @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2008 Ramon Novoa -# Copyright (c) 2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2008 Pandora FMS. # # grep_log Perl script to search log files for a matching pattern. The last # searched position is saved in an index file so that consecutive diff --git a/pandora_agents/shellscript/linux/plugins/inventory b/pandora_agents/shellscript/linux/plugins/inventory index 56d64e26b8..793b3cd075 100755 --- a/pandora_agents/shellscript/linux/plugins/inventory +++ b/pandora_agents/shellscript/linux/plugins/inventory @@ -1,7 +1,7 @@ #!/usr/bin/perl ############################################################################### # -# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2009 Pandora FMS. # # inventory Generate a hardware/software inventory. # diff --git a/pandora_agents/shellscript/linux/plugins/pandora_df b/pandora_agents/shellscript/linux/plugins/pandora_df index 59e04719cc..a700b56af0 100755 --- a/pandora_agents/shellscript/linux/plugins/pandora_df +++ b/pandora_agents/shellscript/linux/plugins/pandora_df @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2009 Ramon Novoa -# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2009 Pandora FMS. # # pandora_df Retrieve filesystem disk usage. By default information for all # filesystems is returned, but one or more filesystems may be diff --git a/pandora_agents/shellscript/linux/tentacle_client b/pandora_agents/shellscript/linux/tentacle_client index 913beda931..fd2b0457ab 100755 --- a/pandora_agents/shellscript/linux/tentacle_client +++ b/pandora_agents/shellscript/linux/tentacle_client @@ -2,7 +2,7 @@ ################################################################################ # # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2008 Pandora FMS. # # tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for # protocol description. @@ -1095,7 +1095,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_agents/shellscript/mac_osx/plugins/grep_log b/pandora_agents/shellscript/mac_osx/plugins/grep_log index 01a73d40c2..6dde5e1423 100755 --- a/pandora_agents/shellscript/mac_osx/plugins/grep_log +++ b/pandora_agents/shellscript/mac_osx/plugins/grep_log @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2008 Ramon Novoa -# Copyright (c) 2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2008 Pandora FMS. # # grep_log Perl script to search log files for a matching pattern. The last # searched position is saved in an index file so that consecutive diff --git a/pandora_agents/shellscript/mac_osx/tentacle_client b/pandora_agents/shellscript/mac_osx/tentacle_client index 913beda931..fd2b0457ab 100755 --- a/pandora_agents/shellscript/mac_osx/tentacle_client +++ b/pandora_agents/shellscript/mac_osx/tentacle_client @@ -2,7 +2,7 @@ ################################################################################ # # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2008 Pandora FMS. # # tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for # protocol description. @@ -1095,7 +1095,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 668ea6f515..f6d8736077 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -4435,7 +4435,7 @@ This is released under the GNU Lesser General Public License. =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_agents/unix/pandora_revent b/pandora_agents/unix/pandora_revent index 84cd2887a3..86400471f0 100755 --- a/pandora_agents/unix/pandora_revent +++ b/pandora_agents/unix/pandora_revent @@ -3,7 +3,7 @@ ######################################################################## # Pandora FMS - Remote Event Tool (via WEB API) ######################################################################## -# Copyright (c) 2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 2 diff --git a/pandora_agents/unix/plugins/file-nr.sh b/pandora_agents/unix/plugins/file-nr.sh index 94ddffcf7f..df4811c221 100755 --- a/pandora_agents/unix/plugins/file-nr.sh +++ b/pandora_agents/unix/plugins/file-nr.sh @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2016 Ramon Novoa -# Copyright (c) 2016 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2016 Pandora FMS. # # sockstat.sh Pandora FMS agent plug-in to retrieve file handle statistics. # diff --git a/pandora_agents/unix/plugins/grep_log b/pandora_agents/unix/plugins/grep_log index 1ecba6266a..702a28f4b1 100755 --- a/pandora_agents/unix/plugins/grep_log +++ b/pandora_agents/unix/plugins/grep_log @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2008 Ramon Novoa -# Copyright (c) 2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2008 Pandora FMS. # # grep_log Perl script to search log files for a matching pattern. The last # searched position is saved in an index file so that consecutive diff --git a/pandora_agents/unix/plugins/grep_log_module b/pandora_agents/unix/plugins/grep_log_module index d15a6f7c08..88ac7ea9d5 100755 --- a/pandora_agents/unix/plugins/grep_log_module +++ b/pandora_agents/unix/plugins/grep_log_module @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2012 Ramon Novoa -# Copyright (c) 2012 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2012 Pandora FMS. # # grep_log_module Perl script to search log files for a matching pattern. The # last searched position is saved in an index file so that diff --git a/pandora_agents/unix/plugins/grep_snmptrapd b/pandora_agents/unix/plugins/grep_snmptrapd index 8909f8f328..db73d0fe5a 100755 --- a/pandora_agents/unix/plugins/grep_snmptrapd +++ b/pandora_agents/unix/plugins/grep_snmptrapd @@ -1,7 +1,7 @@ #!/usr/bin/perl ############################################################################### # -# Copyright (c) 2018 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2018 Pandora FMS. # # grep_log Perl script to search log files for a matching pattern. The last # searched position is saved in an index file so that consecutive diff --git a/pandora_agents/unix/plugins/inventory b/pandora_agents/unix/plugins/inventory index b28fbe7316..464ecba0b8 100755 --- a/pandora_agents/unix/plugins/inventory +++ b/pandora_agents/unix/plugins/inventory @@ -1,7 +1,7 @@ #!/usr/bin/perl ############################################################################### # -# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2009 Pandora FMS. # # inventory Generate a hardware/software inventory. # diff --git a/pandora_agents/unix/plugins/nagios_plugin_wrapper b/pandora_agents/unix/plugins/nagios_plugin_wrapper index 9c53ef1e60..5c2198a1a0 100755 --- a/pandora_agents/unix/plugins/nagios_plugin_wrapper +++ b/pandora_agents/unix/plugins/nagios_plugin_wrapper @@ -8,7 +8,7 @@ # # Usage: nagios_plugin_wrapper ########################################################################## -# Copyright (c) 2010 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2010 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_agents/unix/plugins/pandora_df b/pandora_agents/unix/plugins/pandora_df index 261e365970..4a3edd72dd 100755 --- a/pandora_agents/unix/plugins/pandora_df +++ b/pandora_agents/unix/plugins/pandora_df @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2009 Ramon Novoa -# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2009 Pandora FMS. # # pandora_df Retrieve filesystem disk usage. By default information for all # filesystems is returned, but one or more filesystems may be diff --git a/pandora_agents/unix/plugins/pandora_df_free b/pandora_agents/unix/plugins/pandora_df_free index 1f97b92ce9..7604da214f 100755 --- a/pandora_agents/unix/plugins/pandora_df_free +++ b/pandora_agents/unix/plugins/pandora_df_free @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2009 Ramon Novoa -# Copyright (c) 2009 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2009 Pandora FMS. # # pandora_df Retrieve filesystem disk usage. By default information for all # filesystems is returned, but one or more filesystems may be diff --git a/pandora_agents/unix/plugins/pandora_df_used b/pandora_agents/unix/plugins/pandora_df_used index a5a7842a90..d442b2aac8 100755 --- a/pandora_agents/unix/plugins/pandora_df_used +++ b/pandora_agents/unix/plugins/pandora_df_used @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2016 Antonio Sánchez -# Copyright (c) 2016 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2016 Pandora FMS. # # By default, gather data from all data file system types. # You can add many filesystems you want to include in the checks by just passing diff --git a/pandora_agents/unix/plugins/pandora_update b/pandora_agents/unix/plugins/pandora_update index cbbd16bc73..c3a88579d8 100755 --- a/pandora_agents/unix/plugins/pandora_update +++ b/pandora_agents/unix/plugins/pandora_update @@ -1,6 +1,6 @@ #!/usr/bin/perl # Update binary tool -# Copyright (c) 2010 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2010 Pandora FMS. # Copyright (c) Sancho Lerena use strict; diff --git a/pandora_agents/unix/plugins/sockstat.sh b/pandora_agents/unix/plugins/sockstat.sh index 509796c6ed..7e4a5089b6 100755 --- a/pandora_agents/unix/plugins/sockstat.sh +++ b/pandora_agents/unix/plugins/sockstat.sh @@ -2,7 +2,7 @@ ############################################################################### # # Copyright (c) 2016 Ramon Novoa -# Copyright (c) 2016 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2016 Pandora FMS. # # sockstat.sh Pandora FMS agent plug-in to retrieve socket statistics. # diff --git a/pandora_agents/unix/tentacle_client b/pandora_agents/unix/tentacle_client index 913beda931..fd2b0457ab 100755 --- a/pandora_agents/unix/tentacle_client +++ b/pandora_agents/unix/tentacle_client @@ -2,7 +2,7 @@ ################################################################################ # # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2008 Pandora FMS. # # tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for # protocol description. @@ -1095,7 +1095,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_agents/unix/tentacle_server b/pandora_agents/unix/tentacle_server index 4458237003..974f60e4d4 100755 --- a/pandora_agents/unix/tentacle_server +++ b/pandora_agents/unix/tentacle_server @@ -5,7 +5,7 @@ # Tentacle have IANA assigned port tpc/41121 as official port. ########################################################################## # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2005-2022 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2022 Pandora FMS # # tentacle_server.pl Tentacle Server. See https://pandorafms.com/docs/ for # protocol description. @@ -1884,7 +1884,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_console/godmode/alerts/alert_list.list.php b/pandora_console/godmode/alerts/alert_list.list.php index d51180cb8e..dbb5899ac4 100644 --- a/pandora_console/godmode/alerts/alert_list.list.php +++ b/pandora_console/godmode/alerts/alert_list.list.php @@ -14,7 +14,7 @@ * |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______| * * ========================================================== - * Copyright (c) 2005-2022 Artica Soluciones Tecnológicas S.L + * Copyright (c) 2005-2022 Pandora FMS * This code is NOT free software. This code is NOT licenced under GPL2 licence * You cannot redistribute it without written permission of copyright holder. * ============================================================================ diff --git a/pandora_console/include/ajax/alert_list.ajax.php b/pandora_console/include/ajax/alert_list.ajax.php index b01917defe..d057b31850 100644 --- a/pandora_console/include/ajax/alert_list.ajax.php +++ b/pandora_console/include/ajax/alert_list.ajax.php @@ -14,7 +14,7 @@ * |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______| * * ========================================================== - * Copyright (c) 2005-2022 Artica Soluciones Tecnológicas S.L + * Copyright (c) 2005-2022 Pandora FMS * This code is NOT free software. This code is NOT licenced under GPL2 licence * You cannot redistribute it without written permission of copyright holder. * ============================================================================ diff --git a/pandora_console/include/ajax/consoles.ajax.php b/pandora_console/include/ajax/consoles.ajax.php index 1d76e3131e..d7b12337aa 100644 --- a/pandora_console/include/ajax/consoles.ajax.php +++ b/pandora_console/include/ajax/consoles.ajax.php @@ -14,7 +14,7 @@ * |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______| * * ========================================================== - * Copyright (c) 2005-2022 Artica Soluciones Tecnológicas S.L + * Copyright (c) 2005-2022 Pandora FMS * This code is NOT free software. This code is NOT licenced under GPL2 licence * You cannot redistribute it without written permission of copyright holder. * ============================================================================ diff --git a/pandora_console/include/ajax/hostDevices.ajax.php b/pandora_console/include/ajax/hostDevices.ajax.php index 69007a6ef4..7cc41f1a12 100644 --- a/pandora_console/include/ajax/hostDevices.ajax.php +++ b/pandora_console/include/ajax/hostDevices.ajax.php @@ -14,7 +14,7 @@ * |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______| * * ========================================================== - * Copyright (c) 2004-2019 Artica Soluciones Tecnológicas S.L + * Copyright (c) 2004-2019 Pandora FMS * This code is NOT free software. This code is NOT licenced under GPL2 licence * You cannnot redistribute it without written permission of copyright holder. * ============================================================================ diff --git a/pandora_console/include/styles/help.css b/pandora_console/include/styles/help.css index 0fe8888f5c..1df1abacb2 100644 --- a/pandora_console/include/styles/help.css +++ b/pandora_console/include/styles/help.css @@ -1,7 +1,7 @@ /* // Pandora FMS - the Flexible Monitoring System // ============================================= -// Copyright (c) 2004-2021 Artica Soluciones Tecnológicas S.L +// Copyright (c) 2004-2021 Pandora FMS // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License diff --git a/pandora_console/include/styles/ie.css b/pandora_console/include/styles/ie.css index 28a5656575..59ed6909b5 100644 --- a/pandora_console/include/styles/ie.css +++ b/pandora_console/include/styles/ie.css @@ -1,7 +1,7 @@ /* // Pandora FMS - the Flexible Monitoring System // ============================================= -// Copyright (c) 2004-2021 Artica Soluciones Tecnológicas S.L +// Copyright (c) 2004-2021 Pandora FMS // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License diff --git a/pandora_console/include/styles/install.css b/pandora_console/include/styles/install.css index 1d253bee3f..a368a2b2e7 100644 --- a/pandora_console/include/styles/install.css +++ b/pandora_console/include/styles/install.css @@ -1,7 +1,7 @@ /* // Pandora FMS - the Flexible Monitoring System // ============================================= -// Copyright (c) 2004-2021 Artica Soluciones Tecnológicas S.L +// Copyright (c) 2004-2021 Pandora FMS // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License diff --git a/pandora_console/include/styles/menu.css b/pandora_console/include/styles/menu.css index 8de579dcee..0158d281bd 100644 --- a/pandora_console/include/styles/menu.css +++ b/pandora_console/include/styles/menu.css @@ -1,7 +1,7 @@ /* // Pandora FMS - http://pandorafms.com // ================================================== -// Copyright (c) 2004-2021 Artica Soluciones Tecnológicas S.L +// Copyright (c) 2004-2021 Pandora FMS // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License diff --git a/pandora_console/include/styles/pandora_black.css b/pandora_console/include/styles/pandora_black.css index 68f179a210..92edd0297b 100644 --- a/pandora_console/include/styles/pandora_black.css +++ b/pandora_console/include/styles/pandora_black.css @@ -6,7 +6,7 @@ Description: The default Pandora FMS theme layout // Pandora FMS - http://pandorafms.com // ========================================================== -// Copyright (c) 2004-2021 Artica Soluciones Tecnológicas S.L +// Copyright (c) 2004-2021 Pandora FMS // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License diff --git a/pandora_console/include/styles/pandora_forms.css b/pandora_console/include/styles/pandora_forms.css index 975cf0b4ec..2dc36f14ae 100644 --- a/pandora_console/include/styles/pandora_forms.css +++ b/pandora_console/include/styles/pandora_forms.css @@ -5,7 +5,7 @@ Exclude css from visual styles Description: Forms based on fieldset and labels to improve accesibility // Pandora FMS - the Flexible Monitoring System -// Copyright (c) 2004-2021 Artica Soluciones Tecnológicas S.L +// Copyright (c) 2004-2021 Pandora FMS // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License diff --git a/pandora_console/include/styles/pandora_minimal.css b/pandora_console/include/styles/pandora_minimal.css index 7d6bba2f0e..b22dd598ff 100644 --- a/pandora_console/include/styles/pandora_minimal.css +++ b/pandora_console/include/styles/pandora_minimal.css @@ -6,7 +6,7 @@ Exclude css from visual styles // Pandora FMS - the Flexible Monitoring System // ============================================= -// Copyright (c) 2004-2021 Artica Soluciones Tecnológicas S.L +// Copyright (c) 2004-2021 Pandora FMS // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License diff --git a/pandora_plugins/Advanced Log Parser/pandora_logparser.pl b/pandora_plugins/Advanced Log Parser/pandora_logparser.pl index 3f4dc7ac2f..81ce41ed6b 100644 --- a/pandora_plugins/Advanced Log Parser/pandora_logparser.pl +++ b/pandora_plugins/Advanced Log Parser/pandora_logparser.pl @@ -2,7 +2,7 @@ ############################################################################### # Pandora FMS Agent Plugin for ADVANCED log parsing # Copyright (c) 2011-2015 Sancho Lerena -# Copyright (c) 2011-2015 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2011-2015 Pandora FMS. # _______ __ __ _______ _______ # | _ |.----.| |_|__|.----.---.-. | __|_ _| # | || _|| _| || __| _ | |__ | | | diff --git a/pandora_plugins/Log_event/getEvent.ps1 b/pandora_plugins/Log_event/getEvent.ps1 index 19d4237421..a349bcf5a3 100644 --- a/pandora_plugins/Log_event/getEvent.ps1 +++ b/pandora_plugins/Log_event/getEvent.ps1 @@ -1,7 +1,7 @@ ################################################################################ # get Event ################################################################################ -# Copyright (c) 2020 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2020 Pandora FMS # Jose Antonio Almendros ################################################################################ # diff --git a/pandora_plugins/Netstat/netstat.pl b/pandora_plugins/Netstat/netstat.pl index 3a95afe4f2..13f6ae928c 100755 --- a/pandora_plugins/Netstat/netstat.pl +++ b/pandora_plugins/Netstat/netstat.pl @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# Copyright (c) 2018-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2018-2021 Pandora FMS. use strict; use warnings; use Scalar::Util qw(looks_like_number); diff --git a/pandora_plugins/Pandora Mail transfer daemon/mail_transfer.pl b/pandora_plugins/Pandora Mail transfer daemon/mail_transfer.pl index 403303571d..231223fe7d 100644 --- a/pandora_plugins/Pandora Mail transfer daemon/mail_transfer.pl +++ b/pandora_plugins/Pandora Mail transfer daemon/mail_transfer.pl @@ -3,7 +3,7 @@ # Pandora FMS Mail Transfer # This is a tool for transfering Pandora FMS data files by mail (SMTP/POP) ########################################################################## -# Copyright (c) 2011-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2011-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/NetBSD/tentacle_server b/pandora_server/NetBSD/tentacle_server index 4458237003..974f60e4d4 100755 --- a/pandora_server/NetBSD/tentacle_server +++ b/pandora_server/NetBSD/tentacle_server @@ -5,7 +5,7 @@ # Tentacle have IANA assigned port tpc/41121 as official port. ########################################################################## # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2005-2022 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2022 Pandora FMS # # tentacle_server.pl Tentacle Server. See https://pandorafms.com/docs/ for # protocol description. @@ -1884,7 +1884,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_server/bin/pandora_server b/pandora_server/bin/pandora_server index 8530b998c4..a31b16f234 100755 --- a/pandora_server/bin/pandora_server +++ b/pandora_server/bin/pandora_server @@ -3,7 +3,7 @@ # Pandora FMS Server # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2011 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2011 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/bin/tentacle_server b/pandora_server/bin/tentacle_server index 4458237003..974f60e4d4 100755 --- a/pandora_server/bin/tentacle_server +++ b/pandora_server/bin/tentacle_server @@ -5,7 +5,7 @@ # Tentacle have IANA assigned port tpc/41121 as official port. ########################################################################## # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2005-2022 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2022 Pandora FMS # # tentacle_server.pl Tentacle Server. See https://pandorafms.com/docs/ for # protocol description. @@ -1884,7 +1884,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/pandora_server/lib/PandoraFMS/AlertServer.pm b/pandora_server/lib/PandoraFMS/AlertServer.pm index 177597ba5d..8e592ee48a 100644 --- a/pandora_server/lib/PandoraFMS/AlertServer.pm +++ b/pandora_server/lib/PandoraFMS/AlertServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::AlertServer; # Pandora FMS Alert Server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ################################################################################ -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index 4de1e652b5..76a6f2a00f 100644 --- a/pandora_server/lib/PandoraFMS/Config.pm +++ b/pandora_server/lib/PandoraFMS/Config.pm @@ -3,7 +3,7 @@ package PandoraFMS::Config; # Configuration Package # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 4fa53ee296..bb4683e8c7 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -3,7 +3,7 @@ package PandoraFMS::Core; # Core Pandora FMS functions. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2022 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2022 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License @@ -7843,7 +7843,7 @@ L, L, L, L, L, L, L =head1 COPYRIGHT -Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2021 Pandora FMS =cut diff --git a/pandora_server/lib/PandoraFMS/Goliat/GoliatCURL.pm b/pandora_server/lib/PandoraFMS/Goliat/GoliatCURL.pm index 9fdd4cfee0..d17d534f9e 100755 --- a/pandora_server/lib/PandoraFMS/Goliat/GoliatCURL.pm +++ b/pandora_server/lib/PandoraFMS/Goliat/GoliatCURL.pm @@ -1,7 +1,7 @@ ################################################################################## # Goliath Tools CURL Module ################################################################################## -# Copyright (c) 2013-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2013-2021 Pandora FMS # This code is not free or OpenSource. Please don't redistribute. ################################################################################## diff --git a/pandora_server/lib/PandoraFMS/Goliat/GoliatConfig.pm b/pandora_server/lib/PandoraFMS/Goliat/GoliatConfig.pm index da3247c1e8..7ef1b14f68 100755 --- a/pandora_server/lib/PandoraFMS/Goliat/GoliatConfig.pm +++ b/pandora_server/lib/PandoraFMS/Goliat/GoliatConfig.pm @@ -1,7 +1,7 @@ ########################################################################## # Goliat Config package ########################################################################## -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2007-2021 Pandora FMS # This code is not free or OpenSource. Please don't redistribute. ########################################################################## diff --git a/pandora_server/lib/PandoraFMS/Goliat/GoliatLWP.pm b/pandora_server/lib/PandoraFMS/Goliat/GoliatLWP.pm index 8ba92bc5d1..22d6a63e93 100755 --- a/pandora_server/lib/PandoraFMS/Goliat/GoliatLWP.pm +++ b/pandora_server/lib/PandoraFMS/Goliat/GoliatLWP.pm @@ -1,7 +1,7 @@ ################################################################################## # Goliath Tools LWP Module ################################################################################## -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2007-2021 Pandora FMS # This code is not free or OpenSource. Please don't redistribute. ################################################################################## diff --git a/pandora_server/lib/PandoraFMS/Goliat/GoliatTools.pm b/pandora_server/lib/PandoraFMS/Goliat/GoliatTools.pm index c2d45c946d..da9eef3a72 100755 --- a/pandora_server/lib/PandoraFMS/Goliat/GoliatTools.pm +++ b/pandora_server/lib/PandoraFMS/Goliat/GoliatTools.pm @@ -1,7 +1,7 @@ ############################################################################### # Goliath Tools Module ############################################################################### -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2007-2021 Pandora FMS # This code is not free or OpenSource. Please don't redistribute. ############################################################################### diff --git a/pandora_server/lib/PandoraFMS/InventoryServer.pm b/pandora_server/lib/PandoraFMS/InventoryServer.pm index fcaf882436..6c0148c444 100644 --- a/pandora_server/lib/PandoraFMS/InventoryServer.pm +++ b/pandora_server/lib/PandoraFMS/InventoryServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::InventoryServer; ########################################################################## # Pandora FMS Inventory Server. ########################################################################## -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2007-2021 Pandora FMS # This code is not free or OpenSource. Please don't redistribute. ########################################################################## diff --git a/pandora_server/lib/PandoraFMS/NetworkServer.pm b/pandora_server/lib/PandoraFMS/NetworkServer.pm index 2d245e7a04..8c02d4ae0f 100644 --- a/pandora_server/lib/PandoraFMS/NetworkServer.pm +++ b/pandora_server/lib/PandoraFMS/NetworkServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::NetworkServer; # Pandora FMS Network Server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/PluginServer.pm b/pandora_server/lib/PandoraFMS/PluginServer.pm index 9d52bd5ce0..edf9faa055 100644 --- a/pandora_server/lib/PandoraFMS/PluginServer.pm +++ b/pandora_server/lib/PandoraFMS/PluginServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::PluginServer; # Pandora FMS Plugin Server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/PredictionServer.pm b/pandora_server/lib/PandoraFMS/PredictionServer.pm index 6859c001a4..28f8be567a 100644 --- a/pandora_server/lib/PandoraFMS/PredictionServer.pm +++ b/pandora_server/lib/PandoraFMS/PredictionServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::PredictionServer; # Pandora FMS Prediction Server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ######################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/ProducerConsumerServer.pm b/pandora_server/lib/PandoraFMS/ProducerConsumerServer.pm index 770bc06522..14c0f04bf1 100644 --- a/pandora_server/lib/PandoraFMS/ProducerConsumerServer.pm +++ b/pandora_server/lib/PandoraFMS/ProducerConsumerServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::ProducerConsumerServer; # Pandora FMS generic server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/SNMPServer.pm b/pandora_server/lib/PandoraFMS/SNMPServer.pm index 5d772ea5f5..4380099fe0 100644 --- a/pandora_server/lib/PandoraFMS/SNMPServer.pm +++ b/pandora_server/lib/PandoraFMS/SNMPServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::SNMPServer; # Pandora FMS SNMP Console. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/Server.pm b/pandora_server/lib/PandoraFMS/Server.pm index 9009c2bbf3..71d37a9cde 100644 --- a/pandora_server/lib/PandoraFMS/Server.pm +++ b/pandora_server/lib/PandoraFMS/Server.pm @@ -3,7 +3,7 @@ package PandoraFMS::Server; # Pandora FMS generic server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/Tools.pm b/pandora_server/lib/PandoraFMS/Tools.pm index fb4b551a3a..6b7a8fa388 100755 --- a/pandora_server/lib/PandoraFMS/Tools.pm +++ b/pandora_server/lib/PandoraFMS/Tools.pm @@ -3,7 +3,7 @@ package PandoraFMS::Tools; # Tools Package # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ################################################################################ -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/WMIServer.pm b/pandora_server/lib/PandoraFMS/WMIServer.pm index d47470829c..2cd1889a1d 100644 --- a/pandora_server/lib/PandoraFMS/WMIServer.pm +++ b/pandora_server/lib/PandoraFMS/WMIServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::WMIServer; # Pandora FMS WMI Server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/lib/PandoraFMS/WebServer.pm b/pandora_server/lib/PandoraFMS/WebServer.pm index e87e860c29..3aeb2d1307 100644 --- a/pandora_server/lib/PandoraFMS/WebServer.pm +++ b/pandora_server/lib/PandoraFMS/WebServer.pm @@ -3,7 +3,7 @@ package PandoraFMS::WebServer; # Pandora FMS Web Server. # Pandora FMS. the Flexible Monitoring System. http://www.pandorafms.org ########################################################################## -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2007-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff --git a/pandora_server/util/agent_gis_update.pl b/pandora_server/util/agent_gis_update.pl index 492e899cd2..aeeca67c4a 100755 --- a/pandora_server/util/agent_gis_update.pl +++ b/pandora_server/util/agent_gis_update.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS DB Management ############################################################################### -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/util/alert_multicast.pl b/pandora_server/util/alert_multicast.pl index a1973a42e0..7cf97093e5 100644 --- a/pandora_server/util/alert_multicast.pl +++ b/pandora_server/util/alert_multicast.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl # Multicast client -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2021 Pandora FMS. use strict; use warnings; diff --git a/pandora_server/util/compare_schemas.pl b/pandora_server/util/compare_schemas.pl index 47ea322ccb..6ab53a8415 100644 --- a/pandora_server/util/compare_schemas.pl +++ b/pandora_server/util/compare_schemas.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS Schema comparison ############################################################################### -# Copyright (c) 2015-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2015-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/util/integria_rticket.pl b/pandora_server/util/integria_rticket.pl index f65deba206..786963ef9b 100644 --- a/pandora_server/util/integria_rticket.pl +++ b/pandora_server/util/integria_rticket.pl @@ -3,7 +3,7 @@ ######################################################################## # Integria IMS - Remote Ticket Tool (via WEB API) ######################################################################## -# Copyright (c) 2013-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2013-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 2 diff --git a/pandora_server/util/n2p.pl b/pandora_server/util/n2p.pl index acb3965a1d..7e5ac77e5f 100755 --- a/pandora_server/util/n2p.pl +++ b/pandora_server/util/n2p.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl -s ################################################################################ # -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2021 Pandora FMS. # # n2p.pl Reads Nagios 2.x configuration files and replicates the setup # using an installed Pandora FMS 1.3. diff --git a/pandora_server/util/pandora_DBI_test.pl b/pandora_server/util/pandora_DBI_test.pl index 94dcf2c835..683c18366a 100755 --- a/pandora_server/util/pandora_DBI_test.pl +++ b/pandora_server/util/pandora_DBI_test.pl @@ -2,7 +2,7 @@ ################################################################################## # DBI Memory Leak Tester ################################################################################## -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2021 Pandora FMS. ################################################################################## use DBI(); # DB interface with MySQL diff --git a/pandora_server/util/pandora_database_check.pl b/pandora_server/util/pandora_database_check.pl index caaab90629..992486311c 100755 --- a/pandora_server/util/pandora_database_check.pl +++ b/pandora_server/util/pandora_database_check.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS DB Speed test ############################################################################### -# Copyright (c) 2013-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2013-2021 Pandora FMS # Copyright (c) 2021 Sancho Lerena # This is a small tool to check specific performance of Pandora database # return the total time needed in microseconds to perform a specific Pandora diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 532c628ed4..112b5989fb 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS DB Management ############################################################################### -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/util/pandora_dbstress.pl b/pandora_server/util/pandora_dbstress.pl index 6289f68745..3509649431 100755 --- a/pandora_server/util/pandora_dbstress.pl +++ b/pandora_server/util/pandora_dbstress.pl @@ -2,7 +2,7 @@ ################################################################################ # Pandora DB Stress tool ################################################################################ -# Copyright (c) 2005-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/util/pandora_ha.pl b/pandora_server/util/pandora_ha.pl index 7a50eaad59..aa1096fccd 100755 --- a/pandora_server/util/pandora_ha.pl +++ b/pandora_server/util/pandora_ha.pl @@ -2,7 +2,7 @@ ############################################################################### # Pandora FMS Daemon Watchdog ############################################################################### -# Copyright (c) 2018-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2018-2021 Pandora FMS ############################################################################### use strict; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 5464dce5ae..f3c87562e8 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS General Management Tool ############################################################################### -# Copyright (c) 2015-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2015-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 2 diff --git a/pandora_server/util/pandora_migrate_plugins.pl b/pandora_server/util/pandora_migrate_plugins.pl index cfe2d6f90f..e114b64674 100644 --- a/pandora_server/util/pandora_migrate_plugins.pl +++ b/pandora_server/util/pandora_migrate_plugins.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS Plugins migrate tool ############################################################################### -# Copyright (c) 2010-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2010-2021 Pandora FMS # # This program is Free Software, licensed under the terms of GPL License v2 ############################################################################### diff --git a/pandora_server/util/pandora_migrate_recon_scripts.pl b/pandora_server/util/pandora_migrate_recon_scripts.pl index cc69a40a52..e49112f9a6 100644 --- a/pandora_server/util/pandora_migrate_recon_scripts.pl +++ b/pandora_server/util/pandora_migrate_recon_scripts.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS Plugins migrate tool ############################################################################### -# Copyright (c) 2010-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2010-2021 Pandora FMS # # This program is Free Software, licensed under the terms of GPL License v2 ############################################################################### diff --git a/pandora_server/util/pandora_perf_report.pl b/pandora_server/util/pandora_perf_report.pl index 87d2e7936f..3190c65937 100644 --- a/pandora_server/util/pandora_perf_report.pl +++ b/pandora_server/util/pandora_perf_report.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl ################################################################################ # Pandora FMS Performance Report Tool -# Copyright (c) 2017-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2017-2021 Pandora FMS. ################################################################################ use strict; use warnings; diff --git a/pandora_server/util/pandora_recode_db.pl b/pandora_server/util/pandora_recode_db.pl index 09923fba45..d0dad4e6ff 100755 --- a/pandora_server/util/pandora_recode_db.pl +++ b/pandora_server/util/pandora_recode_db.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS Database Synchronization Tool ############################################################################### -# Copyright (c) 2010-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2010-2021 Pandora FMS # # This code is not free or OpenSource. Please don't redistribute. ############################################################################### diff --git a/pandora_server/util/pandora_revent.pl b/pandora_server/util/pandora_revent.pl index 84cd2887a3..86400471f0 100755 --- a/pandora_server/util/pandora_revent.pl +++ b/pandora_server/util/pandora_revent.pl @@ -3,7 +3,7 @@ ######################################################################## # Pandora FMS - Remote Event Tool (via WEB API) ######################################################################## -# Copyright (c) 2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 2 diff --git a/pandora_server/util/pandora_sync_db.pl b/pandora_server/util/pandora_sync_db.pl index 19d07c6d4c..ce3db3cb73 100755 --- a/pandora_server/util/pandora_sync_db.pl +++ b/pandora_server/util/pandora_sync_db.pl @@ -3,7 +3,7 @@ ############################################################################### # Pandora FMS Database Synchronization Tool ############################################################################### -# Copyright (c) 2010-2021 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2010-2021 Pandora FMS # # This code is not free or OpenSource. Please don't redistribute. ############################################################################### @@ -119,7 +119,7 @@ sub pandora_load_credentials ($) { $conf->{"quiet"}=0; # Daemon 0 by default - print "\nCopyright (c) 2010-2021 Artica Soluciones Tecnologicas S.L\n"; + print "\nCopyright (c) 2010-2021 Pandora FMS\n"; print "This code is not free or OpenSource. Please don't redistribute.\n\n"; # Load enterprise module diff --git a/pandora_server/util/pandora_xml_count.pl b/pandora_server/util/pandora_xml_count.pl index b506b517f1..f483788006 100755 --- a/pandora_server/util/pandora_xml_count.pl +++ b/pandora_server/util/pandora_xml_count.pl @@ -2,7 +2,7 @@ ################################################################################ # Pandora XML count tool. ################################################################################ -# Copyright (c) 2017-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2017-2021 Pandora FMS. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/util/pandora_xml_stress.pl b/pandora_server/util/pandora_xml_stress.pl index 4215de58e8..958b41d27d 100644 --- a/pandora_server/util/pandora_xml_stress.pl +++ b/pandora_server/util/pandora_xml_stress.pl @@ -3,7 +3,7 @@ # Pandora XML Stress tool. ################################################################################ # Copyright (c) 2009 Ramon Novoa, rnovoa@artica.es -# Copyright (c) 2012-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2012-2021 Pandora FMS. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/util/plugin/snmp_process.pl b/pandora_server/util/plugin/snmp_process.pl index 0e716fb6cd..326b5e116d 100755 --- a/pandora_server/util/plugin/snmp_process.pl +++ b/pandora_server/util/plugin/snmp_process.pl @@ -2,7 +2,7 @@ ################################################################################## # SNMP Plugin for Pandora FMS # (c) Sergio Martin 2010, sergio.martin@artica.es -# (c) 2010-2021 Artica Soluciones Tecnologicas S.L +# (c) 2010-2021 Pandora FMS # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License diff --git a/pandora_server/util/udp_client.pl b/pandora_server/util/udp_client.pl index 2c32fd07ff..c37365a909 100755 --- a/pandora_server/util/udp_client.pl +++ b/pandora_server/util/udp_client.pl @@ -1,5 +1,5 @@ #!/usr/bin/perl -# Copyright (c) 2007-2021 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2021 Pandora FMS. use strict; use IO::Socket; diff --git a/tentacle/tentacle_client b/tentacle/tentacle_client index 482a683ccb..e1bcf6d951 100755 --- a/tentacle/tentacle_client +++ b/tentacle/tentacle_client @@ -2,7 +2,7 @@ ################################################################################ # # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2007-2008 Artica Soluciones Tecnologicas S.L. +# Copyright (c) 2007-2008 Pandora FMS. # # tentacle_client.pl Tentacle Client. See https://pandorafms.com/docs/ for # protocol description. @@ -1095,7 +1095,7 @@ Protocol description and more info at: L<< https://pandorafms.com/manual/en/docu =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut diff --git a/tentacle/tentacle_server b/tentacle/tentacle_server index 1ba58c3d62..3f0206140c 100755 --- a/tentacle/tentacle_server +++ b/tentacle/tentacle_server @@ -5,7 +5,7 @@ # Tentacle have IANA assigned port tpc/41121 as official port. ########################################################################## # Copyright (c) 2007-2008 Ramon Novoa -# Copyright (c) 2005-2022 Artica Soluciones Tecnologicas S.L +# Copyright (c) 2005-2022 Pandora FMS # # tentacle_server.pl Tentacle Server. See https://pandorafms.com/docs/ for # protocol description. @@ -1887,7 +1887,7 @@ Protocol description and more info at: L<< https://pandorafms.com/docs/index.php =head1 COPYRIGHT -Copyright (c) 2005-2010 Artica Soluciones Tecnologicas S.L +Copyright (c) 2005-2010 Pandora FMS =cut From 782b82ed8521917121173aa10ec584a4b82dbef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Fri, 23 Jun 2023 15:10:59 -0600 Subject: [PATCH 132/268] =?UTF-8?q?Replace=20"Artica=20Soluciones=20Tecnol?= =?UTF-8?q?[o,=C3=B3]gicas=20SL"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pandora_agents/shellscript/aix/pandora_agent | 2 +- pandora_agents/shellscript/bsd-ipso/pandora_agent.sh | 2 +- pandora_agents/shellscript/hp-ux/pandora_agent | 2 +- pandora_agents/shellscript/meta_agent/pandora_agent_sim.sh | 2 +- pandora_agents/shellscript/openWRT/pandora_agent | 2 +- pandora_agents/shellscript/solaris/pandora_agent | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pandora_agents/shellscript/aix/pandora_agent b/pandora_agents/shellscript/aix/pandora_agent index cad0fb38af..a93296ee4b 100755 --- a/pandora_agents/shellscript/aix/pandora_agent +++ b/pandora_agents/shellscript/aix/pandora_agent @@ -1,7 +1,7 @@ #!/usr/bin/ksh # ********************************************************************** # Pandora FMS AIX Agent -# (c) 2009 Artica Soluciones Tecnológicas SL +# (c) 2009 Pandora FMS # with the help of many people. Please see http://pandorafms.org # This code is licensed under GPL 2.0 license. # ********************************************************************** diff --git a/pandora_agents/shellscript/bsd-ipso/pandora_agent.sh b/pandora_agents/shellscript/bsd-ipso/pandora_agent.sh index 1ad51b569f..56592dee16 100755 --- a/pandora_agents/shellscript/bsd-ipso/pandora_agent.sh +++ b/pandora_agents/shellscript/bsd-ipso/pandora_agent.sh @@ -1,7 +1,7 @@ #!/bin/sh # ********************************************************************** # Pandora FMS Generic IPSO/HPUX -# (c) 2009-2021 Artica Soluciones Tecnológicas SL +# (c) 2009-2021 Pandora FMS # with the help of many people. Please see http://pandorafms.org # This code is licensed under GPL 2.0 license. # ********************************************************************** diff --git a/pandora_agents/shellscript/hp-ux/pandora_agent b/pandora_agents/shellscript/hp-ux/pandora_agent index c0deb851ca..0b18352e28 100644 --- a/pandora_agents/shellscript/hp-ux/pandora_agent +++ b/pandora_agents/shellscript/hp-ux/pandora_agent @@ -1,7 +1,7 @@ #!/bin/sh # ********************************************************************** # Pandora FMS Generic HPUX Agent -# (c) 2009 Artica Soluciones Tecnológicas SL +# (c) 2009 Pandora FMS # with the help of many people. Please see http://pandorafms.org # This code is licensed under GPL 2.0 license. # ********************************************************************** diff --git a/pandora_agents/shellscript/meta_agent/pandora_agent_sim.sh b/pandora_agents/shellscript/meta_agent/pandora_agent_sim.sh index fdd2d08ee2..b77003eb35 100755 --- a/pandora_agents/shellscript/meta_agent/pandora_agent_sim.sh +++ b/pandora_agents/shellscript/meta_agent/pandora_agent_sim.sh @@ -2,7 +2,7 @@ # ********************************************************************** # Pandora FMS Agent Simulator (MetaAgent) -# (c) 2009-2021 Artica Soluciones Tecnológicas SL +# (c) 2009-2021 Pandora FMS # with the help of many people. Please see http://pandorafms.org # This code is licensed under GPL 2.0 license. # ********************************************************************** diff --git a/pandora_agents/shellscript/openWRT/pandora_agent b/pandora_agents/shellscript/openWRT/pandora_agent index 196e03f6fd..f1b09d11a8 100755 --- a/pandora_agents/shellscript/openWRT/pandora_agent +++ b/pandora_agents/shellscript/openWRT/pandora_agent @@ -1,7 +1,7 @@ #!/bin/sh # ********************************************************************** # Pandora FMS OpenWRT Agent -# (c) 2009 Artica Soluciones Tecnológicas SL +# (c) 2009 Pandora FMS # with the help of many people. Please see http://pandorafms.org # This code is licensed under GPL 2.0 license. # ********************************************************************** diff --git a/pandora_agents/shellscript/solaris/pandora_agent b/pandora_agents/shellscript/solaris/pandora_agent index ba89d828fe..26efed6740 100755 --- a/pandora_agents/shellscript/solaris/pandora_agent +++ b/pandora_agents/shellscript/solaris/pandora_agent @@ -1,7 +1,7 @@ #!/usr/bin/ksh # ********************************************************************** # Pandora FMS Solaris Agent -# (c) 2009 Artica Soluciones Tecnológicas SL +# (c) 2009 Pandora FMS # with the help of many people. Please see http://pandorafms.org # This code is licensed under GPL 2.0 license. # ********************************************************************** From cfc34033b6fb613419b5145ace3986b535cb5a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Su=C3=A1rez?= Date: Fri, 23 Jun 2023 15:14:57 -0600 Subject: [PATCH 133/268] =?UTF-8?q?Replace=20"Artica=20Soluciones=20Tecnol?= =?UTF-8?q?[o,=C3=B3]gicas"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pandorafmsandroidconsole/ConnectionCustomToast.java | 2 +- .../src/pandorafms/pandorafmsandroidconsole/Help.java | 2 +- .../src/pandorafms/pandorafmsandroidconsole/Options.java | 2 +- .../pandorafms/pandorafmsandroidconsole/PandoraWebView.java | 2 +- extras/android-event-viewer/app/src/main/AndroidManifest.xml | 2 +- .../src/main/java/pandroid_event_viewer/pandorafms/About.java | 2 +- .../src/main/java/pandroid_event_viewer/pandorafms/Core.java | 2 +- .../main/java/pandroid_event_viewer/pandorafms/EventList.java | 2 +- .../java/pandroid_event_viewer/pandorafms/EventListItem.java | 2 +- .../src/main/java/pandroid_event_viewer/pandorafms/Info.java | 2 +- .../src/main/java/pandroid_event_viewer/pandorafms/Main.java | 2 +- .../main/java/pandroid_event_viewer/pandorafms/Options.java | 2 +- .../pandorafms/PandroidEventviewerActivity.java | 2 +- .../pandorafms/PandroidEventviewerService.java | 2 +- .../pandorafms/PopupValidationEvent.java | 2 +- extras/android-event-viewer/app/src/main/res/layout/about.xml | 2 +- extras/android-event-viewer/app/src/main/res/layout/info.xml | 2 +- .../app/src/main/res/layout/item_list_event_extended.xml | 2 +- .../app/src/main/res/layout/item_list_event_layout.xml | 2 +- .../app/src/main/res/layout/list_view_layout.xml | 2 +- extras/android-event-viewer/app/src/main/res/layout/main.xml | 2 +- .../android-event-viewer/app/src/main/res/layout/options.xml | 2 +- .../app/src/main/res/layout/popup_validation_event.xml | 2 +- .../app/src/main/res/menu/options_menu.xml | 2 +- .../app/src/main/res/menu/options_menu_list_events.xml | 2 +- .../app/src/main/res/values-es/arrays.xml | 2 +- .../app/src/main/res/values-es/strings.xml | 2 +- .../app/src/main/res/values-ja/arrays.xml | 2 +- .../app/src/main/res/values-ja/strings.xml | 2 +- .../android-event-viewer/app/src/main/res/values/arrays.xml | 2 +- .../android-event-viewer/app/src/main/res/values/colors.xml | 2 +- .../android-event-viewer/app/src/main/res/values/strings.xml | 2 +- extras/scripts/mail_transfer/readme.txt | 2 +- extras/scripts/webserver/pandora_webserver.pl | 2 +- pandora_agents/pc/AIX/pandora_agent.conf | 2 +- pandora_agents/pc/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/pc/FreeBSD/pandora_agent.conf | 2 +- pandora_agents/pc/HP-UX/pandora_agent.conf | 2 +- pandora_agents/pc/Linux/pandora_agent.conf | 2 +- pandora_agents/pc/NT4/pandora_agent.conf | 2 +- pandora_agents/pc/SunOS/make_solaris_package/copyright | 2 +- pandora_agents/pc/SunOS/pandora_agent.conf | 2 +- pandora_agents/pc/Win32/pandora_agent.conf | 4 ++-- pandora_agents/pc/pandora_agent | 2 +- pandora_agents/shellscript/linux/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/shellscript/linux/pandora_agent | 2 +- pandora_agents/shellscript/linux/pandora_agent.conf | 2 +- pandora_agents/shellscript/mac_osx/pandora_agent | 2 +- pandora_agents/shellscript/mac_osx/pandora_agent.conf | 2 +- pandora_agents/unix/AIX/pandora_agent.conf | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/Darwin/pandora_agent.conf | 2 +- pandora_agents/unix/FreeBSD/pandora_agent.conf | 2 +- pandora_agents/unix/HP-UX/pandora_agent.conf | 2 +- pandora_agents/unix/NT4/pandora_agent.conf | 2 +- pandora_agents/unix/NetBSD/pandora_agent.conf | 2 +- pandora_agents/unix/SunOS/make_solaris_package/copyright | 2 +- pandora_agents/unix/SunOS/pandora_agent.conf | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- .../godmode/reporting/visual_console_builder.editor.js | 2 +- pandora_console/include/graphs/pandora.d3.js | 2 +- pandora_console/include/javascript/SimpleMapController.js | 2 +- pandora_console/include/javascript/openlayers.pandora.js | 2 +- pandora_console/include/javascript/tree/TreeController.js | 2 +- pandora_console/include/javascript/tree/TreeControllerMeta.js | 2 +- pandora_console/include/styles/ipam.css | 2 +- pandora_console/include/styles/pandoraPDF.css | 2 +- pandora_console/include/styles/task_list.css | 2 +- pandora_console/mobile/include/style/main.css | 2 +- pandora_console/pandoradb.sql | 2 +- pandora_plugins/Advanced Log Parser/pandora_logparser.pl | 2 +- pandora_plugins/FTP/ftp_plugin/plugin_ftp.pl | 2 +- pandora_plugins/IMAP/pandora_imap.pl | 2 +- pandora_plugins/MongoDB/Pandora_Plugin_MongoDB.pl | 2 +- .../Pandora Mail Transfer ENG.txt | 2 +- .../Pandora_Plugin_VitalFileMonitoring.pl | 2 +- pandora_plugins/intel_dcm/IntelDcmPlugin.java | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/FreeBSD/pandora_server.conf.new | 2 +- pandora_server/NetBSD/pandora_server.conf.new | 2 +- pandora_server/conf/pandora_server.conf.new | 2 +- pandora_server/conf/pandora_server.conf.windows | 2 +- pandora_server/conf/pandora_server_sec.conf.template | 2 +- pandora_server/util/change_remoteconfig.pl | 2 +- pandora_server/util/pandora_backup.sh | 4 ++-- pandora_server/util/plugin/iface_bandwith.pl | 2 +- pandora_server/util/plugin/packet_loss.sh | 2 +- 88 files changed, 90 insertions(+), 90 deletions(-) diff --git a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/ConnectionCustomToast.java b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/ConnectionCustomToast.java index 8540370a2b..efb944dd55 100644 --- a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/ConnectionCustomToast.java +++ b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/ConnectionCustomToast.java @@ -2,7 +2,7 @@ Pandora FMS - http://pandorafms.com ================================================== -Copyright (c) 2005-2021 Artica Soluciones Tecnologicas +Copyright (c) 2005-2021 Pandora FMS Please see http://pandorafms.org for full contribution list This program is free software; you can redistribute it and/or diff --git a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Help.java b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Help.java index 32d73a7fa8..8f2b127aef 100644 --- a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Help.java +++ b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Help.java @@ -2,7 +2,7 @@ Pandora FMS - http://pandorafms.com ================================================== -Copyright (c) 2005-2021 Artica Soluciones Tecnologicas +Copyright (c) 2005-2021 Pandora FMS Please see http://pandorafms.org for full contribution list This program is free software; you can redistribute it and/or diff --git a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Options.java b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Options.java index 2cd8542fa0..f90068f7b5 100644 --- a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Options.java +++ b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/Options.java @@ -2,7 +2,7 @@ Pandora FMS - http://pandorafms.com ================================================== -Copyright (c) 2005-2021 Artica Soluciones Tecnologicas +Copyright (c) 2005-2021 Pandora FMS Please see http://pandorafms.org for full contribution list This program is free software; you can redistribute it and/or diff --git a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/PandoraWebView.java b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/PandoraWebView.java index 4c566ff0f4..dfd3064534 100644 --- a/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/PandoraWebView.java +++ b/extras/PandoraFMS_android_console/src/pandorafms/pandorafmsandroidconsole/PandoraWebView.java @@ -2,7 +2,7 @@ Pandora FMS - http://pandorafms.com ================================================== -Copyright (c) 2005-2021 Artica Soluciones Tecnologicas +Copyright (c) 2005-2021 Pandora FMS Please see http://pandorafms.org for full contribution list This program is free software; you can redistribute it and/or diff --git a/extras/android-event-viewer/app/src/main/AndroidManifest.xml b/extras/android-event-viewer/app/src/main/AndroidManifest.xml index 56e27364eb..730b007850 100644 --- a/extras/android-event-viewer/app/src/main/AndroidManifest.xml +++ b/extras/android-event-viewer/app/src/main/AndroidManifest.xml @@ -2,7 +2,7 @@ Go to Pandora FMS Console

Monitoring details

Data: _data_ (warning)

Agent: _agent_ _address_

Module: _module_ _moduledescription_

Timestamp: _timestamp_

This is a graph of latest 24hr data for this module

_modulegraph_24h_

Contact Us  |  Support  |  Docs

', + 'field3_recovery' => '

Automatic alert system


We have good news for you, alert has been recovered

Monitoring details

Data: _data_ (normal)

Agent: _agent_ _address_

Module: _module_ _moduledescription_

Timestamp: _timestamp_

This is a graph of latest 24hr data for this module

_modulegraph_24h_

Contact Us  |  Support  |  Docs

', + ]; + + $result = alerts_create_alert_template($name, $type, $values); + return $result; +} From 9e81e28c62d537fcc2610532eb026849de53e148 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Fri, 14 Jul 2023 12:12:20 +0200 Subject: [PATCH 236/268] #10598 basic_net fix --- pandora_console/include/class/WelcomeWindow.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index 0d1068ce67..77f722e5d3 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -1286,7 +1286,7 @@ class WelcomeWindow extends Wizard type: "POST", url: "include/ajax/task_to_perform.php", data: { - Contition: 1, + create_net_scan: 1, ip_target: $('#text-ip_target_discovery').val(), }, success: function(data) { From e6e4448ea949597d9b567ec50b9b790e304dfba7 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Fri, 14 Jul 2023 12:33:19 +0200 Subject: [PATCH 237/268] #10598 license and dropsearch select2 --- pandora_console/include/class/WelcomeWindow.class.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index 77f722e5d3..6d7baa647c 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -399,6 +399,10 @@ class WelcomeWindow extends Wizard $btn_license_valid_class = ''; $li_license_valid_class = 'row_green'; $flag_lv = true; + } else { + $btn_license_valid_class = 'fail'; + $li_license_valid_class = 'row_grey'; + $flag_lv = false; } } else { $show_license = false; @@ -1227,6 +1231,10 @@ class WelcomeWindow extends Wizard $('#text-id_agent').autocomplete({ appendTo: '#dialog_alert_mail' }); + + $("#id_agent_module").select2({ + dropdownParent: $("#dialog_alert_mail") + }); } }); } From 4407efecc06517edfa5dc0b2d1ea80dc7a631713 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Fri, 14 Jul 2023 12:39:13 +0200 Subject: [PATCH 238/268] #10598 remove show license and show always --- .../include/class/WelcomeWindow.class.php | 59 +++++++++---------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index 6d7baa647c..3a2d45f2e0 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -385,7 +385,6 @@ class WelcomeWindow extends Wizard $flag_su = true; } - $show_license = true; if (enterprise_installed()) { $license_valid = true; enterprise_include_once('include/functions_license.php'); @@ -405,7 +404,9 @@ class WelcomeWindow extends Wizard $flag_lv = false; } } else { - $show_license = false; + $btn_license_valid_class = 'fail'; + $li_license_valid_class = 'row_grey'; + $flag_lv = false; } $inputs[] = [ @@ -510,36 +511,34 @@ class WelcomeWindow extends Wizard ], ], ]; - if ($show_license) { - $inputs[] = [ - 'wrapper' => 'div', - 'block_id' => 'div_license_valid', - 'class' => 'hole flex-row flex-items-center w98p '.$li_license_valid_class, - 'direct' => 1, - 'block_content' => [ - [ - 'label' => __('Enterprise licence valid'), - 'arguments' => [ - 'class' => 'first_lbl', - 'name' => 'lbl_license_valid', - 'id' => 'lbl_license_valid', - ], - ], - [ - 'arguments' => [ - 'label' => '', - 'type' => 'button', - 'attributes' => [ - 'class' => (empty($btn_license_valid_class) === false) ? $btn_license_valid_class : 'invisible_important', - 'mode' => 'onlyIcon', - ], - 'name' => 'btn_license_valid_conf', - 'id' => 'btn_license_valid_conf', - ], + $inputs[] = [ + 'wrapper' => 'div', + 'block_id' => 'div_license_valid', + 'class' => 'hole flex-row flex-items-center w98p '.$li_license_valid_class, + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Enterprise licence valid'), + 'arguments' => [ + 'class' => 'first_lbl', + 'name' => 'lbl_license_valid', + 'id' => 'lbl_license_valid', ], ], - ]; - } + [ + 'arguments' => [ + 'label' => '', + 'type' => 'button', + 'attributes' => [ + 'class' => (empty($btn_license_valid_class) === false) ? $btn_license_valid_class : 'invisible_important', + 'mode' => 'onlyIcon', + ], + 'name' => 'btn_license_valid_conf', + 'id' => 'btn_license_valid_conf', + ], + ], + ], + ]; } else { $inputs[] = [ 'wrapper' => 'div', From fd17e2179a3959e0323d2d06419de11cb5648540 Mon Sep 17 00:00:00 2001 From: artica Date: Sat, 15 Jul 2023 01:01:00 +0200 Subject: [PATCH 239/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 9f2a0a04aa..df1ea056ca 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230714 +Version: 7.0NG.772-230715 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index c0704f74a7..34e10dbd19 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230714" +pandora_version="7.0NG.772-230715" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 09aad69a9b..c9abd30afc 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230714'; +use constant AGENT_BUILD => '230715'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 0e6440e1a7..12c4dc696f 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230714 +%define release 230715 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 111552facf..ddb37a50cd 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230714 +%define release 230715 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 52f5e1635a..e29893349d 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230714" +PI_BUILD="230715" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 5188111230..dda2cccd13 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230714} +{230715} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 24d4844aee..c3f9c62d26 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230714") +#define PANDORA_VERSION ("7.0NG.772 Build 230715") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 7327e99e36..5680c21ed9 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230714))" + VALUE "ProductVersion", "(7.0NG.772(Build 230715))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 178e7e5759..89b3df28c4 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230714 +Version: 7.0NG.772-230715 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 7ce4a5b8fa..bc34cf03e0 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230714" +pandora_version="7.0NG.772-230715" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index e02fb5d108..d8ec443791 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230714'; +$build_version = 'PC230715'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 5627b2be25..a2c1044528 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index a0df57a9f3..17cdb3438f 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230714 +%define release 230715 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 8fe1a03640..81a8a5e42d 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230714 +%define release 230715 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 70b2c29cef..5493af7692 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230714" +PI_BUILD="230715" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index bbd5c10b4a..6318a5f0fb 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230714"; +my $version = "7.0NG.772 Build 230715"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 90a221e928..11d0aa9fd7 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230714"; +my $version = "7.0NG.772 Build 230715"; # save program name for logging my $progname = basename($0); From bdf2ac1e0b27dd0a183a0f353da471f8cf11216a Mon Sep 17 00:00:00 2001 From: artica Date: Sun, 16 Jul 2023 01:00:51 +0200 Subject: [PATCH 240/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index df1ea056ca..21630c0ed4 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230715 +Version: 7.0NG.772-230716 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 34e10dbd19..278a176713 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230715" +pandora_version="7.0NG.772-230716" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index c9abd30afc..58d0599f44 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230715'; +use constant AGENT_BUILD => '230716'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 12c4dc696f..b63cbb6b5b 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230715 +%define release 230716 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index ddb37a50cd..b997660661 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230715 +%define release 230716 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index e29893349d..59f8f0d850 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230715" +PI_BUILD="230716" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index dda2cccd13..27852482fe 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230715} +{230716} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index c3f9c62d26..f9f95ccaba 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230715") +#define PANDORA_VERSION ("7.0NG.772 Build 230716") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 5680c21ed9..1c77a72a85 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230715))" + VALUE "ProductVersion", "(7.0NG.772(Build 230716))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 89b3df28c4..d569a78635 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230715 +Version: 7.0NG.772-230716 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index bc34cf03e0..f07fdd43d9 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230715" +pandora_version="7.0NG.772-230716" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index d8ec443791..f05f47bda8 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230715'; +$build_version = 'PC230716'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index a2c1044528..bbc09d23e8 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 17cdb3438f..58df26ab69 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230715 +%define release 230716 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 81a8a5e42d..b573995a2a 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230715 +%define release 230716 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 5493af7692..2f8caf5140 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230715" +PI_BUILD="230716" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 6318a5f0fb..c3fa658bc4 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230715"; +my $version = "7.0NG.772 Build 230716"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 11d0aa9fd7..fe7c3ddb4f 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230715"; +my $version = "7.0NG.772 Build 230716"; # save program name for logging my $progname = basename($0); From bff52108355b9ea120187de321d936b39923d215 Mon Sep 17 00:00:00 2001 From: artica Date: Mon, 17 Jul 2023 01:00:44 +0200 Subject: [PATCH 241/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 21630c0ed4..c3721c3481 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230716 +Version: 7.0NG.772-230717 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 278a176713..b75cd1605d 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230716" +pandora_version="7.0NG.772-230717" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 58d0599f44..7d08a232b1 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230716'; +use constant AGENT_BUILD => '230717'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index b63cbb6b5b..c61554dc4a 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230716 +%define release 230717 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index b997660661..ee587b10f7 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230716 +%define release 230717 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 59f8f0d850..d0452d5783 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230716" +PI_BUILD="230717" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 27852482fe..7095ffc51e 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230716} +{230717} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index f9f95ccaba..465a673721 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230716") +#define PANDORA_VERSION ("7.0NG.772 Build 230717") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 1c77a72a85..b2cfbcf5a9 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230716))" + VALUE "ProductVersion", "(7.0NG.772(Build 230717))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index d569a78635..db0060aaaa 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230716 +Version: 7.0NG.772-230717 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index f07fdd43d9..e83c4c4694 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230716" +pandora_version="7.0NG.772-230717" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index f05f47bda8..e63c15a5e5 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230716'; +$build_version = 'PC230717'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index bbc09d23e8..a816e04f11 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 58df26ab69..3232fd8164 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230716 +%define release 230717 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index b573995a2a..ef9a34adea 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230716 +%define release 230717 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 2f8caf5140..8fb43e076a 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230716" +PI_BUILD="230717" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index c3fa658bc4..2279752285 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230716"; +my $version = "7.0NG.772 Build 230717"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index fe7c3ddb4f..5387e4d150 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230716"; +my $version = "7.0NG.772 Build 230717"; # save program name for logging my $progname = basename($0); From c333ffcf0adeddf301778dde16cdf64531daaf1c Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Mon, 17 Jul 2023 08:59:32 +0200 Subject: [PATCH 242/268] #11420 fixed url and added buttons --- pandora_console/godmode/servers/modificar_server.php | 2 +- pandora_console/godmode/servers/servers.build_table.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pandora_console/godmode/servers/modificar_server.php b/pandora_console/godmode/servers/modificar_server.php index cb99f3b4ef..6d3e672334 100644 --- a/pandora_console/godmode/servers/modificar_server.php +++ b/pandora_console/godmode/servers/modificar_server.php @@ -212,7 +212,7 @@ if (isset($_GET['server']) === true) { false, 'servers', true, - [], + $buttons, [ [ 'link' => '', diff --git a/pandora_console/godmode/servers/servers.build_table.php b/pandora_console/godmode/servers/servers.build_table.php index 861a507143..872aa33e6a 100644 --- a/pandora_console/godmode/servers/servers.build_table.php +++ b/pandora_console/godmode/servers/servers.build_table.php @@ -255,7 +255,7 @@ foreach ($servers as $server) { if (($names_servers[$safe_server_name] === true) && ($server['type'] === 'data' || $server['type'] === 'enterprise satellite')) { $data[8] .= ''; - $data[8] .= ''; + $data[8] .= ''; $data[8] .= html_print_image( 'images/remote-configuration@svg.svg', true, From 8d89ed90d3825ba4b6885e639f4e099e12bd1a15 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 17 Jul 2023 09:34:57 +0200 Subject: [PATCH 243/268] #11735 Fix Agent view modules --- pandora_console/include/ajax/module.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index 0ab70681df..8cc2eca4a5 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -98,15 +98,18 @@ if (check_login()) { } $id_plugin = get_parameter('id_plugin', 0); - $id_module_plugin = db_get_value( - 'id_plugin', - 'tagente_modulo', - 'id_agente_modulo', - $get_module_macros - ); - if ($id_plugin !== $id_module_plugin) { - $get_plugin_macros = true; - $get_module_macros = 0; + + if ($id_plugin !== 0) { + $id_module_plugin = db_get_value( + 'id_plugin', + 'tagente_modulo', + 'id_agente_modulo', + $get_module_macros + ); + if ($id_plugin !== $id_module_plugin) { + $get_plugin_macros = true; + $get_module_macros = 0; + } } if ($get_plugin_macros) { From f96adf59e9fedf60058ca0ed4ac54e8ae0f53584 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 17 Jul 2023 10:16:13 +0200 Subject: [PATCH 244/268] #11737 Fix pgp update required message --- pandora_console/include/class/ConsoleSupervisor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php index cb9435b559..5916f5bf12 100644 --- a/pandora_console/include/class/ConsoleSupervisor.php +++ b/pandora_console/include/class/ConsoleSupervisor.php @@ -1807,7 +1807,7 @@ class ConsoleSupervisor $this->cleanNotifications('NOTIF.PHP.SERIALIZE_PRECISION'); } - if (version_compare('8.1', PHP_VERSION) >= 0) { + if (version_compare('8.0.29', PHP_VERSION) > 0) { $url = 'https://www.php.net/supported-versions.php'; $this->notify( [ From 37b1c94b45073f4041a1857ff2f4f86378c6f096 Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Mon, 17 Jul 2023 11:53:14 +0200 Subject: [PATCH 245/268] #11493 Fixed icon --- .../include/lib/Dashboard/Widgets/AgentHive.php | 7 ++++--- pandora_console/include/styles/dashboards.css | 7 +++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pandora_console/include/lib/Dashboard/Widgets/AgentHive.php b/pandora_console/include/lib/Dashboard/Widgets/AgentHive.php index d41ef6df68..3b881ca344 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/AgentHive.php +++ b/pandora_console/include/lib/Dashboard/Widgets/AgentHive.php @@ -414,7 +414,7 @@ class AgentHive extends Widget $output .= '
'; $output .= file_get_contents( - ui_get_full_url('images/'.$icon) + ui_get_full_url('images/'.$icon, false, false, false) ); $output .= '
'; $output .= ui_print_truncate_text( @@ -424,8 +424,9 @@ class AgentHive extends Widget true, true, '…', - 'font-size: 11pt;color: #14524f; - font-weight: 600;text-align: left', + 'font-size: 11pt;color: #14524f;white-space: nowrap; + font-weight: 600;text-align: left;width: 80%; + overflow: hidden;', ); $output .= '
'; diff --git a/pandora_console/include/styles/dashboards.css b/pandora_console/include/styles/dashboards.css index 35f83388f9..285e8fa481 100644 --- a/pandora_console/include/styles/dashboards.css +++ b/pandora_console/include/styles/dashboards.css @@ -674,17 +674,16 @@ form.modal-dashboard .widget-agent-hive-square-status { width: 3%; height: 100%; - margin-left: 4%; - margin-right: 3%; + margin-left: 3%; border-radius: 15px; } .widget-agent-hive-square-info { - width: 90%; + width: 87%; height: 100%; display: flex; flex-direction: column; - margin-left: 5px; + margin-left: 6%; } .widget-agent-hive-square-info-header { From d3fded0fa88a1143a9e0d814e917c415f2b4ad96 Mon Sep 17 00:00:00 2001 From: Calvo Date: Mon, 17 Jul 2023 12:02:48 +0200 Subject: [PATCH 246/268] Deleted missing Dumper --- pandora_server/util/pandora_db.pl | 1 - 1 file changed, 1 deletion(-) diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index d8d61eb7df..671ac819fc 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -789,7 +789,6 @@ sub pandora_checkdb_integrity { $where_condition = ''; my @modules = get_db_rows($dbh, 'SELECT id_agente_modulo FROM tagente_modulo'); foreach my $id_agente_modulo (@modules) { - print Dumper($id_agente_modulo); $where_condition .= 'options NOT LIKE ("%\\"moduleId\\":\\"'.$id_agente_modulo->{'id_agente_modulo'}.'\\"%")'; if($id_agente_modulo == $modules[-1]) { last; From 567bfdcbb7a017be39dbf91aafc42e05c5651c26 Mon Sep 17 00:00:00 2001 From: miguel angel rasteu Date: Mon, 17 Jul 2023 13:08:13 +0200 Subject: [PATCH 247/268] #11737 Fix version --- pandora_console/include/class/ConsoleSupervisor.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php index 5916f5bf12..9142f9a692 100644 --- a/pandora_console/include/class/ConsoleSupervisor.php +++ b/pandora_console/include/class/ConsoleSupervisor.php @@ -1807,7 +1807,8 @@ class ConsoleSupervisor $this->cleanNotifications('NOTIF.PHP.SERIALIZE_PRECISION'); } - if (version_compare('8.0.29', PHP_VERSION) > 0) { + // If PHP_VERSION is lower than 8.0.27 version_compare() returns 1. + if (version_compare('8.0.27', PHP_VERSION) === 1) { $url = 'https://www.php.net/supported-versions.php'; $this->notify( [ From 8aaa98a741468b1adccc43961ba20fd707cba25f Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Mon, 17 Jul 2023 14:10:08 +0200 Subject: [PATCH 248/268] #10254 added message timeout --- pandora_console/include/auth/mysql.php | 1 - pandora_console/index.php | 1 - 2 files changed, 2 deletions(-) diff --git a/pandora_console/include/auth/mysql.php b/pandora_console/include/auth/mysql.php index 5f4b1cfe59..ef619236c8 100644 --- a/pandora_console/include/auth/mysql.php +++ b/pandora_console/include/auth/mysql.php @@ -244,7 +244,6 @@ function process_user_login_remote($login, $pass, $api=false) } if ($sr === false) { - $config['auth_error'] = 'User not found in database or incorrect password'; return false; } break; diff --git a/pandora_console/index.php b/pandora_console/index.php index a1304963c1..4d37baceb2 100755 --- a/pandora_console/index.php +++ b/pandora_console/index.php @@ -711,7 +711,6 @@ if (isset($config['id_user']) === false) { login_check_failed($nick); } - $config['auth_error'] = __('User is blocked'); $login_failed = true; } From a0dc60a49fd1e116c9b99ea6f0eef8964871e19b Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Mon, 17 Jul 2023 14:57:54 +0200 Subject: [PATCH 249/268] #11493 Added png --- pandora_console/images/widgets/AgentHive.png | Bin 0 -> 5426 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pandora_console/images/widgets/AgentHive.png diff --git a/pandora_console/images/widgets/AgentHive.png b/pandora_console/images/widgets/AgentHive.png new file mode 100644 index 0000000000000000000000000000000000000000..9a3c4623e52c7a08eaa4d1018d84b79746e38124 GIT binary patch literal 5426 zcmV-270v32P){qG?0+r{hWK=?77UzoVn-R^SS3HA!gRPcV_nN*)x0goHMg$_RJBGfh&09qaH|6 zyGEiYg2d>_M{-8juxJ8}tSsJqD-9>|XHEUiCnOWiuwu#M&nL=|KY!UANS9wKem^UU z1CU|I_O02fs+#6|ebYXYCP$H+L9w#4v(bnVBT#0KYf;77Qv|$o=S~7^*X3F?V8|!} z6KMwUA;X$AYtZRaC(%C#ts!9wD?f8mLlszlJ}%vxt)*NJ9KYCD-H$hKyA8m)lIG5y zfjYGl&||ZvqvapnLc%K+sqw`F@*M=gSOQ>F_7**1Rzlq6qy3tD|9}S3xBWY%c0G~N!^rwO#s9Gi#d2Pv-zDiWeh^k8E%*msVvuO|}nF?Or za+9K}9r#2(4xN=`qQc$r!5dk7cWVn7 z3jtv1&JTYHFFv=fK8z5&kVlW1sw1K6LXaZM{_}rWxd!G3>^Fm;t~`m9{^;$p8j31Q<=h0nDz8dyXLExG~=@O-oBd_4s96&b*B6 z5?%T1Q|c|lzdwxPOM+0Vy&0CjdpICpI5~(WdgasCkyelq;ez!a_E8k!Dx)+bnCcV$ z#m_t`Uc!PX(u*Zq(nSSzjS6C#jD$2L8jAR3sZNok+Poi+I!o~q`Gy7Yucbr;_%uNY zpPc#N-4$_g7LZH_v@JAdCcs#SIe~>Y37gd&wluh>jgtcAq|da_25yt35}MDee_CX3Q8= zSy`z~=n_$;lRk<=<0D6o)O9k@c;X6rV(ybPpJN~9?jbyrKXULOy8Z6P?4TvZy}e=3 zqXQodbo6HjmgW=4px3wm&5fm84#jaqF+j~?T~&h`H)}P58L2KnCypbQxR>E3E6B9z zpjmjw!%kJJh*d&)d^T=c5GbgugF<*16aq>s>sq#qUfsBhtt<)Kh4C3pn~u&_-+wEn zxWIEX?crSVK)$sh27`$Roj0&Bz7U9;76cC}>w*!4;DJo@u~6e#sU9O1GcAaJU_r=6 zFe9QyFnyOX!tekFQ@WHC6bXlP51|~8j>|CQvMUYW8rWC;^uQ4To}1J7febUNE@saN z&vaA~8drmG;?I6G@)D6aKf>}ElZmJG6b}4!^ymhyYo(&FNatRkKYDLg5Gtw_1QEPc zB4Cy9TM$mhi9Wghe{x2Zu{3lAu?a9~6vFC_EG$u2lGKZNlfHY@49Bz}vkU--O32Y@ zcPG>3MD+MHsB}aW%gv_OJU$yw$PkFEV8izQR;zg|!BmDp^m!Ar58}y|?lEP{jAJNO zS`u5RS7G+yp)@syoUUeqIfikWaYjD`*! zsyvW8?~bmSJsXV5rMj5#^4mK)25Un7jF12ZYSO2l?7HX3kt1lwjvZ*&uwiJ=o;_&b zz=7!S;ln5=Cr6hRlnHSB_J~usj_Bpc{rBG=y?62x!;R7a2KxnaB&b|(h5+z}`r7_g zRaK~4w{B?MxN$^d>eZ_ksc`S!y%D4txnvnI%HO3+mxOZx;6*lC0AedB`vNEMa{V`1 zSW|>+@w!lD9m3mljiuE`xk+AQ5(xn>2|4EQNt7<|!$jZc2Rl~alEv%UQAC5f>vy{d zVT(V<3{iTE-ycGQ3H`x;NSLf8R^D@;7EUJMnxU+2qYx-A{7NfdnLBPkw($Jl9&QVd zr_aYtRR|uD#_7IhEFM#ic5N=A$z;D1A}rqfms5GX8ayvgyE?YrL{N^!=xu$kksiBO zdYMc@&#{DH8Je!382PJKEF%S4;VpfB8Tt}G^qc>-!SGq6&*y7vZT8vAY&w<@-2{hc zgD!cqO-9vSiU-e{(Y6LvckSY_Wh4qamQW&MEg{V{Lq^guV#r83$>15~WntP5Gz(5Jl6-#060#aFXV09D%4<}#@QFM$AX6l( zYOu1#|5)=7zEa7=9Wz7=GaCpS@KRJg{!wRlV5RuU`l5&;)ozH`9SH3XtZwSS=kfc5 z_zid-=`ZVkKW5qT<%_TT=Jh1$xh0E;EfYi(*bcxy){qJYLcF_z);_-&vGz?QGxJCB z7?5Rf{C{O3ypdx148abLrmNW-6=-c!NZhutA>U6Vz}7GlDQv?J!eyp>UnA;i~GqyxSZY z!_cb7`;M7`mDH6RwssdHN+!Zh9Zxbz2yO{gmMUgVyt5oHk}#_Y)^u$#1Ff!fZs?7| zp>%7K9%K0YHPVH4$LvTiAv5^x))nvMH2ErzS##hw+JCSy$Cqa5hRhTezSp5f^4(;X zsk!0lO8AQhAG|xx*eQ;g7uRp=FDOd;=B}_+`KlzNzgDjqonN_cC8>&VX*E4OF za8rZ@QHsu-dK;(L}XnSDHe{tFXWI1OJG#0g>5Yg?{Yqw3W(f%lg#$lZPP=uxdZ^65<# z#|)u&|GsmwnS=yU_)1K~2vl^yfB~waC}{QS)hHAS5ue7vH~K}RQ3O9e%_*GCKWWk= z^!c8h51BO{@L{=d2zxBBr!!%~1XNQ~L;ULMYBX`;MAN+3!>8(K2M z5_cNrD?{^}!D+gg9|;GqGfM-wB{OAZ2T?NSgoz4Ilm;_QFhhj(2h9lrUa>QGmdp$s zd^0guG$-MGN)&TaS+Am+ke>FG?+rb#hv;LL%&_RNVndIsv2Yp&qxXN5?nhqY761J+ zO5W0U#0;E9qNgW}D8mUKa9-mXm1P8TH4kfb+lWRj)7&sul4 z8J;0=1E3>j;M6VM=QN;2&L08X4jv4KbAGv0GygTB2WOX@I7iHM%*e1cfLh^!L|{-9 z+GQ9Xd~?D8i|dFPuLnce4r!=7#nwj`hC%p>88l&E2aeI2IXVcNrSouCZ!^1Fe|85~ zyLf!%`M4`)cp@z&-o}jG!O-sDY8TI{2RM40QDRnuA;q&hxZ1^|bj^H6%-9(Wp&-C} z2%qrAn@R`{uJMizhOiS&jfi+0h*LbHG$WWJW~>H7T0lA;T%Z2kYE(_mHc)814_ohM zr;+2ats#z>u{&r!vv?7zsyJm@y3@hXln|HTh#5N?WOYzQCr)@f7;<$sjk)xMC(z8L+a_T+VZ5nu`%A*A+8%HAB0Dt5*$R`2xTvFQDV-b^+{a zhIR*6yUehcCK=_CVJjffPQX7u-k~wV4w}FrKPb{c&g;PtDt`9lacpPZ>q8?Z00w-J ziY7AIdhf4)8rt`Uo~suuTB0!pnL$&u8WaJ~3m0stN0YyMv&tXlXK9mL1ONcrXlC1h zcaM8`&;H%pe>i-|O>f~X10Y8gmoM5csXa5Qt@nFojLDP{&Js*t6<9PRin5nP?eR@QOE{Gh&K|fq`AP-NlUd zeqZ|rY|@CZX`?Lpu~}o-(5z9#W{qldn>F%GxQ!Q-;;wrPwU5fdKr|Q$;KhOfw&V;* zg5+-w%PO#tQdA`*C_)g)Vo(goK`{~tqTZ-3?>292NS(HoHVJT=(F(t$*}x%+aj)nv$A-5XF-a5LsirOOROy%-vWXp1XV>oJ!@+Ah4|FO z5L?258NiD5AM}u-GQRGy%_Y+UiWoVYKk2Ts*ksLefi9tNKr^WG`}#%|YcsWED*ScK zD@rKRJ`_G;WJpij!%#SI6-lH%nx!Za!*rUt%}>4sBuQ4~H1RN8-o;bXHGWA+iF6^< zeSjjwUqj1hY>Ru_0+K3)I{VAZ@EtpN6EfyB;S?6`!)Ix}a(xB>%RLZYv;J9g|C8asBZ;!jK8Fn!Lim%3?-T70PM z7x++@__V5u8G>y4LOs4Pa_Xk~LJk~Q0l~n1yG2DsXw#-m1ht}~0u>e(qRpE(llbY= zr_s7~>&UfPJgwFchca;5gLnx8E*ax)dAF z;M~cLH{OUcu;l{?3LM1oaS#&6uRIdZ%*@o%T@>5mvp}1aezMoqFah!axyWjLs59PY z^Nd*$Uxb0Lwbtl?FtW0;v^X3GgYk$uIHCd<%CSdPD2(E;K25WW&*r_7!XOtJf4w7s zup;Bug@W}1%F4>noH=vcl4zCrpiQ7{+%gApk&|5k_6O3+1`ZyQ4YxIa9UNRH2p^n) zTYBIdDQ1Q^aOKc}J-f@?wh723rTgZW@DW3}R1NIF+&K7l$jto55m@+vYi@cV7&s#U z0)Zb`d`!-Lj9k{^hCi!3DHYED{qN7oZFq@}f+eaTSf~RH`c$?=ddn8g_0*J;ZI6@+ zhb;)g>-Xdn5LgStxuc8K`2Io8U6s)uO&L3!gBnL4*%*U^!Ic;EY8F0C2!f%P7xav4 zZ6DgC!a00?yJ5|o2!ti@(ZAVPW7sXd(5~H$M3|6UdJG9y!6p?BTSL1~2b(8RxTVue zRClv9?-U%f658OdTcAmw9J_as+U3UX9jJEc(GS1b#ZNU}N`*r|qv!NoAY~fPgZyax zL>kpT%jX3>I2nYElhM0xZy=us)e3PCfclNTud#j(vf4sTsc@d0zYxLCE9V70&`)ad zt=phPKKSSYGA^f37^e|PY>ZmTLd?SC%WmC zr@_YClu(bA(8W(RDvh8(!gcP6j%u^Q;KT5GZ8b`$*Gi+;O0C!Qcwst?r}VYPSH^3l z(QBpFYkEBYPUB4~9JX>TU1{{Xek|{H!);2a-Ii(wye55eyjB{$R%*Sbm#jQfDx8+6 zgtAH_Oog|+({hzi%df3iNguw(GHm#;Cff-GC9*!Eq6WMR35ulA9UxY9Zi@8FJE7b2 z=Pz@;f1lDP$7?0DqOuwl;GNY|cxM%a?j2EBurS$E%&o=U!NYpA`J5pm{$> z>3#vNFEqd3D-pw~RvHtP?Itay!r?3AW~UKeTky4KFs9I5c#Da9t<>`MZSHuJ3dhY( zBdmedVZj(Vua#P(GMW>H?;nw($(l#GVZg4EN3Zs@D#I>4D>^MD9pob7@BLU@71mO! z`}L{^$VC>?{1;F|B&{h}_j;$%Yo)d++Q4oZAQ$=U`0Vl?MVouLHD(V40u^NkK8J~| zcGibhzzZexN>Umr-{2qpV!r}y!@}%_@j#=3T#`PYL%vz^@^9W8Go-u!dn?qFee2&)JlReqC{^jR>P=5OOyl$D9z8~H{ zUhF?$5dPYGrmpTmY%d?gHmyOd*~4XKt;JpVssbJT*8#Nooi`$tUzSIDT-*EENk4n? zZ*KUDJK08wcy%TeS1@qw(7x`qRTo?Qm$WGF$@m>QT~*h+-;nYyUAw!UTqQgc%2uxJ zG&S2AsSVpcP0d%M?H&TYMZAl Date: Mon, 17 Jul 2023 16:31:40 +0200 Subject: [PATCH 250/268] Optimize pandora_db iterations when possible --- pandora_server/util/pandora_db.pl | 85 +++++++++++++++---------------- 1 file changed, 40 insertions(+), 45 deletions(-) diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 671ac819fc..c3648d6fc6 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -761,56 +761,51 @@ sub pandora_checkdb_integrity { # Delete orphan data_inc reference records db_do ($dbh, 'DELETE FROM tagente_datos_inc WHERE id_agente_modulo NOT IN (SELECT id_agente_modulo FROM tagente_modulo)'); + # Delete orphan data from visual console. + log_message ('INTEGRITY', "Deleting orphan visual console items."); + db_do ($dbh, 'DELETE FROM tlayout_data WHERE id_agent NOT IN (SELECT id_agente FROM tagente)'); + db_do ($dbh, 'DELETE FROM tlayout_data WHERE id_agente_modulo NOT IN (SELECT id_agente_modulo FROM tagente_modulo)'); + # Delete orphan data form deleted agents. - my @agents_ids = get_db_rows ($dbh, 'SELECT id_agente, alias FROM tagente'); - my $agents_id = '0'; - foreach my $id (@agents_ids) { - $agents_id .= ','.$id->{'id_agente'}; + # Clearl orphan data from dashboards + log_message ('INTEGRITY', "Deleting orphan dahsboard items."); + my @agents_ids = get_db_rows($dbh, 'SELECT id_agente FROM tagente'); + my $where_condition; + foreach my $agent_id (@agents_ids) { + $where_condition .= 'options NOT LIKE ("%\\"agentid\\":\\"'.$agent_id->{'id_agente'}.'\\"%")'; + if($agent_id == $agents_ids[-1]) { + last; + } + $where_condition .= ' AND '; } - if(defined($agents_id) && $agents_id ne '0') { - # Delete orphan data from visual console. - log_message ('INTEGRITY', "Deleting orphan visual console items."); - db_do ($dbh, 'DELETE FROM tlayout_data WHERE id_agent NOT IN (?)', $agents_id); - db_do ($dbh, 'DELETE FROM tlayout_data WHERE id_agente_modulo NOT IN (SELECT id_agente_modulo FROM tagente_modulo)'); - # Clearl orphan data from dashboards - log_message ('INTEGRITY', "Deleting orphan dahsboard items."); - my $where_condition; - foreach my $agent_id (@agents_ids) { - $where_condition .= 'options NOT LIKE ("%\\"agentid\\":\\"'.$agent_id->{'id_agente'}.'\\"%")'; - if($agent_id == $agents_ids[-1]) { - last; - } - $where_condition .= ' AND '; - } + db_do ($dbh, 'UPDATE twidget_dashboard set options = NULL WHERE '.$where_condition); - db_do ($dbh, 'UPDATE twidget_dashboard set options = NULL WHERE '.$where_condition); - - $where_condition = ''; - my @modules = get_db_rows($dbh, 'SELECT id_agente_modulo FROM tagente_modulo'); - foreach my $id_agente_modulo (@modules) { - $where_condition .= 'options NOT LIKE ("%\\"moduleId\\":\\"'.$id_agente_modulo->{'id_agente_modulo'}.'\\"%")'; - if($id_agente_modulo == $modules[-1]) { - last; - } - $where_condition .= ' AND '; - } - - db_do ($dbh, 'UPDATE twidget_dashboard set options = NULL WHERE '.$where_condition); - - # Delete orphan data from favorite agents - log_message ('INTEGRITY', "Deleting orphan favories items."); - db_do ($dbh, 'DELETE FROM tfavmenu_user WHERE section = "Agents" AND id_element NOT IN (?)', $agents_id); - - # Delete orphan data from gis maps - log_message ('INTEGRITY', "Deleting orphan GIS data."); - db_do ($dbh, 'DELETE FROM tgis_data_history WHERE tagente_id_agente NOT IN (?)', $agents_id); - - # Delete orphan tnetwork maps data - log_message ('INTEGRITY', "Deleting orphan networkmaps data."); - db_do ($dbh, 'DELETE FROM titem WHERE source_data NOT IN (?)', $agents_id); - db_do ($dbh, 'DELETE FROM trel_item WHERE id_parent_source_data NOT IN (?) OR id_child_source_data NOT IN (?)', $agents_id, $agents_id); + $where_condition = ''; + my @modules = get_db_rows($dbh, 'SELECT id_agente_modulo FROM tagente_modulo'); + foreach my $id_agente_modulo (@modules) { + $where_condition .= 'options NOT LIKE ("%\\"moduleId\\":\\"'.$id_agente_modulo->{'id_agente_modulo'}.'\\"%")'; + if($id_agente_modulo == $modules[-1]) { + last; + } + $where_condition .= ' AND '; } + + db_do ($dbh, 'UPDATE twidget_dashboard set options = NULL WHERE '.$where_condition); + + # Delete orphan data from favorite agents + log_message ('INTEGRITY', "Deleting orphan favories items."); + db_do ($dbh, 'DELETE FROM tfavmenu_user WHERE section = "Agents" AND id_element NOT IN (SELECT id_agente FROM tagente)'); + + # Delete orphan data from gis maps + log_message ('INTEGRITY', "Deleting orphan GIS data."); + db_do ($dbh, 'DELETE FROM tgis_data_history WHERE tagente_id_agente NOT IN (SELECT id_agente FROM tagente)'); + + # Delete orphan tnetwork maps data + log_message ('INTEGRITY', "Deleting orphan networkmaps data."); + db_do ($dbh, 'DELETE FROM titem WHERE source_data NOT IN (SELECT id_agente FROM tagente)'); + db_do ($dbh, 'DELETE FROM trel_item WHERE id_parent_source_data NOT IN (SELECT id_agente FROM tagente) OR id_child_source_data NOT IN (SELECT id_agente FROM tagente)'); + # Check enterprise tables enterprise_hook ('pandora_checkdb_integrity_enterprise', [$conf, $dbh]); From 20e05f677efcb29495cab5a1702093766dde0166 Mon Sep 17 00:00:00 2001 From: artica Date: Tue, 18 Jul 2023 01:01:01 +0200 Subject: [PATCH 251/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index c3721c3481..25cc4317bc 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230717 +Version: 7.0NG.772-230718 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index b75cd1605d..841e77f29d 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230717" +pandora_version="7.0NG.772-230718" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 7d08a232b1..2d7565e722 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230717'; +use constant AGENT_BUILD => '230718'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index c61554dc4a..7adf1af667 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230717 +%define release 230718 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index ee587b10f7..2fb3a3c47f 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230717 +%define release 230718 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index d0452d5783..476bcfff87 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230717" +PI_BUILD="230718" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 7095ffc51e..25d53728df 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230717} +{230718} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 465a673721..37b5d7b223 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230717") +#define PANDORA_VERSION ("7.0NG.772 Build 230718") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index b2cfbcf5a9..f0fb52d90c 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230717))" + VALUE "ProductVersion", "(7.0NG.772(Build 230718))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index db0060aaaa..93e195b067 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230717 +Version: 7.0NG.772-230718 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index e83c4c4694..1dec27507e 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230717" +pandora_version="7.0NG.772-230718" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index e63c15a5e5..b384fdf8d2 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230717'; +$build_version = 'PC230718'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index a816e04f11..2a21ae2c9c 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 3232fd8164..4b20e76d49 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230717 +%define release 230718 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index ef9a34adea..77d690bdfc 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230717 +%define release 230718 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 8fb43e076a..856ee2d2ce 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230717" +PI_BUILD="230718" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 2279752285..841b212aa5 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230717"; +my $version = "7.0NG.772 Build 230718"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 5387e4d150..ac754cac92 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230717"; +my $version = "7.0NG.772 Build 230718"; # save program name for logging my $progname = basename($0); From 5806da78dd58e9ed6302d593c4b5689ccd6328a2 Mon Sep 17 00:00:00 2001 From: Daniel Maya Date: Tue, 18 Jul 2023 10:18:30 +0200 Subject: [PATCH 252/268] #11487 Fixed subgroups --- pandora_console/include/functions_graph.php | 23 +++++++++---------- .../agentes/pandora_networkmap.editor.php | 8 ++++++- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index 116deea959..ddf68475c6 100644 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -4983,19 +4983,18 @@ function graph_monitor_wheel($width=550, $height=600, $filter=false) $filter_module_group = (!empty($filter) && !empty($filter['module_group'])) ? $filter['module_group'] : false; if ($filter['group'] != 0) { - $filter_subgroups = ''; - if (!$filter['dont_show_subgroups']) { - $filter_subgroups = ' || parent IN ('.$filter['group'].')'; + if ($filter['dont_show_subgroups'] === false) { + $groups = groups_get_children($filter['group']); + $groups_ax = []; + foreach ($groups as $g) { + $groups_ax[$g['id_grupo']] = $g; + } + + $groups = $groups_ax; + } else { + $groups = groups_get_group_by_id($filter['group']); + $groups[$group['id_grupo']] = $group; } - - $groups = db_get_all_rows_sql('SELECT * FROM tgrupo where id_grupo IN ('.$filter['group'].') '.$filter_subgroups); - - $groups_ax = []; - foreach ($groups as $g) { - $groups_ax[$g['id_grupo']] = $g; - } - - $groups = $groups_ax; } else { $groups = users_get_groups(false, 'AR', false, true, (!empty($filter) && isset($filter['group']) ? $filter['group'] : null)); } diff --git a/pandora_console/operation/agentes/pandora_networkmap.editor.php b/pandora_console/operation/agentes/pandora_networkmap.editor.php index ac73c474aa..3dea327116 100644 --- a/pandora_console/operation/agentes/pandora_networkmap.editor.php +++ b/pandora_console/operation/agentes/pandora_networkmap.editor.php @@ -205,9 +205,15 @@ if ($edit_networkmap) { $button = []; if ($edit_networkmap === true) { + if (empty($method) === false && $method === 'radial_dinamic') { + $url = 'index.php?sec=network&sec2=operation/agentes/networkmap.dinamic&activeTab=radial_dynamic&id_networkmap='.$id; + } else { + $url = 'index.php?sec=network&sec2=operation/agentes/pandora_networkmap&tab=view&id_networkmap='.$id; + } + $button['map'] = [ 'active' => false, - 'text' => ''.html_print_image( + 'text' => ''.html_print_image( 'images/network@svg.svg', true, [ From e645f65e8e1be6aa41e722d60afb4c9cb8365ca0 Mon Sep 17 00:00:00 2001 From: artica Date: Wed, 19 Jul 2023 01:00:45 +0200 Subject: [PATCH 253/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 25cc4317bc..6e5a9ccc64 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230718 +Version: 7.0NG.772-230719 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 841e77f29d..75850e3771 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230718" +pandora_version="7.0NG.772-230719" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 2d7565e722..37f16c658f 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230718'; +use constant AGENT_BUILD => '230719'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 7adf1af667..be1df542a1 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230718 +%define release 230719 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 2fb3a3c47f..1713a34f17 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230718 +%define release 230719 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 476bcfff87..90b464d570 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230718" +PI_BUILD="230719" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 25d53728df..a147da9939 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230718} +{230719} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 37b5d7b223..8172d41f25 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230718") +#define PANDORA_VERSION ("7.0NG.772 Build 230719") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index f0fb52d90c..3878d891d0 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230718))" + VALUE "ProductVersion", "(7.0NG.772(Build 230719))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 93e195b067..964bb752d0 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230718 +Version: 7.0NG.772-230719 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 1dec27507e..5342ae5725 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230718" +pandora_version="7.0NG.772-230719" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index b384fdf8d2..20d3363e68 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230718'; +$build_version = 'PC230719'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 2a21ae2c9c..e5ce174350 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 4b20e76d49..bbb62269cc 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230718 +%define release 230719 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 77d690bdfc..0e62343d30 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230718 +%define release 230719 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 856ee2d2ce..56562ff7ce 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230718" +PI_BUILD="230719" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 73e9ba3a8b..f75db8462f 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230718"; +my $version = "7.0NG.772 Build 230719"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index ac754cac92..6c5062c309 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230718"; +my $version = "7.0NG.772 Build 230719"; # save program name for logging my $progname = basename($0); From 018bfe12887de38a81c18961f0245a32955847ce Mon Sep 17 00:00:00 2001 From: Daniel Cebrian Date: Wed, 19 Jul 2023 10:36:30 +0200 Subject: [PATCH 254/268] #10696 fixed resize circular mesh --- pandora_console/include/functions_graph.php | 5 ++++- pandora_console/include/functions_netflow.php | 7 ++++++- pandora_console/include/graphs/functions_d3.php | 4 ++-- pandora_console/include/graphs/pandora.d3.js | 13 ++++++++----- .../include/lib/Dashboard/Widgets/netflow.php | 8 +++++++- pandora_console/include/styles/netflow_widget.css | 4 ++++ 6 files changed, 31 insertions(+), 10 deletions(-) diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index d1702ef9d6..5be8dc1233 100644 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -4618,7 +4618,10 @@ function graph_netflow_circular_mesh($data) include_once $config['homedir'].'/include/graphs/functions_d3.php'; - return d3_relationship_graph($data['elements'], $data['matrix'], 900, true); + $width = (empty($data['width']) === false) ? $data['width'] : 900; + $height = (empty($data['height']) === false) ? $data['height'] : 900; + + return d3_relationship_graph($data['elements'], $data['matrix'], $width, true, $height); } diff --git a/pandora_console/include/functions_netflow.php b/pandora_console/include/functions_netflow.php index 66e1ad1a9f..9d0c492971 100644 --- a/pandora_console/include/functions_netflow.php +++ b/pandora_console/include/functions_netflow.php @@ -1233,7 +1233,9 @@ function netflow_draw_item( $max_aggregates, $connection_name='', $output='HTML', - $address_resolution=false + $address_resolution=false, + $width_content=false, + $height_content=false ) { $aggregate = $filter['aggregate']; $interval = ($end_date - $start_date); @@ -1432,6 +1434,9 @@ function netflow_draw_item( netflow_aggregate_is_ip($aggregate) ); + $data_circular['width'] = $width_content; + $data_circular['height'] = $height_content; + $html = '
'; $html .= graph_netflow_circular_mesh($data_circular); $html .= '
'; diff --git a/pandora_console/include/graphs/functions_d3.php b/pandora_console/include/graphs/functions_d3.php index acb675423a..baa957acc9 100644 --- a/pandora_console/include/graphs/functions_d3.php +++ b/pandora_console/include/graphs/functions_d3.php @@ -57,7 +57,7 @@ function include_javascript_d3($return=false) } -function d3_relationship_graph($elements, $matrix, $width=700, $return=false) +function d3_relationship_graph($elements, $matrix, $width=700, $return=false, $height=700) { global $config; @@ -72,7 +72,7 @@ function d3_relationship_graph($elements, $matrix, $width=700, $return=false) $output = '
'; $output .= include_javascript_d3(true); $output .= ""; if (!$return) { diff --git a/pandora_console/include/graphs/pandora.d3.js b/pandora_console/include/graphs/pandora.d3.js index 5c8b59013b..64313904bc 100644 --- a/pandora_console/include/graphs/pandora.d3.js +++ b/pandora_console/include/graphs/pandora.d3.js @@ -22,7 +22,7 @@ // matrix = [[0, 0, 2], // a[a => a, a => b, a => c] // [5, 0, 1], // b[b => a, b => b, b => c] // [2, 3, 0]]; // c[c => a, c => b, c => c] -function chordDiagram(recipient, elements, matrix, width) { +function chordDiagram(recipient, elements, matrix, width, height) { d3.chart = d3.chart || {}; d3.chart.chordWheel = function(options) { // Default values @@ -59,10 +59,13 @@ function chordDiagram(recipient, elements, matrix, width) { .enter() .append("svg:svg") .attr("width", width) - .attr("height", width) + .attr("height", height) .attr("class", "dependencyWheel") .append("g") - .attr("transform", "translate(" + width / 2 + "," + width / 2 + ")"); + .attr( + "transform", + "translate(" + width / 2 + "," + height / 2 + ") scale(1.2)" + ); var arc = d3.svg .arc() @@ -206,8 +209,8 @@ function chordDiagram(recipient, elements, matrix, width) { .on("mousemove", move_tooltip); function move_tooltip(d) { - x = d3.event.pageX + 10; - y = d3.event.pageY + 10; + x = d3.event.layerX + 10; + y = d3.event.layerY + 10; $("#tooltip").css("left", x + "px"); $("#tooltip").css("top", y + "px"); diff --git a/pandora_console/include/lib/Dashboard/Widgets/netflow.php b/pandora_console/include/lib/Dashboard/Widgets/netflow.php index 6af2e78bab..be603e452b 100644 --- a/pandora_console/include/lib/Dashboard/Widgets/netflow.php +++ b/pandora_console/include/lib/Dashboard/Widgets/netflow.php @@ -339,6 +339,10 @@ class Netflow extends Widget $style .= ' width: 95%;'; } + if ($size['width'] > $size['height']) { + $size['width'] = $size['height']; + } + // Draw the netflow chart. $output .= html_print_div( [ @@ -353,7 +357,9 @@ class Netflow extends Widget $this->values['max_values'], '', 'HTML', - 0 + 0, + ($size['width'] - 50), + ($size['height'] - 20), ), ], true diff --git a/pandora_console/include/styles/netflow_widget.css b/pandora_console/include/styles/netflow_widget.css index 04b093c989..c7be7fe90d 100644 --- a/pandora_console/include/styles/netflow_widget.css +++ b/pandora_console/include/styles/netflow_widget.css @@ -7,3 +7,7 @@ #image_hide_show_labels { display: none !important; } + +.select2-search--dropdown .select2-search__field { + padding: 0px !important; +} From a9ae04cdc4edf1aa3bb3cef2ca7681bbd9f8c8bf Mon Sep 17 00:00:00 2001 From: Enrique Martin Date: Wed, 19 Jul 2023 10:46:10 +0200 Subject: [PATCH 255/268] Added systemd and sysvinit startup for pandora_agent_daemon --- pandora_agents/unix/pandora_agent_installer | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 90b464d570..df34f29400 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -541,8 +541,17 @@ install () { then echo "Define 'pandora_agent=\"YES\"' in /etc/rc.conf to enable the daemon." else - echo "Check your startup configuration to be sure Pandora FMS Agent is ready " - echo "to start automatically when system restarts": + # Enable startup service + if [ `command -v systemctl` ] + then + systemctl enable pandora_agent_daemon + elif [ `command -v chkconfig` ] + then + chkconfig pandora_agent_daemon on + else + echo "Check your startup configuration to be sure Pandora FMS Agent is ready " + echo "to start automatically when system restarts": + fi fi # Restore the daemon script From 1f722998e639f8bd146ab0e47ec236cd4495eb4d Mon Sep 17 00:00:00 2001 From: artica Date: Thu, 20 Jul 2023 01:01:06 +0200 Subject: [PATCH 256/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 6e5a9ccc64..befff3be5c 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230719 +Version: 7.0NG.772-230720 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 75850e3771..0f507262b8 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230719" +pandora_version="7.0NG.772-230720" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 37f16c658f..066c703237 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230719'; +use constant AGENT_BUILD => '230720'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index be1df542a1..b6b857863e 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230719 +%define release 230720 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 1713a34f17..7df3b5fca9 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230719 +%define release 230720 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 90b464d570..14939dc1e0 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230719" +PI_BUILD="230720" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index a147da9939..656dff5ec3 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230719} +{230720} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 8172d41f25..8cb58c7095 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230719") +#define PANDORA_VERSION ("7.0NG.772 Build 230720") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 3878d891d0..009659b454 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230719))" + VALUE "ProductVersion", "(7.0NG.772(Build 230720))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 964bb752d0..66c16b35b1 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230719 +Version: 7.0NG.772-230720 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 5342ae5725..a2c66fff09 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230719" +pandora_version="7.0NG.772-230720" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 20d3363e68..99d33b658e 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230719'; +$build_version = 'PC230720'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index e5ce174350..548f57b24b 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index bbb62269cc..a77349551b 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230719 +%define release 230720 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 0e62343d30..659b1dfcd1 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230719 +%define release 230720 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 56562ff7ce..84d3f238e1 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230719" +PI_BUILD="230720" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index f75db8462f..fbe7655596 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230719"; +my $version = "7.0NG.772 Build 230720"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 6c5062c309..79b4d5a020 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230719"; +my $version = "7.0NG.772 Build 230720"; # save program name for logging my $progname = basename($0); From 4d83071f1cd90da67da36adb5f4721d7326d38f4 Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:02:02 +0000 Subject: [PATCH 257/268] Add new directory --- pandora_server/util/load/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pandora_server/util/load/.gitkeep diff --git a/pandora_server/util/load/.gitkeep b/pandora_server/util/load/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From 8a66b41280f5de38552f5aed17f1fd32005b9f09 Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:17:06 +0000 Subject: [PATCH 258/268] Upload New File --- .../util/load/create_usersandgroups.sh | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 pandora_server/util/load/create_usersandgroups.sh diff --git a/pandora_server/util/load/create_usersandgroups.sh b/pandora_server/util/load/create_usersandgroups.sh new file mode 100644 index 0000000000..36534bbf0b --- /dev/null +++ b/pandora_server/util/load/create_usersandgroups.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# (c) 2023 Pandora FMS, by Sancho Lerena +# This script is used to create a huge load of data +# It creates a group from each item in groupnames.txt +# It creates an user from each item in usernames.txt +# It gives an association to each user for a random group using a Read Only operator profile +# It moves each agent to a primary group, randomly from groupname.txt + +if [ ! -e usernames.txt ] +then + echo "Error, I cannot find usernames.txt" + exit +fi + +if [ ! -e groupnames.txt ] +then + echo "Error, I cannot find groupnames.txt" + exit +fi + +# Create users from usernames.txt +for a in `cat usernames.txt` +do + /usr/share/pandora_server/util/pandora_manage.pl /etc/pandora/pandora_server.conf --create_user $a $a 0 "Created by CLI" +done + + +# Create groups from groupnames.txt +for a in `cat groupnames.txt` +do + /usr/share/pandora_server/util/pandora_manage.pl /etc/pandora/pandora_server.conf --create_group $a +done + +# Associate a group to each user +TOTAL_GROUPS=`cat groupnames.txt | wc -l` +for username in `cat usernames.txt` +do + RAN=`echo $RANDOM % $TOTAL_GROUPS + 1 | bc` + GROUP_NAME=`cat groupnames.txt | tail -$RAN | head -1` + + /usr/share/pandora_server/util/pandora_manage.pl /etc/pandora/pandora_server.conf --add_profile $username "Operator (Read)" $GROUP_NAME +done + +# Move each agent to a random group +TOTAL_GROUPS=`cat groupnames.txt | wc -l` +for agentname in `/usr/share/pandora_server/util/pandora_manage.pl /etc/pandora/pandora_server.conf --get_agents | cut -f 2 -d ","` +do + RAN=`echo $RANDOM % $TOTAL_GROUPS + 1 | bc` + GROUP_NAME=`cat groupnames.txt | tail -$RAN | head -1` + /usr/share/pandora_server/util/pandora_manage.pl /etc/pandora/pandora_server.conf --update_agent $agentname group_name $GROUP_NAME +done From 86b91c48d74edcef6b4a42522de85e15f0f90aad Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:17:30 +0000 Subject: [PATCH 259/268] Upload New File --- pandora_server/util/load/README.MD | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 pandora_server/util/load/README.MD diff --git a/pandora_server/util/load/README.MD b/pandora_server/util/load/README.MD new file mode 100644 index 0000000000..d042cb1503 --- /dev/null +++ b/pandora_server/util/load/README.MD @@ -0,0 +1,36 @@ +### Purpose of this toolkit + +This directory contains configuration files and small scripts to generate an environment with simulated data for testing purposes. + +### Generation of XML files to simulate agent load + +There is a tool that comes configured with Pandora FMS to generate test data (pandora_xml_stress) and that generates XML. It has different options and in this directory is provided a configuration file and all the dictionaries and additional files to generate data of 300 agents, with pseudo-random names (like for example "7fb8a1a734c24cc22a5c75eb"). + +These agents are defined in the "pandora_xml_stress.agents" file. If you want less agents, you can delete elements in this file. + +To execute the XML generation manually from the code repository: + + cd pandorafms/pandora_server/util/load + perl ../pandora_xml_stress.pl pandora_xml_stress.conf + +This will generate 300 XML in the /var/spool/pandora/data_in directory. + +If you create a scheduled execution of this command every 5 minutes (e.g. through cron), keep in mind that if the PandoraFMS server stops, it could have hundreds of thousands of XML files pending to be processed. + +Create /etc/cron.d/pandora_stress with this content: + + */5 * * * * root + + +### Generation of groups and users + +The script 'create_usersandgroups.sh' will take a list of names from the file 'usernames.txt' and through CLI will create those users in the local Pandora FMS. + +On the other hand, it will also create a series of groups, taking as source the names of the file 'groupnames.txt'. It will associate to each user a group of the existing ones with the profile "Operator (Read"). + +Finally, it will take all the agents available in Pandora FMS and it will distribute them in an equal and random way among the available groups. + +You should only run it once: + + cd pandorafms/pandora_server/util/load + ./create_userandgroups.sh From 7f3a90df375e6a57ad5edd46f1b31f87424a6cb0 Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:17:45 +0000 Subject: [PATCH 260/268] Upload New File --- pandora_server/util/load/groupnames.txt | 44 +++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 pandora_server/util/load/groupnames.txt diff --git a/pandora_server/util/load/groupnames.txt b/pandora_server/util/load/groupnames.txt new file mode 100644 index 0000000000..86c1426a88 --- /dev/null +++ b/pandora_server/util/load/groupnames.txt @@ -0,0 +1,44 @@ +Ali +Alisha +Amado +Angeline +Arlen +Arline +Barbra +Beth +Bette +Bradly +Brenton +Candace +Candy +Carroll +Cecelia +Chance +Chang +Chase +Chasity +Tracey +Vincent +Ward +Wiley +Willie +Winnie +zurc +Grasstongue +Khung +Mudblood +Grosk +Grumblehammer +Snun +Emberfang +Zotvind +Stormfist +Knigbrur +Rockclaw +Skalbrusk +Rivergut +Vitrurk +Coldpelt +Doddosk +Fistbasher +Skikkin \ No newline at end of file From 6cb4709539c3f6fd180caa8ad933dfda19c0f499 Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:18:03 +0000 Subject: [PATCH 261/268] Upload New File --- .../load/pandora_xml_stress_module_source.txt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 pandora_server/util/load/pandora_xml_stress_module_source.txt diff --git a/pandora_server/util/load/pandora_xml_stress_module_source.txt b/pandora_server/util/load/pandora_xml_stress_module_source.txt new file mode 100644 index 0000000000..aa442fdc93 --- /dev/null +++ b/pandora_server/util/load/pandora_xml_stress_module_source.txt @@ -0,0 +1,38 @@ +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +12 +13 +12 +14 +12 +14 \ No newline at end of file From 42f23e667b11db0f6238be15c9a0c109c7b9ea07 Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:18:18 +0000 Subject: [PATCH 262/268] Upload New File --- .../util/load/pandora_xml_stress.agents | 300 ++++++++++++++++++ 1 file changed, 300 insertions(+) create mode 100644 pandora_server/util/load/pandora_xml_stress.agents diff --git a/pandora_server/util/load/pandora_xml_stress.agents b/pandora_server/util/load/pandora_xml_stress.agents new file mode 100644 index 0000000000..da718018e0 --- /dev/null +++ b/pandora_server/util/load/pandora_xml_stress.agents @@ -0,0 +1,300 @@ +bf78e4acf01eb3144b5f3cf5 +83c2b346af90edc2fa0de4e1 +602ef1ca527c0bb7d144bf0a +4012470edc77bc97f58b3f80 +9daa3ecee84ed039bcf2efdc +3dae00ce55f6985ac26a4402 +3a8ae8e8d417712166f6df48 +257f378d433124706d442bbb +fa2025fd2f64462a43d94fae +d17d6fd3720184cb5a7d199d +4d9977b96f3b4e006e47112a +6242411ed2d7f324b70c86d9 +92ed7a8b9e1e786172ca02e1 +50aca7828dabff6449740082 +e7c7487ef15715ee44cc7844 +0f0d005d0d9f31afcf979437 +51ced8d82e7e851d61b93670 +824a318186adb6603b4b804a +387f85fe94caf0ebdfd15d63 +65833ad4e353ad573a14ef21 +3a276db7e3af8aa95872946f +df6b8c060d9f385db4e53bd8 +8999734b6f54032df4465189 +bec95961964493dbca9cf544 +34957a75a1e362783e3de10f +64ab08385a39067b8161cb68 +689544d5ec6199304feec7d1 +e926306ca1a952827d788828 +4ed79bf195c8287c443c86d2 +5094261d922982b388137a1f +f90f364975c489b465092a04 +6fc797c7f3918310af9e9afa +1c2be64167c08109c69e1130 +fea477977db6ac0d8021637f +4939f84a23aff2a97b412ada +385a5f99e3970b52f92c5b9e +6176e5d648b335db3b79322e +bf4d03212ee1eeeaa53cac26 +b7d0acbc714b76095a523286 +e3eb2fc6f548bbc8f7ac2f0c +93c08fcfe26a5cc9be667bb7 +c6120aa7367523294dd8cb94 +07548491524ec76d96db5e26 +29bc64bd950f74b678d45e57 +8733dcfbb5d8832ee9319bc1 +16b9e5a78847d99ca636e90c +4c9a17935849675164a7460b +6c47aa0691ca8447bd7690d9 +b1ec5a21f332b3d3c5b7e35e +3a0ff6da7e9c3ed12a8f9246 +ac823076dc634e47c51d3d67 +a0f7d6d23d0f6ad87889fdb2 +093c29ab1ff212ac9139b821 +6b5fc978a68a98e5c39d8e86 +334af374b4dee25929244b1e +ffa507c102d330433ff15b9e +89b03af9ca3428e7877fc6f2 +f10d7455b7386248e3b65acc +07e37df13934913378ae9aa0 +6b261e22ae3882a928d7e0b5 +f96c558c07671ac8d52cec6c +6be22d5bb4b2ba0751551ca1 +706fbe25372d5779225e2651 +eedc80256ab4d68cd477bcbe +6e2e97c594245092c5f9fc3e +3aa4e556f361196dc7c6102a +091fd7bfa2b8b7bb81b20ea4 +9ad434c3e7796273d7d1d8b5 +9e8f16f56ff86d1161196430 +17a3b7ce50bcb52325126aeb +edf98dbbeb2a5cf4d3baf70c +8de575ca92807d1652a9fa73 +33faeb45a5a04e410056585d +a8437131fa7d2ccfa015caf2 +7b478c40169b6bd1bd3fef83 +77a17435ca19143c7c18a490 +56bf42c56c42fb5334da25af +f646df9f903178fcffada9b8 +a390ec6c1d641f44a5b76d9a +deed99c701a0f4f2eaa551a4 +15197674acb20c324923d247 +e2517b8b94207380fa110334 +d62a50e795be6bd07c1f44c9 +0fd5b2606cb0e7a25e8a1370 +4f57d5b32737f75aff5fe8ed +ebcfdb50f0f1a6d3c0c059dc +dab99715dfe459bb357335c0 +aac40b9a6c4a9984adb09b14 +18f06ba95abb048598e865ab +0eff987eb95e5a438c4c8018 +fb5c6d027180ab974b0b7675 +a8e2cdea5a3df0c42f11fc24 +3ffa5c21a78d67d7ae358099 +16f9280e03f99e432db79b84 +a8e28177ffb5aeda7f474fdf +134ed984989a755e3dae8233 +70d364db21c5e85073e5b17e +ce2196095062f09ae9569c54 +6965e3eb85c3431e22a3d199 +f76187d491c04c130cfa96d2 +3af29cc38e85351595f2a513 +d4dfbc5f347ff7985e8eb232 +add60e5dff9a33115b996a70 +8519bf76f1c1cb8da26e270d +cb117a019377c03839dbb667 +c56e9ea3c4d373cdc301b423 +4f6afb90cbeeaf09756f7283 +a80172931917bcb8647edc96 +4a6f07d5d075bef6bf794db1 +5a0bbd407c6e224084987e88 +a325a700c253294582cf2546 +28197bd3d8c6ff0747deaf3d +23719c710abf2d43dc0061b8 +19640261e5cde16ee8484f20 +247a72fa19ac7e52955b1ac6 +882cf1711c2c463eb4389b9a +b9434493637d85cd4ae05ce6 +eafb645f5aae3b3d45eac64c +4944420fba4c2ed3a5eebda9 +fa9f5d02a4e6e0a9c09b1a05 +3411890bc1237a086f5d4532 +f50c455cbd5fb84566f3c3d1 +b1b9783f6345b4732dc35887 +722d8ba0f5ebc313c98a8c82 +be2a4afbab53363815416730 +4440b997bd12750c15baac3c +72ae565db9ea0b4686eacf6b +88e70d097307fe10d46d922a +5fcdfcd43be6e235ee8ae140 +8ba16c7ec192e2d93d3826db +79d1c21a40baa3bae9d38c60 +28f4a1897afbc8db42ddb3bd +b96aebdee9a0aa681c41f951 +28e63e948e80ef9351de678c +c0d69c65c6544abb90b0be4e +212d9e6df8d1cf8aa7e51979 +abf8c4265b09990aeddc0101 +c0cf6680054f443d0eb50a26 +2ce89791ce40e902ae9f3507 +4ce8e01633c1affb78fc238e +b4f152dc64a3daa63fd0055f +a56c545d8c4817fc6836fc96 +e4e91209ac4a94f6f9e5eed2 +31f7373460d648f208b677a4 +20fe6b8dbaedc3e1f7c86908 +be67e5298c830c0bb582556f +63f5d1404aea4377779edf35 +b03831cce718125cb9612c07 +5465b26fd45d86b059066cc2 +5351de84d2fd638b138ba27b +6c63000157aed37fa8c0c022 +8d3c18c7fbe518694c6bdb22 +615ec092b6f63bb14a2bb42e +61de25cf8e12926c28aeffdc +2b96bc1c8f6f81a5437b61bf +ba1f4fcf3954e0efe5d68c83 +ee5bd3e1a937b90562677f1d +0cf18ae18b0c680d00cb4d2e +abf72b0d66f90bd6e67c43c6 +f263d033bb07e0b8cd405224 +418ddf02720649b40db2dd67 +01d1a735aa980326d385ea65 +0cc3860bb0a3fd5822b25ea4 +b0b89dbebfab05fafd6cf9dd +2fcbb999444db5c0c77c2ec2 +f49a97b3531b8ab8d487c7a7 +ffb66d5003620e2fa47ef8ea +04da742ab6c99b5c44f9f0cc +dc310a9d42d7c367671ffbf9 +b0f5c4ee8d327449ef2103e6 +5bd2ce604ed7c820169f0ac2 +57f874a6e41baa5a1196b15f +b43142736205ad1011f4a5a6 +50cf8523e5090251516eecb0 +ebad61d47be209696f9d41aa +66bc5976a98266560d1867ff +3c37fc452e9ad36cd7adcb1a +4ac8c3db63a69ce883f3fcf5 +6c89e2bb90b9ab95f4adde3c +917de5ece0a5ef663a8f44e7 +b50eba76cf29aca3cf696d7e +74264c913ac1e141db78708a +2b6c93011f62cffb5c085886 +700617c377952010272b9522 +dac10c8ddf7c45e55d8028af +053328a6ff4f2773eebe76fe +2d7390260285c272688ae1e8 +fa30c9ee6fb1e2f00d7ccb77 +0ca6db378a05246f30c8b820 +9ad6f959de166cc1475040ea +23b4702f4dfb350085e77482 +4198a8ab80780c5d9b0d82d5 +baebd530dfc47ac77ea42d2a +636d2ab4e018b5542e429f5e +40ae44193af360eea68b6f0b +dd47b39e494a62a4f5b6bef8 +240339c9dcd159595c1edbf3 +0f11840efe364ca6bbb17f43 +8522e203fb4b53e2bd6d6f82 +f134d9b501fa40b17993beee +d0483306f2f972aacfb4fcea +926ee4e0a80455cfee517f8b +c188a327bc66df4878cb3e8b +c874083c1d932bb4ade6d028 +be2271d8da327f97e05c1c60 +9ca7451d3f261682ec717547 +9eb46e2a5fd072c5267d7432 +41e8f3f7733f87e16b773bad +f642220cd19f84154e4dd972 +fe3d9f6433883332b464b7ca +3e9648ccf60b1fa712ea8590 +b7da7292e9418889bc957bd7 +fb4a392d386eca19eec9215e +34188e4a6590877b2dbb67b0 +e233cb364659dea13dee1fd8 +757b8330465df34879414b7d +5e0f80102fee69d0742934b2 +d72124afc78e9b3f91550497 +21c77bfe67c6e99f73323f42 +afa8ce345db6300882858f93 +886cc8b32ed80f4c69edb990 +64ea275ce73ef4070cefca19 +c676f1ffe5bdce4e1d3643ed +baca61ab59568605e3ec8899 +1610892c53a071ed02d20c75 +3321fb7111d74e532932d262 +29583747ac9fbf0bf21c1574 +f51210b47a6e847dcfb52f94 +63c95735ba96c65d2d45b23d +679c4e3acb15ebec6ecc7529 +42da0760b02d50c6587a8c31 +e42de775dcfcc3c950c1cff5 +ae5791cf265badebd39c78d9 +f66c123309525eeb81b47e92 +7cddc2b9ed6b4df83c72fcbe +e69cc74632fdaa06f76f708a +7cfd19c2eeaef2c0537332be +d27cdcea69f4e49fbae06f4d +bdfaa2ec52319f0e6533e826 +d59452cdfce11e21682a791f +cbb74f2d35d54557abdbc2da +369a4e6f128475bc9f87ef42 +90bf992a98d0b768cbc50520 +1fea663421dae7b418b9b15f +f9fc5505565c43cebc1545f9 +d02a8f77fbb2b7f384a99949 +279ff35e17c7f6b6a043fde7 +9cf7725d3a97d9aa9e529ce6 +1f465b328b349502c0953b2d +283fad60fa48ea2075a0e516 +ef5d9e841a02665c54d8fa7f +b6023425cb4a1503726b3135 +7fb8a1a734c24cc22a5c75eb +da38d78e83c9288e4cd60cca +2a928a6498ae8e0b29675c25 +d2194ab5b0e48c2c1f213860 +53acafcd86a61ce55688ebef +65608eeebc7d9fe2912635ed +fafb0273e3b04deb1edb2628 +baf07d1f28416da065b6771f +c2ee8e58209102fdd0bb341c +f8e92e00670f65c29c4617c9 +a83661705134029ae344176d +fc02c24e172d12a29b17eede +2632f143ffe3f64e63e4ba32 +847120de4b72f59263d160f1 +5be36ff5b668eb93823974b2 +cdd8fe5081225519b5fc28af +53569cbaedb9265839290a6c +decca89ea0e8944fd93fcd24 +4b10511d840b7f5129ed6190 +5c4a1904de5f90f4d5dd749a +49c47514c3308df82fcd6b79 +15af3e182c00000eea12f8e5 +a9645c4a43ad211d9ae9a406 +dcffa4e5eee8f966b1edcdaf +75b25f796f1e392f45c3a737 +0ad5f0b96946ebcabd0457e9 +2f9128177cab74e0bad61189 +49ed14b81e0a166ccf335b4a +dfe100788326c45dfb84579c +2616f38caef9decae47e5023 +99b2d0eb14ac19d1cfedd86e +fb1d4c42ea70fad330b5c5ee +b6c560867faa3b41b1f5d4fa +1167fb22e86098ef684eb702 +a2e2c2ee8ec87d4e5d59eb22 +b228beac094e16a0fa3cb528 +ea0de9aad68deed0a4df3e71 +e50cb420497d928ef9827800 +3bb39890ca4a6da941e01782 +73391f2914465c3f2335e24a +f8b2f512cc0cbc024e2cd377 +4f816b0d36c934b44dbd5bc0 +817edf1e2637fef229752a5f +4466f97959df7247f7410fbe +cc85c727080e9d6eb75ef513 +7e27f012167ed8bedc4bd635 +98a445ff41a81a0a752aff25 +3b339e213dd613c4efd878c1 \ No newline at end of file From eb70d6502718efcab4f27aa88cee70bb83adc9be Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:18:32 +0000 Subject: [PATCH 263/268] Upload New File --- .../util/load/pandora_xml_stress.conf | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 pandora_server/util/load/pandora_xml_stress.conf diff --git a/pandora_server/util/load/pandora_xml_stress.conf b/pandora_server/util/load/pandora_xml_stress.conf new file mode 100644 index 0000000000..0dd2894e6a --- /dev/null +++ b/pandora_server/util/load/pandora_xml_stress.conf @@ -0,0 +1,200 @@ +# Sample configuration file for pandora_xmlstress +# (c) 2012, http://pandorafms.org +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Maximum number of threads, by default 5 +max_threads 4 + +# File containing a list of agent names (one per line). +agent_file pandora_xml_stress.agents + +# Directory where XML data files will be placed, by default /tmp. +# When sending files to a local Tentacle server make sure this directory +# and Pandora FMS Server's incomingdir are different. +temporal /tmp + +# Pandora FMS XML Stress log file, logs to stdout by default. +log_file pandora_xml_stress.log + +# XML version, by default 1.0. +xml_version 1.0 + +# XML encoding, by default UTF-8. +encoding UTF-8 + +# Operating system (shared by all agents), by default Linux. +os_name Linux + +# Operating system version (shared by all agents), by default 2.6. +os_version 2.6 + +# Agent group, by default Servers. +#group Servers + +# Agent interval, by default 300. +agent_interval 300 + +# Data file generation start date, by default now. +#time_from 2023-03-01 00:00:00 + +# Data file generation end date, by default now. +#time_to 2023-03-02 00:00:00 + +# Get conf from Pandora Server +get_and_send_agent_conf 0 + +# The directory to store the files conf agent (not in the server). +# directory_confs . + +# The directory to generate the next files conf agent for to send. +#directory_temp /tmp + +# Delay after generating the first data file for each agent to avoid +# race conditions when auto-creating the agent, by default 2. +startup_delay 0 + +# Timezone offset: Difference with the server timezone +timezone_offset 0 + +# Timezone offset range (to set a randomnuber of hours of difference with the +# server so timezone_offset can go from timezone_offset-timezone_offset_range +# to timezone_offset+timezone_offset_range +timezone_offset_range 0 + +# Agent position paramters +# Those parameters define the center and the zone where the agents will be +# randomly located. +# The base parameters define the central point of the sistem and the radius +# defines how far from that point the agents will be placed in any direction + +# Base latitude reference for all agents +latitude_base 40.42056 +# Base longitude reference for all agents +longitude_base -3.708187 +# Base altitude reference for all agents +altitude_base 0 +# This amount divided by 100 defines how far from each reference coordinate +# the agents will go +position_radius 10 + +# Address of the Tentacle server where XML files will be sent (optional). +server_ip 127.0.0.1 + +# Local copy XML files, by default 0 +local_copy 1 + +# Local dir for to copy XML files in local send method, by defaul /var/spool/pandora/data_in +local_dir /var/spool/pandora/data_in + +# Port of the Tentacle server, by default 41121. +# server_port 41121 + +# Module definitions. Similar to pandora_agent.conf. + +module_begin +module_name Connections opened +module_type generic_data +module_description Network connections used in this machine +module_exec type=RANDOM;variation=20;min=50;max=500 +module_unit conns +module_min_critical 450 +module_min_warning 400 +module_attenuation 0.33 +module_attenuation_wdays 0 6 +module_end + +module_begin +module_name Dropped Bits of nothing +module_type generic_data +module_description Simulation of big number with absolute nosense, real like life itself. +module_exec type=RANDOM;variation=5;min=-5000;max=500000000 +module_unit gamusins +module_end + +module_begin +module_name Network Traffic (Incoming) +module_type generic_data +module_description Network throughtput for incoming data +module_exec type=RANDOM;variation=50;min=0;max=1000000 +module_unit kbit/sec +module_min_critical 900000 +module_attenuation 0.5 +module_attenuation_wdays 0 6 +module_end + +module_begin +module_name Network Traffic (Outgoing) +module_type generic_data +module_description Network throughtput for Outgoing data +module_exec type=RANDOM;variation=50;min=0;max=1000000 +module_unit kbit/sec +module_min_critical 900000 +module_attenuation 0.1 +module_attenuation_wdays 0 6 +module_end + +module_begin +module_name Server Status A +module_type generic_proc +module_description Status of my super-important daemon / service / process +module_exec type=RANDOM;variation=1;min=0;max=500 +module_end + +module_begin +module_name Server Status B +module_type generic_proc +module_description Status of my super-important daemon / service / process +module_exec type=RANDOM;variation=1;min=0;max=300 +module_end + +module_begin +module_name Server Status C +module_type generic_proc +module_description Status of my super-important daemon / service / process +module_exec type=RANDOM;variation=1;min=0;max=1000 +module_end + +module_begin +module_name CPU Usage +module_type generic_data +module_description % of CPU usage in this machine +module_unit % +module_exec type=SCATTER;prob=5;avg=10;min=0;max=80 +module_min_critical 90 +module_min_warning 60 +module_end + +module_begin +module_name Disk_Free +module_type generic_data +module_description Disk space available in MB. +module_unit MB +module_exec type=CURVE;min=20;max=80;time_wave_length=3600;time_offset=0 +module_min_critical 0 +module_max_critical 10 +module_max_warning 20 +module_min_warning 10 +module_end + +module_begin +module_name Memory_free +module_type generic_data +module_unit MB +module_exec type=CURVE;min=5;max=8000;time_wave_length=360000;time_offset=0 +module_min_critical 0 +module_max_critical 50 +module_end + +module_begin +module_name System Log File +module_type generic_data_string +module_description Messages from the system in logfile format +module_exec type=RANDOM;variation=60;min=40;max=40 +module_end + +module_begin +module_name Module source +module_type generic_data +module_description Module data generated from source +module_exec type=SOURCE;src=pandora_xml_stress_module_source.txt +module_end \ No newline at end of file From a1dcd52631ac9f21c5c43c35c985ef76c34ede1a Mon Sep 17 00:00:00 2001 From: slerena Date: Thu, 20 Jul 2023 11:18:45 +0000 Subject: [PATCH 264/268] Upload New File --- pandora_server/util/load/usernames.txt | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 pandora_server/util/load/usernames.txt diff --git a/pandora_server/util/load/usernames.txt b/pandora_server/util/load/usernames.txt new file mode 100644 index 0000000000..c1709cf5ae --- /dev/null +++ b/pandora_server/util/load/usernames.txt @@ -0,0 +1,34 @@ +Martyna +Niklas +Murugan +Martin +Celeste +Agi +Yeshua +Lemminkainen +Xabier +Dominga +Moric +Gernot +Nia +Gurpreet +Khristofor +Ndubuisi +Kleopatra +Voestaae +Melba +Manish +Tóki +Pio +Jeong +Helena +Plácido +Djehutimesu +Tauno +Iordanus +Ragnar +Lucinde +Kailash +Artemio +Victorina +Sakine \ No newline at end of file From 6da7520dd15d66e07073ae067027c091e315e970 Mon Sep 17 00:00:00 2001 From: artica Date: Fri, 21 Jul 2023 01:00:53 +0200 Subject: [PATCH 265/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index befff3be5c..d8cce649f8 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230720 +Version: 7.0NG.772-230721 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 0f507262b8..1be2913ab7 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230720" +pandora_version="7.0NG.772-230721" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 066c703237..7e707482c6 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230720'; +use constant AGENT_BUILD => '230721'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index b6b857863e..944f3b80eb 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230720 +%define release 230721 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 7df3b5fca9..6c96bf9e2a 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230720 +%define release 230721 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 7ad2b9f219..fe18ba285c 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230720" +PI_BUILD="230721" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 656dff5ec3..de76a216ed 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230720} +{230721} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 8cb58c7095..1616463a5a 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230720") +#define PANDORA_VERSION ("7.0NG.772 Build 230721") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 009659b454..319833dcb9 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230720))" + VALUE "ProductVersion", "(7.0NG.772(Build 230721))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 66c16b35b1..6275863643 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230720 +Version: 7.0NG.772-230721 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index a2c66fff09..03a59890a7 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230720" +pandora_version="7.0NG.772-230721" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 99d33b658e..d3bf8bfe91 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230720'; +$build_version = 'PC230721'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 548f57b24b..5d42d4b911 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index a77349551b..def75f2c46 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230720 +%define release 230721 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 659b1dfcd1..3c67baac48 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230720 +%define release 230721 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 84d3f238e1..68310cf659 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230720" +PI_BUILD="230721" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index fbe7655596..098c3f8134 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230720"; +my $version = "7.0NG.772 Build 230721"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 79b4d5a020..8a295763c1 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230720"; +my $version = "7.0NG.772 Build 230721"; # save program name for logging my $progname = basename($0); From 13552e74f10a0273ccb268c7336858d4d047b30e Mon Sep 17 00:00:00 2001 From: artica Date: Sat, 22 Jul 2023 01:00:52 +0200 Subject: [PATCH 266/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index d8cce649f8..45f24638bc 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230721 +Version: 7.0NG.772-230722 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 1be2913ab7..c803c6ce75 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230721" +pandora_version="7.0NG.772-230722" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 7e707482c6..428a33337f 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230721'; +use constant AGENT_BUILD => '230722'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 944f3b80eb..31824de0aa 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230721 +%define release 230722 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 6c96bf9e2a..edb93d17fe 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230721 +%define release 230722 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index fe18ba285c..c4999037e7 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230721" +PI_BUILD="230722" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index de76a216ed..b5769316b0 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230721} +{230722} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 1616463a5a..7c4b6ad51d 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230721") +#define PANDORA_VERSION ("7.0NG.772 Build 230722") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 319833dcb9..70d875a9c0 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230721))" + VALUE "ProductVersion", "(7.0NG.772(Build 230722))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 6275863643..a6aaa0d368 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230721 +Version: 7.0NG.772-230722 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 03a59890a7..7ece2ac5f0 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230721" +pandora_version="7.0NG.772-230722" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index d3bf8bfe91..56bec96c69 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230721'; +$build_version = 'PC230722'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index 5d42d4b911..ebcfd30c2c 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index def75f2c46..bb0aafc081 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230721 +%define release 230722 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 3c67baac48..a31ebf7948 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230721 +%define release 230722 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 68310cf659..aa89d789e0 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230721" +PI_BUILD="230722" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 098c3f8134..13b4d2f0d9 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230721"; +my $version = "7.0NG.772 Build 230722"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 8a295763c1..6dd53a8ee6 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230721"; +my $version = "7.0NG.772 Build 230722"; # save program name for logging my $progname = basename($0); From 3e6f88e812d9c4f589fef27c6f05f3bc5c84d03c Mon Sep 17 00:00:00 2001 From: artica Date: Sun, 23 Jul 2023 01:00:51 +0200 Subject: [PATCH 267/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 45f24638bc..bbba255bab 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230722 +Version: 7.0NG.772-230723 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index c803c6ce75..a5f526297e 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230722" +pandora_version="7.0NG.772-230723" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 428a33337f..100b2b859c 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230722'; +use constant AGENT_BUILD => '230723'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 31824de0aa..99c1b847e1 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230722 +%define release 230723 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index edb93d17fe..2f5ae5fba9 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230722 +%define release 230723 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index c4999037e7..65c526a5d4 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230722" +PI_BUILD="230723" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index b5769316b0..97afef570a 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230722} +{230723} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 7c4b6ad51d..78cd04ff84 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230722") +#define PANDORA_VERSION ("7.0NG.772 Build 230723") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 70d875a9c0..fda2c028d5 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230722))" + VALUE "ProductVersion", "(7.0NG.772(Build 230723))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index a6aaa0d368..4562cb3e95 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230722 +Version: 7.0NG.772-230723 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 7ece2ac5f0..2bc2f3ab4d 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230722" +pandora_version="7.0NG.772-230723" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 56bec96c69..13b19da488 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230722'; +$build_version = 'PC230723'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index ebcfd30c2c..eacac65142 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index bb0aafc081..6a1613e349 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230722 +%define release 230723 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index a31ebf7948..a8fba05acb 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230722 +%define release 230723 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index aa89d789e0..2607fab007 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230722" +PI_BUILD="230723" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 13b4d2f0d9..72028a47a9 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230722"; +my $version = "7.0NG.772 Build 230723"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 6dd53a8ee6..f123132979 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230722"; +my $version = "7.0NG.772 Build 230723"; # save program name for logging my $progname = basename($0); From c57fb14bc26f35f07f9bbfd1892462e622b8f126 Mon Sep 17 00:00:00 2001 From: artica Date: Mon, 24 Jul 2023 01:00:48 +0200 Subject: [PATCH 268/268] Auto-updated build strings. --- pandora_agents/unix/DEBIAN/control | 2 +- pandora_agents/unix/DEBIAN/make_deb_package.sh | 2 +- pandora_agents/unix/pandora_agent | 2 +- pandora_agents/unix/pandora_agent.redhat.spec | 2 +- pandora_agents/unix/pandora_agent.spec | 2 +- pandora_agents/unix/pandora_agent_installer | 2 +- pandora_agents/win32/installer/pandora.mpi | 2 +- pandora_agents/win32/pandora.cc | 2 +- pandora_agents/win32/versioninfo.rc | 2 +- pandora_console/DEBIAN/control | 2 +- pandora_console/DEBIAN/make_deb_package.sh | 2 +- pandora_console/include/config_process.php | 2 +- pandora_console/install.php | 2 +- pandora_console/pandora_console.redhat.spec | 2 +- pandora_console/pandora_console.rhel7.spec | 2 +- pandora_console/pandora_console.spec | 2 +- pandora_server/DEBIAN/control | 2 +- pandora_server/DEBIAN/make_deb_package.sh | 2 +- pandora_server/lib/PandoraFMS/Config.pm | 2 +- pandora_server/lib/PandoraFMS/PluginTools.pm | 2 +- pandora_server/pandora_server.redhat.spec | 2 +- pandora_server/pandora_server.spec | 2 +- pandora_server/pandora_server_installer | 2 +- pandora_server/util/pandora_db.pl | 2 +- pandora_server/util/pandora_manage.pl | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index bbba255bab..2aa960e9e7 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.772-230723 +Version: 7.0NG.772-230724 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index a5f526297e..f79387b3d0 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230723" +pandora_version="7.0NG.772-230724" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 100b2b859c..e149a0a0f5 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1031,7 +1031,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.772'; -use constant AGENT_BUILD => '230723'; +use constant AGENT_BUILD => '230724'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 99c1b847e1..7fab994392 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230723 +%define release 230724 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 2f5ae5fba9..c042b957e3 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.772 -%define release 230723 +%define release 230724 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 65c526a5d4..cc3d79d2fd 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230723" +PI_BUILD="230724" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 97afef570a..dee4dd1e49 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{230723} +{230724} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 78cd04ff84..8a91448bf0 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.772 Build 230723") +#define PANDORA_VERSION ("7.0NG.772 Build 230724") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index fda2c028d5..629c349733 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.772(Build 230723))" + VALUE "ProductVersion", "(7.0NG.772(Build 230724))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 4562cb3e95..f8361ed03d 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.772-230723 +Version: 7.0NG.772-230724 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 2bc2f3ab4d..33216ccf44 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.772-230723" +pandora_version="7.0NG.772-230724" package_pear=0 package_pandora=1 diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 13b19da488..2f00645f00 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC230723'; +$build_version = 'PC230724'; $pandora_version = 'v7.0NG.772'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/install.php b/pandora_console/install.php index eacac65142..5a934350c7 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 6a1613e349..876784ad7f 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230723 +%define release 230724 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index a8fba05acb..3698a44a03 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.772 -%define release 230723 +%define release 230724 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 2607fab007..da59fdd8ff 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.772" -PI_BUILD="230723" +PI_BUILD="230724" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 72028a47a9..2ef1276890 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.772 Build 230723"; +my $version = "7.0NG.772 Build 230724"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index f123132979..91f3cb2327 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.772 Build 230723"; +my $version = "7.0NG.772 Build 230724"; # save program name for logging my $progname = basename($0);